子网掩码概述

1.子网掩码的概念
  子网掩码是一个32位地址,用于屏蔽IP地址的一部分以区别网络标识和主机标识,并说明该IP地址是在局域网上,还是在远程网上。
  
  2.确定子网掩码数
  用于子网掩码的位数决定于可能的子网数目和每个子网的主机数目。在定义子网掩码前,必须弄清楚本来使用的子网数和主机数目。
  
  定义子网掩码的步骤为:
  
  A、确定哪些组地址归我们使用。比如我们申请到的网络号为 “210.73.a.b”,该网络地址为c类IP地址,网络标识为“210.73”,主机标识为“a.b”。
  
  B、根据我们现在所需的子网数以及将来可能扩充到的子网数,用宿主机的一些位来定义子网掩码。比如我们现在需要12个子网,将来可能需要16个。用第 三个字节的前四位确定子网掩码。前四位都置为“1”,即第三个字节为“11110000”,这个数我们暂且称作新的二进制子网掩码。
  
  C、把对应初始网络的各个位都置为“1”,即前两个字节都置为“1”,第四个字节都置为“0”,则子网掩码的间断二进制形式为:“11111111.11111111.11110000.00000000”
  
  D、把这个数转化为间断十进制形式为:“255.255.240.0”
  
  这个数为该网络的子网掩码。
  
  3.IP掩码的标注
  A、无子网的标注法
  
  对无子网的IP地址,可写成主机号为0的掩码。如IP地址210.73.140.5,掩码为255.255.255.0,也可以缺省掩码,只写IP地址。
  
  B、有子网的标注法
  
  有子网时,一定要二者配对出现。以C类地址为例。
  
  1.IP地址中的前3个字节表示网络号,后一个字节既表明子网号,又说明主机号,还说明两个IP地址是否属于一个网段。如果属于同一网络区间,这两个 地址间的信息交换就不通过路由器。如果不属同一网络区间,也就是子网号不同,两个地址的信息交换就要通过路由器进行。例如:对于IP地址为 210.73.140.5的主机来说,其主机标识为00000101,对于IP地址为210.73.140.16的主机来说它的主机标识为 00010000,以上两个主机标识的前面三位全是000,说明这两个IP地址在同一个网络区域中,这两台主机在交换信息时不需要通过路由器进行 10.73.60.1的主机标识为00000001,210.73.60.252的主机标识为11111100,这两个主机标识的前面三位000与011 不同,说明二者在不同的网络区域,要交换信息需要通过路由器。其子网上主机号各为1和252。
  
  2.掩码的功用是说明有子网和有几个子网,但子网数只能表示为一个范围,不能确切讲具体几个子网,掩码不说明具体子网号,有子网的掩码格式(对C类地址)。
 
什么是IP 地址?
随着电脑技术的逐步普及和因特网技术的迅猛发展,学习因特网、利用因特网已不再是那些腰缠万贯的大款和戴者深度眼睛的专业技术人员的专利,它已作为二十一 世纪人类的一种新的生活方式而逐步深入到寻常百姓家。谈到因特网,IP地址就不能不提,因为无论是从学习还是使用因特网的角度来看,IP地址都是一个十分 重要的概念,INTERNET的许多服务和特点都是通过IP地址体现出来的。
   
  我们知道因特网是全世界范围内的计算机联为 一体而构成的通信网络的总称。联在某个网络上的两台计算机之间在相互通信时,在它们所传送的数据包里都会含有某些附加信息,这些附加信息就是发送数据的计 算机的地址和接受数据的计算机的地址。象这样,人们为了通信的方便给每一台计算机都事先分配一个类似我们日常生活中的电话号码一样的标识地址,该标识地址 就是我们今天所要介绍的IP地址。根据TCP/IP协议规定,IP地址是由32位二进制数组成,而且在INTERNET范围内是唯一的。例如,某台联在因 特网上的计算机的IP地址为:
  
  11010010 01001001 10001100 00000010
  
  很明显,这些数字对于人来说不太好记忆。人们为了方便记忆,就将组成计算机的IP地址的32位二进制分成四段,每段8位,中间用小数点隔开,然后将每八位二进制转换成十进制数,这样上述计算机的IP地址就变成了:210.73.140.2。
IP 地址的分类
我们说过因特网是把全世界的无数个网络连接起来的一个庞大的网间网,每个网络中的计算机通过其自身的IP地址而被唯一标识的,据此我们也可以设想,在 INTERNET上这个庞大的网间网中,每个网络也有自己的标识符。这与我们日常生活中的电话号码很相像,例如有一个电话号码为0515163,这个号码 中的前四位表示该电话是属于哪个地区的,后面的数字表示该地区的某个电话号码。与上面的例子类似,我们把计算机的IP地址也分成两部分,分别为网络标识和 主机标识。同一个物理网络上的所有主机都用同一个网络标识,网络上的一个主机(包括网络上工作站、服务器和路由器等)都有一个主机标识与其对应?IP地址 的4个字节划分为2个部分,一部分用以标明具体的网络段,即网络标识;另一部分用以标明具体的节点,即主机标识,也就是说某个网络中的特定的计算机号码。 例如,盐城市信息网络中心的服务器的IP地址为210.73.140.2,对于该IP地址,我们可以把它分成网络标识和主机标识两部分,这样上述的IP地 址就可以写成:
  
  网络标识:210.73.140.0
  
  主机标识: 2
  
  合起来写:210.73.140.2
  
  由于网络中包含的计算机有可能不一样多,有的网络可能含有较多的计算机,也有的网络包含较少的计算机,于是人们按照网络规模的大小,把32位地址信息设成三种定位的划分方式,这三种划分方法分别对应于A类、B类、C类IP地址。
  
  1.A类IP地址
  
   一个A类IP地址是指,在IP地址的四段号码中,第一段号码为网络号码,剩下的三段号码为本地计算机的号码。如果用二进制表示IP地址的话,A类IP地 址就由1字节的网络地址和3字节主机地址组成,网络地址的最高位必须是“0”。A类IP地址中网络的标识长度为7位,主机标识的长度为24位,A类网络地 址数量较少,可以用于主机数达1600多万台的大型网络。
  
  2.B类IP地址
  
  一个B类IP地址是 指,在IP地址的四段号码中,前两段号码为网络号码,B类IP地址就由2字节的网络地址和2字节主机地址组成,网络地址的最高位必须是“10”。B类IP 地址中网络的标识长度为14位,主机标识的长度为16位,B类网络地址适用于中等规模规模的网络,每个网络所能容纳的计算机数为6万多台。
  
  3.C类IP地址
  
   一个C类IP地址是指,在IP地址的四段号码中,前三段号码为网络号码,剩下的一段号码为本地计算机的号码。如果用二进制表示IP地址的话,C类IP地 址就由3字节的网络地址和1字节主机地址组成,网络地址的最高位必须是“110”。C类IP地址中网络的标识长度为21位,主机标识的长度为8位,C类网 络地址数量较多,适用于小规模的局域网络,每个网络最多只能包含254台计算机。
  
  除了上面三种类型的IP地址外,还有几种特 殊类型的IP地址,TCP/IP协议规定,凡IP地址中的第一个字节以“11110”开始的地址都叫多点广播地址。因此,任何第一个字节大于223小于 240的IP地址是多点广播地址;IP地址中的每一个字节都为0的地址(“0.0.0.0”)对应于当前主机;IP地址中的每一个字节都为1的IP地址 (“255.255.255.255”)是当前子网的广播地址;IP地址中凡是以“11110”的地址都留着将来作为特殊用途使用;IP地址中不能以十进 制“127”作为开头,127.1.1.1用于回路测试,同时网络ID的第一个6位组也不能全置为“0”,全“0”表示本地网络。
