ICMP重定向问题的解决

本文涉及的产品
应用型负载均衡 ALB,每月750个小时 15LCU
传统型负载均衡 CLB,每月750个小时 15LCU
网络型负载均衡 NLB,每月750个小时 15LCU
简介:

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

 

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

 

 

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

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

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

 

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

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

 

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



本文转自 virtualadc 51CTO博客,原文链接:

http://blog.51cto.com/virtualadc/937285

ZJM

 

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
相关文章
|
网络协议 网络架构
网络协议与攻击模拟-06-ICMP重定向
网络协议与攻击模拟-06-ICMP重定向
351 0
|
监控 安全 网络协议
使用 Scapy 库编写 ICMP 重定向脚本
使用 Scapy 库编写 ICMP 重定向脚本
|
Shell iOS开发
|
网络架构
ICMP协议(Internet控制消息协议)
本文详细的介绍ICMP协议,内含详细的实例解析,该文你值得拥有。
|
网络协议 网络架构
网络协议与攻击模拟-05-ICMP协议
网络协议与攻击模拟-05-ICMP协议
191 0
|
Linux C语言 C++
Linux ICMP协议实现:C/C++编程指南
ICMP(Internet Control Message Protocol)是网络通信中的重要协议,用于在IP网络中传递错误消息和诊断信息。在Linux系统中,我们可以使用C/C++编程语言来实现基本的ICMP功能,例如发送ICMP回显请求(Ping)和解析ICMP消息。本文将带您深入了解C/C++实现的ICMP协议,包括套接字编程、构造ICMP报文、发送和接收ICMP消息等,以及提供实际的代码示例。
1341 1
|
存储 网络协议 算法
基于 Wireshark 分析 ICMP 协议
基于 Wireshark 分析 ICMP 协议
|
网络协议 Unix 网络架构
网际控制报文协议ICMP
网际控制报文协议(ICMP)是TCP/IP体系结构中网际层的关键组件,用于提高IP数据报的成功传输率。ICMP主要处理两类报文:差错报告报文与询问报文。前者包括终点不可达、源点抑制、时间超过、参数问题及重定向等五类;后者则涵盖回送请求/回答及时间戳请求/回答。ICMP广泛应用于检测网络连通性的PING工具和追踪数据包路径的traceroute工具中。两者分别利用ICMP的回送请求报文及差错报告报文实现功能。
528 10
|
网络协议 网络架构
用户态协议栈03-icmp实现
用户态协议栈03-icmp实现
|
监控 安全 网络安全
ICMP 协议详解及其消息格式
【8月更文挑战第20天】
1842 0