我们正在 AWS 规则中指定 CIDR 地址,但我遇到了一些我不明白的事情。
/32
表示一个地址。所以10.0.0.0/32
只表示一个地址10.0.0.0
。但以 结尾的地址.0
是广播地址,对吗?所以实际上,这个地址表示范围内的任意地址10.0.0.1 - 10.0.0.255
。
/24
表示 255 个地址。因此 10.0.0.1/24 表示范围内的任何地址10.0.0.1 - 10.0.0.255
。(我在这里不使用,10.0.0.0/24
因为这包括我们上面得到的 .0“扩展”,我试图与之形成对比。)
.0/32
上述表述正确吗?和之间的有效区别是什么.1/24
?
编辑
我确实可能非常困惑,并且我感谢你们帮助我消除困惑的努力。
我对 .0 地址在某种程度上特殊的困惑源于我的同事告诉我它是如此。我们在 AWS 集群上设置了一条规则,允许来自 10.0.1.0/32 的连接,并且它似乎允许来自 10.0.1.25 的连接。还有其他解释吗?
编辑2
事实证明我的同事错了,甚至向我报告了他在新 AWS 规则中使用的地址和子网。抱歉造成混淆。如果我可以删除这个问题,我会的。
答案1
您肯定没有正确掌握 CIDR。
广播地址的定义不是以 .0 结尾的地址。它是所有主机位都设置为零的地址。在 /32 中,没有主机位。/32 甚至不是现实世界的网络地址。毫无疑问,它被用来表示写的数字实际上是 IP 主机地址。
答案2
您的网络有点混乱。所有主机位都设置为 0 的 IPv4 IP 地址是网络地址。所有主机位都设置为 1 的 IPv4 IP 地址是广播地址。IPv4 主机 IP 地址中的 .0 或 .255 完全有效,具体取决于使用的子网掩码。造成这种混乱的原因在于太多的书籍、学校和教师恳求学生“永远不要在主机 IP 地址中使用 .0 或 .255!”——因为教这些比教它们如何以及何时完全有效更容易。