IPSec 的最大节点数?

信息安全 ipsec 隧道
2021-09-02 14:48:36

据我了解,对于通过 IPSec 传入的数据包,安全关联 (SA) 由 ESP 标头的 SPI 字段标识。

然后假设我有一堆节点,每个节点都希望能够使用 IPSec 隧道与其他节点通信(所以n节点,每个节点都与n-1其他节点通信)。如果是这种情况,SPI 值不能用于多个 SA,并且由于每对节点之间有 2 个 SA,并且由于 SPI 是一个 32 位字段,因此只能~65535在此类中存在节点是否正确配置?

如果是这样,有没有办法在这种配置中拥有更多节点?这种“配置”的实用性是另一回事。

1个回答

数学...... 32位。

2^32 / 2 != 65535

2^32 = 4,294,967,296
4,294,967,296 / 2 = 2,147,483,648

没有 IP 就无法获得 IPSec,而且 IP 在每个数据包中都定义了源地址和目标地址。您将始终拥有我们每个 SA 的来源/目的地。

这意味着您的限制是您与之通信的每个 IP 地址 4,294,967,296 或 2,147,483,648,因为您的软件可以跟踪分配给每个 IP 的 SA。

@eddie 在评论中澄清了这个答案。

@Kasperd 指出,有可能限制实际上是 2^32 而没有除以二。正如评论中所指出的,没有要求 SPI 在两个方向上不能相同,因为接收器可以看到对等 IP 地址。所以最大值可能更接近 4,294,967,296。

您还会注意到 2^32 是整个 IPv4 空间(不考虑全局可路由的空间),对于这个问题,您不会很快用完 SPI,而且我很确定其他限制(内存、带宽、等)会阻止你超过一个小得多的阈值。