首页 > 技术文章 > OSPF协议总结

xuan0212 2022-01-19 10:37 原文

OSPF:开发式最短路径优先协议

   OSPF是一个动态路由选择协议:O是OPEN、开放的路由选择协议,支持华为、思科、H3C;SPF是他的算法最短路径(树)优先

   算法,根据接口带宽计算。

   OSPF是IGP内部网关协议的一种,基于LS链路状态算法,与其相近的协议有ISIS。

   OSPF企业广泛使用,ISIS运营商使用较多。

   1.适用范围:IGP

            无类别链路状态型IGP协议: 由于其基于拓扑进行更新收敛,故更新量会随着拓扑的变大而成指数上升

            故OSPF协议为了能在大、中型网络中运行,需要结构化的部署----合理的区域划分、良好的地址规划   

            正常等开销负载均衡

   2.协议算法特点:链路状态型路由协议,SPF算法

   3.协议是否传递网络掩码:传递网络掩码

   4.协议封装:基于IP协议封装(跨层封装,三层),协议号89

 

一 .  OSPF的数据包 -- 5种

(1) hello包 -- 组播收发,用于邻居、邻接关系的发现、建立、周期保活  

     周期性发送:

           之所以周期发送是由于触发更新,只是为了保活,维持我们之间的通信,占用资源不大

           周期时间位10s或者30s;不同的网络类型发送周期不同(只与网络类型有关),链路带宽高时10s一个,链路带宽

           低时30s一

           死亡时间:10s更新则为40s;30s更新为120s

      目的:

           建立并维持OSPF 邻居关系

           邻居关系建立之后重当保活包功能

(2) DBD -- 数据库描述包--  本地LSDB(链路状态数据库)目录

      功能

            主从选举:

                            为什么选举主从:由主来控制LSA后期传问题

            数据库的描述包:给自己的LSA数据写一个目录

            主从选举完成后,发送携带LSA头部信息的DBD包

(3) LSR---链路状态请求 --  用于询问对端本地未知的LSA信息

      链路状态请求

      按照DBD中报文的未知LSA头部进行请

(4) LSU-- 链路状态更新 --  用于共享具体的每一条LSA信息

 

(5) LSack 链路状态确认 -- 确认包

 

二. OSPF的状态机  -- 两台OSPF路由器间不同关系的阶段

 

down:关闭状态

       停留这一状态原因:条件不匹配

       ospf邻居还没有建立: 

             在建立过程中出现问题,邻居没有建立成功;比如40sHello包未回应,退回down状态,不再10s保活,则是在

             down状态下以Poll时间发送Hello包

init:初始化状态

        一旦开始发送hello后则进入此状态

        变为此状态后,等待对方恢复的一个Hello包,其中要是携带自己的router-id ,则进入下一状态

Attempt:尝试连接的状态(只会出现在NBMA网络中)

 

Two-way:双向通信状态(邻居状态建立完成)

        停留这一状态原因:选不出DR/BDR

 

             接收到包含自己router-id 的对方hello报文

             点对点网络:不需要选取,可以继续进入下一状态

             MA网络中

                          会选举DR(指定路由器) BDR(备份指定路由器);一个区域只能有一个DR和一个BDR

                          选举DR(接口概念)

                          比较优先级(范围:0-255,默认优先级为1 ,越大越优)

                          比较各自的router-id,越大越优

                          等待时间与死亡时间一样多,40s之内选举,没有比自己大的则认为自己为D

                          先选出一个BDR,看40s之内是否还有比自己优的,没有则升级为DR

 

Exstart:预启动 

              使用不携带数据库目录信息的DBD包,进行主从关系的选举,RID数值大为主,优先进入下一个状态机

Exchange:准交换            

             主从选举完成,则发送携带LSA头部信息的DBD(目录),进入预交换状态,会发送LSR数据包。(但是没有

             LSU)

             主从选举完成之后

                         根据对方发来的DBD目录中的LSA ,选出自己没有的LSA条目,建立自己的请求列表,更具

                         自己的请求列表逐条向对方请求

                         一个LSR中只能带有一个请求条目,收到回复后才会请求下一条

