转载知乎大神设置普通路由器支持IPV6

Posted 小帅比simon

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了转载知乎大神设置普通路由器支持IPV6相关的知识,希望对你有一定的参考价值。

作者:Kuroko Baka
链接:https://www.zhihu.com/question/31699421/answer/63285066
来源:知乎
著作权归作者所有,转载请联系作者获得授权。

其实还有几个解决方案。
@吴浩说的已经很正确了。插上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通,已经达到我的要求。

以上是关于转载知乎大神设置普通路由器支持IPV6的主要内容,如果未能解决你的问题,请参考以下文章

Openwrt ipv6 怎么设置

wifi开启ipv6有啥用?

ipv6设置

ipv6的地址类型中用于分配给用户主机的是哪种类型?求大神帮助

openwrt旁路由的扩容及设置ipv6

ipv6功能有啥用