多网口同一个网段ping不通的问题
问题描述
条件
- 主机1 有一个网口(eth0)
- 主机2有多个网口(eth0,eth1…)
- 主机1和主机2的所有网口接在同一个交换机上
- 主机1和主机2的所有网口设置为同一个网段的ip
现象
- 主机1 ping主机2 的eth0上的ip,可以通
- 主机1 ping主机2 的除eth0之外的其他网口上的ip,不可以通
- 主机2 ping主机1的eth0上的ip,可以通
- 拔掉主机2的eth0对应的网线,主机2 ping主机1的eth0上的ip,不可以通,插上之后可以通
问题解决
在主机2上使用ip工具给每一个网口都添加一个路由表
例如:
ip rule add from 192.168.1.10 table 10
ip route add 192.168.1.0/24 dev eth0 src 192.168.1.10 table 10
例如
for i in `seq 1 10`;do
ip rule add from 192.168.1.$((i+10)) table $((i+10))
ip route add 192.168.1.0/24 dev eth${i} src 192.168.1.$((i+10)) table $((i+10))
done