Loading:加载      

             一旦发送LSU数据包,进入了加载状态,进行大量LSA的学习

 

             过程:

                        收到请求列表中所需要的LSA条目,建立对应的重传列表(LSU),并回复给对方所请求的

                        LSA数据包                       

                        对方收到了回复给自己的LSU,对比自己的请求列表,是自己请求的则回复一个LSack包,并

                        且把自己请求列表中的这条条目删除

                       收到确认的LSack包,则对照条目删除请求列表中的对应条目,表示确认对方已经学习到此

                        条目

LSU需要ACK确认:

Full 转发   

            双方LSA同步(双方LSA全部学习)

            双方的请求列表和重传列表都为空时,则为加载完成

 

三. OSPF(三表)

 

邻居表:查看邻居和邻接状态的

     display ospf peer breef查看OSPF邻居表的摘要信息

                 Area ID 区域

                 自己的接口 对应的在哪个区域

                 建立关系的接口id

                 状态

      display ospf peer查看OSPF邻居表

                区域 对方建立关系的id(自己的接口) 关系

                router-id:自己的 Address:

                DR BDR MTU

                重传计时器:需要确认,规定时间内没有收到确认包则再重传一遍

                建立了多久

 

LSDB表:链路状态数据库

   dis ospf 100 lsdb查看lsa目录信息

            Type:LSA的类型,几类LSA

             LinkState ID:链路ID,标记一条LSA,不同的LSA产生LinkID的方式不同

             AdvRouter:产生这条LSA的路由器

             Age:LSA的Age,LSA的老化时间,LSA是有一个存活时间的;最大老化时间为3600s

             Len:长度

             Sequence:序列号

             校验核(这里不显示出来)
                          Seq、校验和、Age三者来做新旧比较

                          LSA老化时间(若以上都相同,LSA age 之差小于15 ,越小越有,若大于15分钟,则无

                          法比较认为都是最新的)先对比序列号,8~F F-0~7,当序列号到7FFF FFFE时,初始路

                          由器把此条LSA的老化时间强行改为3600s,其他路由器删除此条目,初始路由器重新发

                          送序列号8开始的LSA条目

             Metric


路由表


    dis ip rouring-rable pr ospf

           学习到的路由

           协议

           优先级

           cost值

 

四. 邻居建立条件


