[c-nsp] bgp/ospf default route interaction

Michael Ulitskiy mulitskiy at acedsl.com
Mon Aug 27 13:52:36 EDT 2012


Hello,

I'm playing with injecting default route using bgp and/or ospf. I'm using dynamips, emulating 7200
routers running 12.4(23) IOS. I'm seeing some behavior I cannot explain, so I thought I'd ask the list.
Here's the setup:
- 2 border routers connected to 2 upstreams using EBGP and running both OSPF and IBGP internally

 ISP1                       ISP2
   |                         |
   |EBGP                     |EBGP
   |                         |
CORE1 -------------------- CORE2
              IBGP
              OSPF

Both CORE routers learn BGP defaults from their upstreams. CORE1 sets localpref to 150.

CORE1:
router bgp 65100
 neighbor <ISP1> remote_as <ISP1_AS>
 neighbor <ISP1> route-map FROM-ISP1 in
 neighbor <CORE2> remote_as 65100
 neighbor <CORE2> next-hop-self
!
ip prefix-list DEFAULT-ROUTE seq 5 permit 0.0.0.0/0
!
route-map FROM-ISP1
 match ip address prefix-list DEFAULT-ROUTE
 set local-preference 150

Also both routers originate default in OSPF:

CORE1:
router ospf 100
 default-information originate

OSPF default is needed because other routers in the AS (not configured in this lab) won't run BGP and need
default route through OSPF. Config on CORE2 is the same except setting bgp local preference.
so with this config here's what I see:

CORE1#sh ip bgp
BGP table version is 57, local router ID is <CORE1>
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
*> 0.0.0.0          <ISP1_next_hop>         0    150      0  <ISP1_AS> i

CORE1#sh ip route 0.0.0.0
Routing entry for 0.0.0.0/0, supernet
  Known via "bgp 65100", distance 20, metric 0, candidate default path
  Tag 65001, type external
  Last update from <ISP1> 00:04:04 ago
  Routing Descriptor Blocks:
  * <ISP1>, from <ISP1>, 00:04:04 ago
      Route metric is 0, traffic share count is 1
      AS Hops 1
      Route tag 65001

CORE2#sh ip bgp        
BGP table version is 60, local router ID is <CORE2>
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>i0.0.0.0          <CORE1>                  0    150      0 <ISP1_AS> i
r                   <ISP2_next_hop>          0             0 <ISP2_AS> i

CORE2#sh ip route 0.0.0.0
Routing entry for 0.0.0.0/0, supernet
  Known via "ospf 100", distance 110, metric 1, candidate default path
  Tag 100, type extern 2, forward metric 10
  Last update from <CORE1> on FastEthernet0/0.2000, 00:02:32 ago
  Routing Descriptor Blocks:
  * <CORE1>, from <CORE1>, 00:02:32 ago, via FastEthernet0/0.2000
      Route metric is 1, traffic share count is 1
      Route tag 100

Now as expected on CORE2 IBGP default conflicts with OSPF default and OSPF default wins due to lower AD.
IBGP default is in 'RIB-failure' status and OSPF default is in routing table.

Now on CORE2 I add 'always' keyword to OSPF 'default-originate' command, making it:

CORE2:
router ospf 100
 default-information originate always

For some reason I don't understand it changes the game completely. Now IBGP route is preferred over OSPF:

CORE2#sh ip bgp
BGP table version is 61, local router ID is <CORE2>
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
*>i0.0.0.0          <CORE1>                  0    150      0 <ISP1_AS> i
*                   <ISP2_next_hop>          0             0 <ISP2_AS> i

CORE2#sh ip route 0.0.0.0       
Routing entry for 0.0.0.0/0, supernet
  Known via "bgp 65100", distance 200, metric 0, candidate default path
  Tag 65001, type internal
  Last update from <CORE1> 00:03:56 ago
  Routing Descriptor Blocks:
  * <CORE1>, from <CORE1>, 00:03:56 ago
      Route metric is 0, traffic share count is 1
      AS Hops 1
      Route tag 65001

Why is that? Can somebody explain it to me please?

Thank you,
Michael


More information about the cisco-nsp mailing list