CCNP ROUTE (Part 8 EIGRP Simple Lab)

I decided that rather than just use other people labs I would come up with a few of my own, the following lab is very simple, requiring the enabling of EIGRP on two routers so they form a neighbour relation ship, and setting up which routes will be advertised. Followed by some simple summarization to reduce the size of the routing tables.

You can find the GNS 3 topology files HERE, these also contain the finalised configs if you want to see the method and commands used. (note you will need a 2691 image installed)

Fig 1

To start with we have two routers connected via a point to point link on interface Fastethernet 0/0. Each also has 10 loop back interfaces configured with various /24 networks configured.

The aim is simple, enable EIGRP with an AS number of 10, form a neighbour relationship between the two routers and update the routing tables so both routers can see / reach all configured networks. Ideal use as few network statements as possible, while remaining as specific as possible as to what networks get advertised. Autosmmorization should also be disabled.

After completing this, a #show ip route, should display something like this.

router1#sh ip route
Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2
i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
ia - IS-IS inter area, * - candidate default, U - per-user static route
o - ODR, P - periodic downloaded static route

Gateway of last resort is not set

192.168.10.0/31 is subnetted, 1 subnets
C       192.168.10.0 is directly connected, FastEthernet0/0
172.16.0.0/24 is subnetted, 20 subnets
D       172.16.32.0 [90/409600] via 192.168.10.1, 00:01:01, FastEthernet0/0
D       172.16.33.0 [90/409600] via 192.168.10.1, 00:01:01, FastEthernet0/0
D       172.16.28.0 [90/409600] via 192.168.10.1, 00:01:01, FastEthernet0/0
D       172.16.29.0 [90/409600] via 192.168.10.1, 00:01:01, FastEthernet0/0
D       172.16.30.0 [90/409600] via 192.168.10.1, 00:01:01, FastEthernet0/0
D       172.16.31.0 [90/409600] via 192.168.10.1, 00:01:01, FastEthernet0/0
D       172.16.24.0 [90/409600] via 192.168.10.1, 00:01:01, FastEthernet0/0
D       172.16.25.0 [90/409600] via 192.168.10.1, 00:01:01, FastEthernet0/0
D       172.16.26.0 [90/409600] via 192.168.10.1, 00:01:01, FastEthernet0/0
D       172.16.27.0 [90/409600] via 192.168.10.1, 00:01:01, FastEthernet0/0
C       172.16.8.0 is directly connected, Loopback9
C       172.16.9.0 is directly connected, Loopback10
C       172.16.4.0 is directly connected, Loopback5
C       172.16.5.0 is directly connected, Loopback6
C       172.16.6.0 is directly connected, Loopback7
C       172.16.7.0 is directly connected, Loopback8
C       172.16.0.0 is directly connected, Loopback1
C       172.16.1.0 is directly connected, Loopback2
C       172.16.2.0 is directly connected, Loopback3
C       172.16.3.0 is directly connected, Loopback4

Now to reduce the size of the routing table we can manually summarise the routes. This is carried out under the interface that is sending out the update (in this case it will be fast ethernet 0/0 on each router). Again we want to be as specific as possible. The completed LAB uses multiply summarization statements , this increase the specificity of the summarization at the expense of adding an extra route in to the table. The routing table should now look something like.

router2#sh ip route
Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2
i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
ia - IS-IS inter area, * - candidate default, U - per-user static route
o - ODR, P - periodic downloaded static route

Gateway of last resort is not set

 192.168.10.0/31 is subnetted, 1 subnets
C       192.168.10.0 is directly connected, FastEthernet0/0
172.16.0.0/16 is variably subnetted, 15 subnets, 2 masks
C       172.16.32.0/24 is directly connected, Loopback9
D       172.16.32.0/21 is a summary, 00:02:27, Null0
C       172.16.33.0/24 is directly connected, Loopback10
C       172.16.28.0/24 is directly connected, Loopback5
C       172.16.29.0/24 is directly connected, Loopback6
C       172.16.30.0/24 is directly connected, Loopback7
C       172.16.31.0/24 is directly connected, Loopback8
C       172.16.24.0/24 is directly connected, Loopback1
D       172.16.24.0/21 is a summary, 00:02:28, Null0
C       172.16.25.0/24 is directly connected, Loopback2
C       172.16.26.0/24 is directly connected, Loopback3
C       172.16.27.0/24 is directly connected, Loopback4
D       172.16.8.0/24 [90/409600] via 192.168.10.0, 00:02:26, FastEthernet0/0
D       172.16.9.0/24 [90/409600] via 192.168.10.0, 00:02:26, FastEthernet0/0
D       172.16.0.0/21 [90/409600] via 192.168.10.0, 00:02:26, FastEthernet0/0

