OSPF知识点总结

更新时间:2024-05-01 14:28:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

OSPF四种网络类型:

Broadcast:一般为以太网,组播发送协议报文,选举DR、BDR NBMA:FR、ATM等链路层协议;虽然跨接口,但是都在同一网段

Point-to-Point:PPP,不选举DR/BDR,把两端端口的类型配置为P2P方式,可以加快协议收敛,因为不需要再选举DR/BDR了

Point-to-Multipoint:手动改成的,多播hello包自动发现邻居,不选DR/BDR

OSPF五种网络交互报文:

? Hello报文:发现及维持邻居关系,选举DR,BDR

周期性发给邻居路由器,使用组播224.0.0.5,DR/BDR使用组播224.0.0.6;间隔时间:广播网络10s,dead-timer40s;点到点30s。

? DD报文:本地LSDB的摘要

内容包括LSDB中每条LSA的摘要;用来确定Exchang阶段的主从关系(空DD报文)。 ? LSR报文:向对端请求本端没有或对端的更新的LSA 包括本端向对端申请的LSA的摘要 ? LSU报文:向对方发送其需要的LSA 内容是多条LSA(完整内容)

? LSAck报文:收到LSU之后,进行确认(是对LSA的确认) 内容是多条LSA的报文头

OSPF七种协议状态:

Down:这是邻居的初始状态,表示没有从邻居收到任何信息。在NBMA网络上,此状态下仍然可以向静态配置的邻居发送Hello报文,发送间隔为PollInterval,通常和RouterDeadInterval间隔相同。

Attempt:此状态只在NBMA网络上存在,表示没有收到邻居的任何信息,但是已经周期性的向邻居发送报文,发送间隔为HelloInterval。如果RouterDeadInterval间隔内未收到邻居的Hello报文,则转为Down状态。 Init:在此状态下,路由器已经从邻居收到了Hello报文,但是自己不在所收到的Hello报文的邻居列表中,表示尚未与邻居建立双向通信关系。在此状态下的邻居要被包含在自己所发送的Hello报文的邻居列表中。 2-WayReceived:此事件表示路由器发现与邻居的双向通信已经开始(发现自己在邻居发送的Hello报文的邻居列表中)。Init状态下产生此事件之后,如果需要和邻居建立邻接关系则进入ExStart状态,开始数据库同步过程,如果不能与邻居建立邻接关系则进入2-Way。

2-Way:在此状态下,双向通信已经建立,但是没有与邻居建立邻接关系。这是建立邻接关系以前的最高级状态。

1-WayReceived:此事件表示路由器发现自己没有在邻居发送Hello报文的邻居列表中,通常是由于对端邻居重启造成的。

ExStart:这是形成邻接关系的第一个步骤,邻居状态变成此状态以后,路由器开始向邻居发送DD报文。主从关系是在此状态下形成的;初始DD序列号是在此状态下决定的。在此状态下发送的DD报文不包含链路状态描述。

Exchange:此状态下路由器相互发送包含链路状态信息摘要的DD报文,描述本地LSDB的内容。 Loading:相互发送LS Request报文请求LSA,发送LS Update通告LSA。 Full:两路由器的LSDB已经同步。

DR选举:

1,首先参选的各方都要进入2-way阶段,具有选举资格的路由器列入列表(若无具有选举资格的则停留在2-way状态);

2,Hello报文做选票(在Hello报文中标出自己所认为的DR),所有路由器刚开始都认为自己是DR,也都认为自己是BDR;

3,优先级最大当选,优先级相同,则router id(loopback地址)最大当选。先选举BDR,再选DR(华为设备刚好相反)

4,选举成功后,新加入路由器,不重新选举。(最先初始化的两台路由器成为DR和BDR)

DD字段解释:

Interface MTU:在不分片的情况下,此接口最大可发出的IP报文长度。

I(Initial):当发送连续多个DD报文时,如果这是第一个DD报文,则置为1,否则置为0。

M(More):当发送连续多个DD报文时,如果这是最后一个DD报文,则置为0。否则置为1,表示后面还有其他的DD报文。

MS(Master/Slave):当两台OSPF路由器交换DD报文时,首先需要确定双方的主从关系,Router ID大的一方会成为Master。当值为1时表示发送方为Master。

DD Sequence Number:DD报文序列号,由Master方规定起始序列号,每发送一个DD报文序列号加1,Slave方使用Master的序列号作为确认。主从双方利用序列号来保证DD报文传输的可靠性和完整性。 注:在Master/Slaver选举中,RID大者优先。

OSPF报文头:

OSPF直接运行于IP协议之上,使用IP协议号89。 所有的OSPF报文使用相同的OSPF报文头部。 Version #:

OSPF协议号,应当被设置成2。 Type:

OSPF报文类型,OSPF共有五种报文。TYPE类型:5种类型Hello,DD,LSR,LSU和LSAck。 Packet length:

OSPF报文总长度,包括报文头部。单位是字节。 Router ID:

生成此报文的路由器的Router ID。 Area ID:

此报文所属的区域。 AuType:

验证此报文所应当使用的验证方法。AuType:0无需认证,1明文认证,2密文认证,4保留 Authentication:

验证此报文时所需要的密码等信息。

LSA报文头:

每个LSA头部都20个字节。

