近日要在台中老家建置 WiFi,順便將原本台北的伺服器一起搬到台中來,因此要設計一個三層樓無線網路加上兩個分開的伺服器網段。在這邊將這次規畫與實作過程給記錄下來。
需求分析
建築物資訊
- 居住空間三層樓(3F ~ 5F),一層 30 坪,室內隔間多為矽酸鈣板,少數區域有水泥牆
- 牆內線路 15 年以上,規格不確定,實測速度可達 1 Gbps(可能更高,但受限測驗設備無法得知)。PoE 支援性未知。
- 網路孔多為牆壁上,不方便安裝於天花板
- 使用需求:有線網路速度最高到 1 Gbps 即可。WiFi 速度有 300 Mbps 以上即可。
伺服器
我有兩台獨立的伺服器主機(Server A & B),兩邊各自有一個 Public IP 和 LAN 網段。在之前的架構裡,兩台各自分別連接到 RouterOS 路由器上,因此就直接設定兩個 Ether 孔為兩個 LAN。到了台中,由於想要把機房放在五樓,跟位於三樓的路由器之間只能走一條牆裡的網路線,因此需要在一條線中支援多個網段,而需要規畫 VLAN 架構與設定 Trunk。
原始設定概覽
我這次並不是從零開始設定 RouterOS,而是在原先的基礎上,要把原先的 Ethernet interface 換成是 VLAN interface,並保留在其之上的 firewall、dhcp server、NAT 等設定。
原始的網段
- 192.168.0.0/24: Server A
- 192.168.10.0/24: Server B
- 192.168.20.0/24: Home
- 192.168.30.0/24: Management
架構設計
這次的架構主體,是三層樓各自有一台無線 AP,以及在五樓要擺兩台伺服器。因此在五樓買了一台網管型交換器,將 VLAN 拆分到不同的 port 中。

VLAN 簡介
VLAN 是在 L2 的封包上,加上一個 VLAN id 的資訊,用來標記某個封包是屬於哪一個 VLAN 之中,稱為 tagging,因此就能實現在單一線路上承載多個內網(如路由器到 5F 交換器這段)。
但是一般的網路設備並不會支援 VLAN,因此在連接到終端設備,如電腦或是 AP 時,要將 VLAN untagging,讓特定 VLAN 的封包只會導到指定的端口。
- Tagged: 當封包離開端口時,保留 VLAN id,用作 Trunk port
- Untagged: 當封包離開端口時,移除 VLAN id,用作 Access port
- PVID: 當封包進入端口時,如果沒有 VLAN id,則加上 PVID 作為 VLAN id
RouterOS 設定步驟
一、Bridge 設定
首先,由於在 RouterOS 中,每個 port 都可以獨立運作,因此並沒有先天的 WAN / LAN port 之分。在我先前的架構中,我是讓每個 port 各自是一個 LAN。然而到了這個新架構下,我需要讓每層樓的 AP 都屬於同一個內網中,因此需要設定 bridge 來建立一個路由器中的「軟體交換器」。
首先建立一個新的 bridge,就叫作 bridge:

這個時候先不要開啟 VLAN filtering,我們會到最後一步再打開。
接著把各個 port 加到 bridge 中:

這邊的重點是,選擇對的 ethernet interface,以及設定 PVID。我的 port 分配如下:
| Port | 連接對象 | PVID |
|---|---|---|
| Port 2 | 3F AP | 30 |
| Port 3 | 4F AP | 30 |
| Port 4 | 5F Switch | 30 |
我一開始不知道 PVID 的功能,保留預設值的 1,結果我不論如何都無法連接上路由器,第一次還因此讓我無法再次打開 Winbox,只好整台重設(還好我有先備份設定檔)。第二次我則是為了保險先打開 Safe mode,結果一打開 VLAN filtering 後就直接斷線,然後剛剛的設定又被重置…
我最後是保留 Port 5 作為 management port,並讓它獨立於 bridge 與 VLAN 之外,這讓我在後面的設定上順利許多。
在我的設定中,3F 和 4F 都是要 untagged 直接連 AP,因此要把 PVID 設定為對應 Home VLAN 的 30。5F 是 trunk port,不過在這邊我還是將其 PVID 設為 30,方便使用。
二、VLAN 設定
以下是三個 VLAN,在路由器上 tagging 跟 untagging 設定:
| VLAN ID | Tagged | Untagged | |
|---|---|---|---|
| vlan1-server-A | 10 | 5F, bridge | |
| vlan2-server-B | 20 | 5F, bridge | |
| vlan3-server-C | 30 | 5F, bridge | 3F, 4F |
照著上面的設計,在 Bridge / VLAN 底下新增各個 VLAN,輸入 tagged 和 untagged 的 interface。要注意,列表中的 Current Tagged 和 Untagged 要等到啟用 bridge 的 VLAN filtering 後,並且有連接上設備才會顯示,因此設定完沒有反應是正常的。
三、IP 設定
接下來,我們要更新原本 IP 所綁定的 interface。在之前的設計裡,三個網段分別綁定了三個端口:
- ether2: 192.168.0.1/24
- ether3: 192.168.10.1/24
- ether4: 192.168.20.1/24
現在我們要將 IP 改為用 VLAN interface 來綁定。首先我們要在 Interface/VLAN 底下建立 3 個對應的 VLAN interface:

