ifup 默认路由缺失

ifup 默认路由缺失

我们的一台服务器在启动时网络行为异常。我们一直在使用配置更改和 ifup/ifdown 来尝试隔离问题,但结果却令人沮丧。我们的配置与其他没有此问题的服务器一致。一个显著的区别是这台服务器来自不同的硬件供应商,但我不知道为什么这会导致我们遇到的问题。

当我们使用 启动 eth0 接口时sudo ifup eth0,绑定接口bond0和 vlan 接口bond0.3001也会启动,并且从 ifconfig 看来配置正确,但缺少默认路由。

user@admin1:~$ route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
10.1.1.0        0.0.0.0         255.255.255.0   U     0      0        0 bond0.3001

反复尝试关闭接口(使用sudo ifdown bond0,这似乎是使用单个命令关闭整个多层配置的最简单方法)然后再恢复,似乎永远无法正确添加路由。但是,如果我们编辑bond0.3001接口文件中的条目/etc/network/interfaces,它会经常(但并非总是如此)打开接口和正确的默认路由。

user@admin1:~$ route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         10.1.1.1        0.0.0.0         UG    0      0        0 bond0.3001
10.1.1.0        0.0.0.0         255.255.255.0   U     0      0        0 bond0.3001

我们一直在文件编辑时注释掉/添加下面的“网络”行,结果有些一致;当我们进行编辑并弹出接口堆栈时,默认路由经常出现。当我们弹出接口堆栈而不进行编辑时,它似乎 100% 都会失败。sudo route add default gw 10.1.1.1 bond0.3001每次我们尝试手动添加默认路由时,它都有效,但我们需要系统可靠地重新启动网络。

这是我们的配置:

user@admin1:~$ cat /etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet manual
    bond-master bond0
auto eth1
iface eth1 inet manual
    bond-master bond0

# The primary network interface
#Aggregate bond
auto bond0
iface bond0 inet manual
    bond-slaves none
    bond-mode 802.3ad
    bond-miimon 100
    bond-lacp-rate 1

auto bond0.3001
iface bond0.3001 inet static
    address 10.1.1.14
    gateway 10.1.1.1
    netmask 255.255.255.0
    #network 10.1.1.0
    broadcast 10.1.1.255
    #post-up route add default gw 10.1.1.1 bond0.3001
    #post-down route del default gw 10.1.1.1 bond0.3001

一个额外的数据点 - 在运行中sudo strace -f sudo ifup eth0尝试查看有什么差异,成功尝试(创建默认路由)比失败尝试花费的时间更长。(缺少默认路由)这可能只是其他下游网络服务正在运行,当没有默认路由时会很快失败。

编辑:怀疑内核更新是罪魁祸首,似乎可以解决此服务器问题的更新是 3.19.0-25 到 3.19.0-43。我们在内核更新后在其他服务器上也看到了类似的行为。可能需要对特定内核版本进行更多测试才能找到根本原因。

答案1

本周,我刚刚在 Ubuntu 14.04.3 服务器机架上遇到了这个问题,所有服务器都升级到了 linux-generic-lts-vivid 并运行 3.19.0-43 内核。经过几天的折腾,我们通过将内核降级到 3.16.0-57 解决了这个问题(我们在使用 14.04.3 amd64 服务器 iso 附带的 3.19.0-2x 内核时也遇到了同样的问题)。

apt-get remove linux-generic-lts-vivid -y
apt-get autoremove
apt-get install linux-generic-lts-utopic -y
rm -f /boot/*3.19*
update-grub
reboot

就症状而言,默认路由在启动时被非确定性地添加。我们总是可以通过 来修复它ifdown bond0 && ifup p4p2 p5p2,但是,像您一样,我们需要网络在启动时可靠地工作。

相关内容