[教学] 用 OpenWRT 做分离式上网设定 (以 小米路由器mini 为例)
这是一篇笔记备忘,因为设定很繁复,所以专门写一篇做纪录。
为何叫作分离式上网呢?其实这个名称是我取的 😆
当然这个要用第三方韧体才做得到,官方韧体是没这功能的 😛
以下所适用的情境是:
- 切成多个 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 设定
1. 到 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)