OSPF工作过程
说到ospf工作过程我们还不如先大致谈一谈ospf的一些基本知识点,首先呢ospf是一个无类别链路状态路由协议,为什么说它是一种无类别、链路状态路由协议呢?首先它当然是携带掩码的,其次它传递的LSA(链路状态通告),LSA中包含了路由信息和拓扑信息,所以就说它是一种无类别的链路状态型协议,那么我们再来看看OSPF是怎么更新的吧!它是通过组播更新的并且更新地址为224.0.0.5/6,它的更新方式有触发更新以及30分钟的周期链路刷新。回想一下,它既然有了触发更新为什么还要进行30min的周期链路刷新呢?它这样做当然是为了弥补触发更新(触发更新就是网络结构发生了变化所进行的更新)。ospf跨层分装到网络层协议号为89.那么接下来就说一下数据包吧!
一、数据包---5种基本数据包
HELLO---邻居的发现、建立、保活
DBD-----数据库描述包---数据库目录信息
LSR-----链路状态请求
LSU-----链路状态更新---携带各种LSA
LSACK---链路状态确认
二、OSPF的状态机
Down:本地一旦发出hello包,进入下一状态
Init初始化:本地接收到的hello包中若存在本地的RID,进入下一状态
2way双向通信:邻居关系建立的标志
条件匹配:点到点网络直接进入下一个状态;MA网络将进行DR/BDR选举(40s),非DR/BDR间不能进入下一个状态;
Exstart预启动:使用类hello的BDB包进行主从关系选举,RID数值大为主,主从优先进入下一个状态。
Exchange准交换:使用真正的BDB进行数据库目录的共享,需要ACK;
LOding加载:使用LSR/LSU/LSack来获取未知的LSA信息;
Full转发:邻接关系建立的标志;
三、OSPF工作过程
1、启动配置完成后,本地收发hello包,建立邻居关系,生成邻居表;
2、再进行条件的匹配,匹配失败将停留于邻居关系,仅hello包保活即可;
3、匹配成功者之间建立邻接关系,需要DBD共享数据库目录,LSR/LSU/LSack来获取未知的LSA信息,当收集完网络中所有的LSA后,生成数据表--LSDB
4、LSDB建立完成后,本地基于OSPF选路规则,计算本地到达所有未知网段的最短路径,然后将其加载到路由表中,完成收敛。
5、收敛完成后--hello包周期保活--30分钟周期的BDB比对,若不一致将会使用LSR/LSU/LSack重新获取
四、结构发生变化
1、新增网段---直连新增网段的设备使用BDB告知邻居,邻居再使用LSR/LSU/LSack来获取
2、断开网段---直连断开网段的设备使用BDB告知邻居,邻居再使用LSR/LSU/LSack来获取
3、无法沟通---deadtime计时到后,邻居关系断开,删除所有从该邻接处学习到的所有LSA信息
以上就是ospf的大致工作过程,其中可总结为“三表五包七状态”