(在满足以下条件的时候,不同网络环境中是可以建立邻居或邻接关系的;点需要选DR的网络环境和不需要选择DR的网络环境之间

  可以建立邻居,LSA可以同步,但是LSA中的信息无法加表)

                  router-id不同

                  Area ID一致

                  认证类型一致

                  hello时间与死亡时间一致

                  特殊区域标识(E(外部路由位,是否支持5类LSA;1为支持,0为不支持)=1 ;N(NSSA外部路由位,

                  是否支持7类LSA;1为支持,0为不支持)=0 P=0(是否支持7类LSA转换为5类LSA,1支持,0为不支持

                  MA网络中,网络掩码必须一致

                  必须同时使用单播或组播更新

                  更新源检测(双方的IP地址必须在同一网段)

 

 

五.  OSPF(LSA)


描述LSA的三种东西:

              Type:LSA的类型,几类LSA

              LinkState ID:链路ID,标记一条LSA,不同的LSA产生LinkID的方式不同

              AdvRouter:产生这条LSA的路由器

一类LSA:router -LSA

              功能:产生本路由器针对某个区域的路由信息和拓扑信息;一个路由器针对一个区域产生一条一类LSA

              传播范围:只能在本区域内传输,中止于ABR

              Link ID :产生者的router-id

              ADV router:产生者的router-id

              特性:
                         在单个区域中分别产生一条1类LSA,若存在MA网络,1类LSA不完整,需要配合二类LSA生

                         成路由信息以及拓扑信息

              LSA数据包(dis ospf lsdb roter 所查的linkID)

                      Type:类型router

                      LS ID:

                      Adv:

                      存活时间

                      Len:字节

                      特殊区域

                      序列号

                      校验和

                      Link cout:代表我这个一类LSA是由几部分构成(由*区分)

                      link ID

                      类型为TransNet时,此ID为此网络范围的DR

                      Data

                          类型为StubNet时,为掩码

                          类型为TransNet时,自己连接DR的接口

                          类型为point-to-point时,自己用于连接

                      Link Type

                          StubNet(末节网络):表示路由信息

                          point-to-point:表示拓扑信息,点对点的

                          TransNet:表示拓扑信息,传输网络仅限于MA网络,需要选DR、BDR

                             virtual link :虚链路

                      开销值:0为本地环回

                      Priority

 

二类LSA:network LSA ,网络LSA(只能由DR产生)

          功能:用于在MA网络中,描述本网络路由器的数量以及本MA网络的网络掩码;一个MA网络只产生一条二类LSA

          传播范围:只能在本区域内传输,中止于ABR

          Link ID:DR接口的IP地址

          ADV  router:DR所在路由器的router-ID

          特性

                       只会出现在MA网络,用于补充1类LSA(1.MA网络的掩码2.MA网络路由器的数量)

          LSA数据包

                      Type:类型Network

                      LS ID:

                      Adv:

                      存活时间

                      Len:字节

                      特殊区域

                      序列号

                      校验和

                      网络掩码

                      Priority

                                可达的路由器

 

三类LSA:summary LSA,汇总LSA

           功能:用于在区域之间传递路由信息

           传播范围:只能在一个区域内传输,想传输到下一个范围,由连接下一个范围的ABR重新产生新的三类LSA

           link-id :传递路由的网络号(一个范围)

           ADV router:默认为所在区域ABR的router-id

           特性

                       在穿越不同区域时,有其他的ABR重新产生(ADV router 是变化的)

                       功能是在区域间传输路由,但是不是直接传输,是进入新的区域时是产生的新的LSA

           LSA数据包

                       Type:类型Sum-Net

                       LS ID:

                       Adv:

                       存活时间

                       Len:字节

                       特殊区域

                       序列号

                       校验和

                       网络掩码

                       开销值

 

四类LSA:summary,ASBR LSA

            功能:除了产生5类LSA所在区域,用于通告ASBR位置;告诉其他路由器,产生五类LSA的路由器在哪里

            传播范围:一个区域范围,想传输到下一个范围,由连接下一个范围的ABR重新产生新的四类LSA

            Link id:ASBR的router-id,重发布的路由器的router-id

            ADV router:默认ASBR所在区域的ABR的router-id,重发布路由器所在的区域与骨干区域连接的ABR产生

            特性

                         在穿越不同区域时,有新的ABR重新产生(与3类LSA一致)

            LSA数据包

                        Type:类型Sum-Asbr

                        LS ID:

                        Adv:

                        存活时间

                        Len:字节

                        特殊区域

                        序列号

                        校验和

                        开销值

 

 五类LSA:外部LSA

           功能:用于在整个OSPF中传递外部路由(原本不属于OSPF域)

           传播范围:在整个OSPF域中传输

            Link id :传递外部路由的网络号(一个网络范围)

            ADV router :产生该LSA的router-id(产生本LSA的ASBR的router-id ,一般为重发布的路由器)

            LSA数据包

                        Type:类型External

                        LS ID:

                        Adv:

                        存活时间

                        Len:字节

                        特殊区域

                        序列号

                        校验和

                        网络掩码

                        度量值:重发布到OSPF后度量值初始化为1(种子度量值),可以修改

                         E type:类型,默认为类型2

                                类型1:传递过程中此条LSA的度量值是需要累加的

                                类型2:此条LSA的种子度量值在OSPF中传递时是不发生改变的

                         Forwarding Address:转发地址

                            5类LSA FA地址规则

                                  默认不产生,若连接其他协议的接口运行了OSPF 协议并且网络

                                  类型为BMA,则FA地址为重发布之前路由的下一跳地址

                                  若网络类型为P2P,则不会产生FA地址

                          Tag:标签

                          Priority

  

 

七类LSA:NSSA LSA

             功能:在NSSA区域中,传递外部路由

             传播范围:NSSA区域内

             Link id:传递路由网络号

             ADV router:产生该LSA的router-id

             特性

                   默认为类型2 ,度量值为1 ;携带了FA地址(转发地址)

             LSA数据包

                   Type:类型NSSA

                   LS ID:0.0.0.0

                   Adv:产生这条7类LSA缺省的ABR的router-id

                   存活时间

                   Len:字节

                   特殊区域

                   序列号

                   校验和

                   网络掩码:0.0.0.0

                   开销值(种子度量值):1

                   E type:类型,默认为类型2

                        类型1:传递过程中此条LSA的度量值是需要累加的

                        类型2:此条LSA的种子度量值在OSPF中传递时是不发生改变的

                   转发地址(FA地址):产生这条LSA的路由器的router-id

                           当5类或7类LSA中携带了FA地址,则计算路径开销值时计算的是当前路由器到达FA

                           地址的开销值之和+种子度量值。(若FA地址不可达,则路由不能加表)

                           默认7类LSA 产生FA地址,5类LSA不产生的(7转5的5类LSA 携带FA地址)

                    7类LSA 产生规则:

                           默认产生的FA地址为产生该类LSA的ASBR最大的环回接口地址

                           若连接其他协议的接口也运行了OSPF协议,网络类型为BMA,则产生的7类LSA中FA

                                  地址为连接其他接口对应的下一跳地址

                           若网络类型为P2P,则FA地址依然为环回接口中IP地址最大的
 

六.  OSPF LSA的限制

        划分区域

        特殊区域:在某一个区域需要限制LSA的数量(不能在骨干上做)

        stub 区域(末节区域)

                出现这个区域的原因:

                          此区域的路由器性能弱,学习不了那么多的LSA

                stub区域控制LSA的方法:

                     由于5类LSA的数量最不可控,则过滤5类LSA,5类没有了,4类也没有存在的意义了,

                     一起过滤stub区域边界ABR会自动产生3类缺省LSA,保证stub区域路由器与外网保持通信

                特点:

                      不能出现4、5类LSA

                      特殊区域不能使用虚链路

                      stub区域不能为骨干区域

                      若设置stub区域,存在该区域的所有路由器都必须设置

                      特殊区域标识E=1(外部路由位,是否支持5类LSA;1为支持,0为不支持,默认为1)

                ABR产生的3类缺省LSA的数据包

                      Type:类型Sum-Net

                      LS ID:0.0.0.0

                      Adv:产生这条缺省的ABR的router-id

                      存活时间

                      Len:字节

                      特殊区域

                      序列号

                      校验和

                      网络掩码:0.0.0.0

                      开销值(种子度量值):

         完全的末节区域

                    出现这个区域的原因

                           stub区域中有了3类LSA的缺省,所以其他区域的3类LSA也可以不需要

                    完全的末节区域控制LSA的方法

                           在stub区域基础上,由ABR过滤所有的3类LSA,只保留3类缺省LSA

          NSSA区域(非完全末节区域)

              出现这个区域的原因

                      为了保护与外部其他协议相连的区域,不学习4、5类,但是还是要学习外部协议的路由

              NSSA区域控制LSA的方法

                      依旧过滤4、5类LSA边界ABR自动产生7类缺省LSA,保证NSSA区域路由器与外网保持通信

                      类LSA只能在本NSSA区域中转发,其他区域学习不到,与其他OSPF区域相连的ABR将7类

                      LSA中转换为5类LSA,此5类LSA中携带FA地址,此时这个产生5类LSA的路由器为ASBR,

                      同时这个路由器会给其他不与它直连的区域发4类LSA

                      其他区域,路由表查到的LSA中携带FA地址则看FA地址,此时不看4类LSA,若FA地址

                      不可达,则路由不能加表;当过滤掉FA地址后,则查看4类LSA

              特点:

                    不能出现4、5类LSA

                    特殊区域不能使用虚链路

                    NSSA区域不能为骨干区域

                    若设置NSSA区域,存在该区域的所有路由器都必须设置

                    允许进行重发布(允许出现ASBR),产生7类LSA

                    特殊区域标识:E=0(外部路由位,是否支持5类LSA;1为支持,0为不支持,默认为1);

                          N=1(NSSA外部路由位,是否支持7类LSA;1为支持,0为不支持,一般默认为0)

                          7类LSA只能转5类,5类转不了7类

                    为了防环,当一个路由器上既有NSSA也有正常区域,会产生不同类LSA,重发布给NSSA区域的7类

                         LSA是不支持7转5的;优化则可以在连接与NSSA区域的边界路由器上关闭重发布7类LSA,

                         直接走ASBR产生的7类LSA

              ABR产生的7类缺省LSA的数据包

                         Type:类型NSSA

                         LS ID:0.0.0.0

                         Adv:产生这条7类LSA缺省的ABR的router-id

                         存活时间

                         Len:字节

                         特殊区域

                         序列号

                         校验和

                         网络掩码:0.0.0.0

                         开销值(种子度量值):1

                         E type:2

                         转发地址(FA地址):产生这条7类缺省LSA的路由器的router-id

       完全的非完全的末节区域

                     完全的非完全的末节区域控制LSA的方法

                         在NSSA区域的基础上继续过滤3类LSA,产生3类缺省LSA的

                     特点:

                         当完全的非完全的末节区域里的路由器同时学习到了3类和7类缺省LSA,则优先3类,

                         不管什么情况下3类都优于7类

                     LSA汇总(只能针对纯路由的LSA汇总(3、5、7类))

                           3类LSA汇总

                               位置:产生该3类LSA 的路由器上

                               度量值:所有明细路由中metric最大的

                           5类LSA汇总

                               位置:产生该5类LSA的ASBR上

                           7类LSA汇总

                                位置:产生该7类LSA的ASBR上

                           7转5过程中汇总

                                位置:产生该7转5类LSA的ASBR上

                       LSA过滤(只能针对纯路由的LSA过滤)

                           针对3、5、7、7转5类LSA 进行过滤:在汇总的命令后面+ not-advertise(不通告)

 

七.  OSPF优化--减少LSA的更新量

    1、汇总 --- 减少骨干区域的路由条目数量

    2、特殊区域-- 减少非骨干区域的路由条目数量

 

       【1】汇总--OSPF协议不支持接口汇总,在一个区域内,邻接间传递的是拓扑信息,不能进行汇总;故只能在交互路由的

           边界设备进行汇总

            1)域间路由汇总--在区域间的ABR上,交互区域间路由条目时进行汇总配置

                     [r2]ospf 1

                     [r2-ospf-1]area  1 本地通过该区域1/2类LSA计算所得路由,可以汇总后传递给其他区域

                     [ r2-ospf-1-area-0.0.0.1]abr-summary 3.3.0.0 255.255.252.0

 

 

             2)域外路由汇总---ASBR在将外部的路由条目通过重发布协议,共享到OSPF协议中时;

               可以进行汇总

                     [r4]ospf 1

                     [r4-ospf-1]asbr-summary 99.1.0.0 255.255.252.0

 

          【2】 特殊区域 -- 用于减少各个非骨干区域的LSA数量

                         不能为骨干区域,不能配置虚链路 

             [1] 同时不能存在ASBR

                  1)末梢区域--拒绝4/5类的LSA;由该区域连接骨干区域的ABR向该区域发布一条3类的缺省

                       [r2]ospf 1      

                       [r2-ospf-1]area  1

                       [r2-ospf-1-area-0.0.0.1]stub

                     注:该区域内的所有路由器均需配置该命令

 

                  2)完全末梢区域          

                    在末梢区域的基础上,进一步拒绝3类的LSA;仅保留一条3类的缺省路由

                    先将整个区域所有路由器配置为末梢区域;然后仅再在连接骨干区域的ABR上配置完全即可

                      [r2]ospf 1

                      [r2-ospf-1]area  1

                      [r2-ospf-1-area-0.0.0.1]stub no-summary

 

            [2] 存在ASBR

               1)NSSA 非完全末梢区域 --该区域将拒绝4/5类LSA,由该区域连接骨干区域的ABR向该区域发布

                    一条7类的缺省路由;该区域内的ASBR导入域外路由时,基于7类导入,之后通过该区域连

                    接骨干的ABR传递到骨干区域时,转换为5类进入骨干区域;

                    NSSA设计的重点,不是减少该区域内ASBR产生的域外路由,

                    而是网络中其他部分的ASBR产生的域外路由;

                          [r2]ospf 1

                          [r2-ospf-1]area  1

                          [r2-ospf-1-area-0.0.0.1]nssa   本区域内部所有设备均需配置

 

                2)完成NSSA --- 在NSSA的基础上,进一步拒绝3类LSA的进入,由该区域连接骨干区域的ABR

                  向该区域发布一条3类的缺省先将该区域配置为NSSA区域,之后仅在该区域连接骨干的

                  ABR上配置完全即可

                           [r2]ospf 1

                           [r2-ospf-1]area  1           

                           [r2-ospf-1-area-0.0.0.1]nssa  no-summary

               切记:NSSA和完全NSSA的工作环境,需要考虑ISP(运营商)所在位置,否则可能导致环路出现

