用 nmcli 建网桥是干什么的
用 NetworkManager 的 nmcli 在宿主机上建网桥,把虚机网卡接入与宿主相同的二层网络,等价于 libvirt 的 bridge 网络模式。做法是新建 bridge 连接(如 br0)、把物理网卡作为 bridge-slave 挂进去,再把原先配在物理网卡上的地址配置迁移到 br0。要特别注意:把正在使用的管理网卡加入网桥会让原 IP 短暂中断。
基本信息
| 建桥 | nmcli con add type bridge ifname br0 con-name br0 |
|---|---|
| 挂物理口 | nmcli con add type bridge-slave ifname eth0 master br0 |
| IP 迁移 | 把原 eth0 的地址配置迁移到 br0 |
| 检查 | nmcli con show --active |
| 持久化 | NetworkManager 自动保存连接配置,重启后生效 |
典型使用场景
- 虚机需要与宿主同一网段、由外部 DHCP 分配地址
- 让虚机能被同网段其他主机直接访问,而不是走 NAT
- 为容器或虚拟化环境搭建统一的二层出口
- 替换旧式 bridge 脚本,统一由 NetworkManager 管理
- 配合 VLAN 子接口承载多网段虚机
建桥并核对
建桥并核对
nmcli con add type bridge ifname br0 con-name br0 stp no
nmcli con add type bridge-slave ifname eth0 master br0
nmcli con up br0 # 启用网桥,原 eth0 连接会随之切换
nmcli -f NAME,DEVICE,STATE con show --active
ip -br addr show br0 # 确认 br0 拿到了地址
# libvirt 侧把虚机网卡接到网桥:<interface type='bridge'><source bridge='br0'/></interface>步骤与风险
| 步骤 | 命令要点 | 风险 |
|---|---|---|
| 建桥 | 指定 ifname 与连接名 | 命名与既有连接冲突时需要先清理 |
| 挂物理口 | 用 bridge-slave 绑定物理网卡 | 把管理网卡挂入会造成瞬时断连 |
| 迁移 IP | 把地址配置从物理口搬到 br0 | 忘记迁移则宿主失去网络 |
| 启用 | nmcli con up br0 | 远程操作时可能直接失去会话 |
| 接入虚机 | 虚机网卡指向 br0 | 虚拟交换机侧配置与桥接模式混用导致不通 |
把管理网卡加入网桥会让原 IP 配置中断,改前确认物理带外或云控制台可用,避免改完直接失联。
网桥上的 STP 会带来数十秒的收敛延迟,点对点或单上行链路场景通常无需开启;跨 VLAN 场景需要按需配置网桥的 VLAN 过滤能力。
操作顺序建议
- 先确认物理带外管理或云控制台可用,避免改网络后无法回退
- 提前把 eth0 的地址、网关与 DNS 信息记录下来,便于迁移到 br0
- 建桥与挂物理口可以在会话中完成,真正切换 IP 的动作放到最后
- 用 nmcli con up br0 后立刻核对地址与连通性,再测试虚机上网
- 确认无误后把连接设置为开机自动启用,防止重启后网络未恢复