Friday, July 17, 2015

Designing Active/backup Failover in EIGRP

In Real life Networking, you often come across a requirement that you have multiple links for same destination and you have to design Active/Backup or you can say Failover design. Below is the example how to achive the same if you are using EIGRP:

In EIGRP you have multiple ways to design the same, consider below example:

In the diagram above, if i do a "sh ip route" on R1, you can notice that there 2 equal cost path exists to destination 2.2.2.2 which is a loopback IP on R2
=================================================================
R1#sh ip route

Gateway of last resort is not set

     2.0.0.0/32 is subnetted, 1 subnets
D       2.2.2.2 [90/2297856] via 10.1.2.2, 00:03:54, Serial0/1              
                      [90/2297856] via 10.1.1.2, 00:03:54, Serial0/0

"at this point there are two path ,via S0/1 and S0/0, in routing table"
=================================================================
Now if you want one of them to be preferred over another and in case of primary link failure, the failover link should be used for traffic, then you may increase decrease the delay on less preferred route:

You can first check the value of delay
================================================
R1#sh int s0/1
Serial0/1 is up, line protocol is up
  Hardware is M4T
  Internet address is 10.1.2.1/30
  MTU 1500 bytes, BW 1544 Kbit, DLY 20000 usec
=================================================
Now increase the delay on S0/1 and you will notice it will disappear from routing table:
R1(config)#int s0/1
R1(config-if)#delay
R1(config-if)#delay 4000

Now, you can see only one path (s0/0)exists in routing table. The another path through interface  s0/1 has been disappeard



2) 2nd way of implementing this through modifying bandwidth. As eigrp prefers high BW links in its metric calculation, i will increase the BW on S0/1 interface. 


R1(config)#int s0/1
R1(config-if)#bandwidth 3000



but if you check the topology table, both the path exists there but now one of them is backup or fesible succesor and will be used in case of primary link is down.




If you have QOS applied in your network, then the preferred way is Delay instead of Bandwidth to avoid any issues with your QOS policies.


3) Another way is to increase the AD (Administrative Distance) for the routes from less preferred or backup link.

IMPORTANT: If it is designed incorrectly, it may create loop. It is less recommended but its just an option available
If you want the neighborship with 10.1.2.2 less preferred, then you can increae the AD value for all route received from that neighbor.  (default is 90, so set anything above it but less than if any other routing protocol is also in use).

R1(config)#router eigrp 1
R1(config-router)#distance 95 10.1.2.2 0.0.0.0  (specify AD that wish to set, then neighbor IP)

If you want to increase AD selectively for some routes, then you may identify routes using access list and call that access-list in Distance command after the neighbor IP:
create access-list 10 and identify routes
Router(config)# access-list 10 permit 50.1.1.0 0.0.0.255
Router(config)# access-list 10 permit 60.1.2.0 0.0.0.255
Router(config)# access-list 10 permit 192.168.1.0 0.0.0.255

go in router eigrp configuration mode and call the access list after neighbor IP in distance command:
Router(config)# router eigrp 1
Router(config-router)# distance 95 10.1.2.2 0.0.0.0 10   (specifity AD, then neighbor(with wild card mask) and then call the access-list number)

4) Another way to making one link preferable over other is to use offset-list.
Offset-list is basicaly used to increase the overall metric.

Below output shows that Metric is same for both the links in default case:

Now, we can use offset-list to modify the metric Incoming or Outing depending on your the scenario and choose the best place. In this example, I will modify the metric for incoming routes from S0/1 interface.
R1(config)#router eigrp 1
R1(config-router)#offset-list 0 in 100000 serial 0/1

In the above configuration 0 is the number given to offset-list. If you specify number 0, that means it is going to modify the metric for all incoming routes. If you want to do the same for any selected route, then identify those route using a access-list and call that access-list in offset-list command with the access-list number. So, in the above example, after offset-list keyword, use the acutal access-list number or if there is no selection, then mention "0" for all routes. Important to note that, Off-set list is not blocking or permitting the route, it is just modifiying the metric. Whatever metric we specify in offset-list command, it will get added to original metric.



No comments:

Post a Comment