OSPF 开放式最短路径优先协议
无类别链路状态型IGP协议;-- 局域网,企业网,AS内部
基于链路状态进行工作—拓扑(防环),更新量大 – 理论上不适用于大中型企业网
为了在大中型网络中工作 – 需要结构化的部署(区域划分、地址规划、其他优化行为)
触发更新、周期更新(30min) 更新地址:224.0.0.5 224.0.0.6组播
一、数据包类型:
Hello 用于邻居、邻接(毗邻)的发现,建立、周期保活
DBD 数据库描述 – 本地的数据库的目录
LSR 链路状态请求 – 基于本地未知的LSA信息进行查询
LSU 链路状态更新 – 用于传输各种LSA信息
LSack 链路状态确认 – 确认收到的DBD/LSU;
OSPF数据库扩展封装于3层报头;协议号89 ;
标准报头格式如上图;其中类型号1-5对应OSPF的5种包;不同种类的数据包基础报头一致,在data处不同(各自的信息;)
二、状态机 :
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包,建立邻居关系;生成邻居表;邻居关系建立,基于网络类型来决定是否可以尽力为邻接关系;
点到点网络间,因为一个网段只能存在两个节点,正常必然建立为邻接关系;
MA网络中,因为网段内节点的数量不确认,导致所有两两间均建立为邻接关系的话,可能出现大量重复更新,需要进行DR/BDR选举,默认非DR/BDR间只能保存为邻居关系,仅hello包周期保活即可; 其他情况均建立为邻接关系;
确定两台设备可以建立邻接关系后;
先DBD主从关系,RID数值大为主,可以优先共享数据库目录,避免同一时间的更新导致网络拥塞;之后使用携带目录的DBD来同步LSDB;过程中需要使用LSR/LSU/LSack来获取未知的LSA信息;
当数据库