概述
• OSPF(Open Shortest Path First,开放最短路径优先)是典型的链路状态路由协议,是目前业内使用最广泛的IGP之一;
•路由器之间交互的是链路状态信息,而不是直接交互路由;
•每台OSPF路由器都知晓网络拓扑结构,采用SPF算法计算达到目的地的最短路径;
•支持VLSM,支持手工路由汇总;
•多区域的设计使得OSPF能够支持更大规模的网络。
• 协议号:89,处于IP字段,没有用到TCP与UDP这2个协议,所以严格来讲OSPF也算是个3层协议。
• 更新方式:触发更新+周期更新(30min)
• 管理距离:110
• 使用组播地址:所有路由器224.0.0.5,DR和BDR:224.0.0.6
OSPF工作原理
OSPF要求每台运行OSPF的路由器都了解整个网络的链路状态信息,这样才能计算出到达目的地的最优路径。OSPF的收敛过程由链路状态公告LSA(Link State Advertisement)泛洪开始,LSA中包含了路由器已知的接口IP地址、掩码、开销和网络类型等信息。收到LSA的路由器都可以根据LSA提供的信息建立自己的链路状态数据库LSDB(Link State Database),并在LSDB的基础上使用SPF算法进行运算,建立起到达每个网络的最短路径树。最后,通过最短路径树得出到达目的网络的最优路由,并将其加入到IP路由表中。
OSPF邻居关系的建立
七种状态
Down
路由器未运行OSPF
Init
路由器收到对方发过来的Hello中没有自己的route-id
2-way
路由器收到对方发过来的Hello中有自己的route-id,表示已经双向通信
如果是广播网络,则等待40s,等所有路由器的hello包都充分交换,最大作为DR,过时不候
Ex-Start
路由器发送空的DBD(链路状态描述信息)用于选举谁来主导整个过程,比较Router-id大
L(置位表示选举未完成)、M(置位表示这不是最后一条消息)、MS(置位表示自己的Master)
Ex-Change
路由器互相交换DBD,(Slave先把自己的DBD发给Master)
比对哪些LSA是自己没有的
Loading
向对方发送LSR请求那些自己需要的LSA
接受对方的LSU,并且回复LSAck确认
Full
完成建立过程
五种报文类型
Hello 建立和维护OSPF邻居关系。
DBD 链路状态数据库描述信息(描述LSDB中LSA头部列表)
LSR 链路状态请求,向OSPF邻居请求链路状态信息
LSU 链路状态更新(包含一条或多条LSA)
LSAck 确认报文
DR、BDR
MA(Mut- Access)多路访问网络有两种类型:广播型多路访问网络(BMA)及非广播
型多路访问网络(NBMA)。以太网是—种典型的广播型多路访问网络(见上图)。
在MA网络中每台SPF路由器需与其他的所有路由器建立OSPF邻居关系,这就导致网络中存在过多的OSPF邻接关系。
当拓扑出现变更,网络中的LSA泛洪可能会造成带宽的浪费和设备资源的损耗。