如何验证无效的 CIDR 块?

How to validate an invalid CIDR block?

我为我的 VPC 保留了以下 CIDR -> 10.0.0.0/22

这告诉我,我的主机 ips 或 1,024 地址还有 10 位剩余。我试图计算有效地址的 范围 ,因为亚马逊在创建新的私有子网时要求提供有效的 IPv4 CIDR 块。

我认为 6/8 位取自第三个八位位组,最后一个八位位组全为 0,这导致我的 IP 范围为 10.0.0.0 -> 10.0.3.255

当我来到屏幕上实际选择我的 IPv4 CIDR 块时,我得到了一个 "Invalid error",这只是在验证我不明白数学实际上是如何工作的。我输入 10.0.2.1/28 会产生 Must be valid Ipv4 CIDR 错误。

我的思考过程:

这看起来在我计算的范围内,我希望我的私有子网保留 16 个 IP 地址。

我做错了什么?

您从 VPC 10.0.0.0/22 开始。您是正确的,有效的寻址范围是 10.0.0.0 -> 10.0.3.255.

现在您想使用 /28 CIDR 块从此 VPC 创建一个子网。 /28 表示最后四位为 0,范围为 0 -> 15。CIDR 块必须始终从它们自己的边界开始。 /28 的示例:

10.0.0.0 -> 10.0.0.15

10.0.0.16 -> 10.0.0.31

您尝试使用 CIDR 块 10.0.2.1/28 创建子网。这是无效的,因为它不是从 /28 的有效 CIDR 范围内的偏移量 0 开始。您可以创建一个有效的子网,如 10.0.2.0/28 或 10.0.2.16/28 等。请注意每个子网的开头如何将最后四位设为 0。

查看任何子网的快速方法,主机部分从 0 开始并以全 1 结束。

我只想告诉你选择网段的规则如下:

  1. 所有IP地址应该是连续的。
  2. 您可以获得的IP数量是2的幂n
  3. 块中的第一个 IP 地址应能被块的大小整除,即 (2n).

第三点很重要,也与第二点相关。

10.0.2.1/28 - It is not the proper CIDR block ID.

这里的第 3 点没有遵循。