RouterOS pppoe 断线重播总会下发新旧两个 ipv6

63 天前
 guiys

具体是这样的: 第一次启动 ros ,正常拨号,正常获取 ipv6pd (假定 2409:aaaa::/60 ),终端可以获得 ipv6 地址。 如果之后 pppoe 断线重播(运营商踢掉、网线重插等),又重新获取了新的 ipv6pd (假定 2409:bbbb::/60 ),终端就会获得 aaaa 和 bbbb 两个前缀的地址。等再遇到重播,终端就会得到 bbbb 和 cccc 两个前缀的地址。 如果一直不重启 ros ,终端总会拿到前一个和当前两个前缀的 ipv6 。图上的 1892:af90 就是上次拨号下发的前缀。
已经尝试调整过 preferred-lifetime 和 valid-lifetime ,没有效果,两个地址会在终端一直存在。

贴一下配置请帮忙看看是那里的问题,版本 chr7.19.3 (stable):

/interface ethernet
set [ find default-name=ether1 ] disable-running-check=no name=LAN
set [ find default-name=ether2 ] disable-running-check=no name=WAN
/interface pppoe-client
add add-default-route=yes disabled=no interface=WAN max-mru=1480 max-mtu=1480 name=pppoe-out1 use-peer-dns=yes user=**************
/ip dhcp-server option
add code=3 name=option1 value="'192.168.1.100'"
add code=6 name=option2 value="'192.168.1.100'"
/ip pool
add name=dhcp_pool0 ranges=192.168.1.10-192.168.1.40
/ip dhcp-server
add address-pool=dhcp_pool0 interface=LAN lease-time=2h name=dhcp1
/system logging action
set 0 memory-lines=200
/certificate settings
set builtin-trust-anchors=not-trusted
/ip neighbor discovery-settings
set discover-interface-list=none
/ip settings
set max-neighbor-entries=16384
/ipv6 settings
set max-neighbor-entries=8192
/ip address
add address=192.168.1.1/24 interface=LAN network=192.168.1.0
/ip dhcp-server network
add address=192.168.1.0/24 dns-server=192.168.1.1 gateway=192.168.1.1
/ip dns
set allow-remote-requests=yes max-concurrent-tcp-sessions=50
/ip firewall filter
add action=drop chain=input comment="drop invalid" connection-state=invalid
add action=drop chain=forward comment="drop invalid" connection-state=invalid
/ip firewall mangle
add action=change-mss chain=forward disabled=yes new-mss=clamp-to-pmtu out-interface=pppoe-out1 protocol=tcp tcp-flags=syn
/ip firewall nat
add action=endpoint-independent-nat chain=srcnat comment=FullCone-Nat protocol=udp
add action=endpoint-independent-nat chain=dstnat comment=FullCone-Nat protocol=udp
add action=masquerade chain=srcnat out-interface=pppoe-out1
/ip service
set ftp disabled=yes
set ssh disabled=yes
set telnet disabled=yes
set www address=192.168.1.0/24
set winbox address=192.168.1.0/24
set api disabled=yes
set api-ssl disabled=yes
/ipv6 address
add address=::1 from-pool=cmcc interface=LAN
/ipv6 dhcp-client
add default-route-tables=main interface=pppoe-out1 pool-name=cmcc request=prefix
/ipv6 firewall filter
add action=accept chain=input comment="defconf: accept established,related,untracked" connection-state=established,related,untracked disabled=yes
add action=drop chain=input comment="defconf: drop invalid" connection-state=invalid disabled=yes
add action=accept chain=input comment="defconf: accept ICMPv6" disabled=yes protocol=icmpv6
add action=accept chain=input comment="defconf: accept UDP traceroute" disabled=yes port=33434-33534 protocol=udp
add action=accept chain=input comment="defconf: accept DHCPv6-Client prefix delegation." disabled=yes dst-port=546 log=yes protocol=udp src-address=fe80::/16
add action=drop chain=input comment="defconf: drop everything else not coming from LAN" disabled=yes in-interface=!LAN
add action=accept chain=forward comment="defconf: accept established,related,untracked" connection-state=established,related,untracked disabled=yes
add action=drop chain=forward comment="defconf: drop invalid" connection-state=invalid disabled=yes
add action=accept chain=forward comment="defconf: accept ICMPv6" disabled=yes protocol=icmpv6
add action=accept chain=forward disabled=yes dst-port=2256 log=yes protocol=tcp
add action=drop chain=forward comment="defconf: drop everything else not coming from LAN" disabled=yes in-interface=!LAN
/ipv6 firewall mangle
add action=change-mss chain=forward new-mss=clamp-to-pmtu out-interface=pppoe-out1 packet-mark="" protocol=tcp tcp-flags=syn
/ipv6 nd
set [ find default=yes ] advertise-dns=no hop-limit=64 interface=LAN
/ipv6 nd prefix default
set preferred-lifetime=10m valid-lifetime=30m
/system clock
set time-zone-name=Asia/Shanghai
/tool graphing interface
add interface=pppoe-out1
1335 次点击
所在节点    路由器
9 条回复
kenneth104
63 天前
这个会导致你出现什么问题吗?
我不是用 ROS ,但一样会遇到这种情况,因为还会判断剩余有效期,有效期较长的 IP 会优先,所以网络是没问题
mangmaimu
63 天前
看看是不是 Windows 的问题,手机是否一样
guiys
63 天前
@kenneth104 网络使用没有任何影响,访问外网都是通过新前缀的 ip ,就是觉得配置哪里有问题,忍不了😂
guiys
63 天前
@mangmaimu 手机也是一样的,安卓 ios 都是新旧两个地址,所以应该是哪里配置的问题
mangmaimu
63 天前
@guiys
地址状态
当分配自动配置地址时,它可以处于以下状态之一:
tentative - 在此状态下,主机验证地址是否唯一。验证通过重复地址检测进行。
preferred - 在此状态下,地址被验证为唯一,节点可以向首选地址发送和接收单播流量。首选状态的持续时间包含在 RA 消息中。
deprecated - 该地址仍然有效,但不用于新连接。
invalid - 节点无法再发送或接收单播流量。有效生存期到期后,地址将进入无效状态。

