家庭网络如何获取到公网IPv6

家庭网络如何获取到公网IPv6

OpenWrt 作为二级路由时 IPv6 故障排查与配置总结报告

背景

基于笔者的实战经验总结而来.

供参考.

适用于 iStoreOS 和 openwrt.

版本是: 24.10

1. 问题概述

初始状态

  • 网络拓扑:电信光猫(拨号主路由) → iStoreOS/OpenWrt(二级路由) → 终端设备(PC/手机)。
  • 核心问题:终端设备通过 iStoreOS/OpenWrt无法获得 IPv6 互联网连接,但直接连接光猫或通过另一台普通二级路由则正常。
  • 关键限制:无法调整电信光猫的任何设置。(电信不让, 调了也可能被远程调回去...)

根本原因分析

在光猫拨号并已启用 IPv6 的网络中,光猫本身是 IPv6 的路由通告(RA)DHCPv6 服务器 。iStoreOS/OpenWrt 作为二级路由,其正确的角色应是一个 "透明中继" ,负责将光猫下发的 IPv6 信息原样转发给内网设备,而非自己充当服务器。默认的 iStoreOS/OpenWrt 配置(LAN 口为"服务器模式")会尝试自行分配 IPv6,导致与上层冲突,使终端设备无法获得有效的公网 IPv6 地址或路由。

2. 排查与解决流程

整个排查过程遵循了从基础到深入、从配置到服务的逻辑,下图清晰地展示了核心的诊断路径与解决步骤:



失败
成功

深入排查步骤
检查并清空ULA前缀
确认关闭IPv6 DNS过滤
检查防火墙规则

(关闭WAN口IP动态伪装)
重启odhcpd服务

清理旧地址
问题:通过OpenWrt无IPv6

但直连光猫正常
检查OpenWrt WAN口状态
WAN口是否获取到

公网IPv6地址?

(240e:/2408:开头)
核心问题:LAN口配置模式错误
需检查物理连接与光猫IPv6服务
关键修复:修改LAN口DHCPv6设置
将模式从"服务器"改为"中继/混合"
并勾选"始终通告默认路由"
终端设备是否获得

公网IPv6地址?
IPv6网络连通性测试

