基于OSPF路由协议,组建全国互连项目

社区服务
高级搜索
猴岛论坛电脑百科基于OSPF路由协议,组建全国互连项目
发帖 回复
倒序阅读 最近浏览的帖子最近浏览的版块
2个回复

基于OSPF路由协议,组建全国互连项目

楼层直达
happylove11

ZxID:1328382

等级: 上校
态度决定一切

举报 只看楼主 使用道具 楼主   发表于: 2009-01-10 0
编者按:路由器要企业网络连接甚至全国网络互连,需要得到EIGRP、OSPF等这样的路由协议支持,因为EIGRP属于Cisco专属协议,OSPF路由协议因其开放性而得到广泛应用,本例就是介绍在基于OSPF路由协议基础上,如何进行全国网络的互连组建问题。
  
  
  在之前所有介绍的路由协议中,适合荣新外企IT培训中心全国互连项目的协议只有EIGRP、OSPF与IS-IS。
  
  采用EIGRP路由协议,需要所有的设备都必须使用Cisco产品,这样大大地增加了设备采购的成本。所以直到目前EIGRP也不能被广泛使用的原因也是受到了产品垄断的限制。IS-IS的性能也足以适应荣新外企IT培训中心全国网络互连的项目,但由于IS-IS最初是ISO的标准协议,为CLNS设计的,后来增加了对IP的支持。
  
  而OSPF一开始就是IETF为IP网络设计的,所以在对IP网络的支持上IS-IS还存在很大的发展与改进空间。OSPF是专门为IP设计的,更适合IP的路由,发展成熟,标准化程度高,支持厂商多,使用多缺点暴露多,改进也多。所以目前使用的OSPF路由协议已经是比较完善的了。
  
  通过以上的综合考虑,最终采用OSPF路由协议实施荣新外企IT培训中心的全国互连项目。其实不仅仅是该项目会采用OSPF路由协议作为组网的动态路由选择协议,OSPF路由协议几乎是目前类似项目采用最为广泛的路由协议,所以此节也是本章的核心。
