Tag Archives: EIGRP

EIGRP routing on a Cisco 3550 Switch

This evening I was trying to get a Cisco 3550 switch (EMI) to form an EIGRP adjacency with a router directly connected to it. However, I kept getting the following syslog message:

%DUAL-5-NBRCHANGE: EIGRP-IPv4 10: Neighbor 172.26.6.9 (GigabitEthernet0/0) is down: retry limit exceeded

… and the ip route command showed nothing. Same with show eigrp neighbor and topology command. So what was going on?

3550 Neighbors
3550 Neighbors
Router neighbors
Router neighbors

I ran the debugs on both the router and switch, and that showed me nothing.  I checked all manor of protocol settings, rebooted both devices, checked CPU usage etc.

I could ping the router from the switch and vice versa, so what was I doing wrong?

I had missed one vitally important step when using L3 capability on a switch; I had neglected to enable the routing.

As soon as I issued the command ip routing, my neighbor adjacencies came up and my route tables now held the correct shared routes.

So, what was it that tipped me off? I was checking to see if the switch was enabled to handle multicast traffic. Now this is important because the EIGRP routing updates are multicast. The way to do this is to type:

(config)# ip m?

and you will see the multicast commands listed. I did not see that, in fact I saw nothing. So I backed up a little and typed:

(config)# ip ?

and as I was scrolling through the list of possibilities, I saw, routing … and my memory was jogged.

Sometimes you just have to remember the basics!

Tweet about this on TwitterShare on Google+Share on LinkedInShare on FacebookShare on RedditShare on StumbleUponEmail this to someone

Even More Routing – Part 4 – EIGRP

route6This post also applies to OSPF as well. What we are going to look at is auto-summarization. By default it is normally on and for the CCNA studies and the networks we are working with, this is undesirable.

So what is summarization? It is a process where the network routes are summarized when those routes are sent across a network boundary.

We will illustrate this in a quick lab, as follows:

We have some loopbacks on router 2 and 3, that are part of the same network, but have been subnetted. We are going to implement EIGRP routing with the auto summarization left on.

And this is what we get at router 1:

D 20.0.0.0/8 [90/2297856] via 172.12.123.3, 00:00:48, Serial0/1
             [90/2297856] via 172.12.123.2, 00:00:48, Serial0/1
 172.12.0.0/24 is subnetted, 1 subnets
C 172.12.123.0 is directly connected, Serial0/1

Routers 2 and 3 have summerized their routes when sending them to router 1. Router 1 THINKS it has two routes to the network, however, when we ping the network we get a small disaster:

r2610xm#ping 20.1.1.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 20.1.1.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 32/33/37 ms
r2610xm#ping 20.2.2.2
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 20.2.2.2, timeout is 2 seconds:
U.U.U
Success rate is 0 percent (0/5)
r2610xm#ping 20.3.3.3
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 20.3.3.3, timeout is 2 seconds:
U.U.U
Success rate is 0 percent (0/5)
r2610xm#ping 20.4.4.4
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 20.4.4.4, timeout is 2 seconds:
U.U.U
Success rate is 0 percent (0/5)

To fix that we would add no auto-summary on routers 2 and 3, and that would solve the problem at router1.

r2610xm#sh ip route
20.0.0.0/16 is subnetted, 4 subnets
D  20.4.0.0 [90/2297856] via 172.12.123.3, 00:01:05, Serial0/1
D  20.1.0.0 [90/2297856] via 172.12.123.2, 00:01:55, Serial0/1
D  20.2.0.0 [90/2297856] via 172.12.123.2, 00:01:55, Serial0/1
D  20.3.0.0 [90/2297856] via 172.12.123.3, 00:01:05, Serial0/1
 172.12.0.0/24 is subnetted, 1 subnets
C  172.12.123.0 is directly connected, Serial0/1

And there is the problem solved!

Maximum Path

This is the command that specifies how many routes we can run load balancing over. Default is 4.

If you set it to 1, you are disabling load balancing.

The Topology Table.

Lets take a quick look at the topology table.

r2610xm#sh ip eigrp topology
IP-EIGRP Topology Table for AS(100)/ID(172.12.123.1)

Codes: P - Passive, A - Active, U - Update, Q - Query, R - Reply,
 r - reply Status, s - sia Status

P  20.4.0.0/16, 1 successors, FD is 2297856
          via 172.12.123.3 (2297856/128256), Serial0/1
P  20.1.0.0/16, 1 successors, FD is 2297856
          via 172.12.123.2 (2297856/128256), Serial0/1
P  20.2.0.0/16, 1 successors, FD is 2297856
          via 172.12.123.2 (2297856/128256), Serial0/1
P  20.3.0.0/16, 1 successors, FD is 2297856
          via 172.12.123.3 (2297856/128256), Serial0/1
P  172.12.123.0/24, 1 successors, FD is 2169856
          via Connected, Serial0/1

There is that letter P, for passive. So what does that mean and wouldn’t active be better? It sounds better!

