在Cisco上(此命令由于某种原因被隐藏)

#bgp bestpath as-path multipath-relax


默认BGP行为仅将具有完全相同的AS_PATH的路由安装到RIB中。使用multipath-relax,AS_PATH仅需要具有相同的长度。

它可能引起什么问题?为什么不经常使用?

作为运输提供商,此功能会使故障排除变得复杂吗(我在考虑最终用户对网络性能的抱怨)?是否会更难于了解在给定时间经过的特定路径的流量?还有其他可以帮助排除故障的内容。我不确定SP网络中NetFlow的可伸缩性和成本。

评论

我已经指示一些客户使用它,但我还没有听说过任何问题。 draft-lapukhov-bgp-routing-large-dc-05非常依赖此功能

我正在Juniper JunOS中寻找类似的功能...有吗? networkengineering.stackexchange.com/questions/6735/…

有什么答案对您有帮助吗?如果是这样,您应该接受答案,这样问题就不会永远弹出来寻找答案。或者,您可以发布并接受自己的答案。

#1 楼

bgp bestpath as-path multipath-relax由CSCea19918引入。通常,eBGP负载平衡要求候选路由为等价路径。即相同的BGP属性:


相同的权重
相同的本地Pref
相同的AS路径(AS号和AS路径长度)
相同的起源
相同的MED
不同的下一跳

正如您提到的,此命令放宽了相同的AS-Path要求,因此任何具有相同AS-的候选eBGP AS-Path路径长度可用于eBGP负载平衡(这不会在eBGP和iBGP路径之间实现负载平衡)。如果您在多个ISP之间运行BGP,并且正在寻找上游连接之间更好的出口负载平衡,那么这可能会对您有所帮助。


它可能引起什么问题?

只要您是不向其他ASN提供中转服务的企业客户,就没有什么危险了;对于运输提供商来说,这可能是绝对安全的,但是我不确定如果运输ASN使用此功能,则不会存在路由循环。起初,我认为在传输ASN的情况下很容易出现循环,从更多的角度来看,我找不到真正的问题。 >

好问题,至少从2005年开始就出现了。

评论


您能否解释一下它如何导致#bgp bestpath as-path multipath-relax(不是#bgp bestpath as-path忽略)循环?

–sdaffa23fdsf
13年7月18日在3:10

#2 楼

The   basic  issue   is   that  the   BGP   speaker  configured   with
"multipath-relax"   gets  into   a  control   plane  <->   data  plane
inconsistency; i.e.  it advertises  only the  best path,  but installs
multiple paths in the forwarding  that have different ASPATHs than the
best. This breaks the basic tool BGP has to detect loops - ASPATH loop
check.

A (distorted) scenario below. I am sure you can come up with
a better example with a bit more time at hand.

            ...............
            : R4  AS1 (10/8)
           /:..............
     ..../......
     :  R5 AS2
     :....\.....
       /   \  ...............
     /      --:--R1
  R6 AS4      :    \    AS3
     \--------:--- R2
              :    /
              : R3 (10/8)
              :..............

In this example,
- R3 in AS3 and R4 in AS1 announce a prefix 10/8. R5 in AS2 receives
  the prefix from R1(AS3) and R4(AS1).
- AS2 is configured with 'multipath-relax' and chooses both paths
  for multipath forwarding, though it selects AS1's path as best.
- R5 advertises the prefix with AS_PATH "2 1" to R6, and R6 in turn
   to R2.
- Because of some specific policy, it is possible that R2(AS3)
  chooses R6's path as best. If it happens, there is a loop.
  Note that R1-R2-R3 represents the physical connectivity of
  the routers in AS3.


评论


谢谢你的例子。您是说R3选择R4作为10/8的最佳路径,R5将部分流量转发到10/8,回到R1的AS3吗?为什么这是由多路径松弛引起的?如果没有适当的出站过滤(或者在原始AS处简单的10/8到null0),则没有多路径放松,R2-R6-R5-R1循环仍然可以存在。在我看来,这里的问题是BGP劫持。我理解不对吗?

–sdaffa23fdsf
13年7月22日在6:40

不,我的意思是:(a)R3拥有自己的外部最佳路径,(b)R1选择R3作为最佳路径,但由于物理连接性,必须将流量发送到R2才能到达R3,(c)R2选择外部路径(从R6接收)最好。这与多路径放松有关,因为R5从AS3中选择了一条未公开的路径用于多路径转发。因此,AS3中的ASPATH环路预防技术失败。

– Pradosh Mohapatra
13年7月22日在17:41



我仍然不知道如何在没有多路径放松的情况下避免这种情况。 R1通过R2将流量发送到10/8,R2选择R6作为出口(权重),即使没有多路径松弛,R5也会将R1选择为10/8的最佳选择,并引起环路。 ASPATH循环阻止无法阻止由内部网络首选外部出口点引起的循环。如果R1选择R5,R2选择R6最适合10/8,则无论是否形成回路,不是吗?

–sdaffa23fdsf
13年7月28日在7:05

不知道那将是一个循环。 R1最好选择R5 =>意味着R5选择R4作为流量的出口(否则,将检测到AS_PATH循环)。因此,业务流路径将是:R1-> R5-> R4或R2-> R6-> R5-> R4或R5-> R4或R3。

– Pradosh Mohapatra
13年7月29日在5:04