So the routes from Router 1 are now summarized in to 3 blocks. 172.16.0.0/21 which would include the first 8 networks, plus the 172.16.8.0 and 172.16.9.0 /24 which fall out side the summarization.

Note also the routes to null that have been entered. When you set up a summarization, the router will automatically set up a route to null for that network. The reason for this is that you many not actually have routes to all the subnets for the network you have advertised as a summary. Imagen in the above case there was no loop back 5 and 6 on router 2, so no networks 172.16.28.0 and 172.16.29.0 /24. But the router is still advertising a summary address that includes them. When packet arrive at the router they are routed based on the most specific match. so a packet coming in with a destination address of 172.16.27.59 will match both the following routes.

D 172.16.24.0/21 is a summary, 00:02:28, Null0
C 172.16.26.0/24 is directly connected, Loopback

but because /24 is more specific than /21 the route to the loop back interface will be used. However if there is no more specific route, then the null route will be matched and the packets discarded.

OK I said it was simple and it is. The topology files have both the starting position and my completed example. This is of course not the only solution. You can argue there are neater ways to do it, but I chose to use multiply statements to show how specific networks can be picked and what happens when summary address do not exactly match the networks that are configured.

There will be one more EIGRP Lab coming up that will be more involved and included redistribution of static routes and manual formation on neighbours.

DevilWAH

Back on line…

OK that was a bit simpler than I imaged it would be!

If any one wants to move the hosting of there wordpress let me know, but to sum up you copy the files over, dump the sql database and reimport it to the new hosting solution.

What I expected to take hours actually took about 30minutes.

And now that it is back up and running, I can get back to studying and posting some study stuff.

DevilWAH

Time to move!

Well you might ask why so quiet for the last few days.. Truth is I have just accepted a new job offer and this means that I will lose my current hosting for this site. As I am now moving house and work, I have decided I will move this site to a on-line hosting solution for now. Hopefully this should be up and running in the next few days and I can get back to posting again, with more info on what I will be doing in my new job, and more CCNP stuff.

Please bare with me during the move.

DevilWAH

CCNP ROUTE (Part 7 EIGRP General commands)

OK so been reading the intro to EIGRP, now its time to get configuring,  I think the best way to remember these is to take each one in turn and describe its function. Starting with the global commands, then the EIGRP specific commands, followed by some of the interface commands, and ending with a few basic verification commands. (For this post the configured name of the router will be “R1”)

GLOBAL COMMANDS.

R1(config)#ip routing.

This command is enabled by default on routers and disabled on layer 3 switches (some newer IOS do seem to have it enabled). Running this command enables routing on the device, with out it no routing of any kind will be preformed by the switch.

R1(config)#ip route <ip address> <subnet mask> <next hop address>

This command set a static route entry, not strictly EIGRP but important enough to know to be here. The next hop address can by an ip address to forward the traffic to, or jsut the interface to send the traffic out. It is considered best practice to if possible specify an ip address if possible. One common route entered this way is the “default route”

R1(config)#ip route 0.0.0.0 0.0.0.0 &lt;next hop address / interface&gt;

This sets the destination to pass all unknown traffic to, traffic that there is no specific entry in the routing table for.

R1(config)#router eigrp <AS number>

Enters into the eigrp configuration mode for the stated AS number, all routers running eigrp that are so share routing table/information, must be running the same AS number. If this is different then routers will not form neighbour relationships.

R1(config)#router eigrp 10

EIGRP CONFIGURATION MODE

R1(config-router)#auto-summary

