這是一篇筆記備忘,因為設定很繁複,所以專門寫一篇做紀錄。
為何叫作分離式上網呢?其實這個名稱是我取的 😆
當然這個要用第三方韌體才做得到,官方韌體是沒這功能的 😛
以下所適用的情境是:
- 切成多個 VLAN 區域,互相看不見彼此
- 每個 VLAN 區域會分到不同的 IP 網段
- 每個 VLAN 區域都有對應的 Wifi 無線網路供使用
- 每一個 VLAN 區域要能夠對外上網
以下截圖採用 PandoraBox 的韌體在 小米路由器mini 上執行。
但因為 PandoraBox 是 OpenWRT 的版本分支,
LEDE 亦是 OpenWRT 的版本分支,
理論上 LEDE / OpenWRT 都能適用,只是版面排版不一樣。
什麼是 VLAN (Virtual LAN)?
引用 Wikipedia 的說明
A virtual LAN (VLAN) is any broadcast domain that
is partitioned and isolated in a computer network
at the data link layer (OSI layer 2).
翻譯一下, VLAN 是一個 OSI Layer 2 的獨立廣播區域。
虛擬區域(Virtual Local Area Network 或簡寫 VLAN)
是一種建構於區域網路交換技術(Switch)的網路管理的技術,
網管人員可以藉此透過控制交換機有效分派出入區域網的封包
到正確的出入埠,達到對不同實體區域網中的裝置進行邏輯分群
(Grouping)管理。
引用文章的說明
什麼是VLAN?VLAN是在同一物理區域網內
用於劃分若干個不同廣播域(子網)的技術,
子網內的主機可以互相通信,不同子網的主機之間不可互相通信。
什麼是VLAN ID?用於標識每個VLAN子網的ID。
範例環境
假設一台路由器有二個 VLAN
- VLAN1
- 路由器 IP: 192.168.1.1
- 分配網段: 192.168.1.0/24
- 無線網路 (2.4GHz) 名稱: PandoraBox
- 無線網路 (5GHz) 名稱: PandoraBox_5G
- VLAN2
- 路由器 IP: 192.168.2.1
- 分配網段: 192.168.2.0/24
- 無線網路 (2.4GHz) 名稱: PandoraBox_lan2
- 無線網路 (5GHz) 名稱: PandoraBox_5G_lan2
設定步驟
VLAN 設定
- 到 Switch 頁面,設定好 vlan
這邊的 Port 是指實體 RJ45 的有線接口,
可以通過插拔網路線的方法,對應到每一個 Port。
如果 Port 狀態為 untagged (不關聯),即該 Port 作為本 VLAN 成員,進行二層交換;
若選擇 tagged (關聯),Port 之間通信無二層交換,而是衝突廣播(類似 Hub 的方式)
簡單來說,
- 要加入該 VLAN 的 Port 選 untagged
- 不加入的 Port 選 off
- CPU 照預設值,選 tagged
- 其他的 Port 照預設值設定即可
以 小米路由器mini 來說,
從左到右,分別是
Reset Button / USB 2.0 / Port 0 (White) / Port 1 (White) / Port 4 (Blue)
它多出一個特殊 Port 是 Port 7,其他機型沒有
- Port 7 照預設值,選 tagged
以這個範例來說
原本
- VLAN ID 1 (LAN): Port 0, Port 1
- VLAN ID 2 (WAN): Port 4
改成
- VLAN ID 1 (LAN1): Port 0
- VLAN ID 2 (WAN): Port 4
- VLAN ID 3 (LAN2): Port 1
因為有了 VLAN 這麼方便的功能,
你可以自由的定義每一個網路接口是什麼功用,不用照預設給的 WAN 是藍色, LAN 是白色的限制。
無線網路 Wifi 設定
到 Network > Wifi 頁面,在 [2.4GHz 頻段] 與 [5GHz 頻段] 各新增一個 SSID,
名稱為 PandoraBox_lan2 與 PandoraBox_5G_lan2 並設定好 SSID名稱 & 密碼
畫面上會有四個 Wifi,ra0 有二個,rai0 有二個
名稱個別為
- PandoraBox
- PandoraBox_5G
- PandoraBox_lan2
- PandoraBox_5G_lan2
邏輯介面 (Interfaces) 設定
到 Network > Interfaces 頁面,新增一個介面,名字叫 lan2
到 General Setup 設定 IP 資訊
- IPv4 address: 192.168.2.1
- IPv4 netmask: 255.255.255.0
- IPv4 gateway: (留空)
到 Physical Settings 指定給定介面
- VLAN Interface: “eth0.3” (lan2)
- Wireless Network: “PandoraBox_lan2” (lan2)
- Wireless Network: “PandoraBox_5G_lan2” (lan2)
到 Firewall Settings 設定
- Assign firewall-zone LAN2: lan2
整理如下
第一個介面 – LAN
第二個介面 LAN2
介面設定 DHCP Server (二個 Interfaces 都要設定)
- Disable DHCP for this interface 不打勾(或是按下 Setup DHCP Server)
- Router Advertisement-Service: server mode
- DHCPv6-Service: server mode
防火牆區域設定
到 Firewall > General settings 新增一個 Zone,
名稱叫 LAN2 ,並設定:
- Input: accept
- Output: accept
- Forward: accept
- Covered networks: lan2
- Allow forward to destination zones: wan
整理如下
第一個防火牆區域 – lan
第二個防火牆區域 – lan2
Port forwarding 設定?
要做 Port forwarding (連接埠轉送 又稱 虛擬伺服器)?
當然可以,在 Firewall > Port Forwards 頁面
假設 對外的 80 port 要對應到 192.168.1.2 的 8080 port
就如此設定
然後按下 Add,規則就訂好了
可以按下 Edit 看詳細規則
其他防火牆規則?
其實這都是把 linux 的 iptables 指令做成比較好用的 UI 而已,
在 Firewall > Traffic Rules 這個頁面,會有一些預設的規則,你可以參考這些現有預設的規則仿造一個你自己的
再舉一個例子,假設要禁止 第一個介面(lan) 連到路由器的 telnet,但第二個介面(lan2) 不受限
可以如此設定
如果你熟捻 iptables 指令,不妨直接去 Firewall > Custom Rules 把規則直接打進去。
參考資料
https://en.wikipedia.org/wiki/VirtualLAN
https://blog.chionlab.moe/2016/07/13/openwrt-multiwan-configuration/
https://www.dd-wrt.com/wiki/index.php/VLANDetachedNetworks(SeparateNetworksWith_Internet)