IP 地址的寻址规则
   1. 网络寻址规则
   A、 网络地址必须唯一。
  
   B、 网络标识不能以数字127开头。在A类地址中,数字127保留给内部回送函数。
  
   C、 网络标识的第一个字节不能为255。数字255作为广播地址。
  
   D、 网络标识的第一个字节不能为“0”,“0”表示该地址是本地主机,不能传送。
  
   2. 主机寻址规则
   A、主机标识在同一网络内必须是唯一的。
  
   B、主机标识的各个位不能都为“1”,如果所有位都为“1”,则该机地址是广播地址,而非主机的地址。
  
   C、主机标识的各个位不能都为“0”,如果各个位都为“0”,则表示“只有这个网络”,而这个网络上没有任何主机。
   子网掩码概述
  1. 子网掩码的概念
  子网掩码是一个32位地址,用于屏蔽IP地址的一部分以区别网络标识和主机标识,并说明该IP地址是在局域网上,还是在远程网上。
  
   2. 确定子网掩码数
  用于子网掩码的位数决定于可能的子网数目和每个子网的主机数目。在定义子网掩码前,必须弄清楚本来使用的子网数和主机数目。
  
  定义子网掩码的步骤为:
  
  A、确定哪些组地址归我们使用。比如我们申请到的网络号为 “210.73.a.b”,该网络地址为c类IP地址,网络标识为“210.73”,主机标识为“a.b”。
  
   B、根据我们现在所需的子网数以及将来可能扩充到的子网数,用宿主机的一些位来定义子网掩码。比如我们现在需要12个子网,将来可能需要16个。用第三 个字节的前四位确定子网掩码。前四位都置为“1”,即第三个字节为“11110000”,这个数我们暂且称作新的二进制子网掩码。
  
  C、把对应初始网络的各个位都置为“1”,即前两个字节都置为“1”,第四个字节都置为“0”,则子网掩码的间断二进制形式为:“11111111.11111111.11110000.00000000”
  
  D、把这个数转化为间断十进制形式为:“255.255.240.0”
  
  这个数为该网络的子网掩码。
  
   3.IP 掩码的标注
  A、无子网的标注法
  
  对无子网的IP地址,可写成主机号为0的掩码。如IP地址210.73.140.5,掩码为255.255.255.0,也可以缺省掩码,只写IP地址。
  
  B、有子网的标注法
  
  有子网时,一定要二者配对出现。以C类地址为例。
  
   1.IP地址中的前3个字节表示网络号,后一个字节既表明子网号,又说明主机号,还说明两个IP地址是否属于一个网段。如果属于同一网络区间,这两个地 址间的信息交换就不通过路由器。如果不属同一网络区间,也就是子网号不同,两个地址的信息交换就要通过路由器进行。例如:对于IP地址为 210.73.140.5的主机来说,其主机标识为00000101,对于IP地址为210.73.140.16的主机来说它的主机标识为 00010000,以上两个主机标识的前面三位全是000,说明这两个IP地址在同一个网络区域中,这两台主机在交换信息时不需要通过路由器进行 10.73.60.1的主机标识为00000001,210.73.60.252的主机标识为11111100,这两个主机标识的前面三位000与011 不同,说明二者在不同的网络区域,要交换信息需要通过路由器。其子网上主机号各为1和252。
  
  2.掩码的功用是说明有子网和有几个子网,但子网数只能表示为一个范围,不能确切讲具体几个子网,掩码不说明具体子网号,有子网的掩码格式(对C类地址)。
 
划分子网的方法
 
 子网的划分,实际上就是设计于网掩码的过程。子网掩码主要是用来区分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:

 
 
 
 
子网掩码的简便算法
 举例说明该算法。
  例:给定一 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
   
  
子网掩码的算法
一、利用子网数来计算
  在求子网掩码之前必须先搞清楚要划分的子网数目,以及每个子网内的所需主机数目。
  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的子网掩码。