By default this command is set to be enabled (although I believe in IOS version 15 is is now defaulted to “no auto-summery”). Having it enabled will cause EIGRP to automatically summarise all routes to their class full boundaries. Most people will want to diable this to give more control and manage summarization manually.

R1(config-router)#network <ip address> <wildcard mask>

This command has two separate effects. First it will enable the sending of routing update out of any interface that matches the address and wild card mask. Secondly it will advertise the networks that those interfaces have assigned to them. if for example you have the interface with the following ip address and subnet mask assigned. 192.168.5.254 255.255.255.0. and you add the eigrp network command.

R1(config-router)#192.168.5.254 255.255.255.255 (only the single ip address)

eigrp will send out updates on that interface, but these will included the advertised route 192.168.5.0 / 24, as this is the network subnet assigned to the interface.

R1(config-router)#Passive interface <int ID / Default>

Image you run the last command (network x.x.x.x y.y.y.y) on  the IP range for an interface that is connected to an end users network, with no other routers to form neighbours with? In this case you most likley do not want to send out routing updates but you still wish to advertise the network. In this case you can run the passive interface command to prevent multicast hello and update messages getting sent out.

R1(config-router)#neighbour <IP address> <interface ID>

Now Imagen you have run the passive interface command, but you wish to still send and receive updates from and two specific routers out of that interface? Using the neighbour command allows you to do this. In fact setting a neighbour in this method effectively turns the interface in to a passive interface by changing the hello messages from using the multicast address, to using unicast addresses.

INTERFACE CONFIGURATION MODE.

R1(config-if)#ip summary-address eigrp <AS num> <ip> <subnet mask>

If you have disabled auto-summary in the eigrp config mode, you may still want to do manual summarization. Configured under an interface, this command will summarize all routes that are advertised out that interface and that fall in to the summary network specified in to a single routing advertisment. Multiply summary address can be configured per interface, to cover multiply summary routes.

OK so that’s some of the eigrp commands to get started with. There are of course many more but using these it is possible to enable eigrp, configure the networks to be advertised (and what interfaces to advertise them on), and form neighbour relationships that will populate the routers routing table. So then the questions becomes how do we tell if it is all working

VERIFY COMMANDS

R1#show ip route

This will display the current routing table that has been populated by all routing protocols running, plus static routes and connected networks, that is used by the router to make decisions on the actually forwarding of data packets.

R1#show ip eigrp neighbours

Displays details about the neighbours EIGRP knows about. (neighbour table)

R1#Show ip eigrp topology

Show details of all networks that EIGRP has learnt about, details of how to reach them and what neighbours have advertised them. things like which one is the successor and feasible successors are shown here. This is a display of the topology table.

Now this table is not complete, so look out for part 2 to this table for when we get on to redistribution and more complex EIGRP setups.

DevilWAH

A Pirate’s reply.

Hollywood actors, self-centred, stuck up and caring more about there next surgery, drink or fix than any one else. That seems to be the common held view of many of them, and 99% of how they are portrayed in the news.

However this is one of those occasions where a star gets in the news for all the right reasons. Why don’t all actors answer there fan mail like this?

A Pirate Reply

CCNP ROUTE (Part 6 EIGRP Terminology in Diagrams)

Well after last post I thought it would be good to get together some simple diagrams to help explain the different terms and how they are use in EIGRP.

So to start with lets look at the difference between the Feasible distance and the advertised distance.

Fig 1

We are assuming that we are router A in this set up looking to reach the destination network 192.168.10.0/24. When router B sends it update packet to router A it will contain an entry for this destination network, this will include the bandwidth, delay, reliability and load values along with the MTU (100kb and 250) delay for router B’s downstream link. Router A will then computer the metric from these, This will be the advertised distance. Router A will then add on any additional values from it’s link to the neighbour and recompute the metric, this will become the Feasible distance.

These two values are used for determining the best path to the destination network, and also for deciding if a router should be considered a valid back up route to a network. So lets add some more routers.

Fig 2

