在确定是否使用 BGP “网络”命令与 Redistribution 时应考虑哪些因素?

网络工程 bgp
2021-08-01 03:35:43

BGP 发布路由的方式有以下三种:

  • network 命令
  • redistribute 命令
  • 聚合

我遇到使用network命令与redistribute命令的两个原因

1.

network命令发布源代码为ifor IGP 的路由redistribute命令通告具有?不完整源代码的路由后来,这些用于路径选择过程,其中的源代码i优先于?

但是可以使用路线图将源代码更改为您喜欢的任何内容。因此,出于这个问题的目的,让我们忽略不同的来源代码,因为它们可以被覆盖。

2.

network命令要求您明确指定应将哪些网络通告到 BGP。redistribute命令可能会无意中将网络通告到您未明确选择的BGP 中(即,使用redistribute connected并稍后添加用于测试的环回接口,您并不打算进行通告)。

但是您也可以使用路由映射来限制正在重新分配的网络,因此在这两种情况下您仍然可以明确地通告网络因此,出于这个问题的目的,让我们忽略显式广告的差异,因为这在两种方法中都是可能的。


我的问题:其他除上述确定的两个不同......是什么原因之一可能选择使用redistribute命令经文的network命令。

它只是出于个人喜好吗?还是地方政策?或者是否有其他明确的用例需要使用其中一个。

2个回答

首先 - 这些命令解决了两个截然不同的问题:

  1. networkredistribute命令的机制来发起路由引入BGP,或者静态地(与背衬路线)或从另一动态路由协议来。正如注释中提到的,这两种机制之间肯定存在差异(以原始类型为例),但路由启动的底层功能是一个共同元素。

  2. 路由聚合在 BGP 中创建了一条超网路由,作为其他 BGP 路由的函数- 因此,例如,/19 中一个或多个 /24 子网的存在会导致 /19 被通告(有或没有组件 /24 ,取决于政策)。在路由聚合(AS 集、捆绑属性等)中通常有很多可用的旋钮,但在 BGP 上下文中完全工作的基本概念(与启动全新路由相比)将其networkredistribute

所以 - 您的问题可能更好地表述为为什么选择一种将路由启动到 BGP 的方法而不是另一种方法。老实说,答案是设计的一个功能。从 IGP 重新分配允许将一组动态路由推送到 BGP。因此,例如,可能会在企业网络的一部分内不断地从 OSPF 中添加和删除网络。这些路由将(在策略限制内)从 BGP 中添加和删除,无需任何进一步干预。类似地,可以使用动态标记机制来控制在网络中如何处理某些类别的路由。作为另一个示例 - 可以将标记应用于来自先前案例(企业 OSPF)的路由,以便特定前缀将在重新分发点应用 BGP 社区,从而允许其泄漏超过摘要。

相比之下,network只要表中存在相同的后备路由,该命令只会向 BGP 发起一组路由。这是一种非常静态的方法,通常在网络边缘的 BGP 发言者想要在几乎所有情况下向网络发起一组前缀时使用。这方面的典型案例是 BGP 连接的最终客户,他们通常会通告一组相对较小(且不变)的独占前缀。他们通常会使用静态路由固定后备路由,并通过 IGP 接收更具体的路由(这可以被认为是一种粗略的总结形式)。

这两种方法各有千秋,而且经常有相当程度的重叠。更难搞砸network命令(尽管我已经看到它完成了),而增加的旋钮数量和重新分配循环的可能性通常与更大程度的复杂性相关联。

另一个区别是,在network命令的情况下,可以注入/通告路由,而不管源(EIGRP、OSPF、IS-IS、静态、直接连接),而在redistribute命令的情况下,您必须使用它对于可以考虑通告路由的每个源。

在上述两种情况下,路由必须存在于路由表中才能在 BGP 中考虑。对于聚合,较长的路由/前缀必须在 BGP 表中,如另一个答案中所述