這裡的重點是設定名稱,VLAN ID,以及選擇 bridge 作為 interface。為三個 VLAN 各自設定一個 interface 後就完成了。
可以到 Interface list 中更新一下:

這裡可能會影響到後續 firewall, NAT 等設定。這裡我沒有後清楚放 bridge 跟放 vlan interface 的差別是什麼。
再來我們就可以去更新 IP addresses,到 IP/Addresses 中,把原本綁定在 ether2~ether4 的 IP 改成對應的 vlan interface:

四、DHCP server
接著也要更新 DHCP server 所使用的 interface,把原本綁定在 ether2ether4 換成對應的 vlan1vlan3 就可以了。

五、IP routes
接下來超級重要的是更新路由表!我因為沒改這邊卡了超久。一樣要將原本綁定在 ether2~ether4 換成對應的 vlan interface。同時我因為三個網段用了三個獨立的路由表,因此要改三個路由表。以下我以 home 的路由表舉例:

之所以三個網段用了三張路由表,是因為這個三個網段有獨立的 Public IP,因此需要有個別的 0.0.0.0/0 的路由設定(指向不同的 PPPoE 目標)
六、IP Firewall / NAT
最後就是檢查一下你的防火牆 / NAT 規則中,有沒有任何用到 ether interface 的地方,把它們換成對應的 VLAN 就行了。
七、啟動 VLAN
做這一步時建議開啟 Safe mode
最後,將 bridge 的 VLAN Filtering 開啟。Bridge 本身的 PVID 保持預設值 1 即可,因為我們使用 VLAN interface 來處理各個網段,而不是直接讓 bridge interface 參與通訊。按下 Apply 後,VLAN 就會開始工作了。

假如你沒有像我一樣留一個 management port 來連線,你做這一步後可能會斷線。如果真的弄失敗了,30 秒後就會還原到開啟 safe mode 之前的狀態。
測試
分別連接筆電到每個 port,看看是否拿到對應的 IP:
- port 2: 192.168.20.x
- port 3: 192.168.20.x
- port 4: 無法連接 (trunk port)
- port 5: 192.168.30.x (我的 management 網域,沒有在這次教學中設定)
交換器設定
我這次搭配了 D-Link DGS-1100-05 作為五樓的網管型交換器。它有 5 個端口,支援 VLAN,符合我的需求,價格也很實慧。
我的 Port 規畫如下:
- Port 1: management
- Port 2: Server A
- Port 3: Server B
- Port 4: Home
- Port 5: Router
一、電腦連線交換器設定
這台交換器支援 web interface 管理,但由於它不是路由器,因此不會用 DHCP 分配 IP 給你,需要自己設定。它的 IP 為 10.90.90.90/8。
我在筆電上新增一個以太網路連線,並手動指派一個 IP 位址:
- IP: 10.90.90.91 (可以換成其他數字)
- Netmask: 255.0.0.0
- Gateway: 10.90.90.90

二、交換器 VLAN 設定
接著就可以用瀏覽器打開管理界面 http://10.90.90.90 。登入後,到 L2 Features / VLAN / 802.1Q VLAN 設定。
預設的設定時是所有的 port 都是 untagged VLAN 1,也就等同於沒有 VLAN 的單純交換器。首先將 VLAN 1 設定中 port 1 以外的其他 port 都設為 Not member。接著新增 VLAN 10, 20, 30。
以 VLAN 10 Server A 為例:

eth2 對應到 server A 的 port,因此是 untagged。eth5 則是連線到 router,因此為 tagged。其他 port 則與此 VLAN 無關,選擇 Not Member。
以相同方式設定 VLAN 20、30 可得到以下列表:

