This post is still part of my learning journey towards CCIE certifications. I will be going through an IP SLA lab exercises which shows the concepts of IP SLA. On my lab, I have Melbourne office that are connected to two different ISP. Both ISP have a route back (static routes) for the Melbourne LAN segment. I have OSPF routing protocol enabled between ISP-A , ISP-B and Sydney router. This will be one option for Melbourne router to automatically learned which ISP paths is available to reach the Loopback interface of Sydney.
Here is my laboratory topology,
Lab Objective:
1. Configured as per the topology above.
2. Enable IP SLA on Melbourne router.
Here are my router configurations:
Melbourne#sh run | inc ip route
ip route 10.10.14.4 255.255.255.255 192.168.12.2
ip route 10.10.14.4 255.255.255.255 192.168.13.2 10 <<< Floating Static as backup link
ip route 192.168.24.0 255.255.255.0 192.168.12.2
ip route 192.168.24.0 255.255.255.0 192.168.13.2 10 <<< Floating Static as backup link
ip route 192.168.34.0 255.255.255.0 192.168.13.3
ip route 192.168.34.0 255.255.255.0 192.168.12.2 10 <<< Floating Static as backup link
Melbourne#
ISP-A#sh run | inc ip route
ip route 172.16.0.0 255.255.255.0 192.168.12.1
ISP-A#sh run | sec ospf
router ospf 1
network 192.168.24.0 0.0.0.255 area 0
ISP-B#sh run | inc ip route
ip route 172.16.0.0 255.255.255.0 192.168.13.1
ISP-B#sh run | sec ospf
router ospf 1
network 192.168.34.0 0.0.0.255 area 0
ISP-B#
Sydney#sh run | sec ospf
router ospf 1
network 10.10.14.4 0.0.0.0 area 1
network 192.168.24.0 0.0.0.255 area 0
network 192.168.34.0 0.0.0.255 area 0
Sydney#
Verifications:
1. Let’s check the OSPF adjacencies, Sydney router should provide the complete details if adjacency is formed.
Sydney#show ip ospf neighbor
Neighbor ID Pri State Dead Time Address Interface
192.168.24.2 0 FULL/ – 00:00:33 192.168.24.2 Serial3/3
192.168.34.3 0 FULL/ – 00:00:39 192.168.34.3 Serial3/2
Sydney#
Both ISP-A & ISP-B have the complete routing table
ISP-A#show ip route
Codes: L – local, C – connected, S – static, R – RIP, M – mobile, B – BGP
D – EIGRP, EX – EIGRP external, O – OSPF, IA – OSPF inter area
N1 – OSPF NSSA external type 1, N2 – OSPF NSSA external type 2
E1 – OSPF external type 1, E2 – OSPF external type 2
i – IS-IS, su – IS-IS summary, L1 – IS-IS level-1, L2 – IS-IS level-2
ia – IS-IS inter area, * – candidate default, U – per-user static route
o – ODR, P – periodic downloaded static route, H – NHRP, l – LISP
+ – replicated route, % – next hop override
Gateway of last resort is not set
10.0.0.0/32 is subnetted, 1 subnets
O IA 10.10.14.4 [110/65] via 192.168.24.4, 00:13:01, Serial3/3
172.16.0.0/24 is subnetted, 1 subnets
S 172.16.0.0 [1/0] via 192.168.12.1
192.168.12.0/24 is variably subnetted, 2 subnets, 2 masks
C 192.168.12.0/24 is directly connected, Serial3/0
L 192.168.12.2/32 is directly connected, Serial3/0
192.168.24.0/24 is variably subnetted, 2 subnets, 2 masks
C 192.168.24.0/24 is directly connected, Serial3/3
L 192.168.24.2/32 is directly connected, Serial3/3
O 192.168.34.0/24 [110/128] via 192.168.24.4, 00:13:01, Serial3/3
ISP-A#
ISP-B#show ip route
Codes: L – local, C – connected, S – static, R – RIP, M – mobile, B – BGP
D – EIGRP, EX – EIGRP external, O – OSPF, IA – OSPF inter area
N1 – OSPF NSSA external type 1, N2 – OSPF NSSA external type 2
E1 – OSPF external type 1, E2 – OSPF external type 2
i – IS-IS, su – IS-IS summary, L1 – IS-IS level-1, L2 – IS-IS level-2
ia – IS-IS inter area, * – candidate default, U – per-user static route
o – ODR, P – periodic downloaded static route, H – NHRP, l – LISP
+ – replicated route, % – next hop override
Gateway of last resort is not set
10.0.0.0/32 is subnetted, 1 subnets
O IA 10.10.14.4 [110/65] via 192.168.34.4, 00:14:10, Serial3/2
172.16.0.0/24 is subnetted, 1 subnets
S 172.16.0.0 [1/0] via 192.168.13.1
192.168.13.0/24 is variably subnetted, 2 subnets, 2 masks
C 192.168.13.0/24 is directly connected, Serial3/1
L 192.168.13.3/32 is directly connected, Serial3/1
O 192.168.24.0/24 [110/128] via 192.168.34.4, 00:14:14, Serial3/2
192.168.34.0/24 is variably subnetted, 2 subnets, 2 masks
C 192.168.34.0/24 is directly connected, Serial3/2
L 192.168.34.3/32 is directly connected, Serial3/2
ISP-B#
2. But let’s check the routing table of Sydney. What do you think is the missing routes in Sydney? You’re right if you would tell me that it was 172.16.0.0/24.
Sydney#show ip route
Codes: L – local, C – connected, S – static, R – RIP, M – mobile, B – BGP
D – EIGRP, EX – EIGRP external, O – OSPF, IA – OSPF inter area
N1 – OSPF NSSA external type 1, N2 – OSPF NSSA external type 2
E1 – OSPF external type 1, E2 – OSPF external type 2
i – IS-IS, su – IS-IS summary, L1 – IS-IS level-1, L2 – IS-IS level-2
ia – IS-IS inter area, * – candidate default, U – per-user static route
o – ODR, P – periodic downloaded static route, H – NHRP, l – LISP
+ – replicated route, % – next hop override
Gateway of last resort is not set
10.0.0.0/32 is subnetted, 1 subnets
C 10.10.14.4 is directly connected, Loopback4
192.168.24.0/24 is variably subnetted, 2 subnets, 2 masks
C 192.168.24.0/24 is directly connected, Serial3/3
L 192.168.24.4/32 is directly connected, Serial3/3
192.168.34.0/24 is variably subnetted, 2 subnets, 2 masks
C 192.168.34.0/24 is directly connected, Serial3/2
L 192.168.34.4/32 is directly connected, Serial3/2
Sydney#
I would expect that the PC in Manila will not be able to reach the Loopback address in Sydney since Sydney router have incomplete routes. Both ping fails and traceroutes stop at ISP-A.
PC1> ping 10.10.14.4
10.10.14.4 icmp_seq=1 timeout
10.10.14.4 icmp_seq=2 timeout
10.10.14.4 icmp_seq=3 timeout
10.10.14.4 icmp_seq=4 timeout
10.10.14.4 icmp_seq=5 timeout
PC1> trace 10.10.14.4
trace to 10.10.14.4, 8 hops max, press Ctrl+C to stop
1 172.16.0.1 0.994 ms 8.952 ms 9.011 ms
2 192.168.12.2 30.132 ms 30.488 ms 29.686 ms <<< ISP-A
3 * * *
4 * * *
5 * * *
3. To complete the routes in both ISP’s, the solution is to redistribute the static routes that we have on ISP-A and ISP-B under OSPF process. We know that we have a static routes towards the network 172.16.0.0/24 on both ISP’s.
ISP-A(config)#router ospf 1
ISP-A(config-router)#redistribute static subnets
ISP-B(config)#router ospf 1
ISP-B(config-router)#redistribute static subnets
4. Now, let’s check the routing table of Sydney. So we have an External OSPF routes ( O E2) because we have redistributed that routes from other routing domains.
Sydney#show ip route ospf
Codes: L – local, C – connected, S – static, R – RIP, M – mobile, B – BGP
D – EIGRP, EX – EIGRP external, O – OSPF, IA – OSPF inter area
N1 – OSPF NSSA external type 1, N2 – OSPF NSSA external type 2
E1 – OSPF external type 1, E2 – OSPF external type 2
i – IS-IS, su – IS-IS summary, L1 – IS-IS level-1, L2 – IS-IS level-2
ia – IS-IS inter area, * – candidate default, U – per-user static route
o – ODR, P – periodic downloaded static route, H – NHRP, l – LISP
+ – replicated route, % – next hop override
Gateway of last resort is not set
172.16.0.0/24 is subnetted, 1 subnets
O E2 172.16.0.0 [110/20] via 192.168.34.3, 00:00:47, Serial3/2
[110/20] via 192.168.24.2, 00:01:04, Serial3/3
Sydney#
As we can see now, I was able to reach the Sydney Loopback address via ISP-A. As we know, the lower the AD for the static routes, it will be used as the preferred path. This is the default path as the Administrative distance was set to default 1.
PC1> ping 10.10.14.4
84 bytes from 10.10.14.4 icmp_seq=1 ttl=253 time=52.274 ms
84 bytes from 10.10.14.4 icmp_seq=2 ttl=253 time=33.474 ms
84 bytes from 10.10.14.4 icmp_seq=3 ttl=253 time=38.418 ms
84 bytes from 10.10.14.4 icmp_seq=4 ttl=253 time=37.393 ms
84 bytes from 10.10.14.4 icmp_seq=5 ttl=253 time=32.639 ms
PC1> trace 10.10.14.4
trace to 10.10.14.4, 8 hops max, press Ctrl+C to stop
1 172.16.0.1 10.384 ms 9.207 ms 9.828 ms
2 192.168.12.2 28.898 ms 29.415 ms 31.273 ms <<<< ISP-A
3 *192.168.24.4 41.207 ms (ICMP type:3, code:3, Destination port unreachable) 5. Now, let me shutdown the Interface of ISP-A linking to Melbourne.
Before I shutdown, 10.10.14.4 is reachable via ISP_A from the routing information below,
Melbourne#show ip route 10.10.14.4
Routing entry for 10.10.14.4/32
Known via “static”, distance 1, metric 0
Routing Descriptor Blocks:
* 192.168.12.2 <<<<< ISP-A
Route metric is 0, traffic share count is 1
Melbourne#sh run | inc ip rpoopute
*Aug 6 18:42:25.543: %LINEPROTO-5-UPDOWN: Line protocol on Interface Serial3/0, changed state to down
After I have received the log message above, the routes have change to ISP-B mainly because of my floating static set up on Melbourne router towards 10.10.14.4.
Melbourne#sh ip route 10.10.14.4
Routing entry for 10.10.14.4/32
Known via “static”, distance 10, metric 0
Routing Descriptor Blocks:
* 192.168.13.2 <<<<<<< ISP-B
Route metric is 0, traffic share count is 1
Melbourne#
So I can already ping and trace. Path is now via ISP-B.
PC1> ping 10.10.14.4
84 bytes from 10.10.14.4 icmp_seq=1 ttl=253 time=40.703 ms
84 bytes from 10.10.14.4 icmp_seq=2 ttl=253 time=24.935 ms
84 bytes from 10.10.14.4 icmp_seq=3 ttl=253 time=35.653 ms
84 bytes from 10.10.14.4 icmp_seq=4 ttl=253 time=47.023 ms
84 bytes from 10.10.14.4 icmp_seq=5 ttl=253 time=46.982 ms
PC1> trace 10.10.14.4
trace to 10.10.14.4, 8 hops max, press Ctrl+C to stop
1 172.16.0.1 33.974 ms 10.074 ms 9.297 ms
2 192.168.13.3 21.259 ms 19.592 ms 19.251 ms
3 *192.168.34.4 50.558 ms (ICMP type:3, code:3, Destination port unreachable)
Note: Once I enabled back the port, the traffic will revert back to the ISP-A. I have proven this in lab. Refer to my traceroute below from PC1 in Manila.
PC1> trace 10.10.14.4
trace to 10.10.14.4, 8 hops max, press Ctrl+C to stop
1 172.16.0.1 19.929 ms 9.367 ms 8.809 ms
2 192.168.12.2 20.088 ms 20.102 ms 19.749 ms
3 *192.168.24.4 29.397 ms (ICMP type:3, code:3, Destination port unreachable)
Step 6. Now, let me go through and enable IP SLA on Melbourne router.
Melbourne(config)#ip sla 100
Melbourne(config-ip-sla)#icmp-echo 192.168.12.2
Melbourne(config-ip-sla-echo)#timeout 5000
Melbourne(config-ip-sla-echo)#frequency 5
Melbourne(config)#ip sla schedule 100 start-time now life forever
Melbourne(config)#
Melbourne(config)#track 100 interface serial 3/0 ip routing
I have also removed all my static routes and defined just a default routes that track the status of Serial 3/0.
Melbourne(config)#no ip route 10.10.14.4 255.255.255.255 192.168.12.2
Melbourne(config)#no ip route 10.10.14.4 255.255.255.255 192.168.13.2 10
Melbourne(config)#no ip route 192.168.24.0 255.255.255.0 192.168.12.2
Melbourne(config)#no ip route 192.168.24.0 255.255.255.0 192.168.13.2 10
Melbourne(config)#no ip route 192.168.34.0 255.255.255.0 192.168.13.3
Melbourne(config)#no ip route 192.168.34.0 255.255.255.0 192.168.12.2 10
Static routes in which I have enabled tracking on the serial 3/0 of ISP-A
Melbourne(config)#ip route 0.0.0.0 0.0.0.0 192.168.12.2 track 100
Melbourne(config)#ip route 0.0.0.0 0.0.0.0 192.168.13.3
When I shut down the Serial 3/0 of ISP-A, It gives a console message informing that the link is down.
Melbourne(config)#
*Aug 6 19:07:15.871: %TRACKING-5-STATE: 100 interface Se3/0 ip routing Up->Down
Melbourne(config)#
*Aug 6 19:07:16.143: %LINEPROTO-5-UPDOWN: Line protocol on Interface Serial3/0, changed state to down
Melbourne(config)#
But one good thing, I can see from my traceroutes that traffic is flowing now through ISP-B,
PC1> trace 10.10.14.4
trace to 10.10.14.4, 8 hops max, press Ctrl+C to stop
1 172.16.0.1 9.674 ms 9.376 ms 9.043 ms
2 192.168.13.3 30.439 ms 29.866 ms 30.861 ms
3 *192.168.34.4 39.028 ms (ICMP type:3, code:3, Destination port unreachable)
PC1>
** This ends my lab for IP SLA, you will see more of this with BGP routing**
Leave a comment