![]() | 1 smartisan2047 2022-01-20 12:56:56 +08:00 via iPhone ER-X 拨号,同有这个问题。蹲解决方案 |
2 fenghuang 2022-01-20 12:59:06 +08:00 via Android 我也遇到 wifi 必须重连才行 |
![]() | 3 ggf OP 我是 ros 拨号,以下脚本也试过,没有作用 RouterOS IPv6 实用脚本 IPv6 地址更新脚本 用于当 RouterOS IPv6 更新时,主动向客户端广播旧地址过期 :local poolname "pool6" :local ifname "bridge" :global oldprefix; :local newprefix; :set newprefix [/ipv6 pool used get [find info="bridge"] prefix]; :if ([ :typeof $oldprefix ] = "nothing") do { :set $oldprefix $newprefix } :i ($newprefix != $oldprefix) do { :log info "Kill IPv6 prefix, old prefix: $oldprefix, new prefix: $newprefix"; :ipv6 nd prefix add prefix=$oldprefix interface=$ifname on-link=yes autOnomous=yes preferred-lifetime=0s valid-lifetime=0s; :delay 5; :ipv6 nd prefix remove [/ipv6 nd prefix find prefix=$oldprefix]; :set $oldprefix $newprefix; } |
4 basncy 2022-01-20 13:22:33 +08:00 |
5 lovelylain 2022-01-20 13:51:33 +08:00 via Android |
![]() | 6 acbot 2022-01-20 14:08:01 +08:00 这里的问题主要是短时间内更新了前缀,在上一个前缀和前缀下发后生成的地址的租赁期没到,这个时候更新了前缀那么 RA 通告的时候两个前缀都有,就会产生问题。只要过了这个租赁期你更新新的前缀下面都不会有问题(至少 OP 不会因为他会重启下发服务)。主要问题是在 LAN 这个接口上,这个时候只要你手动删除旧前缀的地址,RA 就只会通告新的前缀,不重启任何设备和服务下面的设备都可以正常。 |
7 noahzh 2022-01-20 14:08:34 +08:00 我还是觉得 dhcp v6 更符合家庭需求. |
![]() | 9 ggf OP @acbot 确实如此,但是我在 ros 中 /ipv6 address 中并没有发现旧的地址,在 pppoe 重拨后旧地址其实已经被替换成了新地址 想问一下您回复中提到的删除旧地址前缀该如何操作呢 |
![]() | 10 Autonomous 2022-01-20 14:49:06 +08:00 via Android 蹲一个解决方案 |
11 tankren 2022-01-20 14:57:53 +08:00 路由器没有发送地址释放指令给局端?或者是路由器的 RA 问题 |
![]() | 12 acbot 2022-01-20 15:20:22 +08:00 @ggf ros 没用过,我说的是 OP 的情况,不过大致就是两个地方排查,一个是负责 RA 下发的服务,一个是 LAN 接口的 v6 地址(网关的地址)。 |
13 aMR 2022-01-20 15:44:38 +08:00 把 ra 的 lifetime 设短点就好了,er-x 的默认值实在是太久了,不适合 pppoe 拨号 贴一下我用的值,单位秒 preferred-lifetime 600 valid-lifetime 1800 max-interval 600 一般几分钟就切过去了,日常使用无感 |
![]() | 16 geekvcn 2022-01-20 16:47:12 +08:00 修改下租约时间,改最小 |
![]() | 17 ggf OP 如图,但是 ND 中的 RA 时间是 1800 想问一下大家这个时间为什么实际上没有效果(就是重拨后的 1800s 后并没有更新) []( https://imgtu.com/i/7cVfKO) |
19 vtoex0000000002 2022-01-20 19:19:17 +08:00 |
20 Sxx1314 2022-01-20 23:36:08 +08:00 via Android 涉及租期问题无解。本身 v6 就不应该频繁改前缀,天朝 isp 比较奇葩而已。目前的临时做法是定时重启 dhcp ,当然这时候部分 client 也必须重启网络才能重新更新。 |
21 cwbsw 2022-01-21 12:02:21 +08:00 这是苹果的实现问题吧,我这里 OpenWrt+Windows ,重拨后秒更新,旧地址被 deprecated ,valid_lft 过后就消失了。valid_lft 默认是与上游运营商下发的前缀一致,也可以自己指定。 |
![]() | 22 ggf OP @cwbsw 不仅仅是 ios windows 上也是如此现象,可能由于我的 valid_lft 都是跟随运营商默认 30d 有关系 |
![]() | 23 ggf OP @Sxx1314 我发现其实不重启 dhcp 其实只需要终端断开网络重新连接即可,应该是终端中的旧地址没有释放导致的,因为重新联网获取到的地址就是新的 不会获取到旧地址 |
![]() | 24 raysonx 2022-01-22 01:03:09 +08:00 via iPhone 关掉 dhcpv6 。slaac 可以更新前缀。 |
26 basncy 2022-01-22 13:23:47 +08:00 @ggf 4 楼不是已经给答案了吗? 关闭 dhcp, 用 slaac. 或者缩小 dhcp 租期 dnsmasq 语法: dhcp-range=br0,::,constructor:br0,ra-stateless,ra-names PD 用的是 wide-dhcpv6, pppoe 重新拨号后 systemctl restart dhcp6c@ppp0,配合 dnsmasq 配置,该路由下的 v6 自动刷新. |
27 qbqbqbqb 2022-01-22 14:08:10 +08:00 @cwbsw 重拨后是否更新是要看路由端实现的。OpenWRT 会主动 deprecate prefix (发一个旧前缀 preferred lifetime=0 的 RA ),这样即使旧地址的 preferred lifetime 没过期也能强制切换。 但别的路由系统不一定,有的得等前缀自动过期(至少得等旧地址 preferred lifetime 过期,终端才会把新地址设为首选)。 |
31 basncy 2022-01-22 20:50:15 +08:00 @ggf systemctl restart dhcp6c@ppp0 后 br0 的 ipv6 会变, dnsmasq 监测到变化就会主动发 deprecate prefix. |
32 basncy 2022-01-22 20:53:21 +08:00 @ggf systemctl restart dhcp6c@ppp0 可以写在 pppoe 的 if-up 里, 这样就能秒换了. |
34 basncy 2022-01-22 21:39:03 +08:00 @ggf 原理都一样. 我用 archlinux 改造的. https://wiki.archlinux.org/title/IPv6#With_WIDE-DHCPv6 |
35 z5864703 2022-01-22 22:46:07 +08:00 ROS 调整 ND 的参数就好了,根据 ipv6 前缀的过期时间来改,目前没有问题 |
![]() | 36 Xymmh 2022-01-23 00:14:21 +08:00 干脆不要用 pd 下发的地址了,直接把上级设备给 wan 口分发的 /64 地址中继给终端,类似教育网下的方法。 |
![]() | 38 zent00 2022-06-25 09:29:36 +08:00 没有 VyOS 用户吗?我来贡献一下 VyOS 的设置。 set service router-advert interface br0 prefix ::/64 preferred-lifetime 300 set service router-advert interface br0 prefix ::/64 valid-lifetime 900 由于我的软路由多个 LAN 口都加入了 br0 ,所以这里 interface 是 br0 ,设置时可按实际情况修改为 ethN 。 |
39 test0x01 2022-06-28 23:45:33 +08:00 via Android 看样子只有比 lease time 了 |
40 luodichen 2023-05-10 09:48:41 +08:00 ![]() RouterOS v7.9 已经解决了此问题: *) ipv6 - send out RA packet with "preferred-lifetime" set to "0" when IPv6 address is deactivated; |
![]() | 41 zent00 2023-07-10 09:37:21 +08:00 VyOS 在 5 月 25 日的 nightly build 中也针对这个问题加入了两个新的配置选项: (feature): router-advert: Add deprecate-prefix & decrement-lifetimes options 看了下 FEATURE REQUEST 的信息,就是 24 楼的 raysonx 兄弟在去年 7 月提交的。 |