八. ospf扩展配置

    1、认证  ---在直连的邻居或邻接之间,配置身份核实秘钥来保障邻居、

              邻接间数据沟通的安全性

             1)接口认证

                   在直连连接的接口上配置

                    [r6-GigabitEthernet0/0/1]ospf authentication-mode md5 1 cipher 123456

                            两端的模式、编号、秘钥必须完全一次 

             2)区域认证

                    [r1]ospf 1

                    [r1-ospf-1]area  1

                    [r1-ospf-1-area-0.0.0.1]authentication-mode md5 1 cipher 123456

                            将该路由器R1,所有属于区域1的接口全部进行认证

             3)虚链路认证

                    [r10-ospf-1-area-0.0.0.4]vlink-peer  9.9.9.9 md5 1 cipher 123456

     2、沉默接口  

            用于路由器连接PC终端设备的接口,这些接口为全网可达,会在路由协议中被宣告;故这些接口也会

            周期向下方的终端发送路由协议信息,造成资源占用,及安全问题;故这些接口需要关闭发送RIP/OSPF

            等协议数据包行为--沉默接口(被动接口)       

       切记不要配置到路由器与路由器相连的骨干接口,将导致邻居间无法收发路由信息,无法建立邻居关系

                    [r2]ospf 1

                    [r2-ospf-1]silent-interface GigabitEthernet 0/0/2

     3、加快收敛   

         通过修改邻居间hello 和dead time,可以实现加快收敛,但频率过高后也会占用更多硬件资源;

         故hello time为10s时,不太建议再加快; hello time 为30s时可以酌情修改;邻居间的

         hello time和dead time 必须完成一致,否则无法建立邻居关系;

         修改本端的hello time,本端的dead time自动4被关系匹配;对端时间不变,需要手工将两端配置完全一致;

                    [r2-GigabitEthernet0/0/0]ospf timer hello 10

     4、缺省路由

           1)3类缺省-- 特殊区域自动产生;末梢、完全末梢、NSSA、完全NSSA末梢、完全末梢、

             完全NSSA这3中特殊区域,会在配置完成后,由该区域连接骨干区域的ABR向该区域内部发送;

             在华为设备中,NSSA和完全NSSA,会在配置完成后,由该区域连接骨干区域的ABR向内部发布7类的缺省路由;

             此完全NSSA将拥有3类和7类两种缺省,内部优于外部,故信任3类;

           2)5类缺省-- 外部路由,重发布产生的;

             本地路由器的路由表中,存在任意方式产生的缺省路由后,通过专门的指令,将其重发布到OSPF协议中;

                  [r9]ospf 1

                 [r9-ospf-1]default-route-advertise 将本地路由表中通过其他方式获取的缺省路由                                                                      

                         重发布到内部的OSPF协议中,默认导入类型2路由

                  [r9-ospf-1]default-route-advertise always 强制重发布缺省路由--即便本地路由表中没有

                         缺省路由,也强制向内部发布一条缺省路由,默认导入类型2路由

                  [r9-ospf-2]default-route-advertise type  1  修改为类型1;

            3)7类缺省  --- NSSA或完全NSSA,自动由该区域连接骨干的ABR发出,但在完全NSSA中还会产生3类缺省,

                       故完全NSSA中7类缺省无意义;默认5类一样也是类型2;

                  [r6-ospf-1-area-0.0.0.3]nssa  default-route-advertise  

                          手工产生7类缺省,前提在NSSA区域中 

                           

      注:若一台设备同时学习到的多条不同类别的缺省路由:

         内部优于外部   故  3类优于5/7

         若均为5类 或均为7类  类型1优于类型2   

         类型相同,比较优先级,优先级相同比较cost值,完全一致负载均衡;

         若5、7类相遇,类型1优于类型2;类型相同,比较优先级,优先级相同比较cost值,完全一致5类优于7类;

 

 

