IPv6 地址和临时 IPv6 地址后缀都会变更, IPv6 地址是随着前缀变更而变更, 防火墙规则没法写.

2023-02-12 15:54:49 +08:00
 Tweak7136
不太理解 IPv6, 两个地址后缀都会改变是正常的吗?
还有一个 DHCPv6 下发的固定后缀的地址不会变, 但是设备在 AP 后面的话, 前缀变更后设备收不到通知还是怎么着,前缀不会更新.
有人知道是什么问题吗?
路由器是 Openwrt
6029 次点击
所在节点    宽带症候群
41 条回复
raysonx
2023-02-12 17:11:25 +08:00
> 两个地址后缀都会改变是正常的吗?

临时地址的后缀一定时间后会自动变更。
非临时地址的话,其中 DHCPv6 分配的地址,后缀是否变更是由 DHCPv6 服务器控制的,通常情况下只要前缀不变且设备一直在线,就能在过期前自动续期。
SLAAC 分配的地址,只要前缀不变,后缀就不变。

> DHCPv6 下发的固定后缀的地址不会变, 但是设备在 AP 后面的话, 前缀变更后设备收不到通知还是怎么着,前缀不会更新.

这是 DHCPv6 的固有缺陷,解决方法就是把租期设置得短一些,这样下次续期的时候就会获得新前缀。

更彻底的解决方法是不用 DHCPv6 ,改用 SLAAC 。
a90405
2023-02-12 17:32:36 +08:00
用 SLAAC 的地址
DHCPV6 简直没法用,更新非常不及时。
Tweak7136
2023-02-12 17:50:58 +08:00
@raysonx
@a90405
SLAAC 也开着的, 所以一个设备有三个 IPv6 地址, 但是宽带给的前缀是动态的, 重播会变更前缀, 是不是防火墙规则就没办法了...
evalfun
2023-02-12 18:04:10 +08:00
我直接放开我需要的端口,不折腾了。反正 v6 的地址空间这么大,应该不会有人去扫吧
raysonx
2023-02-12 18:51:05 +08:00
在用 SLAAC 的时候,路由器只会下发前缀,后缀是由设备自己控制的。部分设备可以设置为固定后缀,这样在前缀变化时后缀也不会变。
然后路由器可以使用掩码::ffff:ffff:ffff:ffff 按后缀匹配设备,路由器支持 ip6tables/nftables 规则就可以做到。
blankmiss
2023-02-12 19:03:34 +08:00
@evalfun 有的很多扫全网的爆破端口
questionyu
2023-02-12 20:16:40 +08:00
OpenWrt 的话不是问题,我还头疼我的 Linksys 没法写防火墙规则呢。
举个例子,通过观察多次拨号后地址变化,得知我的设备地址总是这么个形式:
2409:123:xxx:xxx:1234:5678:1234:5678 (其实这个就是 SLAAC 的规律)
那么在 OpenWrt 中就可以这么写:
::1234:5678:1234:5678/::ffff:ffff:ffff:ffff
这样的话前缀如何变也是没有关系的,总是针对我这一个设备的,不对其他设备有影响。
bigbbhh
2023-02-12 21:02:46 +08:00
为什么不根据 mac 地址写防火墙呢?
yyysuo
2023-02-12 22:01:22 +08:00
关注,重启一下主路由,局域网内有 ipv6 的设备上网都不正常的了,必须要重启 ap 才可以。
465456
2023-02-12 22:38:11 +08:00
@evalfun 我也一样,公网 IPv4 ,openwrt 防火墙设置关闭 ipv4 和 ipv6 的 ping ,再开放 ipv6 某个端口自己使用
1423
2023-02-12 22:54:29 +08:00
服务机器不要用 SLAAC , 也不需要 ULA
如果有前缀委托,服务机配置 static DHCP 分配固定 ipv4 和 ipv6
而且一般我习惯 v6 地址后缀跟 v4 地址一样, 如图