每个LSA由LS Type,Link State ID以及Advertising Router三个值来唯一区分; 通过LS老化,LS序列号以及LS校验和来识别哪个LSA是最新的。 多种OSPF报文可以携带LSA。 LS age:

此字段表示LSA已经生存的时间,单位是秒。 LS type:

此字段标识了LSA的格式和功能。 Link State ID:

此字段是该LSA所描述的那部分链路的标识。例如Router ID等。 Advertising Router:

此字段是产生此LSA的路由器的Router ID。 LS sequence number:

此字段用于检测旧的和重复的LSA。

LS type,Link State ID和Advertising Router的组合共同标识一条LSA。

七种LSA报文解读(重点):

Router-LSA 由每个路由器生成,描述了路由器的链路状态和花费,传递到整个区域(type1)

--区域内各个路由器生成关于自己各个接口所连网段的链路状态信息,并发送给本区域的DR和BDR,由DR

对这些信息进行汇总。

1、描述区域内部与路由器直连的链路的信息(包括链路类型,Cost等) 2、所有链路信息放在一个LSA里进行描述 3、Type1 LSA只在区域内部扩散

4、LSA中会标识路由器是否是ABR(Bbit置位),ASBR(E比特置位)或者是Vlink(V比特置位)的端点 5、LSA中会标识路由器所支持的Option功能标记(如E)

Network-LSA 由DR生成,描述了本网段的链路状态,传递到整个区域(type2)

--DR汇总各个路由器所发的LSA,汇总后发给区域内的各个路由器。列出区域内每个网段的信息及该网段

上所连路由器的地址。

1、描述TransNet(包括Broadcast和NBMA网络)网络信息

2、由DR生成,描述其在该网络上连接的所有路由器以及网段掩码信息 3、Type 2 LSA只在区域内部扩散

4、Type 2 LSA的意义在于:发现拓扑以及进行SPF计算时,整个Multi-Access网络会浓缩成一个节点(伪节点) 5、OSPF路由器根据type1和type2计算出区域内的路由,满足负载均衡条件就可以生成等价路由。

Net-Summary-LSA 由ABR生成,描述了ABR到某区域外AS内的某一网段的路由的费用,传递到自己区域内,

供其它路由器计算最佳路由(type3)

--通告某一区域的某个网段以及ABR到该网段的花费(包括通告该路由的路由器),可对路由信息进行汇

总。

1、由ABR生成,将所连接区域内部的链路信息以子网的形式扩散到邻区域,会扩散到邻区域所有路由器;路由器根据type3计算区域间路由,下一跳指向发布type3的路由器的routerid,最终根据区域内路由迭代出直连路由,如果区域内路由到该routerid是负载均衡的,那么就能生成等价路由;

2、Type3 LSA实际上就是将区域内部的Type1(lsid为主机地址)/Type2(lsid为网段地址)的信息收集起来以路由子网的形式扩散出去,这就是Summay LSA中Summay的含义(注意这里的summary与路由聚合没有关系)每个接口网段生成一个Type3 LSA ???

3、ABR收到来自同区域其它ABR传来的Type3 LSA(不一定是另外一个区域的,只要是自己没有生成的)后重新生成新的Type3 LSA(Advertising Router改为自己)后继续在整个OSPF系统内扩散,Type3 LSA的扩散本质上属于DV行为;

4、ABR收到的Type3 LSA与自己生成的相同,此LSA不做计算(避免环路)

注:针对Type3LSA,生成路由的规则:自己是ABR,会首先针对这个区域生成相应的Type3,此时收到其它ABR发过来Type3 LSA:a)如果是相同的Type3(即自己已经生成了),则只保留、不生成路由,也不生成新

的Type3,因为区域内路由优先于区域间路由;b)如果没有生成过,则重新生成一个新的Type3,继续传递,同时生成路由,指向原ABR。

自己非该区域的ABR,收到多个ABR生成的Type3,则分别生成区域间路由参与竞争,如果cost相同,就可以进行负载均衡了。

注意路由器与ABR出现多条直连链路的情况,多个OSPF邻居都可以建立,每个邻居关系也会收到type3,但由于生成的type3都一样,所以实际上只看到一个,不过计算出来的区域间路由,则可能是多条路由迭代的??????

5、如果Type3 LSA来自不同的AREA,那么即使cost相同,也不会形成负载均衡,我司设备的实现是:最新到来的Type3 LSA最终生效,包括最后配置的,及最近undo shutdown的。解决方法:创建vlink,使骨干区域的路由可以以Type1 LSA方式引入路由器,从而达到负载均衡的目的。type5路由被认为都是来自area0的,所以不受该规则影响。

6、如果是ABR,那么其对于type3/4路由,就只学习从骨干区域过来的type3/4路由(张延新),从非骨干区域邻居传递过来的type3/4路由,只要其认为自己还是ABR,就不会学习。如果area 0内存在处于FULL的邻居,则该area0不能通过非骨干区域的type3 LSA学习路由。否则可以。(顾德访)

注:ABR的判断原则:配置了包括骨干区域的多个区域,且骨干区域内至少有一个端口的OSPF邻居状态处于FULL状态。其通过在其type1报文中置位相应位,告知同区域邻居其地位。

Asbr-Summary-LSA 由ABR生成,描述了到ASBR的路由,传递到相关区域(type4)---路由信息 --若某个区域存在一个ASBR,则发布一条type4报文指出该ASBR的router id以及ABR到该ASBR的花费。 1、由ABR生成,格式与Type3相同,描述的目标网络是一个ASBR的RouterID 2、Type4 LSA的触发条件为:ABR收到一个Type5 LSA

