欢迎光临散文网 会员登陆 & 注册

iStoreOS (OpenWRT)下校园网无前缀ipv6稳定配置

2023-07-03 00:00 作者:ZHY2020  | 我要投稿

背景

我所在大学的校园内网具有DHCP分配的公网ipv6地址,PC直接连接后通过网页的账号认证后即可自动获取,并可直接访问纯ipv6网站,并可以由ipv6进行BT下载。

但是在接入自己的OpenWRT路由器后,下游LAN上的设备就只能使用ipv4上网,公网的ipv6地址只会分配到路由器的WAN6接口上,下游设备拿不到公网ipv6地址。

初步方案

经过搜索要让下游LAN上的设备能拿到公网ipv6地址,需要使用ipv6中继(relay)模式进行配置。

站内有视频详细配置方法:

视频主要是编辑配置文件:/etc/config/dhcp

在LAN和WAN6下添加:ra,dhcpv6,ndp 的relay配置,WAN6下需要master使能:

这样使用配置文件略麻烦但通用,iStoreOS后台的LuCI Web UI对此有相关选项:

网络--接口--LAN--DHCP服务器--ipv6设置
网络--接口--WAN6--DHCP服务器--ipv6设置

部分OpenWRT固件则可能没有WAN6下的设置选项,需要配置文件设置

问题

如上配置完relay模式,重启路由,并重启客户端网卡,ipv6公网ip就可以给到下游LAN上的客户端。

但此时客户端依然无法通过ipv6访问网站(ping不通ipv6的外网IP地址,DNS可解析v6地址)。如果先ping一下路由器WAN上的ipv6地址,会出现第一次相应时间几百ms,后面都是1ms以内的正常局域网延时。之后ping其他的ipv6地址就都可以连通,纯ipv6网站也可以访问(这会生效一个设备)。这种状态仅能维持一段时间,之后仍需重新ping路由器的ipv6地址,才可恢复ipv6的访问能力。

解决方案

通过google搜索openwrt ipv6 relay ping等关键词,查找类似情况。

根据恩山论坛的帖子:https://www.right.com.cn/forum/thread-337386-1-1.html

定位到是OpenWRT的默认ipv6路由表问题。路由器下的ipv6网段全部指向了WAN接口,路由器不知道客户端使用的v6地址位于LAN接口下

如下图(此图中已正确设置,默认情况下没有中间一条)

状态--路由表

先前提到如果客户端先ping了下路由器wan6上的地址,就又可以上ipv6网了,此时会在路由表中添加一条目标为客户端ipv6地址指向br-lan的条目,路由器即可向lan路由ipv6数据,但这个不会一直生效,一段时间后又会指向wan6。

原帖楼主提供了解决方案:在网络接口启动时添加正确的路由信息:

使用脚本,添加到/etc/hotplug.d/:

重启路由后,正确的路由信息即可被添加,此时依然有概率下游设备无法ipv6上网。ipv6路由表中会出现目标为客户端ipv6地址指向wan6的条目,唯一作用与该ip,这个是“学习路由”导致的,iStoreOS中在设置中继模式的地方就可以设置,把它关掉即可,这样新联入的设备就可自动获得ipv6地址,并能上网了。

一些OpenWRT固件的LuCI Web UI没有“学习路由”的设置项,它在/etc/config/dhcp中的项目名为“ndproxy_routing”,跟配置中继一样增加“option ndproxy_routing "0" ”

我的最终配置文件供参考(我这里把dhcpv6禁用)

其他

本设置方案已在iStoreOS 21.02.3 x86软路由上通过。

iStoreOS

同时还在一台Newifi D2硬路由上的OpenWRT上测试通过,固件是恩山论坛上一个老哥编译的带联发科闭源无线驱动和ipv6支持的固件,此版本的LuCI Web UI缺少Wan6的中继模式设置项和“学习路由”设置项。


iStoreOS (OpenWRT)下校园网无前缀ipv6稳定配置的评论 (共 条)

分享到微博请遵守国家法律