使用 bond0 接口时未设置默认网关

使用 bond0 接口时未设置默认网关

这是我的/etc/network/interfaces文件:

auto bond0
iface bond0 inet manual
    address 10.66.7.11/24
    gateway 10.66.7.1
    bond-mode 802.3ad
    bond-slaves eth2 eth3
    bond-miimon 100
    bond-downdelay 200
    bond-updelay 400
    bond-lacp-rate 1
    up ifconfig bond0 10.66.7.11/24 up

当我启动 bond0 接口时,它可以工作,但未设置默认网关

# route -n
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
10.66.7.0       0.0.0.0         255.255.255.0   U     0      0        0 bond0

我必须手动设置默认网关,然后一切正常:

route add default gw 10.66.7.1 bond0

#route -n
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface  
0.0.0.0         10.66.7.1       0.0.0.0         UG    0      0        0 bond0
10.66.7.0       0.0.0.0         255.255.255.0   U     0      0        0 bond0

当我在文件中定义默认网关时,为什么没有自动设置它/etc/network/interfaces

答案1

多个之中如果向上向下实施,我会考虑它ifupdown(实现“v1”)和interfaces(5)Debian 上的配置。

债券0不应该使用关键字manual

手动方法

该方法可用于定义默认情况下未进行配置的接口。可以通过命令或脚本手动配置up此类down接口/etc/network/if-*.d

这将配置债券0的绑定属性(在 Debian 上可能通过ifenslave在 中添加插件脚本的包/etc/network/if-*.d),但不是 IP 属性。

所以什么也没做:addressgateway选项都被忽略,但通过up脚本带来的手动命令被执行,例如:

up ifconfig bond0 10.66.7.11/24 up

哪个手动运行一个命令,该命令恰好添加了一个地址债券0: 这就是为什么债券0有一个地址,内核从这个地址自动添加的LAN路由,并且没有网关。

应该使用关键字static(它仍然会执行该manual方法将执行的操作,但也会使用 来配置 IPv4 ):inet static

静态方法

该方法可用于定义具有静态分配的 IPv4 地址的以太网接口。

具有如果向上向下配置IP地址和默认网关。


因此,只需替换manualstatic并删除不需要的up条目即可。那么配置应该是:

auto bond0
iface bond0 inet static
    address 10.66.7.11/24
    gateway 10.66.7.1
    bond-mode 802.3ad
    bond-slaves eth2 eth3
    bond-miimon 100
    bond-downdelay 200
    bond-updelay 400
    bond-lacp-rate 1

相关内容