了解OSPF路由协议
  
  鉴于早期距离矢量协议所造成的诸多网络问题,网络设计者又开发了更新、更先进的路由协议——链路状态路由协议。OSPF路由协议就是一种链路状态路由协议。随着Internet技术在全球范围的飞速发展,OSPF已成为目前Internet广域网和Intranet企业网采用最多、应用最广泛的路由协议之一。OSPF(Open Shortest Path First)路由协议是由IETF(Internet Engineering Task Force)IGP工作小组提出的,是一种基于SPF算法的路由协议,目前使用的OSPF协议是其第2版,定义于RFC 1247和RFC 1583。
  
  作为一种链路状态的路由协议,OSPF将链路状态广播数据包LSA(Link State Advertisement)传送给在某一区域内的所有路由器,这一点与距离矢量路由协议不同。运行距离矢量路由协议的路由器是将部分或全部的路由表传递给与其相邻的路由器。
  
  OSPF路由协议也是一种IGP协议,它只能在工作在自治域系统内部,不能跨自治域系统工作。对比距离矢量路由协议,OSPF路由协议具有快速收敛与适用范围更广的优势。
  
  在大型的网络拓扑结构中,如果每台路由器都将自己学到的整个网络的路由信息传送更新的话,将会严重地占用带宽资源,对于像荣新外企IT培训中心这样以传输音频、视频为主的数据时,更会出现音频、视频传输的不流畅。而OSPF路由协议很好地解决了这些问题。在刚刚开始工作的时候,首先和相邻的路由器建立邻居关系,形成邻居表,然后互相交换自己所了解的网络拓扑。路由器在没有学习到全部网络拓扑是不会进行任何路由操作的,因为这时候的路由表是空的。只有当路由器学到了全部的网络拓扑,建立了拓扑表(也称链路状态数据库)之后,他们会使用最短路径优先(SPF)算法,从拓扑表中计算出最佳路由。因为,所有运行OSPF路由协议的路由器都维护着相同的拓扑表,路由器可以自己从中计算路由,所以这些路由器不需要周期性的发送路由更新包,这样便有效地降低了带宽的使用率。
  
  提示:
  使用OSPF协议对路由设备需要考虑,虽然OSPF路由协议对带宽的占用降低,但是由于它需要针对整个网络拓扑结构做出计算,所以对路由器的硬件设施,包括CPU、内存等都有较高的要求。
  
  在运行OSPF路由协议的网络里,当网络拓扑发生了变化,例如,一条物理线路出现了故障。发现该变化的邻居路由器会向其他路由器发送触发的路由更新包——链路状态更新包(LSU)。在LSU中包含了关于发生变化的网段信息,链路状态通告(LSA)。接收到该更新包的路由器,会继续向其他路由器发送更新,同时根据LSA中的信息,在拓扑表里重新计算发生变化网段的路由。由于没有对链路的保持时间,OSPF路由协议的收敛速度是相当快的,这一点对于大型的网络是非常关键的。
  
  OSPF路由协议还可以把一个大型的网络划分区域,这点跟IS-IS相似,不同的是在OSPF中会有一个唯一的骨干区域。这样对于路由信息的汇总起了很好的作用,对于设备的采用也可以根据其所在区域的位置选择不同成本的设备,对工程成本有了很好的规划。这种特性也使OSPF路由协议能够在大规模的路由网络中正常高效地工作。
  
  1.链路
  将运行OSPF路由协议的路由器所连接的网络线路称为链路。
  路由器会检查其所连接的网络状态,然后将该信息由自己的所有接口向邻居传送,这个过程称为“泛洪(Flooding)”。运行OSPF路由协议的路由器,由邻居处得到关于链路的信息,并且将该信息继续向其他邻居传送。
  2.链路状态
  链路的工作状态,是正常工作,还是发生故障,这些相关的信息称为链路状态。
  在OSPF中,只需要发送链路状态信息就可以确保对网络的掌握。也是通过这种信息来交换学习路由信息。
  3.区域
  OSPF路由协议会把大规模的网络划分成多个小范围的区域,以避免大规模网络所带来的弊病,从而提高网络性能。OSPF中区域的划分是非常重要的内容,很多公司的面试题都会涉及到这个方面,后面会具体了解OSPF。
  4.邻居
  在同样运行OSPF路由协议的两台路由器物理直连时,就可以成为邻居关系。只有成为了邻居关系它们互相才能交换路由信息。当线路出现问题时,可以通过查看邻居状态来排除故障。
  5.链路开销
  OSPF路由协议通过计算链路的带宽来计算最佳路径的选择。每条链路根据带宽不同会有不同的度量值,这个度量值在OSPF路由协议中称作“开销(Cost)”。
  10Mbps的以太网的链路开销是10,16Mbps令牌环网的链路开销是6,FDDI或快速以太网的开销是1,2M串行链路的开销是48,56KB串行线路的开销为1785。
  路由器将整条路径的开销相加,所得之和最小的值为最佳路径。
  6.邻居表
  与EIGRP、IS-IS一样,OSPF路由协议也需要维系3张表。最基础的就是邻居表。
  凡是与路由器同在OSPF路由协议中并且物理直连的路由器都会被收录在该表中,只有形成了邻居表,路由器才可能像其他的路由器学习拓扑结构。
  7.拓扑表
  当路由器建立了邻居表之后,运行OSPF路由协议的路由器会互相通告自己所了解的网络拓扑建立拓扑表。在一个区域里,所有的路由器应该形成相同的拓扑表。只有建立了拓扑表之后,路由器才能使用SPF算法从拓扑表里计算路由。
  8.路由表
  路由器依靠路由表来为数据包进行路由操作。在运行OSPF路由协议的路由器中,当完整的拓扑表建立起来之后,路由器便会按照链路带宽的不同,使用SPF算法从拓扑表例计算出路由,记入路由表。
  9.路由器标识(Route ID)
  路由器标识不是为路由器起的名称,而是路由器在OSPF路由协议操作中对自己的标识。一般来说,在没有配置回环接口(Loopback Interface:一种路由器上的虚拟接口,它是逻辑存在的,路由器上并没有这种物理接口,它是永久开启的。)时,路由器的所有物理接口上配置的最大IP地址就是这台路由器的标识。如果在路由器上配置了回环地址接口,则不论回环地址上的IP地址是多少,该地址都自动成为路由器的标识。当在路由器上配置了多个回环接口时,这些回环接口中最大的IP地址将作为路由器的标识。
  在实际工程中,可能会遇到没有设置Route ID的情况,由路由器默认的最大物理接口地址为Route ID,而这个接口并没有连接任何设备,也就是Shut Down状态,在这时不管这台路由器的其他接口状态如何,OSPF都将随着Route ID的Shut Down而不启动。所以,在设置Route ID时一定要选用Loopback地址作为Route ID,因为这个地址是永久不关闭的,而且最好有完善的规划。
  10.LSA与LSU
  路由器对某一条线路的状态更新称为LSA,对一组链路的状态更新称为LSU,LSU更新包里可包含多个LSA。
  11.DR与BDR
  当几台路由器工作在同一网段上时,为了减少网段中路由信息的交换数量,OSPF路由协议定义了DR和BDR。负责收集网络中的链路状态通告,并将他们集中发给其他的路由器。BDR实际上是DR的备份,在DR本身没有问题时,BDR并不工作,一旦DR出现了问题BDR就会接替DR的工作。在实际工程中,DR与BDR的概念应用并不广泛。
