我是一家小型托管公司的 sys/net 管理员,我需要进一步了解我们的 WAN 连接(确切地说是两个)如何协同工作,为我们的托管服务器提供高可用性。
我们有两个现场路由器,每个路由器都在我们的 AS# 19772 上通告 BGP 路由。我们有一个通过 Sprint 的链接(BGP 远程作为 1239)和一个通过 AT&T 的链接(BGP 远程作为 7018)。我有两个问题——第二个比第一个更深入——我想请专家帮忙解答一下,谢谢:)
1.. 当我为我们托管和广告的子网之一运行 BGP 表查找(例如,Looking Glass)时/23,它显示 BGP 表为:
BGP routing table entry for 63.164.138.0/23, version 3560718486
Paths: (1 available, best #1, table Default-IP-Routing-Table)
1239 19772
154.54.12.22 (metric 10186060) from 38.28.1.83 (38.28.1.83)
Origin IGP, metric 4294967294, localpref 100, valid, internal, best
Community: 174:10004 174:20666 174:21000 174:22013
Originator: 154.54.66.86, Cluster list: 38.28.1.83, 38.28.1.67, 38.28.1.65, 154.54.66.49
注意路径也遍历 Sprint 的 AS 和我们的 AS。这让我相信,如果 AS1239 出现故障(或者更现实的是,如果我们的路由器失去了与它的 BGP 会话),流量仍然可以通过 AS19772(大概是通过相邻的 AT&T AS7018)到达该子网。
但是,我想知道,不知何故,如果我们失去与 AS1239 上的 BGP 对等方的会话,这种故障转移行为确实会发生。
有什么方法可以提前验证 AS7018 是否会在需要时向 AS19772 通告直接相邻路由?
编辑: 好的,我想我已经通过AT&T 的镜子从 AS7018 内部检查回答了第一个问题:
rviews@route-server.ip.att.net> show route protocol bgp 63.164.138.0
inet.0: 631792 destinations, 9475808 routes (631792 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both
63.164.138.0/23 *[BGP/170] 1w6d 23:05:58, localpref 100, from 12.122.125.165
AS path: 7018 19772 I, validation-state: unknown
> to 12.0.1.1 via em0.0
请注意 AS 编号 7018 和 19772,对我来说意味着 7018 与此子网的 19772 正确相邻。耶!好的,到#2:
2.. 我们还宣传了四个/26前缀作为更大/24前缀的一部分。由于 Sprint AS1239 不会为小于 的对等节点做广告/24,因此我们的/26s 会“超网”到/12广告中:
BGP routing table entry for 63.160.0.0/12, version 3549613850
Paths: (1 available, best #1, table Default-IP-Routing-Table)
1239
154.54.12.22 (metric 10186060) from 38.28.1.83 (38.28.1.83)
Origin IGP, metric 4294967294, localpref 100, valid, internal, best
Community: 174:10004 174:20666 174:21000 174:22013
Originator: 154.54.66.86, Cluster list: 38.28.1.83, 38.28.1.67, 38.28.1.65, 154.54.66.49
这并不理想.. 请注意,在那条路线中根本没有提到我们的 AS19772.. 只是 .. 上的 AS1239 /12。
除此之外,我被告知 AT&T AS7018 不会转发小于/24 AT ALL 的路由,因此在这种情况下,我的/26s 作为直接邻居丢失了..通过 AT&T 的窥镜证明:
rviews@route-server.ip.att.net> show route protocol bgp 63.165.22.192
inet.0: 631773 destinations, 9475523 routes (631773 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both
63.160.0.0/12 *[BGP/170] 2d 13:58:14, localpref 100, from 12.122.125.106
AS path: 7018 1239 I, validation-state: unknown
> to 12.0.1.1 via em0.0
显示 AT&T AS7018 具有通过 AS1239 的 /12 路由,但提到了通过 AS19772 的更具体的 /26 路由。
这让我相信/26s 不是正确的多宿主,如果我们的 AS1239 会话被切断,那些网络将不可用。
那么,好吧,为什么不把四个/26s宣传为一个/24呢?那么,在路由器上,我们在其中一个/26网络上有一个接口。其他三个/26网络静态路由出不同的接口。我似乎记得在路由器接口开通期间我们遇到了连接问题,直到我们使 BGP 广告掩码与接口掩码匹配。
有谁知道/24来自路由器的BGP 广告是否会干扰具有/26相同子网的接口上的流量/24?
编辑: 根据罗恩提供的伟大答案:
好的,所以我可能缺少的一块拼图是 BGP 的聚合广告。如果我开始通告 /24 前缀,两个相邻的 AS 都应该看到它并开始向它转发直接的邻居连接。
我最不希望看到的证据是我可以通告路由表中没有的聚合前缀。 有没有人参考一些我可以查看的材料来确认这一点?