
本文原載於 iT 邦幫忙 2021 鐵人賽系列〈突破困境:企業開源虛擬化管理平台〉第 21 天,原文連結。
在規模較大的企業網路中,為了避免單點故障會採用 LACP 的方式將多條線路聚合在一起使用,除了增加容錯也可以增加頻寬的使用能力;而 VLAN 經過適當的規劃設計,對於網路安全或效能提升將會有巨大的幫助。
本文將介紹在 Proxmox VE 中要怎麼讓正確的使用 LACP 設定,以及如何讓節點機、客體機正確的使用 VLAN。
建立第二網路橋接裝置 (Bridge)
在預設安裝完的情況下,Proxmox VE 會使用其中一個連接埠橋接至 vmbr0 這個預設的網路橋接裝置,所有的網路流量包括節點實體機、客體機服務、連接網路儲存伺服器等等,都全走在這個網路裝置上,若服務量增加時,勢必會影響其中的連線品質,尤其是經由 NFS 或 iSCSI 等通訊協定連接儲存伺服器。

在官方手冊上有提出上圖的建議,為了將網路傳輸能力最佳化,通常會建議至少使用兩個以上的網路裝置分別接取專用網路,藉以讓流量乾淨化,避免互相影響。
- 服務網路:提供客體機對外服務、節點機對外連線 (例如版本升級、管理介面)。
- 儲存網路:專與儲存伺服器連線用的獨立網路,或者用於複寫功能。
- 叢集網路:若有使用叢集功能將許多節點加入集中管理,當節點數較多時,叢集應有獨立網路維持其高效叢集運作。
- Ceph 網路:當使用 Proxmox VE 所提供的 Ceph 分散式檔案系統時,其網路必須獨立運作,且速度不應低於 10Gbps。
在資源檢視區中選取節點,切換至 網路 頁籤,按下 建立,再選擇 Linux Bridge。

在橋接網路裝置建立視窗中,名稱 會自往下編號為 vmbr1,在 IPv4/CIDR 處請輸入第二個網路裝置要連結目標網路的 IP 與子網路遮罩,例如 172.16.100.86/24。
最後,請將預先確認好要用那一個網路裝置,填入 橋接連接埠 欄位做為連接第二個網路橋接裝置線路使用,本例我選擇此主機的第二個網路裝置 enp4s0。

建立完成後,在網路裝置清單中可以看到多出了一項 vmbr1,下方有一個 修改擱置中 的區塊,它會顯示本次修改前與修改後的差異,可以將這個節點重新開機讓它生效,或者按下上方的 套用設定 讓他立即生效。
若是發現設定錯誤或者要放棄修改,可以按下 還原 按鈕,以取消剛剛所有的修改。

當我們將設定套用完成後,下方的變更差異區塊即會消失,設定已經生效。
建立鏈路聚合 (LACP)
在 Proxmox VE 以網路提供服務日漸吃重時,確保網路連線穩定與可用性就非常重要。
Proxmox VE 支援相當多種網路連線容錯的機制:
- balance-rr
- active-backup
- balance-xor
- broadcast
- LACP (802.3ad)
- balance-tlb
- balance-alb
在這麼多模式當中,我首推 LACP。LACP 是需要伺服器端與網路交換器端都必需進行設定才能對應連接聚合起來,雖然設定上多了一道程序,但穩定性會比以純軟體在伺服器端所實現的網路容錯機制更加穩定。
LACP,全名為 Link Aggregation Control Protocol (鏈路聚合控制協定),利用伺服器端兩個以上網路介面,及網路交換器的兩個以上的介面,分別連接起來後搭配 LACP 協定,可以達成網路容錯以及提升頻寬使用能力。
提醒:
LACP 可以將頻寬聚合起來使用,但不是頻寬合併,能否使用到多條線路聚合後的傳輸能力,與 Session 有關。
請切換至 網路 頁籤,按下 建立 按鈕,再選取 Linux Bond 項目。

