一、关于OSPF的相关知识

OSPF(开放式最短路径优先协议),是无类别的链路状态IGP协议,跨层封装协议,协议号为89;组播更新地质为:224.0.0.5/6。DR/BDR的专用地址为:224.0.0.6.其是基于拓扑选路的,需要结构化的部署(区域划分和地址规划),具有触发更新的机制,30分钟周期的更新时间,存在hello包及ACK机制,其周期的意义在于预防更新量大时部分信息的同步失败OSPF的数据包被封装到IP的报头。
数据存在5种类型:1,HELLO包,用于邻居(领接)的发现、关系的建立以及保活;2,DBD:数据库描述表;3,LSR:链路状态请求;4,LSU:链路状态更新;5,LSack:链路状态确认。
其他:LSA 链路状态通告 在不同条件下产生的不同类别的拓扑或者路由信息;LSU包来携带和传递不同类别的LSA信息
	LSDB;链路状态数据库--所有的LSA集合
	OSPF的收敛:LSA洪泛、LSDB同步--这两个词汇实在描述OSPF的收敛行为;

二、OSPF的工作机制

**1、OSPF的状态机——两个OSPF是如何建立关系的**
DOWN;一旦本地发出ospf的hello数据包,就进入了下一个状态;
Init初始化;若接收到hello包中存在本地的RID,进入下一个状态;
2way双向通信:邻居关系建立的标志
条件匹配:点到点网络直接进入下一个状态。MA网络将进行DR/BDR选举,所有的非DR/BDR间不能进入下一个状态。
Exstart预启动;使用类似HELLO包的DBD来进行主从关系选举,RID大为主,优先进入下一个状态。
Exchange准交换:使用真正的DBD包来进行数据库目录的共享;需要ACK确认;
Loading加载:使用LSR/LSU/LSack来获取未知的LSA信息;
Full转发:领接关系建立的标志。
**2、OSPF的工作过程:**
启动配置完成后,领居间使用hello包建立邻居关系,生成邻居表;
邻居关系建立后,邻居进行条件的匹配,匹配失败将一直为邻居关系,仅hello包周期保活即可;
条件匹配成果后可以建立为邻接关系,领接关系间需要先使用DBD来交互拓扑的目标;
然后在查看完其他邻居的DBD后,使用LSR包来询问本地不拥有的LSA信息;对端使用LSU包来携带回复LSA;本地需要可靠性保障,使用LSack信息,对端使用LSU包来回复LSA;本地生成LSDB--链路状态数据库--数据库表;
再然后本地基于LSDB计算本地到达所有未知网段的最短路径,将其加载到路由表中;收敛完成。
*3,结构突变*
1,新增或断开时,直连新增或断开的网段的设备使用DBD来告知本地所有的邻接,之后邻接通过LSR/LSU/LSack来确定。
2,无法沟通时,dead time 到时时,断开邻居关系,能否重建,勘是否可以进行所有的状态机;