华为HCIE R&S笔记-17OSPF收敛过程

OSPF收敛过程:
OSPF收敛需要经过八种状态机制:
① down
② Attempt
③ Init
④ Two-way
⑤ Exstart
⑥ Exchange
⑦ Loading
⑧ Full
华为HCIE R&S笔记-17OSPF收敛过程

  1. Down:
    关闭状态,默认运行ospf的路由端口刚up的一瞬间处于此状态。
    注:在NBMA网络中,由于120S没有收到Hello报文会由Attempt状态进入down状态,此状态下120S发送一次Hello报文。
  2. Attempt:
    试图等待状态,Attempt状态只在NBMA网络中出现,由于NBMA使用单播建立邻居关系,当手工指定对端接口后,会进入此状态,默认会每隔30S发送一次Hello包,当120S内没有收到Hello报文后,会跳转到Down状态,如果在120S内收到Hello报文跳转到Init状态
  3. Init:
    初始状态,当一台路由器收到对端发送过来的Hello报文,便进入此状态。
    注:单项链路故障造成一直收不到对端的Hello报文,会造成本端一直停留在Init状态
  4. Two-way:
    邻居状态,路由器收到对方的Hello包,本端路由器也会发送Hello报文,并将邻居的Router-ID放入Hello报文中,发送给对端邻居,邻居收到Hello报文后发现报文中存在自己的Router-ID,进入Two-way状态,并且在此发送Hello报文,报文中包含对端的Router-ID,对端收到Hello报文后,也进入Two-Way状态,并选举出DR、BDR和DR-other。
    路由器不会自主选择DR、BDR,而是侦听链路上的Hello数据包,如果数据包中的DR、BDR字段一直为0,则在40S过后,会根据收到的Hello数据包中的DR优先级选举出DR和BDR
    注1:Hello包交换建立Two-way状态为三次握手
    注2:DR-other之间永远是Two-way状态
  5. ExStart:
    ExStart状态用于检测MTU是否一致,并通过发送Fist DD报文选举并确立主从关系,Router-ID高(忽略优先级)的路由器成为主路由器(Master),低的为Slave
    注:如果MTU值不匹配,将停留在此阶段,华为设备默认不检测MTU
    (1)主从选举原因:
    OSPF承载在IP层,为了保障可靠的传输,在交换DD报文前,首先选举出Master,在进
    行DBD报文交互时,Master首先发送DD报文给Slave,Master首先确定一个序列号,并发送此序号的DD报文,如果对端收到DD报文,会回复和Sequence number一致的DD报文,如果没有回复,表示当前发送的DD报文没有被对端收到,此时会重新发送。
    注:选举主从路由,只有DR和DR-other进行主从选举(因为只有他们是Full状态,才会
    进行主从选举,邻居关系(DR-other和DR-other)只停留在Two-way状态。
    (2)主从选举过程:
    华为HCIE R&S笔记-17OSPF收敛过程

① 两端都发送Fist DD报文,无任何头部描述信息,只有序列号和I、M、MS三个置位符:
I:置位表示第一个DD报文
M:置位表示后面还有DD报文
MS:置位表示当前本路由器为Master
② 当两端互相收到对端的DD报文后,查看Router ID,如果路由器发现自己的Router ID小于对端的Router ID,便认为对端为Mater,自己进入Exchange状态,并将LSA的序列号改为对端发送过来的序列号进行同步,并发送带有LSA头部的DD报文给对端
③ 对端收到新的DD报文后,发现序列号和本端的序列号一致,于是进入Exchange状态,并选举自己为Mater
注1:当两端设备MTU不一致,将一直停留在Exstart状态。华为默认不检查MTU值,如果发送的MTU数值超出对端的最大MTU并且不分片,送往对端将会被丢包
注2:如果一端认为自己为Slave,立刻发送带有LSA header的DD报文,Seq Number为Mast起始的Seq Number,在每次交互中,只有Mast会主动增加Seq Number
注3:如果两端的DD个数不一样,如果一端发送完毕,另一端继续发送,此时一端会使用空DD报文进行回复确认
(3)MTU检测不通过问题:
如果华为设备开启了MTU检测,并且两端MTU不一致,会有以下情况
① 只有一端开启MTU检测:
如果两端MTU不一致,只有单边开启MTU检测是不会影响邻居建立的,两端都会到Full状态
华为HCIE R&S笔记-17OSPF收敛过程

① AR1开启MTU检测,AR2没有开启MTU检测
② AR1发送DD报文,MTU值为1400,AR2由于没有开启MTU检测,所以不会查看该值,直接通过
③ AR2发送DD报文,由于设备不检测MTU值,所以DD报文中的MTU值为0,AR1收到此DD报文,检测MTU值,发现值为0,小于自身接口的MTU值,通过检测,进入下一状态
② 如果两端开启MTU:
a)Master端的MTU小于Slave端的MTU:
华为HCIE R&S笔记-17OSPF收敛过程

AR2(Master)发送DD报文,MTU值为1500,AR1(Slave)收到此报文,检测MTU,MTU值大于当前接口的MTU,检测不通过,停留在ExStart状态
AR1(Slave)发送DD报文,MTU值为1400,AR2收到(Master)收到此报文,检测MTU,MTU值小于当前接口的MTU,检测通过,但是收不到Slave发送过来的确认报文,所以卡在ExStart状态
b)Master端的MTU大于Slave端的MTU:
华为HCIE R&S笔记-17OSPF收敛过程

AR2(Master)发送DD报文,MTU值为1400,AR1(Slave)收到此报文,检测MTU,MTU值小于当前接口的MTU,检测通过,进入ExChange状态
AR1(Slave)发送DD报文,MTU值为1500,AR2收到(Master)收到此报文,检测MTU,MTU值大于当前接口的MTU,检测不通过,卡在ExStart状态
6. Exchange:
主从关系确立后,进入Exchange状态,开始正式交换交换DD报文内容,当将所有的DD报文发送完毕后,发送一个空的DD报文,将M位置为0,表明DD报文已发送完毕,并进入Loading状态
7. Loading:
发送LSR,通过更新LSU,LSACK报文,交换相互缺少的LSA报文,完成LSDB的同步。
注:卡在Loading状态的原因huawei设备不检测MTU,有可能发送LSU报文超出接收路由器接口的MTU,所以设备会丢掉此LSU报文,由于一直得不到LSACK回复,卡在Loading状态,如果在规定时间内没有收到相应的确认报文,会在重传30次,默认重传间隔为5S,在30次之后没有收到确认,断开邻居关系
使用命令[Huawei-GigabitEthernet0/0/0]ospf timer retransmit 10修改重传间隔。
使用命令[Huawei-ospf-1]retransmission-limit 10修改重传次数
8. FULL:
同步完成后,建立邻接关系。并且每隔一段时间周期的发送Hello报文,每隔30min发送一次完整的LSDB中的LSA报文。
9. 泛洪新LSA:
① 在广播网络中,当网络中出现新的路由器,泛洪新的LSA时,此时路由器只需要发送目标地址为224.0.0.6的LSU报文给DR,由DR重新泛洪目标地址224.0.0.5的LSU报文给所有的路由器
② 在点到点链路上,当网络中出现新的路由器,泛洪新的LSA时,此时路由器会直接发送目标地址为224.0.0.5的LSU给对端设备

上一篇:IP协议——IP分割处理与再构成处理


下一篇:【苹果推】证书imessage继续APNS文件暗码庇护