我得到了一个脚本,该脚本将创建一个具有以下 IP 范围(在 Azure 中)的虚拟网络:10.0.0.0/16。
然后,脚本继续在该网络中创建两个子网,其 IP 范围为:10.0.5.0/24 和 10.0.6.0/24。我的理解是,这意味着虚拟网络可以寻址 2^16 台主机,而虚拟网络上的子网可以寻址 2^24 台主机(?!)。子网的范围如何比它们所在的网络更大?
我得到了一个脚本,该脚本将创建一个具有以下 IP 范围(在 Azure 中)的虚拟网络:10.0.0.0/16。
然后,脚本继续在该网络中创建两个子网,其 IP 范围为:10.0.5.0/24 和 10.0.6.0/24。我的理解是,这意味着虚拟网络可以寻址 2^16 台主机,而虚拟网络上的子网可以寻址 2^24 台主机(?!)。子网的范围如何比它们所在的网络更大?
不是。CIDR 表示法中的位数是指地址中有多少网络位,而不是地址中有多少主机位。IPv4 地址是 32 位,因此您从 32 中减去网络位的数量以获得主机位的数量:
10.0.0.0/16 = 32 - 16 = 16 host bits = 2^16 host addresses
10.0.5.0/24 = 32 - 24 = 8 host bits = 2^8 host addresses
此外,对于 IPv4,您必须从主机地址* 的数量中减去 2 才能得出网络上可能的主机数量,因为您不能将网络地址和广播地址用作主机地址。
*除了/31和/32网络
请参阅此问题的优秀答案,了解子网划分的工作原理。