在10年上半年的软考题中,涉及到了网络地址的计算。而07-09这三年的软考题这方面没怎么涉及到,05年有网络地址计算的问题。从网上搜索了一下这方面的知识。感觉这篇博文讲解不错就粘过来了。
认真看一下对网络地址计算会有用的。
利用子网数来计算
ex1.如欲将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的子网掩码。
(*注*): 做此类题目的步骤为
- 将子网数目转化为二进制来表示
- 取得该二进制的位数,为 N
- 取得该IP地址的类子网掩码,将其主机地址部分的的前N位置 1 即得出该IP地址划分子网的子网掩码。
利用主机数来计算
ex2.如欲将B类IP地址168.195.0.0划分成若干子网,每个子网内有主机700台,问其子网掩码应该设为多少?
1) 700=1010111100
2) 该二进制为十位数,N = 10(1001)
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的子网掩码。
ex3.有一个IP地址为192.168.1.200,子网掩码是255.255.255.224,要求计算其网络地址、主机地址和广播地址。
解:把子网掩码换算成2进制,1对应的部分是网络地址,0对应的部分是主机地址,把主机地址各位全部变成1就是广播地址。
因此首先把255.255.255.224换算成2进制,就是11111111.11111111.11111111.11100000,然后把IP地址也换算成2进制,就是11000000.10101000.00000001.11001000,对他们进行求逻辑与运算,因此可以得到网络地址就是11000000.10101000.00000001.11000000,即192.168.1.192;主机地址就是01000,即红色那一部分;
广播地址就是将主机地址部分全部边成“1”即,11000000.10101000.00000001.11011111,转换后得出192.168.1.223。
ex4.一个公司有10个部门,要求给每个部门划分不同的网段,但是都在192.168.1.0这个大网内,并且每个部门要容纳20台计算机。请为这个公司选择子网掩码。
A)255.255.255.192 B)255.255.255.224
C)255.255.255.240 D)不能实现
分析:首先看关键数据,10个部门共要10个网段的子网,也就是说采用的子网掩码要支持10个有效的子网,而且还要求每个子网容纳100个有效的主机地址。
根据2的N次方减2的公式,10介于2的3次方和2的4次方之间,因此应该从主机位借4位来作为子网位,二进制就是11111111.11111111.11111111.11110000,即255.255.255.240。有些人就毫不犹豫地选择了255.255.255.240地子网掩码。
但是真的就这样计算结束了吗?其实不然。我们知道,C类地址主机位本来就只有8位,现在已经借去4位,剩下4位,因此每个子网能够允许的主机数量为2的4次方减2,即14台计算机。而题目要求每个子网容纳主机20台,看来是无法达到目的。
同样如果我们先从主机数量着手计算,应该采用255.255.255.224的子网掩码,但是这个掩码只能允许有6个有效的子网,因此同样无法满足10个子网的要求。
因此答案应该选D
总结
只要知道了ip地址和子网掩码后可以算出:
1、网络地址
2、广播地址
3、地址范围
4、本网有几台主机
ex:设IP地址为192.168.100.5 ;子网掩码是255.255.255.0;要求算出网络地址、广播地址、地址范围、主机数。
解:
1)将IP地址和子网掩码换算为二进制,子网掩码连续全1的是网络地址,后面的是主机地址。虚线前为网络地址,虚线后为主机地址
2)IP地址和子网掩码进行与运算,结果是网络地址
3)将上面的网络地址中的网络地址部分不变,主机地址变为全1,结果就是广播地址。
4)地址范围就是含在本网段内的所有主机
网络地址+1即为第一个主机地址;
广播地址-1即为最后一个主机地址,由此可以看出
地址范围是:网络地址+1 至 广播地址-1
本例的网络范围是:192.168.100.1 至 192.168.100.254
也就是说下面的地址都是一个网段的。
192.168.100.1、192.168.100.2 。。。192.168.100.254
可变长子网掩码与无类域间路由
1 VLSM
RFC 1878中定义了可变长子网掩码(Variable Length Subnet Mask,VLSM)。VLSM规定了如何在一个进行了子网划分的网络中的不同部分使用不同的子网掩码。这对于网络内部不同网段需要不同大小子网的情形来说非常有效。
VLSM实际上是一种多级子网划分技术。如图所示。
市场部分得了一级子网中的第1个子网,即210.31.233.64,子网掩码255.255.255.192,该一级子网共有62个IP地址可供分配。
技术部将所分得的一级子网中的第2个子网210.31.233.128,子网掩码255.255.255.192又进一步划分成了两个二级子网。其中第1个二级子网210.31.233.128,子网掩码255.255.255.224划分给技术部的下属分部-硬件部,该二级子网共有30个IP地址可供分配。技术部的下属分部-软件部分得了第2个二级子网210.31.233.160,子网掩码255.255.255.224,该二级子网共有30个IP地址可供分配。
在实际工程实践中,可以进一步将网络划分成三级或者更多级子网。同时,可以考虑使用全0和全1子网以节省网络地址空间。
2 CIDR
无类域间路由(Classless Inter-Domain Routing,CIDR)在RFC 1517~RFC 1520中都有描述。提出CIDR的初衷是为了解决IP地址空间即将耗尽(特别是B类地址)的问题。CIDR并不使用传统的有类网络地址的概念,即不再区分A、B、C类网络地址。在分配IP地址段时也不再按照有类网络地址的类别进行分配,而是将IP网络地址空间看成是一个整体,并划分成连续的地址块。然后,采用分块的方法进行分配。
在CIDR技术中,常使用子网掩码中表示网络号二进制位的长度来区分一个网络地址块的大小,称为CIDR前缀。如IP地址210.31.233.1,子网掩码255.255.255.0可表示成210.31.233.1/24;IP地址166.133.67.98,子网掩码255.255.0.0可表示成166.133.67.98/16;IP地址192.168.0.1,子网掩码255.255.255.240可表示成192.168.0.1/28等。
CIDR可以用来做IP地址汇总(或称超网,Super netting)。在未作地址汇总之前,路由器需要对外声明所有的内部网络IP地址空间段。这将导致Internet核心路由器中的路由条目非常庞大(接近10万条)。采用CIDR地址汇总后,可以将连续的地址空间块总结成一条路由条目。路由器不再需要对外声明内部网络的所有IP地址空间段。这样,就大大减小了路由表中路由条目的数量。
例如,某公司申请到了1个网络地址块(共8个C类网络地址):210.31.224.0/24-210.31.231.0/24,为了对这8个C类网络地址块进行汇总,采用了新的子网掩码255.255.248.0,CIDR前缀为/21。如图所示。
利用CIDR实现地址汇总有两个基本条件:
待汇总地址的网络号拥有相同的高位。如图2-2-8中8个待汇总的网络地址的第3个位域的前5位完全相等,均为11100。待汇总的网络地址数目必须是2n,如2个、4个、8个、16个等等。否则,可能会导致路由黑洞(汇总后的网络可能包含实际中并不存在的子网)。