最短路径优先算法
  
  OSPF路由协议使用SPF(Shortest Path First)算法计算路由的最佳路径。该算法是由一位荷兰的计算机科学家Dijkstra于1959年发现的,所以该算法也称为Dijkstra算法。IS-IS也使用这种算法。
  
  该算法把网络考虑为一组点到点连接的节点,每条链路有一个开销值,每个节点有它自己的名称及一个包含已知物理拓扑的完整链路信息的数据库。如图10-32所示的网络环境。
  
  下图描述了每一台路由器到达邻居的开销,如果从R-A路由器出发访问到R-F将会有两条链路,通过SPF的算法将链条链路的Cost值相加得出的结果为:
    * R-A→R-B→R-D→R-F的cost值为50。
    * R-A→R-C→R-E→R-F的cost值为97。
  根据SPF的算法规定,R-A到达R-F的最佳路径为R-A→R-B→R-D→R-F。
  在图下中可以看到R-D与R-E之间还有一条链路,这对于网络本身来说造成了环路,无论这条链路的Cost值为多少,都将不会列入OSPF路由协议的最佳路径之中。OSPF路由协议会使用SPF算法计算出一条路径优先树以避免环路。
 
图:  运行OSPF路由协议的网络环境
OSPF路由协议对路由网络区域的划分
  
  在荣新外企IT培训中心全国互连的网络中总路由器多达上百台。这样庞大的网络中如果没有区域的划分,按照OSPF路由协议的规定,每台路由器都要熟悉整个的网络拓扑结构并且计算全部网络的路由信息,对于路由器本身来说造成了非常大的负载需求。因为在这样的网络中路由信息很可能成千上万条,如果每台路由器都使用可以存储并运算如此庞大的路由信息的路由设备的话,那么肯定会对工程的成本增加,也会使得路由器对数据传输的反应速度过慢。
  
  另外,在一个大的区域里集中了如此多的路由器和链路,出现设备故障和链路故障的概率也会相应增加,而每次故障都会引起路由信息更新包在网内的传送,即便是OSPF这样快速收敛的路由协议也将会严重地影响网络可用性。
  
  OSPF路由协议通过使用分级的设计,把整个大型路由网络划分成多个小范围的区域,从而解决了上述问题。OSPF路由协议将大型网络划分为骨干域和非骨干域。骨干域只有一个,称为区域0(Area0),所有的非骨干域都必须要与骨干域相连。
  
  这样的区域划分方法,使得每个区域中的路由器都不再考虑其他区域的网络变化,只关心其内部区域的状态就可以了。一个区域内的变化,只会引起本区域内的收敛发生。通过这样的区域划分,网络故障的影响范围被缩小,整个网络不会进行频繁的收敛。注意图10-33中在各个分中心区域有边界路由器。
  
  该路由器负责学习两个区域的路由,而区域内部的路由器只需要使用几台路由或者汇总路由,其目的是其他区域的数据包路由给边界路由器,右边界路由器将数据包路由到其他区域,而区域内部的路由器不需要学习其他区域的路由。这样,相对而言,路由器所维护的路由表体积显著减小,路由操作效率提高。
  
  在网络还存在一种区域成为末节区域,在声明该区域为末节区域后该区域不接受其他区域的链路状态通告,这可以有效地阻止链路故障造成的拓扑重新计算在网络中蔓延,从而控制网络故障传递的范围,防止因个别网络故障造成整个网络不稳定情况的发生。末节区域如图10-34所示,Router1路由器存在于整个网络的边缘,在路由器的物理连接中拉出一条线路外没有再接触OSPF网络的线路。
   
