Sunday, February 27, 2011

Suppressing Inactive BGP Route Advertisement

Network Setup for Suppressing Inactive BGP Route Advertisement

RT1 and RT2 have 2 parallel links running BGP on one and OSPF on another.
Both BGP and OSPF running on RT1 are advertising 192.168.1.0/24 to RT2.
RT2 learns the 192.168.1.0/24 route through both BGP and OSPF.
RT2 installs the OSPF route into the IP routing table due to the lower administrative distance.
Since the BGP route is not being installed into the IP routing table, it appears as RIB-failure route in RT2’s BGP table. RT2 still advertises the RIB-failure BGP route to RT3.

RT2#sh ip route 192.168.1.0
Routing entry for 192.168.1.0/24
  Known via "ospf 100", distance 110, metric 65, type intra area
  Last update from 21.21.21.1 on Serial0/1, 00:02:10 ago
  Routing Descriptor Blocks:
  * 21.21.21.1, from 1.1.1.1, 00:02:10 ago, via Serial0/1
      Route metric is 65, traffic share count is 1

RT2#
RT2#sh ip bgp
BGP table version is 3, local router ID is 2.2.2.2
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
              r RIB-failure, S Stale
Origin codes: i - IGP, e - EGP, ? - incomplete

   Network          Next Hop            Metric LocPrf Weight Path
r>i192.168.1.0      1.1.1.1                  0    100      0 i
RT2#
RT2#sh ip bgp rib-failure
Network            Next Hop                      RIB-failure   RIB-NH Matches
192.168.1.0        1.1.1.1             Higher admin distance              n/a
RT2#
================================================================================
RT3#sh ip bgp
BGP table version is 2, local router ID is 3.3.3.3
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
              r RIB-failure, S Stale
Origin codes: i - IGP, e - EGP, ? - incomplete

   Network          Next Hop            Metric LocPrf Weight Path
*> 192.168.1.0      2.2.2.2                                0 65001 i
RT3#

Note that the next hop for the 192.168.1.0/24 route is different in BGP and OSPF in RT2.
The advertisement of this inactive route can be suppressed on RT2 using the bgp suppress-inactive BGP route subcommand.
Note: BGP doesn’t always suppress RIB-failure or inactive routes. It suppresses RIB-failure routes only if the next hop of the BGP RIB-failure route does not match the next hop of the same route that is installed in the IP routing table.

RT2#debug ip bgp updates
BGP updates debugging is on
RT2#
RT2#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
RT2(config)#router bgp 65001
RT2(config-router)#bgp suppress-inactive
RT2(config-router)#
00:03:31: BGP(0): Revise route installing 1 of 1 route for 192.168.1.0/24 -> 1.1.1.1 to main IP table
00:03:31: BGP(0): 1.1.1.1 computing updates, afi 0, neighbor version 3, table version 4, starting at 0.0.0.0
00:03:31: BGP(0): 1.1.1.1 update run completed, afi 0, ran for 0ms, neighbor version 3, start version 4, throttled to 4
00:03:31: BGP(0): 3.3.3.3 computing updates, afi 0, neighbor version 3, table version 4, starting at 0.0.0.0
00:03:31: BGP(0): 3.3.3.3 send unreachable 192.168.1.0/24
00:03:31: BGP(0): 3.3.3.3 send UPDATE 192.168.1.0/24 -- unreachable
00:03:31: BGP(0): 3.3.3.3 1 updates enqueued (average=27, maximum=27)
00:03:31: BGP(0): 3.3.3.3 update run completed, afi 0, ran for 4ms, neighbor version 3, start version 4, throttled to 4
00:03:31: BGP(0): Revise route installing 1 of 1 route for 192.168.1.0/24 -> 1.1.1.1 to main IP table
RT2(config-router)#
RT2(config-router)#do sh ip bgp rib
Network            Next Hop                      RIB-failure   RIB-NH Matches
192.168.1.0        1.1.1.1             Higher admin distance               No
RT2(config-router)#
================================================================================
RT3#debug ip bgp updates
BGP updates debugging is on
RT3#
00:03:33: BGP(0): 2.2.2.2 rcv UPDATE about 192.168.1.0/24 -- withdrawn
00:03:33: BGP(0): no valid path for 192.168.1.0/24
00:03:33: BGP(0): nettable_walker 192.168.1.0/24 no best path
00:03:33: BGP(0): 2.2.2.2 computing updates, afi 0, neighbor version 2, table version 3, starting at 0.0.0.0
00:03:33: BGP(0): 2.2.2.2 update run completed, afi 0, ran for 0ms, neighbor version 2, start version 3, throttled to 3
RT3#
RT3#sh ip bgp

