我有这是我的路由表(按此顺序):
10.3.68.0/22 via 172.16.100.9 dev vlan4
10.3.68.0/22 dev eth3 proto kernel scope link src 10.3.69.254
eth3有ip 10.3.69.254/22.
为什么Linux选择通过172.16.100.9网关访问10.3.68.0/22子网(因此不尝试直接链接)?
我用ip route测试得到例如10.3.68.123.它说它将通过172.16.100.9,在实践中,它确实如此.
它只是说当我要求10.3.68.0(“网络”地址),10.3.71.254(广播)或10.3.69.254(本身)时,它将尝试链接本地路由.我认为这是因为这3个案例是由更高优先级的本地表(ip route show table local)专门处理的.
无论如何,为什么Linux认为第一条路由是优先级较高的路由?
解决方法:
在我看来,Vlan比整个界面更具体,这就是它首先出现在你的路由表中的原因.
以为我还没有找到相关文档.如果我找到材料,我会更新我的答案.