OpenWrt 多WAN口以及扩展WAN口
https://blog.msm.moe/multiple-wan-configuration-on-openwrt/
本文适用于:
1.我想把 OpenWrt 的 LAN 口当作 WAN 口用
2.路由器上的 WAN 口也不够用了,我要外接交换机扩展 WAN 口
OpenWrt的交换机配置
打开 LuCI 中的交换机页面。
首先,你可能会听说过路由器有外挂交换机等等的说法。
如上图所示的那样子,下面默认有两个 VLAN ,而且 WAN 口在单独不同的一个 VLAN 中时,就是外挂交换机的路由器。
简单比喻就是路由器的 CPU (或者说 SoC ) 上只有一个网络端口,路由器后面的这么多个端口都是靠连接到另一个交换机芯片分出来的网口。
你还可以用别的方法确认路由器的类型。
像这张图的路由器,接口名称是 eth0 和 eth1 的就不是外挂交换机的,如果接口名是 eth0.1 eth0.2 这样子的就是外挂交换机的路由器。
在 OpenWrt 中,ethX.Y 的 X 代表物理端口,Y 代表这个端口的 VLAN。
实际上 eth0 eth1 这种接口名称的也是有外挂交换机的,意思是 SoC 提供了两个以太网口,一个是直连到 WAN 口,四个 LAN 口也是从 SoC 的第二个以太网口中分出来的。所有口都是直连 SoC 的路由器我就还没见过。。。
如果想要将其中一个 LAN 口变成 WAN 口怎么办呢?
很简单,只要点击下方的添加,新建一个 VLAN ,假设你新建的 VLAN ID 是 3。
然后把你想要变成 WAN 的那个口,在 VLAN 1 中设置成关,在 VLAN 3 中设置成 untagged (非关联),VLAN 3 的 CPU 那一项设置成 tagged (关联)即可。
这里是什么意思呢?这里只简单介绍 VLAN 是什么东西。
VLAN可以说是用来隔离不同的网络的,通过对数据包中添加 VLAN 的标识来划分不同的网络。
tagged (关联)代表这个接口属于这个 VLAN ,而且发向这个端口的数据包带有 VLAN 标识。
untagged(非关联)代表这个口属于这个 VLAN ,但发向这个端口的数据包不带 VLAN 标识。
关 代表这个口不属于这个 VLAN。
CPU 同时属于多个 VLAN,都要设置成 tagged(关联),否则 CPU 就无法区分数据包属于哪个 VLAN。
连接用户设备的那端就设置成 untagged(非关联)。一个接口只能设置一个 untagged,所以其他 VLAN 上要设置成关。
如果想要更多的 WAN 口,就以此类推,创建新的 VLAN,设置 tagged 到 CPU,然后设置 untagged 到这个端口。
从上图那样子设置的话,WAN口就是 eth0.2。LAN2 口当作的 WAN口就是 eth0.3。
我还要更多 WAN 口怎么办?
如果我的路由器上网口数量很少,只有两三个,或者我宽带数量有五六条怎么办?这种时候就要来介绍一下 Trunk 口了。在折腾IPTV的人可能已经见过这个概念了。
Trunk 口就是同时能转发多个 VLAN 的端口了。
看上图应该可以发现,连接到 CPU 的就是一个 Trunk 口,它同时属于 VLAN 1、2、3。
Trunk 口的引入是为了解决 VLAN 跨交换机的问题的。假如两个交换机,设置了两个 VLAN,想要让同属一个 VLAN 的计算机跨交换机通讯怎么办?
像上图,把交换机的 1&3 口分给 VLAN1,2&4 口分给 VLAN2,然后 VLAN1 和 2 各用一条线把两台交换机连起来,这样 PC1 和 PC3,PC2 和 PC4 就能互相通讯了。
但是如果有十几个 VLAN 呢?拿十几条线来在交换机之间连接就太麻烦了,于是有了 Trunk 口。
当两个交换机的 1 号口设置成 tagged 的 VLAN 1 和 2 之后,这个端口就可以同时传输多个 VLAN 的数据包了。
假设 PC1 给 PC3 发消息,PC1 的数据包从交换机A的3口进入交换机,加上 VLAN 标签之后从交换机A的1口出去,进入交换机B的1口,再去除 VLAN 标签之后从交换机B的3口出去。
这样子,无论要设置多少个VLAN,跨交换机也只需要一条线即可。
那么我们怎么利用这个来扩展 WAN 口呢?
首先我们需要一台支持 VLAN 的交换机,或者另一台 OpenWrt 路由器。
在做交换机的机器上选定一个用来连接路由器的端口,比如说 LAN1 ,就把 LAN1 的各个 VLAN 都设置成 tagged。
然后其他的端口,在每个 VLAN 中设置一个 untagged。
对于路由器端,选定一个接口用来连接交换机,比如LAN1,就创建多个 VLAN ,然后全都在 LAN1上设置 tagged。
设置完成之后应该如下表格。
VLAN ID | CPU | LAN1 | LAN2 | LAN3 | LAN4 | WAN |
---|---|---|---|---|---|---|
1 | tagged | 关 | 关 | 关 | 关 | untagged |
2 | 关 | tagged | untagged | 关 | 关 | 关 |
3 | 关 | tagged | 关 | untagged | 关 | 关 |
4 | 关 | tagged | 关 | 关 | untagged | 关 |
↑这是用作交换机端的设置。
VLAN ID | CPU | LAN1 | LAN2 | LAN3 | LAN4 | WAN |
---|---|---|---|---|---|---|
1 | tagged | 关 | untagged | untagged | untagged | 关 |
2 | tagged | tagged | 关 | 关 | 关 | 关 |
3 | tagged | tagged | 关 | 关 | 关 | 关 |
4 | tagged | tagged | 关 | 关 | 关 | 关 |
5 | tagged | 关 | 关 | 关 | 关 | untagged |
↑这是路由器端的设置
这时候把两个路由器的LAN1口连接起来就可以了。
两台机的 LAN1 口就是 Trunk 口
这个时候交换机的 LAN2 口就对应到了路由器的 VLAN 2。
从上面接口的介绍就是 eth0.2 了。
插在交换机 LAN2 口上的网线,相当于连接在了路由器的 eth0.2 上。
这里交换机的WAN口和CPU关联,是为了方便进入管理页面,如果不需要管理,也可以再添加一个VLAN拿来用。
路由器本身的 WAN 被放到了 VLAN 5,也就是 eth0.5 上)
OpenWrt 的接口设置
我们回到 OpenWrt 的接口页面,点下 “添加新接口” 的按钮。
新接口名称可以自己设置,记得住就行。
下方的包括以下接口,请选择刚才新建到的端口。
上面LAN变WAN以及扩WAN的做法中都有说明,VLAN2 就是 eth0.2 ,VLAN3 就是 eth0.3,以此类推。
新接口的协议,按照宽带类型选即可,PPPoE或者DHCP之类的。
所有接口都添加完之后,测试一下是否能登陆。
关于多线连接好之后,怎么负载均衡叠加网速,请看另一篇文章。
============== End