OSPF 状态机制详解 (使用的包,状态的切换,导致状态卡住的原因)

一、OSPF 消息数据包

  1. Hello : 为建立邻居进而建立邻接关系提供保障(维持邻居关系)数据非常小
    周期10s 死亡40s
  2. DBD : 数据库描述,发送LSA 目录
  3. LSR : 链路状态请求,请求某些LSA信息
  4. LSU : 链路状态更新,发送LSA信息
  5. LSACK : 链路状态确认,进行确认

二、OSPF状态机

在这里插入图片描述
  如图,在R1 R2之间运行OSPF协议,首先激活R1 与R2之间的接口,接口一激活将周期性的发送Hello报文,周期时间10s或30s,发送的周期间隔与接口封装无关,主要与OSPF接口网络类型(工作模式)有关。

  只要接口一旦发送Hello报文,接口将进入第一个正常状态Init初始化状态,Hello报文包含很多信息,其中有Router ID(路由器标识符,确保本路由器在OSPF中的唯一性),R1发送包含自己Router ID的Hello 报文,对端R2收到后开始检测收到的Hello报文中所包含的信息与自己的OSPF信息是否匹配,检测成功后R2也将发送Hello报文(因为接口一激活就会发送Hello报文,所以检测不成功也会发送Hello报文),R2同意接受R1 发来Hello包中的条件信息,则在Hello包中加入R1与R2的Router ID (R1的Router ID是以Active neighbor 的形式写入)。

  此时R2进入Init 状态,R1收到的Hello报文包含R2的Router ID 还包含了自己的Router ID,路由器检测到Hello包中含有自己的Router ID时,将立刻从Init转为Two-way 双向通信状态(邻居关系建立)。

  R1再次给R2发送Hello包,包含了R2与R1的Router ID,R2收到后检测到Hello包中含有自己的Router ID,也进入Two-way状态。

  当双方都进入Two-way状态之后,将进行DR的选举,一开始进行主从选举时,接口状态就由Two-way 进入Exstart预启动状态,确认谁先发谁后发。

  选举出DR后,开始发送DBD报文(数据路描述报文),注:第一次发送的DBD报文中没有LSA信息,其作用是主从选举(主:Master 从:Slave),选出一主一从(设R1为主R2为从)

  R1将先学习R2的LSA信息,R2后学习R1的LSA信息(Exstart状态还有MTU协商的功能,若两端路由器MTU不一致将卡在Exstart状态),主从选举结束后,R1 R2开始互相发送第二种携带本路由器所有LSA目录摘要的DBD报文,此时接口进入Exchange状态(预交换)

  路由器R1率先发送LSR(链路状态请求)针对不清楚的LSA的目录发出有针对性的链路状态请求,此时R1接口进入Loading加载状态,从路由器R2回复LSU(携带完整信息),进入Loading加载状态,并发送LSR,主R1再回复LSU(LSU需要LSACK进行确认,DBD与LSR为隐式确认)当R1 R2都把对方的LSA目录中的LSA全部学习完,R1 R2都将进入Full邻接状态。

  Down关闭状态在邻居和邻接关系建立的过程中默认情况下是不得出现的,但是在双方发送Hello包进入Init状态时,Hello包协商不成功则会返回到Down状态,或者双方邻居已经建立完成,发送DBD进行MTU协商时MTU不一致将卡在Exstart状态,卡在Exstart状态一段时间后会返回到Down状态;

  或者已经建立邻接关系,由于某些原因出现故障也会返回到Down状态,在Down状态也会发送Hello包,但是周期为120s的轮循时间(poll interval),一旦收到对方正常的Hello包,自己的Hello包时间就会立刻变快,若对方发送的Hello包一直有问题或者不一致,将持续在停留在Down状态,没有选举将卡在Two-way 状态,LSA加载不完全会卡在Loading加载状态。

  并不是说任意两个运行OSPF的路由器都能建立邻接关系,有些情况下只能建立邻居关系,有些情况下可以建立邻接关系,或者说都建立了邻居关系,在有些链路中肯定会发展为邻接关系的,而在有些链路中,就只能停留在邻居关系上

三、总结一下导致卡住状态的原因:

  1. 双方拥有相同的ROUTERID
  2. 认证失败
  3. 区域id不同
  4. 特殊区域标识不一致
  5. DR优先级都为0时
  6. MTU不一致
  7. 包的交互问题(交互不完整)
  8. LSA加载不完全
  9. Hello包出现问题
  10. MA网络掩码不一致
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值