ipv6 防火墙也是像我一样配置即可,可以看命中数目确认已生效


关于 openwrt 的 ipv6 配置,我推荐下面这个视频,只需要 25 分钟,你就掌握了一辈子都用得到的,永远不会再困惑的技能!

以上内容我都是从这个视频学到的。为了感谢这个 up ,我才在这里答疑
<amp-youtube data-videoid="LJPXz8eA3b8" layout="responsive" width="480" height="270"></amp-youtube>
Tweak7136
2023-02-12 22:57:16 +08:00
@yyysuo 只是要上网的话,把 dhcp 的租期设置成 2m 就可以了。slaac 的话,openwrt 默认应该就是正常工作的,前缀会自己标记 Deprecated 。
Tweak7136
2023-02-12 22:59:29 +08:00
@Tweak7136 旧的前缀设备会自己标记 Deprecated ,时间到了就释放了。
1423
2023-02-12 23:00:20 +08:00
上面有人说 DHCPV6 更新不及时,mac 是支持手动更新的(系统设置 DHCP 续租),也可以配置更短的 DHCP 租期来解决。
偶尔遇到 ipv6 地址没更新,我一般是用 iStat Menus 的 “更新 DHCP 租借时间” 来解决
LnTrx
2023-02-13 00:09:56 +08:00
这是 RFC7217 定义的安全机制 stable privacy addresses 。如果是本来就暴露的纯服务端,SLAAC 的随机性没啥意义,那设成固定就好。

对于 SLAAC 有意义的一般设备,个人还是推荐把防火墙的重点转移到终端而非网关。
yyysuo
2023-02-13 00:41:57 +08:00
关注,重启一下主路由,局域网内有 ipv6 的设备上网都不正常的了,必须要重启 ap 才可以。
@Tweak7136 能解决我主路由重启几次,局域网内设备就分配到几个 ipv6 地址的问题么?
wwbfred
2023-02-13 03:34:05 +08:00
@1423 不行,你发的这个是德国经验,国内绝大多数的前缀都是动态的,基本上是几十个小时左右就会和 IPV4 一起变,这样不用 ULA 会产生非预期行为,比如在某段时间使用别人家前缀下的 IP ,并且你的局域网设备没有任何一个固定 IP 地址。
同时静态分配也会失效,路由器必须通过某种方式告诉下属设备前缀变了。在 Openwrt 下,DHCPv6 不能很好地处理这个问题,会直接导致前缀改变的情况下 IPV6 设备断网,所以只有用 SLAAC ,把之前 IP 的生存期调零,然后让设备自己决定自己的地址。
wwbfred
2023-02-13 03:40:20 +08:00
@1423 调租期属于扬汤止沸行为,治标不治本,很不美观。没有必要的理由,尽量不要使用这种妥协方案,建议 OP 用户使用 SLAAC 解决这个问题。
lslqtz
2023-02-13 07:04:23 +08:00
我自己一直使用 DHCPv6, 原因是因为某天看 IP 地址时发现有很多个无效 IPv6 地址, 最后发现 SLAAC 获得的地址即使失效了似乎也不会自动被释放. 就这一两年的体验来看, 基本没有什么大问题 (个人习惯使用超短租期), 但是 @wwbfred 提到的现象确实是存在的. 在租期未到期时, 设备可能会选择释放无效的 IPv6 地址进入单栈真空期, 也有可能不释放并导致这段时间的 IPv6 请求全部 Timeout.
关于静态地址分配, DHCPv6 可以保证后缀不随前缀变化, 但 OpenWrt 使用的 odhcpd 有问题, 会给一个设备的不同 NIC 以相同 DUID 分配相同的地址.
lslqtz
2023-02-13 07:07:44 +08:00
如果是要写防火墙, 我不太懂防火墙, 但是也许你可以针对接口和前缀开头几位 (例如 240e 等) 提高范围而不是具体的地址段写?

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

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

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

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

© 2021 V2EX