校园网环境下Openwrt配置ipv6教程——以nat6为例

2022-04-04 14:58:59 37点赞 189收藏 57评论

注意:本教程仅适用于教育网环境下,对于家庭宽带IPV6并不适用;使用的nat6 kmod理论上也适用于潘多拉,openwrt,lede原版固件。

背景

去年的时候我在闲鱼上淘了一个j4105处理器的四网口软路由,专门用于用于安装openwrt,提高局域网的网络性能,实现外网访问去广告,UU加速器,transmission下载(不推荐) webdav挂载等多样性的功能。

网络环境

我自己是学生,所以这台大部分的时候是在校园网环境下使用,配合我的黑群晖主机,Xbox等使用。在东大的时候,学校的网络主要是教育网,也就是能够下发2001开头的ipv6网址,在南科这边虽然主要有线网络主要供应商是电信,但是也能够下发教育网ipv6网址。

当初在东大,因为ipv4流量是收费,ipv6流量不计费,在这种规定下,大家会利用有线网络分配的ipv6从六维空间等pt站下载资源实现免流。

校园网环境下Openwrt配置ipv6教程——以nat6为例

但是教育网ipv6不同于常见的公网ipv6,在公网中,很多家庭宽带下发的是56位前缀的地址,剩下的部分可以由支持ipv6的下级设备自动分发(DHCPv6-PD地址委派),让内网的所有设备都具有公网ipv6地址

校园网环境下Openwrt配置ipv6教程——以nat6为例

但是教育网很多是下发128位前缀的IPV6地址,如图上,换句话说,这个前缀的子网大小为1,只能够一台设备使用,所以实际只有这个地址只是分配给了我们路由器本身,下级设备是没有的。

在实际使用中,好像很多硬路由在这方面的功能是正常的,能够正常下发ipv6地址,偏偏Openwrt在这方面不太行,导致我不能直接使用ipv6,六维空间免流下载或者6-4隧道实现全部免流就GG了。

解决方法

我在ipv6配置上卡了很久没有迟迟没有实现,主要还是上述的教育网ipv6的特殊性,这里算是踩了大坑了,网上各种家庭宽带的方法来了校园网都没用,。

前段时间看了一下校内同学@ntdgy和恩山无线论坛@伤心的笔的关于这方面配置的教程,结合@嘉哥的脚本解决了这方面的问题,两个方向的实现的基本过程是基本上一致的,都是基于NAT6实现,大同小异。

南方科技大学ipv6设置教程 - 戴郭轶的个人博客 (ntdgy.top)

再说 OpenWRT 校园网 IPv6 NAT6 - OPENWRT专版 - 恩山无线论坛 - Powered by Discuz! (right.com.cn)

【转载】 通过openwrt的NAT6转发,使后端设备获得ipv6网络 - OPENWRT专版 - 恩山无线论坛 - Powered by Discuz! (right.com.cn)

因为帖子是2021年甚至更早,而且大家使用的openwrt编译版本可能有差别,还有帖子提到的一些比较实际的问题,我对这些打算做一个整合,方便大家使用。

关于Openwrt不同版本,会稍微影响我们的ipv6的设置过程

网络上大致有这么几个获得途径,

  • 恩山无线论坛那边自用或者合作编译的版本。

  • Esir编译的高大全或者精品小包之类的,也是很常见的。

  • 自己动手编译的原版或者DIY,可能就更熟悉一点。

我大致安装了前两种,然后对比了一下,发现Esir编译的版本和恩山的在ipv6设置上还是存在出入,比如在全局ULA前缀,ipv6默认打开还是关闭。这些问题本来在家庭网络环境中可能是影响不大的,但是在校园网ipv6环境下就可能会造成困扰。

如果可以,在校园网环境下,建议使用自行编译或者恩山那边公开发布的固件,少折腾,记得关掉你的代理工具

实现过程

第一步:让我们的openwrt路由本身能够访问教育网ipv6,后面再实现nat6。

这个步骤和家庭宽带设置ipv6教程差不多,只是没了光猫桥接过程,很多设置有没有不影响的。

当你刷好了路由器的openwrt配置好了wan和lan基本上设置,插上wan口网线,打开接口→WAN

高级设置中,如图设置,去掉使用内置的IPV6管理

去掉,使用内置的ipv6去掉,使用内置的ipv6


然后换到WAN6设置,基本设置中,协议是选择DHCPV6客户端,请求ipv6地址设置为force,请求指定长度的ipv6前缀设定为停用

