我们有 2 个上游 ISP A 和 ISP B。ISP A(10Mb/s)是我们的主要上游,带宽良好。它通过 BGP 向我们发送默认路由。ISP B(2Mb/s)是我们的备用上游,带宽较小,但它向我们发送完整路由表。我是 BGP 新手,所以我正在寻找一种方法来确保大多数入站和出站流量将使用 ISP A 并故障转移到 ISP B。最好的方法是什么?
答案1
有很多方法可以实现 BGP 策略的这一功能。虽然最好的办法是反复询问 ISP A,直到他们给出正确的路由,但我们仍然可以使用这种方法。
本质上,任何适用于 ISP B 网络且与您的本地接口匹配的内容都会发送到那里。假设您想要任何距离它们只有一跳的内容,请继续添加一条规则,该规则为来自该接口且距离一跳以内的内容设置优先级。您可以将该约束更改为 0 跳(仅与 ISP 的 AS 匹配的内容)或其他想法。
将 ISP A 的流量(默认路由)设置为略高的度量。将来自 ISP B 的其他任何流量(我们之前没有决定优先考虑的流量)设置为更高的度量。
花些时间看看路线图弄清楚什么最适合您的情况。
完成这些之后,回头向 ISP A 大喊大叫,因为他们可能会丢失一些路径,而您的本地链接仍然在线,因此可能会出现问题。
答案2
没有特别好的方法可以做到这一点。一种不太好的方法是从完整表中删除较长的 AS 路径。这样,您只会得到“短”的 AS 路径,并且大多数流量将采用默认路由。
请小心考虑您的入站流量!
答案3
谢谢您的建议。我想到的解决方案如下:
- 我允许从 ISP A 接收默认路由并从 ISP B 接收完整馈送。
- 我多次将自己的 AS 添加到 as-path 前面,并将其通告给 ISP B(这确保互联网上的大多数主机都认为 ISP A 路径更受欢迎,因为它到我的 AS 的跳数较少)
- 我将要求 ISP A 向我发送其邻近 AS 的路由,这样我就可以获得到他们的更短的路由。
这样,我的所有传出流量都从 ISP B 发出(因为它向我发送了更具体的路由),而我的所有传入流量都从 ISP A 传入(它在互联网上显示为更好的路由)。如果其中一个 ISP 出现故障,互联网仍可通过另一个 ISP 访问。