嘟嘟社区

如何在开启slaac的情况下不让指定设备获取ipv6


网上找了很多方案,都是需要关闭slaac,开启dhcpv6才行,比如:

https://v2ex.com/t/664819 (需要使用dhcpv6) 和 https://v2ex.com/t/736920 (需要关闭slaac)

这样安卓就无法获取ipv6了(因为安卓只支持slaac不支持dhcpv6)。有什么办法使用slaac但是不让某个设备获取ipv6么?

而dhcpv6一直是不支持的,而且是won’t fix:

《现在是2020年了,Android的IPv6仍然是坏的》
http://www.diglog.com/story/1003742.html

《Support for DHCPv6 (RFC 3315)》(Android官方IssueTracker,状态为Won’t fix)
https://issuetracker.google.com/issues/36949085

《Android 支持 DHCP 获取 IPv6 了吗?》(结论是只支持slaac,不支持dhcpv6)
https://v2ex.com/t/799284

  1. 因为安卓只支持slaac不支持dhcpv6

复制代码

支持啊

支持slaac?确实支持啊。但找到的方案都要关闭slaac,只用dhcpv6。

musicapple 发表于 2022-2-16 23:49
而dhcpv6一直是不支持的,而且是won’t fix:

《现在是2020年了,Android的IPv6仍然是坏的》

抱歉,我一直认为我的设备是dhcp下发的
重新看了下网关的配置,我关闭了dhcpv6仅用slaac
不过上游一直不修,可能考虑到用dhcpv6是个过渡期,最终都得走向slaac吧

我没这方面的需求,但是如果真的是没别的办法的话,可尝试屏蔽slaac的RS-RA过程?
网关上做防火墙,屏蔽来自该安卓设备mac地址的目的地址是ff02::1,这个RS一定会用到的组播地址的所有报文来禁止它获取,但是这样太麻烦了

emptysuns 发表于 2022-2-17 17:23
抱歉,我一直认为我的设备是dhcp下发的
重新看了下网关的配置,我关闭了dhcpv6仅用slaac
不过上游一直不 …

这样没用,就像 https://v2ex.com/t/736920 中说的那样:

ra 会定期广播的,所以就算你用 ip6tables 阻止了来自安卓设备的 rs 也没用,广播时间一到安卓设备还是会收到 ra

本帖最后由 emptysuns 于 2022-2-17 00:32 编辑

musicapple 发表于 2022-2-17 00:27
这样没用,就像 https://v2ex.com/t/736920 中说的那样:

尝试ip6tables 阻止对该设备发RA?(
话说回来,为什么不想让他获取v6呢