在 Linux Bond 建立視窗中,名稱 會自動以 bond0 開始編號,在 附掛網路卡 處將要聚合起來的兩個網路裝置名稱輸入,此處我輸入 enx00051ba9080e、enx00e04c680e5e 這兩個網路裝置。
在 模式 下拉清單選擇 LACP (802.3ad),Hash 原則 請依據所使用的網路交換器等級做選擇,我大部份的情況是選擇 layer2+3 這一個項目。

在 bond0 建立完成後,還需要再建立一個橋接網路裝置才能賦予它 IP 等設定,以提供連線能力,請按下 建立 後選取 Linux Bridge。
進入 Linux Bridge 建立視窗後,名稱會自動編號為 vmbr2,請在 IPv4/CIDR 欄位輸入要配給的 IP 與子網路遮罩,在 橋接連接埠 中輸入剛才所建立好的 bond0,再按下 建立 即可。

最後,記得按下 套用設定 讓它生效。

設定虛擬區域網路 (VLAN)
在較大規模或者切分較細的企業網路裡,除了實體分離的網路之外,也會採用 VLAN (Virtual Local Area Network,虛擬區域網路) 的方式進行切分,以確保網路廣播封包傳輸的範圍,及網路控管的安全性議題所需。
客體機設定 VLAN
在 Proxmox VE 中要讓客體機與指定 VLAN 連線設定方式相當容易。請點選要設定的客體機,切換至 硬體 頁籤,在需要要設定 VLAN 的網路裝置,如 網路裝置 (net0) 上點選兩下以進入編輯。

進入網路裝置選項視窗後,在 VLAN Tag 欄位中輸入要連線的 VLAN ID,例如 20,再按下完成即可。

完成後,會在硬體清單中的網路裝置後面顯示 tag=20,即表示設定已經完成。

補充:
除了在 Proxmox VE 管理介面以網路裝置連接 VLAN,您也可以不在此設定 VLAN,直接在客體機內的作業系統使用 VLAN 相關連線設定。
節點機設定 VLAN
在節點實體機中要與 VLAN 連接,有多種設定方式,可以使用實體網卡連接、使用 Bond 裝置連接、使用 Bridge 橋接裝置連接,而最簡便的是直接使用 Bridge 橋接網路裝置。
場景:在環境中設定了 VLAN ID 20,要以 vmbr2 做為使用的橋接裝置,橋接節點機的 enp4s0 網路裝置進行 VLAN 連線。
請先在資源檢視區中選取節點機,切換至 網路 頁籤,按下 建立 後,再選取 Linux VLAN。

進入 VLAN 網路裝置建立畫面後,請在 名稱 欄位輸入要用來橋接的網路裝置名稱以及 VLAN ID,例如 vmbr2.20,即表示要採用 vmbr2 做為橋接裝置,並連接至 VLAN ID 20。
在 IPv4/CIDR 中輸入要與這個 VLAN 連線所使用的 IP,若有閘道要設定請在 閘道 (IPv4) 欄位中輸入;本例因為是獨立的內部網路,因此沒有設定閘道的需求。
右方有兩個已經變為失效狀態的欄位 Vlan raw device 與 VLAN Tag,這是因為我們已經直接在 名稱 欄位指定好這兩個參數,所以它已經幫我們帶入,不需再自己填寫。

當建立完成後,我們要回到原本的主橋接裝置 vmbr2 將它的 IP 相關設定清除,因為我們要改走 VLAN 連線。請點選 vmbr2 兩下進入編輯。

請將原本欄位 IPv4/CIDR 及 閘道 (IPv4) 內容清除,並勾選 VLAN aware 核取方塊,再按下完成。

回到網路清單後,按下 套用設定 即可讓剛剛的修改立即生效。

參考資料
- Network Configuration - Proxmox VE
https://pve.proxmox.com/wiki/Network_Configuration

