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 } :if ($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 后并没有更新)
[![7cVfKO.png]( https://s4.ax1x.com/2022/01/20/7cVfKO.png)]( 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 1
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 月提交的。 |