关于 pppoe 重拨后 IPV6 prefix 更新问题

2022-01-20 12:40:00 +08:00
 ggf

我通过 pppoe 连接外网,然后通过 prefix 获取 ipv6 后,我的终端同时拥有 ipv4 和 ipv6 地址,此时一切正常。
问题出现在 pppoe 连接断开重连时,前缀获取的 ipv6 会发生变化,但此时终端获取的是新的 ipv6 地址。 问题是旧地址没有自动消失,导致终端 ipv6 连接异常。
除了终端断开连接,重新连接后可以恢复 ipv6 正常,还有什么办法吗?

6746 次点击
所在节点    宽带症候群
41 条回复
smartisan2047
2022-01-20 12:56:56 +08:00
ER-X 拨号,同有这个问题。蹲解决方案
fenghuang
2022-01-20 12:59:06 +08:00
我也遇到 wifi 必须重连才行
ggf
2022-01-20 13:09:21 +08:00
我是 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;
}
basncy
2022-01-20 13:22:33 +08:00
lovelylain
2022-01-20 13:51:33 +08:00
acbot
2022-01-20 14:08:01 +08:00
这里的问题主要是短时间内更新了前缀,在上一个前缀和前缀下发后生成的地址的租赁期没到,这个时候更新了前缀那么 RA 通告的时候两个前缀都有,就会产生问题。只要过了这个租赁期你更新新的前缀下面都不会有问题(至少 OP 不会因为他会重启下发服务)。主要问题是在 LAN 这个接口上,这个时候只要你手动删除旧前缀的地址,RA 就只会通告新的前缀,不重启任何设备和服务下面的设备都可以正常。
noahzh
2022-01-20 14:08:34 +08:00
我还是觉得 dhcp v6 更符合家庭需求.
acbot
2022-01-20 14:13:46 +08:00
@noahzh 安卓好像不支持 dhcp v6 获取 只能 slaac
ggf
2022-01-20 14:44:35 +08:00
@acbot 确实如此,但是我在 ros 中 /ipv6 address 中并没有发现旧的地址,在 pppoe 重拨后旧地址其实已经被替换成了新地址 想问一下您回复中提到的删除旧地址前缀该如何操作呢
Autonomous
2022-01-20 14:49:06 +08:00
蹲一个解决方案
tankren
2022-01-20 14:57:53 +08:00
路由器没有发送地址释放指令给局端?或者是路由器的 RA 问题
acbot
2022-01-20 15:20:22 +08:00
@ggf ros 没用过,我说的是 OP 的情况,不过大致就是两个地方排查,一个是负责 RA 下发的服务,一个是 LAN 接口的 v6 地址(网关的地址)。
aMR
2022-01-20 15:44:38 +08:00
把 ra 的 lifetime 设短点就好了,er-x 的默认值实在是太久了,不适合 pppoe 拨号

贴一下我用的值,单位秒
preferred-lifetime 600
valid-lifetime 1800
max-interval 600
一般几分钟就切过去了,日常使用无感
noahzh
2022-01-20 15:52:23 +08:00
@acbot 其实我现在更想的是给指定设备分配 ipv6.
acbot
2022-01-20 15:58:06 +08:00
@noahzh 这个需求用 dhcp v6 实现会不会很复杂。
geekvcn
2022-01-20 16:47:12 +08:00
修改下租约时间,改最小
ggf
2022-01-20 17:03:33 +08:00
如图,但是 ND 中的 RA 时间是 1800 想问一下大家这个时间为什么实际上没有效果(就是重拨后的 1800s 后并没有更新)
[![7cVfKO.png]( https://s4.ax1x.com/2022/01/20/7cVfKO.png)]( https://imgtu.com/i/7cVfKO)
noahzh
2022-01-20 19:08:14 +08:00
@acbot 没有这个功能
vtoex0000000002
2022-01-20 19:19:17 +08:00
来来来,我被这个问题折磨了一天。
采用了妥协的方法。

v2ex.com/t/828332
Sxx1314
2022-01-20 23:36:08 +08:00
涉及租期问题无解。本身 v6 就不应该频繁改前缀,天朝 isp 比较奇葩而已。目前的临时做法是定时重启 dhcp ,当然这时候部分 client 也必须重启网络才能重新更新。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/829436

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX