子网掩码是一个32位地址,用于屏蔽IP地址的一部分以区别网络标识和主机标识,并说明该IP地址是在局域网上,还是在广域网上。其作用是:减少网络上的通信量;节省IP地址;便于管理;解决物理网络本身的某些问题。
什么是子网掩码
去找公司运维问出口ip,得到答复说:XX.XX.XX.128/25 这个网段一百多个ip都是我们的ip
内心:???100+的ip?这个25代表什么?应该是误把255打成25了吧!恩,对的,应该是想说XX.XX.XX.128到XX.XX.XX.255这差不多有100多个的!!
是问了问这个25是什么,运维大哥回答说这是子网掩码。 ?????
IP 地址分类
IP地址是一种在Internet上的给主机编址的方式,也称为网际协议地址。IP地址是IP协议提供的一种统一的地址格式,它为互联网上的每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物理地址之间的差异
A 类IP地址: 一个 A 类地址由1 字节的网络地址和3字节主机地址形成 B 类 IP地址: 一个B类地址由2字节的网络地址和2字节的主机地址形成 C 类 IP 地址: 一个C 类地址由3字节的网络地址和1字节的主机地址形成
在这里插入图片描述
- A类保留给政府机构(0.0.0.0到127.255.255.255)
- B类分配给中等规模的公司(128.0.0.0到191.255.255.255)
- C类分配给任何需要的人(192.0.0.0到223.255.255.255)
- D类用于组播(224.0.0.0---239.255.255.255)
- E类用于实验(240.0.0.0---247.255.255.255) A、B、C三类中IP地址=网络地址+主机地址,而D、E两类不区分网络地址和主机地址 特殊说明: (1)A类中的 10.X.X.X是私有地址;127.X.X.X是保留地址 (2)B类中的 172.16.0.0~172.31.255.255是私有地址 (3)C类中的 192.168.X.X是私有地址
主机地址和网络地址
网络地址: 可以简单理解我们平时常说的网段 主机地址: 是在这个网段中不同设备的地址
子网掩码
子网掩码只有一个作用:将 IP 地址划分成网络地址和主机地址两部分。
子网掩码是一个网络掩码,地址掩码,是用来指明 IP 地址的哪些标识是主机所在的子网,以及哪些标识是主机的位掩码,子网掩码不能单独存在,必须和 IP 结合使用。
A类的默认子网掩码 255.0.0.0
B类的默认子网掩码 255.255.0.0
C类的默认子网掩码 255.255.255.0
子网掩码的计算方式
子网掩码的位数决定可能的子网数目和子网的主机数目。
根据子网数
利用子网数来计算
在求子网掩码之前必须先搞清楚要划分的子网数目,以及每个子网内的所需主机数目。
1.将子网数目转化为二进制来表示 2.取得该二进制的位数,为 N 3. 取得该IP地址的类子网掩码,将其主机地址部分的前N位置1 即得出该IP地址划分子网的子网掩码。
如欲将B类IP地址168.195.0.0划分成27个子网:
1)27=11011
2)该二进制为五位数,N = 5
3)将B类地址的子网掩码255.255.0.0的主机地址前5位置1(B类地址的主机位包括后两个字节,所以这里要把第三个字节的前5位置1),得到 255.255.248.0
根据主机数
利用主机数来计算
1)将主机数目转化为二进制来表示
2)如果主机数小于或等于254(注意去掉保留的两个IP地址),则取得该主机的二进制位数,为 N,这里肯定N<8。如果大于254,则 N>8,这就是说主机地址将占据不止8位。
3)使用255.255.255.255来将该类IP地址的主机地址位数全部置1,然后从后向前的将N位全部置为 0,即为子网掩码值。
如欲将B类IP地址168.195.0.0划分成若干子网,每个子网内有主机700台:
1) 700=1010111100
2)该二进制为十位数,N = 10
3)将该B类地址的子网掩码255.255.0.0的主机地址全部置1,得到255.255.255.255
然后再从后向前将后10位置0,即为: 11111111.11111111.11111100.00000000
即255.255.252.0。这就是划分成主机为700台的B类IP地址168.195.0.0的子网掩码。
如何根据子网掩码计算网络地址和主机标识
子网掩码与IP地址一样是32位地址,然后将IP地址与子网掩码进行与运算即可得到网络地址
举个例子:
IP地址为192.168.10.2,子网掩码为255.255.255.240。
先将十进制转换成二进制:
IP地址: 11000000 10101000 00001010 00000010
子网掩码: 11111111 11111111 11111111 11110000
进行与运算:--------------------------
11000000 10101000 00001010 00000000
则可得其网络标识为192.168.10.0,主机标识为2。
XX.XX.XX.128/25
回到开头的,已经说过了子网掩码也是32位的地址,那么开头的25怎么转化呢?
25的意思是网络号为25,就代表连续的25个1,然后剩下的用0补齐
即11111111 11111111 11111111 10000000
(1)主机号:主机号+网络号=32,32-25=7 (2)网络地址:当7位主机号全为0,也就是XX.XX.XX.128 (3)广播地址:当7位主机号全为1,也就是XX.XX.XX.255 (4)可用地址数量:7位主机号有2 ^ 7 种结果,但是要去掉网络地址和广播地址,即:2^7-2=126(这个也就是运维所说的一百多个ip)