Thursday, July 5, 2012

Propagating Default Route via EIGRP




Here I created a hub and spoke topology over Frame Relay using EIGRP AS 51. There is a design flaw;R1 will not be able to tell R3 about R2 routes and vice-versa because of split-horizon. Routes can't be sent out an interface in which it was learned. I want R2 and R3 to communicate so I have a few options. First option is I can turn off split horizon on interface serial 0/0 for just EIGRP 51, create static routes for each other or configure default routes. The best design here will be a default route because the spoke routers (R2,R3) have no other paths but to R1. EIGRP by default will query R2 and R3 for a route when it doesn't have a feasible successor to a lost network. This is a waste of router resources and can eat up CPU cycles if there is a flapping interface. EIGRP can use stub routers to prevent update queries from being sent, received or both.


Here I verify that R2 and R3 don't have each other routes.

R1#show ip route eigrp 
     2.0.0.0/32 is subnetted, 1 subnets
D       2.2.2.2 [90/2297856] via 172.12.123.2, 00:01:04, Serial0/0
     3.0.0.0/32 is subnetted, 1 subnets
D       3.3.3.3 [90/2297856] via 172.12.123.3, 00:00:11, Serial0/0

R2#show ip route eigrp 
     1.0.0.0/32 is subnetted, 1 subnets
D       1.1.1.1 [90/2297856] via 172.12.123.1, 00:02:21, Serial0/0

R3#show ip route eigrp 
     1.0.0.0/32 is subnetted, 1 subnets
D       1.1.1.1 [90/2297856] via 172.12.123.1, 00:01:20, Serial0/0

First I will demonstrate turning off split horizon. In a simple scenario this might be ok but in complex designs a routing loop can now form without the protect of split horizon. 

R1(config)#interface serial 0/0
R1(config-if)#no ip split-horizon eigrp 51
R1(config-if)#
*Mar  1 00:10:52.112: %DUAL-5-NBRCHANGE: IP-EIGRP(0) 51: Neighbor 172.12.123.3 (Serial0/0) is down: split horizon changed
*Mar  1 00:10:52.112: %DUAL-5-NBRCHANGE: IP-EIGRP(0) 51: Neighbor 172.12.123.2 (Serial0/0) is down: split horizon changed
*Mar  1 00:10:58.130: %DUAL-5-NBRCHANGE: IP-EIGRP(0) 51: Neighbor 172.12.123.3 (Serial0/0) is up: new adjacency


R3#
*Mar  1 00:10:51.640: %DUAL-5-NBRCHANGE: IP-EIGRP(0) 51: Neighbor 172.12.123.1 (Serial0/0) is down: Interface Goodbye received
*Mar  1 00:11:45.925: %DUAL-5-NBRCHANGE: IP-EIGRP(0) 51: Neighbor 172.12.123.1 (Serial0/0) is up: new adjacency

Taking a look at R3, I can see that it has now learned the route to R2 and I went ahead and pinged R2 loopback to verify connectivity.

R3#show ip route eigrp 
     1.0.0.0/32 is subnetted, 1 subnets
D       1.1.1.1 [90/2297856] via 172.12.123.1, 00:00:34, Serial0/0
     2.0.0.0/32 is subnetted, 1 subnets
D       2.2.2.2 [90/2809856] via 172.12.123.1, 00:00:34, Serial0/0

R3#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 = 32/33/40 ms

Next I turned split horizon back on and I will create two stub routers, R2 and R3. Here I can view the options for a stub network, default is advertises connected, summary routes.

R3(config)#router eigrp 51

R3(config-router)#eigrp stub ?
  connected      Do advertise connected routes
  receive-only   Set IP-EIGRP as receive only neighbor
  redistributed  Do advertise redistributed routes
  static         Do advertise static routes
  summary        Do advertise summary routes
  <cr>

R3(config-router)#eigrp stub 
*Mar  1 00:16:11.011: %DUAL-5-NBRCHANGE: IP-EIGRP(0) 51: Neighbor 172.12.123.1 (Serial0/0) is down: peer info changed


At this point both spoke routers still don't know how to reach each other but the good news is that they will not be queried for routes. Static default routes is another design option that will allow these two spokes to communicate.I created a null route on the hub router to redistribute into EIGRP, metric should be set when redistributing. 

R1(config)#ip route 0.0.0.0 0.0.0.0 null 0 
R1(config)#router eigrp 51
R1(config-router)#redistribute static metric 1544 10 255 1 1500

I can now see a default route in R3's table pointing to R1. The AD is 170 because the route was redistributed into EIGRP it's an external route.

R3#show ip route eigrp 
     1.0.0.0/32 is subnetted, 1 subnets
D       1.1.1.1 [90/2297856] via 172.12.123.1, 02:25:52, Serial0/0
D*EX 0.0.0.0/0 [170/2172416] via 172.12.123.1, 00:01:55, Serial0/0


Connectivty between both spokes is successful because R1 knows how to reach all networks

R3#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 = 4/36/60 ms

A static route can also be advertised via EIGRP and the route will have an AD of 90 because it is an internal EIGRP route.

R1(config)#router eigrp 51
R1(config-router)#no redistribute static 
R1(config-router)#network 0.0.0.0 


R3#show ip route eigrp 
     1.0.0.0/32 is subnetted, 1 subnets
D       1.1.1.1 [90/2297856] via 172.12.123.1, 00:00:39, Serial0/0
D*   0.0.0.0/0 [90/2169856] via 172.12.123.1, 00:00:09, Serial0/0


Using the ip default-network command requires some strict requirements, the route must be in classfully learned and redistributed. I accomplished this by turning on auto summary on the hub router. The asterisk means the route is a candidate default route. Compared to other scenarios ip defualt-network option is the least desired.

R1(config)#ip default-network 1.0.0.0

R1#show ip route eigrp 
 *   1.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
D*      1.0.0.0/8 is a summary, 00:00:42, Null0
     172.12.0.0/16 is variably subnetted, 2 subnets, 2 masks
D       172.12.0.0/16 is a summary, 00:00:42, Null0


R3#show ip route eigrp 
D*   1.0.0.0/8 [90/2297856] via 172.12.123.1, 00:00:03, Serial0/0
     3.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
D       3.0.0.0/8 is a summary, 00:05:15, Null0
     172.12.0.0/16 is variably subnetted, 2 subnets, 2 masks
D       172.12.0.0/16 is a summary, 00:05:15, Null0



No comments:

Post a Comment