图:荣新外企IT培训中心全国互连部分网络拓扑结构

    
    图10-34  末节区域的形态
    
   

    
    提示:
  区域划分要注意规划地址。在实际案例中,为了到达到真正的区域划分的目的,每一个区域的路由都要尽量的进行汇总,这就要求进行分级的、体系化的编址。另外,在网络工程师的面试中经常会问到OSPF的区域划分,一般是给出一个拓扑结构让应聘者划分。记得不要把路由器整个圈在区域内,只把接口圈进去就可以了,从这点一般来判定应聘人员的从业资历。
happylove11

ZxID:1328382

等级: 上校
态度决定一切

举报 只看该作者 沙发   发表于: 2009-01-10 0
    使用邻居验证提供OSPF网络的安全
  
  OSPF路由协议面临的安全隐患主要来自于其自身的工作方式。路由器之间只要可以建立邻居关系,在一台路由器上就可以胡乱任意的发布虚假网段,使邻居路由器学习这些虚假的路由信息,造成网络的混乱。
  
    1. OSPF的工作方式
  
  OSPF路由协议使用周期性的发送Hello包来建立和维持邻居关系。由于OSPF路由协议的拓扑学习和路由计算都根源于邻居关系的建立,所以这一步骤在OSPF路由协议的操作上是比较重要的。
  
  在OSI参考模型的网络层上,Hello包是向多点广播组224.0.0.5发送。这个多点广播组是所有运行OSPF路由协议的路由器都识别的。默认的影响OSPF路由协议的路由器每10秒发出一次Hello包,但是在NBMA类型的网络里,路由器每30秒钟发出一次Hello包。
  
  在Hello包的包头里,包含路由器的标识(Router ID)及区域标识(Area ID),这是必不可少的信息。路由器的标识作用在于其他的路由器能够识别自己,两台路由器只有区域标识相同才能成为邻居。
  
  一台路由器发出的Hello包里还包括了其所有邻居路由器的标识。如果路由器在它收到的Hello包里看到了自己的标识,则该路由器认为发送Hello包的路由器和自己是邻居关系。
  
  2.邻居验证功能
  OSPF采用邻居验证功能来屏蔽这一漏洞。通过在同一区域内的路由器上配置密码,可以使运行OSPF路由协议的路由器之间进行身份验证,只有密码相同的路由器之间才可以建立邻居关系,而密码不同的路由器之间不能建立邻居关系。
  
  在Hello包头里面有两个参数,Authentication Type和Authentication Date。
  1)Authentication Type
  Authentication Type是验证的类型。OSPF路由协议支持两种邻居验证的类型:明文的邻居验证和密文的邻居验证。
  2)Authentication Date
  Authentication Date是验证的具体数据。当使用文明的邻居验证时,这个位置携带的是明文密码;当使用密文的邻居验证时,这个位置携带的是验证所使用的Key值。
  同一区域内的路由器,通过互相交换Hello包,可以识别到相邻路由器所配置的密码,如果密码不同,OSPF路由协议的邻居关系就不能建立。通过邻居验证的方式,可以避免虚假的路由信息来欺骗其他的路由器。
  
  3.配置明文验证
  使用下面的命令在路由器连接相邻路由设备的接口上配置明文密码命令,在该命令中,Password处应该填写明文密码。
    Router(config-fi)#ip ospf authentication-key password
  使用下面的命令可以在OSPF路由协议里声明该区域使用明文密码验证,Area-ID为邻区验证的区域标识。
    Router(config-router)#area area-id authentication
  4.配置密文验证
  在路由器连接相邻路由设备的接口上配置密文密码命令,在该命令中,Password处应该填写密文密码,KeyID是Key的值,MD5是一种加密的算法。
    Router(config-if)#ip ospf message-digest-key keyid md5 passwd
  在OSPF路由协议里声明该区域使用密文密码验证,Area-ID为邻区验证的区域标识。
    Router(config-router)#area area-id message-digest
