Azure虚拟机内网IP使用RFC1918标准的内部地址空间,限定在以下地址空间内:


10.0.0.0/8

10.0.0.0-10.255.255.255


172.16.0.0/12

172.16.0.0-172.31.255.255


192.168.0.0/16

192.168.0.0-192.168.255.255


在子网划分时就会涉及RFC1918标准的理解,为此很多非网络工程师很是苦恼,我们这样来帮助他们理解,/x就表示子网掩码换算成二进制,从左至右数总共有x个1。

Azure虚拟网络基于RFC1918的子网划分_第1张图片

做了这样的转化之后,我们就可以用子网掩码来帮用户理解问题。使用下面的知识可以很快了解子网掩码的工作原理:


Azure虚拟网络基于RFC1918的子网划分_第2张图片


【一】根据主机数计算子网掩码

一个公司有666台电脑,组成一个对等局域网,子网掩码设多少最合适?

 

A类地址可以容纳1670多万台主机,

B类地址可以容纳65000多台主机,

C类地址可以容纳254台主机

 

所以B类暂时看来比较合适

 

但是B类默认子网掩码255.255.0.0,二进制11111111.11111111.00000000.000000002^16-2=65536-2=6553465534台主机,太多了。

 

想办法缩小范围,粗略算一下

2^9=512

2^10=1024

1024>666>512

 

那么就选择2^10的比较合适,那么子网掩码最后10位为0

 

11111111.11111111.11111100.00000000

 

十进制255.255.252.0

 

子网掩码255.255.252.0合适

 

【二】利用子网掩码判断IP地址是否相同网段

 

先了解两个概念:

 

1)网络标识

 

IP 192.168.0.1

子网掩码255.255.255.0

 

 

二者作“与”运算

11000000.10101000.00000000.00000001

11111111.11111111.11111111.00000000

 

获得

11000000.10101000.00000000.00000000

192.168.0.0即为网络标识

 

2)主机标识

 

IP 192.168.0.1

子网掩码反码00000000.00000000.00000000.11111111

 

二者作“与”运算

11000000.10101000.00000000.00000001

00000000.00000000.00000000.11111111

 

获得

00000000.00000000.00000000.00000001

0.0.0.1即为主机标识

 

进入正题:要想在同一网段,必须做到网络标识一样,也就是(1)部分运算得到一样的结果

 

例如

两个IP

138.138.0.111

138.138.3.222

子网掩码

255.255.254.0

 

请判断这两个IP是否在同一个网段内?

 

两种办法

1)分别于子网掩码“与”运算

138.138.0.111

10001010.10001010.00000000.01101111

11111111.11111111.11111110.00000000

获得网络标识

10001010.10001010.00000000.00000000

 

138.138.3.222

10001010.10001010.00000011.11011110

11111111.11111111.11111110.00000000

获得网络标识

10001010.10001010.00000010.00000000

 

两个网络标识倒数第十位不一样,所以他们不再同一个网段。

 

2)计算一个IP的所在网段的所有地址

 

138.138.0.111

255.255.254.0

 

10001010.10001010.00000000.01101111

11111111.11111111.11111110.00000000

 

观察子网掩码,要想确保网络标识一样,IP要这样

10001010.10001010.0000000x.xxxxxxxx

这个地址包含:

138.138.0.x

138.138.1.x

 

那么138.138.3.222明显不在这两个地址范围内,所以不在同一个网段。

 

【三】实战

公司有666台主机,IP和子网掩码设置成多少合适?

 

666台主机,我们之前已经计算好要选择BIP地址和子网掩码选择255.255.252.0

 

我们这样选择:

IP 172.16.x.x

子网掩码255.255.252.0

 

以下xy均为0或者1

 

10101100.00010000.yyyyyyzz.xxxxxxxx

11111111.11111111.11111100.00000000

 

根据子网掩码,y是可以随便填的,我们就全填0了,

 

10101100.00010000.000000zz.xxxxxxxx

 

再赋值给z

 

10101100.00010000.00000000.xxxxxxxx

10101100.00010000.00000001.xxxxxxxx

10101100.00010000.00000010.xxxxxxxx

10101100.00010000.00000011.xxxxxxxx

 

172.16.0.x

172.16.1.x

172.16.2.x

172.16.3.x

 

那么这4个个IP段,每段都有254IP地址可以分配,其实总共是1024-2=1022IP地址可用,包含了客户的所需求666IP地址。