PacketLab
BGP · Neighbor Adjacency

Troubleshooting BGP Route Advertisement

An established session is only the starting point. Follow a missing prefix from local origination through export, acceptance, next-hop resolution and installation.

Network command

R1 and R2 run eBGP. In this first fault, R1 has 10.10.1.0/24 connected, but its network statement omits the mask. Auto-summary is disabled. Each following case is an independent experiment: reset old network statements, aggregate and policy changes before moving on.

R1–R2 · directly connected eBGPIllustrative topology
AS 65010AS 65020192.0.2.0/30Gi1 · .1Gi1 · .2R1Lo0: 10.255.0.1/32R2Lo0: 10.255.0.2/32
Solid line: physical link. Interface addresses are also BGP session endpoints. Loopback0 supplies a fixed router ID; it is not the transport source.
Complete baseline configurations

R1

hostname R1
ip cef
interface Loopback0
 ip address 10.255.0.1 255.255.255.255
exit
interface GigabitEthernet1
 ip address 192.0.2.1 255.255.255.252
 no shutdown
exit
interface Loopback10
 ip address 10.10.1.1 255.255.255.0
exit
router bgp 65010
 bgp router-id 10.255.0.1
 bgp log-neighbor-changes
 timers bgp 30 90
 no bgp default ipv4-unicast
 neighbor 192.0.2.2 remote-as 65020
 address-family ipv4 unicast
  no auto-summary
  neighbor 192.0.2.2 activate
  network 10.10.1.0
 exit-address-family
end

R2

hostname R2
ip cef
interface Loopback0
 ip address 10.255.0.2 255.255.255.255
exit
interface GigabitEthernet1
 ip address 192.0.2.2 255.255.255.252
 no shutdown
exit
router bgp 65020
 bgp router-id 10.255.0.2
 bgp log-neighbor-changes
 timers bgp 30 90
 no bgp default ipv4-unicast
 neighbor 192.0.2.1 remote-as 65010
 address-family ipv4 unicast
  no auto-summary
  neighbor 192.0.2.1 activate
 exit-address-family
end
Outputs and packet decodes are illustrative, not recorded lab results. Keepalive/hold settings in these labs are explicitly 30/90 seconds. Reset each independent fault scenario to its stated baseline before testing.
R2# show ip bgp summary
BGP router identifier 10.255.0.2, local AS number 65020
Neighbor        V     AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down  State/PfxRcd
192.0.2.1       4  65010      12      12      1   0    0 00:02:00 0
R1# show ip route 10.10.1.0
Routing entry for 10.10.1.0/24
  Known via "connected", distance 0, metric 0
  * directly connected, via Loopback10

R1# show ip bgp 10.10.1.0/24
% Network not in table

For this address family, the unmasked statement requests a classful network; it does not match the installed /24. Replace it on R1.

router bgp 65010
 address-family ipv4 unicast
  no network 10.10.1.0
  network 10.10.1.0 mask 255.255.255.0
 exit-address-family
R2# show ip bgp 10.10.1.0/24
     Network          Next Hop            Metric LocPrf Weight Path
*>   10.10.1.0/24     192.0.2.1            0             0 65010 i
R2# show ip route 10.10.1.0
Routing entry for 10.10.1.0/24
  Known via "bgp 65020", distance 20, metric 0
  * 192.0.2.1, via GigabitEthernet1

Check the installed mask rather than assuming a network command activates an interface as an IGP might.

Summarization

Use the same eBGP link, with prior originations removed. Configure a new connected component and an aggregate on R1, initially without originating the component into BGP.

interface Loopback20
 ip address 172.16.10.1 255.255.255.0
exit
router bgp 65010
 address-family ipv4 unicast
  aggregate-address 172.16.0.0 255.255.0.0
 exit-address-family
R1# show ip bgp 172.16.0.0/16
% Network not in table

R1# show ip bgp 172.16.10.0/24
% Network not in table

An aggregate needs a more-specific component in the BGP table. A connected route in the IP table alone is not enough. Originate that component on R1:

router bgp 65010
 address-family ipv4 unicast
  network 172.16.10.0 mask 255.255.255.0
 exit-address-family
R2# show ip route bgp
B    172.16.0.0/16 [20/0] via 192.0.2.1
B    172.16.10.0/24 [20/0] via 192.0.2.1

The default aggregate does not suppress its components. If the requirement is summary-only, change the aggregate on R1:

router bgp 65010
 address-family ipv4 unicast
  aggregate-address 172.16.0.0 255.255.0.0 summary-only
 exit-address-family
R2# show ip route bgp
B    172.16.0.0/16 [20/0] via 192.0.2.1
Alternative: explicit summary supported by a discard route

This is a separate origination method. On R1, remove the aggregate and component network statement before applying the exact summary route and network statement.