快速计算子网掩码和主机块
---- 业务的发展常常会导致许多单位面临这样一个问题:工作站数量越来越多,管理
  单一的大型网络也变得越来越艰难。如果将一个单一的大型网络划分为多个子网,通过
  对每个子网进行单独管理,可以明显地提高整个网络的性能。
  ---- 要划分子网就需要计算子网掩码和分配相应的主机块,尽管采用二进制计算可以得
  出相应的结论,但如果采用十进制计算方法,计算起来更为简便。经过长期实践与经验
  积累,笔者总结出子网掩码及主机块的十进制算法。
  一、明确概念
  ---- 在介绍十进制算法前我们先要明确一些概念。
  类范围:IP地址常采用点分十进制表示方法X.Y.Y.Y,在这里,X在1~126范围内称为A类
  地址;X在128~191范围内称为B类地址;X在192~223范围内称为C类地址。比如10.202
  .52.130,因为X为10,在1~126范围内,所以称为A类地址。
  类默认子网掩码:A类为 255.0.0.0; B类为 255.255.0.0; C类为 255.255.255.0。当我
  们要划分子网用到子网掩码M时,类子网掩码的格式如下:A类为 255.M.0.0,B类为 25
  5.255.M.0,C类为 255.255.255.M。M是相应的子网掩码,比如255.255.255.240。
  十进制计算基数是256(下面,我们所有的十进制计算都要用256来进行)。
  二、变量说明
  ---- 1.Subnet_block指可分配子网块大小,表示在某一子网掩码下子网的块数。
  ---- 2.Subnet_num是可分配子网数,指可分配子网块中要剔除首、尾两块,是某一子
  网掩码下可分配的实际子网数量。Subnet_num =Subnet_block-2。
  ---- 3.IP_block指每个子网可分配的IP地址块大小。
  ---- 4.IP_num指每个子网实际可分配的IP地址数。因为每个子网的首、尾IP地址必须
  保留(一个为网络地址,一个为广播地址),所以它等于IP_block-2,IP_num也用于计
  算主机块。
  ---- 5.M指子网掩码。
  ---- 表示上述变量关系的公式如下:
  ---- M=256-IP_block IP_block=256/Subnet_block或Subnet_block=256/IP_block IP
  _num=IP_block-2 Subnet_num=Subnet_block-2。
  ---- 6.2的幂数。大家要熟练掌握28(256)以内的2的幂代表的十进制数(如128=27、
  64=26等),这样可以使我们立即推算出Subnet_block和IP_block的数目。
三、举例说明
  ---- 现在,通过举一些实际例子,大家可以对子网掩码和主机块的十进制算法有深刻的
  了解。
  ---- 1.已知所需子网数12,求实际子网数。
  ---- 这里实际子网数指Subnet_num,由于12最接近2的幂为16(24),即Subnet_block
  =16,那么Subnet_num=16-2=14,故实际子网数为14。
  ---- 2.已知一个B类子网的每个子网主机数要达到60×255个(约相当于X.Y.0.1~X.Y.
  59.254的数量),求子网掩码。
  ---- 首先,60接近2的幂为64(26),即IP_block=64; 其次,子网掩码M=256-IP_blo
  ck=256-64=192,最后由子网掩码格式B类是255.255.M.0得出子网掩码为255.255.192.
  0。
  ---- 3.如果所需子网数为7,求子网掩码。
  ---- 7最接近2的幂为8,但8个Subnet_block因为要保留首、尾2个子网块,即 8-2=6<
   7,并不能达到所需子网数,所以应取2的幂为16,即Subnet_block=16。因为IP_block
  =256/Subnet_block=256/16=16,所以子网掩码M=256-IP_block=256-16=240。
  ---- 4.已知网络地址为211.134.12.0,要有4个子网,求子网掩码及主机块。
  ---- 由于211.Y.Y.Y是一个C类网,子网掩码格式为255.255.255.M,又知有4个子网,4
  接近2的幂是8(23),所以Subnet_block=8,Subnet_num=8-2=6,IP_block=256/Subn
  et_block=256/8=32,子网掩码M=256-IP_block=256-32=224,故子网掩码表示为255.
  255.255.224。又因为子网块的首、尾两块不能使用,所以可分配6个子网,每个子网有
  32个可分配主机块,即32~63、64~95、96~127、128~159、160~191、192~223,其
  中首块(0~31)和尾块(224~255)不能使用。
  ---- 由于每个子网块中的可分配主机块又有首、尾两个不能使用(一个是子网网络地址
  ,一个是子网广播地址),所以主机块分别为33~62、65~94、97~126、129~158、1
  61~190及193~222,因此子网掩码为255.255.255.224,主机块共有6段,分别为211.1
  34.12.33~211.134.12.62、211.134.12.65~211.134.12.94、211.134.12.97~211.134
  .12.126、211.134.12.129~211.134.12.158、211.134.12.161~211.134.12.190及211
  .134.12.193~211.134.12.222。用户可以任选其中的4段作为4个子网。
  ---- 总之,只要理解了公式中的逻辑关系,就能很快计算出子网掩码,并得出可分配的
  主机块。
   子网的计算
 在思科网络技术学院 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
子网掩码的用处之一
便于网络设备尽快地区分本网段地址和非本网段的地址。
  
  例如:下图所示
  
  
  
  主机A与主机B交互信息。
  
  主机A: IP地址:202.183.58.11
  
    子网掩码:255.255.255.0
  
    路由地址:202.183.58.1
  
  主机B: IP地址:202.183.56.5
  
    子网掩码:255.255.255.0
  
    路由地址:202.183.56.1
  
  路由器从端口202.183.58.1接收到主机A发往主机B的IP数据报文后,
  
  (1)首先用端口地址202.183.58.1与子网掩码地址255.255.255.0进行“逻辑与”,得到端口网段地址:202.183.58.0,
  
  (2)然后将目的地址202.183.56.5与子网掩码地址255.255.255.0进行“逻辑与”,得202.183.56.0,
  
  (3)将结果202.183.56.0与端口网段地址202.183.58.0比较,如果相同,则认为是本网段的,不予转发。如果不相同,则将该IP报文转发到端口202.183.56.1所对应的网段。
子网掩码的用处之二
将子网进一步划分,缩小子网的地址空间。将一个网段划分为多个子网段,便于网络管理。
  
  例如:下图所示:
  
  
  
  学校校园网信息中心可以将202.183.56.0(C类地址)分配给两个系,每个系约有120台计算机,则可以将子网掩码地址定义为:255.255.255.128
  
  这样将原来的一个网段分成两个独立的子网段,便于网络管理。
   
  系1的地址范围:202.183.56.1—202.183.56.126
  
  子网地址:11001010 10110111 00111000 0xxxxxxx
  
  系2的地址范围:202.183.56.129—202.183.56.254
  
  子网地址:11001010 10110111 00111000 1xxxxxxx
