1、基本原理 随着互连网应用的不断扩大,原先的ipv4的弊端也逐渐暴露出来,即网络号占位太多,而主机号位太少,所以其能提供的主机地址也越来越稀缺,目前除了使用nat在企业内部利用保留地址自行分配以外,通常都对一个高类别的ip地址进行再划分,以形成多个子网,提供给不同规模的用户群使用。 这里主要是为了在网络分段情况下有效地利用ip地址,通过对主机号的高位部分取作为子网号,从通常的网络位界限中扩展或压缩子网掩码,用来创建某类地址的更多子网。但创建更多的子网时,在每个子网上的可用主机地址数目会比原先减少。 子网掩码是标志两个ip地址是否同属于一个子网的,也是32位二进制地址,其每一个为1代表该位是网络位,为0代表主机位。它和ip地址一样也是使用点式十进制来表示的。如果两个ip地址在子网掩码的按位与的计算下所得结果相同,即表明它们共属于同一子网中。 在计算子网掩码时,我们要注意ip地址中的保留地址,即“ 0”地址和广播地址,它们是指主机地址或网络地址全为“ 0”或“ 1”时的ip地址,它们代表着本网络地址和广播地址,一般是不能被计算在内的。 下面就来以实例来说明子网掩码的算法: 对于无须再划分成子网的ip地址来说,其子网掩码非常简单,即按照其定义即可写出:如某b类ip地址为 10.12.3.0,无须再分割子网,则该ip地址的子网掩码为255.255.0.0。如果它是一个c类地址,则其子网掩码为 255.255.255.0。其它类推,不再详述。下面我们关键要介绍的是一个ip地址,还需要将其高位主机位再作为划分出的子网网络号,剩下的是每个子网的主机号,这时该如何进行每个子网的掩码计算。 下面就来以实例来说明子网掩码的算法: 对于无须再划分成子网的ip地址来说,其子网掩码非常简单,即按照其定义即可写出:如某b类ip地址为 10.12.3.0,无须再分割子网,则该ip地址的子网掩码为255.255.0.0。如果它是一个c类地址,则其子网掩码为 255.255.255.0。其它类推,不再详述。下面我们关键要介绍的是一个ip地址,还需要将其高位主机位再作为划分出的子网网络号,剩下的是每个子网的主机号,这时该如何进行每个子网的掩码计算。 2 、利用子网数来计算 在求子网掩码之前必须先搞清楚要划分的子网数目,以及每个子网内的所需主机数目。 1)将子网数目转化为二进制来表示 2)取得该二进制的位数,为 n 3)取得该ip地址的类子网掩码,将其主机地址部分的的前n位置 1 即得出该ip地址划分子网的子网掩码。 如欲将b类ip地址168.195.0.0划分成27个子网: 1)27=11011 2)该二进制为五位数,n = 5 3)将b类地址的子网掩码255.255.0.0的主机地址前5位置 1,得到 255.255.248.0 即为划分成 27个子网的b类ip地址 168.195.0.0的子网掩码。 二、利用主机数来计算 1)将主机数目转化为二进制来表示 2)如果主机数小于或等于254(注意去掉保留的两个ip地址),则取得该主机的二进制位数,为 n,这里肯定 n<8。如果大于254,则 n>8,这就是说主机地址将占据不止8位。 3)使用255.255.255.255来将该类ip地址的主机地址位数全部置1,然后从后向前的将n位全部置为 0,即为子网掩码值。 如欲将b类ip地址168.195.0.0划分成若干子网,每个子网内有主机700台: 1) 700=1010111100 2)该二进制为十位数,n = 10 3)将该b类地址的子网掩码255.255.0.0的主机地址全部置 1,得到255.255.255.255 然后再从后向前将后 10位置0,即为: 11111111.11111111.11111100.00000000 即255.255.252.0。这就是该欲划分成主机为700台的b类ip地址 168.195.0.0的子网掩码。 下面列出各类ip地址所能划分出的所有子网,其划分后的主机和子网占位数,以及主机和子网的(最大)数目,注意要去掉保留的ip地址(即划分后有主机位或子网位全为“0”或全为“1”的): a类ip地址: 子网位 /主机位 子网掩码 子网最大数 /主机最大数 2/22 255.192.0.0 2/4194302 3/21 255.224.0.0 6/2097150 4/20 255.240.0.0 14/1048574 5/19 255.248.0.0 30/524286 6/18 255.252.0.0 62/262142 7/17 255.254.0.0 126/131070 8/16 255.255.0.0 254/65536 9/15 255.255.128.0 510/32766 10/14 255.255.192.0 1022/16382 11/13 255.255.224.0 2046/8190 12/12 255.255.240.0 4094/4094 13/11 255.255.248.0 8190/2046 14/10 255.255.252.0 16382/1022 15/9 255.255.254.0 32766/510 16/8 255.255.255.0 65536/254 17/7 255.255.255.128 131070/126 18/6 255.255.255.192 262142/62 19/5 255.255.255.224 524286/30 20/4 255.255.255.240 1048574/14 21/3 255.255.255.248 2097150/6 22/2 255.255.255.252 4194302/2 b类ip地址: 子网位 /主机位 子网掩码 子网最大数 /主机最大数 2/14 255.255.192.0 2/16382 3/13 255.255.224.0 6/8190 4/12 255.255.240.0 14/4094 5/11 255.255.248.0 30/2046 6/10 255.255.252.0 62/1022 7/9 255.255.254.0 126/510 8/8 255.255.255.0 254/254 9/7 255.255.255.128 510/126 10/6 255.255.255.192 1022/62 11/5 255.255.255.224 2046/30 12/4 255.255.255.240 4094/14 13/3 255.255.255.248 8190/6 14/2 255.255.255.252 16382/2 c类ip地址: 子网位 /主机位 子网掩码 子网最大数 /主机最大数 2/6 255.255.255.192 2/62 3/5 255.255.255.224 6/30 4/4 255.255.255.240 14/14 5/3 255.255.255.248 30/6 6/2 255.255.255.252 62/2 现再举例。若我们用的网络号为192.9.200,则该C类网内的主机IP地址就是192.9.200.1~192.9.200.254,现将网络划分为4个子网,按照以上步骤: 4=22,则表示要占用主机地址的2个高序位,即为11000000,转换为十进制为192。这样就可确定该子网掩码为:192.9.200.192。4个子网的IP地址的划分是根据被网络号占住的两位排列进行的,这四个IP地址范围分别为: (1)第1个子网的IP地址是从“11000000 00001001 11001000 00000001”到“11000000 00001001 11001000 00111110”,注意它们的最后8位中被网络号占住的两位都为“00”,因为主机号不能全为“0”和“1”,所以没有11000000 00001001 11001000 00000000和11000000 00001001 11001000 00111111这两个IP地址(下同)。注意实际上此时的主机号只有最后面的6位。对应的十进制IP地址范围为192.9.200.1~192.9.200.62。而这个子网的子网掩码(或网络地址)为 11000000 00001001 11001000 00000000,为192.9.200.0。 (2)第2个子网的IP地址是从“11000000 00001001 11001000 01000001”到“11000000 00001001 11001000 01111110” ,注意此时被网络号所占住的2位主机号为“01”。对应的十进制IP地址范围为192.9.200.65~192.9.200.126。对应这个子网的子网掩码(或网络地址)为 11000000 00001001 11001000 01000000,为192.9.200.64。 (3)第3个子网的IP地址是从“11000000 00001001 11001000 10000001”到“11000000 00001001 11001000 10111110” ,注意此时被网络号所占住的2位主机号为“10”。对应的十进制IP地址范围为192.9.200.129~192.9.200.190。对应这个子网的子网掩码(或网络地址)为 11000000 00001001 11001000 10000000,为192.9.200.128。 (4)第4个子网的IP地址是从“11000000 00001001 11001000 11000001”到“11000000 00001001 11001000 11111110” ,注意此时被网络号所占住的2位主机号为“11”。对应的十进制IP地址范围为192.9.200.193~192.9.200.254。对应这个子网的子网掩码(或网络地址)为 11000000 00001001 11001000 11000000,为192.9.200.192。 继续例子: 若InterNIC分配给您的B类网络ID为129.20.0.0,那么在使用缺省的子网掩码255.255.0.0的情况下,您将只有一个网络ID和216-2台主机(范围 是:1 29.20.0.1~129.20.255.254)。现在您有划分4个子网的需求。 手工计算法: ①将所需的子网数转换为二进制 4→00000100 ②以二进制表示子网数所需的位数即为向缺省子网掩码中加入的位数(既应向主机ID借用的位数) 00000100→3位 ③决定子网掩码 缺省的:255.255.0.0 借用主机ID的3位以后:255.255.224(11100000).0,即将所借的位全表示为1,用作子网掩码。 ④决定可用的网络ID 列出附加位引起的所有二进制组合,去掉全0和全1的组合情况 code: 组合情况 实际得到的子网ID 000╳ 001→32 (00100000 ) 129.20.32.0 010→64 (01000000 ) 129.20.64.0 011→96 (01100000 ) 129.20.96.0 100→128(10000000) 129.20.128.0 101→160(10100000) 129.20.160.0 110→192(11000000) 129.20.192.0 000╳ ⑤决定可用的主机ID范围 code: 子网 开始的IP地址 最后的IP地址 129.20.32.0 129.20.32.1 129.20.63.254 129.20.64.0 129.20.64.1 129.20.95.254 129.20.96.0 129.20.96.1 129.20.127.254 129.20.128.0 129.20.128.1 129.20.159.254 129.20.160.0 129.20.160.1 129.20.191.254 129.20.192.0 129.20.192.1 129.20.223.254 快捷计算法: ①将所需的子网数转换为二进制 4→00000100 ②以二进制表示子网数所需的位数即为向缺省子网掩码中加入的位数(既应向主机ID借用的位数) 00000100→3位 ③决定子网掩码 缺省的:255.255.0.0 借用主机ID的3位以后:255.255.224(11100000).0,即将所借的位全表示为1,用作子网掩码。 ④将11100000最右边的"1"转换为十进制,即为每个子网ID之间的增量,记作delta ? ?=32 ⑤产生的子网ID数为:2m-2 (m:向缺省子网掩码中加入的位数) 可用子网ID数:23-2=6 ⑥将?附在原网络ID之后,形成第一个子网网络ID 129.20.32.0 ⑦重复⑥,后续的每个子网的值加?,得到所有的子网网络ID 129.20.32.0 129.20.64.0 129.20.96.0 129.20.128.0 129.20.160.0 129.20.192.0 |
|