去找公司运维问出口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地址是否与本地网络在同一个“市区”内。
以IPv4地址为例,其子网掩码通常是一个32位的数字,其中前一部分为连续的1,后一部分为连续的0。例如,常见的子网掩码有255.255.255.0、255.255.0.0、255.0.0.0等。其中,连续的1部分表示网络地址,连续的0部分表示主机地址。
当计算机需要发送数据到另一个IP地址时,它会将目标IP地址和子网掩码进行按位与运算。如果结果与自己所在的网络地址相同,则说明目标IP地址在同一个本地网络内;否则,说明目标IP地址在不同的网络中,需要将数据发送到默认网关进行转发。
子网掩码不能单独存在,必须结合IP地址一起使用。它的作用是将某个IP地址划分成网络地址和主机地址两部分。子网掩码是一个32位地址,用于屏蔽IP地址的一部分以区别网络标识和主机标识,并说明该IP地址是在局域网上,还是在广域网上。
在TCP/IP协议中,SUBNET MASK子网掩码)的作用是用来区分网络上的主机是否在同一网络取段内。在大型网络中,CLASS A的SUBNET MASK为255.0.0.0,CLASS B的SUBNET MASK为255.255.0.0,CLASS C的SUBNET MASK为255.255.255.0。
假设我们有一个192.168.1.1的IP地址,我们知道它的子网掩码是255.255.255.0。这意味着前三个八位组(24位)是网络部分,最后一个八位组(8位)是主机部分。因此,这个IP地址的网络部分是192.168.1,主机部分是1。
如果我们有一个192.168.1.2的IP地址,它的子网掩码也是255.255.255.0。这意味着它也在同一个网络段上,因为它们的网络部分(前三个八位组)相同。但是,这两个IP地址的主机部分是不同的,因此它们指向网络上的不同主机。
举几个例子,可以加深理解子网掩码的用途。
例子1:假设有一个IP地址为192.168.1.100,它的子网掩码为255.255.255.0。将这两个数值进行“与”运算后,得到的结果是192.168.1.0,这就是该IP地址所属的网络地址。通过这种方式,可以将一个IP地址划分成若干个子网,以便于网络管理员进行管理和控制。
例子2:假设一个网络中需要容纳100台主机,使用子网掩码255.255.255.0可以将该网络划分成256个子网,每个子网最多包含254台主机。这样就可以更好地管理和控制网络,提高网络的性能和安全性。
例子3:如果一个IP地址的子网掩码为255.0.0.0,说明它是A类IP地址。如果是255.255.0.0,则说明它是B类IP地址。如果是255.255.255.0,则说明它是C类IP地址。这些分类是依据子网掩码来进行的,而不同类别的IP地址拥有不同的网络标识和主机标识。
主机地址和网络地址
网络地址: 可以简单理解我们平时常说的网段 主机地址: 是在这个网段中不同设备的地址
子网掩码
子网掩码的作用:将 IP 地址划分成网络地址和主机地址两部分。
子网掩码是一个网络掩码,地址掩码,是用来指明 IP 地址的哪些标识是主机所在的子网,以及哪些标识是主机的位掩码,子网掩码不能单独存在,必须和 IP 结合使用。
A类的默认子网掩码 255.0.0.0
B类的默认子网掩码 255.255.0.0
C类的默认子网掩码 255.255.255.0
子网掩码的计算方式
子网掩码的位数决定可能的子网数目和子网的主机数目。
根据子网数
利用子网数来计算:在求子网掩码之前必须先搞清楚要划分的子网数目,以及每个子网内的所需主机数目。
将子网数目转化为二进制来表示 2.取得该二进制的位数,为 N 3. 取得该IP地址的类子网掩码,将其主机地址部分的前N位置1 即得出该IP地址划分子网的子网掩码。
如欲将B类IP地址168.195.0.0划分成27个子网:
- 27=11011
- 该二进制为五位数,N = 5
- 将B类地址的子网掩码255.255.0.0的主机地址前5位置1(B类地址的主机位包括后两个字节,所以这里要把第三个字节的前5位置1),得到 255.255.248.0
根据主机数
利用主机数来计算:
- 将主机数目转化为二进制来表示
- 如果主机数小于或等于254(注意去掉保留的两个IP地址),则取得该主机的二进制位数,为 N,这里肯定N<8。如果大于254,则 N>8,这就是说主机地址将占据不止8位。
- 使用255.255.255.255来将该类IP地址的主机地址位数全部置1,然后从后向前的将N位全部置为 0,即为子网掩码值。
如欲将B类IP地址168.195.0.0划分成若干子网,每个子网内有主机700台:
700=1010111100
该二进制为十位数,N = 10
将该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:
- 主机号:主机号+网络号=32,32-25=7
- 网络地址:当7位主机号全为0,也就是XX.XX.XX.128
- 广播地址:当7位主机号全为1,也就是XX.XX.XX.255
- 可用地址数量:7位主机号有2 ^ 7 种结果,但是要去掉网络地址和广播地址,即:2^7-2=126(这个也就是运维所说的一百多个ip)
总之,子网掩码是一种非常重要的概念,它用于区分网络上的主机是否在同一网络段上。这在构建和维护大型网络时非常有用,因为它可以帮助网络管理员更有效地管理和跟踪网络上的主机和设备。