利用 OpenWrt 實現(xiàn) THU IPv6 + 寬帶疊加完美雙 WAN

經(jīng)常玩 PT 的同學很可能也遇到過下面這個令人頭疼的問題:目前大多數(shù)路由器并不支持 IPv6 的局域網(wǎng)轉發(fā),雖然可以利用 Lan 口互相是橋接的原理強行把路由器接成交換機模式實現(xiàn)校園網(wǎng)的 AP 接入,但是這樣也同時失去了同一路由器下多設備的局域網(wǎng)互聯(lián),這給平時多設備的數(shù)據(jù)傳輸帶來了很大的不便。為此,我們需要一臺 OpenWrt 的路由器解決這個問題。

1. 前期準備與思考

我的網(wǎng)絡環(huán)境為:

  • 一根教育網(wǎng)有線網(wǎng)(IPv4 和 IPv6 均為公網(wǎng) IP)
  • 一根移動寬帶光纖(IPv4 和 IPv6 均無公網(wǎng) IP)注[1]

設備環(huán)境為:

  • 華為光貓一臺,辦理移動寬帶租用的,固件鎖了路由功能,只能單 WAN 輸出。
  • 一臺刷了 OpenWrt 的網(wǎng)件路由器 WNDR3800
  • 兩臺 Win10PC,其中一臺作為 NAS
  • 眾多需要 WLAN 的移動設備

理想實現(xiàn)的效果:

  • 盡量少的折騰,最好能在一臺路由器上搞定所有需求,即連接到這臺路由器的所有設備可以自動獲取到IPv4IPv6IP 地址并能順利聯(lián)網(wǎng)。
  • 進一步的要求,由于 PT 需要,每臺設備的 IPv6 地址最好是公網(wǎng)的。

2. IPv6 的三種模式

路由器配置的最難點在于對 IPv6 的支持上,盡管 OpenWrt 三四年前的版本就已經(jīng)可以轉發(fā) IPv6 流量了,但是依舊不完善,尤其是圖形化界面的操作大不如 IPv4。

我通過整理一些大神的技術博客流傳下來的資料,了解到現(xiàn)在 IPv6 轉發(fā)有以下三種方式:

(1) Relay 中繼模式

這是最早用的一種模式,即用路由器作為中繼,路由器獲得 IPv6 公網(wǎng)地址,獲得數(shù)據(jù)后,轉發(fā)給后面所有連接到路由器的局域網(wǎng)設備。

實現(xiàn)中繼模式有以下兩種方法:

  • 6relay,現(xiàn)在搜索‘教育網(wǎng) IPv6 OpenWrt’關鍵詞,出來的大多數(shù)教程都還是用這種方式,實際上 OpenWrt BB 版本后就已經(jīng)不再用這種方式。故忽略。

  • odhcpd,似乎 CC 版本后的 OpenWrt 已經(jīng)支持從 luci 配置這種方式,可見它還是較為穩(wěn)定,不過經(jīng)實際測試,雖然后面的設備能夠獲得路由器局域網(wǎng) IPv6 地址并成功聯(lián)網(wǎng),但 10 分鐘左后后會斷流,需要重啟路由器。我似乎沒有找到比較完美的解決辦法,故而放棄。注[2]

(2) NAT6 模式

眾所周知,在 IPv4 網(wǎng)絡下路由器是用 NAT 進公網(wǎng)到局域網(wǎng)地址轉換的,NAT6 即為 IPv6 編寫的 NAT 服務。網(wǎng)上也能搜到很多有關 NAT6 配置的方法,事實上,這種模式現(xiàn)在非常穩(wěn)定,使用過程中完全察覺不到,和普通的 IPv4 路由沒有什么區(qū)別。

不過 NAT6 模式下還是有個小問題,就是由于后面的設備都是局域網(wǎng) IPv6 地址,加上 OpenWrt 可能對端口轉發(fā)之類的支持不太好,所以掛 PT 時,utorrent 的連接性很差。

(3) 橋接穿透模式

目前來看,對于教育網(wǎng) IPv6 環(huán)境,這可能是最適合的一種轉發(fā)方式。事實上,它和我們平時用到的反插網(wǎng)線強行交換機模式的原理很相似,通過設置將 IPv6 網(wǎng)線接口與 LAN 口橋接,這樣 LAN 口相當于 AP 接入校園網(wǎng) IPv6 環(huán)境;與此同時我們再疊加一個 IPv4 的寬帶即可。這樣的方式下,路由器本身沒有 IPv6 地址,但是后端所有設備都有公網(wǎng) IPv6,非常適合拿來刷 PT。不過由于路由器沒有公網(wǎng) IP,所以想用路由器掛 PT 的可能要考慮上述兩種方式了。

