Linux服务器双网卡网络问题的排查过程详细介绍
到家后通过SecureCRT连接平台公网IP,登录后台,同时Teamviewer远程到现场内网环境
远程过去由于当时发现调试PC只连了校园无线,未插内网网线到有线网卡
调试PC是可以上外网 ping ,以为平台也是通过192.168.8.200这张网卡上的外网,排查的思路就觉是内网这块核心交换机出了问题
Telnet到核心交换机上查看配置 show run ,show ip int brief , show ip route,一顿操作猛如虎
交换上ping192.168.8.200正常
各种调试都未找到问题原因,开始慢慢查
1、在交换机上查看192.168.8.200的arp表项找到192.168.8.200这个地址的MAC地址
2、通过mac地址去找这个地址的MAC地址是从哪个接口获取的
3、 发现是从S8506E核心的G1/5接口学习到的mac表项后,LLDP协议去发现有没有邻居交换机
可以发现核心S8506E连的是一台S5750C汇聚交换机的G0/6接口
这台交换机的管理地址是172.31.10.200
SecureCRT Telnet 172.31.10.200到这台汇聚交换机上,查mac地址表,可以查到平台192.168.8.200接的这台交换机的G0/5接口
G0/5接口划到VLAN 50里了,然后shutdown接口,立马ping不通192.168.8.200了,就能确定平台是接的这个G0/5接口
同样的方式去找调试PC所接的交换机,发现调试PC上面是一台无线控制器WS6008
根据上面的诊断与排查,以及交换机上的配置,绘制出平台大致的拓扑架构如下
这时查看平台的网卡配置
看到这两个红框后,立马知道原因了,重启平台服务器后,默认网卡一直在调换,所以平台的默认路由0.0.0.0是走eth0 (192.168.8.200)这张网卡时,调试PC 172.16.2.249就可以ping通192.168.8.200
而当平台的默认路由0.0.0.0是走eth1 (10.11.211.4)这张网卡时,调试PC172.16.2.249就ping不通192.168.8.200,因为平台默认路由走的eth1网卡,没有指定去往172.16.X.X段走eth0这张网卡
解决办法和步骤
1、 vi /etc/sysconfig/network-scripts/ifcfg-eth0
删除eth0网卡配置中的DEFROUTE=yes字段,保证eth1是默认网卡
2、 添加一条静态路由去往172.16.X.X段走eth0这张网卡
route add -net 172.16.0.0netmask 255.255.248.0 gw 192.168.8.1
并加到启动脚本中,保证开机能自启动服务器
3、 reboot重启验证问题是否解决
4、 查看路由表就知道问题OK了 ping一下7段的地址172.16.7.254验证