路由污染的目的 路由污染会发生什么?
路由毒化是一种防止路由循环或修复网络中不良路由问题的机制。
当某条路由无效或无法到达时,路由毒化会标记坏路由(或将其毒化),以阻止路由设备通过该路径发送数据包。这样做可以避免不必要的延迟、带宽浪费和不必要的功耗。
路由污染会发生什么?
路由毒化是一种网络方法,它使用无限度量(例如跳数为 16)来阻止路由设备向故障路由发送数据包。此无限度量被分配给故障路由,并显示无效路由中的所有节点都是无限远的。
在将路径标记为不可达后,路由毒化机制会将此信息传播到整个网络,直到网络稳定下来。本质上,该机制会向所有其他网络路由设备通告该路由具有无限跳数。其他运行中的路由器会将无限跳数视为路由失败,并且不会通过无效路由发送数据包。
距离矢量路由和路由环路概述
距离矢量路由 (DVR) 使用路由污染来确保准确、高效的路由更新。DVR 是一种使路由器能够选择最短数据传输路径的算法。
每个路由器都维护一个路由表,其中包含到达网络中的每个路由器所需的距离向量集合(称为跳数)。有各种指标,包括跳数、时间延迟和成本。路由设备通过每个接口通告所有前缀,并通过路由表定期相互更新完整信息。
当接口发生故障、电缆断裂或两台路由器同时提供更新时,DVR 算法就会失效。结果,网络中形成永无止境的路由循环。
路由环路是一种技术错误,其中两个或多个路由器无限期地将同一个数据包转发给对方。这些数据包永远不会到达其目标地址。路由环路会导致不必要的网络延迟并浪费带宽。路由污染将路由环路、无效路径和坏路由归类为故障链路。
路由污染示例
路由信息协议 (RIP) 是网络中最常用的 DVR 算法。它使用跳数作为路由度量,跳数限制表示 RIP 可以支持的网络数量。
数到无穷大的问题
假设一家公司有五台路由器:A、B、C、D 和 E。每台路由器都有网络中其他每台路由器的路由表条目。以下示例列出了四次迭代来解释计数到无穷大的问题。
在此示例中,路由器 E 必须接收一个信息包。此处的表格显示了路由器 E 到网络中其他每个路由设备的距离。路由器 D 通告它可以以最快的速度一跳到达路由器 E。
路由设备 |
A |
B |
C |
D |
跳数 |
4 |
3 |
2 |
1 |
但是,假设 D 和 E 之间的链接由于技术问题而中断。
在路由器 D 从其路由表中删除该链路之前,它注意到其他三个路由器都有到 E 的链路。
现在,路由器 C 显示到路由器 E 的最短路径为两跳。问题是 D 不知道 C 依靠 D 到 E 的链路到达 E。路由器 D 更新路由表以纳入路由器 C 的路由成本。
此处的表格显示了到路由器 E 的更新跳数。
路由设备 |
A |
B |
C |
D |
跳数 |
4 |
3 |
2 |
3 |
在路由器 C 到 E 的路径中,路由器 D 是下一跳。路由器 C 注意到 D 增加了到达 E 的成本,迫使 C 也增加成本。此处的表格显示了路由中更新后的距离。
路由设备 |
A |
B |
C |
D |
跳数 |
4 |
3 |
4 |
3 |
类似地,路由器 B 更新到达路由器 E 的成本。路由器 D 再次更新到达路由器 E 的距离。该过程无限期地继续,表明存在路由循环。此处的表格显示了更新后的路由距离。
路由设备 |
A |
B |
C |
D |
跳数 |
4 |
5 |
4 |
5 |
这是 DVR 算法中一个众所周知的问题,称为“计数到无穷大” 。信息通过网络无限传播,物理上表现为额外的功耗、占用的内存和浪费的带宽。
路由污染解决方案
当 D 到 E 的链路断开时,路由器 D 会通知 E 发生故障。原始路由距离请参阅第一个表格。
使用路由毒化,路由器 D 在跳数部分将值 16 分配给路由器 E,以指示路由失败。下表显示了到路由器 E 的更新距离。
路由设备 |
A |
B |
C |
D |
跳数 |
4 |
3 |
2 |
16 |
RIP 中允许的最大跳数为 15。大于 15 的度量(例如路由器 D 分配给 E 的 16 个跳数)表明路由器不可达。有时,也可以为故障链路分配无穷大度量。路由器 C 收到来自 D 的更新并更新路由,如下所示。
路由设备 |
A |
B |
C |
D |
跳数 |
4 |
3 |
17 |
16 |
最后,路由器 B 和 A 收到更新路由的新成本,如下所示。
路由设备 |
A |
B |
C |
D |
跳数 |
19 |
18 |
17 |
16 |
每次迭代后,污染路由都会在网络中传播。该过程持续进行,直到所有路由器都更新其到达路由器 E 的成本。当路由器 E 被标记为不可达并从路由表中删除以确保正确的成本时,网络达到路由收敛。到达路由器 E 的所有路由均被污染,从而消除了路由环路并稳定了网络。
路由污染的优点和缺点
由于节点故障、拓扑变化或手动配置,路由可能变得无法访问。虽然更现代的网络由于使用链路状态路由协议而通常不使用路由污染,但该机制在部署 DVR 协议的网络中仍然很常用。
以下是与路由毒化相关的一些好处和挑战。
好处
路由毒化的好处包括:
- 性能优化。路由毒化通过限制通过无效路径发送的数据包数量来优化网络性能。它执行路由收敛以确保路由器使用正确且更新的路径。在小型网络中,快速恢复可最大限度地减少停机时间。
- 抑制机制。使用抑制定时器可消除不匹配的信息并防止路由循环。当某条链路发生故障时,运行路由会为该链路分配一个高度量,并在整个网络中通告该度量。在毒害该路由后,运行路由器会进入抑制状态。在此状态下,路由器会暂时忽略与故障链路相关的通告路由成本。
缺点
路由毒化的缺点包括:
- 路由收敛缓慢。在大型网络中,路由收敛需要很长时间。有害路由会增加内存开销。因此,大型网络从链路故障中恢复的速度往往很慢。
- 多路由器故障。如果多台路由器发生故障或多台路由器形成网络环路,路由毒化的效果就会大打折扣。在这些情况下,暂时的网络拥塞和延迟会持续很长时间。
- 互联网黑洞。路由污染会在网络中形成暂时的黑洞。在抑制状态下,路由器可能会拒绝重要更新,从而导致永久性数据包丢失。