关键词:天津大学 北洋园 openwrt ipv6
最开始为了一些你懂得的用途在@reclusivepanda的安利下入手了一个r2s,刷了openwrt,除了有时候b站css样式加载不出来等几个阴间bug之外都还不错(软路由真香,解码能力比家里的网件强亿倍)。好景不长,注册了北洋园pt之后笔者发现下完的种子做种几乎没有上传,再持续下去怕不是要被直接封号,于是询问tjupt群里dalao,得知主要的peers都用ipv6,emm…北洋园这边的网对openwrt的支持不是很行,至少v6自动获取ip即插即用是不用想了。
v6的事零零散散折腾了两三个月,无论是博客上现成的解决方案还是问校内的各路dalao笔者都没成功解决问题。于是趁着元旦放假,笔者花了两三天时间找了找解决方案,在R2S上胡乱折腾,终于今天(20210104)解决了v6地址问题,给孩子激动坏了。闲话少说,开始正文。
首先,笔者假定读者已经安装好了r2s(与附属的交换机等等设备),使用luci界面,并且完成了在端口wan上的pppoe拨号。
在一顿操作前,网络-接口界面应该是这样子的:
而tju的网络分配下来的是/128的地址,笔者理解为一个地址(就像ipv4那样)而不是地址段,因此只能采用万恶的NAT给LAN下的客户端分配地址。不过说NAT的提供者还是自己的R2S而不是万恶的ISP ,因而PT用户毋须担心,R2S配置好UPNP,NAT+v6可以正常做种。
总的说来,v6地址设置分为三部分:路由器wan获取-路由器lan服务搭建-防火墙转发设置
WAN获取:
这是笔者网线直连pc之后访问ipv6-test.com获得的结果,注意到tjuv6不支持SLAAC,而使用标准DHCP-V6分配地址
tju的v6网络疑似有MAC认证/识别机制,折腾之前笔者的R2S在wan6端口从未直接获取到ipv6地址.
- 配置wan6
- 删除系统自带的wan6接口并重建一个wan6,接口协议选DHCP-v6。保存并应用后等待几秒刷新一下,若无v6地址在wan6选项卡下出现则wan6-修改-高级设置-重设MAC地址,随便更改一下MAC地址保存并应用。此处建议改最后一位,因MAC地址似乎有自己的命名规则。
- 在网络-接口下“全局网络选项”中更改IPv6ULA前缀,将首位的第一个字母由f改为d。例如笔者的前缀是fd00:a123::/48,将第一位f改为d,即dd00:a123::/48。
- 到这里wan6应该能正常获取v6地址了。tju的校园网声称为v4/v6双栈网络,不过笔者查到的案例都表明双栈网应该在PPPOE接口(pppoe-wan)获得v6地址,而非重新开一个wan6接口。这也可能与校园网认证有关。
- 配置lan
- 在网络-接口-lan-DHCP服务器-IPv6设置下进行如下更改
- 路由通告服务=服务器模式
- DHCPv6服务=服务器模式
- NDP代理=已禁用
- DHCPv6模式=无状态+有状态的
- 总是通告默认路由=开
此处建议不使用tju提供的DNS,而使用阿里/百度/谷歌/北邮DNS。笔者使用的是2400:3200::1 2400:3200:baba::1
- 在网络-接口-lan-DHCP服务器-IPv6设置下进行如下更改
- 设置防火墙
- 防火墙
在网络-防火墙-自定义规则 中 最后一行加入
ip6tables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
这里eth0应该填写wan6的网卡名称,在R2S的情况下wan与wan6共用物理接口eth0,所以直接复制上述命令没有问题。在其余硬件的情况下请自行ifconfig查看网卡名称
- 网关
- 在R2S的终端内使用traceroute -6 2400:3200::1 看第一行出现的ipv6地址,此地址既是当前网络状态下的网关。我们需要将此地址添加到默认路由表中
- 终端内输入命令 route -A inet6 add default gw (gateway) dev eth0
这里(gateway)整体替换为刚才复制的网关v6地址,eth0同上,不解释。
- 重启服务使更改生效
/etc/init.d/firewall restart
/etc/init.d/network restart
- 网关更改设置脚本
route命令每次重启后需要重新输入,不妨写一个开机自启动脚本。终端下进行如下操作:
vi /etc/hotplug.d/iface/90-ipv6
进入编辑页面将以下内容直接复制进去
#!/bin/sh
[ “$ACTION” = ifup ] || exit 0
route -A inet6 add default gw (gateway) dev eth0
输入:wq后enter退出编辑器
然后给予执行权限:
chmod +x /etc/hotplug.d/iface/90-ipv6
设置完成。
- 负载均衡设置
有案例称一些固件的负载均衡设置会影响v6可用性。如果有负载均衡功能则作如下修改
网络-负载均衡-策略 中 balance项将 不可达(拒绝)修改为 默认(使用主路由表)
网络-负载均衡-规则 中 https 与 default_rule将 分配的策略 (从不可达)修改为 default