校园网环境下Openwrt配置ipv6教程——以nat6为例

切换到wan6高级设置,去掉使用内置的ipv6管理,选上使用默认网关

校园网环境下Openwrt配置ipv6教程——以nat6为例

然后来到LAN口设置,注意,我们需要将ipv6分配长度设定为64,在默认状态是停用的。

校园网环境下Openwrt配置ipv6教程——以nat6为例

切换到lan口设置,上面的高级设置,去掉使用内置的ipv6管理。

校园网环境下Openwrt配置ipv6教程——以nat6为例

下面的高级设置,动态DHCP,以及强制,这个是正常配置

校园网环境下Openwrt配置ipv6教程——以nat6为例

再来到lan口下面的ipv6设置,如图,路由通告服务和DHCPv6服务选择选择服务器模式,NDP代理选择停用,DHCPv6模式选择无状态的+有状态的,选上总是总是通告默认路由。

校园网环境下Openwrt配置ipv6教程——以nat6为例

打开防火墙,基本设置和区域中,打开转发

校园网环境下Openwrt配置ipv6教程——以nat6为例

校园网环境下Openwrt配置ipv6教程——以nat6为例

DHCP和DNS中,取消勾选,禁止解析ipv6 DNS记录(恩山固件默认是去掉的,esir的不是)

校园网环境下Openwrt配置ipv6教程——以nat6为例

测试

经过如上的一番瞎折腾,我们路由器的本身应该能获取到ipv6地址,也能够访问ipv6了。打开看看地址

校园网环境下Openwrt配置ipv6教程——以nat6为例

校园网环境下Openwrt配置ipv6教程——以nat6为例

内网设置都有分配地址内网设置都有分配地址

这里为了方便检测,我们可以打开openwrt的网络工具检查,网络 →网络诊断看ipv6是否正常。

校园网环境下Openwrt配置ipv6教程——以nat6为例

左边的ping或者中间的traceroute工具都行,点击箭头选择ipv6,让我们ping一下openwrt的服务器

在路由器本身ipv6配置成功的情况下,左边ping工具正常应该返回如下的结果,traceroute正常也会返回一个多级的追踪结果。

校园网环境下Openwrt配置ipv6教程——以nat6为例

如果路由器本身没问题,可以进入下一步,如果不正常,返回bad address之类,说明你可能需要检查前面的步骤是否正确操作,并且你关闭了代理工具,上级没有其他不支持ipv6的路由器,或者你所处环境没有ipv6,可以通过电脑直接插网线接口,稍等检查有无ipv6地址排查。

第二步,关于内网nat6的配置。

在路由器自身能够访问ipv6后,我们要解决因为地址不足造成内网设置无法访问ipv6的问题。

重点:让我们在网络→接口下面的全局网络选项中,为路由器添加一个自定义的内网前缀

比如我使用就是一个fd34开头的前缀,可以自己设定一个,比如:fd34:fe56:7891:2f3a::/64 ,任意。

之所以要强调这点,是因为网络上部分固件中删掉了这个设置选项,比如esir的固件,恩山论坛上有反馈过这一点。

在 网络-接口 界面下方没有全局网络选项,导致我没办法删除ULA前缀,去年初我装的一个老版本的高大全是有的。想问下诸位大佬们,这个可以通过其他方式,比如命令之类的删除ULA前缀吗

相应的解决问题,这里涉及使用ssh登录openwrt后台使用vim,小白的可以参考后面写的。

新版的ESIR,默认没有 ULA,要显示全局网络选项的话,可以修改路由里的这个文件 /etc/config/network
文件里添加一行 config globals 'globals'

打开ula设置选项,添加ula后,设置完之后是这样的,

校园网环境下Openwrt配置ipv6教程——以nat6为例

本来在家庭网络设置ipv6的教程中,是应该删除掉ula前缀的,这个善意省事之举,在教育网环境下反而成了麻烦的绊脚石。如果你使用lean原版固件编译的,或者恩山那边编译的,就不会存在这个问题。

绕过上面的小插曲后,我们开始安装NAT6插件和脚本。这里主要参考恩山那边的教程,和上面luci图形操作重合的我就跳过了。

请先下载好这里准备的

1.安装ip6tables和nat6 mod

opkg update

opkg install ip6tables

opkg install kmod-ipt-nat6

这里的话,就是安装两个组件,ip6tables现在很多op都有的,nat6 kmod 在luci 应用那边也有

2.创建一个/etc/init.d/nat6文件,修改对应内容