router bgp 65010
 address-family ipv4 unicast
  no aggregate-address 172.16.0.0 255.255.0.0 summary-only
  no network 172.16.10.0 mask 255.255.255.0
 exit-address-family
exit
ip route 172.16.0.0 255.255.0.0 Null0
router bgp 65010
 address-family ipv4 unicast
  network 172.16.0.0 mask 255.255.0.0
 exit-address-family
R2# show ip route bgp
B    172.16.0.0/16 [20/0] via 192.0.2.1

The more-specific connected /24 still delivers traffic there. Uncovered destinations following the /16 discard route are dropped. This method does not require a component in the BGP table.

Unexpected auto-summary

In an independent legacy-image experiment, a classful 10.0.0.0 statement with auto-summary enabled can originate a /8 from the connected 10.10.1.0/24 component. Inspect the actual configuration rather than assuming the default.

R1# show ip protocols | include summarization
  Automatic route summarization is enabled

R2# show ip route bgp
B    10.0.0.0/8 [20/0] via 192.0.2.1

Remove the broad statement and explicitly originate the intended /24 on R1. This also makes the fix independent of implicit classful masks.

router bgp 65010
 address-family ipv4 unicast
  no network 10.0.0.0
  no auto-summary
  network 10.10.1.0 mask 255.255.255.0
 exit-address-family
R2# show ip route bgp
B    10.10.1.0/24 [20/0] via 192.0.2.1

Current versions normally disable this legacy behavior. The Auto-summary lesson covers the supporting-image experiment.

Route-map filtering

Reset to the working /24 origination case. Here R1’s outbound route map has a permit clause that references a prefix list denying the intended prefix. The match fails, then the route map’s implicit deny excludes it.

ip prefix-list EXPORT-ONE seq 5 deny 10.10.1.0/24
route-map TO-R2 permit 10
 match ip address prefix-list EXPORT-ONE
exit
router bgp 65010
 address-family ipv4 unicast
  neighbor 192.0.2.2 route-map TO-R2 out
 exit-address-family
R1# show ip bgp neighbors 192.0.2.2 | include route map|Route map
  Route map for outgoing advertisements is TO-R2

R1# show ip prefix-list EXPORT-ONE
ip prefix-list EXPORT-ONE: 1 entries
  seq 5 deny 10.10.1.0/24

R2# show ip bgp 10.10.1.0/24
% Network not in table

Correct the narrow permit on R1, retaining the explicit export policy. Re-evaluate outbound updates with a soft outbound clear.

ip prefix-list EXPORT-ONE seq 5 permit 10.10.1.0/24
R1# clear ip bgp 192.0.2.2 soft out
R2# show ip bgp 10.10.1.0/24
     Network          Next Hop            Metric LocPrf Weight Path
*>   10.10.1.0/24     192.0.2.1            0             0 65010 i

Local BGP presence does not prove outbound permission or remote acceptance. A global filter summary may omit neighbor-specific policy; inspect the neighbor, route map and prefix list.

iBGP advertisement rule

In a separate three-router AS, R2 learns R1’s /24 through iBGP but does not relay it to R3. OSPF makes both link subnets reachable, keeping this test separate from a next-hop reachability fault.

Separate lab · R1–R2–R3 in AS 65010Illustrative topology
AS 65010192.0.2.0/30192.0.2.4/30Gi1 .1Gi1 .2Gi2 .5Gi1 .6R1Lo10: 10.10.1.1/24R2Transit and iBGPR3Receiving router
Solid lines: physical links. Initially the only iBGP sessions are R1–R2 and R2–R3. The repair adds an R1–R3 logical session over the existing IP path; there is no extra physical cable.
Complete starting configurations · partial iBGP mesh

R1

hostname R1
ip cef
interface Loopback0
 ip address 10.255.0.1 255.255.255.255
exit
interface Loopback10
 ip address 10.10.1.1 255.255.255.0
exit
interface GigabitEthernet1
 ip address 192.0.2.1 255.255.255.252
 no shutdown
exit
router ospf 1
 router-id 10.255.0.1
 network 192.0.2.0 0.0.0.7 area 0
exit
router bgp 65010
 bgp router-id 10.255.0.1
 bgp log-neighbor-changes
 timers bgp 30 90
 no bgp default ipv4-unicast
 neighbor 192.0.2.2 remote-as 65010
 address-family ipv4 unicast
  no auto-summary
  neighbor 192.0.2.2 activate
  network 10.10.1.0 mask 255.255.255.0
 exit-address-family
end

R2

hostname R2
ip cef
interface Loopback0
 ip address 10.255.0.2 255.255.255.255
exit
interface GigabitEthernet1
 ip address 192.0.2.2 255.255.255.252
 no shutdown
exit
interface GigabitEthernet2
 ip address 192.0.2.5 255.255.255.252
 no shutdown
exit
router ospf 1
 router-id 10.255.0.2
 network 192.0.2.0 0.0.0.7 area 0
