S5700转发的EBGP路由时,出现路由下一跳变为本地地址故障

发布时间:  2016-12-22 浏览次数:  146 下载次数:  0
问题描述

组网如下。网络出口设备CRSGSR都是S5720SI交换机,版本V200R008C00SPC500

 

 

 

 

问题现象:

CRSGSR接收到测试仪发来的EBGP路由,发给IBGP对等体NE40E#1,NE40E#2时,GSR设备发的IBGP路由(XXB.2.1.0/24 - XXB.5.232.0/24)下一跳自动变为本地地址。如下路由表:
 

[~NE40E_2_test]dis ip routing-table

Route Flags: R - relay, D - download to fib, T - to vpn-instance

------------------------------------------------------------------------------

Routing Table : _public_

         Destinations : 2073     Routes : 2073     

 

Destination/Mask    Proto   Pre  Cost        Flags NextHop         Interface

 

...........................

XXB.2.1.0/24  IBGP    170  0             RD  172.30.10.1     GigabitEthernet1/0/4          //  由GSR转发的BGP路由

     XXB.2.10.0/24  IBGP    170  0             RD  172.30.10.1     GigabitEthernet1/0/4

    XXB.2.11.0/24  IBGP    170  0             RD  172.30.10.1     GigabitEthernet1/0/4

..........................

XXB.5.229.0/24  IBGP    170  0             RD  172.30.10.1     GigabitEthernet1/0/4

    XXB.5.232.0/24  IBGP    170  0             RD  172.30.10.1     GigabitEthernet1/0/4

      XXA.1.1.0/24  O_ASE   150  1             D   172.20.4.29     GigabitEthernet1/0/3

      XXA.2.1.0/24  IBGP    170  0             RD  XXA.1.1.1       GigabitEthernet1/0/3           //  由CRS转发的BGP路由

      XXA.2.2.0/24  IBGP    170  0             RD  XXA.1.1.1       GigabitEthernet1/0/3

      XXA.2.3.0/24  IBGP    170  0             RD  XXA.1.1.1       GigabitEthernet1/0/3

      XXA.2.8.0/24  IBGP    170  0             RD  XXA.1.1.1       GigabitEthernet1/0/3

...............................

处理过程

1、检查GSR从测试仪收到的EBGP路由下一跳是否正确:

[GSR#1-bgp]dis bgp routing-table peer XXB.1.1.1 received-routes

BGP Local router ID is 172.30.10.1
Status codes: * - valid, > - best, d - damped,
               h - history,  i - internal, s - suppressed, S - Stale
               Origin : i - IGP, e - EGP, ? - incomplete


Total Number of Routes: 1000
      Network            NextHop        MED        LocPrf    PrefVal Path/Ogn

*>   XXB.2.1.0          XXB.1.1.1                             0      17858?
*>   XXB.2.2.0          XXB.1.1.1                             0      17858?
*>   XXB.2.3.0          XXB.1.1.1                             0      17858?
*>   XXB.2.4.0          XXB.1.1.1                             0      17858?

GSR收到的EBGP路由下一跳正确,为EBGP对等体的接口IP:XXB.1.1.1。

2、检查GSR转发出来的IBGP路由下一跳是否正确:

[GSR#1-bgp]dis bgp routing-table peer 172.30.13.1 advertised-routes
BGP Local router ID is 172.30.10.1
Status codes: * - valid, > - best, d - damped,
               h - history,  i - internal, s - suppressed, S - Stale
               Origin : i - IGP, e - EGP, ? - incomplete


Total Number of Routes: 1001
      Network            NextHop        MED        LocPrf    PrefVal Path/Ogn

*>   10.4.32.0/23       172.30.10.1     0          100        0      i
*>   XXB.2.1.0          172.30.10.1                100        0      17858?
*>   XXB.2.2.0          172.30.10.1                100        0      17858?
*>   XXB.2.3.0          172.30.10.1                100        0      17858?

GSR向IBGP对等体转发的路由下一跳不正确,修改为了自己的本地环回口地址:172.30.10.1。

3、确定问题在GSR设备上,检查GSR的BGP配置

#

bgp 10036
router-id 172.30.10.1
peer 172.30.10.11 as-number 10036
peer 172.30.10.11 connect-interface LoopBack0
peer 172.30.13.1 as-number 10036
peer 172.30.13.1 connect-interface LoopBack0
peer 172.30.13.2 as-number 10036
peer 172.30.13.2 connect-interface LoopBack0
peer 200.1.1.1 as-number 17858
#
ipv4-family unicast
  undo synchronization
  network 10.4.32.0 255.255.254.0
  maximum load-balancing 2
  peer 172.30.10.11 enable
  peer 172.30.13.1 enable
  peer 172.30.13.2 enable
  peer 200.1.1.1 enable
#

经过命令分析和对比分析,发现GSR相比CRS多一条配置命令“maximum load-balancing 2”,删去命令后,再检查发送给对等体的路由,下一跳正常。

根因

maximum load-balancing 2 命令用于使能并配置BGP负载分担能力及负载分担链路最大数目。

当配置了负载分担之后,如场景所示GSREBGP邻居收来的路由在发布IBGP邻居的时候会修改下一跳为本地。目的是为了将流量引到负载分担的设备上来,属于正常实现。

建议与总结
建议在遇到路由类故障时,排障遵循以路由显示是否正常为原则,依次排查路由发布上下游的发送接收结果,从而快速找到问题产生节点,再仔细排查配置等方面的原因。

END