使用 IPv4 时,每当我发现任何奇怪的请求进入我的服务器时,我都可以轻松阻止 IPv4 进一步的请求(我可以在我的 iptablets 或我的.htaccess
文件中阻止...)。但是对于 IPv6 来说,这并不容易,因为更改 IP 地址非常简单,甚至更糟的是,很容易轮换数千个 IPv6 地址,从而在短时间内发出数千个来自不同 IP 地址的请求。
对于 IPv4 来说,这不是一个大问题,因为拥有/轮换数千个 IPv4 地址的成本非常高。即使是像 Linode 或 Digital Ocean 这样的公司,如果你开始在帐户中添加多个 IP 地址,他们也会向你提出很多问题(即使你为这些地址付费,他们也会向你提出很多问题,比如你是否使用这些地址发送垃圾邮件、进行 DDoS 攻击……)。
所以我的问题是:在 IPv6 地址中,是否有一些“部分”或“子字符串”(大部分是固定的),我可以可靠地将其列入黑名单,因为其他“部分”(会发生变化)可能来自同一个人或同一个网络?以这个地址为例:
2001:0db8:85a3:0000:0000:1111:2222:3333
从上面的地址,我能否判断,如果我阻止所有包含“2001:0db8:85a3:0000:0000:1111”的 IP,它可能来自同一个人/计算机?
谢谢你!
答案1
您永远无法 100% 确定,因为不同的 ISP 和托管服务提供商的做法不同(有时非常非常错误)。但一般来说,云提供商会为虚拟网络分配一个 /64,并且该虚拟网络中的每个 VM 都会以各种不同的方式从该 /64 中获取 IP 地址。租赁裸机(“专用”)服务器的提供商通常会为每台物理机器分配一个 /64。
对于家庭连接来说,情况会稍微复杂一些,但一般来说,除非用户更改了配置(很少有人这样做,因为大多数情况下是 IT 专业人员希望在家中使用超过 /64 的网络),否则他们的整个住所也将使用 /64。
因此,如上所述,阻止 /64 可能会除掉大多数知道如何轮换其 IPv6 地址的恶意行为者。
你可能会发现RFC 6177有趣的读物。主要作为基准来了解各种提供商的错误之处。