定义分层 BGP 路由映射

网络工程 思科 bgp 设计 cisco-ios-15
2021-07-15 00:46:59

我为网络相对较小的 MSP 工作。我们正在我们的边缘实施一组新的 Cisco ASR 1001-X,我正在尝试改进我们的 BGP 配置。

路由器正在运行: IOS XE Version 03.16.05.S / Version 15.5(3)S5

我试图解决的一个问题是,如何在跨多个对等方进行更改方面使配置具有合理的可扩展性。我想这对于具有 10 或 100 个 BGP 对等配置的大型 ISP 网络来说肯定是可能的。

具体来说,我希望定义多个级别的导入/导出路由映射,我可以在其中为所有中转节点定义一个通用路由映射,一个用于客户,一个用于 IXes 等。然后作为第二级路由映射之后应用将是特定对等体的 AS 特定路由映射。

我试过的

BGP 模板

我曾尝试使用 BGP 模板,定义UPSTREAM_TRANSIT对等策略,由更特定于 AS 的模板继承,例如UPSTREAM_TRANSIT_AS1234.

 template peer-policy UPSTREAM_TRANSIT
  route-map UPSTREAM_TRANSIT_IMPORT in
  route-map UPSTREAM_TRANSIT_EXPORT out
  soft-reconfiguration inbound
  send-community
 exit-peer-policy

 template peer-policy UPSTREAM_TRANSIT_AS1234
  route-map UPSTREAM_TRANSIT_AS1234_IMPORT in
  route-map UPSTREAM_TRANSIT_AS1234_EXPORT out
  inherit peer-policy UPSTREAM_TRANSIT 1
 exit-peer-policy

这里的问题是,即使我可以指定继承和导入/导出路由映射,子级只是覆盖了父级,因此它不会累积。

例子

这是我正在努力实现的一个例子。

首先,我定义了两个路由映射,我打算由所有称为UPSTREAM_TRANSIT_IMPORT和 的BGP 传输对等方继承它们UPSTREAM_TRANSIT_EXPORT在此:

  • 我已经定义了一个名为的前缀列表,MARTIANS并希望在所有传输和对等点的所有导入/导出上阻止一些基本的火星子网。
  • 我想与NO_EXPORTBGP 社区匹配并防止导出到所有中转对等点。
  • RFC1918 地址的另一个前缀列表,也不应将其导出或导入到中转点。
  • 将来,我计划添加社区匹配以执行 Set LocalPref、AS Prepend 等...对于下游客户,我将为此提供类似的 CUSTOMER_TRANSIT_IMPORT/EXPORT 路线图。

然后,我在特定于 AS 的路由映射中定义了如下内容:

  • 只导出前缀到这个 AS 我想宣布的那些
  • 导入所有前缀,或者通过匹配某个社区只导入国内前缀。
  • 从该对等体导入前缀时,设置一些 BGP 信息社区,以便我可以分辨:我从哪个传输提供商那里获得了前缀;它来自哪个 POP;等等。

我有一个完整的 BGP 社区列表,我计划在我们的网络上努力支持,这与您可能从更大的传输提供商那里看到的一致,因为我们正在努力发展我们的网络。

所以我想让配置尽可能简单,以尽可能进行这些类型的更改。同样,允许我们根据需要轻松地广泛或狭窄地影响路由策略更改。所以这就是为什么我需要放置某种层次结构的原因。

另一个原因是我确信这对于较大的 ISP 来说一定是一个已解决的问题。我怎样才能做到这一点?

2个回答

在较大的运营商中,通过脚本从某种配置数据库实际生成路由映射(和相关的对等配置)实际上更为常见。这个想法是像一系列的包含,基于对等的条件等更容易实现。这也是一个胜利,因为它实现了供应一致性,允许第一层人员在没有 CLI 访问的情况下进行供应等。

这是我前一段时间发表的评论,作为答案转贴。

我还要补充一点,生成路由映射的另一个好处是语法的差异(供应商之间或使用多个操作系统的供应商内部)被规范化。它还最终允许下游客户以某种有限/理智的方式编辑他们的个人广告/政策,并(希望)允许运营商谨慎、理智的网民,以防止虚假广告进入更广泛的互联网(好吧……这只是一厢情愿!)

在 XR(不确定 XE)中,您可以在路由策略中间执行“应用”。所以你会喜欢:

route-policy test
apply generic-policy
if something then something else
end route-policy

这将在“测试”路由策略中间运行“通用策略”。但是,看起来 XE 使用路由映射而不是路由策略,因此不幸的是,您无法使用该功能。XE 中的路线图似乎是离散对象,您不能以这种方式链接它们。