路由绑定到虚拟接口,Debian,以及如何确定细节,事后

ana*_*phe 5 networking linux debian routing

我最近开始了一份新工作,并且继承了存在很多问题的现有基础架构。

问题之一是以前的管理员在命令行上向某些服务器添加了静态路由,绑定到虚拟接口,而没有将它们提交到服务器配置。我偶然发现了这一点,浏览了根历史记录。

我面临的问题是历史是有限的。我只有几个命令行条目 - 但不是全部。但是,我熟悉的所有诊断工具都不会显示路由绑定到哪些虚拟接口。

具体来说,(为了系统隐私而使用 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
Run Code Online (Sandbox Code Playgroud)

希望这清楚地通过了。'route -n'、'ip route show' 都没有显示路由绑定到的实际虚拟接口。所以我有两条路线,我不知道他们应该去哪个 virt 接口(服务器上有五个虚拟 IP)。

现在,一个重要的警告是我很擅长路由。我了解基础知识 - 但仅此而已。很长一段时间以来,我一直是 unix/systems 管理员,但路由总是让我望而却步,而且我从来不需要做任何比正确连接几个接口更高级的事情。

什么我得到的是,我甚至不知道这是否是重要的途径被绑定到特定的虚拟接口。从输出来看,我怀疑由于一切都是通过同一个网关发出的(并且所有虚拟接口都在同一个 10.124.74 网络上),那么它们不需要绑定到单独的 virt 接口 - 我' d 认为他们可以只绑定到物理接口。

但是,我不愿意按照“应该没问题”的原则进行操作。

非常感谢您提供清晰的帮助。

mgo*_*ven 5

虚拟接口(即eth0:0)是为了在ifconfig. 它们实际上并不存在——它们只是告诉ifconfig您要修改哪个 IP 地址的方式。内核和 iproute2 工具(即ip)不知道这些虚拟接口,这就是为什么一切都只提到真实接口的原因。该route命令可能已经使用虚拟接口来确定要使用的源地址,否则就会丢弃它。

您应该使用该ip工具,该工具支持一个接口上的多个地址,如果您需要为路由设置特定的源地址,请使用src参数 to ip route

  • @anastrophe 如果您仍然使用 `route` 工具,则需要指定虚拟接口以设置正确的源 IP。如果你使用`ip`工具,你可以在`eth0`接口配置上使用`post-up ip route add 14.17.24.23/32 via 10.124.74.65 src 1.2.3.4`。你也可以完全去掉虚拟接口,使用`post-up ip addr add 1.2.3.4 dev eth0`来添加额外的IP。 (3认同)