我最近开始了一个新的工作,并且inheritance了一个有很多问题的现有基础设施。
其中一个问题是,前一个pipe理员在命令行上向一些绑定到虚拟接口的服务器添加了静态路由,而没有将这些静态路由提交给服务器configuration。 我偶然发现了这个,浏览了根历史。
我面临的问题是历史是有限的。 我只有几个命令行条目 – 但不是全部。 但是,我所熟悉的诊断工具都不会揭示路由绑定的虚拟接口。
具体来说,(当IP地址被系统隐私占用时),当然是:
root@web-a:/home/paul# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 14.17.24.24 10.124.74.65 255.255.255.255 UGH 0 0 0 eth0 14.17.24.23 10.124.74.65 255.255.255.255 UGH 0 0 0 eth0 18.29.146.135 10.124.74.65 255.255.255.255 UGH 0 0 0 eth0 58.21.196.19 10.124.74.65 255.255.255.255 UGH 0 0 0 eth0 10.124.74.64 0.0.0.0 255.255.255.192 U 0 0 0 eth0 0.0.0.0 10.124.74.65 0.0.0.0 UG 0 0 0 eth0 root@mweb-a:/home/paul# ip route show 14.17.24.24 via 10.124.74.65 dev eth0 src 10.124.74.73 14.17.24.23 via 10.124.74.65 dev eth0 src 10.124.74.73 18.29.146.135 via 10.124.74.65 dev eth0 src 10.124.74.73 58.21.196.19 via 10.124.74.65 dev eth0 src 10.124.74.73 10.124.74.64/26 dev eth0 proto kernel scope link src 10.124.74.69 default via 10.124.74.65 dev eth0 root@web-a:/home/paul# history|grep "route add" 66 2012-07-26 14:46:27 - route add -net 14.17.24.23 netmask 255.255.255.255 gw 10.124.74.65 eth0:2 67 2012-07-26 14:46:27 - route add -net 14.17.24.24 netmask 255.255.255.255 gw 10.124.74.65 eth0:2
希望那清楚。 'route -n','ip route show',既不显示路由绑定的实际虚拟接口。 所以我有两条路线,我不知道他们应该去哪个虚拟接口(在服务器上有五个虚拟IP)。
现在,一个重要的警告是我吮吸路由。 我了解基础 – 但就是这样。 我一直是unix /系统pipe理员很长一段时间,但路由一直躲避我,我从来没有需要做任何事情比正确pipe理几个接口更先进。
我所得到的是,我甚至不知道这些路由是否绑定到特定的虚拟接口。 从输出的angular度来看,我怀疑由于所有的东西都是通过同一个网关出去的(而且所有的虚拟接口都在同一个networking上),那么他们就不需要绑定到单个的虚拟接口上了 – d认为他们可以被绑定到物理界面。
但是我不愿意按照“应该没事”的原则来操作。
明确的帮助将是最赞赏。
虚拟接口(即eth0:0 )是为了在ifconfig的单个接口上支持多个IP地址而创build的。 他们不是真的存在 – 他们只是如何告诉ifconfig你想修改哪个IP地址。 内核和iproute2工具(即ip )不知道这些虚拟接口,这就是为什么一切都只提到真正的接口。 route命令可能已经使用虚拟接口来确定要使用的源地址,否则将会丢弃它。
您应该使用ip工具,在接口上支持多个地址,如果需要为ip route设置特定的源地址,请使用src参数指定ip route route。