BGP support multiple ways to advertise routes to peer :

  1. Issue network command under router BGP.
  2. Redistribute Interior Gateway Protocol into BGP.
  3. Propagate BGP routes learned from other internal BGP (iBGP) or external BGP (eBGP) peers. Only the best paths received from BGP peers are propagated.
  4. Issue the aggregate-address command.

Routes announced sing a basic Network statement

When routes are announced using a basic network statement, the behavior of the network command varies depending on whether auto-summary is enabled or disabled. When auto-summary is enabled, it summarizes the locally originated BGP networks (network x.x.x.x) to their classful boundaries (auto-summary is enabled by default in BGP). If a subnet exists in the routing table and these three conditions are satisfied, any subnet (component route) of that classful network in the local routing table prompts BGP to install the classful network into the BGP table:

  • Auto-summary enabled
  • Classful network statement for a network in the routing table
  • Classful mask on that network statement

When auto-summary is disabled, the routes introduced locally into the BGP table are not summarized to their classful boundaries.

For example, BGP introduces the classful network 10.0.0.0 mask 255.0.0.0 in the BGP table if these conditions are met:

  • The subnet in the routing table is 10.10.10.0 mask 255.255.255.0.
  • You configure network 10.0.0.0 under the router bgp command.
  • Auto-summary is enabled.

If these conditions are not all met, BGP does not install an entry in the BGP table unless there is an exact match in the IP routing table.

Troubleshooting Steps to resolve issue:

With auto-summary enabled on INB_R1, the router is not able to announce classful network 10.0.0.0/8 to INB_R2.

  1. Use below command to verify  if INB_R1 announces 10.0.0.0/8 to INB_R2. The output shown confirms that INB_R1 does not announce 10.0.0.0/8 to INB_R2.

#Show ip bgp neighbors 192.168.0.2 advertised-routes

2.Check the running configuration. The example shown illustrates that INB_R1 is configured with classful network statement. Auto-summary is enabled by default in the Cisco IOS software version used for this scenario.

3.Show running-config | begin bgp

router bgp 1

network 10.0.0.0

neighbor 192.168.0.2 remote-as 2

4.Check to see if you have a component route (a classful route or a subnet route) of network 10.0.0.0/8 in the routing table.

5.INB_R1#show ip route 10.0.0.0 255.0.0.0 longer-prefixes

Because there is no component route (no classful route or subnet route ) in the INB_R1 IP routing table, the network 10.0.0.0 in not installed in the BGP table. The minimum requirement for a prefix configured under the network command to be installed in a BGP table is to have a component route in the IP routing table. So make sure that INB_R1 has a component route for network 10.0.0.0/8 either by learning it through IGP or through static configuration. In the example shown, the static route is configured to null 0.

6.INB_R1(config)# ip route 10.6.10.0 255.255.255.0 null 0 200

7.As soon as the IP routing table has a component route for 10.0.0.0/8, BGP installs a classful network in the BGP table.

8.INB_R1# show ip route 10.0.0.0  255.0.0.0 longer-prefixes

        6.0.0.0/24 is subnetted, 1 subnets

S       6.6.10.0 is directly connected, Null0

9.To bring the change into effect in BGP and start announcing network 10.0.0.0/8 to INB_R2, you must either clear the BGP neighbor or do a soft reset to peer. This example shows a soft reset outbound to peer 192.168.0.2 to bring the changes into effect.

INB_R1# clear ip bgp 10.10.10.2 [soft] out

10.To bring the change into effect in BGP and start announcing network 10.0.0.0/8 to INB_R2, you must either clear the BGP neighbor or do a soft reset to peer. This example shows a soft reset outbound to peer 198.168.0.2 to bring the changes into effect.

INB_R1# show ip bgp | include 10.0.0.0

                  *> 10.0.0.0 0.0.0.0 0 32768 i

11.The show ip bgp command confirms that classful network 10.0.0.0/8 is introduced into BGP.

     INB_R1# show ip bgp | include 10.0.0.0

            *> 10.0.0.0 0.0.0.0 0 32768 i

12.Confirm that INB_R1 announces routes to INB2.

13.INB_R1# show ip bgp neighbors 192.168.0.2 advertised-routes | include 10.0.0.0

           *> 10.0.0.0 0.0.0.0 0 32768 i