So now there are two paths, and the EIGRP needs to determine which one to use. Just like you would expect from any routing protocol when DUAL runs it will pick the route with the lowest Feasible Distance and assign this route as the Successor. So in the example above the Feasible distance (FD) going through router B is 76800, so this route becomes the Successor. Each alternate route is then examined and the Advertised Distance (AD) for each is compared to the FD of the Successor route (76800). If the AD of the alternative is less than the FD of the Successor, the route is added as a Feasible Successor (FS). This means it can be made the active route if the Successor fails, with out any need for re-computation. If the AD is grater than the FD then the route will be ignored. This simple little formula insures there can be no loops in the routes. However as we can see in this case it can also rule out valid redundant links, here the route through C would not be added as a FS.

Rather than an instant fail over, now if router B fails, router A will have to send a query out to router C, wait for the reply to return and re-computer through DUAL.

Hopefully this post helps make clear exactly how EIGRP determines the best routes and how it acts in the event of topology changes. I also hope it shows how it takes the best parts of the distant vector protocols, borrows some things from link state, to achieve a low overhead, fast and efficient solution.

DevilWAH

CCNP ROUTE (Part 5 EIGRP Terminology)

Rather than dive straight in to configuring EIGRP, I thought it would be nice to cover some of the terminology and some of the basic commands for setting it up with a little explication on what exactly they do. I have not decided if I will actually at any point include my labs on this site, as from experience I know there are some great labs around already. But what ever happens, I will either add my own or make sure there are links to some of the good ones I have come across in the course materials.

Termonology

DUAL, This is the EIGRP algorthem that runs to determine what routes are used by traffic.

Autonomous System (AS), all EIGRP routers that are to share the same routing topology, must be running in the same AS, we will cover setting this up later in the post.

Neighbour, a neighbour is a router that can be reached through a network segment that is running the same EIGRP AS and is directly sharing routing information with the local router.

Successor, the neighbouring router with the best cost path too a destination network, will be marked as the successor for that network and will be used as the next hop to forward traffic to it.

Feasible Successor, Other routers that also have a path to the same destination as the successor will be marked as Feasible Successors and used in the event of the primary successor failing. For a router to be considered a feasible successor the advertised distance to the destination, must be less than the feasible distance of the successor. (don’t worry I will come back to this with a digram later)

Feasible distance, this is the total cost to reach a destination network, it includes the cost of the link to the neighbour who is advertising the link.

Advertised Distances, this is the cost of reaching a destination network as advertised by the neighbouring router, or to look at it another way, it is the feasible distance minus the cost of the link to the neighbour.

Neighbour Table, contains a list of the neighbouring routers and information about them.

Topology Table, contains a list of all the known destination networks along with what neighbours are advertising them and there costs among other information.

Routing Table, once DUAL has run against the Topology table, it picks the best routes and adds them in to the routing table. It is this table that is used for actual routing discussions for data packets.

Metric, the metric is used when determining the best path to a destination network. It is worked out from a formula that included, Delay, Bandwidth, Reliability and Load.

Metric = 256*([K1*Bw + K2*Bw/(256-Load) + K3*Delay]*[K5/(Reliability + K4)])

with default settings K1 and K3 are set to = 1 and K2, K4 and K5 = 0 and this reduces the formmular to metric = 256*(Bw + Delay), where Bw is 10^7  divided by the bandwidth in kb/s (bandwidth is taken as the minimum along the path), and delay is the sum of the delay on each hop of the path in 10’s of microseconds, be-aware delay on show interface is shown in microseconds so needs to be divided by 10.

Note that the MTU is also sent as part of the metric, however it is not used for the purpose of finding the best route but is tracked so the routers know end to end the max MTU that can be used.

OK this post is getting longer than I expected, so rather than carry on with the configuration, I think I will get together a digram to help visualise some of these terms. So look out for part 6 coming your way in the near future

DevilWAH

A Bit More Linux Stuff

While my CCNP studies are going well, this last week I have been setting up some more linux webservers at work, and I came across two issues. Both with simple solutions.

First was installing a SMTP relay server inside the network so websites (such as this one) can send admin  emails. Before I had been using an external smtp server, in the case of this site it was google mail, and while this is great for a single personal site it is not really the way you want to have it set up. One of the main resons of course is that by having your own internal mail server, only that one machine needs to connect to the outside.

