OSPF.docx
- 文档编号:5361872
- 上传时间:2022-12-15
- 格式:DOCX
- 页数:91
- 大小:536.50KB
OSPF.docx
《OSPF.docx》由会员分享,可在线阅读,更多相关《OSPF.docx(91页珍藏版)》请在冰豆网上搜索。
OSPF
2.1OSPF
2.1.1OSPF基础
OSPF协议具有以下特点:
∙OSPF把自治系统划分成逻辑意义上的一个或多个区域;
∙OSPF通过LSA(LinkStateAdvertisement)的形式发布路由;
∙OSPF依靠在OSPF区域内各设备间交互OSPF报文来达到路由信息的统一;
∙OSPF报文封装在IP报文内,可以采用单播或组播的形式发送。
报文类型
表1报文类型
报文类型
报文作用
Hello报文
周期性发送,用来发现和维持OSPF邻居关系。
DD报文(DatabaseDescriptionpacket)
描述本地LSDB的摘要信息,用于两台设备进行数据库同步。
LSR报文(LinkStateRequestpacket)
用于向对方请求所需的LSA。
设备只有在OSPF邻居双方成功交换DD报文后才会向对方发出LSR报文。
LSU报文(LinkStateUpdatepacket)
用于向对方发送其所需要的LSA。
LSAck报文(LinkStateAcknowledgmentpacket)
用来对收到的LSA进行确认。
LSA类型
表2LSA类型
LSA类型
LSA作用
Router-LSA(Type1)
每个设备都会产生,描述了设备的链路状态和开销,在所属的区域内传播。
Network-LSA(Type2)
由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协议中常用到的路由器类型如图1所示。
图1路由器类型
表3路由器类型
路由器类型
含义
区域内路由器(InternalRouter)
该类设备的所有接口都属于同一个OSPF区域。
区域边界路由器ABR(AreaBorderRouter)
该类设备可以同时属于两个以上的区域,但其中一个必须是骨干区域。
ABR用来连接骨干区域和非骨干区域,它与骨干区域之间既可以是物理连接,也可以是逻辑上的连接。
骨干路由器(BackboneRouter)
该类设备至少有一个接口属于骨干区域。
所有的ABR和位于Area0的内部设备都是骨干路由器。
自治系统边界路由器ASBR(ASBoundaryRouter)
与其他AS交换路由信息的设备称为ASBR。
ASBR并不一定位于AS的边界,它可能是区域内设备,也可能是ABR。
只要一台OSPF设备引入了外部路由的信息,它就成为ASBR。
路由类型
AS区域内和区域间路由描述的是AS内部的网络结构,AS外部路由则描述了应该如何选择到AS以外目的地址的路由。
OSPF将引入的AS外部路由分为Type1和Type2两类。
表4中按优先级从高到低顺序列出了路由类型。
表4路由类型
路由类型
含义
IntraArea
区域内路由。
InterArea
区域间路由。
第一类外部路由(Type1External)
这类路由的可信程度高一些,所以计算出的外部路由的开销与自治系统内部的路由开销是相当的,并且和OSPF自身路由的开销具有可比性。
到第一类外部路由的开销=本设备到相应的ASBR的开销+ASBR到该路由目的地址的开销。
第二类外部路由(Type2External)
这类路由的可信度比较低,所以OSPF协议认为从ASBR到自治系统之外的开销远远大于在自治系统之内到达ASBR的开销。
所以,OSPF计算路由开销时只考虑ASBR到自治系统之外的开销,即到第二类外部路由的开销=ASBR到该路由目的地址的开销。
区域类型
表5区域类型
区域类型
作用
普通区域
缺省情况下,OSPF区域被定义为普通区域。
普通区域包括标准区域和骨干区域。
∙标准区域是最通用的区域,它传输区域内路由,区域间路由和外部路由。
∙骨干区域是连接所有其他OSPF区域的中央区域。
骨干区域通常用Area0表示。
STUB区域
不允许发布自治系统外部路由,只允许发布区域内路由和区域间的路由。
在STUB区域中,路由器的路由表规模和路由信息传递的数量都会大大减少。
为了保证到自治系统外的路由可达,由该区域的ABR发布Type3缺省路由传播到区域内,所有到自治系统外部的路由都必须通过ABR才能发布。
TotallySTUB区域
不允许发布自治系统外部路由和区域间的路由,只允许发布区域内路由。
在TotallySTUB区域中,路由器的路由表规模和路由信息传递的数量都会大大减少。
为了保证到自治系统外的路由可达,由该区域的ABR发布Type3缺省路由传播到区域内,所有到自治系统外部的路由都必须通过ABR才能发布。
NSSA区域
NSSA区域允许引入自治系统外部路由,由ASBR发布Type7LSA通告给本区域,这些Type7LSA在ABR上转换成Type5LSA,并且泛洪到整个OSPF域中。
NSSA区域同时保留自治系统内的STUB区域的特征。
该区域的ABR发布Type3缺省路由传播到区域内,所有域间路由都必须通过ABR才能发布。
TotallyNSSA区域
TotallyNSSA区域允许引入自治系统外部路由,由ASBR发布Type7LSA通告给本区域,这些Type7LSA在ABR上转换成Type5LSA,并且泛洪到整个OSPF域中。
TotallyNSSA区域同时保留自治系统内的TotallySTUBArea区域的特征。
该区域的ABR发布Type3缺省路由传播到区域内,所有域间路由都必须通过ABR才能发布。
OSPF支持的网络类型
OSPF根据链路层协议类型,将网络分为如表6所列四种类型。
表6OSPF网络类型
网络类型
含义
广播类型(Broadcast)
当链路层协议是Ethernet、FDDI时,缺省情况下,OSPF认为网络类型是Broadcast。
在该类型的网络中:
∙通常以组播形式发送Hello报文、LSU报文和LSAck报文。
其中,224.0.0.5的组播地址为OSPF设备的预留IP组播地址;224.0.0.6的组播地址为OSPFDR/BDR的预留IP组播地址。
∙以单播形式发送DD报文和LSR报文。
NBMA类型(Non-BroadcastMulti-Acess)
当链路层协议是帧中继、X.25时,缺省情况下,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报文)。
STUB区域
STUB区域是一些特定的区域,STUB区域的ABR不传播它们接收到的自治系统外部路由,在这些区域中路由器的路由表规模以及路由信息传递的数量都会大大减少。
STUB区域是一种可选的配置属性,但并不是每个区域都符合配置的条件。
通常来说,STUB区域位于自治系统的边界,是那些只有一个ABR的非骨干区域。
为保证到自治系统外的路由依旧可达,该区域的ABR将生成一条缺省路由,并发布给STUB区域中的其他非ABR路由器。
配置STUB区域时需要注意下列几点:
∙骨干区域不能配置成STUB区域。
∙如果要将一个区域配置成STUB区域,则该区域中的所有路由器都要配置STUB区域属性。
∙STUB区域内不能存在ASBR,即自治系统外部的路由不能在本区域内传播。
∙虚连接不能穿过STUB区域。
NSSA区域
OSPFNSSA(Not-So-StubbyArea)区域是OSPF特殊的区域类型。
NSSA区域与STUB区域有许多相似的地方,两者都不传播来自OSPF网络其它区域的外部路由。
差别在于STUB区域是不能引入外部路由,NSSA区域能够将自治域外部路由引入并传播到整个OSPF自治域中。
当区域配置为NSSA区域后,为保证到自治系统外的路由可达,NSSA区域的ABR将生成一条缺省路由,并发布给NSSA区域中的其他路由器。
配置NSSA区域时需要注意下列几点:
∙骨干区域不能配置成NSSA区域。
∙如果要将一个区域配置成NSSA区域,则该区域中的所有路由器都要配置NSSA区域属性。
∙虚连接不能穿过NSSA区域。
邻居状态机
OSPF共有8种状态机,分别是:
Down、Attempt、Init、2-way、Exstart、Exchange、Loading、Full。
∙Down:
邻居会话的初始阶段,表明没有在邻居失效时间间隔内收到来自邻居路由器的Hello数据包。
∙Attempt:
该状态仅发生在NBMA网络中,表明对端在邻居失效时间间隔(deadinterval)超时后仍然没有回复Hello报文。
此时路由器依然每发送轮询Hello报文的时间间隔(pollinterval)向对端发送Hello报文。
∙Init:
收到Hello报文后状态为Init。
∙2-way:
收到的Hello报文中包含有自己的RouterID,则状态为2-way;如果不形成邻接关系则邻居状态机就停留在此状态,否则进入Exstart状态。
∙Exstart:
如果形成邻居关系,则从Init状态转到Exstart状态,开始协商主从关系,并确定DD的序列号。
∙Exchange:
主从关系协商完毕后开始交换DD报文,此时状态为Exchange。
∙Loading:
DD报文交换完成即Exchangedone,此时状态为Loading。
∙Full:
LSR重传列表为空,此时状态为Full。
OSPF报文认证
OSPF支持报文验证功能,只有通过验证的OSPF报文才能接收,否则将不能正常建立邻居。
路由器支持两种验证方式:
∙区域验证方式
∙接口验证方式
当两种验证方式都存在时,优先使用接口验证方式。
OSPF路由聚合
路由聚合是指ABR可以将具有相同前缀的路由信息聚合到一起,只发布一条路由到其它区域。
区域间通过路由聚合,可以减少路由信息,从而减小路由表的规模,提高设备的性能。
OSPF有两种路由聚合方式:
∙ABR聚合
ABR向其它区域发送路由信息时,以网段为单位生成Type3LSA。
如果该区域中存在一些连续的网段,则可以通过命令将这些连续的网段聚合成一个网段。
这样ABR只发送一条聚合后的LSA,所有属于命令指定的聚合网段范围的LSA将不会再被单独发送出去。
∙ASBR聚合
配置路由聚合后,如果本地设备是自治系统边界路由器ASBR,将对引入的聚合地址范围内的Type5LSA进行聚合。
当配置了NSSA区域时,还要对引入的聚合地址范围内的Type7LSA进行聚合。
如果本地设备既是ASBR又是ABR,则对由Type7LSA转化成的Type5LSA进行聚合处理。
OSPF缺省路由
缺省路由是指目的地址和掩码都是0的路由。
当设备无精确匹配的路由时,就可以通过缺省路由进行报文转发。
由于OSPF路由的分级管理,Type3缺省路由的优先级高于Type5或Type7路由。
OSPF缺省路由通常应用于下面两种情况:
∙由区域边界路由器(ABR)发布Type3缺省SummaryLSA,用来指导区域内设备进行区域之间报文的转发。
∙由自治系统边界路由器(ASBR)发布Type5外部缺省ASELSA,或者Type7外部缺省NSSALSA,用来指导自治系统(AS)内设备进行自治系统外报文的转发。
OSPF缺省路由的发布原则如下:
∙OSPF路由器只有具有对外的出口时,才能够发布缺省路由LSA。
∙如果OSPF路由器已经发布了缺省路由LSA,那么不再学习其它路由器发布的相同类型缺省路由。
即路由计算时不再计算其它路由器发布的相同类型的缺省路由LSA,但数据库中存有对应LSA。
∙外部缺省路由的发布如果要依赖于其它路由,那么被依赖的路由不能是本OSPF路由域内的路由,即不是本进程OSPF学习到的路由。
因为外部缺省路由的作用是用于指导报文的域外转发,而本OSPF路由域的路由的下一跳都指向了域内,不能满足指导报文域外转发的要求。
不同区域缺省路由发布原则如表7所示。
表7OSPF缺省路由发布原则
区域类型
作用
普通区域
缺省情况下,普通OSPF区域内的OSPF路由器是不会产生缺省路由的,即使它有缺省路由。
当网络中缺省路由通过其他路由进程产生时,路由器必须将缺省路由通告到整个OSPF自治域中。
实现方法是在ASBR上手动通过命令进行配置,产生缺省路由。
配置完成后,路由器会产生一个缺省ASELSA(Type5LSA),并且通告到整个OSPF自治域中。
STUB区域
STUB区域不允许自治系统外部的路由(Type5LSA)在区域内传播。
区域内的路由器必须通过ABR学到自治系统外部的路由。
实现方法是ABR会自动产生一条缺省的SummaryLSA(Type3LSA)通告到整个STUB区域内。
这样,到达自治系统的外部路由就可以通过ABR到达。
TotallySTUB区域
TotallySTUB区域既不允许自治系统外部的路由(Type5LSA)在区域内传播,也不允许区域间路由(Type3LSA)在区域内传播。
区域内的路由器必须通过ABR学到自治系统外部和其他区域的路由。
实现方法是配置TotallySTUB区域后,ABR会自动产生一条缺省的SummaryLSA(Type3LSA)通告到整个STUB区域内。
这样,到达自治系统外部的路由和其他区域间的路由都可以通过ABR到达。
NSSA区域
NSSA区域允许引入通过本区域的ASBR到达的少量外部路由,但不允许其他区域的外部路由ASELSA(Type5LSA)在区域内传播。
即到达自治系统外部的路由只能通过本区域的ASBR到达。
只配置了NSSA区域是不会自动产生缺省路由的。
此时,有两种选择:
∙如果希望到达自治系统外部的路由通过该区域的ASBR到达,而其它外部路由通过其它区域出去。
此时,ABR会产生一条Type7LSA的缺省路由,通告到整个NSSA区域内。
这样,除了某少部分路由通过NSSA的ASBR到达,其它路由都可以通过NSSA的ABR到达其它区域的ASBR出去。
∙如果希望所有的外部路由只通过本区域NSSA的ASBR到达。
则必须在ASBR上手动通过命令进行配置,使ASBR产生一条缺省的NSSALSA(Type7LSA),通告到整个NSSA区域内。
这样,所有的外部路由就只能通过本区域NSSA的ASBR到达。
上面两种情况的区别是:
∙在ABR上无论路由表中是否存在缺省路由0.0.0.0,都会产生Type7LSA的缺省路由。
∙在ASBR上只有当路由表中存在缺省路由0.0.0.0时,才会产生Type7LSA的缺省路由。
因为缺省路由只是在本NSSA区域内泛洪,并没有泛洪到整个OSPF域中,所以本NSSA区域内的路由器在找不到路由之后可以从该NSSA的ASBR出去,但不能实现其他OSPF域的路由从这个出口出去。
Type7LSA缺省路由不会在ABR上转换成Type5LSA缺省路由泛洪到整个OSPF域。
TotallyNSSA区域
TotallyNSSA区域既不允许其他区域的外部路由ASELSA(Type5LSA)在区域内传播,也不允许区域间路由(Type3LSA)在区域内传播。
区域内的路由器必须通过ABR学到其他区域的路由。
实现方法是配置TotallyNSSA区域后,ABR会自动产生一条缺省的Type3LSA通告到整个NSSA区域内。
这样,其他区域的外部路由和区域间路由都可以通过ABR在区域内传播。
OSPF路由过滤
OSPF支持使用路由策略对路由信息进行过滤。
缺省情况下,OSPF不进行路由过滤。
OSPF可以使用的路由策略包括route-policy,访问控制列表(access-list),地址前缀列表(prefix-list)。
OSPF路由过滤可以应用于以下几个方面:
∙路由引入
OSPF可以引入其它路由协议学习到的路由。
在引入时可以通过配置路由策略来过滤路由,只引入满足条件的路由。
∙引入路由发布
OSPF引入了路由后会向其它邻居发布引入的路由信息。
可以通过配置过滤规则来过滤向邻居发布的路由信息。
该过滤规则只在ASBR上配置才有效。
∙路由学习
通过配置过滤规则,可以设置OSPF对接收到的区域内、区域间和自治系统外部的路由进行过滤。
该过滤只作用于路由表项的添加与否,即只有通过过滤的路由才被添加到本地路由表中,但所有的路由仍可以在OSPF路由表中被发布出去。
∙区域间LSA学习
通过命令可以在ABR上配置对进入本区域的SummaryLSA进行过滤。
该配置只在ABR上有效(只有ABR才能发布SummaryLSA)。
表8区域间LSA学习与路由学习的差异
区域间LSA学习
路由学习
直接对进入区域的LSA进行过滤。
路由学习中的过滤不对LSA进行过滤,只针对LSA计算出来的路由是否添加本地路由表进行过滤。
学习到的LSA是完整的。
∙区域间LSA发布
通过命令可以在ABR上配置对本区域出方向的SummaryLSA进行过滤。
该配置只在ABR上配置有效。
OSPF多进程
OSPF支持多进程,在同一台路由器上可以运行多个不同的OSPF进程,它们之间互不影响,彼此独立。
不同OSPF进程之间的路由交互相当于不同路由协议之间的路由交互。
路由器的一个接口只能属于某一个OSPF进程。
OSPF多进程的一个典型应用就是在VPN场景中PE和CE之间运行OSPF协议,同时VPN骨干网上的IGP也采用OSPF。
在PE上,这两个OSPF进程互不影响。
OSPFRFC1583兼容
RFC1583是OSPFv2协议比较早的版本。
OSPF在计算外部路由时,由于RFC2328和RFC1583的路由计算规则不一致,可能会导致路由环路。
为了避免路由环路的发生,RFC2328中提出了RFC1583兼容特性。
∙使能RFC1583兼容后,OSPF采用RFC1583的路由计算规则。
∙不使能RFC1583兼容时,OSPF采用RFC2328的路由计算规则。
OSPF是根据5类LSA来计算外部路由的。
RFC1583兼容特性主要用于路由器收到5类LSA后:
∙选择到达产生该LSA的ASBR或该LSA所描述的转发地址(ForwardingAddress)的路径;
∙选择到达相同目的地的外部路径。
缺省情况下,OSPF兼容RFC1583。
2.1.2OSPFTE
OSPFTE(OSPFTrafficEngineering,即OSPF流量工程)是为了支持MPLS流量工程(MPLSTE),支持建立和维护TE的标签交换路径LSP(LabelSwitchPath)而在OSPF协议基础上扩展的新特性。
在MPLSTE架构中(请参看特性描述MPLS部分)OSPF扮演了信息发布组件的角色,负责收集扩散MPLS流量工程信息。
除了网络的拓扑信息外,流量工程还需要知道网络的约束信息(包括带宽、TE度量值、管理组和亲和属性等)。
但OSPF现有的功能不足以满足这些要求。
因此需要对现有的OSPF进行扩展,通过引入新类型的LSA来发布这些信息,CSPF(ConstrainedShortestPathFirst)算法利用这些信息就可以计算出满足各种约束条件的路径。
图1OSPF在MPLS-TE体系中的作用
OSPF在MPLS-TE中的作用
在MPLS-TE体系结构中OSPF起到了信息发布组件的作用:
∙收集TE相关信息。
∙在同一个区域中的各设备间扩散TE信息。
∙把同步收集到的TE信息组成流量工程数据库TEDB(TEDataBase)提供给CSPF计算。
除此之外,OSPF并不关心信息具体是什么以及MPLS如何使用这些信息。
TE-LSA
OSPF通过新增Type10OpaqueLSA来实现收集和发布流量工程信息的目的。
这种LSA中包含了流量工程所需要的链路状态信息,包括最大链路带宽、最大可预留带宽、当前预留带宽、链路颜色等信息。
Type10OpaqueLSA利用OSPF泛洪机制在一个区域内的设备间同步这些信息,最终形成统一的TEDB,为路径计算做好准备。
OSPFTE与CSPF交互
OSPF通过Type10-LSA收集区域内的TE信息,包括带宽、优先级、链路开销(Metric)等,经过处理后,把这些信息提供给CSPF进行路径计算。
IGPShortcut和转发邻接
OSPF支持IGPShortcut和转发邻接(ForwardingAdjacency)特性,这两个特性允许OSPF使用隧道接口(Tunnel接口)作为到达某个目的地址的出接口。
IGPShortcut和转发邻接的区别在于:
∙使能IGPShortcut特性的设备使用隧道接口作为出接口,但不将这个隧道接口链路发布给邻居,因此,其他设备不能使用此隧道。
∙使能转发邻接特性的设备在使用隧道接口作为出接口的同时,也将这个隧道接口发布给邻居,因此,其他设备能够使用此隧道。
∙IGPShortcut是单向的,只需要在使用该特性的设备上配置即可。
OSPFDS-TE
DS-TE(DiffSerAwareTrafficEngineering)综合了MPLSTE和差分服务模型Diff-Ser(DifferentiatedServices)的优点,在精确控制流量流经的路径的基础上,可以根据业务的不同服务等级,有差别地进行流量的控制和转发,从而支持在有效利用网络资源的同时,为不同的业务流预留所需的资源。
具体请参看特性描述MPLS部分。
为了支持MPLS中
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- OSPF