iBGP AS 路径前置传播

网络工程 路由 路由器 bgp
2021-07-25 00:24:21

我有以下场景:我的 AS:64501 有两个路由器 R3(冗余)和 R4(主)。

ISP AS:64500 有 3 个路由器 R1、R2 和 R5

我有与 ISP 的 eBGP 对等互连,我无法访问 ISP 配置,只能访问我的网络(R3、R4)上的配置。

在此处输入图片说明

我需要来自 ISP 的传入流量始终发送到主路由器 (R4),并且仅当 Main 不可访问时才将流量发送到地理冗余 (R3)。

我可以使用从地理冗余路由器 (R3) 发送的 AS-PATH Prepend 来完成它并且它正在工作:

在此处输入图片说明

但在这种情况下,来自 R5 的 ISP 流量如图片所示(通过 R1-R2-R4)发送 - 多一跳,而不是直接(R5-R2-R4)。发生这种情况是因为 iBGP 没有使用 AS-PATH 前置,所以 R1 更喜欢通过 R2 的路由,因为路由 R1<->R3 是前置的。但是 R1 正在向 R5 发送 iBGP 路由更新,而没有作为路径前置。因此,对于 R5,我的网络有两条相等的路由,它选择通过 R1 的路由,因为 R1 IP 地址低于 R2 IP。

问题#1:我可以只在我的网络中以某种方式配置设备,这样流量会像这样通过,而没有 MED 或社区吗?

问题#2:我可以在我的和 ISP 网络中以某种方式配置设备,这样流量会像这样通过,而没有 MED 或社区吗?

在此处输入图片说明

谢谢你。

4个回答

我认为您混淆了路由器和 AS。对于 BGP,AS 是一跳,而不是路由器。您可以尝试影响邻居 AS 使用哪个对等点向您的 AS 发送流量,但邻居 AS 可以随意忽略您的建议。

看起来您的邻居 AS 正在遵循您的建议,即应该使用哪个路由器到达您的 AS,您可以指定哪些路由可以进入哪些路由器,但您无法控制邻居 AS 内部的路由到你似乎想要的程度。在任何情况下,MED 都不会比 AS 前置更有效。两者都非常直率,也不会给您在邻居 AS 内提供任何程度的控制权。

您需要与邻居 AS 管理员合作,看看是否可以达成某种安排。可能是使用社区,也可能是邻居 AS 管理员想要自己做的事情。您根本无法直接控制不同 AS 中发生的事情。这是自治区的自治系统。

问题#1:我可以只在我的网络中以某种方式配置设备,这样流量会像这样通过,而没有 MED 或社区吗?

您在 AS 中所做的任何事情都不会改变邻居 AS 的内部路由。

问题#2:我可以在我的和 ISP 网络中以某种方式配置设备,这样流量会像这样通过,而没有 MED 或社区吗?

您无权在邻居的 AS 中配置设备。


您的问题似乎是您的邻居 AS 更喜欢将 R5 流量发送到 R1,这是正确的,除了通过商务谈判之外,您真的无能为力。您可以做的是将 R3 设为主路由器,将 R4 设为备用路由器。这将实现您的目标,至少在您处于故障转移情况之前,此时您将处于与现在相同的情况。

只是为了扩展@RonMaupin 的回答——

BGP 的全部意义在于,AS 管理员是决定流量如何在他或她的网络中流动的人——而不是你。您可以表达您的愿望,但 AS 管理员可以(并且经常这样做)忽略它们。

现在,在您的示例中,您可以看到 AS64500 内部,您想知道为什么流量会以这种方式流动。您假设 iBGP 忽略前置,但事实并非如此。

R1 从 R3 和 R2 接收广告。R3 用前置词通告前缀,但 R2 没有。因此,R1 选择了由 R2 通告的较短路径,这就是它安装在其路由表中的路径。

扩展其他两个答案:这里的问题是 AS64500 内的 IGP 路由。实际问题是,为什么 R5 将流量发送到 R1 而不是 R2?

R5 只有一条 BGP 路由,即没有前置的路由。这是因为 R1 从 R2 学习了包括前置的 eBGP 路由和 iBGP 路由,并且由于更短的 AS-Path(假设没有设置权重或 local-pref)而更喜欢来自 R2 的路由。因此,R1 只会向其邻居通告其最佳路径,而 R5 最终只知道该路径而没有通告。

实际路径取决于 IGP 路由。R5 收到的 BGP 路由更新包含下一跳字段,该字段很可能设置为 R2-R4 链路上的 R4 地址或 R2 的地址之一(在 R2 上配置的 next-hop-self)。然后使用配置的 IGP 解析下一跳,该 IGP 指示数据包的实际路由。

要回答您的第二个问题(您几乎无法通过 BGP 配置影响另一个 AS 中的 IGP 路径决策),请查看 R5,检查在 BGP 路由更新中通告的下一跳,并查看 IGP 解析这个下一跳。这应该让您很好地了解为什么流量按当前方式路由。如果您可以修改 ISP 的 BGP 配置,您还可以使用任何其他“BGPish”方式来完成此操作。有很多方法,包括本地偏好。

好吧,如果 R2 具有从您的 AS 64501 到目标前缀的最佳路由,则 R5 和 R1 也应该在其 BGP 表中包含该路由(规则:所有 EBGP 和最佳 IGBP 路由)。因此,如果 ISP 在其 AS 内仅使用 iBGP,那么来自 R5 的流量通常应遵循您想要的路径 (R5-R2-R4)。我唯一相信(可能是对的)是 ISP 在 R5 中使用较低的 AD 协议(例如:静态路由)将流量引导到 R1。就像其他成员评论的那样,您不能影响不在您控制范围内的另一个 AS 内的路由。对我来说,你怎么知道流量来自 R5-R1 也很奇怪?