子网掩码的奥秘
 子网掩码是用来判断任意两台计算机的IP地址是否属于同一子网络的根据。
  
  最为简单的理解就是两台计算机各自的IP地址与子网掩码进行AND运算后,如果得出的结果是相同的,则说明这两台计算机是处于同一个子网络上的,可以进行直接的通讯。就这么简单。
  
  以下进行演示:
  **********************************************************
  运算演示之一:
  I P 地址  16. 73.129.233
  子网掩码 255.255.128.0
  AND运算
  ----------------------------------------------------------
  转化为二进制进行运算:
  I P 地址 00010000.01001001.10000001.11101001
  子网掩码 11111111.11111111.11111000.00000000
  AND运算
  ----------------------------------------------------------
   00010000.01001001.10000000.00000000
  转化为十进制后为:
  ----------------------------------------------------------
  16  .  73  . 128  .  0
  
  **********************************************************
  运算演示之二:
  I P 地址  16. 73.129.1
  子网掩码 255.255.128.0
  AND运算
  ----------------------------------------------------------
  转化为二进制进行运算:
  I P 地址 00010000.01001001.10000001.00000001
  子网掩码 11111111.11111111.10000000.00000000
  AND运算
  ----------------------------------------------------------
   00010000.01001001.10000000.00000000
  转化为十进制后为:
  ----------------------------------------------------------
  16  .  73  . 128  .  0
  
  **********************************************************
  运算演示之三:
  I P 地址  16. 73.143.255
  子网掩码 255.255.128.0
  AND运算
  ----------------------------------------------------------
  转化为二进制进行运算:
  I P 地址 00010000.01001001.10001111.11111111
  子网掩码 11111111.11111111.10000000.00000000
  AND运算
  ----------------------------------------------------------
   00010000.01001001.10000000.00000000
  转化为十进制后为:
  ----------------------------------------------------------
  16  .  73  . 128  .  0
  
  通过以上对三组计算机IP地址与子网掩码的AND运算后,我们可以看到
  它运算结果是一样的。均为16.73.128.0
  所以计算机就会把这三台计算机视为是同一子网络,然后进行通讯的。
  这也就是我单位网络网络运行的现状。
  
  引:但是究竟有多少了IP地址可以用呢?
  答:由以上我们也可以看出,我们单位的计算机网络用户是由我们所分配
  的子网掩码所决定的。通过对255.255.128.0的分析。可得出:
  前两位IP码由分配下来的数字就只能固定为16.73
  重要的是后两个IP码的确定。
  
  1、十进制128 = 二进制1000 0000
  
  2、IP码要和子网掩码进行AND运算
  
  3、
  I P 地址 00010000.01001001.1*******.********
  子网掩码 11111111.11111111.10000000.00000000
  AND运算
  ----------------------------------------------------------
   00010000.01001001.10000000.00000000
  转化为十进制后为:
  ----------------------------------------------------------
  16  .  73  . 128  .  0
  
  4、可知我们单位可用的IP地址为:
  
  00010000.01001001.10000000.00000000
   到
  00010000.01001001.11111111.11111111
  
  5、转化为十进制:
  
  16.73.128.0 到 16.73.255.255
  
  6、0和255通常作为网络的内部特殊用途。通常不使用。
  
  7、于是最后的结果如下:我们单位所有可用的IP地址为:
  16.73.128.1-16.73.128.254
  16.73.129.1-16.73.129.254
  16.73.130.1-16.73.130.254
  16.73.131.1-16.73.131.254
  . . . . . . . . . . . . .
  16.73.139.1-16.73.139.254
  16.73.140.1-16.73.140.254
  16.73.141.1-16.73.141.254
  16.73.142.1-16.73.142.254
  16.73.143.1-16.73.143.254
  . . . . . . . . . . . . .
  16.73.254.1-16.73.254.254
  16.73.255.1-16.73.255.254
  
  8、总数为(255-128+1)*(254-1+1) =128 * 254 = 32512
  
  9、测试研究的结果是否正确
  
  (1)、设定IP地址为16.73.128.1
  
  Ping 16.73.129.233通过测试
  
  访问http://16.73.129.233可以显示出主页
  
  (2)、设定IP地址为16.73.255.254
  
  Ping 16.73.129.233通过测试
  
  访问http://16.73.129.233可以显示出主页
  
  10、结论
  
  以上的实例分析结果表明其原理的正确性。
  
  **************************************************************************
  实战演练之一:
  Q:如何设置子网掩码,让168.168.1.0一到168.168.1.15成为一个独立的子网络?
  A:255.255.255.240
  因为240的二进制1111 0000与二进制0000 0000 进行 AND 运算后的结果都等于0
  所以可以采用子网掩码255.255.255.240进行配置网络。
  
  实战演练之二:
  在局域网运行平台下,若要让不同机器能够彼此互相连通,IP地址最简单的设置方法是:
  IP地址的前三位码相同,最后一位码相异,然后子网掩码采用255.255.255.0即可。
  例如:我们单位原有的IP地址码197.2.2.1-197.2.2.254和子网掩码255.255.255.0
 
 
 
 
 