mikrotik 官方说明,看起来没问题,应该是不同状态
kenneth104
63 天前
@guiys
没问题就行,不纠结就得 XD
holoto
63 天前
说明 lan 的 dhcp 下发 没有更新状态 保留了旧的 wan v6 地址。op 也有这个问题 。如果是定时重启 wan 也要设置定时重启 lan
aqc113
63 天前
老问题了,我用 routeros + windows + debian 都是一样的情况,不知道是谁的锅
旧的地址已经 invalid 了但是 valid lifetime 还在一直更新

这个帖子也有提到 https://v2ex.com/t/1014173
> 经过观察发现如下情况...

我的解决办法是在重拨之后手动更新一下旧前缀的 valid lifetime 为 0

```
:global LastIPv6Prefix
:local ipv6prefix

:set ipv6prefix [/ipv6 nd prefix get [:pick [/ipv6 nd prefix find interface="bridge"] 0 ] prefix]
# :log info "$ipv6prefix"

:if ([:len $ipv6prefix] = 0) do={
:log error ("Could not get IPv6 for interface bridge")
:error ("Could not get IPv6 for interface bridge")
}

:if ([:len $LastIPv6Prefix] = 0) do={
:set LastIPv6Prefix $ipv6prefix
:log info ("LastIPv6Prefix is empty")
}

:if ($ipv6prefix != $LastIPv6Prefix) do={
:log info ("Prefix " . $LastIPv6Prefix . " has expired. Updating lifetime...")
/ipv6 nd prefix add prefix=$LastIPv6Prefix interface=bridge valid-lifetime=0s preferred-lifetime=0s
:delay 5s
/ipv6 nd prefix remove [:pick [/ipv6 nd prefix find prefix=$LastIPv6Prefix] 0 ]
:set LastIPv6Prefix $ipv6prefix
}

```
lw4free
34 天前
等 valid-lifetime 时间过了就没有了 Linux 下有这样显示 valid_lft 174310sec preferred_lft 1510sec 你可以设置成 2d 00:00:30 每 2 天自动重拨一次 如果觉得不爽 就重启电脑网卡重新获取 ip 就没有了 preferred-lifetime 时间要比 valid-lifetime 时间短

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

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

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

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

© 2021 V2EX