由于最终用户通常至少拥有 2**64 个 IPv6 地址,因此阻止单个 IPv6 地址似乎毫无意义,我们需要阻止一个范围,该范围标识一个“站点”。
在此上下文中,“站点”类似于家庭或小型办公室用户。RFC 6177 讨论了小型站点的地址块分配:
... 为家庭站点提供单个 /64 可能很诱人,因为与今天的 IPv4 实践相比,这已经是更多的地址空间。
但是,这排除了家庭站点将来支持多个子网的预期。因此,强烈建议家庭站点默认拥有多个子网空间。因此,本文档仍建议为家庭站点提供远多于单个 /64 的空间,但也不建议为每个家庭站点提供 /48。
话虽如此,我在网上讨论中看到,/64 和 /56 都是家庭用户的常见分配。
如果我阻止了 /64,而攻击者有一个 /56,那么他们就有 255 个子网可以攻击我。
相反,如果我封锁 /56,而 ISP 分配了 /64 的区块,我可能还会排除其他 255 名用户。现在,如果考虑随机分布,随机排除 255 个网站实际上影响流量的可能性非常低。但是,从定义上讲,它并不是随机的。从这个意义上讲,我可以封锁我的网站受欢迎的一小片地理区域。
我使用了阻塞的例子,但实际上这是一个更普遍的问题,它延伸到速率限制、分析等等。
简而言之,标识“站点”的最佳前缀大小是多少?对此有任何指导原则吗?
答案1
最好的算法是开始阻止单独的地址。然后,当多个地址在同一个 /64 中被阻止时,您阻止整个 /64。对于更大的聚合重复此操作。
前缀通常以半字节边界给出(4 的倍数或一个十六进制数字)。您可能希望从 /64 扩展到 /60、/56、/52 和 /48。/48 通常是为单个站点提供的最大前缀。
根据您的谨慎程度,您可以从 /64 直接跳到 /56 和 /48。
根据您所在的地区,您还可以使用区域互联网注册中心 (RIR) 的公共数据库。在 RIPE 数据库中,互联网提供商记录了他们向当地客户提供的聚合大小。在这种情况下,您确切地知道要使用什么大小。