这里记得下载我从恩山@嘉哥那边转载来的一个脚本,文件放在阿里云盘里面,使用之前请使用工具(比如window的记事本),根据你的网络情况修改其中的两个选项。

脚本链接

这里实际上原始脚本本身可以正常获取这两个接口的,但是由于教育网的网关有时候官网变成了fe80开头的,让脚本无法执行,所以我们可以实际进行修改,偷个懒。

第一个是注释下面不远的"WAN6_INTERFACE=eth2",其中的eth2请根据你的wan口对应的设备名修改

校园网环境下Openwrt配置ipv6教程——以nat6为例

这里我的wan对应设备是eth2,你根据情况修改即可。

校园网环境下Openwrt配置ipv6教程——以nat6为例

同理,第二个修改,是中间出现的一段定义"WAN6_GATEWAY="2001:da8:xxxx:xxxx::1"

这里面对应的是你的ipv6网关,我们可以在前面提到的traceroute工具或者命令行里面,ipv6 追踪一下

校园网环境下Openwrt配置ipv6教程——以nat6为例

第一行就是我们ipv6的网关了,按这个修改脚本内容。

实际上我们的ipv6的网关应该是我们上面获取到那个,但是部分校园网,不知道什么原因变成了fe80开头的网关,希望有人能解答一下(当然论坛有人反馈其实直接填这个fe80开头网关也可以正常进行)

校园网环境下Openwrt配置ipv6教程——以nat6为例

修改完文件后,直接保存,我们登录openwrt直接创建一个nat6文件

> /etc/init.d/nat6

用vim工具复制整个内容到我们的脚本中,然后:wq保存。当然你可以直接用winscp或者op的文件传输把修改完的文件复制到op对应目录中。

3.设置权限让nat6脚本开机运行

chmod +x /etc/init.d/nat6

/etc/init.d/nat6 enable

4.修改 /etc/sysctl.conf文件,添加以下内容。

net.ipv6.conf.default.forwarding=2

net.ipv6.conf.all.forwarding=2

net.ipv6.conf.default.accept_ra=2

net.ipv6.conf.all.accept_ra=2

保存好。

5.修改防火墙添加以下内容

iptables -t nat -A PREROUTING -p udp --dport 53 -j REDIRECT --to-ports 53

iptables -t nat -A PREROUTING -p tcp --dport 53 -j REDIRECT --to-ports 53

ip6tables -t nat -A POSTROUTING -o eth2 -j MASQUERADE

前面两行,其实很多openwrt都自带的,就不需要再加了

第三行中的eth2请和前面修改wan6_interface一样,修改成你对应的设备名。

修改完后,我们重启路由器,应该内网就能访问ipv6了

我们可以打开test ipv6检测ipv6的连通性,正常是满分的。

http://www.test-ipv6.com

校园网环境下Openwrt配置ipv6教程——以nat6为例

校园网环境下Openwrt配置ipv6教程——以nat6为例

如果可以,我们再打开东北大学纯ipv6测速站测速一下,这个网站只有v4是打不开的,测的是纯粹的ipv6速度

使用很方便。

http://speed.neu6.edu.cn/

可以看到基本接近v4的带宽上限

校园网环境下Openwrt配置ipv6教程——以nat6为例

接着我们再打开一下常见的PT站,也就是我们这个教程的目的之一,以六维空间pt站为例

六维空间也是纯教育网ipv6站,必须是教育网ipv6环境才能访问。

http://bt.neu6.edu.cn

打开网站,主站可以正常访问

校园网环境下Openwrt配置ipv6教程——以nat6为例

qbittorrent也是可以正常连接到六维服务器的qbittorrent也是可以正常连接到六维服务器的

最后

缺点:

好像有时候变成了纯v6访问,速度好像变慢了一点

不知道是这边网络本身问题还是nat6和openwrt的问题,没有我以前时那么连通性好,上传量偏低,没有真正的ipv6直接快

到此为止,关于教育网下openwrt配置ipv6 nat6的教程就到此为止了。

说实话,我之前没有看到恩山和这边的帖子,被openwrt这个问题卡了很久了,一直都只能使用ipv4站,而没有公网ip的大内网又导致v4基本上没有速度,下载和做种都很困难,现在终于解决了这个问题。

为了防止使用教育网的同学们踩坑,我决定把上面三个教程结合起来,根据我的实际使用简化一下步骤。

