前言
按照最近的慣例,開頭要先說一段廢話,最近因為家裡空間不夠放交換器,於是訂了一個機櫃,打算重新整理我亂七八糟的網線和複雜的網路環境,以及升級我的 OpenWrt 版本,下為我房間的機櫃照。
花了我滿長的時間在進行除錯,裝設機櫃反而沒什麼,最大的問題在於用 OpenWrt 設定 VLAN。
先前我灌了 ImmortalWrt 23.05.2,想說我之前裝的 OpenWrt 有點舊,而且還是當時的 SNAPSHOT 版本,已經遇到過好幾次要安裝什麼軟體包,出現內核版本過新或過舊的問題,實在不能接受,所以趁這個時機升級一下。
然後在 ImmortalWrt 安裝鏈路聚合所需要的軟體:
opkg update
opkg install kmod-bonding luci-proto-bonding
試了老半天,都沒有成功耶,在交換器那邊總是顯示 Blocking,害我在思考是不是交換器的問題,但是後來我在 NAS 上設置成功,所以我覺得是 ImmortalWrt 的問題。
直到一天後,我才終於意識到問題出在哪裡,在於那個被我遺忘的 PVE 阿!原來我一直錯怪了 ImmortalWrt。
因為底層是 PVE,我在虛擬機中設置鏈路聚合只是在它的虛擬網卡上聚合而已啊,所以應該在 PVE 上設置。
在 PVE 上建立 Linux Bond
首先到你的資料中心,然後選擇你的「節點」,再選擇 System → Network,點 Create 選擇 「Linux Bond」。
Slaves 輸入你想要聚合的網卡,我目前軟路由上有四張網卡,但我只選擇其中三張聚合,其中一張要給 WAN 使用,而且 PVE 也使用這張網卡,設定下去的話,會失去 PVE 的連線,因此我只選中三張。
模式就用 LACP,接著直接創建即可,之後你多出來一個 bond0 網卡,就是你聚合後的結果。
接著就到你的交換器上設定鏈路聚合(Link Aggregation, LACP),LACP 是我比較推薦的模式。
在 PVE 上建立 Linux Bridge
建立一個虛擬網橋 vmbr1,作為我的 LAN 區網用,這裡有一步驟很重要,那就是要把 VLAN aware 打勾。
回想起幾個月前,第一次在 ImmortalWrt 設定的時候,老是出問題,其實就是 PVE 沒設定好,那時候沒有打勾這個選項(我也根本沒注意到這選項),自然 VLAN 接口收不到封包阿。
到這步,PVE 設定完之後就沒 PVE 的事了。
開啟 OpenWrt 23.05
這次我安裝的版本是 OpenWrt 官方的 openwrt-23.05.3-x86-64-generic-squashfs-combined-efi.img。
手動裝了一些軟體包,比如主題 (Argon)、和繁體中文。
建立 VLAN 裝置
鑒於有了先前的經驗,基本駕輕就熟。直接到 網路 → 介面 → 裝置 → 加入裝置設定。
這邊直接選擇 VLAN (802.1q),預設值應該已經有了,新版本的 OpenWrt 已經拔掉了 Switch,所以很多文章和教學都過時了,很少人提到新版本的 OpenWrt VLAN 的設置。
VLAN ID,按照我這邊的環境,就是 10、20、30、40、50,直接重複五次,建好建滿。即使網路孔位沒有那麼多也沒關係,這邊已經虛擬化了。
像這樣,我建立了 VLAN 10~50 的網路裝置。
建立網卡介面
到「介面」列表,點「新增新介面」,靜態位址,選擇各自的 VLAN 裝置。
比如 LAN 配 eth0.10,LAN2 配 eth0.20,LAN3 配 eth0.30…
IP 的話,按照慣例,根據 VLAN TAG 定義 Gateway IP,VLAN 10 的話,設定 192.168.10.1/24。
然後是巨坑,防火牆要建立一個新的 Zone,如果沒設定防火牆是不會通的,沒有路由的話,DHCP Server 連分配 IP 都不會分配!
然後是必須的 DHCP 伺服器,直接點安裝即可。
這邊都不需要動,維持預設就可以了。
為了防止意外,建議開啟這個功能,「強制」DHCP,以防詭異的狀況發生。
建立防火牆規則
這裡就是老話重談了,為每個新創建的區域網路新增規則,允許轉發到 WAN。
我這邊比較特別,LAN 轉發到 WG0,是 VPN 通道,這個不是通常操作。而 LAN5,我是想建立一個隔離的網路,所以沒有轉發的能力。
建立 DNS 伺服器
建立好網路後,記得要在監聽介面打開剛剛新建的所有介面,否則即使有連線遠端 IP 的能力,卻沒辦法解析網域。
到這步,基本就大功告成。
接下來就是配置交換器,設置路由器所連接的 3 個 Port 為 TRUNK 接口。
同時給予其接口為 VLAN 10、20、30、40、50 的成員。
之後有空,會再補篇關於 VLAN 的基礎知識的文章。