Scenario:
Recently the australian government has decided that every major City should be interconnected. So far different states have used their own routing protocol and some of the older hardware is unable to run OSPF. Government workers have connected all routers and configured redistribution between RIP and OSPF so that every network is reachable. Everything seems to work fine and all routing tables have full information, however some people complained that the network is slow. You notice that when you start a traceroute from router Sydney or Melbourne towards the networks behind router Adelaide (4.4.4.4) or Darwin (5.5.5.5) that the traffic is sent towards router Perth. This is a classical example of sub-optimal routing…up to you to improve things!
Goal:
- All IP addresses have been preconfigured for you as following.
- Every router has 1 loopback interface as following:
Loopback0: x.x.x.x /24 for example: 1.1.1.1 for router1. - RIP and OSPF are preconfigured for you.
- Do not use show run! (this will spoil the fun 🙂 use the appropiate ‘show’ and ‘debug’ commands. This will teach you the skills needed to become a true troubleshooting master.
- Do not make changes to the network commands in OSPF or RIP.
- You are not allowed to use distribute-lists, prefix-lists or route-maps.
- You are not allowed to change any of the redistribution commands.
- Ensure traffic takes the most optimal path to it’s destination, use traceroute to check this.
- Ensure all routers have full connectivity, every network should be pingable using the most optimal path.
It took me 1000s of hours reading books and doing labs, making mistakes over and over again until I mastered all the troubleshooting issues for CCNP.
Would you like to be a master of troubleshooting too? In a short time without having to read 900 page books or google the answers to your questions and browsing through forums?
I collected all my knowledge and created a single ebook for you that has everything you need to know to become a master of troubleshooting.
You will learn all the secrets about redistribution, solving routing loops, sub-optimal routing and more.
Does this sound interesting to you? Take a look here and let me show you how to Master CCNP TSHOOT
IOS:
c3640-jk9s-mz.124-16.bin
Topology:
Video Solution:
Configuration Files
You need to register to download the GNS3 topology file. (Registration is free!)Once you are logged in you will find the configuration files right here.
The How to Master series helps you to understand complex topics like spanning-tree, VLANs, trunks, OSPF, EIGRP, BGP and more.
Written by René Molenaar - CCIE #41726
It doesn’t have anything to do with split horizon 🙂
[i]I’ll give you a hint:[/i]
If you check the routing table you’ll see that the OSPF routes are preferred over the RIP routes since they have an AD of 110 compared to rip which is 120.
So to make sure that the router prefers the RIP routes you need to make sure that whatever you redistribute [b]INTO[/b] OSPF has a higher AD than RIP.
This will make sure that the original RIP routes are preferred over the injected OSPF routes.
Hopefully this will help you, i’ll record a video for this one.
Good luck!
Rene
Good one mate
Can you please tell us how to solve this lab? :'(
On Perth router, int F0/0 and F1/0
ip split-horizon
I’m not that good at routing protocols yet. but wouldn’t changing the AD in rip, then redistributing it give you the answer to the question
like i said I’m not that good at the protocols yet. just throwing an idea out there
If you change the AD you will still have some problems. Let’s say you reduce the AD for rip from 120 to 100, which is lower than OSPF (110).
Router Sydney will redistribute it’s 192.168.24.0 network into OSPF. Router Melbourne will redistribute this network again into RIP with a hop count of 1.
What do you think Darwin will do when it wants to reach the 192.168.24.0 network?
Redistribution is one of the hardest things to do with routing, playing with the AD is one way to fix things though…but it’s part of the solution.
I’ll try to add a video for this one soon, but let me give you some hints to think about:
– What if the AD for external prefixes was higher than internal prefixes?
– Should routes from RIP into OSPF be redistributed again into RIP? (or vice versa)
– What happens with router Melbourne and Sydney if they receive OSPF prefixes that originally came from the RIP network?
well this is splitting my head in two!. I’ve only done the “CCNA 1” course. so this is kind of beyond me. but i would really love to see how you solve this problem.
but if the problem happens to be on RIP having a hop count of 1, after redistribution. depending on which path it takes the packet will be dropped by the destination router. this I’m sure you already know. now what i want to know is, could we put a multihop command into RIP to fix that problems? I’ve played with internal and external BGP a bit and that seems to fix the problems I’ve had from using different AS. I’m not sure if that would make any difference to the problem at hand, I’m just throwing the idea out there.
as for your external AD prefix I’m a bit confused. from my understanding if a external protocol was introduced to another routing protocol in most cases the external prefix will always have a higher AD, meaning that the internal protocol will take charge over the external… so to answer your question if the external was higher than the internal, the internal would come still first in the routing table.
I’ll just wait for the video to come out and see how you solve the problem. sorry if I’ve wasted your time but I’m just a bit interested in networking and just felt like partaking in the conversation. oh and i just notice this is a CCIE level lab. ouch sorry!!
Hi Gideon,
Redistribution is complex…and if you did your CCNA this will be a bit mind boggling 😉 Redistribution is on the CCNP btw. Only EIGRP has a different AD for internal and external prefixes. OSPF makes a different between internal prefixes or externals but does not have a different AD (you can change that though). RIP has the same AD for everything but we are able to manipulate this.
I’ll try to upload the video soon, i’m working my way through all the labs…top to bottom recording all of them.
well, your right redistribution is hard, I’ve tried doing it many times and failed. but since my summer course was canceled I’m planing on buying a CCNA/CCNP router set. and do some self studying this summer, and hopefully I’ll to know more about the process. I’ll stop posting on the blog now since I’m not at the level to understand this yet. thank for replying by the way.
and i’ll watch the video of it when u bring it out
Hi Gideon,
No worries…trying to tackle stuff that’s too high level is not a bad thing…aim for the moon and you miss you will at least end up amongst the stars!
I don’t know what you do or do not know but these are the things you need to understand very well before you dive into redistribution:
– OSPF / EIGRP / RIP: Understand each routing protocol, how they make a difference between internal/external routes.
– Administrative distance: What it does and how to manipulate it.
– Most specific match.
I’ll have this one online in a few days.
i already know how to set up the basic for those three protocols and i know the AD by heart now. but im sure there are more things that i still need to learn. i was trying to look for your email but couldnt find 1. i just have a few question i want to ask. i rly don’t want to take up time asking them here… so if its possible, i would like to email please, if not i understand, and thanks for the lesson i’m looking forward to study this when i get to my CCIE level.
router rip
distance 100
This my solution
Let me ask you a question about changing the AD of RIP to 100.
– The loopback of router Perth is advertised into OSPF.
– This loopback network is redistributed from OSPF to RIP on router Sydney.
– Router Sydney advertises this RIP route to Adelaide.
– Router Adelaide will advertise it to Darwin.
– Router Darwin will advertise it to Melbourne.
What will happen to the routing table at router Melbourne? And will this cause a problem yes/no ?
Rene
I solved this lab with one extra config line on Sydney and Melbourne:
conf t
router ospf 1
distance ospf external 125
This sets AD for ALL ospf external (redistributed) routes to 125.
@Taras setting the OSPF external routes to a higher AD is always a very good idea. It’s the same as EIGRP does (90/170 for internal/external routes). It will ensure that external routes are never preferred to RIP because of the higher AD.
Good job, it’s good to know multiple ways of solving a problem 8)
Hi Rene,
after i solved the lab. to compare solutions i loaded ur final config.
however the last goal is not finestly acheived by ur config.
every network should be pingable using the most optimal path.
Sydney#tr 3.3.3.3
Type escape sequence to abort.
Tracing the route to 3.3.3.3
1 192.168.24.4 48 msec 36 msec 24 msec
2 192.168.45.5 56 msec 44 msec 44 msec
3 192.168.35.3 64 msec * 56 msec
Sydney
Melbourne#tr 2.2.2.2
Type escape sequence to abort.
Tracing the route to 2.2.2.2
1 192.168.35.5 48 msec 40 msec 32 msec
2 192.168.45.4 60 msec 52 msec 68 msec
3 192.168.24.2 88 msec * 112 msec
Melbourne#
Here are my config’s
R2
router rip
distance 109
distance 111 0.0.0.0 255.255.255.255 13
access-list 13 permit 1.1.1.1
access-list 13 permit 3.3.3.0
access-list 13 permit 192.168.13.0
contd..
R3
router rip
distance 109
distance 111 0.0.0.0 255.255.255.255 12
access-list 12 permit 1.1.1.1
access-list 12 permit 2.2.2.0
access-list 12 permit 192.168.12.0
Sydney#tr 3.3.3.3
Type escape sequence to abort.
Tracing the route to 3.3.3.3
1 192.168.12.1 48 msec 44 msec 28 msec
2 192.168.13.3 64 msec * 64 msec
Sydney#
Melbourne#tr 2.2.2.2
Type escape sequence to abort.
Tracing the route to 2.2.2.2
1 192.168.13.1 60 msec 24 msec 24 msec
2 192.168.12.2 52 msec * 52 msec
Melbourne#
Regards
Shoeb
Hi Shoeb,
Thanks for sharing this, I’ll take a look once I have a bit more time….maybe I forgot something 😛
Rene
Thanks Rene’ for the nice lab.
I agree with Shoeb. Here below my configurations to achieve optimal path to all the networks.
BR
Giacomo
Sydney configuration:
router ospf 1
distance ospf external 130
distance 120 0.0.0.0 255.255.255.255 1
access-list 1 permit 3.3.3.0 0.0.0.255
Melbourne configuration:
router ospf 1
distance ospf external 130
distance 120 0.0.0.0 255.255.255.255 1
access-list 1 permit 2.2.2.0 0.0.0.255
Hi Rene,
This was an interesting practice using access-lists.
Isn’t it easier to just use the distance defaults on Syndey and Melbourne routers.
[i]distance ospf external 180[/i]
(using any number bigger than 120rip
This way, any new routes (or routes we missed) are taken care of automatically.
Hi,
Yes that would be a good solution and probably easier. There’s a couple of methods how you can fix redistribution issues.
Rene
simple deny ACL
ip access-list standard EX_PREFIX
deny 2.2.2.0 0.0.0.255
deny 3.3.3.0 0.0.0.255
permit any
router ospf 1
distance 125 0.0.0.0 255.255.255.255 EX_PREFIX
Hi
Assuming that the definition of "most optimal path" is the fewest hops of routers in the transit path
I have 2 questions to the solution of this lab
-1-
wouldn’t we have to exclude the 2.2.2.0/3.3.3.0 routes from the access-list of Sydney and Melbourne
because the most optimal path is through OSPF (not RIP) ??
-2-
Perth will have 2 equal-cost paths to these routes.(Each through Sydeney and Melbourne)
192.168.24.0/24
192.168.35.0/24
192.168.45.0/24
4.4.4.0/24
5.5.5.0/24
I think we have to tune the metric of these routes in order to use ONLY the most optimal path.
My solution to this was to create a route-map and attach it to the redistributing routers.
(example for Sydney)
—-
redistribute rip metric 10000 metric-type 1 subnets route-map METRIC_11000
route-map METRIC_11000 permit 10
match ip address prefix-list NOT_OPTIMAL
set metric 11000
route-map MERIC_11000 permit 20
ip prefix-list NOT_OPTIMAL seq 5 permit 192.168.35.0/24
ip prefix-list NOT_OPTIMAL seq 10 permit 5.5.5.0/24
—-
But the rule of the lab states that we aren’t allowed to use a route-map nor change the statement of the redistribution.
Is there a solution to this by not breaking the rules??
Thanks , I really love your lab.They are awesome!!
Hello Rene, in your solution the loopbacks of the redistibution partners are not optimal reached. They should be reachable via OSPF Path. here my solution:
[b]Sydney:[/b]
router ospf 1
distance ospf external 200
router rip
offset-list 1 in 16
access-list 1 permit 3.3.3.0 0.0.0.255
[b]Melbourne:[/b]
router ospf 1
distance ospf external 200
router rip
offset-list 1 in 16
access-list 1 permit 2.2.2.0 0.0.0.255
I just worked on this lab again and you are totally right.
2.2.2.2 and 3.3.3.3 have the same cost from router Perth’s perspective. The same thing applies to 192.168.24.0, 192.168.45.0, 4.4.4.0 and 5.5.5.0.
Using the offset-lists is a good way to fix this issue!
Hi Rene.
Thank you for the lab but I have questions about the solution.
1. You made an access list and changed the AD for the routes.
Is it simpler to enter the command "distance ospf external 130" for example?
2. After that the router Perth will have two routes for the destination in Rip domain which is also suboptimal routing on my opinion. It happens as the routes from RIP redistributed into OSPF with the same metrics.
I changed the redistribution command on Sidney and Melbourne using route-maps.
Any other solution for this situation?
Thank you.
I changed type 5 and 7 routes to have an AD of 130, higher than RIP, on both ASBRs. Everything works fine and dandy;
Thank’s a lot for all that great labs .
[b]Ensure traffic takes the most optimal path to it’s destination, use traceroute to check this.[/b]
Unfortunatly router perth still has sup-optimal routing, as it automaticly runs load balancing over 2 equal paths…
disabling this load-balancing, doesnt really make sure perth will actually get the optimal route as possible, it still could learn 5.5.5.5 from sydney.
How are we able to fix this without using distribute-lists, prefix-lists and/or route-maps?
I just downloaded the lab (OSPFRIPRedistributionADTroubleshooting.zip) and everything is fixed. traceroute looks well. Please verify and twist it back again.
thanks.
Never mind, I just twisted and fixed back.
Thank you
Hi guys. This is my solution
[b]Sidney:[/b]
router ospf 1
log-adjacency-changes
redistribute rip metric 10000 metric-type 1 subnets
network 192.168.12.0 0.0.0.255 area 0
distance ospf external 150
[b]Melbourne:[/b]
router ospf 1
log-adjacency-changes
redistribute rip metric 10000 metric-type 1 subnets
network 192.168.13.0 0.0.0.255 area 0
distance ospf external 150
I didn’t need to use access-list to give preference to the RIP routers instead of OSPF.
I did the same thing and it worked well for most of RIP’s native routes except for 2.2.2.2 (and 3.3.3.3) which Perth now sees as having equal cost paths via its f0/0 and f1/0.
Here’s a snippet of Perth’s routing table:
O E1 2.2.2.0 [110/10001] via 192.168.13.3, 00:25:46, FastEthernet1/0
[110/10001] via 192.168.12.2, 00:25:46, FastEthernet0/0
3.0.0.0/24 is subnetted, 1 subnets
O E1 3.3.3.0 [110/10001] via 192.168.13.3, 00:26:05, FastEthernet1/0
[110/10001] via 192.168.12.2, 00:26:06, FastEthernet0/0
i’ve tried the opposite, putting AD distance of 109 (lower than ospf) to RIP.
The same config for Melburne, but i’m not showing them
Sydney#show run | s router rip
router rip
version 2
redistribute ospf 1 metric 5
network 2.0.0.0
network 192.168.24.0
distance 109 0.0.0.0 255.255.255.255 ACL-RIP-TO-OSPF
Sydney#show run | s ip access
ip access-list standard ACL-RIP-TO-OS
permit 4.4.4.0 0.0.0.255
permit 5.5.5.0 0.0.0.255
permit 192.168.24.0 0.0.0.255
permit 192.168.45.0 0.0.0.255
permit 192.168.35.0 0.0.0.255
with this, i fix the problem from router Sydney to Darwin 5.5.5.5 via rip network (also from router Melburne to Adelaide 4.4.4.4 via rip), but i’m failing with router Perth
Perth#traceroute 4.4.4.4
Type escape sequence to abort.
Tracing the route to 4.4.4.4
1 192.168.12.2 60 msec
192.168.13.3 44 msec
192.168.12.2 16 msec
2 192.168.35.5 60 msec
192.168.24.4 40 msec
192.168.35.5 36 msec
where i’m wrong?
This one has been very difficult for me to visualize. By using default seed metric when redistributing RIP into OSPF, shouldn’t routers Sidney and Melbourne automatically take the optimal routes down to the loopbacks of Adalaide and Darwin?
One would have to set the seed metric artificially high on the redistribute command. I spend so much time thinking about why the metrics were displaying like they were, that I couldn’t figure out how to solve it short of changing the redist. statements.
The ACL you created along with your distance statement would have made the metric 125, still higher than the metric of OSPF, and therefore the OSPF routes would still be preferred. That’s where I got really lost.
Regarding my last post, a little eratta for my last paragraph:
The ACL you created along with the distance statement would have made the **AD” 125, still higher than the **AD** of OSPF, and therefore OSPF would STILL prefer its router over RIPs and be a injected into the ip routing table.
Got it. Sorry. My OSPF LSU process took almost a minute to catch up when I was running the “show ip route command.”
By setting the distance to 125, we are making redistributed routes have an AD that is both higher than OSPF and RIP’s default AD. So router Sidney will receive two ways to reach 5.5.5.5, one from its own routing process of RIP (AD 120), and one from OSPF (which we’ve set to 125), and inject the RIP route into the ip routing table.