首页 > 解决方案 > 地址聚合连续块,为什么有些地址无法使用?

问题描述

我过去的一次考试中有一个问题是:“IP 运营商收到了这些 IP 地址:

• 192.168.1.0/26 • 192.168.1.96/27 • 192.168.1.128/27 • 192.168.1.160/27

问:对可以求和的网络求和。”

因此,我尝试将所有 IP 地址相加,但事实证明,您只能将最后两个相加,因为不存在 192.168.1.64-95 范围内的地址。但是为什么你只能总结最后两个 (192.168.1.128/27, 192.168.1.160/27) 而不是最后三个 (192.168.1.96/27, 192.168.1.128/27, 192.168.1.160/27) ?

标签: networkingip-address

解决方案


要理解这个问题,您需要考虑二进制而不是十进制的地址。请记住,斜杠后缀指定网络地址中的位数。要组合,两个块必须在地址的网络部分的最低位之外的所有位置上匹配。这意味着它们是数字相邻网络,但只有 50% 的数字相邻网络是相邻的,因为它们的最低位不同。另一半时间,它们在其他一些方面也有所不同。这就是二进制计数的本质。

因此,例如,您可以将 10.0.2.0/24 和 10.0.3.0/24 组合成 10.0.2.0/23,因为它们在前 23 位上匹配。但是,您不能对 10.0.1.0/24 和 10.0.2.0/24 执行相同的操作,因为它们只匹配前 22 位。

如果你有三个相邻的网络(具有相同的网络掩码长度),那么中间的一个肯定可以与其邻居之一合并,而绝对不能与另一个合并。


推荐阅读