BGP路由负载分担问题

发布时间:  2014-06-20 浏览次数:  211 下载次数:  0
问题描述

用户在FW1上发布一条路由,希望FW4能通过FW2和FW3负载分担访问该网段。
但是发现路由总是不能两条负载分担。如下:

[FW4]display bgp routing-table
08:26:18  2014/06/20

Total Number of Routes: 2

BGP Local router ID is 4.4.4.4
Status codes: * - valid, > - best, d - damped,
               h - history,  i - internal, s - suppressed, S - Stale
               Origin : i - IGP, e - EGP, ? - incomplete
      Network            NextHop        MED        LocPrf    PrefVal Path/Ogn

*>   172.16.0.0         2.2.2.2                               0      2 1i
*                                  3.3.3.3                               0      3 1i

根据BGP选路规则,会选择router-id最小的路由作为最优路由写进路由表。如上表,但是客户有配置
[FW4-bgp]maximum load-balancing 2
却发现路由没有负载分担,3.3.3.3的路由不优。
告警信息
处理过程
经过的AS不一样导致AS-PATH不一样,不能负载分担,需要改变组网,让AS-path一样。

处理过程中,我们有尝试过通过route-policy将两边的AS改成一样,但是发现还是没有负载分担,路由如下:
[FW4]display bgp routing-table
08:29:16  2014/06/20

Total Number of Routes: 2

BGP Local router ID is 4.4.4.4
Status codes: * - valid, > - best, d - damped,
               h - history,  i - internal, s - suppressed, S - Stale
               Origin : i - IGP, e - EGP, ? - incomplete
      Network            NextHop        MED        LocPrf    PrefVal Path/Ogn

*>   172.16.0.0         2.2.2.2                               0      2 1 3i
*                                  3.3.3.3                               0      3 1 2i

可以看到AS-path已经一样了,只是排列顺序不一样。这样也是不可以的。

这个时候能看到如下结果:
[FW4]display bgp paths
08:58:53  2014/06/20

Total Number of Routes:2
    Address       Hash    Refcount  MED         Path/Origin
    0x12DB75B0    0           1                     3 1 2i
    0x12DB76E8    1791    1                     2 1 3i

可以看出两条路径的hash值不同,所以不能负载。

修改组网后就可以了,如下:

[FW4-bgp]display bgp routing-table
09:04:51  2014/06/20

Total Number of Routes: 2

BGP Local router ID is 4.4.4.4
Status codes: * - valid, > - best, d - damped,
               h - history,  i - internal, s - suppressed, S - Stale
               Origin : i - IGP, e - EGP, ? - incomplete
      Network            NextHop        MED        LocPrf    PrefVal Path/Ogn

*>i  172.16.0.0         2.2.2.2         0          100        0      1i
*>i                               3.3.3.3         0          100        0      1i

根因
经过核实客户的AS-PATH不一样,导致不能负载分担。
建议与总结
BGP网络负载分担需要保证MED、本地优先其级、preferred-value、AS-PATH、origin一致。除了AS-PATH其他都会影响选路都可以理解,但是AS-PATH不仅仅要求长度相同,而且要求完全一致才能负载。

当遇到不能负载分担的时候,可以通过命令display bgp paths查看一下hash值是否一致。

END