2017/11/14OSPFfile:///F:/0.%E6%95%B0%E9%80%9A/%E5%8F%82%E8%80%83%E8%B5%84%E6%96%99/%E5%8D%8E%E4%B8%BA%E4%B8%93%E9…1/38目录10 OSPF10.1介绍10.2原理描述10.2.1OSPF基础10.2.2OSPF协议基本概念10.2.3OSPF协议基本原理10.2.4OSPF路由控制10.2.5OSPF虚连接10.2.6OSPFTE10.2.7OSPFVPN10.2.8OSPFNSSA10.2.9OSPF本地MT10.2.10BFDforOSPF10.2.11OSPFGTSM10.2.12OSPFSmart-discover10.2.13OSPF-BGP联动10.2.14OSPF快速收敛10.2.15按优先级收敛10.2.16OSPFIPFRR10.2.17OSPF认证10 OSPF10.1介绍10.2原理描述10.1 介绍定义OSPF(OpenShortestPathFirst)是IETF组织开发的一个基于链路状态的内部网关协议(InteriorGatewayProtocol)。目前针对IPv4协议使用的是OSPFVersion2(RFC2328);针对IPv6协议使用OSPFVersion3(RFC2740)。本文中所指的OSPF如不特殊说明均为OSPFVersion2。目的在OSPF出现前,网络上广泛使用RIP(RoutingInformationProtocol)作为内部网关协议。2017/11/14OSPFfile:///F:/0.%E6%95%B0%E9%80%9A/%E5%8F%82%E8%80%83%E8%B5%84%E6%96%99/%E5%8D%8E%E4%B8%BA%E4%B8%93%E9…2/38由于RIP是基于距离矢量算法的路由协议,存在着收敛慢、路由环路、可扩展性差等问题,所以逐渐被OSPF取代。OSPF作为基于链路状态的协议,能够解决RIP所面临的诸多问题。此外,OSPF还有以下优点:OSPF采用多播形式收发报文,这样就可以减少其它不运行OSPF设备的负担。OSPF支持无类型域间选路(CIDR)。OSPF支持对等价路由进行负载分担。OSPF支持报文加密。由于OSPF具有以上优势,使得OSPF作为优秀的内部网关协议被快速接受并广泛使用。10.2 原理描述10.2.1 OSPF基础OSPF协议具有以下特点:OSPF把自治系统划分成逻辑意义上的一个或多个区域。OSPF通过LSA(LinkStateAdvertisement)的形式发布路由。OSPF依靠在OSPF区域内各路由器间交互OSPF报文来达到路由信息的统一。OSPF报文封装在IP报文内,可以采用单播或组播的形式发送。支持OSPF接口使能特性,方便用户通过网管软件管理OSPF。支持Router-id冲突检测并修复功能,实现当OSPF检测到Router-id冲突后选择新的Router-id,从而避免路由震荡。OSPF报文类型表10-1OSPF报文类型报文类型报文作用Hello报文周期性发送,用来发现和维持OSPF邻居关系。DD报文(DatabaseDescriptionpacket)描述本地LSDB的摘要信息,用于两台路由器进行数据库同步。LSR报文(LinkStateRequestpacket)用于向对方请求所需的LSA。路由器只有在OSPF邻居双方成功交换DD报文后才会向对方发出LSR报文。LSU报文(LinkStateUpdatepacket)用于向对方发送其所需要的LSA。LSAck报文(LinkStateAcknowledgmentpacket)用来对收到的LSA进行确认。LSA类型表10-2OSPFLSA类型LSA类型LSA作用2017/11/14OSPFfile:///F:/0.%E6%95%B0%E9%80%9A/%E5%8F%82%E8%80%83%E8%B5%84%E6%96%99/%E5%8D%8E%E4%B8%BA%E4%B8%93%E9…3/38Router-LSA(Type1)每个路由器都会产生,描述了路由器的链路状态和开销,在发布路由器所属的区域内传播。Network-LSA(Type2)由DR(DesignatedRouter)产生,描述本网段的链路状态,在DR所属的区域内传播。Network-summary-LSA(Type3)由ABR产生,描述区域内某个网段的路由,并通告给发布或接收此LSA的非TotallyStub或NSSA区域。ASBR-summary-LSA(Type4)由ABR产生,描述到ASBR的路由,通告给除ASBR所在区域的其他区域。AS-external-LSA(Type5)由ASBR产生,描述到AS外部的路由,通告到所有的区域(除了Stub区域和NSSA区域)。NSSALSA(Type7)由ASBR产生,描述到AS外部的路由,仅在NSSA区域内传播。OpaqueLSA(Type9/Type10/Type11)OpaqueLSA提供用于OSPF的扩展的通用机制。其中:Type9LSA仅在接口所在网段范围内传播。用于支持GR的GraceLSA就是Type9LSA的一种。Type10LSA在区域内传播。用于支持TE的LSA就是Type10LSA的一种。Type11LSA在自治域内传播,目前还没有实际应用的例子。路由器类型OSPF协议中常用到的路由器类型如图10-1所示。图10-1路由器类型表10-3OSPF路由器类型路由器类型含义区域内路由器(InternalRouter)该类路由器的所有接口都属于同一个OSPF区域。区域边界路由器ABR(AreaBorderRouter)该类路由器可以同时属于两个以上的区域,但其中一个必须是骨干区域。ABR用来连接骨干区域和非骨干区域,它与骨干区域之间既可以是物理连接,也可以是逻辑上的连接。骨干路由器(BackboneRouter)该类路由器至少有一个接口属于骨干区域。所有的ABR和位于Area0的内部路由器都是骨干路由器。2017/11/14OSPFfile:///F:/0.%E6%95%B0%E9%80%9A/%E5%8F%82%E8%80%83%E8%B5%84%E6%96%99/%E5%8D%8E%E4%B8%BA%E4%B8%93%E9…4/38路由器类型含义自治系统边界路由器ASBR(ASBoundaryRouter)与其他AS交换路由信息的路由器称为ASBR。ASBR并不一定位于AS的边界,它可能是区域内路由器,也可能是ABR。OSPF路由类型AS区域内和区域间路由描述的是AS内部的网络结构,AS外部路由则描述了应该如何选择到AS以外目的地址的路由。OSPF将引入的AS外部路由分为Type1和Type2两类。表10-4中按优先级从高到低顺序列出了路由类型。表10-4OSPF路由类型路由类型含义IntraArea区域内路由。InterArea区域间路由。第一类外部路由(Type1External)这类路由的可信程度高一些,所以计算出的外部路由的开销与自治系统内部的路由开销是相当的,并且和OSPF自身路由的开销具有可比性。到第一类外部路由的开销=本路由器到相应的ASBR的开销+ASBR到该路由目的地址的开销。第二类外部路由(Type2External)这类路由的可信度比较低,所以OSPF协议认为从ASBR到自治系统之外的开销远远大于在自治系统之内到达ASBR的开销。所以,OSPF计算路由开销时只考虑ASBR到自治系统之外的开销,即到第二类外部路由的开销=ASBR到该路由目的地址的开销。区域类型表10-5OSPF区域类型区域类型作用TotallyStubArea允许ABR发布的Type3缺省路由,不允许自治系统外部路由和区域间的路由。StubArea和TotallyStub区域的不同在于该区域允许区域间路由。NSSAArea和Stub区域的不同在于该区域允许自治系统外部路由的引入,由ASBR发布Type7LSA通告给本区域。TotallyNSSAArea和NSSA区域的不同在于该区域不允许区域间路由。OSPF支持的网络类型OSPF根据链路层协议类型,将网络分为如表10-6所列四种类型。表10-6OSPF网络类型网络类型含义2017/11/14OSPFfile:///F:/0.%E6%95%B0%E9%80%9A/%E5%8F%82%E8%80%83%E8%B5%84%E6%96%99/%E5%8D%8E%E4%B8%BA%E4%B8%93%E9…5/38广播类型(Broadcast)当链路层协议是Ethernet、FDDI时,缺省情况下,OSPF认为网络类型是Broadcast。在该类型的网络中:通常以组播形式发送Hello报文和LSAck报文。对于LSU报文,通常以组播形成首次发送,以单播形式进行重传。其中,224.0.0.5的组播地址为OSPF路由器的预留IP组播地址;224.0.0.6的组播地址为OSPFDR的预留IP组播地址。以单播形式发送DD报文和LSR报文。NBMA类型(Non-broadcastmultipleaccess)当链路层协议是ATM时,缺省情况下,OSPF认为网络类型是NBMA。在该类型的网络中,以单播形式发送协议报文(Hello报文、DD报文、LSR报文、LSU报文、LSAck报文)。点到多点P2MP类型(Point-to-Multipoint)没有一种链路层协议会被缺省的认为是Point-to-Multipoint类型。点到多点必须是由其他的网络类型强制更改的。常用做法是将非全连通的NBMA改为点到多点的网络。在该类型的网络中:以组播形式(224.0.0.5)发送Hello报文;以单播形式发送其他协议报文(DD报文、LSR报文、LSU报文、LSAck报文)。点到点P2P类型(point-to-point)当链路层协议是PPP、HDLC和LAPB时,缺省情况下,OSPF认为网络类型是P2P。在该类型的网络中:以组播形式(224.0.0.5)发送协议报文(Hello报文、DD报文、LSR报文、LSU报文、LSAck报文)。以组播形式重传LSU报文。Stub区域Stub区域是一些特定的区域,Stub区域的ABR不传播它们接收到的自治系统外部路由,在这些区域中路由器的路由表规模以及路由信息传递的数量都会大大减少。Stub区域是一种可选的配置属性,但并不是每个区域都符合配置的条件。通常来说,Stub区域位于自治系统的边界,是那些只有一个ABR的非骨干区域。为保证到自治系统外的路由依旧可达,该区域的ABR将生成一条缺省路由,并发布给Stub区域中的其他非ABR路由器。配置Stub区域时需要注意下列几点:骨干区域不能配置成Stub区域。如果要将一个区域配置成Stub区域,则该区域中的所有路由器都要配置Stub区域属性。Stub区域内不能存在ASBR,即自治系统外部的路由不能在本区域内传播。虚连接不能穿过Stub区域。OSPF路由聚合路由聚合是指将具有相同前缀的路由信息聚合在一起,只发布一条路由到其它区域。通过路由聚合,可以减少路由信息,从而减小路由表的规模,提高路由器的性能。OSPF有两种路由聚合方式:ABR聚合2017/11/14OSPFfile:///F:/0.%E6%95%B0%E9%80%9A/%E5%8F%82%E8%80%83%E8%B5%84%E6%96%99/%E5%8D%8E%E4%B8%BA%E4%B8%93%E9…6/38ABR向其它区域发送路由信息时,以网段为单位生成Type3LSA。如果该区域中存在一些连续的网段,则可以通过命令将这些连续的网段聚合成一个网段。这样ABR只发送一条聚合后的LSA,所有属于命令指定的聚合网段范围的LSA将不会再被单独发送出去。ASBR聚合配置引入路由聚合后,如果本地路由器是自治系统边界路由器ASBR,将对引入的聚合地址范围内的Type5LSA进行聚合。当配置了