2.3 子网划分
如果按以上IP地址的分类直接划分网络,则会存在许多问题,例如,路由器的效率问题、IP地址的浪费问题等。因此在1991年,研究人员提出了子网(subnet)划分的概念。子网划分方案允许从主机位中取出部分位用作子网位,这样就可以将一个标准的IP网络划分成几个小的网络,从而将“网络ID+主机ID”二层结构变成“网络ID+子网ID+主机ID”的三层结构,以提高IP地址的利用率。
1.划分子网
可以将一个标准的IP地址(IP网络)根据需要划分为不同的几个子网络。子网划分还有助于在一个单位内部组织其业务流,同时可以使来自外部的源分组的选路更简单。外部的源分组无需知道目的子网的任何情况,因为所有的子网是在同一个标准网络地址下,且所有发往该网络中任何地址的分组都首先要经过一个路由器,然后由该路由器决定把数据向哪个子网发送。
要划分子网,可采取如下步骤。
(1)确定需要的网络ID数:
每个LAN子网一个。
每条广域网连接一个。
(2)确定每个子网所需的主机ID数:
每个TCP/IP主机一个。
每个路由器接口一个。
(3)根据上述需求,确定如下内容:
一个用于整个网络的子网掩码。
每个物理网段的唯一子网ID。
每个子网的主机ID范围。
2.子网掩码
要让上述方案有效,网络中的每台机器都必须知道主机地址的哪部分为子网地址,这是通过给每台机器分配子网掩码实现的。即使不划分子网,仍然要使用子网掩码,因为 Internet的标准规定:所有的网络都必须使用子网掩码,同时在路由器的路由表中也必须有子网掩码这一栏。如果一个网络不划分子网,那么该网络的子网掩码就使用默认子网掩码。默认子网掩码中1的位置和IP地址中的网络位相对应,0的位置和主机位相对应,因此A、B、C三类IP地址的默认子网掩码如下:
A类地址的默认子网掩码为255.0.0.0,即0xFF000000。
B类地址的默认子网掩码为255.255.0.0,即0xFFFF0000。
C类地址的默认子网掩码为255.255.255.0,即0xFFFFFF00。
3.CIDR(无类域间路由选择)
划分子网在一定程度上缓解了因特网在发展中遇到的困难。然而在1992年Internet仍然面临3个必须解决的问题:B类地址很快将要分配完毕;Internet主干上的路由表中的项目数急剧增加;整个IPv4的地址最终将会全部耗尽。因此IETF很快就研究出采用无类域间路由选择的方法解决前两个问题,再专门成立 IPv6工作组负责研究解决新版本 IP协议的问题。使用变长子网掩码(Variable Length Subnet Mask,VLSM)进一步提高IP地址资源的利用率。在VLSM的基础上又进一步研究出无分类编址方法,它的正式名字是无类域间路由选择(Classless Inter-Domain Routing,CIDR)。
它是 ISP 用来将大量地址分配给客户的一种方法。从 ISP 那里获得的地址块类似于192.168.10.32/28,这种斜线表示法指出了子网掩码中有多少位 1,例如,子网掩码是 255.255.224.0时,对应的CIDR值是/19。
当选定子网掩码和所要划分的IP地址之后,就可以根据子网掩码计算子网数和每个子网的主机数了。例如,子网掩码为255.255.255.192(/26),IP地址为192.168.10.0。子网数为2m-2,m为网络位数(如果系统支持全0和全1的子网号则不需减2),子网主机数为2n-2,n为主机位数。因此可知道子网位数为2位,可划分4个子网(假设系统支持全0和全1子网),主机位数为6位,每个子网的主机数为26-2=62台,因为主机位为全0和全1时分别是该子网号和广播地址,需要减掉2。因此可知,4个子网分别为:
子网192.169.10.0,主机IP为192.168.10.1~192.168.10.62,广播地址为192.168.10.63。
子网192.168.10.64,主机IP为 192.168.65~192.168.10.126,广播地址为192.168.10.127。
子网192.168.10.128,主机IP为 192.168.129~192.168.10.190,广播地址为192.168.10.191。
子网192.168.10.192,主机IP为 192.168.193~192.168.10.254,广播地址为192.168.10.255。
此外,思科(CISCO)也提供了一种更为快捷的子网划分方法,还是以子网掩码为255.255.255.192(/26),IP地址为192.168.10.0为例,同样先确定有4个子网,每个子网主机数为62,块大小即每个子网的大小为(256-子网掩码),即是256-192=64,从0开始不断增加,直到达到子网掩码值,中间的结果就是子网,即0、64、128、192,同样也可以达到目的并且更快速。
以一个B类网络的划分为例仔细说明思科的这种方法。假如要划分的IP地址是172.16.0.0,子网掩码是255.255.240.0,假设全0和全1子网可用。那么可划分的子网数为24=16,每个子网的主机数为212-2=4094。
有哪些合法的子网?256-240=16,因此子网为0、16、32、48直到240。下面列出使用子网掩码 255.255.240.0时,该 B类网络包含的前 4个子网,以及这些子网的合法主机地址范围和广播地址。
子网172.16.0.0,主机IP为 172.16.0.1~172.16.15.254,广播地址为172.16.15.255。
子网172.16.16.0,主机IP为 172.16.16.1~172.16.31.254,广播地址为172.16.31.255。
子网172.16.32.0,主机IP为 172.16.32.1~172.16.47.254,广播地址为172.16.47.255。
子网172.16.48.0,主机IP为 172.16.48.1~172.16.63.254,广播地址为172.16.63.255。
后面的子网以此类推。