2.2.5 计算IP地址
说明:针对全0和全1网段(指在划分子网中,借主机号产生的子网号部分全为0和全为1的两个网段,如192.168.1.0/27和192.168.1.224/27这两个网段)在RFC1009中规定不能使用,但在Cisco中默认可以使用全1网段的(输入命令IP subnet-zero后,也允许使用全0网段)。因此,本书为了让读者理解更方便,叙述更简洁,后面所有举例默认全0和全1网段可以使用。如果读者在网络工程中碰到这个问题,可根据具体要求来解决。
IP地址非常重要,读者务必理解透彻,在网络工程中,需要经常对IP地址的分配进行规划,下面通过例题的方式,从易到难来讲解有关IP地址计算的问题。
1.判断IP地址是否可分配使用
例3 以下哪一个是可分配的标准B类IP地址?
A.1.1.1.1
B. 135.34.43.255
C. 222.2.255.255
D. 188.23.255.255
E.136.258.23.64
F. 12.22.255.255
G. 224.0.0.5
分析:一个IP地址是可分配的标准B类地址,必须同时满足以下条件。
1)第一个十进制数的范围在128~191之间。
2)标准B类IP地址前16位为网络号,后16位为主机号,要求网络号和主机号不能全0和全1。
3)要求每个十进制数的大小在0~255内。
从上面这些条件可知,只有B正确。
答案A中,1.1.1.1是一个合法的A类地址,不要误认为它各位全为1,因为这是一个十进制形式的IP地址,如果用二进制表达,则为00000001.00000001.00000001.00000001。
答案C中,从第一个字节为222来看,应是一个C类地址,由于C类地址最后8位为主机号,该地址的最后一个数为255,换为二进制为11111111,因此,这是一个C类的广播地址,不能分配给主机使用。
答案D,其主机号全为1,因此是一个B类的广播地址,不能分配使用。
答案E,它里面有一个258,超出了255,因此它不是一个有效的IP地址。
答案F,从第一个字节为12可知,应是A类地址,A类地址前8位为网络号,后8位为主机号,都不全0或全1,因此是一个合法的A类地址。
答案G,第一个字节为224,所以是一个D类的组播地址(该地址是一个路由协议的组播地址)。
2.计算子网数和地址数
例4 将一个C类网络划分子网,子网掩码长度为27位,能划分多少个子网?每个子网内能有多少个可分配的IP地址?
分析:标准C类网络的网络号部分为24位,划分后的子网掩码长度为27位,因此有27-24=3位是使用了主机号部分的高比特位来划分的子网,可划分23=8个子网;由于标准的C类网络最后8位是主机号部分,现使用3位来划分子网,还余5位作为子网的主机号,因此每个子网内可分配的IP地址数为25-2=30个,如图2-10所示。
图2-10 计算子网数和地址数
例5 给定一个子网掩码为255.255.248.0的A类网络,能划分多少个子网?每个子网内有多少个可分配的IP地址?
分析:思路同上,此掩码长度为21,可划分的子网数为221-8=213个,每个子网的主机位有33-21=11位,因此第个子网内可分配的IP数为211-2=2046个。
3.判断两个IP地址是否在同一个子网内
例6 判断IP地址210.23.4.90/26和210.23.4.125/26是否在同一个子网内。
分析:判断IP地址是否在同一个子网内,主要是看这两个IP地址的子网号是否相同。
采用26位作为子网掩码长度,则每个子网中主机位长度为6位,如表2-9所示。
表2-9 采用位方式分析
分析可见,这两个IP地址的子网号相同,因此在同一个子网内。
注意:像这种采用位方式的分析速度太慢,可以在此原理的基础上使用一种更快的方法,见下面例7和例8的分析过程。
4. 计算一个IP地址的网络地址、广播地址,及所在子网能容纳的最大主机数
例7 已知IP地址159.34.58.217/27,计算出它的网络地址、广播地址,及所在子网能容纳的最大主机数。
分析:1)根据掩码长度,找出关键字节。一个IP地址有4个字节,关键字节指掩码长度所在的那一个字节,这里掩码长度为27,在第4字节,这样第4字节为关键字节,计算时就不必去理会前3个字节,最后直接照写即可。
2)从这个IP地址的子网掩码,可以求出每个网段的最大地址容量作为步长。这里是27位长的子网掩码,表示主机号有5位,最大主机容量25=32个(为了计算方便,不必去减2),因此,这里的步长就是32。
3)对最后一个字节按步长的整数倍分段。从0开始,一直到255,可分为0—32—64—96—128—160—192—224—256。
4)将所求IP地址的关键字节的数值与分段对照,看它属于哪一段。显然,这里它属于192—224段。
5)得出结论。把224结合前3个字节,写成159.34.58.192,这就是该IP地址的网络号。须记住:下一个子网的网络号减1就是该IP地址所在子网的广播地址。因此,159.34.58.223就是该网段的广播地址,且因为主机号为5位,所以最大主机数为25-2=32-2=30。
例8 针对IP地址159.34.58.217/20,计算出它的网络地址、广播地址,及所在子网能容纳的最大主机数。
分析:步骤同上,只是这里关键字节为第3个,计算时只须针对第3个字节计算即可,它的步长为224-20=24=16。注意,由于掩码落在第3个字节内,因此计算步长时就是用三个字节长度去减掩码长度。所以分段为0—16—32—48—64—80—96—112—128—144—160—176 —192—208—224—240—256,这里关键字是58,58属于48—64段,因此得出如下结论。
① 该IP地址所在子网的网络地址为159.34.48.0。这里后面主机号为0才表示网络地址。
② 该IP地址所在子网的广播地址为159.34.63.255。这里为什么不是159.34.63.0?因为下一个网络号为159.34.64.0,它减1是在第4个字节减1,所以是159.34.63.255。
③ 该网络的主机号为32-20=12位,因此最大主机数为212-2=4094个。
子网掩码长度在8—16之间的,计算方法与上述类似,在此不再赘述。
注意:其实在分段时,计算出每段大小之后,不必把每个分段都算出来。本例中可直接去找58附近的两个能整除16的数,一个数小于58,另一个大于58,这两个数分别为48和64,58就属于48—64段,所以159.34.48.0就是该IP地址的子网号,159.34.63.255就是广播地址。
现在再回去看例6,可以知道采用26位的子网掩码,每段大小为64,关键字节90和125均落在64—128段内,因此这两个IP地址属于同一个子网。这种方式可以一次判断多个IP地址是否落在同一个子网内。
5. IP地址的分配设计
例9 将一个C类网络192.168.0.0划分为四个不同的网段,分别给一个企业的4个部门使用,要使每个部门得到的IP地址数相等,应该如何进行子网划分?假设4个部门中有一个部门有80台主机,有一个部门有50台主机,有两个部门有20台主机需要上网,这样划分能满足吗?应该如何划分子网?
分析:先看第一个问题,使4个部门的IP地址数相等,只须将192.168.0.0划分成4个相等大小的子网即可。由于划分子网是从主机号部分的高比特位进划分的,要划成4个子网,需使用2个位,可产生192.168.0.0/26、192.168.0.64/26、192.168.0.128/26、192.168.0.192/26 4个子网,每个子网中的主机号有6位,最多提供26-2=62个IP地址。
对于第二个问题,判断能否满足要求,关键要看需要IP地址最多的子网,有一个部门至少要80个IP地址,显然不能满足要求,因此需采用VLSM来划分。划分方法可参见“2.2.3可变长子网掩码”一节内容。
例10 将一个B类网络172.16.0.0划分子网,每个子网要求提供的IP地址数为480个,可以划分出多少个子网?每个子网的掩码长度是多少?
分析:要满足每个子网所需的地址数为480个,由于28<480<29,因此主机号为9位,在B类网络中,后16位为主机号,因此,还有16-9=7位用于划分的子网号,所以可以划分出27=128个子网,各子网掩码长度为B类的网络号位数16加上划分的子网号位数7,即23位。