如果是家庭宽带遇到类似的问题也可以尝试一下这个nat6的方法,此外,因为路由器本身有ipv6连通性,也可以在openwrt上直接部署transmission以及其他需要ipv6的组件,算是一个曲线救国的方法。

希望大家使用ipv6快乐。

Reference:

  1. 南方科技大学ipv6设置教程 - 戴郭轶的个人博客 (ntdgy.top)

  2. 【转载】 通过openwrt的NAT6转发,使后端设备获得ipv6网络 - OPENWRT专版 - 恩山无线论坛 - Powered by Discuz! (right.com.cn)

  3. 再说 OpenWRT 校园网 IPv6 NAT6 - OPENWRT专版 - 恩山无线论坛 - Powered by Discuz! (right.com.cn)

  4. 【求助】关于ESIR高大全固件的IPV6设置问题 - 软路由,x86系统,openwrt(x86),Router OS 等 - 恩山无线论坛 - Powered by Discuz! (right.com.cn)

作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~

展开 收起
57评论

  • 精彩
  • 最新
  • 六维空间,唉,离开校园后就成了回忆了

    校验提示文案

    提交
    可以尝试一下北洋园这种v4v6双栈pt站 [献花]

    校验提示文案

    提交
    收起所有回复
  • ipv6是不是还有很多网站不支持的?去年升级了ipv6后来又降回ipv4

    校验提示文案

    提交
    现在基本上都是双栈了,v4v6都可以访问。纯v6访问慢一点。大学的教育网十多年前就是完全支持ipv6的 ,现在家庭宽带也很多已经在改造ipv6了

    校验提示文案

    提交
    不是慢是根本就登陆不上去才降回IPV4的

    校验提示文案

    提交
    还有1条回复
    收起所有回复
  • 刚好遇到这个问题,网上的教程全是针对教育网以外。感谢作者,终于可以op和ipv6兼得了。

    校验提示文案

    提交
    说起来我被这个破问题卡了一两年……中间都是用的路由器直接安装transmission这种曲线救国的办法 [喜极而泣]

    校验提示文案

    提交
    脚本的话你去百度一下,里面有需要的脚本链接 [赞一个]

    校验提示文案

    提交
    收起所有回复
  • ipv4还分内网外网真是够了...
    校友路过

    校验提示文案

    提交
    ipv4的话大学的校园网都是内网ip,有线10.开头,无线172开头。教育网ipv6地址是公网ipv6,但是学校设定了v6的防火墙,就导致公网ipv6无法访问六维空间。要是六维能支持v4就好了,双栈pt很好用

    校验提示文案

    提交
    收起所有回复
  • 家中的v6一直存在问题,自己编译的openwrt固件,能分配到240e开头的ip了,但不能上网,不能ping得通v6地址。

    校验提示文案

    提交
    是路由器本身ping就不通,还是只有下级设备ping不通,或者所有设备都有v6地址但是不通 [尴尬]

    校验提示文案

    提交
    都有240e开头的v6地址了,但不能访问v6网页,v4是完全正常。

    校验提示文案

    提交
    还有6条回复
    收起所有回复
  • 其实对于较新版本的openwrt 可以给wan6和lan的dhcpv6里面那三个都设置为中继就可以了

    校验提示文案

    提交
    128位前缀的并不能这样的

    校验提示文案

    提交
    收起所有回复
  • 路由器还是获取不到ipv6地址,有没有一样的

    校验提示文案

    提交
    你是用的校园网吗?

    校验提示文案

    提交
    我也是

    校验提示文案

    提交
    还有1条回复
    收起所有回复
  • 请问文中提到的阿里云盘下载的文件有链接吗?

    校验提示文案

    提交
    张大妈不让发链接,你去找同名的知乎文章,里面有链接的 [doge]

    校验提示文案

    提交
    好的,谢谢!

    校验提示文案

    提交
    收起所有回复
  • 新版本的istoreos好多和设置里的不一样哎,按照步骤来还是没有成功。。。

    校验提示文案

    提交
    具体可以说说哪里不一样 [惊喜] ,我最近用自己编译的版本也能正常跑

    校验提示文案

    提交
    知乎上有一篇同样的,我更新了很多内容

    校验提示文案

    提交
    收起所有回复
  • 大佬求助一下。我是按照恩山@伤心的笔这位大佬的帖子来做的。下午做完之后完美连接v6,用中科大测速都能跑到50mb/s的下载,Steam也是这个速度。但是晚上就不行了,v6是还有,但带宽就给打回50M的原型 [喜极而泣] 。我也不知道哪里出了问题,中间就在折腾我手机连路由器WiFi没有v6的问题,但没有解决。然后再一打开Steam下游戏,发现网速变回去了。

    校验提示文案

    提交
    你这个其实不好说,我没遇到过 [锁眉] ,可能和运营商有点关系吧,而且晚上用的人速度确实会比白天慢一些

    校验提示文案

    提交
    收起所有回复
  • 所以我一直告诉学弟学妹,高中玩命学,985211和双非院校的差距是很大的,双非和专科差距更大。

    校验提示文案

    提交
  • 当年读书时着迷六维,成宿做种升级到了震古烁今,一晃几年过去了,也不知账号在不在,外网要是有办法能登录六维就好了,好想回去看一看。

    校验提示文案

    提交
  • 当初我在东大是没网络的 [得意] 一层宿舍楼有台电脑就很牛了

    校验提示文案

    提交
  • 09年注册的六维空间,前来报道。现在没办法再进去看了 [没看见]

    校验提示文案

    提交
  • 六维空间没接通外网也是好事,免得被广告污染了

    校验提示文案

    提交
  • 很奇怪,在openwrt路由器上配置了nat6后连接的设备都获取了ipv6地址,也能上纯ipv6网站,挂ipv6的pt也没问题,但test-ipv6有关ipv6的测试项目全都不通过,Win10也显示ipv6无Internet访问权限。

    校验提示文案

    提交
  • 楼主,求助一下。我按照你的教程可以使路由器获得ipv6并成功traceroute出去,但是重启路由器之后路由器下设备仍然不能访问ipv6,这是关于nat6的一段日志,拜托了 [喜极而泣]
    Fri May 20 16:45:50 2022 user.notice NAT6: Setting up NAT6
    Fri May 20 16:45:50 2022 user.notice NAT6: Added IPv6 masquerading rule to the firewall (Src: fd21:564b:5a93::/48 - Dst: wan)
    Fri May 20 16:45:50 2022 daemon.notice procd: /etc/rc.d/S55nat6: route: SIOCADDRT: Host is unreachable
    Fri May 20 16:45:50 2022 user.notice NAT6: Error: Failed to add 2001:da8:4015:282::1 to routing table as gateway on wan for outgoing connections
    Fri May 20 16:45:50 2022 user.notice NAT6: Accepting router advertisements on wan even if forwarding is enabled (required for temporary addresses)
    Fri May 20 16:45:50 2022 user.notice NAT6: Using temporary addresses for outgoing connections on interface wan

    校验提示文案

    提交
    我又把v6网关地址改成了openwrt概览显示的那个fe80开头的地址了,这次nat6不报错了,可是设备依然上不了ipv6网站 [苦恼]

    校验提示文案

    提交
    这次我按照 去看看 这篇文章继续设置了一下,成功了

    校验提示文案

    提交
    收起所有回复
  • 有些设置步骤是多余的, 可以保持默认(如防火墙那块设置和关闭勾选内置ipv6管理); 其实核心步骤就3条:LAN的ipv6设置+防火墙添加NAT6转发+路由设置ipv6网关

    校验提示文案

    提交
    不过我怀疑很多人更多的是卡在固件上, 有些依赖不全; 最好还是自己编译, 钩上extra-ipv6helper基本就没问题

    校验提示文案

    提交
    收起所有回复
  • [喜极而泣] 哭了,尝试了几年前到这篇今年出的所有的NAT6方案,几乎所有的方案都可以在下级设备上ping通ipv6的网站,但是没有一个能在浏览器上打开的,太奇怪了,我也不知道该从哪里入手找故障,访问六维空间给出的错误是408 Request Time-out
    Your browser didn't send a complete request in time.

    校验提示文案

    提交
    以前按照各种教程一步一步来的,ipv6能用了。上上周突然不行了,跟你一样,ip和域名都能ping通,trace也能到达,就是浏览器死活打不开网页。固件也换过。

    校验提示文案

    提交
    我最近一段时间突然和你情况相同,试了所有搜出来的教程。ip和域名都能ping通和trace,就是打不开网页。固件也换过。我都怀疑是学校的问题。但是在概览那里看WAN的v6又能看到学校给的v6地址、网关、DNS。

    校验提示文案

    提交
    还有2条回复
    收起所有回复
  • 感谢楼主,终于通了,不过我这里需要把 IPv6 ULA 前缀改成 dd 开头才行~

    校验提示文案

    提交
提示信息

取消
确认
评论举报

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
189
扫一下,分享更方便,购买更轻松