边界网关协议 (BGP) 是用于实现 Internet 连接冗余的关键协议之一。当您将网络连接到两个不同的 Internet 服务提供商 (ISP) 时,此操作称为多宿主。多宿主可提供冗余和网络优化。它选择为资源提供最佳路径的 ISP。在对多个服务提供程序运行 BGP 时,您将面临您的自治系统 (AS) 变为中转 AS 的风险。这会导致 Internet 流量通过 AS,可能占用路由器 CPU 的所有带宽和资源。本文档对此问题进行讨论,并提供相应的配置示例。
在尝试进行此配置之前,请确保您已具有下列主题的相关知识:
本文档中的信息基于运行 Cisco IOS? 软件版本 12.2(27) 的思科 2500 系列路由器。
本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您使用的是真实网络,请确保您已经了解所有命令的潜在影响。
有关文档规则的详细信息,请参阅 Cisco 技术提示规则。
如果要接收完整的 Internet 路由表,请对本地路由器(在本文档的示例中为路由器 A)使用接收完整 Internet 路由表的配置。
如果要接收直接连接到服务提供商的路由,但对 Internet 其他部分采用默认路由,请尝试使用接收直接连接路由的配置。
如果您希望只接收来自直接连接的服务提供商的默认路由,请使用 Receive Default Routes Only 配置。
有关本文档中配置所用的正则表达式的更多信息,请参阅在 BGP 中使用正则表达式。
本部分提供有关如何配置本文档所述功能的信息。
本文档使用以下网络设置:
在该网络图中,1.0.0.0/8 和 2.0.0.0/8 由 AS 300 向外部通告。
以下配置允许路由器 A 与其他自治系统中的 BGP 扬声器建立对等关系。route-map localonly 仅允许将本地生成的路由通告给两个服务提供商。换言之,它们会过滤从一个服务提供商返回另一个服务提供商的 Internet 路由。这样可消除自治系统成为用于 Internet 流量的中转 AS 的风险。
注意:思科建议从单个对等体为整个互联网路由表提供1 GB内存。
Router A |
---|
Current configuration: router bgp 300 network 1.0.0.0 network 2.0.0.0 neighbor 10.10.10.10 remote-as 100 neighbor 10.10.10.10 route-map localonly out !--- Outgoing policy route-map that filters routes to service provider A (SP-A). neighbor 20.20.20.20 remote-as 200 neighbor 20.20.20.20 route-map localonly out !--- Outgoing policy route-map that filters routes to service provider B (SP-B). end |
以下自治系统路径访问列表只允许本地生成的 BGP 路由:
ip as-path access-list 10 permit ^$
下面是一个路由映射示例,该路由映射使用自治系统路径访问列表对通告给服务提供商网络中外部邻居的路由进行过滤:
route-map localonly permit 10 match as-path 10
Router A |
---|
Current configuration: router bgp 300 network 1.0.0.0 network 2.0.0.0 neighbor 10.10.10.10 remote-as 100 neighbor 10.10.10.10 route-map localonly out !--- Outgoing policy route-map that filters routes to SP-A. neighbor 10.10.10.10 route-map as100only in !--- Incoming policy route-map that filters routes from SP-A. neighbor 20.20.20.20 remote-as 200 neighbor 20.20.20.20 route-map localonly out !--- Outgoing policy route-map that filters routes to SP-B. neighbor 20.20.20.20 route-map as200only in !--- Incoming policy route-map that filters routes from SP-B. end |
由于需要仅接受直接连接到服务提供商的路由,因此必须过滤它们发送给您的路由,以及您通告的路由。以下访问列表和路由映射仅允许本地生成的路由;可使用它过滤出站路由更新:
ip as-path access-list 10 permit ^$ !--- Configuring the as-path access-list 10 as !--- IP as-path access-list 10 permit ^$, means that the router !--- will only send the prefixes which are generated locally in !--- AS 300 and not from any other AS. route-map localonly permit 10 match as-path 10
以下访问列表和路由映射将过滤掉并非来源于第一服务提供商网络内的所有路由;可使用它过滤通过服务提供商 A 的路由 (SP-A) 获知的路由。
ip as-path access-list 20 permit ^100$ route-map as100only permit 10 match as-path 20
以下访问列表和路由映射将过滤掉并非来源于第二服务提供商网络内的所有路由;可使用它过滤通过服务提供商 B 的路由 (SP-B) 获知的路由。
ip as-path access-list 30 permit ^200$ route-map as200only permit 10 match as-path 30
您还需要两个默认路由,用于重新分配给网络的其余部分,每个路由指向一个服务提供商的进入点:
ip route 0.0.0.0 0.0.0.0 10.10.10.10 ip route 0.0.0.0 0.0.0.0 20.20.20.20
Router A |
---|
Current configuration: router bgp 300 network 1.0.0.0 network 2.0.0.0 neighbor 10.10.10.10 remote-as 100 neighbor 10.10.10.10 route-map localonly out !--- Outgoing policy route-map that filters routes to SP-A. neighbor 10.10.10.10 prefix-list ABC in neighbor 20.20.20.20 remote-as 200 neighbor 20.20.20.20 route-map localonly out !--- Outgoing policy route-map that filters routes to SP-B. neighbor 20.20.20.20 prefix-list ABC in ip prefix-list ABC seq 5 permit 0.0.0.0/0 !--- Prefix list to allow only default route updates. end |
由于希望路由器 A 仅接收默认路由,而不接收来自 SP-A 和 SP-B 的其他网络,因此必须只允许接收默认路由,而拒绝其他 BGP 更新。使用下面的前缀列表将只允许默认路由更新 0.0.0.0/0,而拒绝路由器 A 上的所有其他 BGP 更新:
ip prefix-list ABC seq 5 permit 0.0.0.0/0
按以下方法将该前缀列表应用于各个 BGP 邻居的入站更新:
neighbor 10.10.10.10 prefix-list ABC in neighbor 20.20.20.20 prefix-list ABC in
有关如何配置前缀列表的更多信息,请参阅配置 BGP 的使用前缀列表配置 BGP 过滤部分
有关每个命令作用的说明,请参阅配置 BGP 和 BGP 命令。
使用本部分可确认配置能否正常运行。
命令输出解释程序(仅限注册用户)(OIT) 支持某些 show 命令。使用 OIT 可查看对 show 命令输出的分析。
可以使用 show ip route 和 show ip bgp 命令检查 IP 路由表和 BGP 路由表的条目。
目前没有针对此配置的故障排除信息。
版本 | 发布日期 | 备注 |
---|---|---|
1.0 |
17-Aug-2005 |
初始版本 |