九. OSPF扩展知识点

 

 

  1,用关于OSPF状态机的问题

 

      1)在MA网络中(进行DR/BDR选举)存在7种状态机

        init是路由器A收到邻居B的hello包,但该hello包中没有A的RID;

      2)在点到点网络init状态机在判断可以建立邻居后,直接进入exstart状态机;

        没有2way状态机----6种状态机

        在点到点网络实际仅存在邻接关系;在MA网络(选举DR/BDR)网络中存在邻居和邻接关系;

      3)若邻接间的数据库默认一致,将不需要进入loading状态机;

      4)在hello时间较大时,比如p2mp和nbma工作方式,默认hello time为30s;

        hello包收发的间隔较大,从down状态到init需要很长时间的等待,

        故在两种状态机,存在一个尝试状态机;

      5)华为设备中ospf存在加速建邻机制--- 在两台路由器进行过一次邻接关系建立后,

        双方存在对端的缓存信息后;二次建邻时将快速完成状态机的切换;

        ---前提是缓存未删除---认证或拥塞

 

  2. 关于OSPF的DBD包--- 排序问题(隐性确认问题)

 

  首先在exstart状态机,邻接设备间会使用不携带LSA头部信息的DBD包进行主从关系的选举,

   该选举的作用决定了那台设备优先进入exchange状态机的顺序;同时在exchange状态时,

   邻接间将收发携带LSA头部信息的DBD包;可能由于LSA头部信息较多,将多次收发DBD,也需要进行排序;

   所以主优先进入exchange,主在exchange优先发送DBD,在发送一个DBD后,需要接收到对端的DBD后,

   才能发出下一个DBD;目的在于避免两端同时发送携带LSA的DBD报头,导致链路拥塞;  

   故为了顺序正常,DBD需要进行隐性确认;

       隐性确认:

           从在收到主的DBD包后,复制该DBD包的序列号回复DBD;

           在主或从未完成所有LSA头部信息的共享前,对端设备需要使用空包

           (不携带LSA信息,但复制了对端序列号的DBD)来完成确认;

           隐性确认可以让ospf协议在exchange状态机取消ACK的确认;

       DBD报头中存在标记位来告知邻接,是不是本地第一个DBD和最后一个DBD,

           同时标记主从关系;

           I  为1 标识本地第一个DBD    M位为一标识不是本地最后一个DBD

           MS 位为1标识主,为0标识从;  第一次收发的DBD两端均人为是主;

       DBD包中将携带接口的MTU值,两端MTU不一致将卡在exstart或exchange状态机;

           默认华为不检测接口的MTU;

             [r7]interface GigabitEthernet 0/0/1

             [r7-GigabitEthernet0/0/1]ospf mtu-enable  开启接口mtu检测

 

  3. OSPF选路规则

 

     (1)、AD(管理距离,优先级)无关的一种情况:

            r2(config)#router ospf 1

            r2(config-router)#distance 109 1.1.1.1 0.0.0.0

        本地从RID为1.1.1.1的设备处学习到路由条目,管理距离修改109

        一台路由器从两个OSPF邻居处学习到了两条相同的路由时,仅比较度量值,

        不关注管理距离;因为仅针对一台邻居进行管理距离修改的结果是要么两台都被改,

        要么修改失败;-关注IOS版本---有时修改RID大路由器管理距离生效,有时需要修改RID小的设备;

     (2)、AD(管理距离)无关的第二种情况 O  IA 3类

        O IA 与 O IA路由相遇,到达相同目标的两条3类路由,这两条路由均通过非骨干传递,

        仅关注cost值,不关注管理距离;

        若一条通过骨干区域传递,另一条同过非骨干区域传递--非骨干传递的路由无效

        OSPF的区域水平分割:区域标号为A的3类LSA,不能回到区域A;避免环路产生

        先比类型(5/7的LSA才存在类型)-à 区域(骨干优于非骨干)àcost(小优)

 

      (3)、OE 与OE   E为5类    N 为7类   默认所有重发布进入路由条目均为类型2,

         类型2在路由表中cost值不会显示沿途的累加,仅显示起始度量;

         两条均为OE2或者均为N2,起始度量相同; 关注沿途的累加度量

         (OE2路由在表中度量默认不显示内部度量,仅显示起始度量)

          两条均为OE2或者均为N2,起始度量不同;优先起始度量小的路径;

                注:以上设计是便于管理员快速干涉选路;

         OE1路由仅比较总度量(起始度量+沿途累加),仅修改起始度量不一定能干涉选路,

         必须在修改后使得总度量产生区别才能干涉选路;

      (4)、拓扑优于路由   1/2LSA计算所得路由优于3/4/5/7类计算所得

         内部优于外部   3类优于4/5/7类

         类型1优于类型2  E1优于E2,N1优于N2,E1优于N2,N1优于E2;

         E1与N1相遇,或E2与N2相遇,先比总度量(起始+沿途)小优;度量一致5类优于7类

  

  4. E --- link-id相同的问题

 

       若一台ABR将两条3类LSA导入其他区域;同时这两条LSA的link-id会相同;

       假设:短掩码网段先进入,link-id正常显示;长掩码进入时link-id加反掩码

       20.1.0.0/16--link-id  20.1.0.0   

       20.1.0.0/24--link-id  20.1.0.255   

       若长掩码先进入,再短掩码进入时,长掩码的信息被刷新为反掩码

 

