This week's challenge is all about minimalist networking. What do I mean by minimalist? Well, this one is all about routing table sizes. Smaller routing tables are more efficient.
This is what we are dealing with today:
Our goal is to get R7 to see all of the networks, but have as few entries in it's routing table as possible. There is a clue to the second challenge, and I promise that it's not a RED HERRING!
We will use OSPF for this one, and you can download the initial topology from the forum.
Let's start by planning the OSPF topology. Can we run area 0 though the entire network? Sure we can, but is that the best design? Not really. We have a number different sites, so we should use separate areas, something like this:
Challenge 1 (level: Medium):
1: Set up the basic OSPF configuration on the routers.2: Advertise the /32 prefix for all the links (such as "network 5.6.7.7 0.0.0.0 area 0")
3: Add the loopback interfaces where necessary! Only add the preconfigured loopback interfaces (shown on the diagram) to OSPF.
4: I have put in one simple troubleshooting step.
By the end of this part, R7's routing table should look like this:
R7(config-if)#do sh ip route | b Gate Gateway of last resort is not set 1.0.0.0/8 is variably subnetted, 2 subnets, 2 masks O IA 1.1.1.1/32 [110/21] via 5.6.7.5, 00:06:31, Ethernet0/0 O IA 1.2.5.0/24 [110/20] via 5.6.7.5, 00:06:41, Ethernet0/0 2.0.0.0/32 is subnetted, 1 subnets O IA 2.2.2.2 [110/21] via 5.6.7.5, 00:06:31, Ethernet0/0 3.0.0.0/8 is variably subnetted, 2 subnets, 2 masks O IA 3.3.3.3/32 [110/21] via 5.6.7.6, 00:04:04, Ethernet0/0 O IA 3.4.6.0/24 [110/20] via 5.6.7.6, 00:04:14, Ethernet0/0 4.0.0.0/32 is subnetted, 1 subnets O IA 4.4.4.4 [110/21] via 5.6.7.6, 00:04:04, Ethernet0/0 5.0.0.0/8 is variably subnetted, 2 subnets, 2 masks C 5.6.7.0/24 is directly connected, Ethernet0/0 L 5.6.7.7/32 is directly connected, Ethernet0/0 7.0.0.0/32 is subnetted, 1 subnets C 7.7.7.7 is directly connected, Loopback0 R7(config-if)#
Challenge 2 (level: Advanced):
Get the routing table of R7 to look like this:R7(config-if)#do sh ip route | b Gate Gateway of last resort is not set O IA 1.0.0.0/8 [110/20] via 5.6.7.5, 00:00:39, Ethernet0/0 O IA 2.0.0.0/8 [110/21] via 5.6.7.5, 00:00:10, Ethernet0/0 O IA 3.0.0.0/8 [110/20] via 5.6.7.6, 00:00:58, Ethernet0/0 O IA 4.0.0.0/8 [110/21] via 5.6.7.6, 00:00:02, Ethernet0/0 5.0.0.0/8 is variably subnetted, 2 subnets, 2 masks C 5.6.7.0/24 is directly connected, Ethernet0/0 L 5.6.7.7/32 is directly connected, Ethernet0/0 7.0.0.0/32 is subnetted, 1 subnets C 7.7.7.7 is directly connected, Loopback0 R7(config-if)#Make sure that R7 can reach the loopbacks on the diagram:
R7(config-if)#do ping 1.1.1.1 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 1.1.1.1, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 1/1/1 ms R7(config-if)#do ping 2.2.2.2 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 2.2.2.2, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 1/1/1 ms R7(config-if)#do ping 3.3.3.3 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 3.3.3.3, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 1/1/1 ms R7(config-if)#do ping 4.4.4.4 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 4.4.4.4, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 1/1/1 ms R7(config-if)#The key to this challenge is not so much getting the correct answer, but finding out how to get the correct answer. Challenge 2 is more CCNP level than CCNA, but the goal here is to try and find out how to get to the solution!
Answers:
Challenge 1:
R7(config)#router ospf 1 R7(config-router)# %OSPF-4-NORTRID: OSPF process 1 failed to allocate unique router-id and cannot start R7(config-router)#network 5.6.7.7 0.0.0.0 a 0 R7(config-router)# R7(config-router)#int lo0 R7(config-if)#ip add 7.7.7.7 255.255.255.255 R7(config-if)#interface Ethernet0/0 R7(config-if)#no shutdown R5(config)#int lo0 R5(config-if)#ip add 5.5.5.5 255.255.255.255 R5(config-if)#router ospf 1 R5(config-router)#network 5.6.7.5 0.0.0.0 a 0 R5(config-router)# R6(config)#int lo0 R6(config-if)#ip add 6.6.6.6 255.255.255.255 R6(config-if)# R6(config-if)#router ospf 1 R6(config-router)#network 5.6.7.6 0.0.0.0 a 0 R6(config-router)# %OSPF-5-ADJCHG: Process 1, Nbr 5.6.7.5 on Ethernet0/1 from LOADING to FULL, Loading Done %OSPF-5-ADJCHG: Process 1, Nbr 7.7.7.7 on Ethernet0/1 from LOADING to FULL, Loading Done R6(config-router)# R1(config)#router ospf 1 R1(config-router)#network 1.1.1.1 0.0.0.0 a 1 R1(config-router)#network 1.2.5.1 0.0.0.0 a 1 R1(config-router)# R2(config)#router ospf 1 R2(config-router)#network 2.2.2.2 0.0.0.0 a 1 R2(config-router)#network 1.2.5.2 0.0.0.0 a 1 R2(config-router)# %OSPF-5-ADJCHG: Process 1, Nbr 1.1.1.1 on Ethernet0/0 from LOADING to FULL, Loading Done R2(config-router)# R5(config-router)# R5(config-router)#network 1.2.5.5 0.0.0.0 a 1 R5(config-router)# %OSPF-5-ADJCHG: Process 1, Nbr 2.2.2.2 on Ethernet0/0 from LOADING to FULL, Loading Done %OSPF-5-ADJCHG: Process 1, Nbr 1.1.1.1 on Ethernet0/0 from LOADING to FULL, Loading Done R5(config-router)# R3(config)#router ospf 1 R3(config-router)#network 3.3.3.3 0.0.0.0 a 2 R3(config-router)#network 3.4.6.3 0.0.0.0 a 2 R3(config-router)# R4(config)#router ospf 1 R4(config-router)#network 4.4.4.4 0.0.0.0 a 2 R4(config-router)#network 3.4.6.4 0.0.0.0 a 2 R4(config-router)# R4(config-router)# %OSPF-5-ADJCHG: Process 1, Nbr 3.3.3.3 on Ethernet0/0 from LOADING to FULL, Loading Done R4(config-router)# R6(config-router)# R6(config-router)#network 3.4.6.6 0.0.0.0 a 2 R6(config-router)# %OSPF-5-ADJCHG: Process 1, Nbr 3.3.3.3 on Ethernet0/0 from LOADING to FULL, Loading Done %OSPF-5-ADJCHG: Process 1, Nbr 4.4.4.4 on Ethernet0/0 from LOADING to FULL, Loading Done R6(config-router)#
Challenge 2:
R5(config)#router ospf 1 R5(config-router)# R5(config-router)#area 1 range 1.0.0.0 255.0.0.0 R5(config-router)#area 1 range 2.0.0.0 255.0.0.0 R5(config-router)# R6(config)#router ospf 1 R6(config-router)# R6(config-router)#area 2 range 3.0.0.0 255.0.0.0 R6(config-router)#area 2 range 4.0.0.0 255.0.0.0 R6(config-router)#How did you do?
Explanations:
The first challenge is all about making sure that we can actually start OSPF. We need to have a loopback interface up and working if OSPF is to pick a router ID automatically. Therefore we need to create loopback interfaces on R7, R6 and R5. The other option would be to manually assign a router id, using the command "router-id 7.7.7.7", and so on.Did you catch that R7's interface was shut down? I hope so, otherwise nothing much would work!
Challenge 2 is more CCNP level. So, don't be upset if it took you a little time to get to the answer, and hopefully you did some googling to find out, but also never be afraid to use the context sensitive help. The key here is that we broke OSPF into different areas, that was the clue at the start. Because of this, we can area-based summarization:
R6(config-router)#area ? <0-4294967295> OSPF area ID as a decimal value A.B.C.D OSPF area ID in IP address format R6(config-router)#area 1 ? authentication Enable authentication capability Enable area specific capability default-cost Set the summary default-cost of a NSSA/stub area filter-list Filter networks between OSPF areas nssa Specify a NSSA area range Summarize routes matching address/mask (border routers only) sham-link Define a sham link and its parameters stub Specify a stub area virtual-link Define a virtual link and its parameters R6(config-router)#area 1 ran R6(config-router)#area 1 range ? A.B.C.D IP address to match R6(config-router)#0-4294967295>Area-based summarization allows us to keep greater control over our routing tables, and smaller routing tables are a good thing!
I hope you have enjoyed this challenge! More to come soon.