It is actualy very easy to set this up, simply installing postfix, giving it a very basic set up. Using unbuntu and aptitude there is even a simple walk through script to get these configurations in.  Below is the default config you need to set up.

myhostname = host.domain.com
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = domain1.com, domin2.com, localhost
relayhost =
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 192.168.0.0/24 172.16.0.0/16
mailbox_size_limit = 050000000
recipient_delimiter = +
inet_interfaces = all
inet_protocols = all

The important one is “mynetworks = …….”

This is telling postfix that it should act as a rely from any host in these ranges that tries to use it to send mail thought it. But once you have the set up above and as long as the servers are in the ip ranges configured then you are good to go.

Just note a few things! First this is not the most secure set up, any device in the ranges can now send internet mail, this could end up a potential method of attack where malicious software attempts to send spam. Either be very care full in securing what devices can use the relay server or else think about using authentication to secure it.
Secondly if you do not have a static IP, and your mail server does not have a correct public DNS record set up, you may find some companies will refuse to accept mail from it. This is quite a standard way to prevent them getting hit by spam (Zombi clients infected with malware generally don’t have DNS records set up, company mail servers do). So if you expect to be sending lots of mail to a wide variety of internet address so make sure you sort this out.

My next step in this is to extend postfix to not only be a relay for my webservers but to become a full blown email server that revives internet mail for my domains.

The other thing I came across was mod_proxy and mod_proxy_http, A while ago before I knew what I was doing I set up some websites on a server. Now looking back I realise that my first attempt was poor and I need to build a new server up and move the sites over. But with only one external IP to play with and multiply sites there is an issue of trying to keep every thing live and working during this process. The network looks something like below.

And on the old server I have the following virtual host file.

<VirtualHost * >
ServerName  site1.domain.com
# Indexes + Directory Root.
#DirectoryIndex index.html
DocumentRoot /var/XXX/
<Directory /var/XXX/>
Options Indexes FollowSymLinks MultiViews
Options -Indexes
AllowOverride FileInfo
Order allow,deny
allow from all
</Directory>
</VirtualHost>

<VirtualHost * >
ServerName  site2.domain.com
# Indexes + Directory Root.
#DirectoryIndex index.html
DocumentRoot /var/WWW/
<Directory /var/WWW/>
Options Indexes FollowSymLinks MultiViews
Options -Indexes
AllowOverride FileInfo
Order allow,deny
allow from all
</Directory>
</VirtualHost>

So I set the first website up on my new server, but only having one external IP address, I can’t then easily forward external traffic to the new server. NAT/PAT wont work as all traffic is coming in on port 80. However the solution with mod_porxy_http is simple. Once I have set up the site on the new server and configured a virtual host for it. I can then update the virtual host file on the old server for the moved site to contain this entry.

<NameVirtualHost *
<VirtualHost *>
ServerName site1.domain.com
ProxyRequests Off
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPass / http://NEW.domain.com/
ProxyPassReverse / http://NEW.domain.com/
</VirtualHost>

Now although the requests are still coming in to the old server it is simply passing them to the new server and relaying the replies back. We can carry on moving each site over in turn until all the old server is doing, is acting as a proxy for all the site that are now running on the new server. We can then update the NAT/PAT if we wish to point directly to the new server and decommission the old server.

Another reason you might want to employ Mod_proxy is if you have several  heavily utilised sites that you want to run on separate hardware, but like this example you only have one public IP address. Having one physical box acting as a proxy server, you can farm out the requests to as many physical boxes as you wish. Taking this further and implementing the server load balancing that comes on many CISCO routers, along with a couple of low spec front end servers acting as proxy to your web-servers behind you can achieve, redundant, load balancing at low cost.

I have often found that set-ups that cost many 10’s thousands, can be emulated with hardware that is often already on site, and a little careful thought.

But that’s been my week so far, fun stuff 🙂

DevilWAH

Where is Microsoft Headed with Ballmer????

What ever people may think of Bill Gates, it is hard to argue against the fact that he was and still is an amazing business man. Taking Microsoft from its humble beginnings, and lets not argue about did he or didn’t he steal the idea. if he did he was not the first and all the others who claim he stole from them are hardly whiter than white them selves. To with out dispute the most well known and dominate OS producer we have yet seen.

