Proxmox VE 網路管理:Bridge、Bond 與 VLAN

8 min read

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。

下一步

網路拉好了,接下來是每個維運工程師的必修課——備份與還原: 👉 備份與還原