Proxmox VE 網路管理:Bridge、Bond 與 VLAN
PVE 的網路其實就是 Linux 標準網路堆疊,沒有什麼黑魔法。但如果概念不清楚,改個設定就斷網、改完發現 VM 全部失聯的慘劇屢見不鮮——就像裝潢的時候不小心切到主水管,整層樓一起停水。如果你還沒裝好 PVE 和第一台 VM,建議先看 安裝與建立首台 VM。
網路怎麼接的?
PVE 的網路模型長這樣,由下往上看:
┌──────────────────────────────┐
│ VM / LXC 容器 │
│ (tap / veth 虛擬網卡) │
├──────────────────────────────┤
│ Linux Bridge (vmbr0) │
│ → 虛擬交換機 │
├──────────────────────────────┤
│ Bond / VLAN (可選) │
├──────────────────────────────┤
│ 實體網卡 (eno1, enp3s0) │
└──────────────────────────────┘
簡單說:vmbr0 就是一台虛擬交換機,VM 插上去就能跟實體網路通訊。PVE 安裝完會自動建好一個 vmbr0 橋接到第一張實體網卡,開箱即用。
Linux Bridge:預設就夠用
大多數場景根本不需要換,Linux Bridge 就是你的好朋友。設定檔在 /etc/network/interfaces:
auto vmbr0
iface vmbr0 inet static
address 192.168.1.100/24
gateway 192.168.1.1
bridge-ports eno1
bridge-stp off
bridge-fd 0
所有 VM 跟容器預設都接到 vmbr0,大家共用同一條對外通道。Homelab 單網卡的情境,這樣就完事了。
Open vSwitch(OVS)是進階選項,支援 OpenFlow、VXLAN tunnel 這些 SDN 功能。除非你要做軟體定義網路或者有特殊需求,不然 Linux Bridge 就很夠。要裝的話:
apt install openvswitch-switch。
Bonding:兩條網線綁一起
家裡或機房有兩張以上的網卡?可以用 Bonding 把它們綁成一個邏輯介面,達到冗餘或提升頻寬。就像停車場有兩個出口——一個塞住了還有另一個能走。
六種模式,挑重點講:
| 模式 | 名稱 | 白話說明 | 需要交換機配合? |
|---|---|---|---|
| 0 | balance-rr | 輪流用,封包一人一個 | 是 |
| 1 | active-backup | 主備切換,最穩最安全 | 否 |
| 2 | balance-xor | 雜湊分配 | 是 |
| 4 | 802.3ad (LACP) | IEEE 標準聚合,吞吐量翻倍 | 是 |
| 5 | balance-tlb | 自動平衡傳輸負載 | 否 |
| 6 | balance-alb | 自動平衡收發負載 | 否 |
Homelab 推薦:active-backup(mode 1),不用管交換機設定,插上就有冗餘。
生產環境推薦:802.3ad(mode 4),需要交換機那邊也開 LACP,但頻寬真的會加倍。
auto bond0
iface bond0 inet manual
bond-slaves eno1 eno2
bond-miimon 100
bond-mode 802.3ad
bond-xmit-hash-policy layer3+4
auto vmbr0
iface vmbr0 inet static
address 192.168.1.100/24
gateway 192.168.1.1
bridge-ports bond0
bridge-stp off
bridge-fd 0
bond-miimon 100是每 100 毫秒偵測一次鏈路狀態。設太長的話,網卡斷了你會慢半拍才知道。
VLAN:一條線切成好幾段
VLAN 讓你在同一張實體網卡上切出多個邏輯網路,彼此隔離。像一棟公寓裡的不同樓層——住同一棟但互不干擾。
PVE 有兩種做法:
老方法:每個 VLAN 一個 Bridge
auto eno1.100
iface eno1.100 inet manual
auto vmbr100
iface vmbr100 inet static
address 10.100.0.1/24
bridge-ports eno1.100
新方法:VLAN-aware Bridge(推薦)
auto vmbr0
iface vmbr0 inet static
address 192.168.1.100/24
gateway 192.168.1.1
bridge-ports eno1
bridge-vlan-aware yes
bridge-vids 2-4094
VLAN-aware 的好處是一個 Bridge 搞定所有 VLAN,在 VM 的網卡設定裡直接填 VLAN Tag 就好,不用為每個 VLAN 建一個 Bridge。維護起來乾淨很多,就像用一個衣櫃分隔板取代買十個小櫃子。
網路規劃建議
Homelab(1-2 張網卡)
把 vmbr0 設成 VLAN-aware,管理跟 VM 流量用 VLAN Tag 分開就好。簡單、夠用、不折騰。
生產環境(4 張以上網卡)
| Bridge | 用途 | 建議頻寬 |
|---|---|---|
vmbr0 |
管理網路 | 1 Gbps |
vmbr1 |
VM/CT 業務流量 | 1-10 Gbps |
vmbr2 |
存儲網路(Ceph/NFS) | 10 Gbps+ |
vmbr3 |
Corosync 叢集通訊 | 1 Gbps(低延遲) |
管理、存儲、業務三條路分開走,跟高速公路的客運車道、貨運車道分流是一樣的道理。混在一起跑,塞車的時候大家一起塞。尤其是跑 Ceph 存儲 或 叢集 Corosync 通訊 的時候,獨立網段幾乎是必備的。
# 改完網路設定後套用(小心,改錯會斷線)
ifreload -a
# 或者比較保險的做法:改完先重開看看
systemctl restart networking遠端改網路設定是高風險操作。改之前確認有 IPMI、iDRAC 或者其他帶外管理方式可以救場,不然改錯就等著跑機房了。網路安全方面的配套措施,可以參考 防火牆與權限管理。
更完整的網路設定參數,可以參考 Proxmox VE 網路官方文件 以及 Proxmox Wiki 的 Network Configuration 頁面。Linux Bridge 的底層機制可以看 kernel.org 的 Bridge 文件。
常見問題
Q: PVE 網路改完設定後 VM 斷線怎麼辦?
先用 ifreload -a 重新載入網路設定。如果還是不通,檢查 /etc/network/interfaces 的 bridge-ports 有沒有對應到正確的實體網卡,以及 VM 的網卡是否綁到正確的 Bridge。
Q: Proxmox VLAN 用哪種方式比較好?
推薦使用 VLAN-aware Bridge,只需一個 vmbr0 就能管理所有 VLAN,在 VM 網卡設定裡填 Tag 即可。比起每個 VLAN 建一個 Bridge,維護起來簡單乾淨很多。
Q: Linux Bridge 和 Open vSwitch 該選哪個?
Homelab 和一般生產環境用 Linux Bridge 就夠了,穩定且不需要額外安裝。只有在需要 OpenFlow、VXLAN tunnel 或複雜 SDN 場景時,才考慮 Open vSwitch。
Q: Network Bonding 模式怎麼選?
Homelab 選 active-backup(mode 1),不需要交換機配合就有冗餘。生產環境選 802.3ad LACP(mode 4),頻寬可以真正加倍,但交換機也要開 LACP。
下一步
網路拉好了,接下來是每個維運工程師的必修課——備份與還原: 👉 備份與還原