我的基础架构如下:
- 在 VirtualBox 上运行的 Ubuntu 22.04 LTS 服务器
- 2 个 NIC,enp0s3 和 enp0s8,均连接到桥接适配器
我的 netplan 文件:
network:
version: 2
renderer: networkd
ethernets:
enp0s3:
dhcp4: no
enp0s8:
dhcp4: no
bonds:
bond0:
dhcp4: yes
interfaces:
- enp0s3
- enp0s8
parameters:
mode: active-backup
primary: enp0s3
mii-monitor-interval: 1
- 使用以下命令安装 ifenslag 包
sudo apt install ifenslave
- 加载绑定模块
sudo modprobe bonding
应用 netplan 后,绑定已创建,它从 DHCP 获取 IP 地址,但它无法到达网络上的任何地方,我也无法连接到它。
我想我遗漏了一些非常明显的东西,但我花了几个小时才找到它。
我尝试绕过 netplan 并直接在 systemd-networkd 上进行配置,结果是一样的。所以我相信 Netplan 与此无关。
因此我可以放心地责怪 Networkd,因为绑定可以在相同的基础架构上与 Debian 和 ifupdown 一起工作。
输出ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: enp0s3: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc fq_codel master bond0 state UP group default qlen 1000
link/ether 9a:6c:54:32:ea:a5 brd ff:ff:ff:ff:ff:ff permaddr 08:00:27:4a:df:8f
3: enp0s8: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc fq_codel master bond0 state UP group default qlen 1000
link/ether 9a:6c:54:32:ea:a5 brd ff:ff:ff:ff:ff:ff permaddr 08:00:27:72:1e:49
4: bond0: <BROADCAST,MULTICAST,MASTER,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether 9a:6c:54:32:ea:a5 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.55/24 metric 100 brd 192.168.1.255 scope global dynamic bond0
valid_lft 3579sec preferred_lft 3579sec
inet6 fe80::986c:54ff:fe32:eaa5/64 scope link
valid_lft forever preferred_lft forever
输出ip route
default via 192.168.1.1 dev bond0 proto dhcp src 192.168.1.55 metric 100
8.8.8.8 via 192.168.1.1 dev bond0 proto dhcp src 192.168.1.55 metric 100
192.168.1.0/24 dev bond0 proto kernel scope link src 192.168.1.55 metric 100
192.168.1.1 dev bond0 proto dhcp scope link src 192.168.1.55 metric 100