虚拟机的地址 space 中不包含子网

Subnet is not contained within the adress space for the vm

我创建了地址为 space 10.1.0.0/16 的 VN 和 10.0.1.0/24 的子网。我收到地址 space 错误。我试过 VN 10.0.0.0/24 并且有效。我想知道为什么?为什么第一个子网失败而第二个子网通过了?这个地址space是怎么定义的?

Azure 虚拟网络和子网使用 CIDR 表示法。这允许您表示网络路由所需的有效位部分。

例如,IPv4 地址 192.168.1.0/24 的网络掩码为 255.255.255.0,这表示前 24 位被认为是重要的。这意味着我们不能混合使用 192.168.0.0192.168.1.0 这样的两个地址,因为前 24 位不匹配。

我们可以查看二进制表示以确保:

  • 192.168.0.0 => 11000000 10101000 00000000 00000000
  • 192.168.1.0 => 11000000 10101000 00000001 00000000

这表明第 24 位在两个 IPv4 地址之间不匹配。然而,我们可以将地址 space 更改为 192.168.0.0/23,并且两个地址将匹配,因为前 23 位相同,这也意味着网络掩码将是 255.255.254.0

综上所述,CIDR 使我们能够更好地控制如何将连续的 IP 地址块重叠在一起。

10.1.0.0/16 的第一个虚拟网络地址 space 需要与 255.255.0.0 的网络掩码共享相同的前 16 位的子网。子网地址 space 如 10.1.1.0/1610.1.0.0/16 可以在这里使用。 10.0.1.0/24 在这里不起作用,因为它不与虚拟网络地址 space 重叠。

10.0.0.0/24 的第二个虚拟网络地址 space 需要子网与 255.255.255.0 的网络掩码共享相同的前 24 位。子网地址 space 如 10.0.0.1/2410.0.0.2/24 可以在这里使用。 10.0.1.0/24 在这里不起作用,因为它不与虚拟网络地址 space 重叠。

当子网地址 space 与虚拟网络地址 space 不匹配时,我们可以在 Azure 门户中验证子网错误。我在下面附上了一张截图。