我为网络相对较小的 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_EXPORT
BGP 社区匹配并防止导出到所有中转对等点。 - RFC1918 地址的另一个前缀列表,也不应将其导出或导入到中转点。
- 将来,我计划添加社区匹配以执行 Set LocalPref、AS Prepend 等...对于下游客户,我将为此提供类似的 CUSTOMER_TRANSIT_IMPORT/EXPORT 路线图。
然后,我在特定于 AS 的路由映射中定义了如下内容:
- 只导出前缀到这个 AS 我想宣布的那些
- 导入所有前缀,或者通过匹配某个社区只导入国内前缀。
- 从该对等体导入前缀时,设置一些 BGP 信息社区,以便我可以分辨:我从哪个传输提供商那里获得了前缀;它来自哪个 POP;等等。
我有一个完整的 BGP 社区列表,我计划在我们的网络上努力支持,这与您可能从更大的传输提供商那里看到的一致,因为我们正在努力发展我们的网络。
所以我想让配置尽可能简单,以尽可能进行这些类型的更改。同样,允许我们根据需要轻松地广泛或狭窄地影响路由策略更改。所以这就是为什么我需要放置某种层次结构的原因。
另一个原因是我确信这对于较大的 ISP 来说一定是一个已解决的问题。我怎样才能做到这一点?