这是我的/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 属性。
所以什么也没做:address
和gateway
选项都被忽略,但通过up
脚本带来的手动命令被执行,例如:
up ifconfig bond0 10.66.7.11/24 up
哪个手动运行一个命令,该命令恰好添加了一个地址债券0: 这就是为什么债券0有一个地址,内核从这个地址自动添加的LAN路由,并且没有网关。
应该使用关键字static
(它仍然会执行该manual
方法将执行的操作,但也会使用 来配置 IPv4 ):inet static
该方法可用于定义具有静态分配的 IPv4 地址的以太网接口。
具有如果向上向下配置IP地址和默认网关。
因此,只需替换manual
为static
并删除不需要的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