3、Type4 LSA的意义在于让区域内部路由器知道如何到达ASBR(Type5 LSA是在整个OSPF系统内扩散的,

Advertising Router始终为ASBR)

4、每个ABR在收到type5时都会在各个区域生成一个type4。 5、自己就是asbr的话,不会生成指向自己的type4;

AS-External-LSA 由ASBR生成,描述了到AS外部的路由,传递到整个AS(STUB区域除外)(type5) --引入的外部路由网段及ASBR到该网段的花费,另外还有公布的FA,即下一跳地址(若为0.0.0.0则表示为

本ASBR)

1、由ASBR生成,描述OSPF系统外部的路由信息,一般为引入的其他协议的路由;

2、Type5 LSA一旦生成,将在整个OSPF系统内扩散(Stub Total-Stub NSSA Totally-NSSA除外),不同ASBR

生成的相同的外部路由Type5将会在domain内共存(我司的做法);

3、Type5 LSA携带Tag信息(我司默认为1)该参数不用于路由计算,其意义在于对于外部路由可以据此参数

进行路由策略的制定(类似于BGP中的Community)

4、Type5 LSA以两种方式在OSPF Domain内扩散(默认为E2):类型1(E置位为0)需要把外部花费与内部花费

叠加;类型2只要关注外部花费即可。

5、Type5 LSA中的Forwading Address地址分非0和全0两种情况。

6、路由器收到Type5 LSA后,如果本地没有生成相同的Type5,则会照单全收,根据每个Type5结合Type4计算外部路由;如果路由表中有一条优先级值大于150的相同前缀的非OSPF路由,则会计算收到的Type5LSA,同时把优先级为150的O-ASE路由放入总路由表,然后撤销本地生成的Type5LSA(因为OSPF引入路由是看该路由是否加入到了总路由表,而该非OSPF的路由由于竞争不过O-ASE路由而被撤销);如果路由表中有一条优先级值小于150的相同前缀的非OSPF路由,则计算收到的Type5LSA,存放于OSPF路由表,但不会放入全局路由表(因为O-ASE的优先级低于这个非OSPF路由,同时如果OSPF还是会引入该路由而产生Type5) 7、OSPF引入其它协议路由的条件是:该路由已经通过竞争加入到全局路由表了。

注:路由器根据Type5指示的外部路由,然后基于每个type4,会分别生成一条OSPF路由(我司的方案是如果多个ASBR生成相同的Type5,则每个ASBR都是Originator),计算出来的路由,只要满足负载均衡条件,且小于配置的最大配置负载均衡数,生成路由参与整路由表的计算,不过如果asbr指示的路由就不均衡的话,那么就会选出最优的asbr,来计算ase路由。下一跳根据Forwading Address进行计算。如果为全0,则根据type4指示的ASBR进行迭代计算;

如果非全0:1)在收到Type5的OSPF域内路由器上,如果FA为非0,根据FA地址查找路由表,若有匹配的OSPF内部路由(区域内或者区域间),则以此FA地址作为出口计算外部路由;否则将认为此Type5 LSA无效;2)我司设备查找OSPF路由表(Display ospf routing-table) 思科查找全局路由表

3)在OSPF路由表中只要能查找到对应的OSPF内部路由即可(无须最长匹配)思科在进行路由查找时遵循最长匹配的原则。已证实。

8、如果路由器上在不同area计算的外部路由cost相同,那么也无法形成负载均衡,而是根据协议会选择area id大的路由。不对,已证实,老苗的文档

NSSA External LSA 由ASBR生成,作为nssa区域内的路由器引入外部路由时使用(type7)

--在NSSA的ABR将NSSA内部产生的Type 7类型的LSA(P位置1)转化为Type 5类型的LSA再发布出去,并同时更改LSA的发布者为ABR自己

标记:N:NSSA P:Propagation(通知ABR路由器转换此LSA并继续扩散),NSSA ABR(R2)收到Type7 LSA后自动转换成Type5 LSA。对于做转换作用的abr,一个区域只能有一个,通过竞争选择出来。 在7类lsa进行聚合时,无论聚合前lsa的FA地址是否相同,聚合后lsa的FA地址规则如下:

1、如果在nssa区域内使能了loopback接口,则优先选择loopback接口地址为FA地址,如果使能了多个loopback接口则优选接口地址大的为FA地址。如果此时去使能loopback接口,则选择在nssa区域内接口地址最大的网段地址为FA地址

2、如果没有使能loopback接口,则按照display cu的顺序选择首先在nssa区域使能ospf的接口地址作为FA地址 3、如果聚合后的lsa的FA地址已经选择了最大的接口地址,此时将最大的接口地址undo,则会选择次大的接口地址,以此类推,但是如果重新network一个更大的接口IP地址,那么不会重选,如果重新network一个更大的loopabck地址,会重选。

NSSA的FA地址肯定为非0.0.0.0(一般为ASBR的loopback接口),ABR将type7转换为type5时,不会改变FA,所以area0内只要到这个FA的路由均衡,就能实现负载均衡。已实验证实

