通知 欢迎关注我的店铺天天软件圆

IPV6光猫拨号iStoreOS IPv6中继模式,有IPv6地址,ping不通的临时解决方法

2025-04-15
0评论
/
阅读
爱搜啊

有IPv6地址,ping不通的临时解决方法

设备环境  

- 主路由:电信光猫(拨号模式)  

- 二级路由:x86软路由刷iStoreOS(22.03.6版本)  

- 网络拓扑:光猫 → iStoreOS软路由 → AP无线接入点  

故障现象  

1. 软路由的WAN口能获取到IPv6地址,但IPv6测试网站显示失败。  

2. 局域网设备偶尔能获取IPv6地址,但 ping -6 外网地址不通。  

3. 一段时间后IPv6地址失效,需手动重启接口才能恢复。  

二、问题分析

经过排查,发现以下关键原因:  

1. 中继模式的路由表缺陷  

   OpenWrt默认的中继模式(Relay)在WAN口获取IPv6地址后,未能正确维护路由表,导致IPv6流量无法正确转发到LAN侧设备。  

2. 防火墙拦截关键协议  

   iStoreOS默认防火墙规则会拦截部分IPv6通信,尤其是ICMPv6协议(如NDP邻居发现、DHCPv6续约请求),导致IPv6地址续约失败。  

3. IPv6 ULA前缀干扰  

   默认开启的IPv6 ULA(私有地址)前缀与公网地址冲突,干扰了中继模式下客户端获取有效路由。  

三、解决方案

1. 核心操作:修复路由表

原理

当中继模式获取到WAN口的IPv6地址后,需手动添加一条路由规则,将WAN侧的子网流量重定向到LAN接口。  

操作步骤  

- 安装依赖包  

  进入「系统 → 软件包」,搜索安装 owipcalc(用于计算子网)。  

- 创建热插拔脚本  

  将以下脚本保存为 /etc/hotplug.d/iface/80-reset-route6:  

#!/bin/sh

wan_dev="wan6"

[ "$HOTPLUG_TYPE" = "iface" ] || exit 0
[ "$INTERFACE" = "$wan_dev" ] || exit 0

RTMETRIC=127

. /lib/functions/network.sh

network_get_physdev lan_dev lan || exit 0

ifup_cb() {
        local _lan_dev="$1"
        local _metric="$2"

        local wan_subnet
        network_get_subnet6 wan_subnet "$wan_dev" || return
        _wan_network=$(owipcalc "${wan_subnet}" network)

        ip -6 route replace "$_wan_network" dev "$_lan_dev" metric "$_metric"
}

ifdown_cb() {
        local _lan_dev="$1"
        local _metric="$2"

        ip -6 route flush dev "$_lan_dev" metric "$_metric"
}

case "$ACTION" in
        ifup)
                ifup_cb "$lan_dev" "$RTMETRIC"
                ;;
        ifdown)
                ifdown_cb "$lan_dev" "$RTMETRIC"
                ;;
        ifupdate)
                ifdown_cb "$lan_dev" "$RTMETRIC"
                sleep 1
                ifup_cb "$lan_dev" "$RTMETRIC"
                ;;
        *)
                ;;
esac

exit 0

  - 赋予执行权限:chmod +x /etc/hotplug.d/iface/80-reset-route6

  - 重启WAN接口生效。  

2. 接口配置优化  

第一步,先搞定wan6口

1、网络--接口--wan6--编辑
1.1、常规设置
协议:DHCPv6客户端
设备:eth0
开机自动运行:选择
请求IPv6地址:try
请求指定长度的IPv6前缀:自动

1.2、高级设置
强制链路:不选
请求DHCP时发送的客户端ID:空
使用默认网关:选择
自动获取DNS服务器:选择
DNS 权重:空
使用网关跃点:空
覆盖 IPv4 路由表:未指定
覆盖 IPv6 路由表:未指定
IPv6 源路由:选择
委托 IPv6 前缀:选择
IPv6 分配长度:已禁用
IPv6 前缀过滤器:-- 请选择 --
IPv6 后缀:::1
IPv6 优先级:空

1.3、防火墙设置
创建和分配防火墙区域:wan和wan6

