Monday, March 19, 2012

#Cisco #EIGRP ... your fathers routing protocol

So many current things have roots deep in the past... take EIGRP.

You have to time travel back to when routers were just starting to come into vogue in enterprise networks.  Back to the period of 1990-1996 when most enterprise networks were a hodgepodge of protocols:  ipx, ip, appletalk, decnet, sna, and others.  In fact...back then...IP was typically only used by engineering departments within companies...typically as Sun workstations were popular for autocad.

There were two dominant router manufacturers in this small but growing market:  Wellfleet & Cisco. Both were appliance based..but definitely different architectures.  Wellfleet used a sleek, but buggy, operations tool called Site Manager.  Cisco was just CLI based.  But..the real big difference that stood out was that Wellfleet was a multi-processor architecture when you got to their chassis based solutions, like the BCN.  Cisco was single processor across the product line.   Because of the multi-proc architecture, Wellfleet was quite good at running OSPF.  Processors were alot slower compared to now....based in 10's of megahertz...not several gigahertz like they are today.  If Cisco was going to beat Wellfleet, they were going to have to come up with something clever to make the most of their weak hardware.

The issue is kinda obvious..but I'll point it out.  OSPF is a link state routing protocol.  Which means that every router builds a view of the network based on the state of each link.   Each router understands whats up and what is down, it sees multiple paths between points, it understands how much bandwidth on those links.  The exchange that goes on between an exchange of links.  This is key.

EIGRP is a distance vector routing protocol.  This means that routers get their view of the network from other routers, they dont compute their own view.  The exchange that goes on between routers is the change of routing tables.  Key difference.

To sum it up, each OSPF router forms its own best view of the network. EIGRP is based on "heresay", or rumor.  It trusts the routes another router gives to it.

That means in a OSPF network, each node has to be able to calculate the full routing table.  In a EIGRP network, once I receive my picture of the network from other routers, i dont need to calculate anything. I just need to decide what path I take if I have multiple routes for the same destination.

I like to think of analogies to more easily describe things.  Say you're driving in a car from Milwaukee to Chicago.  You could ask someone for directions and they could say, get on I94 and take that south.  It would work, it would get you there.  But, you didnt use any data to come up with how to get there.  There could have been a shorter way, a way with less traffic, a way with higher speed roads. Or, you could have gotten out your smartphone with Google Maps on it, it would have allowed you to figure out the best route to Chicago based on multiple factors including how much traffic was on the freeway. Possibly avoiding that traffic jam on 294.   Which would you choose?

OSPF is more computational, EIGRP is less computational.   But, this isnt 1993 any longer.  Routing devices (whether a router or a l3 switch) have multi-processors and high speed ASICs.  Computing Dykstra on hundreds of routes and doing it in milliseconds is easy. So, why run EIGRP?  Cisco told you so?  Cisco convinced you that EIGRP is actually Link State?  Cisco convinced you that EIGRP is just easy and it scales?

EIGRP is not link state, its distance vector.  The state of links are not exchanged.  Each router does not calculate its own routing table.  The only thing advanced that EIGRP does is pick a feasible successor.  There are few other things different about EIGRP than other distance vector protocols, but that doesnt make EIGRP a link state protocol.

EIGRP does have issues with scaling.  Get into a large EIGRP network and you'll find that routers often get into a condition called Stuck In Active.  If you get into larger networks, you'll find that to make EIGRP scale, you need to break up the network into multiple parts and seperate them with protocols like BGP.  Its common, we see it often.

True, EIGRP is fairly easy to run. But, OSPF is not that hard. Even someone juggling multiple IT hats can get a OSPF network up and running.  A lot of small networks might be run with just one area....which that is no harder than setting up EIGRP.   One other fallacy about OSPF is that it you have to keep area's small....which leads to that factor of complexity that folks are worried about.  Actually, that is a old rule that is based on hardware long ago that is now in a garbage compactor.   In fact, talking with one of my co-workers, Khalid Raza, area's can be sized quite large...with no given rules as to their size.  He's seen networks with areas with 400 routers in them.

There's no downside to OSPF or for that matter IS-IS. They are supported by multiple vendors, they scale, they're easy to use.  EIGRP is only supported by one company.  It has scaling issues. It gives you a view of the network that is not optimized.   Its based on 1993 assumptions of networks.

You can do better.

No comments:

Post a Comment