为了详细清晰的了解 OSPF 工作过程,我们已经介绍了 OSPF 的数据包类型、状态机、
我们现在再来详细的概括下 OSPF 的工作过程!!
工作过程
先在设备上 启动配置,启动完成后,OSPF 就会向本地所有运行该协议的接口以组播
224.0.0.5 的形式 发送 HELLO 包, HELLO 包中会携带 本地的RID以及本地已知邻居的
RID 。 之后,将收集到的邻居关系录在一张表里 ---- 邻居表
邻居表后面抓包时给大家看~!! 看看里面有哪些内容!!
邻居关系建立后需要进行条件匹配; 匹配失败则停留在邻居关系,仅使用 HELLO 包进
行保活;
匹配成功,则开始建立 邻接关系;
首先使用未携带数据的 DBD 包进行主从关系选举,之后使用携带数据信息的 DBD 包进
行共享链路状态数据库目录;
之后基于本地未知的 LSA 信息使用 LSR/LSU/LSACK 包 进行获取, 来完成本地数据库
的建立,这个数据库就指的是 链路状态信息数据库 -- LSDB; 会生成 数据库表
最后,基于本地链路数据库中的 LSA 信息,生成有向图,之后使用SPF算法转换成最短
路径树。
之后计算从本地到达未知网段的路由条目,然后将这些路由条目添加到路由表中 ~!
至此,只能说收敛完成~!!
( 所有工作就是为了 将未知网段的路由条目弄到 路由表里去~!!
弄到路由表里数据才能被转发呀~!!)
收敛完成后,还要 HELLO 包进行 10 S 一次周期更新来保活;
还有 30 min 一次的周期更新,来比对数据库( 来保底~!!),要一致那就继续保活,
要不一致则重新进行收敛。
至此,整个 OSPF 的工作过程 全部介绍完毕 ~!!!
我们学习了 整个 OSPF 的工作过程; 那为了更贴近实际,我们提出三个最常见问题,我
们的 OSPF 会怎么应对 ??
# 突然新增一个网段
# 突然断掉一个网段
# 突然无法沟通
无法沟通就是 , 我们不是有 HELLO 包嘛,不是每隔 10 S 发一次 HELLO 包嘛
那也就是说,每隔10 S 我会收到你发来的 HELLO 包,好让我知道 你在~!!
好,那现在,好家伙 无法沟通了
我擦,我收不到你 HELLO 包了, 不是还有一个 dead time 死亡时间( 40 S )
好家伙, 40 S 后 ,还没等到 你的 HELLO 包了, 就是说 收不到你的任何包了。
那就邻居关系断开, 邻居表删除, 有你的东西全删除,由你发的路由圈作废~!
你这就相当于超过 保活时间(40 S ) 了呗, 那就删除邻居信息
===>>>
这个在我们 学习完 OSPF 的基础配置后 ,再讲解~!!