測試
接下來將筆電分別插上不同網路孔,檢查拿到的 IP:
- Port 1: 無,要手動設定
- Port 2: 192.168.0.x (VLAN 10)
- Port 3: 192.168.10.x (VLAN 20)
- Port 4: 192.168.20.x (VLAN 30)
如果都沒問題,有線網路的部分就大功告成!把伺服器開機,就會自動回到原先的設定了。
Mesh 無線網路
最後則是要部建無線基地台。我原本希望能做到 AP 支援 VLAN,讓我可以區隔出家用網路和 IoT 網路,提升一下內網的資訊安全。但上網查之後發現,支援這樣功能的如 Unifi U6 Plus,通常是為了企業環境設計,價格是家用機的 2 倍以上,而且通常用網路線來供電(PoE, Power over Ethernet)。我們一方面沒有 PoE 供電設備,一方面也不確定牆裡的網路線是否支援,最後還是選擇家用的方案,並捨棄分離 IoT 網路。
我最後選擇了 Asus ZenWiFi BD5,它一組有三顆,且支援 AP 模式(IP 交由路由器分配),正好符合我們家的需求。它有一台主機跟兩台副機,只要在主機設定好就會自動同步到副機。
一、主機設定
首先我將主機安裝在三樓,兩個網路孔,一個接路由器,另一個接筆電,接著啟動電源。等了幾秒後,電腦跳出了「登入網路」的通知,接著就可以設定管理者帳號。
比較重要的步驟有:
- 選擇 AP mode / 基地台模式:讓 AP 只負責 WiFi 訊號,不會分配新的 IP
- 設定網路的 SSID、密碼、頻段
- 我原本是讓它 2.4GHz 和 5GHz 混合,但發現手機自己切 5GHz 不太順,同層樓覆蓋度也足夠好了,於是後來將主要 WiFi 的 2.4GHz 關閉,只保留 5 GHz。
- 建立 IoT 網路
- 這台支援建立一個訪客網路,用比較舊版的 WPA 2, WiFi 6 和 2.4GHz
- 然而目前實測,這個訪客網路功能並沒有隔離的效果,只是單純的不同存取點。用來給不支援 5GHz 的 Chromecast 很方便
完成後就能夠連上新的 WiFi 了。
二、路由器綁定基地台 IP
之後如果要再進到基地台設定,就需要知道它的 IP。這個時候可以到路由器的 DHCP server / Leases 中,查看有哪些使用中的裝置,辨識出基地台後,就可以將它設為 static,以後就會有固定的 IP 可以進去管理了。

三、設定 Ethernet Backhaul
由於我們家有連接不同樓層的以太網路,因此比起無線的 mesh,我們可以啟用 Ethernet Backhaul 功能,讓不同基地台之間透過以太網路來連接。
先打開剛才綁定好的基地台 IP,我的是 http://192.168.20.12 ,登入後到 AiMesh / System Settings 的地方,啟用 Ethernet Backhaul Mode,接著讓系統重開。

四、加入副機
當主機設定完畢後,從靠近的樓層開始,把副機插上網路線和電源,接著啟動電源,副機就會自動偵測到主機後加入網路,時間大概 3 分鐘。當燈號從閃藍 - 閃綠,到最後穩定白光,就代表設定完成。在主機的 AiMesh 頁面,就能看到加入的副機了。
測試
最後各個裝置就可以連上同一個 WiFi,並在不同樓層自動切換。速度測起來,在基地台旁邊可以到 300/300 Mbps,有達到原始設定目標,訊號覆蓋度也足夠。
Troubleshooting
- 我原本沒有先開啟 Ethernet backhaul,結果副機就一直卡在閃綠燈的情況。我原本也不知道原來副機在 AP 模式下也可以自動設定,所以一直在等出現網路登入的訊息。
心得
這次設定結合了多樓層透天厝和 homelab 的需求,也是我第一次使用 VLAN 以及網管型交換器。其中折騰最久的,就是一開始釐清 VLAN 的運作方式,還有在 RouterOS 中如何設定每個關聯到的地方。此外 interface / bridge / vlan 這些概念間的關係也不太容易分辨。
這次留下的遺憾,主要是沒能完全區隔家用和 IoT 網路,以及在家內與伺服器的連線速度,用有線最快也只能到接近 500/500 Mbps,畢竟中間隔了更多設備與老舊線路,還多了更複雜的軟體路由運算。相比在之前的架構下,實測能夠到 900/900 Mbps 的速度。
想要測試內網連線速度,可以參考我寫的 LibreSpeed 架設自己的測速網站
網路設定的難易度取決於需求的複雜度。這次終於有了非得用 VLAN 不可的情境,也讓我有了一次設定的經驗。幸運的是,之前路由器的基礎不算太難修改,當初也有留下足夠多的文件,這次只折騰了一個下午就搞定了。還有,RouterOS 備份設定檔真的超級重要,這次直接給它救了回來。