IP子网划分详解,要阐述子网划分,首先需要明确如下问题:
●子网划分的依据是什么?
●每个子网应该包含多少个有效节点地址?
1.子网掩码
首先,需要了解什么是子网掩码(Subnet Mask)。与IP地址类似,子网掩码由32 bit(4字节)组成,以点分十进制表示。
然而它本身并不是一个IP地址,子网掩码的使用规则是,子网掩码由前面连续的1和后面连续的0组成。例如,255.255.255.0=11111111.11111111.11111111.00000000。
通常,将前面连续的1的数量称为一个子网掩码的长度,在上面这个例子中我们称它为24位掩码。
子网掩码一般与IP地址结合使用,掩码长度表示该IP地址的网络部分的长度。将一个IP地址与它的子网掩码进行与运算,得到的结果便是该IP地址的网络地址。
2.与运算
将IP地址与子网掩码逐位进行与运算,同为1时得1,其他情况均为0。与运算结果如表1所示。
表1 与运算结果
3.有类网络
根据前面探讨的A类、B类、C类等网络分类,以及定义好的网络部分长度,将符合这一标准的网络规划及地址分配方式称为有类网络。
也就是说,A类网络使用固定的子网掩码255.0.0.0,B类网络使用固定的子网掩码255.255.0.0,C类网络则使用固定的子网掩码255.255.255.0。
设备只需要读取IP地址前面几个bit就能知道如何区分该IP地址的网络部分和节点地址部分,这样的网络被称为有类网络。
4.无类网络
现在,了解子网掩码之后可以研究下面这个问题。
设想这样一种情况,假设一个企业有500台终端需要接入网络,使用一个C类网络显然并不能够满足需求,而使用一个B类网络又会浪费大量的IP地址资源。
●一个 C类网络可容纳的有效节点数量为28=256,减去两个特殊地址则等于254;
●一个 B类网络可容纳的有效节点数量为216=65536,减去两个特殊地址等于65534。
于是聪明的前辈们想到了一个办法,那就是子网划分,经过子网划分之后的子网被称为无类网络。
进行子网划分的计算方法可能并不止一种,读者可以自行选择适合自己的方法,本节仅展示其基本原理。
继续探讨一个企业有500台终端需要接入网络的案例,为了满足一个使用一个C类网络容量不够,而使用一个B类网络又浪费大量IP地址空间的客户需求,可以采用子网划分技术。
首先我们需要了解下面的内容。
我们已经知道了,节点地址的容量取决于节点部分的bit数量,总之,网络部分和子网以及节点地址部分的bit数量加起来必须等于32 bit。
也就是说,节点地址部分,1 bit可以表示两个节点地址,即2^1 对吗?
那么,2 bit呢?2^2=4,3 bit呢?2^3=8,…,2^8=256,以此类推,换算表如表2所示。
表2 换算表
根据表1的规律,一个网络中节点地址的bit数量,决定了该网络相应的所能够容纳的节点数量。
我们这个案例中需要500台设备接入网络,显然使用29=512个节点地址,也就是9 bit的节点地址长度就可以满足客户需求了。
现在,轮到子网掩码出场了,使用子网掩码来向设备标明,一个IP地址究竟哪些位是网络部分,哪些位是节点地址部分。
例如,我们使用172.16.0.0这个B类网络来为该客户提供服务,那么管理员就需要将这个B类网络进行子网划分,将其分割成正好可以满足客户需求大小的网络。
我们需要9 bit的节点地址位,32-9=23,也就是说,需要将网络地址部分定义为23 bit长。前面说过,子网掩码由前面连续的1来表示网络部分,后面连续的0表示节点地址部分,采用二进制表示:
11111111.11111111.11111110.00000000=255.255.254.0。
分配给该客户的网络地址范围为172.16.0.0/23,这个“/23”是一种让人好理解的书写方式,不是吗?同时也很清晰地表示出该网络的网络部分究竟是多长。
问题来了,该B类网络经过这样的子网划分后,究竟划分出了哪些个子网呢?
首先,前面两个八位组,也就是前16 bit必须是一致的,这样才同属一个B类网络。在本案例中,从第17~23位,相同则属于同一B类网络的同一子网,不同则属于同一B类网络的不同子网,这样讲你理解了吗?如果不理解,那也没关系,我们来看下面的例子:
网络部分相同,才能被认为是在同一子网中,也就是说,我们所划分出的子网,前面16 bit必须等于172.16 这样才算是在172.16.0.0 这个B类网络中。
我们继续往下看:
和
如上所述,为了满足客户的要求,完成子网划分后,子网IP地址采用二进制表示;如果其网络部分一致,则被认为划分的子网在同一网络;如果其网络部分不一致,则被认为划分的子网不在同一网络。很明显,上面两个IP地址的网络部分是相同的,因此我们认为它们在同一个子网中。
再往下看:
和
这两个IP地址的网络部分的最后一位是不同的,所以它们被认为不在同一子网中。如果读者还存在疑惑,那么我们再举一例:
和
这两个IP地址的网络部分是相同的,因此它们在同一个子网当中。总结一下上面的这些例子:
这些IP地址分别在相同或者不同的子网当中,但是作为B类网络,它们都属于172.16.0.0这个B类的主网络,依据就是,按照B类网络的定义,它们的前16 bit都为172.16,是一致的。
也就是说,这些IP地址同属于一个B类网络,但是因为进行了子网划分,它们分别属于同一个B类网络的不同子网。
现在,我们可以回答本节最开始提出的问题了:
●子网划分的依据是子网掩码的长度;
●划分出的子网应该包含网络需求的最少需要的有效节点地址数量。
当然,设计一个可支持后续业务发展的子网规划是很必要的。