关于第二个条件,更“更具体”是什么意思?
这意味着面具更长。较长的掩码比较短的掩码更具体。最长的 IPv4 掩码是/32
,它是最具体的 IPv4 地址,因为它标识了一个一直到主机的地址。
10.1.2.0/24 是 10.1.0.0/24 的子前缀吗?
不。
决定一个前缀是否是另一个前缀的子前缀的规则是什么?
如果用最短的掩码屏蔽两个地址,您将发现它们是否共享一个公共网络。这是 IP 寻址(IPv4 和 IPv6)的基础。甚至主机也会这样做来确定目标地址是否与主机本身在同一网络中。主机需要知道它是否可以将流量直接发送到目的地(同一网络),或者是否必须将其发送到其配置的网关(不同网络)。
这个问题有一个很好的答案,解释了如何进行 IP 数学。Server Fault上还有一个答案,演示了检查两个地址以确定是否存在公共网络。
在你的情况下:
10.1.2.0 -> 00001010000000010000001000000000
255.255.255.0 -> 11111111111111111111111100000000
AND -> ================================
Network -> 00001010000000010000001000000000 = 10.1.2.0
10.1.0.0 -> 00001010000000010000000000000000
255.255.255.0 -> 11111111111111111111111100000000
AND -> ================================
Network -> 00001010000000010000000000000000 = 10.1.0.0
生成的两个网络地址不匹配:10.1.2.0
<> 10.1.0.0
。
编辑:
你改变了问题,现在你有一个不同的问题,有不同的答案。
10.1.2.0/24 是 10.1.0.0/16 的子前缀吗?
是的。
在你的情况下:
10.1.2.0 -> 00001010000000010000001000000000
255.255.0.0 -> 11111111111111110000000000000000
AND -> ================================
Network -> 00001010000000010000000000000000 = 10.1.0.0
10.1.0.0 -> 00001010000000010000000000000000
255.255.0.0 -> 11111111111111110000000000000000
AND -> ================================
Network -> 00001010000000010000000000000000 = 10.1.0.0
生成的两个网络地址匹配:10.1.0.0
= 10.1.0.0
。