OSPF网络中的虚链路应用
  
  在前面介绍到OSPF网络中关于区域的划分部分,所有的非骨干区域必须要与骨干区域相连。但在实际工程中,如果有些区域在物理连接上确实不能与骨干域相连,情况又是什么样呢?如图10-35所示,在此拓扑结构中区域2与区域0(骨干域)无法物理相连,这样的情况下Area2的路由信息是无法在OSPF网络正常汇总的。
  
  对于这种情况,可以使用OSPF路由协议中虚链路的概念将Area2与Area0逻辑连接。在Area1中连接着两边区域的路由器上启用一条虚链路用于逻辑的将Area2与Area0连接。这样Area2在OSPF网络中的路由信息就可以正常汇总了,如图所示。
  
图  物理连接
图  虚链路连接
虚链路还有另外一种应用情况,当在OSPF网络中出现两个Area0时需要启用虚链路,如图所示。
图使用虚链路将两个骨干域互连

    
    在OSPF网络中出现两个骨干域多数是在两个公司合并的情况。两个公司都使用OSPF路由器协议,这样就出现了两个骨干域。在此,需要记住的就是OSPF网络中只能有一个Are0也就是骨干域,否则路由器会报错,如果出现了两个Area0骨干域的情况一定要使用虚链路将两个骨干域互连。
  配置虚链路命令如下:
    Router(config-router)#area area-id virtual-link router-id
  Area-ID表示区域标识,而Router-ID参数是OSPF路由协议的路由器标识。
OSPF网络互连实施方案
  建议在阅读本节内容前,首先返回本章的“10.2 项目需求与路由协议选择”一节,重新回顾一下对于荣新外企IT培训中心全国互连的案例分析。在配置OSPF之前,也需要阅读表10-10和表10-11中关于各个命令的解释。
 
   表10-10 OSPF路由协议的配置过程
  
步    骤命    令解    释
1configure terminal进入全局配置模式
2router ospf process-id声明使用OSPF路由协议。Process-ID是进程号,范围是1~65 535。在同一个使用OSPF路由协议的网络中的不同路由器可以使用不同的进程号。一台路由器可以启用多个OSPF进程
3network address wildcard-mask area area-id在该命令中,Address可以是网段地址也可以是一个子网或者一个接口的IP地址。Wildcard-mask称为通配符掩码,它与子网掩码正好相反,但是作用是一样的。Area-ID是区域标识,它的值范围是0~65 535,区域0是骨干网络,OSPF路由协议在发布其需要加入OSPF中的接口地址或接口地址网段地址时必须声明它所处的区域
4Area area-id stub [no-summary]可以看到本案例在西安的西北大学接入点是一个完全的末节区域,应用这条命令声明该路由器是一台所处末节区域的路由器。(按照具体情况选用配置命令)
5area area-id virtual-link router-id本案例中Area4与骨干域Area0无法物理连接,通过启用虚链路来使Area4与Area0相连(按照具体情况选用配置命令)
6Exit退出
7copy running-config startup config保存配置

   
   表10-11 OSPF路由协议的监测命令
   
