8.4 IP子网划分
任何一个A、B和C类网络中都有可容纳的最大主机数。例如,一个C类网络最多只能安装254台计算机,当超过这个数时,就要另外申请一个C类网络;一个B类网络最多可容纳65534台主机,如此大规模的单一的物理网络几乎是不可能的。引入子网划分技术的目的是有效提高IP地址的利用率,从而可节省宝贵的IP地址资源。子网编址技术就是将原主机部分划分为子网部分和主机部分,如图8-9所示。这样,网络部分=网络标识(也称网间网标识)+子网标识。
图8-9
在一个网络内可以划分出若干个子网。划分子网部分与主机部分的方法不同网点的情况不同:有些网点网络多,但每个网络上的主机少;有些网点网络少,但其网络上的主机多。
首先要明确所需的子网数量和每个子网中所要拥有的主机数,然后再确定网络部分和主机部分的比特位数,以便选择最合理的子网划分。
8.4.1 掩码的作用
网络规模的迅速扩展对IP地址模式的威胁并不在于它不能保证主机地址的唯一性,而在于其会带来两方面的负担:第一,巨大的网络地址管理开销;第二,网关路由急剧膨胀加重网络负担。因此,迫切需要寻求新的技术,以应对网络规模增长带来的问题。仔细分析发现,网络规模的增长在内部主要表现为网络地址的增减,因此解决问题的思路集中在如何减少网络地址。于是IP网络地址的多重复用技术应运而生。通过复用技术,使若干物理网络共享同一个IP网络地址,无疑将减少网络地址数。
1.子网
子网编址(Subnet Addressing)技术又称子网路由(Subnet Routing),英文简称Subnetting,是最广泛使用的IP网络地址复用方式,目前已经标准化,并成为IP地址模式的一部分。
2.子网掩码
IP协议标准规定:每一个使用子网的网点都选择一个32位的位模式,若位模式中的某位置1,则对应IP地址中的某位为网络地址(包括网间网部分和物理网络号)中的一位;若位模式中的某位置0,则对应IP地址中的某位为主机地址中的一位。例如位模式:11111111 11111111 1111111100000000中,前三个字节全1,代表对应IP地址中最高的三个字节为网络地址;后一个字节全0,代表对应IP地址中最后的一个字节为主机地址。这种位模式叫作子网模(Subnet Mask)或“子网掩码”。为了使用方便,常常使用“点分整数表示法”来表示一个IP地址和子网掩码,例如C类地址子网掩码(11111111 11111111 11111111 00000000)为:255.255.255.0。子网掩码是一个32位地址,用于屏蔽IP地址的一部分以区别网络标识和主机标识,并说明该IP地址是在局域网上,还是在远程网上。
3.子网掩码与IP地址
子网掩码与IP地址结合使用,可以区分出一个网络地址的网络号和主机号。
例如:有一个C类地址为192.9.200.13。其默认的子网掩码为:255.255.255.0
则它的网络号和主机号可按如下方法得到:
①将IP地址192.9.200.13转换为二进制11000000 00001001 11001000 00001101。
②将子网掩码255.255.255.0转换为二进制11111111 11111111 11111111 00000000。
③将两个二进制数做逻辑与(AND)运算后得出的结果即为网络号。11000000 0000100111001000 00001101 AND 11111111 11111111 11111111 00000000=11000000 00001001 1100100000000000,即网络号为192.9.200.0。
④将子网掩码取反再与IP地址做逻辑与(AND)运算后得到的结果即为主机号。1100000000001001 11001000 00001101 AND 00000000 00000000 00000000 11111111=00000000 0000000000000000 00001101,即主机号为13。
简单地说,掩码用于说明子网域在一个IP地址中的位置。子网掩码主要用于说明如何进行子网的划分。掩码是由32位组成的,很像IP地址。对于这3类IP地址来说,有一些默认的或自然的固定掩码。
A类地址的默认的或自然的掩码是255.0.0.0。在这种情况下,掩码说明前8位代表网络号。A类地址的子网划分也要考虑这8位。如果给一个设备分配一个A类地址,掩码为255.0.0.0,则表明这个网络没有子网。如果给一个设备分配一个A类地址,并且掩码不是255.0.0.0,则此网络已被划分子网。设备存在于A类网络中的一个子网中。
没有子网划分:88.0.0.0;255.0.0.0。有子网划分:125.0.0.0;255.255.255.0。在上面的例子中,对125.0.0.0网络进行了子网划分。由于掩码的值不是默认的,则我们知道网络已被划分成几个子网。剩余的掩码位是什么意思呢?像前面讲到的那样,掩码是用来说明IP地址中子网域的位置。让我们看一看掩码中有哪些内容。IT专业人员参考255子网掩码中经常会包含着一个重要的值255。它说明长度为8位的部分掩码内容全部为1。例如,对掩码255.0.0.0的二进制表示为:11111111.00000000.00000000.00000000。掩码255.255.0.0的二进制表示为:1111111111111111.00000000.00000000。
8.4.2 掩码的组成
掩码是一个32位二进制数字,用点分十进制来描述,默认情况下,掩码包含两个域:网络域和主机域。这些内容分别对应网络号和本地可管理的网络地址部分。在要划分子网时,需要重新调整对IP地址的认识。如果工作在B类网络中,并使用标准的掩码,则此时没有子网划分。例如,在下面的地址和掩码中,网络地址由前两个255来说明,而主机域是由后面的0.0来说明:153.88.4.240;255.255.0.0。此时网络号是153.88,主机号是4.240。换句话说,前16位代表着网络号,而后面剩余的16位代表着主机号。
如果将网络划分成几个子网,则网络的层次将增加。从网络到主机的结构转换成从网络到子网再到主机的结构。如果使用子网掩码为255.255.255.0对网络153.88.0.0进行子网划分,则需要增加辅助的信息块。在增加一个子网域时,我们的想法发生了一些变化。看一看前面的例子,153.88还是网络号。当使用掩码255.255.255.0时,则说明子网号被定位在第三个8位位组。子网号是4,主机号是240。
通过使用掩码可将本地可管理的网络地址部分划分成多个子网。掩码用来说明子网域的位置。给子网域分配一些特定的位数后,剩下的位数就是新的主机域了。例如,使用了一个B类地址,它有16位主机域。此时将主机域分成一个8位子网域和一个8位主机域。
此时这个B类地址的掩码是:255.255.255.0。
如何确定使用哪些掩码呢?表面上看,过程非常简单。首先要确定在网络中需要有多少个子网。这就需要充分研究此网络的结构和设计。一旦知道需要几个子网,就能够决定使用多少位子网位。一定要保证子网域足够大,可以满足未来子网数量的需求。
在设计网络阶段时,网络管理员要和地址管理员讨论设计问题。他们的结论是:在目前的设计中应有73个子网,并使用一个B类地址。为了确定子网掩码,我们需要知道子网域的大小。本地可管理的B类地址部分只有16位。
记住,子网域是这16位中的一部分。现在的问题是要确定存储十进制数73需要多少位。一旦能够知道存放十进制数73所需位数,就能够确定使用哪些掩码。
首先将十进制数73转换成二进制数。这个二进制数的位数为7位。十进制数73的二进制数是1001001,此时需要保留本地管理的子网掩码部分中的前7位作为子网域,剩余部分将为主机域。例如,为子网域保留前7位,每一位用1来表示。剩余的位数为主机域,由0表示为1111111000000000,将上面子网的二进制信息转换成十进制,然后把它作为掩码的一部分加入到整个掩码中。此时就能够得到一个完整的子网掩码。11111110转换为十进制为254,00000000转换十进制为0,完整的掩码内容是255.255.254.0。记住,B类地址的默认掩码是255.255.0.0。现在已经将本地的可管理掩码部分0.0转换成254.0。这个过程描述了子网划分的策略。软件通过254.0这部分就会知道本地可管理地址部分的前7位是子网域,剩余部分是主机域。当然,如果子网掩码的个数发生变化,对子网域的解释也将变化。
8.4.3 掩码值的十进制表示
表8-7~表8-9列出了常用的A类、B类、C类网络的子网掩码。
表8-7 A类子网表
表8-8 B类子网表
表8-9 C类子网表
这些子网掩码表将会帮助你在给定环境下确定子网掩码。浏览一下这些表,看看有什么特点。从上向下看,子网的数量在逐渐增加,而子网中的主机数量却逐渐减少。为什么会这样呢?请看每张表的右侧部分。随着表示子网的位数增加,表示主机的位数则相应减少。由于在每一类网络地址中,这部分的位数相对固定,且每一位只有一种用途并由掩码说明。每一位不是子网位,就是主机位。如果表示子网的位数增加,则表示主机的位数将会相应地减少。注意,根据类别的不同,表的大小也不一样。因为对应A类、B类、C类网络,它们的主机域分别是24位、16位和8位,所以这里有3个大小不同的表格。
8.4.4 划分子网
引入子网划分之后,主机或路由设备如何确定目的子网?IP协议规定,每一个使用子网的网点都选择一个32位的位模式与32位的IP地址相对应。对应网络部分的各位都为“1”,对应主机部分的各位都为“0”。这就是子网掩码。
例如,从子网掩码255.255.255.0可知,网络部分占前3个字节,主机部分占后1个字节。而从255.255.252.0可知,网络部分占22位,主机部分占10位。
注意:同一个网络的子网掩码相同。例如一个单位申请了一个B类网络,其部分子网如图8-10所示。
图8-10
上述网络为B类网络,网络地址为128.101.0.0。现从原主机部分划出一个字节作为子网部分,剩下的一个字节作为划分后的主机部分。因此,子网掩码为255.255.255.0。
子网掩码有另一种写法,例如从128.101.1.12/24中可知,子网掩码占24位,即255.255.255.0。