老毛子 Padavan 路由器固件开启教育网 IPv6 并实现IPv6转发
自从给小米路由器mini刷了老毛子固件之后就特别想实现路由器的 IPv6 服务,最近刚到学校就开始折腾,到今天总算是比较完美了。注意:此教程只适用于老毛子Padavan 华硕固件,并且有原生 IPv6 网络(教育网)。
一、开启opt环境
首先要在老毛子的管理后台开启 opt 环境,设置路径在“扩展功能”-“配置扩展功能”-“opt环境”,启用 opt 自动更新、启用扩展脚本自动更新、打开 opt 强制安装、opt 安装模式选择“自动选择:SD→U盘→内存”。打开之后在 log 中会有安装的过程,出现类似【opt】: opt 挂载正常:tmpfs
的日志说明 opt 环境已经安装成功。
开启 opt 环境
二、开启 WAN 端 IPv6
在管理后台“外部网络(WAN)”-“IPv6 设置”中设置:
IPv6 连接类型:Native DHCPv6;即原生的 DHCPv6
IPv6 外网设置
获取 IPv6 外网地址:Stateless: RA
DNSv6 外网设置
自动获取 IPv6 DNS:否
DNSv6 服务器 1:2001:250:4800::a
DNSv6 服务器 2:2001:250:4800::b
注:DNS 的设置可能每个学校不太一样,以学校的教程为主,比如我们学校要求 IPv6 的 DNS 设置为:2001:250:4800::a 2001:250:4800::b
IPv6 内网设置
通过 DHCPv6 获取内网 IPv6 地址:启用
启用 LAN 路由器通告:启用
启用 LAN DHCPv6 服务器:Stateless (*)
总的设置如下图:
settings
设置好后点击页面下方的“应用本页面设置”,等待路由器反应过来后就打开“网络地图”-“外部网络状态”,可以看到已经获取到了 IPv6 地址,如图:
network-map
然而这个时候只是路由器能访问 IPv6,路由器下级的设备还不能,因为没有对应的 IPv6 转发协议。网上有很多这样的程序,6relayd 就是其中一个,这里我用 6relayd 来转发 IPv6。
三、安装并运行 6relayd
用 ssh 工具连接到路由器,运行以下命令:
opkg update
opkg install 6relayd
安装好之后再输入以下命令来运行 6relayd
6relayd -d -A eth2.2 br0
这里的 eth2.2
就是 WAN 网口的网卡名,可用 ifconfig
命令来查看,一般不用更改。而 br0
则代表整个内网,一般也不用更改。
运行之后连接到路由器的设备也能获取到 IPv6 地址并访问 IPv6 资源。
电脑谷歌查看 IPv6 地址
不过呢,一旦重启之后 Opt 环境就重新配置了,6relayd 也就没了。所以每次重启都要重新安装并运行 6relayd,很是麻烦。如果你想每次开机都自动配置 6relayd 的话就看下一步。
四、开机自动安装并配置 6relayd 脚本
下面给出我写的脚本,粘贴到“高级设置”-“自定义设置”-“脚本”-“在路由器启动之后执行”中最后即可实现开机自动安装配置 6relayd。
#开机自动安装运行 6relayd
export PATH='/etc/storage/bin:/tmp/script:/etc/storage/script:/opt/usr/sbin:/opt/usr/bin:/opt/sbin:/opt/bin:/usr/local/sbin:/usr/sbin:/usr/bin:/sbin:/bin'
export LD_LIBRARY_PATH=/lib:/opt/lib
while ! [ -x "`which opkg`" ]
do
logger -t "【6relayd】" "Waitting opt install"
sleep 3
done
while ! [ -x "`which 6relayd`" ]
do
logger -t "【6relayd】" "6relayd not found,begin to install it"
opkg update
opkg install 6relayd
done
logger -t "【6relayd】" "6relayd has been installed"
6relayd -d -A eth2.2 br0
logger -t "【6relayd】" "6relayd start"
然后点击页面下面的“应用本页面设置”即可,这样每次开机的时候会等待 opt 环境,一旦安装好 opt 环境就自动下载 6relayd 并配置运行。
五、解决 6relayd 自动掉线
我看网上有说如果长时间没有 IPv6 的连接,6relayd 会自动停止,这样就要重新运行 6relayd 一次,我想到的解决办法是每隔半小时 ping 一下谷歌的 IPv6 地址。将以下代码添加到“系统管理”-“服务”-“计划任务 (Crontab)”中即可。
*/30 * * * * ping -6 -c 2 ipv6.google.com
六、总结
好啦,以上就是这篇博客的全部内容了,在这里我也希望学校能早日在宿舍区域也开启 IPv6 ,不过到那时我也该走了 可惜了,毕竟 IPv6 短时间内还只是教育专属资源。