点击跳转 OSPF协议基础,工作过程,状态机
背景
- RIP是基于距离矢量算法的路由协议,应用在大型网络中存在收敛速度慢、度量值不科学、可扩展性差等问题。
- IETF提出了基于SPF算法的链路状态路由协议OSPF(Open Shortest Path First)。通过在大型网络中部署OSPF协议,弥补了RIP协议的诸多不足。那么OSPF协议是如何实现的呢?面对网络扩展的需求,又该如何应对呢?
大型网络所发生的变化
- 网络规模扩大:
- 企业新业务层出不穷,且业务呈现大集中趋势,使得网络规模不断扩大。
- 网络可靠性要求提高:
- 各种应用程序对网络可靠性要求越来越高,网络发生故障后,需要在更短的时间内恢复正常。
- 网络异构化,多厂商设备互联需求:
- 在日常的运营维护中,硬件设备不断升级或更新,不同设备之间性能差异较大,设备间互连链路带宽也存在一定的差异。
- 需要一种各厂商均支持的开放路由协议。
- 面对越来越高的要求与挑战,如果通过RIP来部署,会遇到什么问题?
RIP在大型网络中部署所面临的问题
RIP特性 | 带来的问题 |
---|---|
逐跳收敛 | 收敛慢,故障恢复时间长 |
传闻路由更新机制 | 缺少对全局网络拓扑的了解 |
最多有效跳数为15 | 环形组网中,使远端路由不可达 |
以“跳数”为度量 | 存在选择次优路径的风险 |
- 逐跳收敛:
- 如图所示,N1网络发生变化,RTA向RTB发出更新,RTB收到更新之后进行本地计算,完成计算后再向RTC发送路由变化通知,如此循环。逐跳收敛的方式,造成了网络收缓慢的问题。
- 传闻路由更新机制:
- RIP在计算路由完全依赖于从邻居路由器收到的路由信息,RTE仅依靠从RTD获取的信息计算路由,对RTA、RTB和RTC之间的网络情况并不了解。RIP在计算路由时,缺少对全局网络拓扑的了解。
- 以“跳数”为度量:
- 因为RIP基于跳数的度量方式,所以N1与N2网络互访时会选择RTA->RTB->RTD->RTE作为最优路径。显然RTB->RTC->RTD之间的以太链路要比RTB->RTD的串行链路带宽要高的多。
- 针对RIP遇到的问题,可以通过什么方式优化或者解决?
如何解决RIP的问题
RIP的问题 | 优化或解决的方式 |
---|---|
收敛慢,故障恢复时间长 | “收到更新->计算路由->发送更新” 改为“收到更新->发送更新->计算路由” |
缺少对全局网络拓扑的了解 | 路由器基于拓扑信息,独立计算路由 |
最多有效跳数为15 | 不限定跳数 |
存在选择次优路径的风险 | 将链路带宽作为选路参考值 |
- 在 “收到更新”、“计算路由”、“发送更新”的路由收敛过程中,RIP的局限性在于路由器需要在完成路由计算之后才可以向邻居发送路由变化通知。如果将这个过程调整为:“收到更新”、 “发送更新”、“计算路由”,即路由器从邻居收到路由更新后立刻向其他邻居路由器转发,然后再本地计算新的路由。这样的收敛方式可以大大降低全网路由收敛的时间。
- 因为RIP路由器仅从邻居路由器获取路由信息,所以对于非最优或者错误路由信息,RIP路由器并不能识别或屏蔽。解决此问题的关键最佳方式是路由器收集全网的信息,并基于这些信息独立计算路由。
- 基于跳数的度量方式并没有考虑数据包的链路转发延迟,如果采用以累积带宽为选路参考依据,可以更好的规避选择次优路径的风险。
- 与RIP这种距离矢量路由协议不同的链路状态路由协议是以怎样的方式来解决上述问题的呢?
链路状态路由协议OSPF
路由信息传递与路由计算分离。
基于SPF算法。
以“累计链路开销”作为选路参考值。
- 所谓Link State(链路状态)指的就是路由器的接口状态。在OSPF中路由器的某一接口的链路状态包含了如下信息:
- 该接口的IP地址及掩码。
- 该接口的带宽。
- 该接口所连接的邻居。
- ……
- OSPF作为链路状态路由协议,不直接传递各路由器的路由表,而传递链路状态信息,各路由器基于链路状态信息独立计算路由。
- 所有路由器各自维护一个链路状态数据库。邻居路由器间先同步链路状态数据库,再各自基于SPF(Shortest Path First)算法计算最优路由,从而提高收敛速度。
- 在度量方式上,OSPF将链路带宽作为选路时的参考依据。 “累计带宽”是一种要比“累积跳数”更科学的计算方式。
- RIP在大型网络中部署所面临的问题,OSPF都有相对应的解决办法,接下来详细地介绍下OSPF的实现过程。
OSPF的工作过程
- 企业网络是由众多的路由器、交换机等网络设备之间互相连接组成的,类似一张地图。由于众多不同型号的路由器、不同类型的链路及其连接关系,造成了路由计算的复杂性。
- OSPF的路由计算过程可以简化描述为:
- 路由器之间发现并建立邻居关系。
- 每台路由器产生并向邻居泛洪链路状态信息,同时收集来自其他路由器链路状态信息,完成LSDB(Link State Database)的同步。
- 每台路由器基于LSDB通过SPF算法,计算得到一棵以自己为根的SPT(Shortest Path Tree),再以SPT为基础计算去往各目的网络的最优路由,并形成路由表。
点击跳转 OSPF协议基础,工作过程,状态机