双网卡设备因路由配置不规范导致通信异常

发布时间:  2014-09-20 浏览次数:  508 下载次数:  8
问题描述
故障一:双网卡设备设备其中一个网卡无法实现跨网段通信
拓扑图如下:


服务器有两张网卡,分别有两个IP地址,其中一个网卡(10.68.30.158)通信正常,而另一张网卡无法实现跨网段通信。
故障二:正确配置第二张网卡静态路由后,第二张网卡仍然无法进行正常通信。
故障三:同网段内TCP连接无法正常建立。
拓扑图如下:

服务器10.1.1.34与10.1.1.40在同一网段,且可以互相ping通,但是某TCP应用无法正常建立,抓包发现,10.1.1.34发送给10.1.1.40的[SYN ACK]报文没有正常传送到10.1.1.40.
告警信息
无告警信息
处理过程
故障一:保留第一张网卡的网关设置,去掉第二张网卡(192.168.1.11)的网关设置,在路由表里面添加第二张网卡需要通信网段的静态路由条目。例如(注意,系统不同,查看和配置路由的方法不同):route add 192.168.0.0 mask 255.255.0.0 192.168.1.1 –p  (注意:添加-p参数,设备重启后所添加的路由才不会消失)
故障二:在配置双网卡主机静态路由时,有一个interface的参数,如果发现路由表里面路由interface 参数错误,需要更改路由添加命令。如下:
route add 192.168.0.0 mask 255.255.0.0 192.168.1.1  IF 12  –p
如何知道自己对应的interface的数值呢,windows主机上可以通过netstat 命令查看。如图:

故障三:删除配置的不规范主机路由,故障解决。
根因
故障一:
进入设备查看路由表,发现由于配置了两个网关,产生了两条默认路由,由于系统默认先配置的默认路由metric值比较小,所以后面一条路由无法起作用。

故障二:
进入设备查看路由表,发现静态路由的Interface 参数错误。如图
Network Destination        Netmask          Gateway       Interface  Metric
          0.0.0.0          0.0.0.0       10.68.30.1    10.68.30.158       20
         192.168.0.0    255.255.0.0     192.168.1.1    10.68.30.158       20
故障三:
抓取 10.1.1.34连接交换机端口的报文发现,发送给目的地址10.1.1.40报文的目的MAC地址居然是网关10.1.1.1的MAC地址(一个VRRP的MAC地址)。检查服务器10.1.1.34的路由表发现,有一条指向10.1.1.40的明细路由
Route add 10.1.1.40 mask 255.255.255.255 10.1.1.1
导致了数据并没有直接发送给10.1.1.40,而是先发送给了网关,而10.1.1.40的回包,是直接发送给10.1.1.34的。在防火墙上,只看到了TCP三次握手的第一个和第三个报文,没有看到第二个回包的报文,故认为这是一种TCP非法连接,而不会继续转发第三个[SYN ACK]报文。如图:


建议与总结
很多工程师认为,添加路由是路由器交换机的事情,与服务器没有关系,实际上,在双网卡服务器上,正确配置路由是非常必要的。
对于双网卡运行的服务器或主机,首先需要非常清楚两张网卡各自都需要与哪些网段通信,然后在配置好需要的路由条目,不能胡乱添加不必要的路由。

END