Well no and here is why. This goes back to the short paragraph on DUAL Query. If the router needs to find a route, that route will go active while the dual query is in effect. Once a route has been established or not found and removed, it will go back to passive.

And that pretty much concludes routing.

Tweet about this on TwitterShare on Google+Share on LinkedInShare on FacebookShare on RedditShare on StumbleUponEmail this to someone

Even More Routing – Part 3 – EIGRP

So we have successfully run our lab, but lets take a look at a couple of other facets of EIGRP.

The Topology Table

Running the command sh ip eigrp top, give us the topology table.

r2610xm#sh ip eigrp topology

IP-EIGRP Topology Table for AS(100)/ID(172.12.123.1)
Codes: P - Passive, A - Active, U - Update, Q - Query, R - Reply,
 r - reply Status, s - sia Status

P 3.3.3.3/32, 1 successors, FD is 2297856
     via 172.12.123.3 (2297856/128256), Serial0/1
     via 172.12.123.2 (2300416/156160), Serial0/1
P 2.2.2.2/32, 1 successors, FD is 2297856
     via 172.12.123.2 (2297856/128256), Serial0/1
     via 172.12.123.3 (2300416/156160), Serial0/1
P 1.1.1.1/32, 1 successors, FD is 128256
     via Connected, Loopback0
P 172.23.23.0/24, 2 successors, FD is 2172416
     via 172.12.123.2 (2172416/28160), Serial0/1
     via 172.12.123.3 (2172416/28160), Serial0/1
P 172.12.123.0/24, 1 successors, FD is 2169856
     via Connected, Serial0/1

Notice the two successors indicated for the Ethernet segment?
Notice also there are two successors listed for the loopback 3.3.3.3 and 2.2.2.2, BUT only one successor is indicated. This is because of the metrics – one is a little higher than the other one.

Now when we look at the metrics for the route to 3.3.3.3, they are pretty close. (229xxxx vs 230xxxx) We could use both of these paths but we can’t use equal cost load balancing. What we can do is unequal cost load balancing, and this is achieved through the variance command.

The Variance Command

This is a multiplier. What it essentially says is that if we take the value of the successor route metric, and multiply it by the variance, any feasible successor route with a value less than the metric x variance value will also go into the routing table.
It sounds complex but really it is pretty simple. Here is a very basic example:

Successor Route Metric:                150
Feasible Successor Route Metric : 250

With a variance of 2, the multiplied value is 300 so the feasible successor can be added to the routing table.

The problem with this is that if you make the variance too high, you can end up including routes that should never be in the routing table so we have to use the variance with care.

The command syntax is:

router eigrp 100
variance 2

and here is on the live equipment:

r2610xm(config)#router eigrp 100
r2610xm(config-router)#variance ?
 <1-128> Metric variance multiplier
r2610xm(config-router)#variance 2
r2610xm(config-router)#^Z
r2610xm#conf t
*Feb 16 09:56:02.591: %SYS-5-CONFIG_I: Configured from console by console
r2610xm#sh ip route eigrp
2.0.0.0/32 is subnetted, 1 subnets
D 2.2.2.2 [90/2300416] via 172.12.123.3, 00:00:20, Serial0/1
          [90/2297856] via 172.12.123.2, 00:00:20, Serial0/1
3.0.0.0/32 is subnetted, 1 subnets
D 3.3.3.3 [90/2297856] via 172.12.123.3, 00:00:20, Serial0/1
          [90/2300416] via 172.12.123.2, 00:00:20, Serial0/1
172.23.0.0/24 is subnetted, 1 subnets
D 172.23.23.0 [90/2172416] via 172.12.123.3, 00:00:20, Serial0/1
              [90/2172416] via 172.12.123.2, 00:00:20, Serial0/1

You can clearly see the extra routes added to the routing table for 2.2.2.2 and 3.3.3.3 because the variance command is global, not per route.

 

 

 

Tweet about this on TwitterShare on Google+Share on LinkedInShare on FacebookShare on RedditShare on StumbleUponEmail this to someone

Even More Routing – Part 2 – EIGRP

In this post, we take what we learned in the last post and try it in a lab set up. Once again we are using our frame relay topology.

route5With no loopbacks or other links active, just the frame relay, we can issue the router command on each router:

conf t
router eigrp 100
no auto
network 172.12.123.0 0.0.0.255

Notice: the wildcard is optional.
Also, the number 100 after the eigrp command is the AS (Autonomous System Number) and needs to be specified. The number is user definable.
Issuing a show neighbor command gives us:

r2610xm#sh ip eigrp ne
IP-EIGRP neighbors for process 100
H Address      Interface Hold Uptime  SRTT RTO Q   Seq
                             (sec)   ( ms)     Cnt Num
1 172.12.123.3 Se0/1    167 00:01:09 20   200   0   1
0 172.12.123.2 Se0/1    179 00:01:53 20   200   0   1