注意:Type7 LSA携带FA的原则(在生成该ASE的ASBR上)需要转换的Type7 LSA(P-bit置1)必须携带非零FA,转换为type5 LSA时FA不变,满足前面type5 LSA对应条件时,type7 LSA携带FA为该路由的直接下一跳地址;否则,RFC1587规定任选一个使能OSPF的接口地址作为FA。RFC3101做了进一步的限定,建议选择顺序如下: 优选使能OSPF的Loopback接口地址

选择使能OSPF的stub接口(无邻居的接口)地址 选择使能OSPF的其它接口地址 等值路由形成的基本条件: 1、路由类型一致、cost相同

2、所属区域一样(外部路由无此限制) 3、直接下一跳不同

4、E2外部路由还需要到ASBR/FA的路径等值(Cisco的实现无此限制)

FA的填充规则:

1) Ase Lsa:

当ASBR引入外部路由,并且ospf在被引入路由的下一跳的接口上enable,并且ASBR的下一跳接口的网络类型被定义为broadcast或nbma,FA被填写成非0;其他P-to-P或者P-to-MP或者passive接口都填0。 2)NSSA

if(loopback被使能到相同的NSSA区且接口UP) {loopback被填充为FA}

else{当ASBR引入外部路由,并且ospf在被引入路由的下一跳的接口上enable,并且ASBR的下一跳接口的网络

类型被定义为broadcast或nbma,,FA被填写成非0;其他第一个被使能到NSSA区域的接口}

注:NSSA的FA地址优选本区域内network的loopback地址,如果没有,则在network的实际接口地址中选择地址较小的一个作为FA来填充。但是就是不会为全0

OSPF的type5路由的的FA地址为非0的条件:

1、该ASE的下一跳逻辑路由为OSPF内部路由或本地启用OSPF的直连网段路由; 2、下一跳对应的路由的出接口为广播链路或NBMA,且该接口为非silent接口;

3、下一跳对应路由的直接下一跳地址落在OSPF协议中network发布的网络地址范围内(新版本不再检查该规则)

满足上述三个条件,则生成的FA地址为该路由的直接下一跳地址,除非FA对应的接口down或去使能OSPF,否则LSA不会因为其他接口使能OSPF而更新。

OSPF各种区域解读(重点):

? Transit区域:主要负责IP包的传输,互联OSPF其它区域,可以接收Summary LSA和External LSA,会转发来自骨干区域的所有LSA。

注:当一个网段上没有发现其他ospf路由器(譬如没有其他hello报文)时,被识别为一个stubnet网络。一旦邻居起来了,开始发hello时,网络就变为transit网络了。

? STUB区域:允许学习type3 LSA;但拒绝type5 LSA(接收一条Default LSA作为Type3 LSA用以弥补) stub 所有与骨干区域相连的abr会向stub区域发布一条type3的缺省路由,然后按照type3的选路规则进行路由计算,多个abr的话,就有可能产生多条缺省路由,如果满足负载均衡条件的话。不过当其中一个abr收到其它abr的type3缺省路由,是不会去使用的,也不会生成缺省路由。(因为相同的type3,自己不使用)

? Total Stub区域:拒绝具体的type3,拒绝所有的type5(接收一条Default LSA作为Type3用来弥补) stub no-summary

规则同stub区域,只是total stub区域的路由器也不会接受type3路由。

? NSSA区域:允许学习type3(可以配置只接收一条缺省type3),拒绝所有引入的type5,可以由域内的ASBR引入type7路由(并置P为1),到达ABR后,由于转换成type5发布出去。(若是ABR产生的type7,则P置0,则不会被其它ABR转换成type5) nssa [ default-route-advertise ]

1、NSSA区域一旦生成,ASBR 将以Type7 LSA的方式向OSPF注入外部路由信息,该信息只能在NSSA区域内部扩散

2、当Type7 LSA抵达NSSA的ABR时,ABR会扮演Translator功能将Type7 LSA自动转换成Type5 LSA继续在OSPF Domain中扩散,同时将adv修改为自己。

3、如果NSSA中存在两个以上ABR,将进行Translator的竞选,RID高者胜出,然后nssa区域的type7都会由该专职ABR转换为type5,由于一个type7只需要转换为一个type5,所以一个区域只需要一个translater即可。然后路由器结合type4,利用这些type5计算路由,所以是有可能计算出等价路由的。

4、当NSSA的ABR同时作为ASBR时,默认情况下会同时生成Type7 LSA(扩散到NSSA中,不会携带P-Propagation标识)和Type5 LSA扩散到NSSA外;若不希望Type7 LSA扩散到NSSA中(NSSA中有专职的ASBR),在ABR/ASBR上配置参数no-import-route,此时只会产生type5 LSA。

? Total Nssa区域:只接收type7类路由 nssa [ default-route-advertise ] [ no-import-route ] no-summary

1、NSSA ABR会自动生成默认路由并以Type3 LSA的方式注入到Totally-NSSA中; 2、拒绝type3、type5类路由。

路由优选原则:

区域内和区域间路由描述的是自治系统内部的网络结构;外部路由则描述了应该如何选择到自治系统以外目的地的路由。

第一类外部路由是指接收的是IGP路由(例如RIP,STATIC),由于这类路由的可信程度高一些,所以计算出的外部路由的花费与自治系统内部的路由花费的数量级是相同的并且和OSPF自身路由的花费具有可比性,即到第一类外部路由的花费值=本路由器到相应的ASBR的花费值+ASBR到该路由目的地址的花费值。

