OSPF: 开放式最短路径优先协议
无类别链路状态IGP动态路由协议;
支持等开销负载均衡;
基于组播进行更新—224.0.0.5、6
支持触发更新,每30min一次周期更新
一、OSPF 的数据包类型:
1、 Hello 用于邻居的发现,关系建立和周期保活;每台设备必须拥有唯一RID;
2、 DBD 数据库描述 用于携带本地数据库的目录
3、 LSR 链路状态请求 在查看完对端邻居的DBD后,基于本地未知的LSA信息查询
4、 LSU 链路状态更新 用于携带各种的LSA信息
5、 LSack 链路状态确认 用于确认接收到对端的信息(确认收到的DBD/LSU)
二、 状态机 :
Down 一旦本地启动OSPF协议,并发出hello包及可以进入下一个状态机;
Init 初始化 本地接收到的hello包中,若邻居字段出现本地的router-id,进入下一个状态;
2way 双向通讯 邻居关系建立的标志,双方互相认识,拥有对端的router-id;
条件:1)点到点网络直接进入下一个状态
2)MA网络将进行DR/BDR选举;非DR/BDR之间不能进入下一个状态;
Exstart 预启动 :邻居间使用不携带数据库目录信息的DBD包进行主从关系的选举;RID数值大为主;主优先进入下一个状态机;避免同一时间的收发导致网塞;
Exchange 准交换 邻居间使用DBD共享数据库目录;需要ACK确认;
Loading 加载 查看邻居发送过来的DBD,比对出本地未知的LSA,之后使用LSR询问对端,对端使用LSU来共享这些LSA信息,本地再LSACK确认;
Full 转发 邻接关系建立的标志 邻居间LSBD一致;
三、OSPF的工作过程
启动配置完成后,本地组播224.0.0.5收发hello包;hello包将携带本地的RID值,及本地已知所有邻居的RID值;若接收来来自对端的hello包中,存在本端的RID,那么视为双方认识,邻居关系建立;生成***邻居表***;
邻居关系建立后,条件匹配,匹配失败将停留于邻居关系,仅hello包周期保活即可;若条件匹配成功,可以建立邻接(毗邻)关系;先使用不携带数据库信息的DBD包进行主从关系选举,RID数值大为主;优先共享数据库目录;之后本地在基于对端的DBD来查找到本地未知的LSA信息;之后使用LSR/LSU/LSACK来获取未知LSA信息;最终生成***数据库表***(LSDB—链路状态数据库);
之后本地启用SFP算法,基于本地的LSDB生成有向图,再计算出最短路径树,再基于树形结构,算出本地为起到到达所有未知网段的最短路径,加载于本地的***路由表***;
收敛完成后,hello包周期保活;每30MIN邻接关系再进行DBD的比对,若一致继续保活即可;若不一致将重新收敛;
结构突变:
1、 新增了一个网段 直连新增网段的设备,直接使用更新包告知邻接关系接口;需要ack
2、 断开一个网段 直连断开网段的设备,直接使用更新包告知邻接关系接口;需要ack
3、 无法沟通 hello time10s;dead time 为hellotime的4倍;超过保活时间,删除邻居信息;