5. NP位+E位   P位被加密,故抓包时看不见P位

 

       正常NSSA区域内的1类LSA中,N=1    E=0  标识该区域转发7类LSA,不转发5类

       非NSSA区域E=1 N=0 标识可以转发5类,不能转发7类

       P位为1,标识该区域将执行7类转5类;  P为0,不能7转5;

       区域0连接到两个非骨干区域,这两个非骨干假设为区域1和区域2;区域1/2同时连接同一个外部协议,

          且同时进行了重发布配置;区域1为NSSA区域,区域2为非NSSA区域;那么此时的区域1,

          P位=0不能进行7转5;故骨干区域只能收到从区域2来的外部路由;

       若NSSA和非NSSA均将同一条域外路由向内部传递,仅非NSSA区域可以实现;

       若区域1和区域2均为NSSA区域,那么ABR的RID大区域进行7转5,另一个区域不转,

       故同一条域外路由,骨干区域只能收到从一个NSSA区域传递的外部路由;若以上条件中,

          两个区域均为非NSSA区域,那么P位无效,故两个区域的路由均回进入骨干区域;

 

 

6. SFP算法 –OSPF防环机制

 

   1、在同一个区域每台路由具有一致的LSDB

   2、每台路由器以自己为根计算到达每个目标的最短路径(最小cost值)

   3、必须区域划分--

       优势-1)域间汇总减少路由条目数量

       2)汇总路由是在所有明细路由均消失后才删除,网络更稳定

       3)区域划分后不同类别的LSA传播范围不同,控制更新量

    过程--基于本地LSDB(1/2类LSA)生成--生成有向图--基于有向图来进行最短路径树生成

       最短路径树,关注本地LINK-ID的LSA开始--》基于该LSA内提及到点到点或传输网络

       信息再查看link-id递归到下一条信息;基于所有点到点和传输网络信息生成最短路径树主干;

       然后用树中每台设备的末梢网络信息补充路由表,完成收敛;

 

  7.OSPF优选路径总结:

 

     拓扑优于路由   1/2LSA计算所得路由优于3/4/5/7类计算所得

     内部优于外部   3类优于4/5/7类

     类型1优于类型2  E1优于E2,N1优于N2,E1优于N2,N1优于E2;

     E1与N1相遇,或E2与N2相遇,先比总度量(起始+沿途)小优;度量一致5类优于7类

  

     同一路由本地基于骨干区域和非骨干均学习到,不比较度量,直接优选骨干--非骨干传递的路由无效

     OSPF的区域水平分割:区域标号为A的3类LSA,不能回到区域A;避免环路产生

 

 

推荐阅读