In this post we will set up a conditional default route for ospf. First we have the following network diagram.
The router junos1 has a bgp session to R1 and is connected to junos2 and using IBGP and OSPF. Junos2 is then connected to Junos3 via IBGP and OSPF.
[edit] root# show protocols bgp group External { export BGP_Redis; neighbor 192.168.11.1 { peer-as 100; } } group IBGP { type internal; export BGP_Redis; neighbor 20.20.20.20 { local-address 10.10.10.10; } } [edit] root# show policy-options policy-statement BGP_Redis term Loopback { from { protocol direct; route-filter 10.10.10.10/8 exact; } then accept; } then accept;
root# run show bgp summary Groups: 2 Peers: 2 Down peers: 0 Table Tot Paths Act Paths Suppressed History Damp State Pending inet.0 145 144 0 0 0 0 Peer AS InPkt OutPkt OutQ Flaps Last Up/Dwn State|#Active/Received/Accepted/Damped... 20.20.20.20 200 3212 4386 0 2 23:13:46 48/48/48/0 0/0/0/0 192.168.11.1 100 21 15 0 731 2:57 96/97/97/0 0/0/0/0
We are reserving routes from R1 and want this to be our default gateway out of our network. The first thing we need to do is to set up a policy for the default route.
[edit] root# show policy-options policy-statement genroute term 1 { from { protocol bgp; route-filter 1.0.0.0/8 exact; } then accept; } term end { then reject; }
This policy matches a route learnt from bgp and matach 1.0.0.0/8 network address. This is an address learnt from R1. We now need to set up the static route.
[edit] root# show routing-options generate { route 0.0.0.0/0 policy genroute; }
This crates a route 0.0.0.0/0 on the condition of the policy “genroute”. Once this is done if you have learnt 1.0.0.0/8 via bgp then you will get a default route.
[edit] root# run show route inet.0: 157 destinations, 158 routes (157 active, 0 holddown, 0 hidden) + = Active Route, - = Last Active, * = Both 0.0.0.0/0 *[Aggregate/130] 00:57:03 > to 192.168.11.1 via em0.0 1.0.0.0/8 *[BGP/170] 00:03:46, MED 0, localpref 100 AS path: 100 ? > to 192.168.11.1 via em0.0 2.0.0.0/8 *[BGP/170] 00:03:46, MED 0, localpref 100 AS path: 100 ? > to 192.168.11.1 via em0.0 3.0.0.0/8 *[BGP/170] 00:03:46, MED 0, localpref 100 AS path: 100 ?
Now if we remove the route 1.0.0.0/8 from R1 this will then remove the default route from the routing table.
! ip access-list standard lo1 permit 1.0.0.0 0.255.255.255 permit 192.168.11.0 0.0.0.255 ! ! route-map redis_conn deny 10 match ip address lo1 ! route-map redis_conn permit 20 !
router bgp 100 redistribute connected route-map redis_conn
now we have blocked the route 1.0.0.0/8 from being advertised let have a look at the routes on Junos1
[edit] root# run show route inet.0: 108 destinations, 109 routes (107 active, 0 holddown, 1 hidden) + = Active Route, - = Last Active, * = Both 2.0.0.0/8 *[BGP/170] 00:00:54, MED 0, localpref 100 AS path: 100 ? > to 192.168.11.1 via em0.0 3.0.0.0/8 *[BGP/170] 00:00:54, MED 0, localpref 100 AS path: 100 ?
[edit] root# run show bgp summary Groups: 2 Peers: 2 Down peers: 0 Table Tot Paths Act Paths Suppressed History Damp State Pending inet.0 96 95 0 0 0 0 Peer AS InPkt OutPkt OutQ Flaps Last Up/Dwn State|#Active/Received/Accepted/Damped... 20.20.20.20 200 3259 4449 0 2 23:29:32 0/0/0/0 0/0/0/0 192.168.11.1 100 12 9 0 734 1:21 95/96/96/0 0/0/0/0
We can see from the BGP summary that we have learnt 1 less route and we don’t have the 1.0.0.0/8 and the default route in our routing table.
now lets add this back and set up a policy to send our default to our ospf neighbours.
root# show policy-options policy-statement OSPF_Default term 1 { from { route-filter 0.0.0.0/0 exact; } then accept; }
[edit] root# show protocols ospf export OSPF_Default;
now lets verify if this.
root# run show route inet.0: 157 destinations, 158 routes (157 active, 0 holddown, 0 hidden) + = Active Route, - = Last Active, * = Both 0.0.0.0/0 *[Aggregate/130] 01:14:24 > to 192.168.11.1 via em0.0 1.0.0.0/8 *[BGP/170] 00:00:33, MED 0, localpref 100 AS path: 100 ? > to 192.168.11.1 via em0.0 2.0.0.0/8 *[BGP/170] 00:00:33, MED 0, localpref 100 AS path: 100 ? > to 192.168.11.1 via em0.0 3.0.0.0/8 *[BGP/170] 00:00:33, MED 0, localpref 100 AS path: 100 ? > to 192.168.11.1 via em0.0
[edit] root@Router2# run show ospf neighbor Address Interface State ID Pri Dead 10.1.12.1 em0.0 Full 10.10.10.10 128 37 10.1.23.3 em1.0 Full 30.30.30.30 128 32 [edit] root@Router2# run show route inet.0: 60 destinations, 60 routes (60 active, 0 holddown, 0 hidden) + = Active Route, - = Last Active, * = Both 0.0.0.0/0 *[OSPF/150] 00:00:08, metric 0, tag 0 > to 10.1.12.1 via em0.0
[edit] root@Router2# run show route 192.168.11.1 inet.0: 60 destinations, 60 routes (60 active, 0 holddown, 0 hidden) + = Active Route, - = Last Active, * = Both 0.0.0.0/0 *[OSPF/150] 00:00:06, metric 0, tag 0 > to 10.1.12.1 via em0.0 [edit] root@Router2# run ping 192.168.11.1 rapid PING 192.168.11.1 (192.168.11.1): 56 data bytes !!!!! --- 192.168.11.1 ping statistics --- 5 packets transmitted, 5 packets received, 0% packet loss round-trip min/avg/max/stddev = 2.574/4.225/8.155/2.029 ms
We have now set up a conditional default route using OSPF.