子网划分
通过将IP地址的网络部分进一步划分为若干个子网,解决了IP地址空间利用率低和两级IP地址不够灵活的问题。
当一个单位的主机很多时,为了便于管理,可将单位内部的Host-id(主机号码)再进一步划分为多个子网。通过子网划分,整个网络地址可以划分成更多的小网络。
子网的划分是网络内部的行为,从外部看,这个单位只有一个Net-id(网络号码)。只有当外部的报文进入到本单位范围后,本单位的路由设备才根据Subnet-id(子网号码)再进行选路,找到目的主机。
如图1-4所示,为一个B类IP地址子网划分情况,其中子网掩码由一串连续的“1”和一串连续的“0”组成。“1”对应于Net-id和Subnet-id字段,而“0”对应于Host-id字段。
以图1-4所示的B类地址为例。假设网络地址为172.16.0.0,掩码为255.255.0.0。将该地址的Host-id的高2位用来划分子网,则Subnet-id的范围是00~11(二进制),总共可以划分4(22)个子网。子网对应的子网掩码也相应的发生变化,即子网掩码不再是原来B类地址对应的255.255.0.0,而是变成了255.255.192.0。将IP地址与其相应掩码位执行与运算的结果就是网络地址,四个子网的网络地址如图1-5所示。
以上四个子网段的网络地址(Host-id全为0)、广播地址(Host-id全为1)和主机地址范围如表1-5所示。
子网段 | 网络地址 | 广播地址 | 主机地址范围 |
---|---|---|---|
10101100 00010000 00000000 00000000 | 10101100 00010000 00000000 00000000 | 10101100 00010000 00111111 11111111 | 10101100 00010000 00000000 00000001 ~ 10101100 00010000 00111111 11111110 |
10101100 00010000 01000000 00000000 | 10101100 00010000 01000000 00000000 | 10101100 00010000 01111111 11111111 | 10101100 00010000 01000000 00000001 ~ 10101100 00010000 01111111 11111110 |
10101100 00010000 10000000 00000000 | 10101100 00010000 10000000 00000000 | 10101100 00010000 10111111 11111111 | 10101100 00010000 10000000 00000001 ~ 10101100 00010000 10111111 11111110 |
10101100 00010000 11000000 00000000 | 10101100 00010000 11000000 00000000 | 10101100 00010000 11111111 11111111 | 10101100 00010000 11000000 00000001 ~ 10101100 00010000 11111111 11111110 |
上面通过二进制的方式介绍了子网划分。然而,子网划分的结果通常会用十进制表示。采用二进制进行计算时,需要将结果再转换成十进制,这样计算过程比较繁琐。下面介绍用十进制来划分子网的方法,计算更为便捷。
仍然以上述网络地址172.16.0.0、掩码为255.255.0.0的B类地址为例。划分子网后,子网掩码为255.255.192.0(子网掩码长度为16+2=18位)。方法如下:
- Subnet-id位数为m,子网个数 = 2m。此例中,m为2,则子网个数为4。
- Host-id位数为n,每个子网段的有效主机地址个数 = 2n - 2(去掉全1和全0的主机地址)。此例中,n为14,则每个子网段的有效主机地址个数为16382。
- 相邻两个子网网络号的跨度被称为block size,block size = 256 - 非255或0的十进制子网掩码。第一个子网网络号从0(在非255或0的十进制子网掩码位对应的位置)开始,后续各子网网络号以block size依次递加。此例中,block size = 256 - 192 = 64,四个子网段分别为172.16.0.0/18、172.16.64.0/18、172.16.128.0/18和172.16.192.0/18。
以十进制方式划分子网的结果如表1-6所示。
子网段 | 网络地址 | 广播地址 | 主机地址范围 |
---|---|---|---|
172.16.0.0/18 | 172.16.0.0 | 172.16.63.255 | 172.16.0.1~172.16.63.254 |
172.16.64.0/18 | 172.16.64.0 | 172.16.127.255 | 172.16.64.1~172.16.127.254 |
172.16.128.0/18 | 172.16.128.0 | 172.16.191.255 | 172.16.128.1~172.16.191.254 |
172.16.192.0/18 | 172.16.192.0 | 172.16.255.255 | 172.16.192.1~172.16.255.254 |
但是,多划分出一个Subnet-id字段是要付出代价的。举例来说,本来一个B类IP地址可以容纳65534(216 - 2)个主机地址。在上面的例子中,划分出2位长的Subnet-id字段后,4个子网最多有4 x (214 - 2) = 65528个主机地址,比不划分子网时要少6个。
子网划分与IP地址规划时,通常需要综合考虑以下原则,实现合理高效的网络规划。
层次性
实现网络的层次性划分,需要综合考虑地域和业务因素,采用自顶向下的方法划分,达到有效管理网络、简化路由表的目标。一般情况下:
- 对于大骨干网络和大城域网络相结合的网络,采用层次性划分方式。
- 对于行政区类型的网络,采用多级网络分配方式。
连续性
连续地址在层次结构的网络中易于进行路由聚合,大大缩减路由表数量,提高路由查找的效率。
- 尽量为每个区域分配连续的IP地址空间。
- 尽量为具有相同业务和功能的设备分配连续的IP地址。
扩展性
分配地址时,在每一层次上都要留有余量。当网络规模扩展时能保证地址分配的连续性,实现网络的长远规划。
骨干网络应有足够的连续地址组成独立的自治域,并为今后的扩展留有余地。
高效性
划分子网时,要保证充分利用地址资源,使子网的划分满足主机个数的要求。
- 利用可变长子网掩码VLSM(Variable Length Subnet Mask)技术分配IP地址,充分合理地利用地址资源。
- 与网络的路由机制设计相结合,合理使用已划分的地址空间,提高地址的利用率。