![]() |
1
smartisan2047 117 天前 via iPhone
ER-X 拨号,同有这个问题。蹲解决方案
|
2
fenghuang 117 天前 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; } |
![]() |
6
acbot 117 天前
这里的问题主要是短时间内更新了前缀,在上一个前缀和前缀下发后生成的地址的租赁期没到,这个时候更新了前缀那么 RA 通告的时候两个前缀都有,就会产生问题。只要过了这个租赁期你更新新的前缀下面都不会有问题(至少 OP 不会因为他会重启下发服务)。主要问题是在 LAN 这个接口上,这个时候只要你手动删除旧前缀的地址,RA 就只会通告新的前缀,不重启任何设备和服务下面的设备都可以正常。
|
7
noahzh 117 天前
我还是觉得 dhcp v6 更符合家庭需求.
|
![]() |
9
ggf OP @acbot 确实如此,但是我在 ros 中 /ipv6 address 中并没有发现旧的地址,在 pppoe 重拨后旧地址其实已经被替换成了新地址 想问一下您回复中提到的删除旧地址前缀该如何操作呢
|
![]() |
10
Autonomous 117 天前 via Android
蹲一个解决方案
|
11
tankren 117 天前
路由器没有发送地址释放指令给局端?或者是路由器的 RA 问题
|
13
aMR 117 天前
把 ra 的 lifetime 设短点就好了,er-x 的默认值实在是太久了,不适合 pppoe 拨号
贴一下我用的值,单位秒 preferred-lifetime 600 valid-lifetime 1800 max-interval 600 一般几分钟就切过去了,日常使用无感 |
![]() |
16
geekvcn 117 天前
修改下租约时间,改最小
|
![]() |
17
ggf OP 如图,但是 ND 中的 RA 时间是 1800 想问一下大家这个时间为什么实际上没有效果(就是重拨后的 1800s 后并没有更新)
[]( https://imgtu.com/i/7cVfKO) |
19
vtoex0000000002 117 天前
|
20
Sxx1314 117 天前 via Android
涉及租期问题无解。本身 v6 就不应该频繁改前缀,天朝 isp 比较奇葩而已。目前的临时做法是定时重启 dhcp ,当然这时候部分 client 也必须重启网络才能重新更新。
|
21
cwbsw 116 天前
这是苹果的实现问题吧,我这里 OpenWrt+Windows ,重拨后秒更新,旧地址被 deprecated ,valid_lft 过后就消失了。valid_lft 默认是与上游运营商下发的前缀一致,也可以自己指定。
|
![]() |
23
ggf OP @Sxx1314 我发现其实不重启 dhcp 其实只需要终端断开网络重新连接即可,应该是终端中的旧地址没有释放导致的,因为重新联网获取到的地址就是新的 不会获取到旧地址
|
![]() |
24
raysonx 116 天前 via iPhone
关掉 dhcpv6 。slaac 可以更新前缀。
|
26
basncy 115 天前
@ggf 4 楼不是已经给答案了吗?
关闭 dhcp, 用 slaac. 或者缩小 dhcp 租期 dnsmasq 语法: dhcp-range=br0,::,constructor:br0,ra-stateless,ra-names PD 用的是 wide-dhcpv6, pppoe 重新拨号后 systemctl restart [email protected],配合 dnsmasq 配置,该路由下的 v6 自动刷新. |
27
qbqbqbqb 115 天前
@cwbsw 重拨后是否更新是要看路由端实现的。OpenWRT 会主动 deprecate prefix (发一个旧前缀 preferred lifetime=0 的 RA ),这样即使旧地址的 preferred lifetime 没过期也能强制切换。
但别的路由系统不一定,有的得等前缀自动过期(至少得等旧地址 preferred lifetime 过期,终端才会把新地址设为首选)。 |
31
basncy 115 天前
@ggf systemctl restart [email protected] 后 br0 的 ipv6 会变, dnsmasq 监测到变化就会主动发 deprecate prefix.
|
32
basncy 115 天前
@ggf systemctl restart [email protected] 可以写在 pppoe 的 if-up 里, 这样就能秒换了.
|
34
basncy 115 天前
@ggf 原理都一样. 我用 archlinux 改造的. https://wiki.archlinux.org/title/IPv6#With_WIDE-DHCPv6
|
35
z5864703 115 天前
ROS 调整 ND 的参数就好了,根据 ipv6 前缀的过期时间来改,目前没有问题
|
![]() |
36
Xymmh 115 天前
干脆不要用 pd 下发的地址了,直接把上级设备给 wan 口分发的 /64 地址中继给终端,类似教育网下的方法。
|