这是我的/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
?
在多个ifupdown实现中,我将考虑它
ifupdown
(实现“v1”)和interfaces(5)
Debian 上看到的配置。bond0节不应使用关键字
manual
:它将配置bond0的绑定属性(在 Debian 上可能通过
ifenslave
在 中添加插件脚本的包/etc/network/if-*.d
),但不配置 IP 属性。所以什么也没做:
address
和gateway
选项都被忽略,但通过up
脚本带来的手动命令被执行,例如:它手动运行一个命令,该命令恰好在bond0上添加了一个地址:这就是为什么bond0有一个地址,内核从该地址自动添加 LAN 路由,并且没有网关。
应该使用关键字
static
(它仍然会执行该manual
方法将执行的操作,但也会inet static
使用 来配置 IPv4):让ifupdown配置 IP 地址和默认网关。
因此,只需替换
manual
为static
并删除不需要的up
条目即可。那么配置应该是: