Suse linux 11配置多网卡后网络不通的解决办法

问题描述

1.RH2288-1、RH2288-2安装的是SUSE11操作系统。
2.服务器采的是双网卡绑定,bond0在VLAN100、bond1在VLAN200。
3.VLAN100的网关为172.16.0.1、VLAN200的网关为192.168.0.1。
RH2288-1的默认网关为192.168.0.1,RH2288-2的默认网关为172.16.0.1。
4.RH2288-2 ping RH2288-1的bond1网卡 192.168.0.187不通。

告警信息
FY-NMS:~ # ping -c 1 192.168.0.187
PING 192.168.0.187 (192.168.0.187) 56(84) bytes of data.
— 192.168.0.187 ping statistics —
1 packets transmitted, 0 received, 100% packet loss, time 0ms

处理过程
1.在RH2288-1、RH2288-2 ping 各自默认网关是否正常。
结果正常,无丢包。
2.检查RH2288-1、RH2288-1默认网关配置正确。
RH2288-1配置正确,检查结果如下:
FY-HIS:/etc # route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.0.1 0.0.0.0 UG 0 0 0 bond1
RH2288-2配置正确,检查结果如下:
FY-NMS ~ # route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default 172.16.0.1 0.0.0.0 UG 0 0 0 bond0
3.在RH2288-1抓取网络数据包,是否能收到RH2288-2请求的ping请求。
FY-HIS:~ # tcpdump -ni bond1 icmp
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on bond1, link-type EN10MB (Ethernet), capture size 96 bytes
09:45:38.900680 IP 172.16.0.188 > 192.168.0.188: ICMP echo request, id 24523, seq 54, length 64
09:45:39.908686 IP 172.16.0.188 > 192.168.0.188: ICMP echo request, id 24523, seq 55, length 64
09:45:40.916731 IP 172.16.0.188 > 192.168.0.188: ICMP echo request, id 24523, seq 56, length 64
09:45:41.924674 IP 172.16.0.188 > 192.168.0.188: ICMP echo request, id 24523, seq 57, length 64
4.根据抓包显示,从RH2288-2 ping RH2288-1 192.168.0.188不通,是因为在RH2288-1上只能抓到RH2288-2的request报文,但没有抓到RH2288-1 的reply的报文。

原因
问题产生的根因应该是SUSE 系统路由表策略,优先级低的路由,它不回复对端的arp请求。

解决方案
1.sysctl -a |grep rp_fi,查看返回值是否都为0。
2.将不为0的值改为0。
如net.ipv4.conf.all.rp_filter = 1,则修改sysctl -w net.ipv4.conf.all.rp_filter=0
3.将该修改值写入配置文件:
vi /etc/sysctl.conf
在该文件中将需要修改为0的值进行更改,需要注意格式与文件中其他配置一致。

建议与总结
在处理服务器侧网络不通时,建议多使用抓包的方法,通过分析网络报文快速定位问题。