Linux 在启动时添加了错误路由?

Linux 在启动时添加了错误路由?

我有几台 Linux(Debian Wheezy)机器,它们有一个奇怪的问题。启动它们后,会创建一个额外的路由,必须先删除该路由,然后机器才能与同一子网上的其他机器通信。启动后,路由如下所示(公共 IP 被屏蔽):

~# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
208.XXX.XXX.0 * 255.255.255.0 U 0 0 0 vmbr0
default 208.XXX.XXX.1 0.0.0.0 UG 0 0 0 vmbr0

208.XXX.XXX.0 路由阻止服务器与同一子网中的任何其他服务器通信。删除此路由后,一切又恢复正常。但是,重新启动后,此路由又恢复了。是什么创建了此路由?自动创建这样的路由是正常的吗?(换句话说,此路由真的有效吗?我必须删除它,这实际上表明我的网络其他地方存在问题?)

这台机器正在运行 Proxmox(这就是为什么接口显示“vmbr0”),因此这很可能是 Proxmox 的问题。我已经尝试在他们的论坛上发布这个问题,但没有得到任何回复。

或许更好的问题是问这个:这条路由的什么原因导致同一个 208.XXX.XXX.XXX 子网中的机器无法相互通信?

如果有帮助的话,这里是内容/etc/network/interfaces(再次使用 XXX 避免发布公共 IP。我保证,这些 IP 的前 3 个八位字节匹配。):

auto lo
iface lo inet loopback

auto vmbr0
iface vmbr0 inet static
        address 208.XXX.XXX.165
        netmask 255.255.255.0
        gateway 208.XXX.XXX.1
        bridge_ports eth0
        bridge_stp off
        bridge_fd 0

答案1

当您将 IP 地址添加到特定接口时(通过 DHCP 或手动使用 ifconfig),Linux 内核会将此 IP 的子网路由添加到该特定接口上。这是因为从逻辑上讲您是子网的一部分。

可能的问题有:

  • DHCP 服务器没有从正确的子网为您提供正确的 IP(您尝试连接的子网位于路由器后面)

  • arp 请求存在一些问题,因此您的主机只能通过路由器相互通信

相关内容