Skip to content

OpenWrt IPv6 中继模式配置清单(适用于上级只给 /64 前缀的情况)

目标

让 OpenWrt 在 IPv6 网络中像“交换机”一样工作,上级路由器直接给下级设备分配公网 IPv6 地址。

前提

  • 上级路由器已正常下发 IPv6 前缀(即使只有 /64 也可以尝试)。
  • OpenWrt 的 WAN6 口能正常获取到 IPv6 地址。

注意:由于前缀只有 /64,OpenWrt 自身无法再往下划分子网。此方案的核心是 “中继模式” + “指定的主机接口(master)”


配置步骤

1. WAN6 接口配置(中继 + 指定主机)

  • 路径网络 -> 接口 -> 编辑 WAN6
  • 常规设置:协议 = DHCPv6 客户端
  • 高级设置
    • IPv6 源路由不勾选(关键!)
  • DHCP 服务器 > IPv6 设置
    • 路由通告服务中继模式
    • DHCPv6 服务中继模式
    • NDP 代理中继模式
    • 学习路由:✅ 勾选
    • 指定的主机接口(master):✅ 勾选(这就是你固件中的 option master '1',设置后 WAN6 将成为 RA 中继的主接口)

说明:“指定的主机接口” 相当于命令行中的 option master '1',作用是将 WAN6 接口设置为中继的“主”接口,确保 RA/RS 消息能被正确转发到 LAN 侧。

2. LAN 接口配置(中继 + 混合模式)

  • 路径网络 -> 接口 -> 编辑 LAN
  • DHCP 服务器 > IPv6 设置
    • 路由通告服务混合模式(同时支持服务器和中继)
    • DHCPv6 服务中继模式
    • NDP 代理中继模式
    • 学习路由:✅ 勾选
    • 始终通告默认路由:✅ 勾选(核心)

3. 防火墙调整(放行 IPv6 转发)

  • 路径网络 -> 防火墙 -> 区域 -> 编辑 wan
  • IP 动态伪装不勾选 IPv6(如果存在单独选项)
  • 入站/出站/转发:都设为 允许
  • 保存并应用

4. 清理 ULA 前缀(可选但推荐)

  • 路径网络 -> 接口 -> 全局网络选项
  • IPv6 ULA 前缀清空(避免干扰公网地址选择)

5. 重启服务(或重启路由器)

  • 可通过 Web 点击“保存并应用”,或 SSH 执行:
    bash
    /etc/init.d/odhcpd restart
    /etc/init.d/network restart

6. 验证

  • 下级设备重连网络(或重启网卡)。
  • 执行 ip addr show(Linux)或 ipconfig(Windows),应看到 240e/2408 开头的公网 IPv6 地址
  • 执行 ping -6 google.com 或访问 test-ipv6.com 测试连通性。

常见问题

现象可能原因解决方法
下级设备只有 fe80:: 地址LAN 口的“路由通告服务”未启用混合模式,或“指定的主机接口”未勾选检查 LAN 口 RA 是否设为“混合模式”,WAN6 口“指定的主机接口”是否勾选
下级设备有公网地址但无法 ping 通防火墙拦截 ICMPv6,或上级路由器未放行检查 OpenWrt 防火墙是否允许 IPv6 转发,必要时在上级路由器放行 ICMPv6
重启 OpenWrt 后中继失效option master '1' 配置丢失重新进入 WAN6 的 DHCPv6 设置,确认“指定的主机接口”仍被勾选

补充说明

  • “指定的主机接口” 在英文固件中通常显示为 MasterMain interface,位于 DHCPv6 设置页面的顶部。如果你的固件版本没有这个选项,也可以使用 SSH 手动添加:在 /etc/config/dhcpconfig dhcp 'wan6' 块中添加一行 option master '1'
  • 此方案在 /64 前缀下有成功率限制,部分上级路由器(尤其是运营商定制光猫)可能完全不转发 RA/RS 消息。如果最终仍不通,可考虑退而使用 NAT6 方案。

祝网络通畅!

最后更新于: