最近遇到一个项目:有个客户用我们的设备,同网段完全没有问题,但是异网段访问我们设备的web服务器(thhptd搭建的),会导致设备网络不通,访问之前还可以ping通,之后连ping也不通了,此时同网段还是通的。奇怪的现象,没办法只能去现场,网络环境为3层交换机组建的大局域网,问题确实如描述的一般,和同事鼓捣了半天没发现什么有用的信息(公司没有网络工程师是个硬伤啊!),后来抓包发现了icmp redirect包之后就不通了,给搭建网络环境的公司打电话说是交换机只是配置了动态路由功能,没有特殊之处,无奈对于路由器和网络工程不太了解只好请教了公司很多人,只是最后也没有结论(公司没有网络工程师是个硬伤啊!),无法只好返回,回来之后查阅了很多资料终于发现了其中的关键之处。
原文 http://blog.csdn.net/dog250/article/details/49977507
我们用的内核是3.0.y,应该是存在文中所说的问题,只是我没有找到文中所说的补丁,也没有过于研究算法逻辑的问题(其实真的是不熟悉网络协议),那么使用最简单暴力的办法吧,在内核net/ipv4/icmp.c中把ICMP_REDIR_HOST包直接丢掉,好了问题解决,只是动态路由在此失去了作用,绕点远总比不通要好很多。。。
新设备都使用新3.4.y的内核改问题已经被强大的linux工程师们修复了,大爱linux!