路由器就不能使用IPv6的办法

Submitted by bluehostmonster on 周五, 2018-10-19 02:18

简单说:插上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是外部网络。

还有就是:在外网接入以前,只用一根网线连接电脑和路由器,登录路由器关闭DHCP服务,然后WAN和LAN的设置都使用自动模式再接入外网,也就是将外网分别插到路由器的LAN和WAN口上。之后在手动设置每一台介入该路由器的设备,使得他们的IP全部在路由器指定的网段内,一般都是192.168.1.X,这样才能进行局域网通信。有时候需要多买一个交换机或者路由器。这样设置以后不好访问路由器,所以怀疑是不是需要将路由器的LAN甚至WAN也设置成手动指定的,有时间在实验,反正现在手机,笔记本和台式机都接入了路由器,能上六维空间,能相互ping通,已经达到我的要求。