自由尋覓快樂別人從沒法感受

0%

SCNU校园网IPv6配置

前言

因教育网IPv6不限速,使用清华TUNA的开源镜像站下载资源能够跑满带宽,体验非常好,所以就有了给路由器配置IPv6的想法。之前使用极路由官方固件时有官方的教育网插件可以用(使用6relay),但换了Openwrt后使用的是odhcpd,需要自己重新配置一下。这篇博客纪录了我的配置过程,其中参考了恩山论坛的这篇帖子。

配置环境

  1. 本次配置使用的硬件设备:极路由3(HC5861、MT7620)
  2. 本次配置使用的固件:Lean’s Openwrt R21.6.22
  3. 本次配置使用的Mentohust:Mentohust-ipkLuci-App-Mentohust

Lean’s Openwrt中内核模块默认勾选了NAT6功能,因此编译时只需要勾选编译Mentohust相关的软件包即可,编译的过程在此就不赘述了。

路由器配置

刷入固件后,先不要连接路由器的WAN口,待电脑DHCP获取到由路由器分发的IP地址后,再将网线连接到WAN口。(如果一直连接WAN口,电脑会首先获取到校园网DHCP的IP地址,此时需要断开并重启电脑与路由器的连接)

WAN6接口配置

在基本设置中,各项配置如下:

  • 协议:DHCPv6客户端
  • 请求IPv6地址:try
  • 请求指定长度的IPv6前缀:自动

在高级设置中,各项配置如下:

  • 使用内置的IPv6管理:不勾选
  • 使用对端通告的 DNS 服务器:不勾选(SCNU校园网不分发IPv6的DNS服务器地址,IPv6的地址解析全都是用v4的DNS服务器,因此需要自行指定)
  • 使用自定义的DNS服务器:2001:da8::666

保存并应用,可以看到WAN口同时获得了IPv4和IPv6的地址,接下来可以进行Mentohust的配置了。

WAN口状态

Mentohust配置

打开服务-MentoHUST,在常规设置中进行如下配置:

  • 用户名和密码:填入自己的校园网用户名和密码
  • 接口:选择WAN口网卡,我的路由器是WAN口是eth0.2
  • Ping主机:如果需要掉线检测功能,就填入一个公网IP地址,我使用了自己的云服务器IP地址

在高级设置中进行如下配置,其他无需修改:

  • 验证失败等待时间:5
  • DHCP设置:认证前
  • DHCP的脚本:udhcpc -i eth0.2

最后在常规设置中勾选启用,保存并应用,查看日志,试试能否登录成功。

Mentohust日志

确认能够连上互联网后,ssh连接路由器,尝试ping一下IPv6的地址,验证路由器是否正确获取IPv6地址并连接成功,以下是ping6的命令和执行结果。

1
ping6 -c 4 bt.byr.cn

Ping结果

LAN口配置

接口页面,找到全局网络选项,修改IPv6 ULA前缀

  • 将地址的首位改为d(你喜欢改什么都行),我从fd73:1f1d:a603::/48改为了dd73:1f1d:a603::/48

编辑LAN口配置,找到DHCP服务器,修改IPv6设置:

  • 路由通告服务:服务器模式
  • DHCPv6服务:服务器模式
  • NDP代理:已禁用
  • DHCPv6模式:无状态的+有状态的
  • 总是通告默认路由:取消勾选

保存并等待一段时间,此时电脑应该获取到了路由器自行分发的IPv6地址,LAN口也有自己的IPv6地址。

接口配置

防火墙配置

打开防火墙的自定义规则,添加如下一行规则并点击重启防火墙,开启IPv6数据包的转发。

1
ip6tables -t nat -A POSTROUTING -o eth0.2 -j MASQUERADE

网关配置

首先ssh登录路由器,查看当前IPv6的默认路由

1
ip -6 route | grep default

可以看到有2条路由配置

默认路由

复制这个fe80开头的IPv6地址,将当前的默认网关添加到默认路由中

1
route -A inet6 add default gw fe80::274:9cff:fe80:dc7d dev eth0.2

再次查看当前的默认路由,可以看到有3条记录

默认路由

重启网络服务,验证局域网设备能否连上IPv6网络(重启后记得手动重启Mentohust服务)

1
/etc/init.d/network restart

由于默认路由重启后会重置,因此需要添加一个脚本,让路由器开机自动添加默认路由

1
vi /etc/hotplug.d/iface/90-ipv6

添加如下内容,其中的默认路由地址修改为自己的默认路由

1
2
3
#!/bin/sh
[ "$ACTION" = ifup ] || exit 0
route -A inet6 add default gw fe80::274:9cff:fe80:dc7d dev eth0.2

保存退出后,赋予执行权限

1
chmod +x /etc/hotplug.d/iface/90-ipv6

IPv6测试

打开http://ipv6-test.com/

测试结果

打开http://test-ipv6.com/

测试结果

总结

对于SCNUNET,一开始我使用的IPv6方案为全中继的模式,路由器局域网设备IPv6地址全由上级路由器分发,局域网设备的确是获得了公网IPv6的地址,但是这个地址是上不了网的,而路由器的IPv6地址却使用正常,个人猜测是因为这些IPv6地址没有登录校园网,因此也无法使用。

既然在中继IPv6的方案下不可行,那就只能使用NAT6的方法了。在参考了许多篇配置的文章后,终于是配置成功了。