V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
OpenWrt 是一个专门面向嵌入式设备的 Linux 发行版。你可以将 OpenWrt 支持的型号的嵌入式设备,比如各种路由器上的系统,换成一个有更多可能性可以折腾的 Linux 系统。
OpenWrt 官方网站
pk000
V2EX  ›  OpenWrt

OpenWRT 重新拨号后内网偶尔获取不到 IPv6 PD

  •  
  •   pk000 · 2022-03-01 17:42:04 +08:00 via iPhone · 4415 次点击
    这是一个创建于 997 天前的主题,其中的信息可能已经有所发展或是发生改变。
    OpenWRT WAN 口每隔 2 天运营商会强制断线,触发 PPPoE 重新拨号。重新拨号后,有可能会出现 LAN 上获取不到 IPv6 PD ,导致内网设备无法获取新的 IPv6 地址,IPv6 中断。
    请问有办法确保每次重新拨号均可正常获取 IPv6 PD 吗?
    或者配置 cron 定时检查 LAN 是否有 IPv6 PD ,若无,则通过某种不需要重新拨号的方式申请 IPv6 PD ,再向内网分发 IPv6 地址。如有此方式,请提供配置样例。
    28 条回复    2024-11-20 15:15:45 +08:00
    ochatokori
        1
    ochatokori  
       2022-03-01 18:08:54 +08:00 via Android
    拨号能正常获取的话,写个 hotplug ,在拨号的时候重启 lan 接口?
    pk000
        2
    pk000  
    OP
       2022-03-01 18:39:40 +08:00 via iPhone
    @ochatokori 正常情况下貌似不需要重启 LAN 接口就会更新 IPv6 PD 的呀。就是不确定是 WAN 口拨号有什么问题导致不能获取 IPv6 PD 。
    fhbyljj
        3
    fhbyljj  
       2022-03-02 02:34:12 +08:00 via Android
    你是不是一个 WAN 一个 WAN6
    pk000
        4
    pk000  
    OP
       2022-03-02 08:38:17 +08:00 via iPhone
    @fhbyljj 没有 WAN6 ,只有一个 WAN 。拨号 IPv6 地址在 WAN 上,IPv6 PD 在 LAN 上。
    fhbyljj
        5
    fhbyljj  
       2022-03-03 04:06:28 +08:00 via Android
    @pk000 我也是只有一个 WAN ,LAN 的 IPV6 一直能自己变换
    fhbyljj
        6
    fhbyljj  
       2022-03-03 04:07:30 +08:00 via Android
    @pk000 你可以试试把 WAN 的自动获取 IPV6 设置为手动,再创建一个 @wan 是 DHCPv6 客户端
    zbinlin
        7
    zbinlin  
       2022-03-03 21:01:59 +08:00
    是联通的吗?
    pk000
        8
    pk000  
    OP
       2022-03-04 08:25:09 +08:00 via iPhone
    @fhbyljj 好,晚点试试。

    @zbinlin 电信
    pk000
        9
    pk000  
    OP
       2022-03-23 18:37:44 +08:00
    @fhbyljj 建了 @wan ,看到路由器获取了 IPv6 地址和 IPv6 PD ,但是内网 lan 上设备无法分配到 IPv6 地址。不知道是不是 lean 的 OpenWRT 是不是改过什么。
    flynaj
        10
    flynaj  
       2022-03-23 20:56:04 +08:00 via Android
    你用的版本是不是 Current Stable Release - OpenWrt 21.02.2 ,如果不是的话更新一下
    luoshengdu
        11
    luoshengdu  
       2022-03-31 23:17:50 +08:00   ❤️ 1
    1.在 wan ( pppoe 拨号)口设置中,确认有,“勾选”使用内置 IPv6 管理,获取 IPv6 地址“自动”
    2.添加防火墙规则,允许 ipv6 udp 456 端口和 ipv6 的 igmp 协议进入本设备
    即可解决你描述的问题,且不需要 cron
    pk000
        12
    pk000  
    OP
       2022-04-23 18:19:09 +08:00 via iPhone
    @luoshengdu 经长时间测试,每 2 天运营商强制断线重拨还是会有一定概率出现没有 IPv6 地址的情况,且一直都没有,直到下次重新拨号(手动或运营商强制断线重拨)。
    luoshengdu
        13
    luoshengdu  
       2022-04-24 15:41:41 +08:00
    @pk000 我的测试这么久已经完全正常了哦,广州电信。 拨号

    最近一个月,没有定时重启过路由器,完全可用自动获取到 dhcp-pd 的 v6 地址,
    https://upimg.top/i/2022/04/24/6264fecd4d662.png
    pk000
        14
    pk000  
    OP
       2022-04-25 12:13:11 +08:00 via iPhone
    @luoshengdu 您用的是那个版本的固件?我用的是 eSir 的高大全。基于 lean 的源码。
    luoshengdu
        15
    luoshengdu  
       2022-04-25 15:13:22 +08:00
    @pk000 我是自己编译的 x86 固件 github.com/host2318 见 2021test 固件的 config ,可以.
    另外还有台 360v6 刷了 openwrt 测试了也可以
    Cambrian07
        16
    Cambrian07  
       2023-04-13 16:45:18 +08:00
    我也是遇到了这个问题,增加了一个 hotplug 解决了

    ``` shell
    #!/bin/sh
    [ "$ACTION" = ifup ] || exit 0
    [ "$INTERFACE" = wan ] || exit 0
    uci set network.globals.ula_prefix="$(ip -6 route show | grep default | sed -e 's/^.*from //g' | sed 's/ via.*$//g')"
    uci commit network
    /sbin/ifup lan
    ```
    tediorelee
        17
    tediorelee  
       2023-08-05 22:28:32 +08:00
    @Cambrian07 sorry 挖个坟问一下,这个脚本应该放在哪个位置呢?
    Cambrian07
        18
    Cambrian07  
       2023-08-07 16:10:02 +08:00   ❤️ 1
    #17
    ```shell
    vi /etc/hotplug.d/iface/99-ipv6
    chmod a+x /etc/hotplug.d/iface/99-ipv6
    reboot
    });
    ```

    @tediorelee
    kyon777
        19
    kyon777  
       2023-08-17 01:47:46 +08:00
    @luoshengdu 大哥 靠谱啊 把这个端口加进防火墙,立马获取到 PD 了,挖坟给后面的人参考
    jqtmviyu
        20
    jqtmviyu  
       343 天前
    挖坟, 添加 ipv6 udp 456 端口 , 重启下就好了, 感谢
    microka
        21
    microka  
       49 天前
    config rule
    option name 'Allow-IPv6-UDP-456'
    option src 'wan'
    option proto 'udp'
    option family 'ipv6'
    option target 'ACCEPT'
    option src_port '456' (#这条不确定是不是 option dest_port '546' )

    config rule
    option name 'Allow-IPv6-IGMP'
    option src 'wan'
    option proto 'igmp'
    option family 'ipv6'
    option target 'ACCEPT'

    @luoshengdu @kyon777 @jqtmviyu 大佬们,请问是这样添加防火墙规则吗?
    jqtmviyu
        22
    jqtmviyu  
       49 天前
    @microka #21 ![]( ) 我是在 gui 加这一条
    microka
        23
    microka  
       49 天前
    @jqtmviyu #22 感谢,我参照您这条添加了,IPv6 IGMP 入站不需要放行是吗?
    luoshengdu
        24
    luoshengdu  
       45 天前
    @microka #23 我这里观测超过 180 天未断开的总结:
    1.放行 IPv6 IGMP
    2.放行 456 端口到本设备
    3.放行 546 端口到本设备
    microka
        25
    microka  
       45 天前

    @luoshengdu #24 大佬,请问是这样配置吗?
    放行 456 端口是参照自带的「 Allow-DHCPv6 」规则,在目标端口上配置吗?好奇这个 456 端口是什么服务用到呢?在网上搜索看到说 456 端口是木马 HACKERS PARADISE 使用的。
    luoshengdu
        26
    luoshengdu  
       45 天前
    @microka #25 是这么配置。 期待你的观察体验,在这后面方便时反馈。
    放行 456 端口是我在恩山论坛找到别人回帖,技术原因不明,我查了这么多年没找到技术支持来源。

    在几年前,没有加 456 端口,v6 pd 异常概率非常高,30 天左右必然出现有 v4 没有 v6 的断网。
    456 加了之后还会有,我把 546 也加了,随后再没有碰到无法获取 v6 导致断网了。

    当然这个是 openwrt 某些版本特有的故障。 其他的路由器 v6 没碰到这样的故障
    参考:
    https://zhuanlan.zhihu.com/p/491150806
    microka
        27
    microka  
       44 天前
    @luoshengdu #26 ImmortalWrt 23.05.4 ,默认自带[Allow-DHCPv6]规则(放行 IPv6 UDP 到此设备 546 端口),另外添加两条规则放行 IPv6 IGMP 和 IPv6 UDP 到此设备 456 端口。wan 连接每 5 天被 ISP 断开。
    2024-10-09 ,wan 被 ISP 断开后,几秒钟内自动完成 wan 和 wan_6 重拨号,一切正常。

    现将[Allow-IPv6-UDP-456]规则禁用,观察 5 天后断线重拨号后 wan_6 是否正常。
    CrazyBoyFeng
        28
    CrazyBoyFeng  
       2 天前
    @microka udp456 端口是以前 odhcp6c 使用的端口,但后来不知为何他们又改到 546 了,也许是 456 跟别的什么东西冲突了吧。
    所以,用 ssh 进你的路由器看一看,用 `netstat -apun | grep odhcp6c` 查看一下你路由器上的 dhcpv6 客户端端口。这个端口应该与防火墙里 `Allow-DHCPv6` 保持一致,如果不一致,那就修改防火墙设置。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2737 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 12:45 · PVG 20:45 · LAX 04:45 · JFK 07:45
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.