iWIN 必須被解散!

Weil Jimmer's BlogWeil Jimmer's Blog


使用 PVE 與 OpenWrt 23.05 實現鏈路聚合 LACP 及 VLAN 建立多個虛擬區域網路的踩坑經驗

-
更新於 2024-05-04 19:51:27

前言

按照最近的慣例,開頭要先說一段廢話,最近因為家裡空間不夠放交換器,於是訂了一個機櫃,打算重新整理我亂七八糟的網線和複雜的網路環境,以及升級我的 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 的基礎知識的文章。

By Weil Jimmer


This entry was posted in General, Experience, The Internet, OpenWrt By Weil Jimmer.

About Weil Jimmer

avatar

Hi! Everyone! My name is Weil Jimmer. This is my personal blog. I'm a webmaster of this site. I hope the site will be popular. Now, Let's go! Enjoy gaining more knowledge.
More Details About Me : https://weils.net/profile.php

Leave a Reply

Name*:

Email*:

Website:

Privacy:   

Comment*:

Visitor Count

pop
nonenonenone

Note

支持網路中立性.
Support Net Neutrality.

飽暖思淫欲,饑寒起盜心。

支持臺灣實施無條件基本收入

歡迎前來本站。

Words Quiz


Search

Music

Blogging Journey

4289days

since our first blog post.

The strong do what they can and the weak suffer what they must.

Privacy is your right and ability to be yourself and express yourself without the fear that someone is looking over your shoulder and that you might be punished for being yourself, whatever that may be.

It is quality rather than quantity that matters.

I WANT Internet Freedom.

Reality made most of people lost their childishness.

Justice,Freedom,Knowledge.

Without music life would be a mistake.

Support/Donate

This site also need a little money to maintain operations, not entirely without any cost in the Internet. Your donations will be the best support and power of the site.
MethodBitcoin Address
bitcoin1gtuwCjjVVrNUHPGvW6nsuWGxSwygUv4x
buymeacoffee
Register in linode via invitation link and stay active for three months.Linode

Support The Zeitgeist Movement

The Zeitgeist Movement

The Lie We Live

The Lie We Live

The Questions We Never Ask

The Questions We Never Ask

Man

Man

THE EMPLOYMENT

Man

In The Fall

In The Fall

Facebook is EATING the Internet

Facebook

Categories

Android (7)

Announcement (4)

Arduino (2)

Bash (2)

C (3)

C# (5)

C++ (1)

Experience (52)

Flash (2)

Free (13)

Functions (36)

Games (13)

General (60)

Git (2)

HTML (7)

Java (13)

JS (7)

Mood (24)

NAS (2)

Note (32)

Office (1)

OpenWrt (6)

PHP (9)

Privacy (4)

Product (12)

Python (4)

Software (11)

The Internet (25)

Tools (16)

VB.NET (8)

WebHosting (7)

Wi-Fi (5)

XML (4)