Note: With auto-summary disabled, BGP installs network 10.0.0.0/8 only when there is a exact matching route in the routing table.

Routes announced using the aggregate-address command

BGP allows the aggregation of specific routes into one route using the aggregate-address address mask command. Aggregation applies to routes that exist in the BGP routing table. This is in contrast to the network command, which applies to the routes that exists in IP routing table. Aggregation can be performed if at least one or more of the specific routes of the aggregate address exists in the BGP routing table.

Troubleshooting Steps:

In this network diagram, INB_R1 is unable to announce the aggregate address 192.168.1.0/22 to INB_R2. Network 192.168.1.0/22 aggregates these three Class C address spaces:

  • 192.168.1.0/24
  • 192.168.2.0/24
  • 192.168.3.0/24
  1. Confirm that INB_R1 is not announcing 192.168.1.0/22 to INB_R2.
  2. NB_R1 # show ip bgp neighbors 10.10.10.2 advertised-routes | include 192.168.1.0
  3. Check the running configuration.

router bgp 1

aggregate-address 192.168.1.0255.255.252.0 summary-only

neighbor 10.10.10.2 remote-as 2

INB_R1 is configured to announce only the aggregate address to INB2 using the “summary-only” attribute.

4.Check the IP routing table.

INB_R1 # show ip route 192.168.1.0 255.255.252.0 longer-prefixes

S    192.168.3.0/24 is directly connected, Null0

The IP routing table has the component route of aggregate 192.168.1.0/22; however for an aggregate address to be announced to a peer, a component route must exist in the BGP routing table rather than in the IP routing table. The IP routing table has the component route of aggregate 192.168.1.0/22; however for an aggregate address to be announced to a peer, a component route must exist in the BGP routing table rather than in the IP routing table.

5.Check to see if a component route exists in the BGP routing table.

INB_R1 # show ip bgp 192.168.1.0 255.255.252.0 longer

The output confirms that the BGP table does not have a component route, so the next logical step is to ensure that a component route exists in the BGP table.

6.In this example, a component route 192.168.3.0 is installed into the BGP table using the network command.

INB_R1 (config)# router bgp 1

INB_R1 (config-router)# network 192.168.3.0

7.Check to see if the component route exists in the BGP table.

INB_R1 # show ip bgp 192.168.1.0 255.255.252.0 longer-prefixes

BGP table version is 8, local router ID is 10.10.10.1

Status codes: s suppressed, d damped, h history, * valid, > best, i – internal

Origin codes: i – IGP, e – EGP, ? – incomplete

 Network          Next Hop            Metric LocPrf Weight Path

*> 192.168.1.0/22             0.0.0.0                            32768 i

s> 192.168.3.0     0.0.0.0                  0         32768 i

The “s” means that the component route is suppressed due to the “summary-only” argument.

8.Confirm that the aggregate is announced to INB_R2.

9. INB_R1 # show ip bgp n 10.10.10.2 advertised-routes | include 192.168.1.0/22

*> 192.168.1.0/22      0.0.0.0

Unable to announce iBGP-Learned routes

A BGP router with synchronization enabled will not advertise iBGP-learned routes to other eBGP peers if it is not able to validate those routes in its IGP. Assuming that IGP has a route to iBGP-learned routes, the router will announce the iBGP routes to eBGP peers. Otherwise the router treats the route as not being synchronized with IGP and does not advertise it. Disabling synchronization using the no synchronization command under router BGP prevents BGP from validating iBGP routes in IGP.

Troubleshooting Steps:

In the diagram shown, INB_R1 learns prefix 130.130.130.0/24 from INB_R3 through iBGP and is unable to announce it to eBGP peer INB2.

  1. First check INB_R1.
  2. INB_R1# show ip bgp neighbors 10.10.20.2 advertised-routes | include 130.130.130.0

The above output confirms that INB1 is not announcing prefix 130.130.130.0/24 to INB_R2. Look at the BGP table on INB_R1:

INB_R1# show ip bgp 130.130.130 255.255.255.0 longer

BGP table version is 4, local router ID is 10.10.20.1

Status codes: s suppressed, d damped, h history, * valid, > best, i – internal