子网掩码及其应用
TCP/IP协议中,SUBNET MASKS(子网掩码)的作用是用来区分网络上的主机是否在同一网络取段内。在大型网络中,CLASS A的SUBNET MASKS为255.0.0.0, CLASS B的SUBNET MASKS为255.255.0.0,CLASS C的SUBNET MASKS为255.255.255.0。
  
    假如某台主机的SUBNET MASKS为IP地址为202.119.115.78,它的SUBNET MASKS为255.255.255.0。将这两个数据作AND运算后,所得出的值中的非0的BYTE部分即为NETWORK ID 。运算步骤如下:
  
    202.119.115.78的二进制值为:
    11001010.01110111.01110011.01001110
    255.255.255.0的二进制值为:
    11111111.11111111.11111111.00000000
    AND后的结果为:  
    11001010.01110111.01110011.00000000
    转为二进制后即为:
    202.119.115.0
  
     它就是NETWORK ID,在IP地址中剩下的即为HOST ID,即为78,这样当有另一台主机  的IP 地址为202.119.115.83,它的SUBNET MASKS也是255.255.255.0,则其NETWORK ID  为202.119.115,HOST ID为83,因为这两台主机的NETWORK ID都是202.119.115,因此,这两台主机在同一网段内。
  
    但是,在实际应用中,可能会有多个分布与各地的网络, 而且,每个网络的主机数量并不很多,如果申请多个NETWORK ID,会造成IP资源的浪费,而且很不经济,如果我们在SUBNET MASKS上动一下手脚,可以在只申请一个NETWORK ID的基础上解决这个问题。
  
    比如,我们有三个不同的子网,每个网 络的HOST数量各为20、25和50,下面依次称为甲、乙和丙网,但只申请了一个NETWORK ID 就是202.119.115。首先我们把甲和乙网的SUBNET MASKS改为255.255.255.224,224的二进制为11100000,即它的SUBNET MASKS为:
  
    11111111.11111111.11111111.11100000
  
     这样,我们把HOST ID的高三位用来分割子网,这三位共有000、001、010、011、100、 101、110、111八种组合,除去000(代表本身)和111(代表广播),还有六个组合,也就是可提供六个子网,它们的IP地址分别为:(前三个字节还是202.119.115)
  
  
    00100001~00111110 即33~62为第一个子网
    01000001~01011110 即65~94为第二个子网
    01100001~01111110 即97~126为第三个子网 
    10000001~10011110 即129~158为第四个子网 
    10100001~10111110 即161~190为第五个子网 
    11000001~11011110 即193~222为第六个子网
    选用161~190段给甲网,193~222段给乙网,因为各个子网都支持30台主机,足以应付甲网和乙网20台和25台的需求。
  
    再来看丙网,由于丙网有50台主机,按上述分割方法无法满足它的IP需求,我们 可以将它的SUBNET MASKS设为255.255.255.192, 由于192的二进制值为11000000,按上述方法,它可以划分为两个子网,IP地址为:
  
    01000001~01111110 即65~126为第一个子网 
    10000001~10111110 即129~190为第二个子网
  
    这样每个子网有62个IP可用,将65~126分配丙网,多个子网用一个NETWORK ID 即告实现。
  
  
     如果将子网掩码设置过大,也就是说子网范围扩大。那么根据子网寻径规则,很可能发往和本地机不在同一子网内的目的机的数据,会因为错误的相与结果而认为是在同一子网内,那么,数据包将在本子网内循环,直到超时并抛弃。数据不能正确到达目的机,导致网络传输错误。如果将子网掩码设置得过小,那么就会将 本来属于同一子网内的机器之间的通信当做是跨子网传输,数据包都交给缺省网关处理,这样势必增加缺省网关的负担,造成网络效率下降。因此,任意设置子网掩码是不对的,应该根据网络管理部门的规定进行设置。
  
    随着IP地址资源的日趋枯竭,可供分配的IP地址越来越少,往往一个拥有几百台计算机规模的网络只能得到区区几个IP地址,于是,许多人开始采用其他技术来扩展IP空间。
  
    1.子网掩码设置
  
    如果你所分配的IP地址仅能满足对主机的需求,但远不能满足你欲在局 域网中再建若干子网的需要,设置子网掩码就是你不得不采取的措施了。
  
    子网掩码同样也以四个字节来表示,用来区分IP地址的网络号和主机号, 默认子网掩码如下表所示:
  
    子网掩码(以十进制表示)
    A类 255.0.0.0
    B类 255.255.0.0
    C类 255.255.255.0
  
    当IP地址与子网掩码相与时,非零部分即被确认为网络号。
  
     假如我们将子网掩码中第四字节最高位起的某些位由0修改成1,使本来应当属于主机号的 部分改变成为网络号,这样就实现了我们划分子网的目的。例如你得到了一个C类网络地址198.189.98,按常规,你所有的设备从 198.189.98.0到198.189.98.254都将处于同一网络之中,但如果你需要将自己的网络划分成5个子网以便管理,那就必须修改子网掩码255.255.255.0,将此掩码的第四个字节中的前三位再拿出来充当子网掩码,即将第四字节的00000000 修改成11100000(十进制数为224),故应当将子网掩码设置为255.255.255.224。这样我们有001、010、011、100、 101、110六种方式与之相与得到不同的网络号(除去000和111作为保留地址不能使用),各子网的前三个字节仍然是198.189.98。可以知 道:如子网掩码的位数越多,能划分的子网数也就越多,但是每个子网的主机数就会越少。子网掩码的划分设置也有一个缺点:划分的子网越多,损失的IP地址也会越多。因为每个子网都会保留全0或全1的两个地址而不 能使用。
  
    2.动态IP地址设置
  
    DHCP (DynamicHostConfigurationProtocol)动态主机配置协议是一种多个工作站共享IP地址的方法。当我们分配到的IP地址数目远小于一个网络工作站的数目时,如果为每个设备都分配一个固定的IP地址,则显然有一部分计 算机将不能连入网络。DHCP为我们提供了一个较好的解决方法,其前提条件是其中每一个设备都不是随时都需要连接入网,并且同一时刻上网的设备不会很多。动态IP地址,顾名思义就是每一个设备所取得的IP地址是非固定的,即计算机连入网络时自动申请取得一个合法的IP地址,断开网络时自动归还,以便其他计 算机使用。这样,我们可以用较少的IP地址构建较大的网络,也可以增加网络工作站的可移性,如果一台主机从一个子网移动到另一个子网时,由于网络号的不同将修改该计算机的IP地址,否则无法与其他主机通信,而如果我们采用动态IP地址,就会减少网络管理的复杂性。现在DHCP已非常流行,所支持的软件很多,且可以运行于不同机器和平台。目前拨号上Internet的 用户就基本上采用这种方法。
  
    3.非路由地址
  
    在IP地址范围内,IANA(InternetAssignedNumbersAuthority)将一部分地址保留作为私人IP地址空间,专门用于内部局域网使用,这些地址如下表:
    类 IP地址范围             网络数
    A 10.0.0.0---10.255.255.255     1
    B 172.16.0.0---172.31.255.255    16
    C 192.168.0.0---192.168.255.255   255
  
     这些地址是不会被Internet分配的,因此它们在Internet上也从来不会被路由,虽然它们不能直接和Internet网连接,但仍旧可以 被用来和Internet通讯,我们可以根据需要来选用适当的地址类,在内部局域网中大胆地将这些地址当作公用IP地址一样地使用。在Internet 上,那些不需要与Internet通讯的设备,如打印机、可管理集线器等也可以使用这些地址,以节省IP地址资源。
  
    4.代理服务器
  
     代理服务器其实是Internet上的一台主机设备,它有一个固定的IP地址,当你需要上Internet时,就向该服务器提出请求,代理服务器接受请求并为你 建立连接,然后将你所需要的服务返回信息通知你,所有的数据信息和通讯处理 都是通过代理服务器的IP地址来完成。这种情况下,我们局域网内部的主机就应使用非路由地址,这样,即能保证内部主机之间的通讯,又能拒绝外来网络的直接访问请求。
  
    代理服务器具有以下两个优点:一是如果你请求的数据已被同一网段上的其他人请求过了,那么大多数代理服务器都 能从Cache中调用这些数据直接传给你,避免重新连接的时间和带宽;二是代理服务器可以保护你的内部网络不受***,也可以设置对某些主机的访问能力进行必要限制,这实际上起着代理防火墙 的作用。
  
    支持代理服务器的软件也非常多,WinGate、MsProxy等都是非常流行的代理服务器软件。在中国,代理服务器的使用也越来越广泛,中国公众多媒体通讯网(169)其实就是一个巨大的使用代理服务器的例子。
  
    5.地址翻译
  
     所谓地址翻译实际上是路由器中的一个数据包处理过程。当数据包通过路由器时,地址翻译过程将其中的内部私有IP地址解析出来,将其翻译为一个合法的 IP地址。地址翻译过程可以按预先定义好的地址表一一映射翻译,也可以将多个内部私有地址翻译为一个外部合法IP地址。由于网络内每个设备都有一个内部稳 定的IP地址,所以这种方法具有较强的网络安全控制性能。
 
