简介
开放式最短路径优先OSFP是IETF组织开发的一个基于链路状态的内部网关协议(IGP)
链路状态路由协议:
- LASs的泛洪:运行链路状态路由协议的路由器,彼此之间交互的就不是路由信息了,而是LAS(链路状态通告)
- LSDB的维护:每台路由器将搜集到的LASs放入自己的LSDB(链路状态数据库)存储起来。有了LSDB,路由器相当于掌握了全网的拓扑
- SPF计算:每台路由器基于LSDB,使用SPF(最短路径算法)进行计算,得到一个以自己为根、覆盖全网的一颗无环的树
- 维护路由表:每台路由器根据SPF的计算结果,将路由器加载进路由表
基本特点
OSPF作为基于链路状态的协议,能够解决RIP所面临的诸多问题。此外,OSPF还有以下 优点:
OSPF采用组播形式收发协议报文,这样可以减少对其它不运行OSPF路由器的影响
OSPF支持无类型域间选路(CIDR)
OSPF支持对等价路由进行负载分担
OSPF支持报文认证
OSPF Cost
- OSPF使用cost"开销"作为路由度量值
- OSPF接口cost=100M/接口带宽,其中100M为OSPF的参考带宽(reference-bandwidth),可以修改
- 每一个激活OSPF的接口都有一个cost值
- 一条OSPF路由的cost由该路由从起源一路到达本地的所有入接口cost值得总和
OSPF的三张表
邻居表
OSPF是一种可靠的路由协议,要求在路由之间传递链路状态通告之前,需先建立OSPF邻居关系,hello报文用于发现直连链路上的其他OSPF路由器,再经过一系列的OSPF消息交互最终建立起全毗邻的邻居关系,OSPF路由器的邻居关系显示在邻居表中
链路状态数据库(LSDB)
OSPF用LSA(链路状态通告)来描述网络拓扑信息,然后OSPF路由器用LSDB来存储网络的这些LSA。OSPF将自己产生的以及邻居通告的LSA搜集并存储在LSDB中。掌握LSDB的查看以及对LSA的深入分析才能深入理解OSPF
OSPF路由表
基于LSDB进行SPF(Dijkstra算法)计算,而得出的OSPD路由表
OSPF报文类型
Hello报文:周期性发送,用来发现和维持OSPF邻居关系
DD报文:描述本地LSDB的摘要信息,用于两台设备进行数据库同步
LSR报文:用于向对方请求所需的LSA;
设备只有在OSPF邻居双方成功交换DD报文后才能会向对方发出LSR报文
LSU报文:用于向对方发送其所需的LSA
LSAck报文:用来对收到的LSA进行确认
OSPF的七种状态
邻居关系的建立(细节)
1 Down状态——在Down状态下,OSPF进程还没有与任何邻居交换信息。OSPF在等待进入Init状态。
2 Init状态——OSPF路由器以固定的时间间隔(缺省10s)发送类型1(Hello)的分组,以便与邻居路由器建立特殊的关系。
3 Two-Way(双向)状态——每台OSPF路由器都使用分组试图与同一个IP网络中的所有邻居路由器建立双向状态或双向通信。Hello分组中含有发送者已知的OSPF邻居列表。当路由器看到它自己出现在一个邻居路由器的Hello分组中时,它就进入了双向状态。
4 ExStart(准启动)状态——当路由器与它的邻居进入到ExStart状态后,他们之间的会话就表征为一种毗邻关系,但这时路由器还没有变成全毗邻状态。ExStart状态是使用类型2的数据库描述