第二类外部路由是指接收的是EGP路由,由于这类路由的可信度比较低,所以OSPF协议认为从ASBR到自治系统之外的花费远远大于在自治系统之内到达ASBR的花费。所以计算路由花费时将主要考虑前者,即到第二类外部路由的花费值=ASBR到该路由目的地址的花费值。如果该值相等,再考虑本路由器到相应的ASBR的花费值。 路由优选顺序(从高到低): 1 区域内路由:优选cost小的 2 区域间路由:优选cost小的 3 第一类外部路由(E1 N1):

优选cost小的;

cost相同时,按照RFC1587优选type5 LSA、次选P-bit置1的type7 LSA(目前VRP的实现)

cost相同时,按照RFC3101优选P-bit置1的type7 LSA、次选type5 LSA、最次选Router-ID大的P-bit置0的

type7 LSA

4 第二类外部路由(E2 N2) 优选cost小的;

cost相同时,优选到ASBR/FA路径短的

cost相同,到ASBR/FA路径也相同时,按照RFC1587优选type5 LSA、次选P-bit置1的type7 LSA(目前VRP的实现)

cost相同,到ASBR/FA路径也相同时,按照RFC3101优选P-bit置1的type7 LSA、次选type5 LSA、最次选Router-ID大的P-bit置0的type7 LSA

OSPF外部路由优选(描述同一条路由的1或多条相同类型的type5/type7间LSA):RFC1583compatible使能(兼容OSPFV1规则)

1、计算、确定到每条LSA对应的ASBR/FA的内部最优路径:先针对每条LSA确定OSPF内部路径 FA非0,选择匹配FA地址的最优OSPF内部路由(IA或ia) FA为0,需要计算到ASBR的内部最优路径 优选到ASBR/FA cost最小的路径

到一条LSA对应的ASBR/FA存在多条等值路径时

优选Area ID大的路径 //这条专指到同一个LSA指示的ASBR的通过不同区域的路由,来自不同区域的不同LSA不检查该条规则

同区域时可以形成到ASBR/FA的等值路径

2、计算每条LSA对应的完整路径的整体cost,优选整体cost最小的路径:结合第一条计算出来的OSPF内部路由,再计算整体cost进行比较

Type1且FA为0:LSA中metric+到ASBR的内部最优路径开销

Type1且FA非0:LSA中metric+匹配FA地址的最优OSPF内部路由的cost Type2:LSA中metric;相同时优选到ASBR/FA最短的路径 3、优选整体cost最小的完整路径

多条LSA对应的路径整体cost相同(type2时到各条LSA对应的ASBR/FA的路径cost也相同)时 按照RFC1587优选type5 LSA、次选P-bit置1的type7 LSA(目前VRP的实现)

按照RFC3101优选P-bit置1的type7 LSA、次选type5 LSA、最次选Router-ID大的P-bit置0的type7 LSA 存在多条等值最短路径时形成等值路由(一条LSA可能形成多条等值路径)

RFC1583compatible去使能(RFC2328 OSPFV2规则,不兼容RFC1583 OSPFV1规则)在该标准中增加到ASBR的路径的优先级属性,并在各种规则前面进行比较

1、计算、确定到每条LSA对应的ASBR/FA的内部最优路径 FA非0,选择匹配FA地址的最优OSPF内部路由(IA或ia) FA为0,需要计算到ASBR的内部最优路径

最优选非骨干区的区域内部路径(Cisco实现与RFC2328不一致,刚好相反)

骨干区区域内部路径与区域间路径优先级相同 解释:对到ASBR的路径赋予优先级属性,非骨干区域内路径优先级最高,其次是骨干区域内路径和区域间路径的优先级相同并次之 存在优先级相同的多条路径时,继续比较路径的cost,优选cost小的 存在同优先级的多条等值路径时 优选Area ID大的路径

同区域时可以形成到ASBR/FA的等值路径

2、基于每条LSA的内部最优路径的优先级对LSA进行筛选,仅路径优先级高的LSA进入第3步计算。比1583使能多了一步,即在比较整体cost前,先比较路径优先级,入选才继续比较 最优选非骨干区的区域内部路径

骨干区区域内部路径与区域间路径优先级相同

3、计算每条LSA对应的完整路径的整体cost,优选整体cost最小的路径 Type1且FA为0:LSA中metric+到ASBR的内部最优路径开销

Type1且FA非0:LSA中metric+匹配FA地址的最优OSPF内部路由的cost Type2:LSA中metric;相同时优选到ASBR/FA最短的路径 4、优选整体cost最小的完整路径

多条LSA对应的路径整体cost相同(type2时到各条LSA对应的ASBR/FA的路径cost也相同)时 按照RFC1587优选type5 LSA、次选P-bit置1的type7 LSA(目前VRP的实现)

按照RFC3101优选P-bit置1的type7 LSA、次选type5 LSA、最次选Router-ID大的P-bit置0的type7 LSA 存在多条等值最短路径时形成等值路由(一条LSA可能形成多条等值路径)

OSPF快收敛:

1、邻居的hello和dead间隔时间,命令为 ospf timer hello interval 2、设置SPF计算间隔,spf-schedule-interval { interval1 | millisecond interval2 },(缺省5秒),缩短两次SPF算法运行的间隔时间来加快收敛。

