AD 旁路部署做虚拟服务一般需要在AD设备上配置SNAT,将客户端的源IP地址转换为AD接口的IP保证服务器回包可以回到AD,如果需要在服务器上看到客户端的真实IP方法:
方案1:在AD中配置优化策略,【应用负载】-【策略】-【优化策略】新建优化策略,启用传输客户端IP至后台服务器,将该优化策略关联到虚拟服务,配置完成之后AD转发给服务器的数据包的HTTP头部里会插入X-Forwarded-For头部,头部的值就是客户端的真实IP,服务器只要识别到这个头部的值即可读取到客户端的真实IP
缺点:服务器需要能识别X-Forwarded-For字段(需要安装插件),且只支持七层虚拟服务http(https)协议类型的业务
优点:旁路部署广泛使用
方案2:配置三角传输,AD不做源地址转换,这样服务器就能看到客户端源IP,只有四层虚拟服务才可使用三角传输
AD7.0.5之前三角传输配置指导:点击这里
AD7.0.5及之后三角传输配置指导:点击这里
缺点:限于旁路部署,服务器需要配置loopback接口,配置较麻烦
优点:仅单边数据通过AD,吞吐量可以翻倍
方案3:将服务器的网关直接指向AD,AD不做源地址转换
缺点:这种方式要改动服务器网关,网络结构会改变
优点:仅需调整路由
方案4:TCP应用场景,插入客户端源IP到TCP.option字段。配置指导:点击这里
要求:
①建议AD7.0.8R3及以上版本
②两台AD(一台负载插入,一台负载提取)或一台AD,服务器可以提取TCP.option字段(Linux的TOA模块支持提取并送到上层应用)
注意:
1、旁路部署环境下,web业务服务器需要审核客户端源IP地址的需求,AD广泛使用X-Forwarded-For字段插入HTTP头部中,服务器上读取此字段来识别客户端IP
2、IPv6支持透传源IP地址同理IPv4。IPv6推荐使用方案1和方案4 |