15

SCNU校园网IPv6配置

 3 years ago
source link: https://fisher.lazybone.xyz/scnu%E6%A0%A1%E5%9B%AD%E7%BD%91ipv6%E9%85%8D%E7%BD%AE.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

因教育网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的命令和执行结果。

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数据包的转发。

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

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

ip -6 route | grep default

可以看到有2条路由配置

默认路由

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

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

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

默认路由

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

/etc/init.d/network restart

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

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

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

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

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

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的方法了。在参考了许多篇配置的文章后,终于是配置成功了。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK