BGP · · 4 min read

Originating a Default Route in BGP

A default route (0.0.0.0/0) in BGP tells a peer "send me everything you don't have a more specific route for." ISPs send default routes to single-homed customers. Enterprises redistribute a BGP-learned default into their IGP. Hub sites advertise defaults to branches. The method you choose for injecting that default route into BGP matters — each has different behavior and failure modes.

Method 1: neighbor default-originate

The most common and cleanest method for sending a default route to a specific peer:

R1-HQ(config)# router bgp 65001
R1-HQ(config-router)# neighbor 10.2.1.1 default-originate

This tells R1-HQ to advertise 0.0.0.0/0 to the neighbor at 10.2.1.1 (R3-BRANCH). Key behavior:

Conditional Default Originate

You can make the default conditional — only advertised if a specific prefix exists in the routing table:

ip prefix-list CHECK-ISP-A seq 10 permit 100.64.0.0/18
!
route-map DEFAULT-IF-ISP-A-UP permit 10
 match ip address prefix-list CHECK-ISP-A
!
router bgp 65001
 neighbor 10.2.1.1 default-originate route-map DEFAULT-IF-ISP-A-UP

R1-HQ only sends the default to R3-BRANCH if 100.64.0.0/18 exists in the BGP table — a proxy for "ISP-A is up." If ISP-A goes down and that prefix disappears, the default is withdrawn, and R3-BRANCH can fall back to an alternative path.

Method 2: network Command

Advertise 0.0.0.0/0 using the standard network command. This requires the default route to exist in the IP routing table:

ip route 0.0.0.0 0.0.0.0 172.16.0.2
!
router bgp 65001
 network 0.0.0.0 mask 0.0.0.0

This injects 0.0.0.0/0 into the BGP table (with Origin IGP), and it's advertised to all BGP peers (subject to outbound policy). Unlike default-originate, this is not per-peer — every peer gets the default unless you filter it outbound.

Risk: if the static default route points to an interface that goes down, the default disappears from the routing table, and BGP withdraws it. To make it unconditional, point the static route to Null0:

ip route 0.0.0.0 0.0.0.0 Null0

But this creates a blackhole for traffic with no more-specific match — use with caution and only if you have eBGP-learned routes that cover your actual traffic.

Method 3: Redistribution

Redistribute a static default into BGP:

ip route 0.0.0.0 0.0.0.0 172.16.0.2
!
router bgp 65001
 redistribute static route-map ONLY-DEFAULT
!
ip prefix-list DEFAULT-ONLY seq 10 permit 0.0.0.0/0
route-map ONLY-DEFAULT permit 10
 match ip address prefix-list DEFAULT-ONLY

This gives the route Origin Incomplete (?) instead of IGP — slightly less preferred in best path step 5. Always use a route-map to limit redistribution to just the default route.

Comparison

MethodPer-peer?Requires route in RIB?OriginConditional?
default-originateYesNoIGPYes (route-map)
network 0.0.0.0No (all peers)YesIGPInherently (route must exist)
redistribute staticNo (all peers)YesIncompleteInherently (route must exist)

Recommendation: use default-originate for sending defaults to specific downstream peers. Use the network command when you need the default in your own BGP table for AS-wide distribution via iBGP.

Receiving a Default Route

By default, if your ISP sends you 0.0.0.0/0, BGP accepts it (assuming no inbound prefix-list blocks it). Some things to be aware of:

Verification

R1-HQ# show ip bgp neighbors 10.2.1.1 | include Default
  Default-originate: advertise always

! Or with conditional:
  Default-originate: advertise  route-map DEFAULT-IF-ISP-A-UP, conditionally advertised

R3-BRANCH# show ip bgp 0.0.0.0/0
BGP routing table entry for 0.0.0.0/0, version 5
Paths: (1 available, best #1, table default)
  65001
    10.2.1.1 from 10.2.1.1 (1.1.1.1)
      Origin IGP, localpref 100, valid, external, best

R3-BRANCH# show ip route 0.0.0.0
Routing entry for 0.0.0.0/0, supernet
  Known via "bgp 65002", distance 20, metric 0
  Tag 65001, type external
  Last update from 10.2.1.1 00:15:22 ago

Troubleshooting

SymptomCauseFix
default-originate configured but peer not receiving defaultBGP session not in Established state, or outbound prefix-list blocking 0.0.0.0/0Check session status. Verify no outbound filter blocks the default. Check conditional route-map if used.
Default route in BGP table but not in routing tableStatic default with lower AD (1) is preferred, or iBGP default with AD 200 losing to another sourceCheck show ip route 0.0.0.0 to see which protocol installed the default.
Conditional default withdrawn despite ISP being upThe route-map match condition doesn't match the exact prefix in the BGP tableVerify the prefix-list in the route-map matches a prefix that actually exists. Check show ip bgp [prefix].

Key Takeaways

Read next

© 2025 Ping Labz. All rights reserved.