OpenWrt 多WAN口以及擴展WAN口


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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM