IPv6
有一天,小明连上了校园网,还没有打开位于某个熟悉地方的软件时,就先打开Chrome浏览器搜索起来,和往常一样,他成功的在某个不存在的搜索引擎上找到了一些东西。正当他想要继续点开另一个不存在的网站时,网站404了。这时,小明才发现,他忘了打开那个软件。
可是他马上奇怪起来,为什么在没打开那个软件的情况下就能打开那个不存在的搜索网站?在好奇心的驱使下,他依次试验了某个名单上的网站,发现,能打开的只有狗鸽系的产品。
所以为什么呢?奇怪的他打开了cmd,开始ping狗鸽的域名,然后发现居然能够ping通!他感到惊奇,然后开始追踪路由,发现路由直接通过北京的教育网出口连接到了香港的一个服务器群。
惊奇之余的他,发现这些解析的地址均为IPv6地址,而非普遍被ban的IPv4地址,他意识到手机的三网4G也有IPv6环境,于是他使用4G网络又测试了一遍。然而,即使狗鸽的域名已经解析为上述的服务器群的IPv6地址,却依旧ping不通。他没有放弃,选择每个运营商都试试,结果发现,解析到的服务器V6地址,无论是美国的还是香港的,校园网下均能连通,但无论采用哪家运营商的4G网络,都ping不通!
很明显,针对不同的网络出口,IPv6的防火墙的策略并不相同。
小明不禁陷入了对人生和社会的大思考。
目前谷歌全系列V6地址已于2019年10月1日前夕被CERNET屏蔽,但是谷歌学术依旧可以访问,经过查询发现是国家下一代互联网中心专门搞了一个代理,在教育网下访问谷歌学术不是直接访问的谷歌的服务器,而是访问的国家设置的代理服务器。理论上所有一切流量/访问内容都有可能遭到**,所以建议还是自己有能力的用梯子访问谷歌吧。
正文
目前除了少数的SCUNET外,大部分的需要身份认证的校园网基本都有了原生IPv6地址,v4v6双栈,通过无状态地址自动配置方式下发,前缀长度64 (SLAAC /64)。
IPv6有什么好处
- 带宽的提升,新校园网以及望江寝室校园网的IPv6带宽为上下对等100M。
- 部分资源只有IPv6用户能用,比如高校PT、IPv6电视直播等。
教育网IPv6下比较神奇的放通了谷歌服务器的IPv6地址。所以教育网IPv6环境下可以直连谷歌油管等谷歌系列产品。tips: 即使ipv6能够直连狗哥,还是不太建议裸奔。- IPv6环境下,对单个IP的封锁将比较无力,毕竟地址足够的多。
IPv6网络质量
除了4G外,目前你在川大能使用到的IPv6地址都是川大的教育网地址。因此,在此地址下你的所有IPv6流量都是会经过北京的IPv6流量出口,无论是国内流量还是国外流量。好在目前IPv6的使用率并不高,经过观察,并未对IPv6流量进行限速,因此除了教学区SCUNET这种进行了整体限速的网络外,你的所有ipv6链接的带宽都取决于端口/传输方式的上限,有线新校园网的上限是100Mbps,SCUNET 2.4Ghz的上限大约是70Mbps。至于延时,你的每次流量都会经过北京出口,延时50ms起底。稳定性尚佳。
大带宽的好处自然有很多,上面的文章提过,教育网出口很诡异的放通了谷歌系服务的服务群地址。因此现在你在这种大带宽的条件下可以很容易地流畅播放YouTube的8K视频。并且即使移动宽带针对IPv4有30M的限速,IPv6下载时依旧可以上到10M/s。
YouTube 8K视频流畅播放
使用方法
如果你的电脑是直接连接到了SCUNET或者有线网络的时候,电脑不需要认证就能够自动获取到IPv6地址,但是ipv6要通外网还是需要认证,外网的入网流量也会碰到防火墙。因此不能如同其他学校一样IPv6免流量使用,并且,如果你在中间使用了路由器的话,就同时需要路由器也能够支持向下分发ipv6地址,否则电脑就只能接入IPv4网络,也就没法联通狗哥了。
要让路由器支持IPv6的下发其实也有很多种方案,你可以参考这篇帖子中和这篇wiki来对路由器进行相关设置以下发IPv6地址。
一般来说,让路由器支持IPv6有以下方案:
- 划分子网:在学校给的子网里,强行给自己划一个更小的子网
- 中继:把WAN的IPv6数据包改MAC代理到LAN里面来,再把LAN的数据包改MAC代理到WAN去 (6relayd)
- 桥接:在WAN和LAN之间架一个只允许IPv6数据包通过的桥
- IPv6 NAT(如:NAPT66),划分一个 IPv6 局域网,跟 IPv4 差不多。
由于划分子网不一定支持Android,所以放弃;由于桥接不支持需要认证才能通外网的川大校园网,所以放弃;以下介绍老毛子固件上使用中继和NAT两种方案来给下级路由使用IPv6。这两种方式在使用上网络质量没有明显的差异,各有利弊,自行选择。
IPv6 NAT方案
这一方法其实是给子网下发局域网地址,然后上网对外使用的是路由器wan口获得的ipv6地址。但是IPv6自带穿透的特性被吃了,对于PT而言是极大的劣势。如果你想在老毛子固件上使用ipv6 nat的话,就一定要将固件升级到2019年8月12日及之后的版本,以便获取最新集成的napt66功能。
1. 设置IPV6页:
其中IPv6内网地址处请随意设置从FD00:0000:0000:0000:0000:0000:0000:0000
到FDFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF
的/48前缀地址。如果不会设置就把下图的1989:1109更改为其他任意的日期吧,例如1989:0535。之后保存设置。
NAT方案下ipv6的设置
2. 启用napt66并重启:
在“系统管理 - 服务”里将napt66启用并保存设置。
启用保存后等一会儿,然后重启
等半分钟稳定后,重启系统。然后你会发现你的设备就拥有了IPv6内网地址了。也可以访问IPv6资源,不过用的地址还是路由器的公网ipv6地址。
IPv6中继方案
6relayd中继使路由器下发IPv6:
原理是使用6relayd来收集WAN口的IPv6数据包,将其源MAC地址改为路由自己,RA、DHCPv6中的默认路由等信息也改成路由自己,再发送到LAN。同样地,也会收集LAN的IPv6数据包,将源MAC改为自己,发送到WAN中。
这样一来,对于上级交换机而言,只有这一个MAC地址在通信,从而可以通过认证。对于客户端而言,默认网关就是路由器。算是“欺上瞒下”。但是ipv6地址还是用的设备自己的,不是路由器的。
不过 6relayd 不是很稳定,如果长时间没有ipv6流量可能会自动掉线。在后期需要添加定时任务防掉线。
老毛子使用6relayd步骤:
1. 设置IPV6页:
先将IPv6获取的方式设置为stateless,记得先将路由器连上网
2. 安装OPKG:
- 老毛子像openwrt一样安装额外的软件包需要U盘,或者用内存代替,这里我用了一个老U盘来用。U盘至少得1G,当然大点更好。(淘宝一个8G U盘十块钱,所以还是建议别浪费内存)
- 插入U盘并勾选“移除并格式化为EXT4”,然后移除之后,待Log界面提示格式化完成后(几十秒左右)重新插拔U盘。
格式化U盘为EXT4
格式化完成的提示
- 如果你执意要用内存代替,也可以不用以上步骤,直接在管理后台开启 opt 环境:设置路径在“扩展功能”-“配置扩展功能”-“opt环境”,启用 opt 自动更新、启用扩展脚本自动更新、打开 opt 强制安装、opt 安装模式选择“自动选择:SD→U盘→内存”。打开之后在 log 中会有安装的过程,出现类似【opt】: opt 挂载正常:tmpfs的日志说明 opt 环境已经安装成功。
- 看看是否加载成功
如果出现mount
/dev/sda1 on /media/AiDisk_a1 type ext4 (rw,noatime)
字样就是成功了。 - 建立对应的opt目录:
mkdir /media/AiDisk_a1/opt mount -o bind /media/AiDisk_a1/opt /opt
- 初始化opkg
等待1分钟左右,如果没有出现错误提示就可以了。 如果有错误提示,重复执行这句,直到没有为止。 如果错误5次以上,那说明你的网络没办法连接 entware.net 服务器,这个就要自己想办法了。(不要在路由器没办法联网的时候安装)opkg.sh
- 查看opkg是否正常以及更新update:
opkg list opkg update
3. 安装并开启6relayd:
- 执行以下代码:
opkg install 6relayd 6relayd -d -A eth2.2 br0
- 这里的 eth2.2 是 WAN 网口的网卡名称,可用 ifconfig 命令来查看,记得修改。而 br0 则代表LAN网卡名称,一般不用更改。
- 然后你就会发现你的设备里已经有IPv6地址啦。
- 以后每次路由器重启联网后都可以在“系统管理 - 控制台”里输入下面的命令启动6relayd:
6relayd -d -A eth2.2 br0
- 启动成功后控制台会输出以下信息:
4. 定时任务:
6relayd一段时间不用就会自动掉线,所以我们设置一个定时任务去ping QQ 的v6地址:
在 ‘高级设置->系统管理->服务->计划任务’ 加入一条任务,每半小时执行一次ping -6,记得保存设置:
*/30 * * * * ping -6 -c 2 www.qq.com
测试与测速:
能打开这个东北大学IPv6测速网站证明已经具有IPv6环境了,并且可以测速,不过因为带宽的关系下载测试数据可能比较小。
也可以看这个网页的结果看IPv6的状态。