我创建了一个地址空间为 10.1.0.0/16 的 VN 和一个 10.0.1.0/24 的子网。我收到地址空间错误。我尝试了 VN 10.0.0.0/24 并且成功了。我想知道为什么?为什么第一个子网失败而第二个子网通过了?这个地址空间是如何定义的?
1 回答
Azure 虚拟网络和子网使用CIDR表示法。这允许您表示网络路由所需的重要位部分。
例如,IPv4 地址192.168.1.0/24
的网络掩码为255.255.255.0
,这表示前 24 位被认为是重要的。这意味着我们不能混合使用 和 之类的两个地址192.168.0.0
,192.168.1.0
因为前 24 位不匹配。
我们可以查看二进制表示以确保:
192.168.0.0 => 11000000 10101000 00000000 00000000
192.168.1.0 => 11000000 10101000 00000001 00000000
这表明两个 IPv4 地址之间的第 24 位不匹配。但是,我们可以将地址空间更改为192.168.0.0/23
,两个地址将匹配,因为前 23 位相同,这也意味着网络掩码将是255.255.254.0
。
综上所述,CIDR 让我们能够更好地控制如何将连续的 IP 地址块重叠在一起。
您的第一个虚拟网络地址空间10.1.0.0/16
需要与网络掩码共享相同前 16 位的子网255.255.0.0
。子网地址空间喜欢10.1.1.0/16
或10.1.0.0/16
将在这里工作。10.0.1.0/24
在这里不起作用,因为它不与虚拟网络地址空间重叠。
您的第二个虚拟网络地址空间10.0.0.0/24
需要与网络掩码共享相同前 24 位的子网255.255.255.0
。子网地址空间喜欢 10.0.0.1/24
或10.0.0.2/24
将在这里工作。10.0.1.0/24
在这里不起作用,因为它不与虚拟网络地址空间重叠。
当子网地址空间与虚拟网络地址空间不匹配时,我们可以在 Azure 门户中验证子网错误。我在下面包含了一个屏幕截图。