OSPF(Open Shortest Path First)是IETF组织开发的一个基于链路状态的内部网关协议(Interior Gateway Protocol)。
目前针对IPv4协议使用OSPF Version 2,针对IPv6协议使用OSPF Version 3。
在OSPF出现前,网络上广泛使用RIP(Routing Information Protocol)作为内部网关协议。由于RIP是基于距离矢量算法的路由协议,存在着收敛慢、路由环路、可扩展性差等问题,所以逐渐被OSPF取代。
OSPF数据包
OSPF中对路由信息的描述都是封装在链路状态通告LSA(Link State Advertisement)中发布出去的.
OSPF用IP报文直接封装协议报文,协议号为89。
- Hello包:周期性发送(10s),用来发现、建立、保活邻居关系。
- DBD包(Database Description packet):描述本地的LSDB摘要信息(本地数据库目录),用于两个设备的数据库同步。
- LSR包(Link State Request packet):用于向对方请求所需(未知的)的LSA,设备只有在邻居双方成功交换DBD包后都会发送LSR包。
- LSU包(Link State Update packet):用于共享具体的LSA信息。
- LSAck包(Link State Acknowledgment packet):用于确认收到的LSA。
OSPF路由计算
OSPF协议路由的计算过程可简单描述如下:
1.建立邻接关系。两端设备通过以下步骤建立邻接关系:
本端设备通过接口向外发送Hello报文与对端设备建立邻居关系。
两端设备进行主/从关系协商和DD报文交换。
两端设备通过更新LSA完成链路数据库LSDB的同步。2.路由计算。OSP