命    令解    释
Show ip ospf interface 该命令用来检查接口是否被配置在相应的区域里,另外也可以看到该接口所连接的邻居
Show ip ospf使用该命令可以看到链路状态更新的时间间隔及网络收敛的次数等信息
Show ip ospf neighbor detail该命令用来显示邻居的详细信息列表,包括它们的优先级和当前状态
Show ip ospf database该命令显示路由器管理的拓扑表的内容,路由器标识和OSPF路由协议的进程号

   
   在配置任何OSPF网络之前的第一件要做的事就是先对网络拓扑结构进行区域的划分。根据各省份的特点,划分方式如图10-38所示。
  

   
   图荣新外企IT培训中心部分拓扑结构
  
  以3个地方的区域划分为例,进行OSPF路由协议的区域划分。同时,由于拓扑结构中的路由器过多,只选取图中比较有代表性的Router1、Router2、Rourter3、Rourter4路由器进行配置演示。
  
  1.路由器(Router1)的配置
    interface serial s 0/1
    ip address 10.0.0.1 255.255.255.0
    encapsulation ppp
    !
    interface serial s 0/2
    ip address 10.0.1.1 255.255.255.0
    encapsulation ppp
    !
    interface serial s 0/3
    ip address 10.0.2.1 255.255.255.0
    encapsulation ppp
    !
    interface loopback 0
    ip address 1.1.1.1 255.255.255.0
    !
    router ospf 100
    network 10.0.0.0 0.0.0.255 area 0
    network 10.0.1.0 0.0.0.255 area 0
    network 10.0.2.0 0.0.0.255 area 0
  2.路由器(Router2)的配置
    interface serial 0/1
    ip address 10.0.0.2 255.255.255.0
    encapsulation ppp
    !
    interface serial 0/2
    ip address 10.1.0.2 255.255.255.0
    encapsulation ppp
    !
    interface serial 1/0
    ip address 10.10.1.1 255.255.255.0
    encapsulation ppp
    !
    interface serial 1/1
    ip address 10.10.2.1 255.255.255.0
    encapsulation ppp
    !
    interface serial 1/2
    ip address 10.10.3.1 255.255.255.0
    encapsulation ppp
    !
    interface loopback 0
    ip address 2.2.2.2 255.255.255.0
    !
    router ospf 200
    network 10.0.0.0 0.0.0.255 area 0
    network 10.0.0.0 0.0.0.255 area 0
    network 10.10.1.0 0.0.0.255 area 3
    network 10.10.2.0 0.0.0.255 area 3
    network 10.10.3.0 0.0.0.255 area 3
    area 1 virtual-link 3.3.3.3
  配置虚链路时区域标识是1,表示虚链路是在区域1中建立的;路由器标识指定的是路由器B的标识,表示路由器C与路由器B建立虚链路。
  3.路由器(Router3)的配置
    interface serial 0
    ip address 10.10.1.1 255.255.255.0
    encapsulation ppp
    !
    interface serial 1
    ip address 10.20.0.1 255.255.255.0
    encapsulation ppp
    !
    interface loopback 0
    ip address 3.3.3.3 255.255.255.0
    area 1 virtual-link 2.2.2.2
    !
    router ospf 300
    network 10.10.1.0 255.255.255.0 area 3
    network 10.20.0.0 255.255.255.0 area 4
    area 1 virtual-link 2.2.2.2
  4.路由器(Router4)的配置
    interface serial 0
    ip address 10.20.0.2 255.255.255.0
    encapsulation ppp
    !
    router ospf 400
    network 10.20.0.0 0.0.0.255 area 4
    area 4 stub // 标志为末节区域路由设备
天之轿子

ZxID:1879179

等级: 中尉
   ﹌ .ㄖ寺 ㄖ尙 ..

举报 只看该作者 板凳   发表于: 2009-01-11 0
根本看不懂!但是我已经很努力看了!
︷天之轎子﹖
« 返回列表
发帖 回复