OSPF协议基本概念
OSPF的概念分布
RIP、BGP和OSPF的不同
距离矢量路由协议与链路状态路由协议的区别:
- 运行距离矢量路由协议的路由器会周期性地泛洪自己的路由表,更新消息中包含的就是路由信息。
- 路由器无法知悉整个网络的拓扑结构,只能通过路由更新及简单的机制学习路由。
- 运行链路状态路由协议的路由器之间,互相发送的不是路由信息,发的是链路状态信息;
-
为了可靠传输链路状态信息,OSPF有5种报文以及交互机制,使路由器最终能够计算得到路由信息。
距离矢量路由协议与链路状态路由协议的区别-泛洪LSAs
OSPF相关术语
路由器ID(Router-ID) :在AS中唯一标识一台运行OSPF的路由器的ID
- AS(自治系统Autonomous System) :指使用同一种路由协议交换路由信息的一组路由器。
- 每个运行OSPF的路由器都必须有一个RouterID,表现为点分十进制形式(32bits)
- Router-ID可以手动命令配置,也可以系统自动选举(优先Loopback最大IP,其次物理接口最大IP)
邻居(Neighbor):当启动OSPF协议的接口收到其他启用OSPF协议设备的Hello报文时进行参数匹对,如果双方参数一致,就会形成邻居关系
邻接(Adjacency)︰形成邻居关系的双方不一定能成为邻接关系。如果两台路由设备之间交换链路状态信息,并根据更新后的LSDB计算出OSPF路由,才能称为邻接关系
OSPF常用的三张状态表
OSPF邻居建立的三个阶段
邻居发现,形成邻居:(成功的标志:2-Way状态)
- 通过Hello报文发现并形成邻居关系
- 形成邻居表
形成邻接,路由通告:(成功的标志:Full状态,LSDB同步)
- 邻接路由器之间通过LSU洪泛LSA,通告拓扑信息
- 通过DBD、LSR、LSACK辅助LSA的同步
- 最终同一个区域内所有路由器LSDB完全相同
路由计算阶段:
- LSDB同步后,每台路由器独立进行SPF运算
- 把计算出的最佳路由信息放进路由表
OSPF的邻居发现过程
Hello报文
OSPF的邻居发现之链路状态交换过程
DBD报文(数据库描述报文)
OSPF的邻居发现之详细链路状态同步过程
LSR报文(链路状态请求报文)
LSU报文(链路状态更新报文)
LSAck报文(链路状态确认报文)
OSPF的有限状态机
OSPF的路由计算与路由表加载
OSPF的网络类型
- OSPF协议(网络层协议)运行在不同的数据链路层协议上时,将会自动调整接口的OSPF网络类型。
-
路由器接口类型不同,在建立邻接关系时,OSPF路由器执行操作也略有不同。
点到点网络-P2P
广播型多路访问网络-Broadcast
OSPF的DR、BDR机制
OSPF的DR、BDR的选举
非广播多路访问(NBMA与P2MP)
NBMA与P2MP都是属于非广播多路访问网络,但两者之间却有很多不同。OSPF网络类型汇总
OSPF的五种报文
Hello报文
DBD报文
LSR报文
LSU报文
LSAck报文
- 链路状态路由协议与距离矢量路由协议的本质不同在于算法,导致其计算路由的工作原理完全不同
- OSPF使用的是SPF算法,此算法是无环算法
- 运行OSPF协议的路由器之间,通过5种报文通信,传递链路状态信息,最终计算出路由
- OSPF协议(网络层协议)运行在不同的数据链路层协议上时,将会自动调整接口的OSPF网络类型
- DR/BDR的选举机制是为了优化多路访问(Broadcast)环境下LSA的泛洪,节省带宽
OSPF的LSA
OSPF单区域带来的问题
- 同一个区域内所有路由器的LSDB完全相同,收到的LSA通告太多
- 由于SPF算法关注拓扑信息的变化,因此拓扑的变化会引起区域内所有路由器的SPF重新计算
- 区域内路由无法汇总,需要维护的路由表越来越大,资源消耗过多,性能下降,影响数据转发。
划分多区域解决OSPF单区域的好处
- 控制LSA的泛洪范围,将拓扑变化影响限制在区域内
- 减少LSDB中链路状态信息的数量,降低运行OSPF协议对路由器性能的要求
- 可以将相同功能或者地理位置的路由器划分在一个区域,便于管理
- 可以通过路由汇总,减小路由表,隔离拓扑变化,减少路由震荡对整个自制系统与的影响