首页 > IT职业 > IT生活 > 家庭网络如何获取到公网IPv6
OpenWrt 作为二级路由时 IPv6 故障排查与配置总结报告
基于笔者的实战经验总结而来. 供参考. 适用于 iStoreOS 和 openwrt. 版本是: 24.10
在光猫拨号并已启用 IPv6 的网络中,光猫本身是 IPv6 的 路由通告(RA) 和 DHCPv6 服务器。iStoreOS/OpenWrt 作为二级路由,其正确的角色应是一个 “透明中继” ,负责将光猫下发的 IPv6 信息原样转发给内网设备,而非自己充当服务器。默认的 iStoreOS/OpenWrt 配置(LAN 口为“服务器模式”)会尝试自行分配 IPv6,导致与上层冲突,使终端设备无法获得有效的公网 IPv6 地址或路由。
整个排查过程遵循了从基础到深入、从配置到服务的逻辑,下图清晰地展示了核心的诊断路径与解决步骤:
flowchart TD
A[问题:通过OpenWrt无IPv6<br>但直连光猫正常] --> B{检查OpenWrt WAN口状态}
B --> C{WAN口是否获取到<br>公网IPv6地址?<br>(240e:/2408:开头)}
C -- 是 --> D[核心问题:LAN口配置模式错误]
C -- 否 --> E[需检查物理连接与光猫IPv6服务]
D --> F[关键修复:修改LAN口DHCPv6设置]
F --> G[将模式从“服务器”改为“中继/混合”]
G --> H[并勾选“始终通告默认路由”]
H --> I{终端设备是否获得<br>公网IPv6地址?}
I -- 否 --> J[深入排查]
I -- 是 --> K{IPv6网络连通性测试<br>(如 test-ipv6.com)}
subgraph J [深入排查步骤]
J1[检查并清空ULA前缀]
J2[确认关闭IPv6 DNS过滤]
J3[检查防火墙规则<br>(关闭WAN口IP动态伪装)]
J4[重启odhcpd服务<br>清理旧地址]
end
J --> I
K -- 失败 --> L[进行端到端Ping测试<br>定位中断环节]
L --> M[根据测试结果<br>调整防火墙或MTU]
K -- 成功 --> N[🎉 问题解决]
style A stroke:#f66,stroke-width:2px
style N stroke:#0a0,stroke-width:2px
1. 信息收集阶段
240e:3a3:...),证明上游信号正常。如下图:

路由通告 和
DHCPv6 服务 均处于
“服务器模式”,这是问题的根源。如下图:

IPv6 ULA 前缀 未清空,且
过滤 IPv6 AAAA 记录 被勾选,这些都会干扰正常使用。


2. 核心配置修正阶段
路由通告服务 和
DHCPv6 服务 改为
“中继模式” 或
“混合模式”。修正后如下:

全局网络选项 中删除自动生成的 ULA 前缀(
fdd5:...),防止其干扰公网地址分配。

DHCP/DNS 高级设置中,取消勾选
“过滤 IPv6 AAAA 记录”。

防火墙 设置中,确保
wan 区域的
IP动态伪装(NAT) 被取消勾选,以减少对 IPv6 流量的潜在干扰。

