Manipulating EIGRP Metrics

If you want to influence traffic flow in a network, you might want to tweak routing protocol metrics to shift the traffic between paths of almost-equal cost (I would always prefer MPLS Traffic Engineering as it’s so much better, but sometimes changing a metric is faster than rebuilding your network). OSPF and IS-IS are easy: change the interface metric or interface bandwidth. EIGRP and its composite metric are trickier.

As you know, EIGRP vector metric has five components; two of which are usually ignored and MTU serves only as tie breaker. This leaves us with bandwidth and delay. Every EIGRP reference tells you to adjust interface delay, not bandwidth, and the simplistic explanation is that “bandwidth is used for QoS features, so it’s better left unchanged”. While that’s true, there are other more important reasons to focus on delay:

  • EIGRP vector metric (which is the only information exchanged between the routers) carries minimum of bandwidth and sum of delays between the originating router and the current router. Changing delay will (usually) directly influence RD/FD and thus route selection, while changing bandwidth might not.
  • EIGRP composite metric (RD/FD) is proportional to delay and inversely proportional to bandwidth (see this pretty precise EIGRP composite metric formula). Even if you manage to change the bandwidth in the composite metric (which assumes that there is now lower bandwidth link on the whole path to the originating router), its influence on RD/FD is slightly harder to grasp.
  • EIGRP offset-list changes delay (admittedly primarily due to our first reason).


  1. Ha! Are you listening in to my class? :-) I just spent an hour trying to hammer this in today in my bootcamp :-).

    Marko Milivojevic - CCIE #18427
    Senior Technical Instructor - IPexpert
  2. If i have two neighbors from same interface ( broadcast ) and i want to influence their routes or routes advertised to them ... is there an option ? :-[
  3. Google for "offset-list eigrp"

    Caveat: you can add delay only to ALL updates sent or received over an interface. You cannot add delay to updates received/sent to a specific per-neighbor.
Add comment