我们有一个简单的多宿主设置,其中有两个路由器将我们的 AS 通告给两个 ISP。第二个 ISP(ISP B)仅在 ISP A 发生故障时用作备份,因此我们在此路由上将我们的 AS 添加到前面 3 次。
注意:这些是示例 ASN,而不是真实的 ASN。
今天早上我花了几个小时在网上搜索路由器,没有任何其中列出了带有前置路径的备用路由。我检查了南非互联网交换中心、伦敦互联网交换中心、俄勒冈互联网交换中心和几十家 ISP。它们都通过 ISP A 有多条路由,通常有 3 或 4 个跳数。通过 ISP B 的路由至少应该出现在某处,并且有 5 或 6 个跳数。但我找不到它。(我使用show ip bgp 65000
)检查了查找镜路由器上的完整 bgp 表
我的问题是:
- 路由的大小是否存在限制,超过该限制大多数路由器就会丢弃该路由?
- 如果没有路由器知道,当 ISP A 发生故障时,我们的备份路由还能起作用吗?
我们的两个路由器通过 iBGP 连接。是否有可能由于 iBGP 会话优先选择通过 ISPA 的路由,因此未公布通过 ISPB 的路由?这就是不存在映射和广告地图都应该这样做,但是这两个路由器都没有使用这些。
答案1
1.) 如果为给定的 BGP 路由器提供了来自多个对等体的相同前缀,则它将仅传播这些路径中的最佳路径(根据 BGP 的路径选择规则)。 在您的例子中,这意味着如果某个远程路由器同时看到普通路由和前置路由,则它只会将普通路由传递给其邻居。 宣布的路由器将在“sh ip bgp abcd”中拥有这两条路径,但其邻居则不会。
1a.) 您看不到前置路由并不意味着备份不起作用。表中同时包含前置和非前置路由的路由器通常只会通告非前置路由,但如果非前置路由被撤回/超时,则将立即提供前置路由。
在您的备份路由器上尝试此命令: sh ip bgp neighbors x.y.z.q advertised-routes
查看向您的提供商发送的具体内容。
2.) 如果不知道您如何发起(和处理)前缀,就很难说 iBGP 对等会产生什么影响。在这些路由器之间需要 iBGP 对等的原因是什么?
3.) 该advertise-map
命令将导致基于另一个前缀的存在而通告特定前缀。例如,当存在 10.0.0.0/8 时,通告 10.128.0.0/16。同样,non-exist-map
当不存在另一个前缀时,将通告特定前缀。对于基本多宿主设置,这两者都不是必需的。
最终,最好的测试是花时间关闭您的主要路线,以确认备份路线将承载流量。
哦 - 顺便说一句 - 您是在宣传真正的 PI 空间,还是所讨论的前缀是提供商聚合的一部分?最长匹配胜过其他一切。