我过去的一次考试中有一个问题说:“一个IP运营商已经收到了这些IP地址:
•192.168.1.0/26 •192.168.1.96/27 •192.168.1.128/27 •192.168.1.160/27
Q:对可以求和的网络求和。”
因此,我尝试对所有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)相加呢?
答案 0 :(得分:0)
要理解该问题,您需要以二进制而不是十进制表示法考虑地址。请记住,斜杠后缀指定网络地址中的位数。要合并,两个块必须在地址的网络部分(最低部分)上匹配。这意味着它们在数值上是相邻的网络,但是在数值上相邻的网络中只有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位匹配。
如果您有三个相邻的网络(具有相同的子网掩码长度),那么中间的一个肯定可以与它的一个邻居合并,并且绝对不能与另一个邻居合并。