这里跟大家分享一个case中遇到的问题。

 

某公安厅客户一直在采用A10负载均衡设备对服务器实现流量均衡,但最近突然访问不正常:客户端偶尔能打开登录界面,点击登录键后出现白页,或登录后点击页面链接出现白页。

 

ICMP重定向问题的解决_ICMP重定向 

负载均衡设备采用旁路部署模式,与服务器配置在同一网段的IP,服务器网关指向负载均衡器的接口地址,而负载均衡器的网关指向同一网段的路由器接口地址。之前正常情况下,客户端10.39.1.209访问VIP10.149.1.185,通过负载均衡器转发给后台服务器10.149.1.187,转发同时将源地址nat为负载均衡器的接口地址,这也是当时上线部署时的配置。

为什么突然访问就不正常了?后经了解,是公安厅对业务访问提出溯源的要求,因此把源地址nat的功能去掉了。按道理即使去掉nat也数据包也会经过负载均衡设备转发,而且偶尔能正常打开页面,实在费解。。。无解的问题就得通过抓包分析:

ICMP重定向问题的解决_ICMP重定向_02

抓包的结果看到,客户端的请求包都被正常转发给后台服务器,却一直未见回包。但路由的设置是没问题,服务器的的网关一直是负载均衡设备的接口地址。

 

通过一番googlebaidu,了解到一种情况——ICMP重定向。“ICMP重定向报文是ICMP控制报文中的一种。在特定的情况下,当路由器检测到一台机器使用非优化路由的时候,它会向该主机发送一个ICMP重定向报文,请求主机改变路由。路由器也会把初始数据报向它的目的地转发。”在实际环境中就存在这样的情况,服务器与路由器接口本属同一网段,现在却通过负载均衡设备转发,这样负载均衡设备可能会向服务器发ICMP重定向报文。

而后执行ip icmp disable redirect,将ICMP重定向关闭,问题解决。

 

上述案例并非特殊的疑难杂症,与大家分享,希望大家在实际部署时能多考虑一些“意外”情况,提前预防,谢谢大家!

 

ZJM