如何识别用户的所有 IPv6 地址

如何识别用户的所有 IPv6 地址

我开始觉得抓狂了,因为我已经用 20 种不同的方法搜索过这个问题,却一无所获。

我有一个网站,偶尔需要根据 IP 地址屏蔽用户,以防止滥用。使用 IPv4 时,这种方法效果很好,因为用户从其 ISP 获得的整个连接都被屏蔽了。(请注意,我还对 VPN 连接采取了不同的处理方式,以防止他们简单地跳转到 VPN。)

然而,IPv6 对此造成了真正的阻碍,因为每个用户并不是每次都从其 ISP 获得一个 IP。我看到过 IPv6 地址滥用的模式似乎很相似,但我不确定如何确切地判断它们是否来自同一个用户。

我知道每个 ISP 的做法可能略有不同,但在实践中有没有一种足够好的方法可以识别用户?

答案1

最安全的解决方案是自动扩展。例如:

  • 从阻止单个地址开始
  • 如果你发现 /64 块中超过 X 个地址存在违规,则整个 /64
  • 如果你发现 /56 块中超过 Y 个地址存在违规,则整个 /56
  • 如果你发现 /48 块中 Z 个以上地址的违规行为,则整个 /48

缺点是你需要多次违规才能完全阻止它们。优点是你可以最准确地阻止它们。你还增加了内部绕过阻止的难度。

还要记住,地址并不总是属于同一个用户。在家里,我的 IPv4 地址由几个用户 (DS-Lite) 共享,并且每天都在变化。IPv6 前缀也会随时间而变化,旧地址随后可以分配给不同的用户。因此,不要过分看重 IP 地址作为标识符的长期可用性。

相关内容