1.OSPF的数据包
hello包——周期性的发现,建立以及保活邻居关系
hello时间 --- 10S
死亡时间 --- 4倍的hello时间 --- 40S
RID --- 1,全网唯一;2,格式统一---- 格式要求和IP地址一样,由32位二进制构成,使用点分十进制来表示。
1,手工配置:仅需要满足以上两点要求即可
2,自动生成:1,如果设备存在环回接口,则选择环回接口中最大的IP地址作为RID
2,如果没有环回接口,则将取物理接口中最大的IP地址作为RID
2,DBD包——数据库描述报文 ---- LSDB(链路状态数据库) ---- 携带的是数据库的摘要信息
3,LSR包—— 链路状态请求报文--- 基于DBD包请求未知的LSA信息。
4,LSU包——链路状态更新报文--- 真正携带LSA的数据包
5,LSACK包——链路状态确认报文--- 确认包
OSPF存在30min一次的周期更新
2.OSPF的状态机
条件匹配: 如果条件匹配成功,则将进入后面的状态,如果条件匹配失败,则只能停留在邻居关系,仅使用Hello包进行周期的保活。
主从关系选举 --- 使用末携带数据的DBD包进行主从关系选举,谁的RID大,谁为主,为主可以优先获取LSA.
这里之所以使用不携带数据的DBD包而非HELLO包进行主从关系选举,只要是为了和之前的邻居关系进行区分
第一次发送DBD包 隐形
FULL状态--- 标志着邻接关系的建立。---- 主要为了和邻居关系进行区分,邻居关系仅能通过Hello包进行周期的保活,但是,邻接关系,可以交换 LSA信息。
总结七步:
Down状态--- 发送hello包之后进入到下一个状态
init (初始化)状态 --- 在收到hello包中包含本地的rid,则进入到下一个状态
Two-way (双向通信)状态--- 标志着邻居关系的建立
(条件匹配)---- 如果匹配成功,则进入到下一个状态。如果失败,则停留在邻居关系,仅使用hello包进行周期的保活
Exstart (预启动)状态-- 使用未携带数据的DBD包进行主从关系选举。为主的可以优先获取LSAExchange(准交换)状态--- 通过DBD包共享数据库目录
Loading (加载)状态 --- 基于DBD包中未知的LSA信息,通过LSR/LSU/LSACK来获取
FULL状态--- 标志着邻接关系的建立
3.OSPF的工作过程
启动配置完成后,OSPF向本地所有运行协议的接口以组播224.0.0.5的形式发送hello包。Hello包中包含本地的RID以及本地已知邻居的RID。之居,将建立的邻居关系收集到本地的一张表中 -- 邻居表。
邻居建立完成之后,则进行条件匹配,失败则停留在邻居关系,仅使用hello包进行周期保活匹配成功,则开始建立邻接关系。首先,使用未携带数据的DBD包进行主从关心选举。之后,使用携带数据的DBD包共享数据库目录。之后,基于DBD包中末知的LSA,使用LSR/LSU/LSACK获取。将所有收集到的LSA信息放置在LSDB数据库中,生成第二张表--- 数据库表。
最后,基于收集到的LSA信息,,生成有向图及最短路径树,最终计算到达未知网段的路由信息。将这些信息记录在第三张表--- 路由表。
收敛完成完成后,依然每隔10S使用Hello包进行周期保活。每隔30Min进行一次周期更新。
结构突变
1,突然新增一个网段
2,突然断开一个网段
3.无法通信---40S死广时间