PVE 服务器网络配置部署文档
PVE web截图:


写在前面:两种部署方案评价
一句话结论
本文档包含两种方案,最优解不是二选一,而是****按网段分别决定宿主机是否占 IP:管理网和内网占、外网不占。即 vmbr0 占 IP(必须)、vmbr1 占 IP(建议)、vmbr2 不占 IP(强烈建议)。
核心判断原则
宿主机要不要在某网段占 IP,只取决于这个网段是「给人管宿主机用」还是「给业务 VM 用」,以及它的暴露面:
| 网段 |
是否占宿主机 IP |
理由 |
| 管理网 vmbr0 |
✅ 必须 |
不占就没法远程登录 |
| 内网 vmbr1 |
✅ 建议 |
私网无暴露,占 IP 能直接管理 VM |
| 外网 vmbr2 |
❌ 强烈建议不占 |
宿主机暴露在业务外网段 = 危险 |
方案一:宿主机占全部三个 IP(见第八节「目标配置」)
- 优点:配置统一、直觉简单;宿主机可直接 SSH 进内网 VM、给内网当 DHCP / DNS / 共享存储;排障方便。
- 缺点:vmbr2 外网段宿主机暴露,安全风险大,多出两个攻击面。
- 评价:对内网 / 办公网没问题,唯独 vmbr2 占 IP 是明确失误——对外提供服务的宿主机不应把 IP 放进面向外部的网段。
方案二:纯 VM 网段版(见第十七节「扩展配置」)
- 优点:vmbr2 外网段宿主机不暴露,安全正确,符合公网桥接最佳实践;配置更简洁。
- 缺点:把 vmbr1 内网也一并去掉 IP,属于「过度」——内网是私网,占 IP 零安全代价,白白牺牲了直接管理 VM 的便利。
- 评价:外网段处理正确,内网段去 IP 是误伤。
推荐:混合方案(取两者之长)
针对「PVE 开通虚拟机对外服务」的目标:
| 网桥 |
是否占宿主机 IP |
理由 |
| vmbr0 |
✅ 10.0.0.147/24 + 网关 |
管理入口,必须 |
| vmbr1 |
✅ 192.168.22.132/24 |
内网私网,占 IP 零风险,方便管理 VM |
| vmbr2 |
❌inet manual无 IP |
外网段,宿主机不暴露,安全第一 |
注:VMware Workstation 模拟环境下三个网段均为私网地址,无真正公网暴露;「vmbr2 不占 IP」在此更多是养成正确的架构习惯,上真机接真公网 IP 后,这道防线就是保护宿主机的关键。
推荐的完整配置(混合方案)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
| auto lo iface lo inet loopback
# ============ bond0:办公网 / 管理网(nic0 + nic1,802.3ad LACP) ============ auto bond0 iface bond0 inet manual bond-slaves nic0 nic1 bond-mode 802.3ad bond-miimon 100 bond-xmit-hash-policy layer2+3
auto vmbr0 iface vmbr0 inet static address 10.0.0.147/24 gateway 10.0.0.220 bridge-ports bond0 bridge-stp off bridge-fd 0
# ============ bond1:内网(nic2 + nic3,802.3ad LACP) ============ auto bond1 iface bond1 inet manual bond-slaves nic2 nic3 bond-mode 802.3ad bond-miimon 100 bond-xmit-hash-policy layer2+3
auto vmbr1 iface vmbr1 inet static address 192.168.22.132/24 bridge-ports bond1 bridge-stp off bridge-fd 0
# ============ bond2:外网桥接(nic4 + nic5,802.3ad LACP) ============ auto bond2 iface bond2 inet manual bond-slaves nic4 nic5 bond-mode 802.3ad bond-miimon 100 bond-xmit-hash-policy layer2+3
auto vmbr2 iface vmbr2 inet manual bridge-ports bond2 bridge-stp off bridge-fd 0
source /etc/network/interfaces.d/*
|
**关键差异:相比第八节「方案一」,仅 vmbr2 由 **inet static + IP 改为 inet manual(宿主机不占外网段 IP);vmbr0、vmbr1 保持不变。
目录
- 文档信息
- 部署概述
- 环境信息
- 网络规划
- 802.3ad 链路聚合原理简述
- 网络拓扑
- 配置变更前后对比
- 目标配置
- 配置参数逐项说明
- 部署步骤
- 验证方法与结果解读
- 回滚方案
- 虚拟机网络接入指南
- 常见问题与故障排查
- 日常运维指南
- 常见错误与规避清单
- 扩展配置:纯 VM 网段版
一、文档信息
| 项目 |
内容 |
| 部署日期 |
2026-08-13 |
| 适用主机 |
PVE 服务器(hostname:pve) |
| PVE 版本 |
pve-manager/9.2.2 |
| 内核版本 |
7.0.2-6-pve |
| 网络管理工具 |
ifupdown2 3.3.0-1+pmx12 |
| 运行环境 |
VMware Workstation 模拟(6 张虚拟网卡nic0~nic5) |
| 配置文件 |
/etc/network/interfaces |
| 配置备份 |
/root/interfaces.bak.20260813-165218 |
| 网卡命名 |
保持系统默认名nic0~nic5(未改名为 eno/enp 风格) |
二、部署概述
2.1 目标
**本机共 **6 张物理/虚拟网卡,两两一组做 802.3ad(LACP)链路聚合,形成 3 个 bond + 3 个 Linux Bridge:
| bond |
成员网卡 |
上层网桥 |
用途 |
| bond0 |
nic0 + nic1 |
vmbr0 |
办公/管理网,用于远程登录宿主机 |
| bond1 |
nic2 + nic3 |
vmbr1 |
内网,供 PVE 创建的虚拟机之间互通 |
| bond2 |
nic4 + nic5 |
vmbr2 |
外网桥接,供虚拟机绑定外网 IP 对外服务 |
2.2 为什么这样设计
- 管理网(vmbr0):宿主机唯一的管理入口,独立成组,VM 一般不接入,避免业务流量干扰远程登录。
- 内网(vmbr1):VM 之间走内部二层互通,不走网关,速度快、隔离性好。
- 外网(vmbr2):VM 直接桥接物理/外部网段,通过绑定外网 IP 对外提供服务,最接近直连物理网络的形态。
- 802.3ad 聚合:三组网卡各自聚合,提供链路冗余 + 带宽叠加。
三、环境信息
3.1 网卡清单(部署前实测)
| 网卡 |
MAC 地址 |
初始状态 |
速率 |
角色 |
| nic0 |
00:0c:29:54:76:fd |
UP(已在 vmbr0 上) |
1000 Mbps |
bond0 主从卡 |
| nic1 |
00:0c:29:54:76:07 |
DOWN |
— |
bond0 从卡 |
| nic2 |
00:0c:29:54:76:11 |
DOWN |
— |
bond1 主从卡 |
| nic3 |
00:0c:29:54:76:1b |
DOWN |
— |
bond1 从卡 |
| nic4 |
00:0c:29:54:76:25 |
DOWN |
— |
bond2 主从卡 |
| nic5 |
00:0c:29:54:76:2f |
DOWN |
— |
bond2 从卡 |
3.2 部署前网络现状
- **仅 **
nic0 接入 vmbr0,IP 10.0.0.147/24,网关 10.0.0.220。
- 默认路由:
default via 10.0.0.220 dev vmbr0。
- DNS:
223.5.5.5(阿里 DNS),search 域 localdomain。
/etc/hosts:10.0.0.147 pve.localdomain pve。
- nic1~nic5 全部 DOWN(未接线或链路未通)。
- 尚无任何 bond 接口。
3.3 软件/内核支持情况
| 检查项 |
结果 |
| bonding 内核模块 |
已加载(lsmod可见bonding) |
| bond 控制接口 |
/sys/class/net/bonding_masters存在 |
| ifupdown2 |
已安装(3.3.0),原生支持 bond,无需ifenslave |
**结论:内核与工具链均已就绪,可直接在 **/etc/network/interfaces 中写 bond 配置。
四、网络规划
| 网桥 |
网段 |
宿主机 IP |
网关 |
说明 |
| vmbr0 |
10.0.0.0/24 |
10.0.0.147/24 |
10.0.0.220 |
办公/管理网 |
| vmbr1 |
192.168.22.0/24 |
192.168.22.132/24 |
无(纯内网) |
VM 间通信 |
| vmbr2 |
192.168.110.0/24 |
192.168.110.105/24 |
无(VM 各自配) |
外网 IP 桥接 |
关键说明:
- **用户给出的 **
192.168.22.132 与 192.168.110.105 经确认均为 宿主机在对应网桥上的 IP,网段分别为 192.168.22.0/24 与 192.168.110.0/24。
- vmbr1 为纯内网,无需网关;VM 之间二层直通。
- vmbr2 用于 VM 绑定外网 IP,宿主机侧 *不配网关;*每个 VM 需自行配置网关(指向 192.168.110.0/24 网段的上游路由器,如
192.168.110.1,实际以机房/网络规划为准,本文档中该网关地址未提供)。
- **办公网宿主机 IP 保留原有的 **
10.0.0.147(/etc/hosts 中也指向该地址)。
五、802.3ad 链路聚合原理简述
- 802.3ad(LACP,动态链路聚合):通过 LACP 协议与对端(交换机)协商,将多条物理链路捆绑成一个逻辑链路,实现带宽叠加与链路冗余。
- 负载分担:由
bond-xmit-hash-policy 决定流量如何在不同从卡间分布。
- 故障切换:任一从卡链路断开,流量自动切到其余从卡,业务不中断。
- 前提:对端交换机必须将对应端口配成同一个 LACP 聚合组(Port-Channel / LAG)。
**⚠️ 本环境为 VMware Workstation 模拟,虚拟交换机不会真正做 LACP 聚合,故每个 bond 的两张从卡会分属不同 Aggregator(详见 **第十一节)。宿主机侧 802.3ad 配置本身正确,上真机 + 真交换机后即正常聚合。
六、网络拓扑
1 2 3 4 5 6 7 8 9 10 11 12
| ┌───────────┐ 办公/管理网 ─────│ vmbr0 │──── bond0 (802.3ad) ──┬─ nic0 10.0.0.147/24 │ 10.0.0.147│ └─ nic1 └───────────┘ ┌───────────┐ 内网 (VM互通) ───│ vmbr1 │──── bond1 (802.3ad) ──┬─ nic2 192.168.22.0/24 │ .22.132 │ └─ nic3 └───────────┘ ┌───────────┐ 外网 (VM绑IP) ───│ vmbr2 │──── bond2 (802.3ad) ──┬─ nic4 192.168.110.0/24 │ .110.105 │ └─ nic5 └───────────┘
|
七、配置变更前后对比
7.1 变更前 /etc/network/interfaces
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| auto lo iface lo inet loopback
iface nic0 inet manual
auto vmbr0 iface vmbr0 inet static address 10.0.0.147/24 gateway 10.0.0.220 bridge-ports nic0 bridge-stp off bridge-fd 0
iface nic1 inet manual iface nic2 inet manual iface nic3 inet manual iface nic4 inet manual iface nic5 inet manual
source /etc/network/interfaces.d/*
|
7.2 变更要点
| 变更项 |
变更前 |
变更后 |
| 管理网接入 |
vmbr0 直连 nic0 |
vmbr0 接入 bond0(nic0+nic1) |
| nic1~nic5 |
定义为inet manual,未使用 |
全部纳入对应 bond,删除单独定义 |
| 内网 |
无 |
新增 bond1 + vmbr1(192.168.22.132/24) |
| 外网 |
无 |
新增 bond2 + vmbr2(192.168.110.105/24) |
| 办公网 IP / 网关 |
10.0.0.147 / 10.0.0.220 |
保持不变 |
八、目标配置
/etc/network/interfaces 完整内容:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
| auto lo iface lo inet loopback
# ============ bond0:办公网 / 管理网(nic0 + nic1,802.3ad LACP) ============ auto bond0 iface bond0 inet manual bond-slaves nic0 nic1 bond-mode 802.3ad bond-miimon 100 bond-xmit-hash-policy layer2+3
auto vmbr0 iface vmbr0 inet static address 10.0.0.147/24 gateway 10.0.0.220 bridge-ports bond0 bridge-stp off bridge-fd 0
# ============ bond1:内网(nic2 + nic3,802.3ad LACP) ============ auto bond1 iface bond1 inet manual bond-slaves nic2 nic3 bond-mode 802.3ad bond-miimon 100 bond-xmit-hash-policy layer2+3
auto vmbr1 iface vmbr1 inet static address 192.168.22.132/24 bridge-ports bond1 bridge-stp off bridge-fd 0
# ============ bond2:外网桥接(nic4 + nic5,802.3ad LACP) ============ auto bond2 iface bond2 inet manual bond-slaves nic4 nic5 bond-mode 802.3ad bond-miimon 100 bond-xmit-hash-policy layer2+3
auto vmbr2 iface vmbr2 inet static address 192.168.110.105/24 bridge-ports bond2 bridge-stp off bridge-fd 0
source /etc/network/interfaces.d/*
|
注意:网卡成为 bond 从卡后,由 bond-slaves 接管,不能再单独定义 iface nicX inet manual,否则会冲突。
九、配置参数逐项说明
9.1 bond 部分
| 参数 |
取值 |
含义 |
bond-slaves |
nic0 nic1 等 |
指定聚合成员网卡 |
bond-mode |
802.3ad |
LACP 动态链路聚合模式 |
bond-miimon |
100 |
每 100ms 检测一次链路健康状态(单位 ms) |
bond-xmit-hash-policy |
layer2+3 |
按「源/目的 MAC + 源/目的 IP」哈希分载;如需按端口粒度打散单条大流量可改layer3+4 |
未显式指定的参数(采用默认值):
| 参数 |
默认值 |
说明 |
bond-lacp-rate |
slow(30s) |
LACP 报文发送间隔;若交换机设为 fast(1s)需手动加bond-lacp-rate fast |
bond-updelay |
0ms |
从卡恢复后启用前的延迟 |
bond-downdelay |
0ms |
从卡故障后禁用前的延迟 |
bond-primary |
无 |
未指定主从卡,由 LACP 自动协商 |
9.2 bridge 部分
| 参数 |
取值 |
含义 |
bridge-ports |
bond0 等 |
网桥挂载的上行端口 |
bridge-stp |
off |
关闭生成树协议(无环环境,PVE 默认) |
bridge-fd |
0 |
转发延迟设为 0(STP 关闭时无效,PVE 默认) |
address |
各网桥 IP |
宿主机在该网桥上的 IP |
gateway |
10.0.0.220 |
仅 vmbr0 配置默认网关 |
9.3 inet manual 与 inet static 的区别
iface bond0 inet manual:bond 接口本身不配 IP,仅作二层聚合,IP 由上层网桥承担。
iface vmbr0 inet static:网桥直接配置静态 IP(PVE 标准做法)。
十、部署步骤
⚠️ 该操作会改动「远程登录所在的管理网」,务必先确认有控制台 / IPMI 兜底,再按顺序执行。以下命令均需 root 权限。
步骤 1:备份原配置
1
| cp /etc/network/interfaces /root/interfaces.bak.$(date +%Y%m%d-%H%M%S)
|
本次实际生成的备份文件:/root/interfaces.bak.20260813-165218(339 字节)。
步骤 2:写入新配置
**将「八、目标配置」内容写入 **/etc/network/interfaces。可直接编辑,或用如下方式替换:
1 2
| # 假设新配置已存为 /tmp/interfaces.new cp /tmp/interfaces.new /etc/network/interfaces
|
步骤 3:语法校验
- **预期:仅提示 **
bridge-fd: value out of range "0" 的 warning(ifupdown2 3.3.0 严格校验所致,非致命,可忽略)。
- **若出现 **
error: 字样,需先修正再继续。
步骤 4:干跑(不实际生效)
- **打印将要执行的变更计划,退出码 **
0 表示变更计划可正常执行。
步骤 5:挂 120 秒自动回滚定时器(强烈推荐)
万一应用后管理网断开,定时器会自动还原配置并重新加载网络,避免失联:
1 2
| systemd-run --on-active=120s --unit=pve-net-rollback \ /bin/bash -lc 'cp -f /root/interfaces.bak.20260813-165218 /etc/network/interfaces && /usr/sbin/ifreload -a'
|
- **可通过 **
systemctl list-timers 'pve-net-rollback*' 确认定时器已就绪。
步骤 6:应用配置
- **预期退出码 **
0。ifupdown2 采用增量应用,未变化的部分不会重启,通常不会断连。
步骤 7:验证通过后,取消回滚定时器
1
| systemctl stop pve-net-rollback.timer
|
- 若验证失败或失联,****不要取消,等待定时器自动回滚即可。
十一、验证方法与结果解读
11.1 验证命令
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| # 1. 接口与地址 ip -br addr show dev bond0 bond1 bond2 vmbr0 vmbr1 vmbr2
# 2. 路由表 ip route
# 3. bond 模式与从卡状态 cat /proc/net/bonding/bond0 cat /proc/net/bonding/bond1 cat /proc/net/bonding/bond2
# 4. 连通性 ping -c 3 10.0.0.220 # 网关 ping -c 2 223.5.5.5 # DNS
|
11.2 本次部署实测结果
| 检查项 |
结果 |
| bond0 / bond1 / bond2 |
全部 UP,模式 IEEE 802.3ad ✅ |
| vmbr0 |
10.0.0.147/24 ✅ |
| vmbr1 |
192.168.22.132/24 ✅ |
| vmbr2 |
192.168.110.105/24 ✅ |
| 默认路由 |
default via 10.0.0.220 dev vmbr0✅ |
| 网关 10.0.0.220 |
3 包全通,0% 丢包,平均 0.657ms ✅ |
| DNS 223.5.5.5 |
2 包全通,约 11.4ms ✅ |
11.3 如何解读 /proc/net/bonding/bond0 输出
关键字段含义:
| 字段 |
含义 |
正常值 |
Bonding Mode |
聚合模式 |
IEEE 802.3ad Dynamic link aggregation |
MII Status |
链路状态 |
up |
LACP active |
LACP 是否激活 |
on |
System MAC address |
bond 逻辑接口 MAC |
取某张从卡 MAC |
Slave Interface |
从卡名 |
nic0 / nic1 |
Link Failure Count |
链路故障次数 |
0 |
Aggregator ID |
所属聚合组编号 |
同一 bond 的所有从卡应相同 |
Actor Churn / Partner Churn State |
聚合抖动监测状态 |
monitoring(正常) |
⚠️ *关于 Aggregator ID 的说明:正常情况下同一 LACP 聚合组内所有从卡应具有*相同的 Aggregator ID。本部署中每个 bond 的两张从卡分属 Aggregator 1 与 Aggregator 2(如 bond0 中 nic0=1、nic1=2),这是因为 VMware Workstation 的虚拟交换机不做真正的 LACP 聚合,属模拟环境正常现象。上真机 + 真交换机正确配置 LACP 后,两张从卡应合并到同一 Aggregator,实现真正的带宽叠加。
十二、回滚方案
12.1 立即回滚(手动)
1 2
| cp /root/interfaces.bak.20260813-165218 /etc/network/interfaces ifreload -a
|
12.2 从控制台/IPMI 回滚
若已失联,通过控制台或 IPMI 登录后执行上述两条命令,或直接重启主机(/etc/network/interfaces 已被定时器还原的情况下)。
十三、虚拟机网络接入指南
13.1 网桥选择对照表
| 需求 |
网桥选择 |
VM 内配置 |
| 仅内网互通 |
vmbr1 |
192.168.22.0/24 段静态/动态 IP |
| 绑定外网 IP 对外服务 |
vmbr2 |
192.168.110.0/24 段 IP + 上游网关 |
| 远程登录宿主机 |
— |
不建议给 VM,仅宿主机使用 vmbr0 |
13.2 外网 VM 配置示例
**假设上游网关为 **192.168.110.1,给 VM 绑定外网 IP 192.168.110.50:
- 网桥:vmbr2
- IP:
192.168.110.50/24
- 网关:
192.168.110.1
- DNS:
223.5.5.5
13.3 在 PVE 中为 VM 指定网桥
Web 图形界面:
- 选择目标虚拟机 → 「硬件」→「添加」→「网络设备」;
- **「桥接」下拉框选择 **
vmbr1(内网)或 vmbr2(外网);
- **模型建议 **
VirtIO(性能最佳),确认保存。
命令行(示例,给 VMID=100 的虚拟机添加一块接 vmbr2 的网卡):
1
| qm set 100 --net1 virtio,bridge=vmbr2
|
十四、常见问题与故障排查
14.1 ifreload -s 提示 bridge-fd: value out of range "0"
- 原因:ifupdown2 3.3.0 严格校验,认为 0 不在 2–255 范围内。
- 处理:非致命 warning,可忽略;PVE 默认即
bridge-fd 0,不影响功能。
14.2 应用后管理网断开
- 原因:多为交换机侧 LACP 未正确聚合,或 bond 无任一从卡协商成功。
- 处理:
- 若挂有自动回滚定时器,等待其自动还原;
- **否则通过控制台/IPMI 执行 **回滚方案;
- 排查交换机 LACP 配置后再重试。
14.3 bond 从卡分属不同 Aggregator(VMware 模拟环境)
- 现象:
cat /proc/net/bonding/bondX 中两张从卡 Aggregator ID 不同。
- 原因:VMware Workstation 虚拟交换机不做真正 LACP 聚合。
- 处理:模拟环境可忽略;上真机后若仍如此,需检查交换机是否把对应端口划入同一 LACP 聚合组。
14.4 想调整负载分担粒度
- **将 **
bond-xmit-hash-policy layer2+3 改为 layer3+4(按端口粒度,TCP/UDP 多流场景负载更均匀),改后 ifreload -a 生效。
14.5 LACP 速率不匹配(真机)
- **若交换机 LACP 速率为 fast(1s),需在 bond 配置中加 **
bond-lacp-rate fast,与交换机保持一致。
十五、日常运维指南
15.1 日常巡检清单
| 巡检项 |
命令 |
正常标准 |
| bond 模式 |
`cat /proc/net/bonding/bond0 |
grep “Bonding Mode”` |
| 从卡链路状态 |
`cat /proc/net/bonding/bond0 |
grep “MII Status”` |
| 链路故障计数 |
`cat /proc/net/bonding/bond0 |
grep “Link Failure”` |
| 聚合抖动监测 |
`cat /proc/net/bonding/bond0 |
grep “Churn”` |
| 网桥状态 |
ip -br link show type bridge |
vmbr0/1/2 均UP |
| 地址与路由 |
ip -br addr、ip route |
三网桥 IP 正确,默认路由经 vmbr0 |
| 网关连通性 |
ping -c 3 10.0.0.220 |
0% 丢包 |
| 系统日志 |
`dmesg -T |
grep -iE ‘bond |
15.2 一键巡检脚本示例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| #!/bin/bash # 保存为 /usr/local/sbin/pve-net-check.sh,建议加入 crontab 定时执行
echo "===== 1. Bond 状态 =====" for b in bond0 bond1 bond2; do echo "--- $b ---" grep -E 'Bonding Mode|MII Status|Link Failure|Aggregator ID' /proc/net/bonding/$b 2>/dev/null done
echo "===== 2. 网桥状态 =====" ip -br link show type bridge
echo "===== 3. 地址与路由 =====" ip -br addr show dev bond0 bond1 bond2 vmbr0 vmbr1 vmbr2 ip route
echo "===== 4. 连通性 =====" ping -c 2 -W 2 10.0.0.220 >/dev/null 2>&1 && echo "[OK] 网关 10.0.0.220 可达" || echo "[FAIL] 网关不可达"
|
15.3 链路故障与 failover 演练
1 2 3 4 5 6 7 8
| # 1) 模拟 nic1 故障 ip link set nic1 down
# 2) 观察 bond0:真机 + 正确 LACP 交换机下,流量应自动切到 nic0,业务不中断 cat /proc/net/bonding/bond0
# 3) 恢复 nic1,应自动重新聚合 ip link set nic1 up
|
注意:VMware Workstation 模拟环境下两从卡分属不同 Aggregator,failover 行为与真机不同;本演练以真机 + 正确 LACP 交换机为准。
15.4 常见运维操作
| 操作 |
命令/步骤 |
说明 |
| 修改某网桥 IP |
编辑/etc/network/interfaces→ifreload -a |
改前先备份 |
| 临时下线某从卡 |
ip link set nicX down |
用于维护/排障 |
| 重新上线从卡 |
ip link set nicX up |
自动重新聚合 |
| 新增网桥 |
配置中新增 bond + vmbr 段 →ifreload -a |
命名与模式保持一致 |
| 移除从卡 |
从bond-slaves删除该卡 →ifreload -a |
确认有替代链路后再删 |
15.5 监控建议
- 关键指标:bond 各从卡 MII 状态、
Link Failure Count、Churn 计数、网桥 up/down、网关可达性。
- 日志:
dmesg / journalctl 中 bond、bridge 相关告警;链路反复 up/down(flap)是重点排查对象。
- 外部监控:node_exporter 的
node_network_*、node_bonding_* 指标可接入 Prometheus/Grafana 或 Zabbix 做告警。
15.6 变更规范(务必遵守)
- 改前必备份:
cp /etc/network/interfaces /root/interfaces.bak.$(date +%Y%m%d-%H%M%S)。
- 改前先校验:
ifreload -a -s 与 ifreload -a -n,确认语法与变更计划无误。
- 改管理网时:挂自动回滚定时器 + 确认控制台/IPMI 兜底。
- 改后必验证:
ip -br addr、ip route、ping 网关,全部正常后再关回滚。
- 变更留痕:记录变更时间、内容、备份文件路径,便于回溯。
十六、常见错误与规避清单
16.1 配置类错误
| # |
错误 |
后果 |
正确做法 |
| 1 |
bond 从卡又单独定义iface nicX inet manual |
与bond-slaves冲突,ifreload 报错或状态异常 |
从卡只出现在bond-slaves,删除单独定义 |
| 2 |
bond-slaves网卡名写错 |
bond 无法建立 |
用ip link核对真实网卡名 |
| 3 |
bond-mode写成balance-rr/active-backup等 |
与交换机 802.3ad 不匹配,聚合失败 |
统一用802.3ad |
| 4 |
bridge-ports直接挂物理网卡(绕过 bond) |
链路聚合失效 |
网桥必须挂 bond 接口 |
| 5 |
忘记auto关键字 |
重启后接口不自动 up |
bond/vmbr 前均加auto |
| 6 |
缩进混用 tab 与空格 |
ifupdown 解析报错 |
全文件统一 tab 或统一空格 |
| 7 |
vmbr1 / vmbr2 也配了gateway |
产生多默认路由,路由混乱 |
仅 vmbr0 配网关,或显式设metric |
| 8 |
网段 / 掩码写错 |
网络不通 |
严格按规划表核对 |
16.2 环境 / 交换机类错误
| # |
错误 |
后果 |
正确做法 |
| 9 |
交换机未把两端口划入同一 LACP 聚合组 |
两从卡分属不同 Aggregator,无带宽叠加 |
交换机侧将对应端口划入同一 Port-Channel / LAG |
| 10 |
LACP 速率不匹配(slow vs fast) |
协商异常或缓慢 |
交换机与 bond 侧对齐bond-lacp-rate |
| 11 |
哈希策略用layer2(真机单网关) |
所有流量只走一条从卡 |
用layer2+3或layer3+4 |
16.3 运维类错误
| # |
错误 |
后果 |
正确做法 |
| 12 |
在远程登录的管理网卡上直接改配置且无兜底 |
改坏即失联 |
备份 + 自动回滚定时器 + 控制台兜底 |
| 13 |
把管理网 vmbr0 给业务 VM 使用 |
业务流量冲击管理通道 |
管理网专用,VM 用 vmbr1 / vmbr2 |
| 14 |
外网 VM 只绑 IP 不配网关 |
绑了 IP 也出不去外网 |
VM 内配上游网关(如 192.168.110.1) |
| 15 |
改前不备份 |
改坏无法回滚 |
任何变更前先备份 |
| 16 |
改完不验证就关闭回滚定时器 |
出问题无法自动恢复 |
验证通过后再systemctl stop |
十七、扩展配置:纯 VM 网段版
**变体说明:本方案 vmbr1 / vmbr2 **不给宿主机配 IP,仅作二层网桥供 VM 划分网段(内网 192.168.22.0/24、外网 192.168.110.0/24)。管理网 vmbr0 保持不变。
17.1 适用场景与取舍
| 维度 |
主配置(宿主机占 IP) |
扩展配置(纯 VM 网段) |
| 宿主机访问内网 / 外网 VM |
可(有 IP) |
不可(无 IP) |
| 宿主机暴露面 |
更大 |
更小,更安全 |
| 适用场景 |
宿主机需管理 / 服务 VM,或当 DHCP / DNS |
纯 VM 划分,宿主机不出现在该二层段 |
17.2 与主配置的区别
| 网桥 |
主配置 |
扩展配置 |
| vmbr0 |
static+10.0.0.147/24+ 网关 |
不变 |
| vmbr1 |
static+192.168.22.132/24 |
manual,无 IP |
| vmbr2 |
static+192.168.110.105/24 |
manual,无 IP |
17.3 完整配置
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
| auto lo iface lo inet loopback
# ============ bond0:办公网 / 管理网(nic0 + nic1,802.3ad LACP) ============ auto bond0 iface bond0 inet manual bond-slaves nic0 nic1 bond-mode 802.3ad bond-miimon 100 bond-xmit-hash-policy layer2+3
auto vmbr0 iface vmbr0 inet static address 10.0.0.147/24 gateway 10.0.0.220 bridge-ports bond0 bridge-stp off bridge-fd 0
# ============ bond1:内网(nic2 + nic3,802.3ad LACP) ============ auto bond1 iface bond1 inet manual bond-slaves nic2 nic3 bond-mode 802.3ad bond-miimon 100 bond-xmit-hash-policy layer2+3
auto vmbr1 iface vmbr1 inet manual bridge-ports bond1 bridge-stp off bridge-fd 0
# ============ bond2:外网桥接(nic4 + nic5,802.3ad LACP) ============ auto bond2 iface bond2 inet manual bond-slaves nic4 nic5 bond-mode 802.3ad bond-miimon 100 bond-xmit-hash-policy layer2+3
auto vmbr2 iface vmbr2 inet manual bridge-ports bond2 bridge-stp off bridge-fd 0
source /etc/network/interfaces.d/*
|
17.4 VM 使用说明
| 需求 |
网桥 |
VM 内配置 |
| 内网 VM 互通 |
vmbr1 |
192.168.22.0/24 段 IP(如 192.168.22.10/24),无需网关 |
| 外网 VM 对外服务 |
vmbr2 |
192.168.110.0/24 段 IP + 上游网关(如 IP 192.168.110.50/24、网关 192.168.110.1) |
| 宿主机远程登录 |
vmbr0 |
10.0.0.147/24,仅宿主机使用 |
17.5 关键注意点
- **必须把
inet static 改成 inet manual**,不能只删 address 行——static 缺 address 属无效配置。
- 宿主机不再出现在内网 / 外网二层段;若日后需要宿主机访问这些 VM(如 SSH 进内网 VM、给 VM 当 DHCP / DNS),需给对应网桥加回 IP。
- 本扩展配置只改 vmbr1 / vmbr2,****不碰 vmbr0 管理网,应用时不会导致远程掉线。
本文档记录了 2026-08-13 本次网络配置部署的全过程、配置内容、验证结果、回滚手段,以及该架构下的日常运维、常见错误与扩展配置,供后续运维参考。