用子网掩码实现多网共用网址
如果一个单位有多个分布在各地的网络,且每个网络的主机数量并不很多,那么申请多个网址(NETWORK ID),不仅会造成IP地址的浪费,而且会使单位付出较大的经济代价。在这种情况下,可以使多个子网共用一个网址,以节省IP地址和资金,下面把我们单位 使用子网掩码实现这个目的的过程介绍给大家。
    一、情况介绍
    我单位有三个位于不同地点的子网(以下称为甲、乙、丙网),各网络的主机数分别为20、25和50。且我单位已申请了一个网址为202119115。
    二、解决过程
    1将甲网和乙网的子网掩码改为255255255224,其最高位224的二进制形式为11100000。
     2我们用子网掩码的高三位来分割子网,它共有000、001、010、011、100、101、110、111八种组合。除000(代表本身)和 111(代表广播)外,还有六种组合,共可提供六个子网,它们分别为:(IP地址前三个字节还是202119115)
    第一子网:00100001-00111110即33-62
    第二子网:01000001-01011110即65-94
    第三子网:01100001-01111110即97-126
    第四子网:10000001-10011110即129-158
    第五子网:10100001-10111110即161-190
    第六子网:11000001-11011110即193-222
    最后我们选第五子网给甲网,第六子网给乙网,因为各个子网都支持30台主机,所以选择的子网足以满足甲网和乙网20台和25台的需要。
    3丙网有50台主机,按上述分割方法无法满足它对IP地址的需要。这时,我们将它的子网掩码设成255255255192,由于192的二进制值为11000000,按上述方法,它可以划分为两个子网,分别为:
    第一子网:01000001-01111110即65-126
    第二子网:10000001-10111110即129-190
    每个子网有62个IP地址可用,我们将第二子网分配给了丙网。
    至此,实现了多个子网共用一个网址。
A 类私有网络子网划分策略
当为一个私有网络设计一个地址管理规划时,使用的原则与其他 IP网络中使用的原则是一样的。地址管理规划的实现应该遵循下列目标:
  简洁性:规划应该尽量简单,以便有尽可能多的人能够理解它。当看到一个特定设备上的IP地址时,就应该可以推断出它是哪一类设备,在网络上的什么位置,不需要查阅大量的文档手册。
  容易管理:规划应该容易实现和维护。规划应至少满足可以预测到的增长,如果可能的话,尽量能够满足不可预测的增长或其他变化。
  有效的路由:象维护这个规划的人要充分了解这个规划一样,每当一个分组要被传送到其他子网上时,都需要规划中的路由器来进行分组的转发工作,所以在这个规划中不要给路由器资源增加很大负担。最理想的策略是建立一个分级地址管理规划,这样可以使路由表相对较小。
   文档:使用尽量简洁的语言来描述这个规划,不要过多的详细解释。按照第2章中的指南,我们给一个大组织进行网络规划。假设这个组织已经决定在它的网络互联中使用私有IP地址管理。具体的实现过程与前面的内容是相同的- - - -选择一个掩码;分配子网位;确定每个子网的地址范围。
  网络:
  我们将研究的网络是相对稳定的。公司拥有3000个零售商店,每个商店中不会多于12个IP设备。来自于管理顾问的报告说明,对中期发展来说这个数量足够用了。每个商店通过租用的点到点线路连接到它的地区分销中心。
  
 

  目前有 18个地区分销中心,每个中心所能支持的商店不会超过200个。分销中心有两个物理网络,一个用于管理,一个用于仓库。在最大的管理LAN上有80个IP设备,仓库LAN需要120个地址。每个分销中心通过两条并行的T3链路连接到总部。
  总部所在地共有14个LAN,通过路由器连接到公司主干网上。总部中最大的LAN上有230 个IP设备。
  图3 - 3给出了公司网络的全貌。表3 - 4给出了网络所需要的地址情况。
  
 

  从表 3 - 4中的信息可以看到,所需要的子网总数量为7305;最大子网中的地址数为230个。
  策略
   对于地址管理问题,尽管有许多正确的解决方案,但也存在着许多争议。由于我们的目标是设计的简洁性,所以我们试图将规划做得尽量简单。由于我们所使用的软件都能支持子网划分,这样我们可以按RFC 1918的要求进行地址管理,并使用24位地址块- - - -即网络10。
  现在,可管理的地址空间长度为24位。如何对它们进行分配呢?现在从我们研究的网络结构上找一些线索。这里应有三级结构:
  • 总部级。
  • 分销中心。
  • 商店。
  这种分级方式是否符合我们的地址管理方案呢?在我们深入了解这个问题前,要决定两件事情。首先,我们要确定是使用定长子网掩码还是使用变长子网掩码?按照简洁性的原则,应该选择定长掩码。这样的网络容易设计和维护。
   下一步就是要决定如何使用掩码。查看一下第2章的A类子网划分表,我们决定使用255.255.255.0掩码。是否可以使用其他的掩码呢?解答是肯定 的,但大部分人都认为255.255.255.0是最容易使用的掩码。这个表也显示,我们现在可使用的子网数为65635,每个子网提供254个地址,这 是比较理想的工作方式。现在,呈现在我们面前的IP地址结构如下:
  • 网络标识: 8位。
  • 子网标识: 16位。
  • 主机标识: 8位。
   这个16位可由两个点分十进制数来表示。也许我们可以将公司网络结构变成两级:地区和商店。此时我们将总部叫做“地区0”。使用这种方法,整个IP地址 的结构描述如下:10.R.S.H 在这里R代表地区号, S代表商店号, H代表主机号。如果使用这种方法实现, IP地址的文档也就自动生成了- - - -这正是我们所希望的事情。
  地址分配
  让我们接着工作。在表3 - 5中,有5个不同的子网组。查看每一个组,以便决定分配什么样的IP地址。
  
 

   1. 总部LAN
  前面已讲过,总部被叫做“地区0”。在这个组中有15 个LAN。对这个组,我们使用10.0.L.0。如果L等于0,则代表主干; L等于1到14,则分别代表管理LAN。有关总部中LAN的信息见表3 - 5。
  2. 从总部到分销中心的WAN连接有许多方法来分配这组地址。两个WAN连接分别使用10.100+R.0.0和10.20 0+R.0.0地址,分别连接到地区分销中心。这里R是地区号。表3 - 6给出了这些分配信息。
  

   3. 分销中心的LAN
  


 

