如果采用标准子网掩码255.255.0.0而不进一步划分子网,那么166.133.0.0网络中的所有主机(最多共65534台)都将处于同一个广播域下,网络中充斥的大量广播数据包将导致网络最终不可用。
当一个组织申请了一段IP地址后,可能需要对IP地址进行进一步的子网划分。例如,某规模较大的公司申请了一个B类IP地址166.133.0.0。如果采用标准子网掩码255.255.0.0而不进一步划分子网,那么166.133.0.0网络中的所有主机(最多共65534台)都将处于同一个广播域下,网络中充斥的大量广播数据包将导致网络最终不可用。
解决方案是进行非标准子网划分。非标准子网划分的策略是借用主机号的一部分充当网络号。具体方法是采用新的、非标准子网掩码,而不采用默认的标准子网掩码。
例如,B类地址166.133.0.0,不使用标准子网掩码255.255.0.0,而是使用非标准子网掩码,如255.255.255.0、255.255.240.0等将网络划分为多个子网。
如图1所示。我们借用原来属于主机号范围的第3个位域充当子网号范围,即借用了8位主机号充当子网号。所采用的新子网掩码是:255.255.255.0,该子网掩码将这个B类的大网络166.133.0.0又划分成为254个小的子网(全0和全1的子网号不能使用)。对于这254个子网来说,每个子网各自又可以容纳254台主机。
图1 非标准子网划分 下面,我们分别以C、B、A类IP地址为例详细讨论非标准子网划分。
1 对C类网络进行非标准子网划分 对于标准的C类IP地址来说,标准子网掩码为255.255.255.0,即用32比特IP地址的前24比特标识网络号,后8比特标识主机号。因此,每个C类网络下共可容纳254台主机(28-2)。
现在,我们先考虑借用2比特的主机号来充当子网络号的情形。如图2所示。
图2 借用2比特的主机号来充当子网络号 在图2中,为了借用原来8位主机号中的前2位充当子网络号,采用了新的、非标准子网掩码255.255.255.192。
采用了新的子网掩码后,借用的2位子网号可以用来标识两个子网:01子网和10子网(子网号不能全为0或1,因此00、11子网不能用)。
首先,对于01子网来说,其网络号的点分十进制的形式为:210.31.233.64,该子网的最小IP地址为:210.31.233.65,最大IP地址为:210.31.233.126,共可容纳62台主机。对该子网的直接广播地址为:210.31.233.127。如图3所示。
图3 01子网计算过程 其次,对于10子网来说,其网络号的点分十进制的形式为:210.31.233.128,该子网的最小IP地址为:210.31.233.129,最大IP地址为:210.31.233.190,共可容纳62台主机。对该子网的直接广播地址为:210.31.233.191。
同理,还可以借用3位、4位、5位、6位主机号充当子网号。表1总结了对C类IP地址借用不同位数的主机号时应采用的子网掩码,以及可划分为多少个子网和每个子网可容纳的主机数。注意,借1位或7位无效。
2 对B类网络进行非标准子网划分 对于标准的B类IP地址来说,标准子网掩码为255.255.0.0,即用32比特IP地址的前16比特标识网络号,后16比特标识主机号。因此,每个B类网络下共可容纳65534台主机(216-2)。
我们同样先考虑借用2比特的主机号来充当子网络号的情形。如图4所示。
图4 借用2比特的主机号来充当子网络号 在图4中,为了借用原来16位主机号中的前2位充当子网络号,采用了新的非标准子网掩码255.255.192.0。
采用了新的子网掩码后,借用的2位子网号可以用来标识两个子网:01子网和10子网(子网号不能全为0或1,因此00、11子网不能用)。
首先,对于01子网来说,其网络号的点分十进制的形式为:166.133.64.0,该子网的最小IP地址为:166.133.64.1,最大IP地址为:166.133.127.254,共可容纳16382台主机。对该子网的直接广播地址为:166.133.127.255。如图5所示。
图5 01子网计算过程
其次,对于10子网来说,其网络号的点分十进制的形式为:166.133.128.0,该子网的最小IP地址为:166.133.128.1,最大IP地址为:166.133.191.254.,共可容纳16382台主机。对该子网的直接广播地址为:166.133.191.255。
同理,还可以借用3位、4位、5位、6位、7位、8位甚至更多位主机号来充当子网号,表2总结了对于B类网络常用的、借用不同位数的主机号时应采用的子网掩码,以及可划分为多少个子网和每个子网可容纳的主机数。注意,借1位或15位无效。
3 对A类网络进行非标准子网划分 仿照前面的分析,我们可以得出A类网络常见的子网划分方式及其相关数据,如表3所示。
4 全0和全1网段 回想前面的例子中,将C类网络210.31.233.0划分为两个子网210.31.233.64和210.31.233.128后,每子网可容纳62台主机,两个子网共可容纳124台主机。而在未划分子网前,该C类网络210.31.233.0可以容纳254台主机。也就是说,划分子网后浪费了一半的IP地址(即210.31.233.1-210.31.233.63和210.31.233.192-210.31.233.254)。
这里造成IP地址空间浪费的主要原因是RFC 1009中规定划分子网时,子网号不能全为0或1,我们将其称为全0与全1网段。
RFC 1009保留全0与全1网段未用是因为在某些时候采用全0与全1网段会导致IP地址的二义性。
例如,为了将标准C类网络201.15.66.0划分成8个子网,采用了非标准子网掩码255.255.255.224。该子网掩码将C类网络201.15.66.0划分成如下8个子网(假设允许子网号全为0或1)。
●子网1:网络号201.15.66.0,可以IP地址范围:201.15.66.1-201.15.66.30,子网广播地址:201.15.66.31。
●子网2:网络号201.15.66.32,可以IP地址范围:201.15.66.33-201.15.66.62,子网广播地址:201.15.66.63。
●子网3:网络号201.15.66.64,可以IP地址范围:201.15.66.65-201.15.66.94,子网广播地址:201.15.66.95。
●子网4:网络号201.15.66.96,可以IP地址范围:201.15.66.97-201.15.66.126,子网广播地址:201.15.66.127。
●子网5:网络号201.15.66.128,可以IP地址范围:201.15.66.129-201.15.66.158,子网广播地址:201.15.66.159。
●子网6:网络号201.15.66.160,可以IP地址范围:201.15.66.161-201.15.66.190,子网广播地址:201.15.66.191。
●子网7:网络号201.15.66.192,可以IP地址范围:201.15.66.193-201.15.66.222,子网广播地址:201.15.66.223。
●子网8:网络号201.15.66.224,可以IP地址范围:201.15.66.225-201.15.66.254,子网广播地址:201.15.66.255。
对于未划分子网的原主网络201.15.66.0来说,其网络号201.15.66.0和划分完子网后的第1个子网的网络号201.15.66.0是相同的!同样,对于原主网络201.15.66.0来说,其广播地址201.15.66.255和划分完子网后的第8个子网的广播地址201.15.66.255也相同的!因此,RFC 1009规定不能使用全0或全1的子网号,以免发生上面的IP地址二义性问题。
为了解决IP地址的二义性问题,可以规定IP地址不能单独使用,必须携带相应的子网掩码信息。如201.15.66.0+255.255.255.0是指未划分子网的原主网络201.15.66.0,而201.15.66.0+255.255.255.224是指划分完子网后的第1个子网的网络号。
同理,201.15.66.255+255.255.255.0是指对未划分子网的原主网络201.15.66.0的广播,而201.15.66.255+255.255.255.224是指对划分完子网后的第8个子网的广播。
这样,既有效地利用了宝贵的IP地址空间、减少了浪费,又可以有效地避免IP地址的二义性问题。
在Cisco
路由器上,缺省可以使用全1网段,但是不能使用全0网段。如果我们想要使用全0网段,必须输入命令ip subnet-zero允许使用全0网段。
需要注意的是,虽然命令ip subnet-zero允许我们使用全0网段,但对于一些有类(Classful)路由协议,如RIP、IGRP在广播路由更新信息时,只发送网络地址信息而不发送相应的子网掩码信息。这时,仍然会出现IP地址的二义性问题。
5 专用地址空间 RFC 1918中定义了在企业网络内部使用的专用(私有)地址空间,如下:
●A类:10.0.0.0-10.255.255.255
●B类:172.16.0.0-172.31.255.255
●C类:192.168.0.0-192.168.255.255
这些网络地址在因特网中是无法路由的,只能在企业网络内部使用。具有这些网络地址的主机如果想要访问Internet,要么需要通过代理服务器,要么需要通过具有网络地址转换功能的路由器或防火墙。
此外,微软在自己的TCP/IP实现中规定了LinkLocal网络地址空间:169.254.0.0-169.254.255.255也属于专用内部地址,也同样无法在Internet中路由。如图6所示。
图6 LinkLocal网络地址