總結

路由器 IP 設備 IP 連接性
Relay 公網(wǎng) 內(nèi)網(wǎng) 較差
NAT6 公網(wǎng) 內(nèi)網(wǎng) 一般
橋接 公網(wǎng) 非常好

對于用路由器做主力 NAS 的情況
: 首選 NAT6

對于每個設備都需要公網(wǎng) IP 的情況
: 首選橋接

3. 路由器配置

(1) 雙 WAN 口設置

WNDR3800 上只有一個原生 WAN 口,我們首先要先通過 luci 界面的交換機設置 VLAN,把一個 LAN 口用作WAN6

設置方式為:

CPU 接口: 所有 VLAN 均需與之已標記(Tagged)

VLAN 連接的接口: 設置為未標記(Untagged)

未與 VLAN 連接的接口: 設置為關閉(Closed)

設置完后的 VLAN 如下

VLAN ID CPU LAN 1 LAN 2 LAN 3 LAN 4
1 已標記 未標記 未標記 未標記
2 已標記 未標記

這樣,連接在 LAN 1 的網(wǎng)口 VLAN 2 就可以用作一個新的 WAN 口。

(2)配置兩個 WAN 口

在 luci 中找到接口,比較新的 OpenWrt 中應該都自帶添加了WANWAN6兩個接口,如果沒有的話,手動添加一個接口并命名為WAN6。

對于WAN口,正常設置即可,比較重要的一點是,因為我不想用移動寬帶的 IPv6,要在接口-高級設置-獲取 IPv6 地址設置為已禁用。

對于WAN6口,找到物理設置,選擇接口為VLAN 'eth0.2'(默認 IPv6 插在了剛剛設置的 LAN 1,寬帶插在 WAN)。

之后就是重頭戲,我們要設置 IPv6 的橋接。網(wǎng)上教程中提到需要安裝ebtables去轉發(fā)即將設置橋接的 WAN 口的 IPv4 數(shù)據(jù),但是顯然在我們這個雙 WAN 的操作中是用不到的,因為校園網(wǎng) IPv4 計流量而寬帶不限量,故忽略這一步。

直接在接口-LAN-物理設置,會看到已經(jīng)有了一個橋接,這個是把 2 個 WLAN 接口及 LAN(eth0.1 即交換機設置中原有的 VLAN1)橋接在一起,使得 LAN 下的設備彼此互聯(lián)。我們在這個已有的橋接中添加勾選VLAN 'eth0.2'即把 WAN6 和全部 LAN 橋接在一起。

雖然原理講起來非常復雜,但實際操作我們只需這樣簡單的一個操作,就完成了 IPv6 的橋接穿透。

當然,根據(jù)網(wǎng)上教程最后還需要在啟動項中禁用 odhcp,以免它反復報錯。

后續(xù)思考

橋接模式下的一個小 BUG

由于開機過程比較緩慢,在路由器剛啟動時,DHCP 還沒有來得及給設備分 IP,這時由于橋接,設備已經(jīng)獲取到了校園網(wǎng)的 IPv4 地址,這顯然是我們不希望的。這個現(xiàn)象目前我的解決辦法就是開機先讓路由器緩一會兒再連網(wǎng),還沒有找到更好的辦法。

NAT6 模式下的端口轉發(fā)

理論上來說,通過ip6tables可以設置 IPv6 的端口轉發(fā),不過囧于 luci 沒有很好地適配 ip6tables,所以需要在命令行操作,加之我自己沒有需要,就懶得研究了,以后有空了沒準會研究一下。


參考鏈接

OpenWRT IPv6 三種配置方式

http://blog.kompaz.win/2017/02/22/OpenWRT%20IPv6%20%E9%85%8D%E7%BD%AE/

Lede、PandoraBox IPv6 NAT66 的實戰(zhàn)操作

http://www.right.com.cn/forum/thread-253712-1-1.html


  1. 移動在 2018 年前后陸續(xù)開通了 IPv6,速度和 IPv4 一致(也就是依舊上下不對等),但是考慮到 IPv6 PT 站點多為教育站,屏蔽了公網(wǎng) IPv6 流量,所以我在這里并不準備用移動的 IPv6。 ?

  2. 最近的發(fā)現(xiàn),這種模式對于移動寬帶這種原生 IPv6 支持還是很好的,但是和教育網(wǎng)的配置始終有點小 bug,我沒有深入研究。 ?

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內(nèi)容