Now after leaving Microsoft he has gone on to do more things, and again despite personal feeling you may have about him, he does more to further the causes of people in need than any other past or present director of the major IT industry leaders and not just in terms of money but also applying the skills he developed whilst at Microsoft.

Bill on mosquitos, malaria and education

Bill on energy: Innovating to zero!

I think we can say that Gates left Microsoft with a very firm footing after years of innovation and drive. So what of it’s future??

My personal view is that what Microsoft lost in Gates has not be replaced by Steve Ballmer. Where once they where pushing the boundaries and bringing new and exciting things to the IT world, suddenly they seem to be the ones playing catch up. Now while it is not unusual for a company to appear to slow while ramping up for the next “big thing”, in the case of Microsoft that “big thing” has been an awful long time in coming. Yes we have had windows 7, but that was hardly anything ground breaking, a good OS yes but nothing to write home about. Latley we have had huge publicity around Halo Reach, and again nothing denying its a good game, but still this is the 4th instalment, where is the innovation here?

Maybe even more worrying is Steve’s attitude to the competition. the following are two videos of his response to news of apples I-phone and Google Crome OS.

Laugh at the iphone.

Laugh at Google Crome OS.

Although we can forgive him for laughing at the iphone, as no one new how it was going to take off. However repeating the process with Google seems a little foolish. Neither Google nor indeed Apple are any longer small players in IT any longer, they have the backing, the following and plenty of money to be dipping there fingers in to lots of pies that previously only Microsoft where making.

So where is he taking Microsoft now? Windows 7 is just released, Server 2008 still quite young, and I haven’t heard about any plans for much development of the Xbox. What new and novel product will they launch. What is going to keep them on the map?

VMware have got on with Virtulisation, which seems to be the “next big thing”.

Google are so far ahead in terms of search and web they will be hard to catch,

Apple have the mobile market, (and if they falter Google with android is snapping at there heals)

Net-books and tablets are taken by the apple IPAD, blackberry’s playbook among others.

With only there desktop and server OS going for them, and as I said both a few years away until people will be ready to buy the next instalment. Has Microsoft missed the boat and starting on a slippery path to obsolation in the next 10  to 20 years? Will Steve actuly manage to take a hold of the company and point them back in the right direction? Or will he continue to simply laugh at the opposition in foolish hope. My advice to him would be if you are going to laugh, make dam sure that when it comes to crunch time you have the product to match.

I also noticed that his body language in the last clip, (Google) show him as being very uncomfortable, shifting on his chair and his gaze flicking around. Is this man really the person to lead?

Well just my thoughts, I think we are in a great time with they way things are developing, lots of major players all pushing each other. I think the next 10 year are going to show some great development in IT. I can’t wait to get involved in them.

DevilWAH

PS. I have added some more materials to the CCNP ROUTE course materials and a number of flash cards to the ROUTE pack.

Edit: and it seems I am not the only one seeing the cracks.. Microsoft staff survey.

CCNP ROUTE (Part 4 EIGRP Intro)

Before getting in to the configuration of EIGRP, its worth knowing some of the fundamental workings of the protocol, why and from where it was developed and how it differs from the other protocols in offer.

The first thing to note about EIGRP is that it is a CISCO propriety protocol. So no matter how great it is, unless you have 100% kit, and you company allows non-standardised protocols to be used (many government organisation for example will not allow its use), then you will be unable to implement. But lets assume you do have 100% CISCO and your company allows EIGRP, should you use it?

EIGRP was CISCO’s a step along from IGRP,  while IGRP was developed by CISCO as the step up from RIP. All are distant vector protocols where each routers receives a list of destination networks from each of its neighbouring routers, along with the cost to reach these networks. And from this information build a routing table that is used to route data packets by selecting the paths with the lowest cost to each destination.

