OSPF协议原理及配置概念OSPF:OpenShortestPathFirst,开放最短路径优先由IETF(InternetEngineeringTaskForce)组织开发OSPF是链路状态协议,采用SPF算法OSPF是IGP(InteriorGatewayProtocol)协议,用于在自治系统(AutonomousSystem,AS)内发现和计算路由在IP网络上,它通过收集和传递自治系统的链路状态来动态地发现并传播路由相关RFC文档:RFC2328,RFC1583,RFC2178链路状态路由选择协议--OSPF基本思想每个路由器有责任和邻机会话,并获悉它们的名字。每个路由器构建一个称为“链路状态广播(LSA)”的包,该包列出了邻机的名字和到达这些邻机的费用。LSA被传送到所有的别的路由器,每个路由器存储了来自其他路由器的最新的LSA。每个路由器现在有了完整的拓扑图,计算出到每个目的地的路由。OSPF协议概述(1)OSPF是OpenShortestPathFirst的缩写。是IETF组织开发的一个基于链路状态的自治系统内部路由协议。适应范围:OSPF支持各种规模的网络,最多可支持几百台路由器。快速收敛:如果网络的拓扑结构发生变化,OSPF立即发送更新报文,使这一变化在自治系统中同步。这是衡量路由协议好坏的重要指标。无自环:由于OSPF通过收集到的链路状态用最短路径树算法计算路由,故从算法本身保证了不会生成自环路由。但是在引入外部路由时不能保证没有路由环路。OSPF协议概述(2)子网掩码:由于OSPF在描述路由时携带网段的掩码信息,所以OSPF协议不受自然掩码的限制,对VLSM提供很好的支持。区域划分:OSPF协议允许自治系统的网络被划分成区域来管理,区域间传送的路由信息被进一步抽象,从而减少了占用网络的带宽。等值路由:OSPF支持到同一目的地址的多条等值路由。在RIP中也有。OSPF协议概述(3)路由分级:OSPF使用4类不同的路由,按优先顺序分别是:区域内路由、区域间路由、第一类外部路由、第二类外部路由。支持验证:它支持基于接口的报文验证以保证路由计算的安全性。组播发送:OSPF在有组播发送能力的链路层上以组播地址发送协议报文,即达到了广播的作用,又最大程度的减少了对其他网络段设备的干扰。(224.0.0.5)OSPF和RIP的比较(1)向本自治系统中所有路由器发送信息。这里使用的方法是洪泛法(flooding),这样,最终整个区域中所有的路由器都得到了这个信息的一个副本。而RIP协议是仅仅向自己相邻的几个路由器发送信息。发送的信息就是与本路由器相邻的所有路由器的链路状态,这是路由器所知道的部分信息。链路状态就是说明本路由器都和哪些路由器相邻,以及该链路的“度量”。OSPF将这个“度量”用来表示费用、距离、时延、带宽等等。而RIP协议发送的信息是:“到所有网络的距离和下一跳路由器”。OSPF和RIP的比较(2)只有当链路状态发生变化时,路由器才用洪泛法向所有路由器发送此信息。而RIP不管网络拓扑有无发生变化,路由器之间都要定期交换路由器表的信息。基本的OSPF协议RouterID:一个32bit的无符号整数,是一台路由器的唯一标识,在整个自治系统内惟一。一般是手工配置。有些厂家路由器支持自动从当前所有接口的IP地址自动选举一个IP地址作为ROUTERID.OSPF报文直接封装在IP报文中传输。IP头部中协议号为89。。指定路由器DR(DesignatedRouter)备份指定路由器BDR(BackupDesignatedRouter)在一个广播型多路访问环境中的路由器必须选举一个DR和BDR来代表这个网络作用:减少在局域网上的OSPF的流量选举:DB/BDR的选举是根据路由器优先级,优先级高者为DR,次高者为BDR。如果Priority值相同,Router-id值大者成为DRDR/BDRDR和BDR选举的原因在广播和NBMA类型的网络上,任意两台路由器之间都需要传递路由信息(flood),如果网络中有N台路由器,则需要建立N*(N-1)/2个邻接关系。任何一台路由器的路由变化,都需要在网段中进行N*(N-1)/2次的传递。这是没有必要的,也浪费了宝贵的带宽资源。为了解决这个问题,OSPF协议指定一台路由器DR(DesignatedRouter)来负责传递信息。所有的路由器都只将路由信息发送给DR,再由DR将路由信息发送给本网段内的其他路由器。两台不是DR的路由器(DROther)之间不再建立邻接关系,也不再交换任何路由信息。这样在同一网段内的路由器之间只需建立N个邻接关系,每次路由变化只需进行2N次的传递即可。优先级携带在Hello包中进行传递的其余每个DRother都会和DR,BDR建立邻接关系,DRother之间建立邻居关系P=1P=0P=1DR/BDR的选举P=3P=2BDRHelloDRBDRDRotherDRotherDRotherDR的选举过程如下:登记选民――本网段内的运行OSPF的路由器;登记候选人――本网段内的Priority0的OSPF路由器;Priority是接口上的参数,可以配置,缺省值是1;竞选演说-一部分Priority0的OSPF路由器认为自己是DR;投票――在所有自称是DR的路由器中选priority值最大的当选,若两台路由器的priority值相等,则选RouterID最大的当选。选票就是HELLO报文,每台路由器将自己选出的DR写入HELLO中,发给网段上的每台路由器;说明:由于网段中的每台路由器都只和DR建立邻接关系。如果DR频繁的更迭,则每次都要重新引起本网段内的所有路由器与新的DR建立邻接关系。这样会导致在短时间内网段中有大量的OSPF协议报文在传输,降低网络的可用带宽。所以协议中规定应该尽量的减少DR的变化。具体的处理方法是,每一台新加入的路由器并不急于参加选举,而是先考察一下本网段中是否已有DR存在。如果目前网段中已经存在DR,即使本路由器的priority比现有的DR还高,也不会再声称自己是DR了。而是承认现有的DR。BDR快速响应:如果DR由于某种故障而失效,这时必须重新选举DR,并与之同步。这需要较长的时间,在这段时间内,路由计算是不正确的。为了能够缩短这个过程,OSPF提出了BDR(BackupDesignatedRouter)的概念。BDR实际上是对DR的一个备份,在选举DR的同时也选举出BDR,BDR也和本网段内的所有路由器建立邻接关系并交换路由信息。当DR失效后,BDR会立即成为DR,由于不需要重新选举,并且邻接关系事先已建立,所以这个过程是非常短暂的。当然这时还需要重新选举出一个新的BDR,虽然一样需要较长的时间,但并不会影响路由计算。注意:网段中的DR并不一定是priority最大的路由器;同理,BDR也并不一定就是priority第二大的路由器。DR是指某个网段中概念,是针对路由器的接口而言的。某台路由器在一个接口上可能是DR,在另一个接口上可能是BDR,或者是DROther。只有在广播和NBMA类型的接口上才会选举DR,在point-to-point和point-to-muiltipoint类型的接口上不需要选举。两台DROther路由器之间不进行路由信息的交换,但仍旧互相发送HELLO报文。OSPF网络类型OSPF区域是由不同类型的网络链路组成的,明白这一点很重要,因为邻接行为随网络类型而异,而要确保OSPF在某些类型的网络上正确运行,必须对其进行合适的配置。OSPF根据物理链路类型定义了不同的网络类型。在每种网络中,OSPF的运行方式各不相同,其中包括如何建立邻接关系以及所需的配置。网络类型OSPF协议计算路由是以本路由器周边网络的拓扑结构为基础的。每台路由器将自己周边的网络拓扑描述出来,传递给其他所有的路由器。OSPF将不同的网络拓扑抽象为以下四种类型该接口所连的网段中只有本路由器自己。(stubnetworks)该接口通过点到点的网络与一台路由器相连。(point-to-point)该接口通过广播或NBMA的网络与多台路由器相连。(broadcastorNBMAnetworks)该接口通过点到多点的网络与多台路由器相连。(point-to-multipoint)网络类型OSPF协议根据链路层封装协议不同分为以下四种网络类型:Point-to-Point:点对点网络。当链路层协议是PPP,HDLC,LAPB时,OSPF缺省认为网络类型是Point-to-Point。在这种类型网络中,以组播地址(224.0.0.5)发送协议报文,不需要选举DR,BDR。Broadcast:广播网络。当链路层协议是Ethernet时,OSPF缺省认为网络类型是Broadcast。在这种类型网络中,以组播地址(224.0.0.5,224.0.0.6)发送协议报文,需要选举DR,BDR。NBMA:非广播多路访问网络(Non-broadcastMulti-access)。当链路层协议是FrameRelay、X.25时,OSPF缺省认为网络类型是NBMA。在这种类型网络中,以单播地址发送协议报文,必须手工配置邻居的IP地址。Point-to-Multipoint:点对多点网络。没有一种链路层协议会被缺省的认为是Point-to-Multipoint类型,通常由NBMA的类型手工修改而来。如果NBMA类型的网络不是全连通的,则可以手工更改为点到多点网络。在这种类型网络中,以组播地址(224.0.0.5)发送协议报文,不用手工配置邻居。点到点网络(point-to-point)广播网络(broadcast)网络类型链路层封装PPP/HDLC协议链路层封装Ethernet/FDDI/TokenRingNBMA网络(Non-BroadcastMulti-Access)点到多点网络(point-to-multipoint)网络类型FR/ATM/X.25FR/ATM/X.25邻接关系:邻接关系在广播或NBMA网络的DR和非指定路由器之间形成DRother与DR,BDR之间建立邻接关系邻接:好朋友邻接需要互通信息,需要同步信息DRother之间为邻居关系,之间不同步数据库邻居:刚认识邻居/邻接术语(1)自治系统AS(AutonomousSystem)指共享同一路由选择策略的一组路由器的集合在互联网中,一个自治系统是一个有权自主地决定在本系统中应采用何种路由协议的小型单位。这个网络单位可以是一个简单的网络也可以是一个由一个或多个普通的网络管理员来控制的网络群体,它是一个单独的可管理的网络单元(如一所大学,一个企业或者一个公司个体)。路由器标识(RouterID)由32位数组成,在AS内唯一。这个RouterID一般需要手工配置,一般将其配置为该路由器的某个接口的IP地址。由于IP地址是唯一的,所以这样就很容易保证RouterID的唯一性。在没有手工配置RouterID的情况下,一些厂家的路由器支持自动从当前所有接口的IP地址自动选举一个IP地址作为RouterID。区域标识(AreaID)由32bit数组成,在AS内唯一标识区域。如:Area0或者Area0.0.0.0一个区域是指一个路由器的集合,它有一个一样的拓扑数据库,OSPF用区域把一个AS分成多个链路状态域,因为一个区域的拓扑结构对另一个区域是不可见的,一个区域不会被扩散,这个特征大大降低了一个AS中的路由交通数量,区域被用来包含链路状态的更新并使管理者能建立分层网络。链路状态通告(LSA)LSA用来描述路由器的本地状态,LSA包括的信息有关于路由器接口的状态和所形成的邻接状态链路状态表(拓扑表,LinkStateDatabase)包含了网络中所有路由器的链接状态。它表示整个网络的拓扑结构。同Area内的所有路由器的链接状态表,都是相同的路由表