OSPF邻居/邻接建立(3)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了OSPF邻居/邻接建立(3)相关的知识,希望对你有一定的参考价值。

参考技术A ospf状态机

一、ospf邻居

二、ospf邻接

三、影响ospf邻居/邻居关系建立的因素:

ospf报头:

(1)Router ID

(2)Area ID

(3)认证

ospf的hello报文:

(4)MA网络的网络掩码

(5)Hello/Dead时间

(6)Option区域类型

(7)MA网络的路由器优先级都为0

ospf的dd报文:

(8)MTU

其它:

(9)ospf的网络类型不一致

(10)silent接口

四、泛洪

1、泛洪

OSPF和距离矢量路由协议不同,OSPF的的路由是根据LSDB中的LSA计算出来的,所以LSDB的一致性及快速同步直接影响OSPF路由的收敛性能;

每台ospf路由器的每个区域都有一个LSDB,LSDB是LSA的集合,这些LSA在区域内泛洪给每台ospf路由器,最终区域内的所有ospf路由器都有一个完全相同的LSDB;

泛洪的过程就是ospf路由器把自己产生或学来的LSA向所有其他邻居或路由器通告的过程,包括初始同步过程中的、周期的、触发的LSU泛洪;

ospf路由器的LSDB包含所有LSA,任何LSA的变化都会触发当前路由器通告LSU/LSAck给邻居路由器并泛洪至所属区域,最终通告到全网络;

LSU和LSAck报文都可包含多个LSA信息,但LSU携带完整的LSA,而LSAck仅包含用来做确认的LSA头;

泛洪过程是个可靠的过程,有确认机制,其中每份泛洪的LSA都必须被确认,确认包括显式确认(ExplicitAck)或隐含确认(ImplicitAck);显式确认使用LSAck做确认,隐含确认使用LSU做确认,如DRother向DR/BDR泛洪LSU更新(224.0.0.6),DR会将LSU更新向所有DRother泛洪(224.0.0.5),而不需要像显式确认那样需要单独发送LSAck进行确认。

当一份LSA被泛洪出去,当前路由器会记录在该接口的所有邻居数量并为之维护重传列表,没有收到显式或隐含确认的LSA会在5s后单播重传更新(不管网络类型是什么);

2、路由器泛洪行为:

(1)每台接收路由器先判断LSDB中是否已有该LSA,没有则存储转发,否则忽略;如果接收时不判断是否已拥有该LSA,会导致LSA在区域内无休止地传递;

(2)一个接口收到LSA,存放到LSDB后,再从其他接口重新泛洪出去,泛洪也有水平分割的行为。DR接口是例外,DR会把从一个DRother收到的LSA通过原接口重新通告给其他DRother路由器;

(3)收到的LSA和重新通告的LSA除LS age增加1外,其他内容一致,如Checksum等;

(4)LSA会泛洪到区域的边界;

3、LSDB

(1)LSDB中的LSA通过LS Type、Link State ID和Advertising Router三个参数进行唯一标识;

(2)区域中会有周期产生(1800s)的新的LSA所致的泛洪或触发产生的新的LSA导致的泛洪,初始同步过程所致的泛洪;

(3)泛洪是把LSA向区域中的每条链路复制并通告的过程;

(4)全区域的泛洪会导致路由器收到多份相同的LSA,旧的LSA会被新的LSA覆盖,LSDB仅保留最新的,路由器仅泛洪最新的LSA;

(5)一旦最新的LSA被所有路由器收到,泛洪就结束了;

(6)LSDB中的LSA有超时机制,LSA的Age超过Max Age(3600s),该LSA会从LSDB中被清除;

LSDB中LSA被清除的两种场景:

(1)超过Max Age被路由器自动清除;

(2)LSA起源路由器产生Max Age的LSA,并向区域内泛洪,收到的路由器会清除LSDB中的该LSA,并继续泛洪Max Age的LSA;

4、判断LSA新旧

泛洪机制把LSA向区域中的每条链路通告,不论LSA从哪条链路泛洪到当前路由器,在路由器的LSDB中仅保存一份最新的LSA;若路由器收到多份相同的LSA(LS Type、Link State ID和Advertising Router三个字段相同),就需要依次比较LSA序列号、LSA校验和、LSA age三个字段,来判定是否继续泛洪该LSA,还是终止泛洪:

(1)序列号越大代表越新;

(2)若序列号相同,Checksum数值越大代表越新;

(3)上述一致的情况下,比较Age:

若LSA的Age为Max Age(3600s),则该LSA最新,用来毒化LSA在LSDB中清除这份LSA;

若LSA之间的Age差额超过15分钟,则该LSA更新,覆盖掉LSDB中旧的LSA,继续泛洪直至区域边界;

若LSA之间的Age差额在15分钟之内,则LSDB中的LSA更新,忽略收到的LSA;

以上是关于OSPF邻居/邻接建立(3)的主要内容,如果未能解决你的问题,请参考以下文章

ospf建立邻居关系必须有的哪4个条件

OSPF路由协议建立邻居关系邻接关系和路由汇聚过程中的表类型包类型及状态类型

OSPF建立邻居邻接关系 学习笔记

ospf协议建立邻接的过程中有多少个状态

OSPF之邻居关系邻接关系

OSPF邻接关系建立过程详解