先确认上游是否提供 IPv6 前缀委派,再决定使用路由分发还是 relay;不能只根据“WAN 有 IPv6 地址”选择配置。
IPv6 地址、默认路由和 DNS 信息可能分别通过 SLAAC/RA、DHCPv6 获得。RA 负责告诉主机默认路由;获得 DHCPv6 地址并不自动代表存在默认网关。OpenWrt 接入上游后,通常应该用前缀委派(DHCPv6-PD)给 LAN 分配独立的 /64,由自己的路由器提供 RA,而不是把所有 IPv6 选项一律切成中继。
优先使用前缀委派
先检查 wan6 的状态,区分接口本身的 IPv6 地址与 ipv6-prefix。在命令行可运行:
ubus call network.interface.wan6 status
ip -6 address
ip -6 route
接口逻辑名称可能不同,应换成自己的上游 IPv6 接口。如果上游已经委派 /56、/60 或可用于一个 LAN 的 /64,在现有 /etc/config/network 中确认上游请求 PD、LAN 分配 /64。以下展示相关字段,不能用片段覆盖整份 network 文件:
config interface 'wan6'
option device '@wan'
option proto 'dhcpv6'
option reqaddress 'try'
option reqprefix 'auto'
config interface 'lan'
# 保留原有 device、IPv4 等字段
option ip6assign '64'
@wan 指向已有逻辑 WAN 设备;PPPoE 或定制固件的名称需要实际核对。LAN 的 DHCP/RA 配置可以使用服务器模式:
config dhcp 'lan'
# 保留原有 IPv4 DHCP、租约等字段
option interface 'lan'
option ra 'server'
option dhcpv6 'server'
option ndp 'disabled'
从上游委派的前缀中分配 LAN 子网,客户端能得到公网地址,同时路由器防火墙仍控制 WAN 到 LAN 的新连接。ULA 可以为内部通信保留,但它不是公网前缀。我的 Actions-OpenWrt 项目 也按 /64 进行 LAN 前缀分配;具体是否获得 PD 由上游决定。
没有 PD 时才考虑 relay
如果上游只在一个链路上提供地址/RA,没有给 OpenWrt 委派可路由的 LAN 前缀,odhcpd 提供 RA、DHCPv6 与 NDP relay。它需要符合上游网络条件,不能保证每个运营商、PPPoE 链路或认证网络都支持。odhcpd 官方说明
以下假设真正的 IPv6 上游逻辑接口是 wan6,LAN 是 lan。把上游设为 relay 的 master,下游设为 relay;不要因为物理线插在 WAN 口就把 master 随意写到另一逻辑接口。
config dhcp 'wan6'
option interface 'wan6'
option ignore '1'
option ra 'relay'
option dhcpv6 'relay'
option ndp 'relay'
option master '1'
config dhcp 'lan'
# 保留当前 IPv4 DHCP 配置
option interface 'lan'
option ra 'relay'
option dhcpv6 'relay'
option ndp 'relay'
这里的 ignore 是上游 DHCP 配置中的设置,不能把它复制到 LAN 后关闭原有 IPv4 DHCP。配置前保留 /etc/config/network 和 /etc/config/dhcp 的当前版本。接口或 PD 设置变更需要通过 LuCI 保存并应用,或在控制台重新加载网络;单独重启 odhcpd 只应用 DHCP/RA 配置,不会应用 network 文件中的接口变更。完成网络配置应用后再重启 odhcpd:
/etc/init.d/odhcpd restart
logread -e odhcpd
在 LuCI 中对应 relay/master 字段,是否显示、名称和位置会随固件不同。下面的 2022 年截图只辅助理解接口关系:

不需要仅为 IPv6 再造一个固定名称为 LAN6 的接口,也不要同时把“服务器模式”“中继模式”和“总是通告默认路由”混为一套必选项。是否通告默认路由应与该设备真实具备的 IPv6 出口相符;出口不可用时强行通告会把客户端引到黑洞。
旁路由要先确定默认网关
旁路由与主路由在同一 LAN 时,客户端收到谁的 RA,就可能选择谁作为 IPv6 默认网关。IPv4 DHCP 指向旁路由并不自动改变 IPv6 路径。
- 主路由负责 IPv6:旁路由只作为 LAN 主机,不再向同一链路通告自己为 IPv6 默认路由。客户端直接通过主路由出站;旁路由的 IPv4 代理或 DNS 设置不会自动接管这些连接。
- 旁路由负责下游 IPv6:为下游建立独立接口/网段,先获得可路由的委派前缀,或在确实满足条件时使用 relay,然后按这条路径配置转发和防火墙。
不要只添加一个 DHCPv6 客户端接口就声称接管了所有客户端 IPv6。最终以客户端的 IPv6 默认路由、实际源地址和出口记录为准。
连接慢时怎么检查
依次检查客户端地址是否来自正确前缀、默认路由是否指向预期设备、DNS 是否正常、路由器本身是否能访问 IPv6。对比同一目标的 IPv4/IPv6 请求,再检查 MTU、ICMPv6 Packet Too Big、邻居发现与防火墙。
Flow Offloading 的历史缺陷只对应特定版本与设备;不能把所有 IPv6 慢归因于加速模块,也不应默认安装或切换 Shortcut-FE。需要排查时暂时关闭当前的 flow offload,对同一链路做可重复比较,再决定升级固件或调整配置。
最后从外部测试有明确授权开放的服务端口,同时检查其他入站新连接仍被阻止。获得公网 IPv6 不表示应开放全部端口;客户端地址、默认路由、出站、必要 ICMPv6 和入站边界都需要验证。
评论区