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