Origin codes: i – IGP, e – EGP, ? – incomplete

   Network          Next Hop            Metric LocPrf Weight Path

* i130.130.130.0/24 10.10.20.3               0    100      0 i

Network 130.130.130.0/24 exists in the BGP table. However the network 130.130.130.0/24 does not have the status code of best route (>). This means that the BGP Best Path Selection Algorithm did not choose this prefix as the best path. Since only the best paths are announced to BGP peers, network 130.130.130.0/24 is not announced to INB2. Next, you need to troubleshoot why the BGP path selection criteria did not select this network as the best route.

3.Examine the output of the show ip bgp prefix command to give you more details on why the prefix was not chosen as the best route nor installed in IP routing table.

4.INB_R1# show ip bgp 130.130.130.0

BGP routing table entry for 130.130.130.0/24, version 4

Paths: (1 available, no best path)

Not advertised to any peer

Local

10.10.20.3 from 10.10.20.3 (130.130.130.3)

      Origin IGP, metric 0, localpref 100, valid, internal, not synchronized

The output shows that prefix 130.130.130.0/24 is not synchronized.

5.Check the running BGP configuration.

6.INB_R1# show ip protocols

Routing Protocol is “bgp 1”

Outgoing update filter list for all interfaces is not set

 Incoming update filter list for all interfaces is not set

 IGP synchronization is enabled

Automatic route summarization is disabled

Neighbor(s):

   Address          FiltIn FiltOut DistIn DistOut Weight RouteMap

   10.10.10.2                                          

   10.10.20.3                                          

  Maximum path: 1

 Routing for Networks:

 Routing Information Sources:

   Gateway         Distance      Last Update

   10.10.20.3           200      01:48:24

  Distance: external 20 internal 200 local 200

The above output shows that BGP synchronization is enabled. BGP synchronization is enabled by default in Cisco IOS software.

7.Configure BGP to disable synchronization. Issue the no synchronization command under router BGP.

INB_R1 (config)# router bgp 1

INB_R1 (config-router)# no synchronization

INB_R1# show ip protocols

Routing Protocol is “bgp 1”

 Outgoing update filter list for all interfaces is not set

 Incoming update filter list for all interfaces is not set

 IGP synchronization is disabled

  Automatic route summarization is disabled

 Neighbor(s):

  Address          FiltIn FiltOut DistIn DistOut Weight RouteMap

   10.10.10.2                                          

   10.10.20.3                                          

 Maximum path: 1

 Routing for Networks:

 Routing Information Sources:

   Gateway         Distance      Last Update

   10.10.20.3           200      01:49:24

  Distance: external 20 internal 200 local 200

During the next run of the BGP scanner, which scans the BGP table every 60 seconds and makes decision based on BGP path selection criteria, network 130.130.130.0 will be installed (since the synchronization is disabled). This means that the maximum time for the route to be installed is 60 seconds, but it may be less, depending on when the no synchronization command is configured and when the next instance of the BGP scanner occurs. So it is best to wait for 60 seconds before the next step of verification.

8.Verify that the route has been installed.

The output shown confirms that prefix 130.130.130.0/24 is the best route; therefore, it is installed into the IP routing table and is propagated to peer 10.10.10.2.

INB_R1# show ip bgp 130.130.130.0

BGP routing table entry for 130.130.130.0/24, version 5

Paths: (1 available, best #1, table Default-IP-Routing-Table)

  Advertised to non peer-group peers:

  10.10.10.2

  Local

    10.10.20.3 from 10.10.20.3 (130.130.130.3)

      Origin IGP, metric 0, localpref 100, valid, internal, best

INB_R1# show ip bgp neighbors 10.10.10.2 advertised-routes | include 130.130.130.0/24

*>i130.130.130.0/24 10.10.20.3               0    100      0 i

Routes Announced with redistribute Static

If the routers are connected with two links, and the routes are learned through BGP and floating static routes, the floating static routes are installed in the routing table. This occurs if the static routes are redistributed in the case of BGP route failure. If the BGP routes come back online, the floating static routes in the routing table are not changed to reflect the BGP routes.

This issue can be solved if you remove the redistribute static command under the BGP process to avoid the prioritization of floating static routes over BGP routes.