教程[5] 在 lede/OpenWrt 中设置 IPv6

开篇废话

家里的联通网络其实很早之前就支持 IPv6 了,不过在 LEDE 里面一直没有通过,最近下番速度实在是太慢了(没有公网 ip 的日常),所以来看看怎么启用 IPv6

检查

  1. 光猫为桥接(bridge)模式,且直接使用电脑 PPPoE 可以获得 IPv6 地址
  2. 检查 lede 固件是否有编译 IPv6 相关模块进去
    在 系统/软件包 里面查找 IPv6 关键字,不出意外至少会有会有 IPv6helper / luci-proto-IPv6 / odhcpd-IPv6only 三个包

如果两个都确认了,那么应该就能开始设置 IPv6 了~ (不过现在的 OpenWrt IPv6 的包都是标配了,理论上没有不撞的吧吧)

配置

分3种情况吧,大概
一个是 PPPoE 送的地址
还有两个是 IPoE 直接拿到的地址

OpenWrt 25.12 以后

在 OpenWrt 25.12 以后,如果您在日本使用光回线,则可能需要清除 DUID 后 wan6 才能拿到 IP empty duid

wan6 直接拿到 IPv6 配置(SLAAC)

这里之前是截图的,但是感觉在误导人,所以改成了命令,自己抄吧, 在日本的话,如果有光电话契约或者 10Gbps 的情况下,请使用下面 PD 的,反正都试试~

uci batch <<EOF
set network.wan6.proto='dhcpv6'
set network.wan6.reqaddress='try'
set network.wan6.extendprefix='1'
del network.wan6.reqprefix
del network.wan6.ip6assign
set dhcp.wan6=dhcp
set dhcp.wan6.interface='wan6'
set dhcp.wan6.master='1'
set dhcp.wan6.ra='relay'
set dhcp.wan6.ndp='relay'
del dhcp.wan6.dhcpv6
set network.lan.delegate='1'
set network.lan.ip6assign='64'
set dhcp.lan=dhcp
set dhcp.lan.interface='lan'
set dhcp.lan.leasetime='6h'
set dhcp.lan.dhcpv4='server'
set dhcp.lan.ndp='relay'
set dhcp.lan.ra='server'
set dhcp.lan.ra_default='2'
del dhcp.lan.ra_flags
add_list dhcp.lan.ra_flags='managed-config'
add_list dhcp.lan.ra_flags='other-config'
set dhcp.lan.dhcpv6='server'
EOF
uci commit

PD

uci batch <<EOF
set network.wan6.proto='dhcpv6'
set network.wan6.reqprefix='auto'
set network.wan6.reqaddress='try'
set network.wan6.ip6assign='64'
del network.wan6.extendprefix
set network.wan6.ip6ifaceid='eui64'
set dhcp.wan6=dhcp
set dhcp.wan6.interface='wan6'
set dhcp.wan6.master='1'
del dhcp.wan6.ra
set dhcp.wan6.dhcpv6='relay'
del dhcp.wan6.ndp
set network.lan.ip6assign='64'
set network.lan.ip6hint='1'
set dhcp.lan=dhcp
set dhcp.lan.interface='lan'
set dhcp.lan.leasetime='6h'
set dhcp.lan.dhcpv4='server'
set dhcp.lan.ra='server'
set dhcp.lan.ra_default='2'
del dhcp.lan.ra_flags
add_list dhcp.lan.ra_flags='managed-config'
add_list dhcp.lan.ra_flags='other-config'
set dhcp.lan.dhcpv6='server'
set dhcp.lan.ra_offlink='1'
set dhcp.lan.ra_slaac='1'
del dhcp.lan.ndp
EOF
uci commit

PPPoE IPv6 配置

网络/接口/LAN 使用内置的 IPv6 管理
下面 DHCP 服务器 IPv6 设置 三个改成混合模式(如果不行的话测试下中继模式)
如图所示
network_lan_setting
回到 网络/接口 不出意外应该已经有看到 IPv6 了 status
这里我们再将 网络/接口/全局网络选项/IPv6 ULA 前缀 里面的东西删了 再点击保存&应用
如果没有出现 IPv6 地址,那么 重新PPPOE一下看看(点关闭 然后等半分钟左右再点连接)

测试 IPv6 联通情况

ping6 2402:f000:1:416:101:6:6:172 #mirrors6.tuna.tsinghua.edu.cn
16 bytes from 2402:f000:1:416:101:6:6:172, icmp_seq=0 hlim=51 time=43.609 ms
16 bytes from 2402:f000:1:416:101:6:6:172, icmp_seq=1 hlim=51 time=43.257 ms

如果 ping 成功,那基本上没啥问题了,我们再 curl 下

curl http://mirrors6.tuna.tsinghua.edu.cn -v

如果有返回,那基本没啥问题了 如果提示
curl: (6) Could not resolve host: mirrors6.tuna.tsinghua.edu.cn

dnsmasq_no_resolv_IPv6
在 /网络/DHCP/DNS/里面 把 禁止解析 IPv6 DNS 记录 选中勾掉就行了

如果 curl 不成功,那么可能是负载均衡里面的锅
在 网络/负载均衡/策略/balanced/修改 备用成员选择默认(使用主路由表)应该就好了
mwan

如果还是不成功 只能爬下帖子了,也许是你运营商还是不支持(((
可以碰运气参考下是不是没有 PD 地址:
配置LEDE中继PPPoE拨号下获取的IPv6(无PD,单个/64地址)的方法