The Sunday challenge: Minimalist networking


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:

Minimalist networking

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)#
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.


CCIE #49337, author of CCNA and Beyond, BGP for Cisco Networks, MPLS for Cisco Networks, VPNs and NAT for Cisco Networks.

Related Posts

Previous
Next Post »