Chinaunix首页 | 论坛 | 博客
  • 博客访问: 934714
  • 博文数量: 189
  • 博客积分: 10041
  • 博客等级: 上将
  • 技术积分: 2321
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-01 10:11
个人简介

Linux ... ...

文章分类

全部博文(189)

文章存档

2014年(3)

2013年(1)

2010年(5)

2009年(34)

2008年(41)

2007年(105)

我的朋友

分类: 系统运维

2009-02-19 13:56:01

   子网的划分,实际上就是设计于网掩码的过程。子网掩码主要是用来区分IP地址中的网络ID和主机ID,它用来屏蔽IP地址的一部分,从IP地址中分离出网 络ID和主机ID.子网掩码是由4个十进制数组成的数值"中间用"。"分隔,如255.255.255.0。若将它写成二进制的形式为: 11111111.11111111.11111111.00000000,其中为"1"的位分离出网络ID,为"0"的位分离出主机ID,也就是通过将 IP地址与子网掩码进行"与"逻辑操作,得出网络号。
  例如,假设IP地址为192.160.4.1,子网掩码为255.255.255.0,则网络ID为192.160.4.0,主机ID为0.0.0.1。计算机网络ID的不同,则说明他们不在同一个物理子网内,需通过路由器转发才能进行数据交换
   每类地址具有默认的子网掩码:对于A类为255.0.0.0,对于B类为255.255.0.0,对于C类为255.255.255.0。除了使用上述 的表示方法之外,还有使用于网掩码中"1"的位数来表示的,在默认情况下,A类地址为8位,B类地址为16位,C类地址为24位。例如,A类的某个地址为 12.10.10.3/8,这里的最后一个"8"说明该地址的子网掩码为8位,而199.42.26.0/28表示网络199.42.26。0的子网掩码 位数有28位。
  如果希望在一个网络中建立子网,就要在这个默认的子网掩码中加入一些位,它减少了用于主机地址的位数。加入到掩码中的位数决定了可以配置的于网。因而,在一个划分了子网的网络中,每个地址包含一个网络地址、一个子网位数和一个主机地址,如图1所示。
  在图1中,子网位来自主机地址的最高相邻位,并从一个8位的位组边界开始,因为默认的子网掩码总是在8位位组的边界处结束。随着主机位中加入子网位的增加,我们可以从左到右计数,并用和它们位置相关的值。将它们转换为十进制。
  图1:
   
  
  从每个主机位加入的子网位中,得到子网的对应十进制数,总结在表1中
  表1:
   
  
  下面举例说明,使用没有子网的子网掩码和使用于网的子网掩码的区别。若有二个B类IP地址172.16.2.160,其默认的子网掩码是255.255.0.0,则完成下面任务
  若不使用子网,即只使用默认的子网掩码,其运算过程如图2所示。
  若使用8位子网位,则其运算过程如图3所示。
  注意:在图3中,使用了8位子网位,其子网掩码值从默认的255.255.0.0转变为255.255.255.0,从而使逻辑"与"之后的网络号发生了变化。 
  图2:
   
  
  图3:
  
在思科网络技术学院CCNA教学和考试当中,不少同学在进行IP地址规划时总是很头疼子网和掩码的计算。现在给大家一个小窍门,可以顺利解决这个问题。
  
  首先,我们看一个CCNA考试中常见的题型:一个主机的IP地址是202.112.14.137,掩码是255.255.255.224,要求计算这个主机所在网络的网络地址和广播地址。
  
   常规办法是把这个主机地址和子网掩码都换算成二进制数,两者进行逻辑与运算后即可得到网络地址。其实大家只要仔细想想,可以得到另一个方法: 255.255.255.224的掩码所容纳的IP地址有256-224=32个(包括网络地址和广播地址),那么具有这种掩码的网络地址一定是32的倍 数。而网络地址是子网IP地址的开始,广播地址是结束,可使用的主机地址在这个范围内,因此略小于137而又是32的倍数的只有128,所以得出网络地址 是202.112.14.128。而广播地址就是下一个网络的网络地址减1。而下一个32的倍数是160,因此可以得到广播地址为 202.112.14.159。可参照下图来理解本例。
  

  CCNA考试中,还有一种题型,要你根据每个网络的主机数量进行子网地址的规划和计算子网掩码。这也可按上述原则进行计算。比如一个子网有10台主机,那么对于这个子网需要的IP地址是:
  
  10+1+1+1=13
  
  注意:加的第一个1是指这个网络连接时所需的网关地址,接着的两个1分别是指网络地址和广播地址。因为13小于16(16等于2的4次方),所以主机位为4位。而
  
  256-16=240
  
  所以该子网掩码为255.255.255.240。
  
  如果一个子网有14台主机,不少同学常犯的错误是:依然分配具有16个地址空间的子网,而忘记了给网关分配地址。这样就错误了,因为:
  
  14+1+1+1=17
  
  17大于16,所以我们只能分配具有32个地址(32等于2的5次方)空间的子网。这时子网掩码为:255.255.255.224。

ip地址是32位的二进制数值,用于在tcp/ip通讯协议中标记每台计算机的地址。通常我们使用点式十进制来表示,如192.168.0.5等等。
   每个ip地址又可分为两部分。即网络号部分和主机号部分:网络号表示其所属的网络段编号,主机号则表示该网段中该主机的地址编号。按照网络规模的大小, ip地址可以分为a、b、c、d、e五类,其中a、b、c类是三种主要的类型地址,d类专供多目传送用的多目地址,e类用于扩展备用地址。a、b、c三类 ip地址有效范围如下表:
  
  类别 网络号 /占位数 主机号 /占位数 用途
  a 1~126 / 8 0~255 0~255 1~254 / 24 国家级
  b 128~191 0~255 / 16 0~255 1~254 / 16 跨过组织
  c 192~223 0~255 0~255 / 24 1~254 / 8 企业组织
  
   随着互连网应用的不断扩大,原先的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地址,还需要将其高位主机位再作为划分出的子网网络号,剩下的是每个子 网的主机号,这时该如何进行每个子网的掩码计算。
  一、利用子网数来计算
  在求子网掩码之前必须先搞清楚要划分的子网数目,以及每个子网内的所需主机数目。
  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

子网掩码的算法


一、利用子网数来计算
  在求子网掩码之前必须先搞清楚要划分的子网数目,以及每个子网内的所需主机数目。
  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(c)类IP地址168.195.0.0划分成若干子网,每个子网内有主机700台(17):
  1) 700=1010111100
  2)该二进制为十位数,N = 10(1001)
  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的子网掩码。

子网掩码的简便算法


举例说明该算法。
  例:给定一 class c address : 192.168.5.0 ,要求划分20个子网,每个子网5
  个主机。
  解:因为4 <5 < 8 ,用256-8=248 ――>即是所求的子网掩码,对应的子网数
  也就出来了。这是针对C类地址。老师也只讲了针对C类地址的做法。下面是我自
  己推出来的针对B类地址的做法。
  对于B类地址,假如主机数小于或等于254,与C类地址算法相同。
  对于主机数大于254的,如需主机 700台,50个子网(相当大了),
   512 < 700< 1024 
  256-(1024/256)=256-4=252 ――>即是所求的子网掩码,对应的子网数也就
  出来了。
  上面256-4中的4(2的2次幂)是指主机数用2进制表示时超过8位的位数,即超过
  2位,掩码为剩余的前6位,即子网数为2(6)-2=62个。
  欢迎指正。
  
  Append :Host/Subnet Quantities Table
   
  

阅读(1343) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~