RT3#

The last column of the output of the show ip bgp rib-failure EXEC command on RT2 shows that the next hop of the BGP route does not match the next hop of the route in the RIB (IP routing table). Therefore the bgp suppress-inactive command is able to suppress the RIB-failure route.

Below shows that by changing the next hop of the route in the IP routing table to match the next hop of the BGP route, the bgp suppress-inactive command becomes ineffective and RT2 advertises the RIB-failure route to RT3.
Note: The alternative static route is ip route 192.168.1.0 255.255.255.0 12.12.12.1.
This command works as it recurses down to the same adjacency as the next hop of the BGP route.

RT2(config)#ip route 192.168.1.0 255.255.255.0 1.1.1.1
RT2(config)#
00:05:11: BGP(0): route 192.168.1.0/24 down
00:06:06: BGP(0): RIB-failure(17) present for 192.168.1.0/24, increasing table version
00:06:06: BGP(0): Revise route installing 1 of 1 route for 192.168.1.0/24 -> 1.1.1.1 to main IP table
00:06:06: BGP(0): 1.1.1.1 computing updates, afi 0, neighbor version 6, table version 8, starting at 0.0.0.0
00:06:06: BGP(0): 1.1.1.1 update run completed, afi 0, ran for 0ms, neighbor version 6, start version 8, throttled to 8
00:06:06: BGP(0): 3.3.3.3 computing updates, afi 0, neighbor version 6, table version 8, starting at 0.0.0.0
00:06:06: BGP(0): 3.3.3.3 send UPDATE (format) 192.168.1.0/24, next 2.2.2.2, metric 0, path
00:06:06: BGP(0): 3.3.3.3 1 updates enqueued (average=45, maximum=45)
00:06:06: BGP(0): 3.3.3.3 update run completed, afi 0, ran for 8ms, neighbor version 6, start version 8, throttled to 8
00:06:06: BGP(0): Revise route installing 1 of 1 route for 192.168.1.0/24 -> 1.1.1.1 to main IP table
RT2(config)#
RT2(config)#do sh ip bgp
BGP table version is 8, local router ID is 2.2.2.2
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
              r RIB-failure, S Stale
Origin codes: i - IGP, e - EGP, ? - incomplete

   Network          Next Hop            Metric LocPrf Weight Path
r>i192.168.1.0      1.1.1.1                  0    100      0 i
RT2(config)#
RT2(config)#do sh ip bgp rib-failure
Network            Next Hop                      RIB-failure   RIB-NH Matches
192.168.1.0        1.1.1.1             Higher admin distance              Yes
RT2(config)#
================================================================================
RT3#
00:06:08: BGP(0): 2.2.2.2 rcvd UPDATE w/ attr: nexthop 2.2.2.2, origin i, path 65001
00:06:08: BGP(0): 2.2.2.2 rcvd 192.168.1.0/24
00:06:08: BGP(0): Revise route installing 1 of 1 route for 192.168.1.0/24 -> 2.2.2.2 to main IP table
00:06:08: BGP(0): 2.2.2.2 computing updates, afi 0, neighbor version 3, table version 4, starting at 0.0.0.0
00:06:08: BGP(0): 2.2.2.2 update run completed, afi 0, ran for 0ms, neighbor version 3, start version 4, throttled to 4
RT3#
RT3#sh ip bgp
BGP table version is 4, local router ID is 3.3.3.3
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
              r RIB-failure, S Stale
Origin codes: i - IGP, e - EGP, ? - incomplete

   Network          Next Hop            Metric LocPrf Weight Path
*> 192.168.1.0      2.2.2.2                                0 65001 i
RT3#

2 comments:

  1. Informative. Thank you

    ReplyDelete
  2. Good information, presentation as well, please keep this good work !

    ReplyDelete