(如 test-ipv6.com
进行端到端Ping测试

定位中断环节
根据测试结果

调整防火墙或MTU
🎉 问题解决

各阶段关键操作与指令

1. 信息收集阶段

  • 检查 iStoreOS/OpenWrt WAN 口 :确认其通过 DHCPv6 协议获取到了电信的公网 IPv6 地址(240e:3a3:...),证明上游信号正常。如下图:

  • 检查 iStoreOS/OpenWrt LAN 口配置 :发现其 路由通告DHCPv6 服务 均处于 "服务器模式",这是问题的根源。如下图:

  • 检查其他设置 :发现 IPv6 ULA 前缀 未清空,且 过滤 IPv6 AAAA 记录 被勾选,这些都会干扰正常使用。

2. 核心配置修正阶段

  • 将 LAN 口 DHCPv6 设置为中继 :将 路由通告服务DHCPv6 服务 改为 "中继模式""混合模式"。修正后如下:

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

  • 允许 IPv6 DNS 解析 :在 DHCP/DNS 高级设置中,取消勾选 "过滤 IPv6 AAAA 记录"

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

3. 服务应用与调试阶段

  • 通过 SSH 或 TTYD 终端执行命令,重启负责 IPv6 的服务并清理旧地址:

    bash 复制代码
    /etc/init.d/odhcpd restart
    ip -6 addr flush dev br-lan scope global
  • 关键缺失项的发现 :尽管终端设备获得了公网 IPv6 地址(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 默认网关**)

    访问 <test-ipv6.com> 结果:

    复制代码
    你的公网 IPv4 地址是 x.x.x.x
    
    
    你的运营商(ISP)是 CHINANET-BACKBONE xxxx
    
    
    没有检测到 IPv6 地址 [更多信息]
    
    
    你只接入了 IPv4 互联网,不能访问纯 IPv6 网站。
    
    
    可向运营商咨询如何使用 IPv6,实现最佳的网络性能。 [更多信息]
    
    
    你的 DNS 服务器(可能由运营商提供)已经接入 IPv6 互联网了

4. 最终解决

  • 返回 iStoreOS/OpenWrt LAN 口 DHCPv6 设置,找到并勾选 "始终通告默认路由" 选项。如下图:

  • 保存应用后,终端设备立即获得了正确的 IPv6 默认网关(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

    访问 <test-ipv6.com> 结果:

    复制代码
    你的公网 IPv4 地址是 xxxxx
    
    
    你的公网 IPv6 地址是 240e:3a3:xxxxx
    
    
    你的运营商(ISP)是 CHINANET-BACKBONE xxxx
    
    
    你已接入 IPv6,因此我们增加了一个标签页,显示你能否访问其他 IPv6 网站。[更多信息]
    
    
    你的 DNS 服务器(可能由运营商提供)已经接入 IPv6 互联网了。
    IPv6 状况评分
    10/10	此分数表示你的系统对 IPv6 的支持程度和稳定性
    点击查看 测试数据

3. 最终有效配置清单(iStoreOS/OpenWrt LuCI 界面)

配置位置 需修改的项 推荐设置 作用说明
网络 -> 接口 -> LAN -> DHCP服务器 -> IPv6设置 路由通告服务 中继模式混合模式 转发光猫的RA报文,而非自行广播。
DHCPv6 服务 中继模式混合模式 转发光猫的DHCPv6地址分配。
NDP 代理 已禁用 在简单中继网络中通常不需要。
始终通告默认路由 勾选 关键!确保终端设备获得IPv6网关。
网络 -> 接口 -> 全局网络选项 IPv6 ULA 前缀 清空 避免生成本地地址,优先使用公网地址。
网络 -> DHCP/DNS -> 高级设置 过滤 IPv6 AAAA 记录 取消勾选 允许DNS服务器返回IPv6地址。
网络 -> 防火墙 -> 区域 (WAN) IP动态伪装(NAT) 取消勾选 IPv6通常不需要NAT,避免不必要的转换。

4. 核心原理总结

  1. 中继 vs 服务器 :在无法控制主路由(光猫)的拓扑中,二级路由的 IPv6 必须使用 "中继" 模式。它像一座桥梁,只传递信息,不自行决定。
  2. 地址分配顺序 :系统会优先使用公网 IPv6 地址(GUA)。只有当中继失败、无法收到公网前缀时,设备才会退而求其次地使用 ULA 本地地址(fdfdd 开头)。初期获得的 fdd5: 地址正是中继失败的标志。
  3. 路由通告的重要性 :IPv6 不仅依赖地址,更依赖路由。"始终通告默认路由" 选项确保路由器告诉内网设备:"我是你们通往 IPv6 互联网的出口"。缺少这一步,设备有地址也无法上网。
  4. 防火墙差异:IPv6 的设计更倾向于端到端的直接通信,因此其防火墙策略与 IPv4(普遍使用NAT)有较大不同,通常无需也不建议对 IPv6 使用"动态伪装"(NAT)。

5. 经验与建议

  1. 排查顺序 :遵循 "先 WAN 后 LAN,先地址后路由" 的原则。先确认上级有信号(WAN口有公网IP),再排查内部转发(LAN口中继配置),最后检查路由和防火墙。
  2. 配置备份 :在 iStoreOS/OpenWrt 中,一旦配置成功,建议立即通过 "系统" -> "备份/升级" 生成一个备份文件。未来升级或重置后可以快速恢复。
  3. 测试工具 :善用以下工具进行精准定位:
    • ipconfig /allifconfig:查看本地地址和网关。
    • ping -6 <目标>:测试 IPv6 连通性。
    • test-ipv6.com:一站式综合测试。
  4. 潜在优化 :如果网络稳定,可以考虑在 LAN 口的 IPv6 设置中,将 路由通告服务DHCPv6 服务混合模式 改回更纯粹的 中继模式,以减少 iStoreOS/OpenWrt 本身的参与度,理论上有更好的稳定性。

通过以上步骤,笔者成功地在一个受限制的网络环境中,将 iStoreOS/OpenWrt 配置为了一个合格的 IPv6 中继节点,使所有内网设备都能无缝接入 IPv6 互联网。这套方法对于任何品牌的光猫(桥接或路由模式)下使用 iStoreOS/OpenWrt 作为二级路由的情况,都具有普遍的参考价值。

相关推荐
cooldream20093 小时前
Vim 报错 E325:swap 文件冲突的原理、处理流程与彻底避免方案
linux·编辑器·vim
i建模3 小时前
在 Rocky Linux 上安装轻量级的 XFCE 桌面
linux·运维·服务器
若风的雨3 小时前
WC (Write-Combining) 内存类型优化原理
linux
YMWM_3 小时前
不同局域网下登录ubuntu主机
linux·运维·ubuntu
zmjjdank1ng3 小时前
restart与reload的区别
linux·运维
哼?~3 小时前
进程替换与自主Shell
linux
FIT2CLOUD飞致云4 小时前
赛道第一!1Panel成功入选Gitee 2025年度开源项目
服务器·ai·开源·1panel
yanlou2334 小时前
[C++/Linux HTTP项目] HTTP服务器基于muduo高性能服务器搭载【深入详解】
运维·服务器·http·muduo库·http高性能服务器
浩浩测试一下4 小时前
DDOS 应急响应Linux防火墙 Iptable 使用方式方法
linux·网络·安全·web安全·网络安全·系统安全·ddos
天空属于哈夫克34 小时前
企微第三方 RPA API:非官方接口与官方接口的差异解析及选型建议
运维·服务器