子网掩码的计算
下面就来以实例来说明子网掩码的算法:
对于无须再划分成子网的IP地址来说,其子网掩码非常简单,即按照其定义即可写
出:如某B类IP地址为 10.12.3.0,无须再分割子网,则该IP地址的子网掩码为
255.255.0.0。如果它是一个C类地址,则其子网掩码为 255.255.255.0。其它类
推,不再详述。下面我们关键要介绍的是一个IP地址,还需要将其高位主机位再作
为划分出的子网网络号,剩下的是每个子网的主机号,这时该如何进行每个子网的
掩码计算。
一、利用子网数来计算
在求子网掩码之前必须先搞清楚要划分的子网数目,以及每个子网内的所需主机数
目。
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,得到 255.255.248.0
即为划分成 27个子网的B类IP地址 168.195.0.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地址所能划分出的所有子网,其划分后的主机和子网占位数,以及
主机和子网的(最大)数目,注意要去掉保留的IP地址(即划分后有主机位或子网
位全为“0”或全为“1”的):
A类IP地址:
子网位 /主机位 子网掩码 子网最大数 /主机最大数
2/22 255.192.0.0 2/4194302
3/21 255.224.0.0 6/2097150
4/20 255.240.0.0 14/1048574
5/19 255.248.0.0 30/524286
6/18 255.252.0.0 62/262142
7/17 255.254.0.0 126/131070
8/16 255.255.0.0 254/65536
9/15 255.255.128.0 510/32766
10/14 255.255.192.0 1022/16382
11/13 255.255.224.0 2046/8190
12/12 255.255.240.0 4094/4094
13/11 255.255.248.0 8190/2046
14/10 255.255.252.0 16382/1022
15/9 255.255.254.0 32766/510
16/8 255.255.255.0 65536/254
17/7 255.255.255.128 131070/126
18/6 255.255.255.192 262142/62
19/5 255.255.255.224 524286/30
20/4 255.255.255.240 1048574/14
21/3 255.255.255.248 2097150/6
22/2 255.255.255.252 4194302/2
B类IP地址:
子网位 /主机位 子网掩码 子网最大数 /主机最大数
2/14 255.255.192.0 2/16382
3/13 255.255.224.0 6/8190
4/12 255.255.240.0 14/4094
5/11 255.255.248.0 30/2046
6/10 255.255.252.0 62/1022
7/9 255.255.254.0 126/510
8/8 255.255.255.0 254/254
9/7 255.255.255.128 510/126
10/6 255.255.255.192 1022/62
11/5 255.255.255.224 2046/30
12/4 255.255.255.240 4094/14
13/3 255.255.255.248 8190/6
14/2 255.255.255.252 16382/2
C类IP地址:
子网位 /主机位 子网掩码 子网最大数 /主机最大数
2/6 255.255.255.192 2/62
3/5 255.255.255.224 6/30
4/4 255.255.255.240 14/14
5/3 255.255.255.248 30/6
6/2 255.255.255.252 62/2
再根据CCNA中会出现的题目给大家举个例子:
首先,我们看一个考试中常见的题型:一个主机的IP地址是202.112.14.137,掩码
是255.255.255.224,要求计算这个主机所在网络的网络地址和广播地址。
常规办法是把这个主机地址和子网掩码都换算成二进制数,两者进行逻辑与运算后
即可得到网络地址。其实大家只要仔细想想,可以得到另一个方法:255.255.255.
224的掩码所容纳的IP地址有256-224=32个(包括网络地址和广播地址),那么
具有这种掩码的网络地址一定是32的倍数。而网络地址是子网IP地址的开始,广播
地址是结束,可使用的主机地址在这个范围内,因此略小于137而又是32的倍数的
只有128,所以得出网络地址是202.112.14.128。而广播地址就是下一个网络的网
络地址减1。而下一个32的倍数是160,因此可以得到广播地址为202.112.14.159。
可参照下表来理解本例。
子网络 2进制子网络域数 2进制主机域数的范围 2进制主机域数的范围
第1个子网络 000 00000 thru 11111 .0 thru.31
第2个子网络 001 00000 thru 11111 .32 thru.63
第3个子网络 010 00000 thru 11111 .64 thru.95
第4个子网络 011 00000 thru 11111 .96 thru.127
第5个子网络 100 00000 thru 11111 .128 thru.159
第6个子网络 101 00000 thru 11111 .160 thru.191
第7个子网络 110 00000 thru 11111 .192 thru.223
第8个子网络 111 00000 thru 11111 .124 thru.255
CCNA考试中,还有一种题型,要你根据每个网络的主机数量进行子网地址的规划和
计算子网掩码。这也可按上述原则进行计算。比如一个子网有10台主机,那么对于
这个子网需要的IP地址是:
10+1+1+1=13
注意:加的第一个1是指这个网络连接时所需的网关地址,接着的两个1分别是指网
络地址和广播地址。因为13小于16(16等于2的4次方),所以主机位为4位。而
256-16=240
所以该子网掩码为255.255.255.240。
如果一个子网有14台主机,不少人常犯的错误是:依然分配具有16个地址空间的子
网,而忘记了给网关分配地址。这样就错误了,因为:
14+1+1+1=17
17大于16,所以我们只能分配具有32个地址(32等于2的5次方)空间的子网。这时
子网掩码为:255.255.255.224
举例:
写出网络地址为172.16.0.0,子网掩码为255.255.192.0(/18)的子网数目,每个子网的主机数目, 每个子网的广播地址,每个子网的有效主机范围
192化作2进制 11000000后面的6个0加第四位的8个0
2的14次方 =16384 再减去2个特殊地址主机数 16382个
子网数 4
主机有效IP地址:
172.16.0.1 — 172.16.63.254
172.16.64.1 — 172.16.127.254
172.16.128.1 — 172.16.191.254
172.16.192.1 — 172.16.255.254
广播地址 172.16.63.255