1. 程式人生 > >轉載知乎大神設定普通路由器支援IPV6

轉載知乎大神設定普通路由器支援IPV6

其實還有幾個解決方案。
@吳浩說的已經很正確了。插上LAN口,這樣就可以使用上IPv6了。
首先先回答為什麼使用路由器就不能使用IPv6。
因為首先,市面上的路由器都是NAT路由器。這個路由器的結構是什麼呢?相當於一個交換機+路由器(如果有多個LAN口的話)。如果有無線介面的話,那麼,這個交換機是將無線和有線LAN口橋接在一起,組成一個大的交換機。一般來說,大部分品牌LAN口是黃色的。
而另外一個藍色(大部分品牌)是WAN口。這個“路由器”裡面的那個路由器其實是雙口的路由器,一個這個WAN口和一個隱藏的口,一般來說,這個隱藏的口就是路由器配置介面上的“LAN口”,這個口和“路由器”裡的交換機相連。
把校園網插在WAN口上,幾個人都能上網的原因是,這個“路由器”裡的路由器具有NAT功能,可以讓多個人共享一個IPv4上網。然而,一般的“路由器”都不提供IPv6的NAT功能(歷史原因?),所以這個“路由器”裡的路由器就一刀切把IPv6的包全部丟掉了。
IPv6不管是由DHCPv6分配也好,鄰居發現協議配置也好,如果一刀切把流量丟了,自然獲取不到IPv6地址。
然而接在LAN口上,就相當於你的電腦和校園網是鄰居。DHCPv6或者鄰居發現就會為你配置好IPv6。(其實在一般校園網架構中,最底端就是一個交換機,牆上的介面就是和交換機的一個口相連。)
這樣就很好解決這個問題了,直接把牆上介面接到LAN口上不就行了?
不行。這就是@吳浩提到的要關閉DHCP的原因。在使用路由器NAT上網的時候,分配IP的是路由器。這下校園網也有DHCP,就會打架,導致IP錯亂。更嚴重的是,會造成DHCP攻擊,你的路由器的DHCP會導致隔壁宿舍(辦公室)上不了網。(比較新交換機會配置DHCP-Snooping來杜絕這個問題,但不是所有學校如此,這些個玩意都是幾千大洋起步的)
所以解決問題方法很簡單:關閉你的路由器的DHCP,然後所有連路由器的人都設定靜態IP,DNS伺服器就填寫路由器的閘道器地址,或者改成校園網的DNS地址。(考慮到需要校園網認證,不能直接設為114.114.114.114這樣公共DNS)當然如果學校的校園網網段和你的路由器重了,那就麻煩改掉你的路由器裡的網段吧。然後拿2根網線,都插校園網的口,然後另一頭一個插LAN口,一個插WAN口。牆上就一個口怎麼辦?買個分線器或者再一個“路由器”唄。
有人可能問了,直接像@吳浩到那樣的解決方案不就行?
是可以,不過有一個問題就是,每個人分到都是獨立的IP。要知道,校園網都是限制IP登入帳號數目的,尤其是不限流量套餐,要是一個人買一個帳號多虧啊,宿舍幾個人買一個多好。
其實還有一個解決方案,就是把你的路由器刷成Openwrt或者DD-wrt,然後把WAN口和LAN口橋接,然後過濾橋上的所有IPv4流量。然後只把校園網口接在WAN口就行了。這有2大好處:1.路由器DHCP照開,電腦(手機)不用配置靜態地址 2.校園網只要接一處。
=================我是分割線====================
總結一下,解決方案有:
1.關閉路由器DHCP,校園網插在LAN口上,一人一個IP(如果學校限制帳號同時登入IP數目的話,就是一個帳號只能分給有限幾個人,很多學校限制2~3個,也就是2~3個人用一個,下同,不再重複)。
2.關閉路由器DHCP,校園網在LAN口和WAN口上各插一處,所有裝置手動配置IP。好處是多人可以用一個帳號(IP),而且只要一個人登入,全宿舍都上網。
3.使用DD-wrt/Openwrt橋接WAN口和LAN口,用ebtables過濾橋上的IPv4流量。校園網只插在WAN口上。好處同上,還可以不用關閉DHCP。

畢竟手機啥的配置IP挺蛋疼的。所以自己能動手就用方案3吧。
附:這是我在DD-wrt的解決方案,至於怎麼刷DD-wrt,路由器能不能刷DD-wrt,請自行查詢自己的路由型號。刷成磚概不負責。
另外,最好能熟悉Linux知識。
首先,通過Telnet/SSH連上路由器,然後

我是註釋

啟用ebtables部件

insmod ebtables
insmod ebtable_broute
insmod ebtable_filter

橋接vlan1到橋br0

brctl addif br0 vlan1

濾過IPv4流量

ebtables -t broute -A BROUTING -p IPv6 -j ACCEPT
ebtables -t broute -A BROUTING -p ! IPv6 -i vlan1 -j DROP
根據DD-wrt的說明文件Default internal device network ,Vlan1是外部網路。當然我不知道Openwrt是不是這樣,OpenWrt參考這個
[2013-09-15]openwrt下的ipv6單一地址做閘道器(附mentohust、njitclient)

https://dangfan.me/zh-Hans/posts/router
OpenWRT配置IPv6的NAT(一般結合isatap使用) · BlahGeek’s Blog
後面2個和我一樣都是苦逼學生(笑)
最後再說,刷成磚我不負責啊。最後祝您身體健康,…(略)。
(本人渣渣理工學生,如有錯誤歡迎指正)

還有就是:在外網接入以前,只用一根網線連線電腦和路由器,登入路由器關閉DHCP服務,然後WAN和LAN的設定都使用自動模式再接入外網,也就是將外網分別插到路由器的LAN和WAN口上。之後在手動設定每一臺介入該路由器的裝置,使得他們的IP全部在路由器指定的網段內,一般都是192.168.1.X,這樣才能進行區域網通訊。有時候需要多買一個交換機或者路由器。這樣設定以後不好訪問路由器,所以懷疑是不是需要將路由器的LAN甚至WAN也設定成手動指定的,有時間在實驗,反正現在手機,筆記本和桌上型電腦都接入了路由器,能上六維空間,能相互ping通,已經達到我的要求。