exit
router bgp 65010
 bgp router-id 10.255.0.2
 bgp log-neighbor-changes
 timers bgp 30 90
 no bgp default ipv4-unicast
 neighbor 192.0.2.1 remote-as 65010
 neighbor 192.0.2.6 remote-as 65010
 address-family ipv4 unicast
  no auto-summary
  neighbor 192.0.2.1 activate
  neighbor 192.0.2.6 activate
 exit-address-family
end

R3

hostname R3
ip cef
interface Loopback0
 ip address 10.255.0.3 255.255.255.255
exit
interface GigabitEthernet1
 ip address 192.0.2.6 255.255.255.252
 no shutdown
exit
router ospf 1
 router-id 10.255.0.3
 network 192.0.2.0 0.0.0.7 area 0
exit
router bgp 65010
 bgp router-id 10.255.0.3
 bgp log-neighbor-changes
 timers bgp 30 90
 no bgp default ipv4-unicast
 neighbor 192.0.2.5 remote-as 65010
 address-family ipv4 unicast
  no auto-summary
  neighbor 192.0.2.5 activate
 exit-address-family
end
R2# show ip bgp 10.10.1.0/24
     Network          Next Hop            Metric LocPrf Weight Path
*>i  10.10.1.0/24     192.0.2.1            0    100      0 i
R3# show ip bgp 10.10.1.0/24
% Network not in table

Add the missing logical R1–R3 session using their interface addresses. Both source addresses are reachable through OSPF; explicitly choose them for the multi-hop internal peering.

R1

router bgp 65010
 neighbor 192.0.2.6 remote-as 65010
 neighbor 192.0.2.6 update-source GigabitEthernet1
 address-family ipv4 unicast
  neighbor 192.0.2.6 activate
 exit-address-family

R3

router bgp 65010
 neighbor 192.0.2.1 remote-as 65010
 neighbor 192.0.2.1 update-source GigabitEthernet1
 address-family ipv4 unicast
  neighbor 192.0.2.1 activate
 exit-address-family
R3# show ip bgp 10.10.1.0/24
     Network          Next Hop            Metric LocPrf Weight Path
*>i  10.10.1.0/24     192.0.2.1            0    100      0 i

R3 now learns directly from R1. A route reflector is another design option, covered later; changing an AS number is not the fix for a missing internal session.

Unreachable next hop

Finally, use the three-router Next Hop Self lab: R1–R2 are in AS 65012, R3 is in AS 65030, and R3 originates 203.0.113.0/24. With no external-transit route on R1, its received path has next hop 192.0.2.6 but cannot be installed.

R1# show ip bgp 203.0.113.0/24
     Network          Next Hop            Metric LocPrf Weight Path
i    203.0.113.0/24   192.0.2.6            0    100      0 65030 i
R1# show ip route 192.0.2.6
% Network not in table

R1# show ip route 203.0.113.0
% Network not in table

On R2, rewrite the next hop toward R1:

router bgp 65012
 address-family ipv4 unicast
  neighbor 192.0.2.1 next-hop-self
 exit-address-family
R1# show ip bgp 203.0.113.0/24
     Network          Next Hop            Metric LocPrf Weight Path
*>i  203.0.113.0/24   192.0.2.2            0    100      0 65030 i
R1# show ip route 203.0.113.0
Routing entry for 203.0.113.0/24
  Known via "bgp 65012", distance 200, metric 0
  * 192.0.2.2, via GigabitEthernet1

Follow the evidence in order: local IP route → local BGP path → export policy → remote BGP path → next-hop resolution → installed route. A missing UPDATE, an unusable BGP path and a RIB failure are different problems.

Key Takeaways

  • Verify an exact installed prefix before expecting a network statement to originate it.
  • An aggregate-address needs a more-specific component in the BGP table, not only in the IP table.
  • Inspect legacy auto-summary and neighbor-specific route maps when the received prefix set is unexpected.
  • Ordinary iBGP does not relay an iBGP-learned route to another internal peer.
  • Separate missing advertisements from received but unresolved paths and from RIB installation failures.

Route Advertisement Troubleshooting Quiz

Six questions · four options each · select one answer per question. Submit all answers to see your score and explanations.

1. A /24 is connected but the BGP network statement requests a different mask. What should you fix?
2. An aggregate exists in configuration, but no component is in the BGP table. What is expected?
3. A route-map permit clause references a prefix list denying the candidate. With no other match, what happens?
4. R2 learns a route from iBGP peer R1. Why does ordinary R2 not advertise it to iBGP peer R3?
5. R1 receives a route but cannot resolve its external next hop. Which targeted change can help?
6. Which statement about an explicit static summary-to-Null0 plus matching network statement is correct?
Protocol and command references

BGP protocol and finite state machine · Troubleshooting unadvertised BGP routes · Router-symbol attribution.