一、动态路由协议
动态路由协议,用在多个 Router 之间定期的、自动的、互相交换 Routes(路由信息,包含了网段信息、可达性信息、路径信息等),动态生成 Routing Table Entries,并最终达到全网的路由收敛,即:理想情况下,一个 Router 总是能够知道到达 IP Packets 的目标网络对应的下一跳应该如何转发。并且即便网络上的某个 Router 出现了故障,但只要有一个可绕行的其它路径,那么其他 Router 的 Table 就会自动设置,并选择一个可达的路径。
二、动态路由协议的基本工作原理
简而言之,动态路由协议就是 Routers 之间用于交换、计算和维护路由表的协议,其基本工作原理包括 4 个阶段:
- 邻居发现阶段:运行了相同动态路由协议的 Routers 之间,首先需要建立一个用于交换 Routes 的对等点关系,这些 Routers 又称为 Neighbor Routers(邻居路由器)。
- 路由交换阶段:发现邻居后,每个 Router 会主动通过广播或单薄的方式把自己的 Routes 发送给 Neighbor Routers。经过一段时间后,每个建立了对等点关系的 Routers 都拥有了整网的路由信息。
- 计算路由阶段:每台 Router 都会自身的配置,运行各自的路由算法,计算出最终的路由表/树。
- 维护路由阶段:为了感知突发的网络故障(例如;设备故障或线路中断等),Neighbor Routers 之间会发送周期性的心跳包,当心跳包超时时,就会认为邻居关系失效。此时 Router 需要自动维护路由表的更新,将故障路径移除。
三、动态路由协议的类型
1、从应用场景角度划分
- IGP(Interior Gateway Protocol,内部网关协议):作用于同一个 AS(Autonomous System,自治系统)内部的动态路由协议。在 AS 内的所有 Routers 之间交换 Routes,用于实现 AS 内部的 Routers 之间的三层路由可达性。例如:RIP、OSPF、I-BGP 协议。
- EGP( Exterior Gateway Protocol,外部网关协议):作用于不同 AS 之间的的动态路由协议。在不同 AS 之间的 Edge Routers(边界路由器)之间交换 Routes,用于实现 AS 之间的路径选择,所以也称为路径控制路由。例如:E-BGP 协议。
2、从技术实现角度划分
- Distance Vector(距离矢量类型):是一种基于 “距离" 和 “方向" 的动态路由协议,如下图所示。该类型的路由协议有:RIP、BGP。 1. 距离:指示了到达目的网络的度量值,即:所要经过路由器的个数。 2. 方向:指示了到达目的网络的下一跳设备。
- Link State(链路状态类型):是一种基于 LSDB(链路状态数据库)的动态路由协议。LSDB 中存储了 一张完整的网络拓扑图,绘制拓扑图的步骤如下。该类型的路由协议有:OSPF、ISIS。
- LSA(Link State Advertisement,链路状态通告)泛洪:LSA Msg 中包含了 Router 已知的接口状态、接口 IP 地址、网络掩码、路由开销、网络类型等信息。每台 Router 都会将关于自身的本地直连链路的状态信息,以及将关于所有直连邻居的路由信息都宣告出去。
- LSDB(Link State Database,链路状态数据库)建立:收到 LSA Msg 的 Router 都会根据 LSA 提供的信息建立本地的 LSDB,知道收敛后,网络中的所有的 LS Router 都应该具有了相同的 LSDB。
- 建立最短路径树:Router 在 LSDB 的基础上使用最短路由优先算法进行路由计算,得到一棵以自己为 Root(根)的、无环路的、可到达每个网络的最短路径树。
- 路由计算:通过最短路径树得出到达每个目的网络的最优 Routes,并将这些 Routes 加载到 Routing Table 中。
可见,我们可以简单的理解为:Distance Vector 类型 Routes 提供的是 “路标”,那么 Link State 类型 Routes 提供的就是 “地图”。
四、常见的动态路由协议
1、RIP(IGP、距离矢量类型):是最早期的路由协议,为小型 IGP 网络提供。
- 配置简单;
- 网络收敛慢;
- 用于小型网络,现在常见于实验室环境。
2、OSPFv3 和 ISIS(IGP、链路状态类型):为大中型 IGP 网络提供。
- IGP 整网地图绘制,可以精确的知道网络中每一条链路的状态,例如:状态是 UP 还是 Down,链路的相对带宽大小是多少等等。以此来保证了无环路,
- 使用最短路径优先算法来计算到达所有目的网络的最佳路径。
- 缺点在于分享的信息太多、太精确,安全性缺失,计算芯片负载高。
3、BGPv4(IGP、EGP、距离矢量类型):最初为 EGP 广域网络提供,后来也可用于大型 IGP 网络。
- 作为 EGP 时,使用 AS 的数量作为距离度量单位,而不是使用 Router 的数量。
- 有强大的路径控制功能,例如:路由策略、路由过滤,可以对广域网的流量实现优化与调度。
- 设计之初,就是用于容纳超大容量的路由条目。
五、动态路由协议的性能指标
不同的动态路由协议,具有有不同的特点。常规的性能指标如下:
- 协议的路由计算正确性:杜绝出现路由环路。由于 Link State 类型具有整网地图,所以比 Distance Vector 类型更优。
- 协议的路由收敛速度:整网路由器的路由表快速达到一致的状态。收敛速度越快,就意味着当网络拓扑结构发生变化时,路由器能够更快的感知到,并及时更新相应的路由信息。
- 协议所占的系统开销:运行路由协议所占用的路由器系统资源,例如:CPU 、内存等。Link State 类型的开销大于 Distance Vector 类型。
- 协议适用的网络规模:OSPF 的实现机制限定了其可以应用在几百台路由器的中大规模网络场景中;而 BGP 理论上能够管理全世界所有的路由器,其所管理的网络规模大小只受系统资源的限制。