天天看点

OSPF-五种报文+七种状态机,还不快快收藏起来!

一、OSPF的五种报文

类型 报文名称 报文描述
1 hello 发现、建立、周期保活邻居、邻接关系
2 DD(Database Description,数据库描述) LSDB中LSA的头部信息(并非完整的LSA信息),也就是本地的数据库的目录(摘要)
3 LSR(Link State Request,链路状态请求) 基于对端发送的DD报文中的未知信息(未知的LSA)向OSPF邻居进行查询
4 LSU (Link State Update,链路状态更新) 用于答复对端的LSR,携带各种的LSA。
5 LSAck (Link State Acknowledgment,链路状态确认) 对从LSU中获取到的LSA进行确认

OSPF的报文头部(24byte):

OSPF-五种报文+七种状态机,还不快快收藏起来!

Hello报文:

OSPF-五种报文+七种状态机,还不快快收藏起来!

DD报文:

OSPF-五种报文+七种状态机,还不快快收藏起来!

LSR报文:

OSPF-五种报文+七种状态机,还不快快收藏起来!

LSU报文:

OSPF-五种报文+七种状态机,还不快快收藏起来!

LSAck报文:

OSPF-五种报文+七种状态机,还不快快收藏起来!

二、OSPF的七种状态机:

状态机名称 状态机描述
Down(失效) 该状态还没有进行hello包的收发,一旦进行hello的收发,则进入下一状态
Init(初始化) 接收到的hello包中并不存在本地的route-id,但是会将发送该hello包的邻居置为init状态,此时双方并没有建立双向通信,随着双方互相收发hello包,于是才会进入下一状态
2-way(双向通信) 接收到的hello包中存在本地的route-id,则双方就会进入2-way双向通信状态。该状态也是OSPF最稳定的状态之一,它标志着邻居关系的建立,同时也是邻接关系建立的基础
Exstart(预启动) 使用类似hello的DD报文进行主从关系(Master/Slave)选举,route-id数值大为主,优先进入下一状态。此时的DD报文是空的。
Exchange(准交换) 使用真正的DD报文进行数据库目录的共享
Loading (加载) 使用LSR、LSU、LSAck去获取未知的LSA信息(LSDB同步)
Full(全毗邻) 邻接关系建立的标志,此时不再进行LSDB的同步

三、OSPF的工作过程

224.0.0.5:指的是所有OSPF路由器所使用的组播地址;

224.0.0.6:指的是所有OSPF DR路由器所使用的组播地址。

(1)在启动宣告配置之后,OSPF路由器会使用组播224.0.0.5进行OSPF hello包的收发;若接收到的hello包中存在本地的route-id,则建立邻居关系,生成邻居表;

之后基于表中所有的邻居进行条件的匹配,匹配失败则将维持邻居关系,仅hello包周期保活即可;

(2)匹配成功者之间可以建立邻接关系;邻居间使用DD数据包进行数据库目录的比对;之后使用LSR查询目录中未知的LSA信息,对端使用LSU来携带传递LSA,最终需要LSAck进行接收确认;

当本地收集到区域内所有设备的LSA信息后,生成LSDB—链路状态数据库表;