3、配置LSA的更新时间间隔,命令lsa-originate-interval 0,指定LSA的更新时间间隔为0来取消LSA的更新

时间间隔,使得拓扑或者路由的变化可以立即通过LSA发布到网络中

4、配置LSA被接收的时间间隔,命令为lsa-arrival-interval 0,指定LSA被接收的时间间隔为0,使得拓扑或者路由的变化能够立即被感知到。

5、减少接口传送LSA的延迟时间,命令为ospf trans-delay interval OSPF目前不支持I-SPF,PRC以及智能定时器等快收敛手段,只能通过调整部分参数来达到快速收敛的目的。具体可以调整的参数如下:

1、调整OSPF协议SPF计算的间隔,命令为:spf-schedule-interval { interval1 | millisecond interval2 },设置SPF计算间隔。

默认的SPF计算间隔为5s,用户可以配置的范围包括两个档次,可以配置秒级间隔,即1s~10s,也可以配置毫秒级间隔,范围为1ms~10000ms,配置时应根据网络规模以及稳定情况进行调整。IGP快收敛设计到多个方面的优化,不宜仅将计算间隔调的过小,避免产生不必要的震荡。

2、调整OSPF协议LSA产生的间隔,命令为:lsa-originate-interval 0,配置LSA的更新时间间隔。 缺省情况下,LSA的更新时间间隔为5秒。OSPF协议规定LSA的更新时间间隔5秒,是为了防止网络连接或者路由频繁动荡引起的过多占用网络带宽和路由器资源。在网络相对稳定、对路由收敛时间要求较高的组网环境中,可以指定LSA的更新时间间隔为0来取消LSA的更新时间间隔,使得拓扑或者路由的变化可以立即通过LSA发布到网络中,从而加快网络中路由的收敛速度

3、调整LSA被接受的时间间隔:命令为:lsa-arrival-interval 0,配置LSA被接收的时间间隔。 缺省情况下,LSA被接收的时间间隔为1秒。在网络相对稳定、对路由收敛时间要求较高的组网环境中,可以指定LSA被接收的时间间隔为0,使得拓扑或者路由的变化能够立即被感知到。

调整OSPF协议广播链路或NBMA链路上的接口类型:OSPF协议在广播或者NBMA链路上会首先选举DR,和BDR设备,然后其它的DR other路由器和DR,BDR之间建立邻接关系,DR和BDR之间也建立邻接关系。

4、为了提高链路上邻居建立的速度,我们可以将背靠背连接两台路由器的广播或者NBMA链路调整OSPF的链路类型为P2P。具体命令为:ospf network-type p2p。

OSPF附录E问题:

为什么在OSPF中引入的两条路由不能同时发布:

这个是VRP3.0的历史遗留问题,不支持附录E。实际上一般情况下静态路由都可以正确发布的,但对于类似于RFC 2328 Appendix E情况,由于OSPF type 5 LSA的ID是以这些网段的地址来标识的,每一类型的LSA是以Adv RID即产生该LSA的路由器ID、LS Type以及LS ID即所承载的网段的网络地址这三个信息的组合作为其关键值

进行区分的。所以同一台路由器产生的或者引入外部路由而生成的这些LSA,对于那些网段地址一样、而掩码信息不一样的路由,路由器认为是同一条LSA,后发布的路由将会直接扔掉。例如对于静态路由172.16.0.0/16和172.16.0.0/24的引入将只会生成一个LSA,其中必有一条路由因不能引入而被丢弃。先发布的LSA一直生效。如果掩码短的生效就不会有问题,因为包含掩码长的路由了。

对于此种情况,在开局过程中应尽量规避。对于无法避免的情况提供以下解决规避措施:

(1)先发布短掩码的路由,这样长掩码的路由虽然丢失,但是其他路由器转发数据包时会最长匹配到短掩码的路由,报文送到此路由器后,再根据最长匹配查找长掩码的路由进行转发。 (2)发布更短掩码的路由时,先删除长掩码路由,然后再按照短长掩码顺序network (3)network通告完短掩码路由后,reset ospf process

例:OSPF协议是一种基于链路状态的路由协议,其路由计算是基于链路状态LSA的。当路由器引入静态路由时,通过生成相应的第5类LSA进行洪泛,以此向其他路由器传递拓扑信息。第5类LSA是以对应网段的IP地址来标识的,并协同产生该LSA的路由器ID、LSA的序列号三个信息的组合作为其关键值进行唯一性标识,不关心路由的掩码信息。

在本次案例中,在S8016原来配置一条静态路由222.240.223.0/25,生成了一条第5类LSA往NE80E洪泛;当再配置第二条静态路由222.240.223.0/24时,由于网段IP地址相同,不再生成重复的LSA。这时删除原来的222.240.223.0/25的静态路由,由于刷新机制的问题,OSPF模块不重新为后来的静态路由生成ASE_LSA,而导致路由无法传播。 附录E提供的解决方法

最短掩码的路由产生的LSA的LS ID=网络地址 其它路由产生的LSA的LS ID=网络广播地址 兼容效果:

具备附录E功能的路由器可以发布附录E的LSA,也能处理附录E的LSA;不具备附录E功能的路由器不能发布附录E的LSA,但是能处理附录E的LSA。 满足附录E的效果:

ip route-static 7.7.0.0 255.255.0.0 NULL0 ip route-static 7.7.0.0 255.255.255.0 20.20.20.2

