OSPF路由协议是用于网际协议(IP)网络的链路状态路由协议。该协议使用链路状态路由算法的内部网关协议(IGP),在单一自治系统(AS)内部工作。适用于IPv4的OSPFv2协议定义于RFC 2328,RFC 5340定义了适用于IPv6的OSPFv3。 一.概述开放式最短路径优先(Open Shortest Path First,OSPF)是目前广泛使用的一种动态路由协议,它属于链路状态路由协议,具有路由变化收敛速度快、无路由环路、支持变长子网掩码(VLSM)和汇总、层次区域划分等优点。在网络中使用OSPF协议后,大部分路由将由OSPF协议自行计算和生成,无须网络管理员人工配置,当网络拓扑发生变化时,协议可以自动计算、更正路由,极大地方便了网络管理。但如果使用时不结合具体网络应用环境,不做好细致的规划,OSPF协议的使用效果会大打折扣,甚至引发故障。 [1]
OSPF协议是一种链路状态协议。每个路由器负责发现、维护与邻居的关系,并将已知的邻居列表和链路费用LSU(Link State Update)报文描述,通过可靠的泛洪与自治系统AS(Autonomous System)内的其他路由器周期×××互,学习到整个自治系统的网络拓扑结构;并通过自治系统边界的路由器注入其他AS的路由信息,从而得到整个Internet的路由信息。每隔一个特定时间或当链路状态发生变化时,重新生成LSA,路由器通过泛洪机制将新LSA通告出去,以便实现路由的实时更新。 二.分组OSPF协议依靠五种不同类型的分组来建立邻接关系和交换路由信息,即问候分组、数据库描述分组、链路状态请求分组、链路状态更新分组和链路状态确认分组。 1、问候(Hello)分组 OSPF使用Hello分组建立和维护邻接关系。在一个路由器能够给其他路由器分发它的邻居信息前,必须先问候它的邻居们。 2、数据库描述(Data base Description,DBD)分组 DBD分组不包含完整的“链路状态数据库”信息,只包含数据库中每个条目的概要。当一个路由器首次连入网络,或者刚刚从故障中恢复时,它需要完整的“链路状态数据库”信息。此时,该路由器首先通过hello分组与邻居们建立双向通信关系,然后将会收到每个邻居反馈的DBD分组。新连入的这个路由器会检查所有概要,然后发送一个或多个链路状态请求分组,取回完整的条目信息。 3、链路状态请求(Link State Request,LSR)分组 LSR分组用来请求邻居发送其链路状态数据库中某些条目的详细信息。当一个路由器与邻居交换了数据库描述分组后,如果发现它的链路状态数据库缺少某些条目或某些条目已过期,就使用LSR分组来取得邻居链路状态数据库中较新的部分。 4、链路状态更新(Link State Update,LSU)分组 LSU分组被用来应答链路状态请求分组,也可以在链路状态发生变化时实现洪泛(flooding)。在网络运行过程中,只要一个路由器的链路状态发生变化,该路由器就要使用LSU,用洪泛法向全网更新链路状态。 5、链路状态确认(Link State Acknowledgment,LSAck)分组 LSAck分组被用来应答链路状态更新分组,对其进行确认,从而使得链路状态更新分组采用的洪泛法变得可靠。 三、OSPF的优点(1)OSPF适合在大范围的网络:OSPF协议当中对于路由的跳数,它是没有限制的,所以OSPF协议能用在许多场合,同时也支持更加广泛的网络规模。只要是在组播的网络中,OSPF协议能够支持数十台路由器一起运作。 (2)组播触发式更新:OSPF协议在收敛完成后,会以触发方式发送拓扑变化的信息给其他路由器,这样就可以减少网络宽带的利用率;同时,可以减小干扰,特别是在使用组播网络结构,对外发出信息时,它对其他设备不构成其他影响 (3)收敛速度快:如果网络结构出现改变,OSPF协议的系统会以最快的速度发出新的报文,从而使新的拓扑情况很快扩散到整个网络;而且,OSPF采用周期较短的HELLO报文来维护邻居状态。 (4)以开销作为度量值:OSPF协议在设计时,就考虑到了链路带宽对路由度量值的影响。OSPF协议是以开销值作为标准,而链路开销和链路带宽,正好形成了反比的关系,带宽越是高,开销就会越小,这样一来,OSPF选路主要基于带宽因素。 (5)OSPF协议的设计是为了避免路由环路:在使用最短路径的算法下,收到路由中的链路状态,然后生成路径,这样不会产生环路。 (6)应用广泛:目前广泛的应用在互联网上,其他会有大量的应用实例。证明这是使用最广泛的IPG之一。 四、缺点1)OSPF协议的配置对于技术水平要求很高,配置比较复杂的。因为网络会根据具体的参数,给整个网络划分区域或者标注某个属性,所以各种情况都会非常复杂,这就要求网络分析员对OSPF协议的配置要相当了解,不但要求具有普通的网络知识技术,还要有更深层的技术理解,只有具备这样的人员,才能完成OSPF协议的配置和日常维护。 (2)路由其自身的负载分担能力是很低的。OSPF路由协议会根据几个主要的因素,生成优先级不同的接口。然而在同一个区域内,路由协议只会通过优先级最高的那个接口。只要是接口优先级低于最高优先级,那么路由就不会通过。在这个基础上,不同等级的路由,无法相互承担负载,只能独自运行。