Rootop 服务器运维与web架构

深信服AD-M5500中代理上网、web服务器中请求源IP问题。

| 暂无评论

        环境为:AD-M5500 系统版本为3.0,负载均衡器中配置了代理上网,服务器、AD的网关都为网络出口设备内网IP,比如192.168.10.1.

在客户端web请求后,服务器中的日志请求源IP都是AD负载器的IP地址,比如192.168.10.20.不能显示真实的客户端IP。为了解决这个问题,修改第二台服务器的网关为AD的WAN口IP,即192.168.10.20。会话数据发生错误,此时远程登陆失去连接。通过第一台服务器登陆到第二台服务器后继续操作。然后修改AD,禁用 代理上网 ,发现第二台服务器的请求来源变成了客户端的真实IP,但是第二台服务器自己访问自己访问不了(通过域名,如:curl -I www.rootop.org),没找到原因。如果会话分发到第一台服务器,第一台服务器的网关还是以前的出口设备IP,192.168.10.1,但是这个请求就得不到响应,还是因为会话发生错误。

图解:

pc:客户端  fw:防火墙 ad:负载器  sw:二层交换机

pc -> fw ->ad ->s2   s2网关为192.168.10.20

客户端发起目端口为80的会话到防火墙映射到ad中,然后分配到s2服务器(192.168.10.11)。http请求没问题,但是ssh远程登陆失去连接:客户端发起目的端口为22的会话到防火墙映射到s2中,s2通过网关ad再发送到防火墙,源IP发生改变,导致会话数据发生错误。

同理s1的http应用实际上是运行的,但是当请求发送到s1时,s1的数据无法返回到客户端。

最终的解决办法就是:升级ad系统版本到3.6版本以上,有一个功能叫做“传递客户端IP到服务器”。就可以解决。

原创文章,转载请注明。本文链接地址: https://www.rootop.org/pages/1025.html

作者:Venus

服务器运维与性能优化

发表回复