哪个先发布无所谓,掩码长的ase的ls id对应掩码0的部分会以1填充。 disp ospf lsdb ase Type : External Ls id : 7.7.0.255

Adv rtr : 5.5.5.5 Ls age : 9 Len : 36 Options : E seq# : 80000001 chksum : 0xb8f5

Net mask : 255.255.255.0 TOS 0 Metric: 1 E type : 2

Forwarding Address : 0.0.0.0 Tag : 1 Type : External Ls id : 7.7.0.0 Adv rtr : 5.5.5.5 Ls age : 9 Len : 36 Options : E seq# : 80000002 chksum : 0xb6f6

Net mask : 255.255.0.0 TOS 0 Metric: 1 E type : 2 Forwarding Address : 0.0.0.0 Tag : 1

缺省路由的下发方法(重点):

一、Ospf通过两种命令引入缺省路由: default-route-advertise 和default-route-advertise always,配置命令后ospf会产生一条5类lsa向其他路由器泛洪这条缺省路由,由于这条命令不是在特定area视图中配置的,所以产生的type5会引入到所有area(stub、nssa除外)。

缺省情况下,普通OSPF区域内的OSPF路由器是不会产生缺省路由的。当网络中缺省路由是通过其他路由协议

时ABR不会将nssa-external转换成external,这样其他路由器根本都不会再有external的lsa),那么会导致Area0的路由器无法到达AS1的网络,因为Area 2中ASBR的地址被写进了Type 7 LSA的FA中,没有到达这个FA地址的路由,Area0中的路由器无法使用这些Type5(7转5)的LSA计算路由。

注:主要原因是在ABR上将FA地址的LSA聚合了,导致Area0中没有这个FA地址路由无法迭代。 配置命令:Router(config-router)# area 10 nssa translate type7 suppress-fa

我司目前VRP5.5仍不支持此特性, VRP5.6版本开始支持该特性;Cisco在12.2(15)T版本之后提供此特性。 注:在我司VRP5.6之前有一种解决方案,如果在ABR上配置了abr-summary not-advertise对ASBR的路由做了过滤,那么可以在ABR上配置asbr-summary对ase路由进行一次聚合,这样FA地址会改为0,就不会再去查FA地址,保证网络可通。(asbr-sunmary x.x.x.x聚合的网段可以和原来的网段一致,这样也能够发布ase路由,并将FA置0)

4、filter import(area视图) [acl/ip-prefix/route-policy]

该命令用来在ABR上作summary lsa过滤, 如果是骨干区域(非骨干区域),就防止从其他非骨干区域(骨干区域)转换到该区域符合特定条件的summary lsa生成,过滤彻底。

对应IOS命令为Router(config-router)# area area-id filter-list prefix prefix-list-name in filter export(area视图)[acl/ip-prefix/route-policy]

命令用来在ABR上作summary lsa过滤,如果是骨干区域(非骨干区域),就阻止从该区域转换到其他非骨干区域(骨干区域)符合特定条件的summary lsa生成,过滤彻底。

对应IOS命令为Router(config-router)# area area-id filter-list prefix prefix-list-name out

配置summary lsa过滤前,在R3上查看summary lsa的条目: dis ospf lsdb

OSPF Process 1 with Router ID 3.3.3.3 Area: 0.0.0.0

Type LinkState ID AdvRouter Age Len Sequence Metric Sum-Net 100.0.12.0 2.2.2.2 298 28 80000001 1562

Sum-Net 1.1.1.1 2.2.2.2 282 28 80000001 1563 在R2路由器上过滤100.0.12.0/30的summary lsa不传递到area 0,配置命令如下: ospf 1 area 0.0.0.0

network 2.2.2.2 0.0.0.0 network 100.0.23.0 0.0.0.3 area 0.0.0.100

filter ip-prefix huawei export //在area 0中配置filter ip-prefix huawei import作用相同 //阻止abr生成type3的lsdb

network 100.0.12.0 0.0.0.3

ip ip-prefix huawei index 10 deny 100.0.12.0 30

ip ip-prefix huawei index 20 permit 0.0.0.0 0 less-equal 32 配置后查看R3的summary lsa条目,发现已经没有了100.0.12.0的条目: dis ospf lsdb

Area: 0.0.0.0

Type LinkState ID AdvRouter Age Len Sequence Metric Sum-Net 1.1.1.1 2.2.2.2 149 28 80000001 1563 5、abr-summary not-advertise(area)

用来在ABR上summary lsa做过滤,如果是骨干区域(非骨干区域),就防止从该区域转换到其他非骨干区域(骨干区域)符合特定条件的summary lsa生成,类似filter-policy export(area)命令的作用,但又有点区别,该命令只对本区域的区域内路由作过滤不对区域间路由做过滤。(原因是:这条命令是聚合命令,目前我们VRP和IOS的聚合命令的实现是只对本区域的路由做聚合而不对区域间路由做聚合,所以说abr-summary not-advertise这条命令实际只是对本区域的区域内路由起过滤作用。)

对应IOS命令为:Router(config-router)#area 10 range 1.1.1.0 255.255.255.0 no-advertise

在R2上配置abr-summary过滤1.1.1.1/32的summary lsa。