… so we can see, our adjacencies have been set. Now lets add our loopbacks. On each router we issue the following:

r1721(config)#int loopback0
r1721(config-if)#ip address 3.3.3.3 255.255.255.255
r1721(config-if)#exit
r1721(config)#router eigrp 100
r1721(config-router)#network 3.3.3.3 0.0.0.0
r1721(config-router)#^Z

and on router one we get this:

r2610xm#sh 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:44, Serial0/1
 3.0.0.0/32 is subnetted, 1 subnets
D  3.3.3.3 [90/2297856] via 172.12.123.3, 00:00:40, Serial0/1

90 is the administrative distance of internal (regular) eigrp. The other (long) number is the metric. Don’t mess with the metrics.

Now lets add the Ethernet segment into the mix:
From router two we can see we have our new neighbor:

r2620#sh ip eigrp ne
IP-EIGRP neighbors for process 100
H Address Interface Hold Uptime SRTT RTO Q Seq Type
                                 (sec) (ms) Cnt Num
1 172.23.23.3 Fa0/0 13 00:00:10 4 200 0 6 
0 172.12.123.1 Se0/0 172 00:27:58 785 4710 0 9

So if we go to router 1 and check the full route table, we get:

r2610xm#sh ip route
 1.0.0.0/32 is subnetted, 1 subnets
C   1.1.1.1 is directly connected, Loopback0
 2.0.0.0/32 is subnetted, 1 subnets
D   2.2.2.2 [90/2297856] via 172.12.123.2, 00:05:22, Serial0/1
 3.0.0.0/32 is subnetted, 1 subnets
D   3.3.3.3 [90/2297856] via 172.12.123.3, 00:05:19, Serial0/1
 172.12.0.0/24 is subnetted, 1 subnets
C   172.12.123.0 is directly connected, Serial0/1
 172.23.0.0/24 is subnetted, 1 subnets
D   172.23.23.0 [90/2172416] via 172.12.123.3, 00:05:24, Serial0/1
              [90/2172416] via 172.12.123.2, 00:05:25, Serial0/1

See the two routes to the ethernet segement at the bottom of the table. The metric for the routes to that segment are identical so the router will perform equal cost load balancing, in much the same way OSPF would.

 

Tweet about this on TwitterShare on Google+Share on LinkedInShare on FacebookShare on RedditShare on StumbleUponEmail this to someone

Even More Routing – Part 1 – EIGRP

In the next series of posts we will be taking a look at our final routing protocol before we wrap up routing, and that is EIGRP.

EIGRP (Enhanced Internal Gateway Routing Protocol) is a hybrid protocol, exhibiting behaviors seen in distance vector and link state protocols.

The main features of EIGRP are:

  • Rapid Convergence – backup routes have already been calculated and can be implemented immediately on topology changes.
  • Multi- protocol support
  • Support for CIDR and VLSM

… however there is a downside and that is the protocol is Cisco proprietary.
So what makes this protocol a hybrid?

  • it uses HELLO packets to establish and maintain neighbor relationships (Links State and Distance Vector)
  • It only passes changes to the network upon topology changes (Link State)
  • It passes a complete routing table on formation of a neighbor adjacency. (Distance Vector)

How does EIGRP work?

This protocol works in some ways like OSPF, in that it calculates the best loop free routes and implements them based on its neighbors. Where EIGRP differs is that it uses the Diffusing Update Algorithm, or DUAL, and maintains three tables of data:

  • Route Table – best (successor) routes
  • Topology Table – best routes and backup (feasible successor) routes
  • Neighbor table – info about the neighbors

With the other routing protocols, only one table was kept.

The other part of the operation of EIGRP is the also similar to OSPF in that we define and use areas – only in this case they are Autonomous Systems. This is a logical group of routers and routers in separate AS’s will not become neighbors and exchange information. That only happens with routers within the same AS, and this is one of the parameters routers must agree on in order to become neighbors.

Some terms we need to be familiar with:

  • Successor route – the primary route
  • Feasible Successor – calculated backup routes
  • DUAL – the algorithm used for calculating the routes

Hello Packets.

Hello packets are multicast to 224.0.0.10, and are used as keep alives and to discover and form neighbor relationships, in a similar manner to OSPF.

Reliable Transport Protocol (RTP) is the transport type that is used to transmit hello packets

Metric Weights

Metric weights refers to the metrics used to talk about bandwidth, delay, load and reliability. By default, EIGRP only considers bandwidth and delay when calculating metrics.

Feasible Successor Question

Is the neighboring routers metric for this route lower than mine?

  • If not, there may be a loop present and the route will not be used.
  • if so, no loop is present and this might become the feasible successor

DUAL Query

This is used when there is a successor route, but no feasible successor route. The router will issue a DUAL QUERY to two neighbors who will query two of their neighbors until a feasible successor is found, or no valid route is found.

Tweet about this on TwitterShare on Google+Share on LinkedInShare on FacebookShare on RedditShare on StumbleUponEmail this to someone