具有不同 ASN 的 BGP 多路径是否适用于生产网络?

网络工程 思科 路由 路由器 bgp 电调
2021-07-20 15:31:17

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

#bgp bestpath as-path multipath-relax

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

它可能会导致什么问题?为什么不经常使用?

作为传输提供商,此功能是否会使故障排除复杂化(我正在考虑最终用户对网络性能的投诉)?是否更难知道在给定时间特定路径的流量?还有什么可以帮助故障排除的。我不确定 SP 网络中 NetFlow 的可扩展性和成本。

2个回答

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

  • 相同的重量
  • 相同的本地偏好
  • 相同的 AS-Path(AS 编号和 AS 路径长度)
  • 同源
  • 同一个医学博士
  • 不同的下一跳

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

它可能会导致什么问题?

只要您是不向其他 ASN 提供中转服务的企业客户,就没有太大危险;对于中转提供商来说,这可能是完全安全的,但如果中转 ASN 使用此功能,我无法确定不存在路由循环起初,我认为在运输 ASN 案例中很容易出现循环,经过更多思考,我找不到真正的问题。

为什么会很少使用?

好问题,它至少从 2005 年就存在了。

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.