OSPF是一种典型的链路状态路由协议,一般在同一个路由域中使用。这里的路由域指的是一个自治系统(AS),是指一组通过统一的路由策略或协议相互交换路由信息的网络。在这个自治系统(AS)中,所有的OSPF路由器都维护着同一个描述这个AS结构的数据库,这个数据库里保存着路由域中相应链路的状态信息。OSPF路由器正是通过这个数据库来计算自己的OSPF路由表。
作为一种链路状态路由协议,OSPF将链路状态组播数据LSA(Link State Advertising)传送给某个区域内的所有路由器,这一点与距离矢量路由协议不同,运行距离矢量路由协议的路由器会将部分或全部路由表传递给自己的邻居。
在信息交换的安全性上,OSPF规定路由器之间任何信息交换在必要时都可以进行认证,以保证只有信任的路由器才能传播路由信息。OSPF支持多种认证机制,允许不同区域之间采用不同的认证机制。 OSPF链路状态算法在广播网络(如以太网)中的应用,其优化之处在于充分利用硬件的广播能力来传递链路状态消息。通常,链路状态算法拓扑图中的一个节点代表一台路由器。如果所有k台路由器都连接到以太网,那么当链路状态被广播时,关于这k台路由器的消息数量将达到k的平方。因此,OSPF允许一个节点在拓扑图中代表一个广播网络。每个广播网络中的所有路由器都会发送链路状态消息,以报告网络中路由器的链路状态。
1、工作原理
简单地说,OSPF就是两个相邻的路由器通过发送消息成为邻居,然后邻居之间互相发送链路状态信息,形成邻接关系。之后,每个路由器根据最短路径算法计算出一条路由,放入OSPF路由表中。与其他路由相比,OSPF路由被更好地添加到全局路由表中。整个过程使用了五种消息、三个阶段和四个表。
2、五种消息
Hello消息:建立和维持邻居关系。
DBD消息:发送链路状态头信息。
LSR消息:把从DBD中查到的需要的链路状态头信息发送给邻居,并请求完整的信息。
LSU消息:把LSR请求的头信息对应的完整信息发送给邻居。
LSACK:收到LSU消息后确认。
3、三个阶段
邻居发现:通过发送Hello消息,形成邻居关系。
路由通告:邻居发送链路状态信息,形成邻接关系。
计算:根据最短路径算法计算路由表。
4、四个表
邻居表:主要记录形成邻居关系的路由器。
链路状态数据库:记录链路状态信息。
路由表:从链路状态数据库中获取。
全局路由表:OSPF路由与其他路由进行比较。