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。
做了这样的转化之后,我们就可以用子网掩码来帮用户理解问题。使用下面的知识可以很快了解子网掩码的工作原理:
【一】根据主机数计算子网掩码
一个公司有666台电脑,组成一个对等局域网,子网掩码设多少最合适?
A类地址可以容纳1670多万台主机,
B类地址可以容纳65000多台主机,
C类地址可以容纳254台主机
所以B类暂时看来比较合适
但是B类默认子网掩码255.255.0.0,二进制11111111.11111111.00000000.00000000,2^16-2=65536-2=65534,65534台主机,太多了。
想办法缩小范围,粗略算一下
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台主机,我们之前已经计算好要选择B类IP地址和子网掩码选择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段,每段都有254个IP地址可以分配,其实总共是1024-2=1022个IP地址可用,包含了客户的所需求666个IP地址。