路由选择协议与VLSM 子网设计

 
 随着网络应用的日益广泛,接入网络和边缘网络的需求也更加复杂多样,企业为了开展电子商务,必须实现与Internet的互联,路由器是实现这一互联的 关键设备。路由器可以为企业提供越来越多的智能化服务,包括安全性、可用性和服务质量(QoS)等。下面结合实践经验,讨论Cisco 路由器的路由选择协议与VLSM子网设计。
  一、路由选择协议的分类
  ---- 一般路由器支持多种路由选择协议,例如静态路由、RIP、IGRP、RIPv2、EIGRP、OSPF和BGP等等。这些路由选择协议可分为有类路由选择协议和无类路由选择协议。
  ---- 1.有类路由选择协议
  ---- 一般把路由信息协议(RIP)和内部网关路由选择协议(IGRP)等称为有类路由协议。在有类路由选择协议中,只在路由器之间传送路由和它的度量值,对每个转发报文,路由器从报文中取出目的地址,各路由器通过下面2种方法判定目的地网络掩码。
  ---- (1)如果有一个接口连到目的地网络,则使用此接口的网络掩码。隶属网络的所有子网的大小必须相同。
  ---- (2)否则,使用对应目的地址类的网络掩码。A类网络使用8位掩码,B类网络使用16位掩码,C类网络使用24位掩码。
   ---- 根据设置掩码的规则,除去目的地址中的“局部操纵”位,在路由选择表中查寻产生的网络地址,转发报文。因为路由选择基于IP地址类(有A类、B类、C类和 D类等4类)或与之相连的网络接口来决定远端网络使用的掩码,从而决定目的地的网络地址,故此类路由选择协议被称为有类路由选择协议。
  ---- 2.无类路由选择协议
   ---- RIPv2、EIGRP、OSPF和BGP等是一些比较新的路由选择协议,它们在路由更新过程中,将网络掩码与路径一起广播出去,这时网络掩码也称为前缀 屏蔽或前缀。例如,如果C类IP地址192.168.1.0的网络掩码为255.255.255.0,可标识为192.168.1.0/24。由于在路由 器之间传送掩码(前缀),因而没有必要判断地址类型和缺省掩码,这就是无类地址及无类路由选择,也是目前Internet上所基于的路由选择协议。
   ---- 在无类路由中,IP地址之间不再有类型差别,如A类地址、B类地址或C类地址等之分,所有地址都由前缀来决定用于网络标识的位数,IP地址不再归属于某一 个类,取而代之的是将它们看作一个地址和掩码对。通过使用无类路由,用户可以更充分地利用已有的IP地址空间,从而避免浪费宝贵的IP地址资源。另外,新 的IP编址标准IPv6也使用无类路由协议,通过使用无类路由,有助于向下一代IP协议过渡。更为重要的是,通过使用无类路由协议,用户在子网化时非常方 便,尤其是可以使用可变长子网掩码(VLSM)进行子网化。
  二、为什么需要子网化?
  ---- 子网化是企业用户在网络设计中经常使用的方法,它将分配给网卡的单一网络地址划分为几个网段,以满足用户的需要。但是,在子网化过程中,有时只使用一种子 网掩码可能不能满足用户的需要。例如,用户分配到一个C 类地址,并需要将它划分为几个网段,而某一个网段地址又需要划分为更小的几个网段,这时用户需要通过使用不同的子网掩码(前缀)来实现。这样,在一个网络 中可能会使用不止一个掩码(前缀),因此路由选择协议必须在每个路由器之间传递掩码,只有选择合适的路由选择协议才能实现子网之间的通信,这就是VLSM 子网设计问题,需要使用支持VLSM的路由协议,它是一种无类路由选择协议。
  ---- VLSM子网设计比较容易。首先使用某一掩码产生所需要的最大的子网,然后,从这些最大的子网中抽出一个,再用一个更长的掩码对它子网化。
  三、子网化的实现
  ---- 下面以某公司为例,讨论VLSM子网化的方法。假设该公司被分配了一个C类地址,该公司的网络拓扑结构见图1。为方便起见,这里用保留地址192.168.1.0作为例子进行说明。
   
   从图1可以看到,由于总公司、分公司分布于4处,总公司、分公司及各部门所拥有的主机数各不相同,因此需要对192.168.1.0进行子网化。因该公 司部门1和部门3均有20台主机,因此,产生的较大的子网集中必须有两个以上这样的子网,每个都至少有20个主机地址,由于C类地址 192.168.1.0的掩码是24位长,具体掩码如下:
  ---- 255.255.255.0=1111 1111.1111 1111.1111 1111.0000 0000
   ---- 将掩码扩展一位(共25位),使用第25位作为子网标志,这样可寻址2个子网(0和1)。可是,地址全0的子网是被保留的(这和分配网络号一样),地址全 1的子网也是被保留的(用作全子网的广播),这样就没有可用的剩余子网了。将掩码扩展2位(共26位),可以产生4个子网(00,01,10,11)。因 为地址全0、全1的子网被保留,于是还剩下2个可用的子网,用于表示主机的部分为最右边8位中剩下的6位,6位可表示64个独立的主机地址,其中全0的地 址被保留标志子网本身,全1的地址被保留用作广播,这样还剩62个可用的地址,由于该公司最大的子网有20台主机,若用这样的子网会浪费地址,因此可再将 掩码向右扩展1位(共27位),这样可得到8个子网(000,001,010,011,100,101,110,111),其中6个子网是可用的(因为地 址全0、全1的子网被保留),在最右边8位中还剩5位用于主机分配,5位可表示32个独立的主机地址,其中全0的地址被保留标志子网本身,全1的地址被保 留用作广播,还剩下30个可用的地址。如果再将掩码向右扩展一位(共28位)时,可知每个子网中只有14个地址,不能满足实际需要(必须有2个子网均支持 20个以上主机地址),至此,最终将192.168.1.0子网化使用的子网掩码是255.255.255.224,或192.168.1.0/27,即 使用27位子网掩码,得到能用的子网设为子网A、子网B、子网C、子网D、子网E和子网F,参见下面的图2。
  
   我们将子网A、子网B分配给部门1和部门3(每个子网中可用主机地址为30个),另外根据实际情况: 总公司部门2、分公司部门4、分公司1和分公司3各有10余台主机,因此,对子网D和子网E再进行子网化,用28位子网掩码 255.255.255.240(或192.168.1.128/28和192.168.1.160/28,即28位掩码),得到子网 192.168.1.128/28、192.168.1.144/28、192.168.1.160/28和192.168.1.176/28,分别分配 给总公司部门2、分公司部门4、分公司1和分公司3,每个子网可用主机数为14个。
  ---- 这样,我们会剩余3个子网(否则,这些子网均得用上)。将子网C和子网E留作公司以后发展时使用。将子网F进一步细分,用于总公司与各公司之间的广域网链 路上。由于点到点的广域网链路需要的地址很少,只要2个地址用在每一条链路的两端上的每个路由器上,对子网F进一步子网化,使它能工作在广域网链路上,取 30位子网掩码255.255.255.252或192.168.1.192/30,得到子网如下:
  ---- 192.168.1.192/30
  ---- 192.168.1.196/30
  ---- 192.168.1.200/30
 ---- 192.168.1.204/30
  ---- 192.168.1.208/30
  ---- 192.168.1.212/30
  ---- 192.168.1.216/30
  ---- 192.168.1.220/30
   ---- 从中取192.168.1.192/30、192.168.1.196/30和192.168.1.200/30 这 3个子网,每个子网中可用的主机地址有两个(实际上每个子网中有4个主机地址,它包括子网ID、广播地址以及2个可分配的地址),分别用于总公司到各个分 公司的广域网链路上(例如: 192.168.1.193和192.168.1.194用于总公司和分公司1之间的广域网链路上,192.168.1.197和 192.168.1.198用于总公司到分公司2之间的广域网链路上,192.168.1.201和192.168.1.202用于总公司到分公司3之间 的广域网链路上),剩余的子网留作以后公司网络扩展时使用。
  ---- 经过以上VLSM设计,在这个网络中共使用了3种掩码255.255.255.224(27位)、255.255.255.240(28位)和 255.255.255.252(30位)来满足网络需要。重要的是网络中使用的路由选择协议必须是无类路由协议。
  ---- 本文中只是针对Cisco路由器上使用的路由选择协议,讨论了有类路由选择协议、无类路由选择协议的寻址方法,有类地址、无类地址之间的关系,探讨了用 VLSM子网设计方法更充分地利用已有的IP地址空间,避免出现浪费IP地址的问题。尽管IPv6已被确定为新的IP编址标准,但是在这个标准被广为接收 和实现之前,还要继续使用IPv4。另外,在使用无类路由后,子网0也成了一个合法的子网,子网号0是允许的,但必须使用命令
  ---- ip subnet-zero
  ---- 来明确指示。去往0号子网的路由都有各自的掩码,该掩码与其他网络路由所使用的掩码是不同的,这样做是为了使得当网中存在0号子网时,路由器仍能进行正确的路由选择。
