OpenWRT/LEDE 开启免 NAT 全局 IPv6
为了一个IPv6已经不知道折腾了几宿。今天终于完全搞定了,IPv6本来就不应该有什么NAT6或者radvd转发之类的奇技淫巧,但是作为基础设施,稳定是第一要素。因为软件实现的bug导致网络不稳定,真的是为了新技术得不偿失。
不过还是得说,IPv6这种东西最好还是赶紧学学。毕竟上面翻了牌子。而且摆脱 NAT 的纠缠将为以后的入侵渗透提供很多便利,更不用提以后是物联网的天下,看门狗的世界成为现实也不一定呢 😊
契机当然是国x院的通知,突破是LEDE分支odhcpd对bug的修复[1]。当然还有某些玩家的黑科技修复方法[2]。现在已经达到开机连接完全可用的状态了,也不用开机重启network或者重启odhcpd了。下面说说方法。
下载LEDE
官网地址:https://lede-project.org/toh/views/toh_fwdownload
这个链接里面有LEDE支持的所有设备。为什么是LEDE?不光光是这个分支有可用的IPv6,更因为LEDE支持一个非常好用的QoS策略脚本,sqm-scripts。亲测迅雷满速时王者荣耀延迟基本不变,关于这个组件的设置详见官方wiki。
如果是首次刷机的话就用lede-xxxx-factory.bin
,升级或从OpenWRT转过来就直刷 lede-xxxx-sysupgrade.bin
即可。如何刷机因人而异。
配置IPv6
大概IPv6已经是标配了吧,一般初始设置里面就会有wan6这个interface。ssh或者telnet进路由器的shell。修改 /etc/config/dhcp
,将以下三个 dhcp 分区的内容修改如下[2:1]。
config dhcp 'wan' |
其中的几个要点:
- IPv6的几个相关设置都要从 wan6 分区复制一份到 wan 中。
- lan 分区最好放在 wan 后面。因为代码里有一段寻找 relay 模式 master 的,这里我不太保准
瞎猜的。 - 不能像参考资料[2:2]中一样将 wan6 的 dhcpv6 设置为 disabled 。因为这样路由器没有v6地址也无法转发。
其中 lan 分区内的 start 和 limit 是IPv4地址池的最小地址和最大分配个数,这个可以按需更改。修改完成后执行 /etc/init.d/network restart
即可重启所有相关服务。
网络测试
在我这里,重启网络后大概半分钟获得v4地址,四五十秒获得v6地址。v4地址一般是恒定的,v6地址总在变,网络实名制任重道远啊(笑)。v6的路由我还是没太明白,不过在路由器上输入 ip neigh show proxy
返回列表里出现路由器后设备的IP,就表示转发已经成功了。这个过程需要一分钟左右的时间。前两次设置的时候,我还参考了[3]手动添加了一下路由才ping通六维。但照上面设置完后就完全OK了。
$ ping6 www.google.com |
网络非常好嘛~😆
嘿嘿嘿,再上个 he.net 发的 v6 认证。
OpenWRT/LEDE 开启免 NAT 全局 IPv6