3. 服务应用与调试阶段
``
bash /etc/init.d/odhcpd restart ip -6 addr flush dev br-lan scope global ``
240e:...),但
ipconfig /all 显示缺少
IPv6 默认网关。这直接导致数据包无法路由出去。这时候我的电脑显示如下:``
plaintxt 连接特定的 DNS 后缀 . . . . . . . : lan IPv6 地址 . . . . . . . . . . . . : 240e:3a3:xxxx IPv6 地址 . . . . . . . . . . . . : fdd5:3075:xxx 临时 IPv6 地址. . . . . . . . . . : 240e:3a3:xxx 临时 IPv6 地址. . . . . . . . . . : fdd5:3075:xxx 本地链接 IPv6 地址. . . . . . . . : fe80::1ba8:xxx IPv4 地址 . . . . . . . . . . . . : 192.168.3.246 子网掩码 . . . . . . . . . . . . : 255.255.255.0 默认网关. . . . . . . . . . . . . : 192.168.3.1 (缺少 **IPv6 默认网关**) ``
访问
``` 你的公网 IPv4 地址是 x.x.x.x
你的运营商(ISP)是 CHINANET-BACKBONE xxxx
没有检测到 IPv6 地址 [更多信息]
你只接入了 IPv4 互联网,不能访问纯 IPv6 网站。
可向运营商咨询如何使用 IPv6,实现最佳的网络性能。 [更多信息]
你的 DNS 服务器(可能由运营商提供)已经接入 IPv6 互联网了 ```
4. 最终解决

fe80::...),IPv6 互联网连接完全恢复。如下图:``
DHCPv6 IAID . . . . . . . . . . . : 10483xxxxx DHCPv6 客户端 DUID . . . . . . . : 00-01-00-01-26-xxxxx DNS 服务器 . . . . . . . . . . . : 192.168.3.1 fe80::xxxxxx%28 240e:3a3:xxxxx fdd5:xxxxxx ``
访问
``` 你的公网 IPv4 地址是 xxxxx
你的公网 IPv6 地址是 240e:3a3:xxxxx
你的运营商(ISP)是 CHINANET-BACKBONE xxxx
你已接入 IPv6,因此我们增加了一个标签页,显示你能否访问其他 IPv6 网站。[更多信息]
你的 DNS 服务器(可能由运营商提供)已经接入 IPv6 互联网了。 IPv6 状况评分 10/10 此分数表示你的系统对 IPv6 的支持程度和稳定性 点击查看 测试数据 ```
| 配置位置 | 需修改的项 | 推荐设置 | 作用说明 |
| :----------------------------------------------------------- | :------------------- | :----------------------- | :------------------------------------ |
|
网络 ->
接口 ->
LAN ->
DHCP服务器 ->
IPv6设置 | 路由通告服务 |
中继模式 或
混合模式 | 转发光猫的RA报文,而非自行广播。 |
| | DHCPv6 服务 |
中继模式 或
混合模式 | 转发光猫的DHCPv6地址分配。 |
| | NDP 代理 |
已禁用 | 在简单中继网络中通常不需要。 |
| |
始终通告默认路由 |
勾选 |
关键!确保终端设备获得IPv6网关。 |
|
网络 ->
接口 ->
全局网络选项 | IPv6 ULA 前缀 |
清空 | 避免生成本地地址,优先使用公网地址。 |
|
网络 ->
DHCP/DNS ->
高级设置 | 过滤 IPv6 AAAA 记录 |
取消勾选 | 允许DNS服务器返回IPv6地址。 |
|
网络 ->
防火墙 ->
区域 (WAN) | IP动态伪装(NAT) |
取消勾选 | IPv6通常不需要NAT,避免不必要的转换。 |
fd 或
fdd 开头)。初期获得的
fdd5: 地址正是中继失败的标志。ipconfig /all 或
ifconfig:查看本地地址和网关。ping -6 <目标>:测试 IPv6 连通性。路由通告服务 和
DHCPv6 服务 从
混合模式 改回更纯粹的
中继模式,以减少 iStoreOS/OpenWrt 本身的参与度,理论上有更好的稳定性。通过以上步骤,笔者成功地在一个受限制的网络环境中,将 iStoreOS/OpenWrt 配置为了一个合格的 IPv6 中继节点,使所有内网设备都能无缝接入 IPv6 互联网。这套方法对于任何品牌的光猫(桥接或路由模式)下使用 iStoreOS/OpenWrt 作为二级路由的情况,都具有普遍的参考价值。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70049049/viewspace-3109565/ ,如需转载,请注明出处,否则将追究法律责任。