镜中只有一条路

网络工程 bgp
2021-07-13 18:49:17

我知道只有最佳路径会被通告给 eBGP 邻居,但 iBGP 是这样吗?如果我与两个提供商进行对等连接,我的印象是,与我的两个提供商进行对等连接的任何其他人都会有两条路径到我这里。检查了许多眼镜后,似乎并非如此。

4个回答

BGP 始终只向其对等方通告最佳路径。这适用于 eBGP、iBGP、路由反射(这只是 iBGP 的一个特例)以及您可能使用 BGP 的任何其他方式。

但是,是的,您是对的,如果您向提供商 A 和 B 发送广告,并且我也与提供商 A 和 B 建立了连接和 BGP 会话,那么我应该在我的 BGP 表中看到两条路径。我可能看不到在我的路由表中创建了多条路由……这是我的设备配置的问题,以及我是否允许将具有相同 AS 路径长度的多条路由插入到路由表中……通常 BGP 只会安装一个单一路线。但是,BGP 表应该显示来自两个提供商的广告。

实际上...即使我与提供商 B 和 C,甚至 C 和 D 进行对等互连,只要您可以通过 B、C 和 D 到达,我仍然应该在我的 BGP 表中看到多条路径。所有其他事情都是同样,我的设备应该选择 B,因为那应该是最短的 AS PATH,但我仍然会看到来自 C 和 D 的 AS PATH 较长的路径。现在,也许 C 和 D 都认为通过 A 的路径比通过 B 的路径,那么我将看到的路径将具有“AC”和“AD”的 AS PATH,因此看起来好像您根本没有连接到 B,但是如果通过 A 的路径消失了,那么通过 B 的路径将通过 C 和 D 继续传播。

如果您可以提供一些具体信息……如果您愿意分享,甚至可能是您正在宣传的区块……其他人可以看看我们所看到的内容,并可能提供一些更具体的指导。

这些答案尚未涵盖的一个方面是 BGP“添加路径”,它使 BGP 对等方不仅可以发送其最佳路由,还可以发送其部分或全部替代路由。

这在 iBGP 上最有用(也可能有效),并提供更好的 ECMP。

对于 EBGP,如果您在单个路由器上与同一个对等方有多个会话,您应该使用 BGP“多路径”来允许 ECMP。根据在 SP 网络中路由反射的完成方式和位置,这可能会导致相当均匀地使用所有会话。

这是 Dave Ward(当时在瞻博网络,现在在思科)关于 add-path 的演讲:

http://www.nanog.org/meetings/nanog48/presentations/Tuesday/Ward_AddPath_N48.pdf

通常,BGP 对等方只能向彼此发送一条路径,该路径的任何更新都会替换现有路径。

但是,BGP 有一个扩展,通常称为additional-paths在发送到对等方的每条路由上放置一个标识符,从而使 BGP 对等方能够将多条路由交换到一条路径,从而不仅为您提供更大的流量工程范围,而且在路径撤销的情况下减少收敛时间,因为非最佳路径前缀可以安装在 FIB 中作为备用路由,在最佳路径被撤销时将被使用 - 这尤其重要,如果你重新运行完整的 Internet 表,因为 Cisco 路由器上的 BGP 扫描器最多每 30 秒运行一次,并且步行超过 300,000 条路由会造成损失。

请注意,BGP 附加路径与 ECMP 无关,因为显然,我们谈论的是接收具有相同下一跳的多个前缀 - 唯一的例外是您运行 iBGP 并且使用next-hop-self(或做脏事)的情况使用保留下一跳的 eBGP)

由于它是一个扩展,两个路由器都必须支持它并在连接时协商该功能(或者,协商动态能力)。它可用于 eBGP 和 iBGP。

试图在眼镜中寻找自己的路线并不总是如您所愿,特别是如果您从购买大量交通工具的人那里购买。例如,Interap 从许多其他大型 ISP 购买传输。如果您先从 Internap 购买,然后再从其他人那里购买,那么您在其他供应商上的路线很可能会因为不是最佳路线而被隐藏。大多数 ISP 更喜欢他们自己的客户路由。在镜子中看到或没有看到自己的路线与您的路线是否正确传播几乎没有关系。