AlmaLinux 9:bond 与 VLAN 的内核层验证
在 AlmaLinux 9.8(特权容器,宿主内核 5.14.0-687.54.1.el9_8,单网卡)中用 dummy 设备实际执行:ip link add bond0 type bond mode active-backup miimon 100、把 dummy0/dummy1 加为 slave、cat /proc/net/bonding/bond0、在 bond 上建 bond0.100 VLAN、ip -d link show、清理。日志:plans/content-expansion/evidence/logs/alma-bonding-vlan.log。
没有第二块物理网卡,也没有交换机:本页验证的是内核层的 bond/VLAN 行为;nmcli 配置与交换机侧要求标注为「未在本环境验证」。
先理解:bond 与 VLAN 是两层
Section titled “先理解:bond 与 VLAN 是两层”- bond:把多块网卡合成一块逻辑网卡,提供冗余或带宽聚合;
- VLAN:在一条链路上打 802.1Q 标签,划出多个广播域。
两者可以叠加:bond0 上打 bond0.100,即「先聚合链路,再在聚合链路上分 VLAN」。
用 dummy 验证内核层 bond
Section titled “用 dummy 验证内核层 bond”sudo ip link add dummy0 type dummysudo ip link add dummy1 type dummysudo ip link add bond0 type bond mode active-backup miimon 100sudo ip link set dummy0 down && sudo ip link set dummy1 downsudo ip link set dummy0 master bond0sudo ip link set dummy1 master bond0sudo ip link set bond0 upcat /proc/net/bonding/bond0Ethernet Channel Bonding Driver: v5.14.0-687.54.1.el9_8.x86_64Bonding Mode: fault-tolerance (active-backup)Currently Active Slave: dummy0MII Status: upMII Polling Interval (ms): 100Currently Active Slave 就是当前承载流量的那块;MII Polling Interval 是链路检测周期(miimon)。
在 bond 上打 VLAN
Section titled “在 bond 上打 VLAN”sudo ip link add link bond0 name bond0.100 type vlan id 100ip -d link show bond0.100 | head -2bond0.100@bond0: <BROADCAST,MULTICAST> ... state DOWN ... vlan protocol 802.1Q id 100 <REORDER_HDR> ...vlan protocol 802.1Q id 100 说明标签已配置;state DOWN 是因为还没 ip link set up——建 VLAN 接口不等于启用它。
nmcli 的配置方式(未在本环境验证)
Section titled “nmcli 的配置方式(未在本环境验证)”NetworkManager 环境下通常用 nmcli 建 bond/VLAN(本机没有 NM 守护进程,以下命令未执行):
sudo nmcli con add type bond con-name bond0 ifname bond0 \ bond.options "mode=active-backup,miimon=100"sudo nmcli con add type ethernet con-name bond0-slave1 ifname eno1 master bond0sudo nmcli con add type ethernet con-name bond0-slave2 ifname eno2 master bond0sudo nmcli con add type vlan con-name bond0.100 ifname bond0.100 dev bond0 id 100关键参数是 mode 与 miimon;slave 通过 master bond0 归属,VLAN 通过 dev bond0 指定父接口。
交换机侧要求(需要网络同事确认)
Section titled “交换机侧要求(需要网络同事确认)”| bond 模式 | 交换机侧 |
|---|---|
| active-backup(1) | 一般无需配置,两块口在同 VLAN 即可 |
| 802.3ad / LACP(4) | 必须在交换机上配置 LACP 端口组,两端速率/周期一致 |
| balance-alb(6) | 通常无需交换机配置,但依赖 ARP 协商 |
VLAN 侧:交换机对应端口必须是 trunk 并放行该 VLAN ID;access 口只能承载一个 VLAN。
- mode 选错:想要带宽叠加却配了 active-backup,实际只有一块在跑;
- LACP 两端不一致:交换机没配 LACP 而主机配 802.3ad,链路会一直 down;
- VLAN 建了没 up:
ip link set bond0.100 up之后才有流量。
练习:建 bond + VLAN 并验证
Section titled “练习:建 bond + VLAN 并验证”sudo ip link add dummy0 type dummy && sudo ip link add dummy1 type dummysudo ip link add bond0 type bond mode active-backup miimon 100sudo ip link set dummy0 master bond0 && sudo ip link set dummy1 master bond0sudo ip link set bond0 upcat /proc/net/bonding/bond0 | grep -E "Bonding Mode|Active Slave"sudo ip link add link bond0 name bond0.100 type vlan id 100ip -d link show bond0.100 | grep 802.1Q检查:
/proc/net/bonding/bond0显示active-backup且有 Active Slaveip -d link show bond0.100里有vlan protocol 802.1Q id 100ip -br link show里dummy0/dummy1带SLAVE标记- 清理后设备消失
常见问题
active-backup 和 802.3ad 怎么选?
要冗余且不想动交换机,用 active-backup;要带宽叠加且能配交换机 LACP,用 802.3ad。前者只有一块在跑,后者需要两端一致。
VLAN 接口建好后为什么不通?
先确认接口是 UP(ip link set up)、父接口也 UP、交换机端口是 trunk 且放行该 VLAN;三者缺一都不通。
miimon 设多少合适?
常见 100ms;太小会增加检测开销,太大故障切换慢。若用 LACP,还要与交换机的 LACP 速率匹配。
- 网络排查:网络不通的五层排查
- 静态 IP:nmcli 静态 IP
- 防火墙:firewalld 放行端口