![绑定到虚拟接口的路由、Debian 以及事后如何确定具体细节](https://linux22.com/image/591236/%E7%BB%91%E5%AE%9A%E5%88%B0%E8%99%9A%E6%8B%9F%E6%8E%A5%E5%8F%A3%E7%9A%84%E8%B7%AF%E7%94%B1%E3%80%81Debian%20%E4%BB%A5%E5%8F%8A%E4%BA%8B%E5%90%8E%E5%A6%82%E4%BD%95%E7%A1%AE%E5%AE%9A%E5%85%B7%E4%BD%93%E7%BB%86%E8%8A%82.png)
我最近开始了一份新工作,并继承了存在很多问题的现有基础设施。
其中一个问题是,前任管理员在命令行上向某些服务器添加了静态路由,并绑定到虚拟接口,但没有将它们提交到服务器配置中。我是在浏览根历史记录时偶然发现这一点的。
我面临的问题是历史记录有限。我只有几个命令行条目 - 但不是全部。但是,我熟悉的所有诊断工具都无法显示路由绑定到哪些虚拟接口。
具体来说,(为了保护系统隐私,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/系统管理员已经很长时间了,但路由一直困扰着我,而且我从来不需要做比正确连接几个接口更高级的事情。
我的意思是,我甚至不知道事宜路由应绑定到特定的虚拟接口。根据输出判断,我怀疑由于所有内容都通过同一个网关发出(并且所有虚拟接口都在同一个 10.124.74 网络上),因此它们不需要绑定到单个虚拟接口 - 我认为它们可以绑定到物理接口。
但是,我不愿意按照“应该没问题”的原则来做事。
如果能提供清晰的帮助,我们将不胜感激。
答案1
虚拟接口(即eth0:0
)是为了在 中支持单个接口上的多个 IP 地址而创建的ifconfig
。它们实际上并不存在——它们只是您告诉ifconfig
要修改哪个 IP 地址的方式。内核和 iproute2 工具(即ip
)不知道这些虚拟接口,这就是为什么所有内容都只提到真实接口的原因。该route
命令可能已使用虚拟接口来确定要使用的源地址,否则就会将其丢弃。
您应该使用ip
支持接口上多个地址的工具,并在需要为路由设置特定的源地址时使用src
参数。ip route