我正在尝试解决LB1
(运行 Quagga 的 Linux 机器)和PAT1
(PAT2
Juniper MX80 路由器)之间的链路故障。下图是我的网络布局的规范版本:
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
返回到 Internet- 互联网流量目前正在过来
ISP2
当我切断 和 之间的链接时PAT2
,LB1
流量会停止,PAT2
因为PAT1
没有通告到 的备份路径199.192.100.0/28
。我的印象是PAT1
会重新分配199.192.100.0/28
路由,PAT2
以便在发生故障时可以使用它。但似乎这不是 iBGP 设计的工作方式。
什么是克服 iBGP 不通告学习到的 iBGP 路由的限制的好方法?
我认为您对这种设计想得太多了,并且以错误的方式进行。
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 之间的链路断开时,LB1 在 PAT2 上的“show ip route”是什么样子的?如果您断开该链路,LB1 和 PAT2 之间的 iBGP 会话应该仍保持连接状态,如果它断开,则再次表明存在 IGP 问题。