我正在尝试解决LB1
(运行 Quagga 的 Linux 计算机) 和Juniper MX80PAT1
路由器之间的链路故障问题PAT2
。下图是我的网络布局的典型版本:
BGP 设置:
PAT1
并且PAT2
每个都与 建立 eBGP 会话以ISP1
进行ISP2
宣布199.192.100.0/24
。LB1
通过199.192.100.0/28
iBGP 会话向PAT1
和PAT2
PAT1
并PAT2
在彼此之间建立 iBGP 会话以重新分配外部学习到的路由(这样,如果 ISP 链路发生故障,任一路由器都可以返回互联网)PAT1
并PAT2
发起一个默认路由以LB1
返回互联网- 互联网流量目前超过
ISP2
PAT2
当我切断和之间的链路时LB1
,流量在 处终止,PAT2
因为PAT1
不宣布到 的备份路径199.192.100.0/28
。我原以为PAT1
会重新分配199.192.100.0/28
到 的路由,PAT2
以便在发生故障时使用该路由。但看起来 iBGP 的设计并非如此。
有什么好方法可以克服 iBGP 不公布学习到的 iBGP 路由的限制?
答案1
我认为您对这个设计想得太多了,而且方法错误。
PAT1、PAT2 和 LB1 应全部通过 iBGP 相互对等。LB1 应源自 199.192.100.0/28 PAT1 和 PAT2 均应源自 199.192.100.0/24 请勿在任何 ibgp 会话上放置任何过滤器。
这些路由器之间运行的是什么 IGP (OSPF?)?PAT1 和 PAT2 的默认路由应该来自 IGP,而不是 iBGP。
问题不在于 PAT1 没有宣布到 /28 的备份路径,问题在于 PAT2 不相信它可以通过 PAT1 到达 LB1。当 PAT2 和 LB1 之间的链接断开时,PAT2 上针对 LB1 的“显示 ip 路由”是什么样子的?如果您断开该链接,LB1 和 PAT2 之间的 iBGP 会话应该仍保持开启,如果它再次断开,则表明存在 IGP 问题。