1.4、DHCP服务器--常规设置
忽略此接口:不选

1.5、DHCP服务器--IPv6设置
指定的主接口:选择
RA 服务:中继模式
DHCPv6 服务:中继模式
NDP 代理:中继模式
学习路由:选择

第二步,搞定lan口

2、网络--接口--lan--编辑
2.1、常规设置
协议:静态地址
设备:br-lan
开机自动运行:选择
IPv4 地址:192.168.100.1
IPv4 子网掩码:255.255.255.0
IPv4 网关:灰色无法更改
IPv4 广播地址:灰色无法更改
IPv6 地址:空
IPv6 网关:空
IPv6 路由前缀:空

2.2、高级设置
强制链路:选择
使用默认网关:选择
使用自定义的 DNS 服务器:空
DNS 搜索域名:空
DNS 权重:空
使用网关跃点:空
覆盖 IPv4 路由表:未指定
覆盖 IPv6 路由表:未指定
委托 IPv6 前缀:选择
IPv6 分配长度:禁用
IPv6 前缀过滤器:-- 请选择 --
IPv6 后缀:::1
IPv6 优先级:空

2.3、防火墙设置
创建和分配防火墙区域:lan

2.4、DHCP服务器--常规设置
忽略此接口:不选
启动:100
客户数:150
租期:infinite

2.5、DHCP服务器--高级设置
动态 DHCP:选择
强制:不选
IPv4 子网掩码:灰色无法更改
DHCP 选项:空

2.6、DHCP服务器--IPv6设置
指定的主接口:不选
RA 服务:中继模式
DHCPv6 服务:中继模式
NDP 代理:中继模式
学习路由:选择
NDP 代理从属设备:不选

第三步,网络--接口--全局网络选项
IPv6 ULA 前缀:空

数据包引导:选择

3. 防火墙调整  

允许DHCPv6通信  

- 新增规则:允许LAN侧设备通过UDP 546端口向路由器的547端口发送DHCPv6请求。  

ip6tables -I input_rule -i br-lan -p udp --dport 547 -j ACCEPT

放行关键ICMPv6协议  

- 在「网络 → 防火墙 → 自定义规则」中添加:  

  # 允许常见ICMPv6类型(如邻居发现、路由通告)

ip6tables -I forwarding_rule -i br-lan -p ipv6-icmp -m icmp6 --icmpv6-type 134 -j ACCEPT  # RA报文
ip6tables -I forwarding_rule -i br-lan -p ipv6-icmp -m icmp6 --icmpv6-type 135 -j ACCEPT  # NS报文
ip6tables -I forwarding_rule -i br-lan -p ipv6-icmp -m icmp6 --icmpv6-type 136 -j ACCEPT  # NA报文

4. 其他注意事项  

- 关闭IPv6 ULA前缀  

  进入「网络 → 接口 → 全局网络选项」,清空「IPv6 ULA前缀」字段。  

- PassWall插件兼容性  

  若使用PassWall,需勾选「过滤代理域名IPv6」,避免插件劫持IPv6流量。  

- 光猫兼容性  

  部分光猫会限制二级路由的IPv6 PD前缀分配,中继模式是更稳妥的选择。  

四、效果验证  

1. 执行 ip -6 route show 检查路由表中是否存在指向LAN设备的路由。  

2. 局域网设备访问https://test-ipv6.com应显示10/10通过。  

3. 执行 ping -6 www.baidu.com 测试持续连通性。  

五、总结

中继模式对IPv6的支持依赖路由表与防火墙的精细配置。通过脚本维护路由、放行关键协议、关闭冲突选项,可解决大部分“有地址但无连接”的问题。此方案已在多地电信/联通网络中验证稳定,适合光猫拨号+二级路由的场景。


点击链接加入群聊四群:722808830
点击链接加入群聊三群:751529538(已满)
点击链接加入群聊二群:376877156(已满)
点击链接加入群聊一群:622891808(已满)

饿了么红包
饿了么红包


本站附件分享,如果附件失效,可以去找找看

诚通网盘附件百度网盘附件

标签: iStoreOS IPv6
于2025-04-15发布