EIGRP has several advantages on IGRP. First routes can be summarised at any interface on any router in the Autonomous system (more on AS’s in later posts), making it very flexible and truly a classless routing protocol. Secondly EIGRP runs DUAL ( Diffusing Update Algorithm ), Unlike most other routing protocols EIGRP learns not only the best path to a destination network but also any backup routes. So if there is a topology change, and a backup route exists it can be determined and activated in a very short space of time (milliseconds). Running DUAL also results in much lower processor overheads during topology changes and allows for not only load balancing across equal links, but also across unequal links (the only protocol to allow this). CISCO label EIGRP as an advanced distant vector protocol, as it benefits from many things found in link state protocols (loop free), while retaining the speed and simplicity of distant vector. It is also very simple to configure. Should you use it or not is a personal choice, however many of the networking experts in the field will agree with CISCO and confirm it is a very solid and efficient protocol to use.

EIGRP relies on 4 major components.

  1. Neighbour discovery and recovery.
  2. Reliability of transport of EIGRP management traffic.
  3. The DUAL finate state machine.
  4. The Protocol dependent model.

For neighbour discovery, Each router sends out periodic hello messages, when other routers receive these they check for compatibility and then reply. Once the neighbour relationship is formed updates containing routing data can be sent. One the initial updates have been exchanged and each router has the routing tables from its neighbour, the only updates that will be sent are for changed in topology. Other wise only hello messages are sent to determine the status of the relationship.

To keep traffic overheads down, EIGRP only uses reliable transport when needed. For example Hello messages may be sent as multicast with out reliability. Where as updates are sent as unicast with reliability. If it is to be used or not is determined by the originator requesting it in the packet.

DUAL finite state machine. When DUAL is run on the neighbourhood table and Topology table (more about them later), it will pick the best cost path and add this to the routing table as the successor route. All other routes will be checked to see iof they match the requirements to be a Feasible successor, if so they will be marked as such. In the case of the successor failing, DUAL will pick the next best Feasible successor and add that to the routing table. This requires no re computation, if no Feasible successor can be found then it will query the neighbouring routers for the route.

The Protocol dependent module deals with network layer protocol specific requirements. EIGRP can route multiple protocols, it is the IP-EIGRP module that is responsible for IP routing.

EIGRP Tables.

There are 2 tables that are specific to EIGRP, the “neighbour table” and the “topology table”.

The Neighbour table contains a list of every neighbour that the router knows about, along with details of things like, address, interface, hold time, sequence numbers, and round trip times.

The topology table contains a list of all the learnt destination address, and for each router that has advertised the network, the advertised distant for the path, plus feasible distant, as well as the next hop router address. (It is worth noting that routers will only advertised links in actually use to an upstream router, feasible successors are not advertised if they are not involved in forwarding traffic)

DUAL runs on these two tables to form entries to the IP routing table that is used to forward data packets.

EIGRP Packet types.

  • HELLO/ACK’s
  • Updates
  • Queries
  • Reply
  • Requests

Hello’s are sent generally as multicast, in an unreliably manor, the ACK (which is an empty hello message) is sent as unicast to the originator.

Updates that contain route information are usually sent as unicast, however updates that only contain link cost changes can be sent as multicast. Which ever method they are sent using the reliable method.

Queries are sent when a router loses the link to a destination and does now have a feasible successor in there topology, they will then queries all there connected neighbours to see if they have a path. Neighbours will reply is they have a successor to the destination, or if not will pass on the request to there neighbours.  Queries are multi-case replys unicast, both are treated as reliable traffic.

Requests are sent to nebighour routers to request specifice information (route server applications), they can be both multi-cast or unicast and are always set as unreliable.

Route tagging and Route states.

EIGRP is aware of internal and external routes, routes can be tagged to allow passing of information between EIGRP AS’s or when redistribution occurs between different routing protocols. (we will come back to tagging later) This allows from more controlled policy based routing.

Routes in EIGRP can be in one of two states. Passive which is good and means a route is stable in the topology. and Active when the router is forming a re-computation on the route. This would happen where there is no feasible successor and the router is having to query neighbouring routers. Ideally routes should almost never be in the active state.

Further reading

Eigrp intro cisco

Internetworking Technology Handbook EIGRP

Next time we will explore some of the terminology of EIGRP before running through the more common configuration and verification commands.

DevilWAH