毒药反例

网络工程 路由 协议理论
2021-07-20 00:50:04

你能举个例子,什么时候真的需要毒物逆转?

距离矢量路由协议使用带毒物反向的水平分割来最小化路由不再可用时的收敛时间。问题是我想不出一个例子,当毒物逆转实际上是有用的。

2个回答

我能找到的唯一有用的示例是多路访问路由段(点对多点帧中继或具有 >2 个路由器的以太网段)。

无论是RIP RFC(第2.2.1节),思科的EIGRP文档瞻博网络的RIP文件的所有节目多路访问的例子。Cisco 的 EIGRP RFC 没有详细说明它的水平分割或毒物逆转实施。

---编辑以删除以前的错误信息---

考虑以下拓扑:

               A
             / |
Internet -- S  |
             \ |
               B

使用 RIP,S 宣布 (0.0.0.0/0, 0),A 和 B 都宣布 (0.0.0.0/0, 1)。

现在假设路由器 S 出现故障。进一步假设您不走运,并且 A 和 B 都将它们的下一跳相互切换——它们创建了一个路由循环。

  • 对于普通的 Bellman-Ford,A 和 B 无法及时摆脱循环——他们需要数到无穷大;
  • 在水平分割的情况下,A 和 B 立即停止向彼此宣布默认路由——一旦路由超时,它们就会摆脱循环;
  • 使用毒性反向,A 和 B 相互宣布无限度量默认路由,一旦成功传输更新,就摆脱了路由循环。

请注意,毒物反向有一个缺点——它增加了更新的大小,有时会显着增加(尤其是来自存根路由器)。进一步注意,毒物逆向只能去除大小为 2 的循环——为了及时去除较大的循环,您需要一个可行性条件,如在 EIGRP 或 Babel 中。