子网掩码错误导致无法正常通信
故障现象
    笔者所负责的某教育系统工 程项目,区公司报告市公司的网站无法登录,数据无法上报。市、区教委之间Ping不通。市教委能Ping通其他各县教委的网站。区教委不能Ping通市及 各县教委的网站。市、区教委都能Ping通省教委、各市教委的网站与Yahoo等网站。
  
   诊断过程
     市教委能Ping通各县教委网站,说明市教委工作正常,笔者认为问题应出在区教委或ISP。区教委能ping通省教委与Yahoo等,说明区教委与ISP 的物理连结没问题,也初步断定区教委的配置没问舰。而区教委不能Ping通各县教委的网站,再次说明问题就应在区教委或ISP。然而,令笔者不解的是:一 般来讲,只要市教委与区教委都能正常上网,并都能Ping通同一个网站,应该彼此也能连通,除非彼此用防火墙进行了包过滤。然而防火墙都已经关闭了,应该 不是这个问题。
    在这种情况下,笔者最先想到的是ISP到区教委的路由出现问题,登上路由器,然后跟踪路由。结果发现路由有问题。为了对 比,笔者又跟踪了其他两个正常的县教委的路由,结果发现有环路。似乎这是问题的关键所在,但这是ISP提供的,必须得慎重。会不会有其他的可能?,比如服 务器坏了,或是真的有问题,路由会怎么样呢?笔者找了一个空置的IP地址(是分给区教委的只是没有用到)试了一下,结果与上相同。
    现在有 两种可能:一是确实ISP方面有问题;二是服务器有问题。在给ISP申报故障之前,还是先排除自己出错的可能,于是笔者先让区教委的网管员检查设置,结果 发现把子网掩码设置错了。询问后得知,几天前,由于管理上的需要该网管改动过此处的设置,不小心把255.255.255.243打成了 255.255.255.0。据说虽然看着参数表打的,由于平时习惯下意识的打成了内网的子网掩码了。改过来一试,故障消失了。
  
   排除心得
     为什么区教委能Ping通省教委与Yahoo网站而Ping不通市与其他县教委?大家知道,主机在发送数据报之前,首先判断目标主机是否属本子网 的,如果是就直接发送到目标主机;如果不是本子网的就发向默认的网关。主机是怎样区分外网与本子网的呢?当然是靠子网掩码。区教委设置正常情况下,子网掩 码255.255.255.243)会把202.105.218.17(区教委)与202.105.218.1(市教委)认为不在同一于网,所以发送给网 关,这时的区教委就能Pinq通市教委。可是区教委子网掩码打成255.255.255.0后,就把202.105.218.1与 202.105.218.17看成是同一子网的了。数据报不发送给网关,但本地子网中又没有202.105.218.1这一台主机,所以不通。但是省教委 的IP地址是202.105.204.17,子网掩码(255.255.255.0)运算后与区教委的仍不在同一子网,数据报发给了网关,所以能正常访 问。同理Yahoo的IP地址经过运算后也不与区教委在同一子网,所以也能正常访问。