[R2-ospf-1-area-0.0.0.100]abr-summary 1.1.1.1 255.255.255.255 not-advertise //阻止abr生成type3的lsdb(只限本区域的type3,如果是转发其它区域的type3就不行了) 配置后在R3上查看lsa,发现已经没有了1.1.1.1的lsa信息。 dis ospf lsdb

Area: 0.0.0.0

Type LinkState ID AdvRouter Age Len Sequence Metric Sum-Net 100.0.12.0 2.2.2.2 39 28 80000001 1562 6、ospf filter-lsa-out

该命令用来在广播、NBMA、P2P以及P2MP网络中,配置对特定OSPF接口出方向的LSA进行过滤。有以下参数: all:对所有的LSA(除了Grace LSA)都进行过滤。 summary:对Network Summary LSA(Type3)进行过滤。 acl acl-number:指定基本访问控制列表编号。整数形式。 ase:对AS External LSA(Type5)进行过滤。 nssa:对NSSA LSA(Type7)进行过滤。

通过对特定OSPF接口出方向的LSA进行过滤可以不向邻居发送无用的LSA,从而减少邻居LSDB的大小,提高网络收敛速度。

当两台路由器之间存在多条链路时,通过配置本地路由器可以在某些链路上过滤LSA的传送,减少不必要的重传,节省带宽资源。

在P2MP网络中配置对指定邻居发送的LSA进行过滤时,需要使用filter-lsa-out peer命令。

路由聚合(重点):

在ABR上,通过命令abr-summary x.x.x.x对区域间路由(Type3 LSA)进行聚合,可通过命令advertise配置该聚合路由是否发布。

1、不能跨区域聚合(不能企图聚合来自其它ABR的Type3 LSA,在OSPF中,每个路由器均没有资格去处理其它路由始发的LSA)

2、聚合路由可以跨区域传输(每经过一个区域AdvRouter会发生改变)

注意:进行type3类路由聚合时,区域内必须至少有一条在聚合的路由范围内的明细路由在OSPF中使能了,聚合路由才能生效。聚合后,明细路由就不再发布了。

相同网络前缀,不同掩码的聚合路由,掩码更长的生效,短掩码的消失???

向本区域也发布一条聚合路由,并且adv都是原router,不管是哪个abr进行的聚合???可能是转换另一个abr聚合的type3得来的。

在ASBR上,通过命令asbr-summary x.x.x.x对外部路由(Type5 LSA Type7 LSA)进行聚合,原则同上。 注:NSSA的ABR(Translator)收到的Type7 LSA转换成Type5 LSA后,能够对生成的Type5 LSA进行聚合再扩散出去,所以在NSSA区域中路由存在二次聚合的机会配置了路由聚合后,可以通过手工配置与聚合路由相同前缀/掩码的黑洞路由来避免路由环路。注意ase路由聚合后,FA就统一变成了全0了,下一跳就直接指向做聚合的这台ABR了。 OSPF路由聚合:

1、OSPF内部路由和外部路由的聚合是独立进行的 2、OSPF内部路由聚合(只能在ABR上进行): abr-summary 20.0.0.0 255.255.255.0

仅能聚合ABR发给其它区域的本区域内部路由(即谁产生的路由,谁负责聚合,其他ABR发布的type3本地仅

能修改adv后转发),聚合路由LSA的metric=最差明细路由cost 加上no-advertise参数可以实现type3 LSA过滤

注意聚合后,该聚合路由所涵盖的type3的明细路由就不再发布了,目前没有机制可以使明细路由发布。 多ABR区域注意聚合的一致性(否则可能导致流量一边倒) 3、外部路由聚合(只能在ASBR上进行): asbr-summary 10.0.0.0 255.255.0.0

仅能聚合本地引入的外部路由(本ASBR产生的type5才能在发布时进行操作,也就是聚合) 加上no-advertise参数可以实现type5/type7 LSA过滤

NSSA区域Translator ABR可以(且只能由translator执行)聚合整个区域NSSA路由。但注意聚合后FA丢失,可能造成回程流量一边倒。 聚合路由属性:

聚合路由的类型(E1/E2)及cost值与最差明细路由相同(ciso选最优的) 聚合路由类型为E1时,LSA metric=最差明细路由LSA metric 聚合路由类型为E2时,LSA metric=(最差明细路由LSA metric)+1

路由收敛优先级:

收敛优先级的顺序由高到低为critical > high > medium > low。

prefix-priority配置OSPF路由的收敛优先级。该命令根据指定的IP前缀列表名来配置OSPF路由的收敛优先级,仅在公网上配置有效。

缺省情况下,公网OSPF主机路由的收敛优先级为medium,直连路由的收敛优先级为high,静态路由的收敛优先级为medium,其他协议(如BGP、RIP等)路由的收敛优先级为low。私网中OSPF 32位主机路由统一标识为medium。表现就是优先处理(包括计算和泛洪LSA、同步LSDB等动作)优先级级别较高的LSA,从而加速这部分路由的收敛速度。

prefix-priority命令用来配置IS-IS路由的收敛优先级,该命令仅在公网生效。

缺省情况下,IS-IS 32位主机路由的收敛优先级为medium,其他IS-IS路由的收敛优先级为low。 Level-2 IS-IS路由的收敛优先级高于Level-1 IS-IS路由的收敛优先级。

如果一条路由符合多个收敛优先级的匹配规则,则这些收敛优先级中最高者当选为路由的收敛优先级

本文来源:https://www.bwwdw.com/article/ozeg.html

Top