EIGRP Stub Explained

In a previous tutorial I explained the EIGRP SIA (Stuck In Active) problem, if you are not sure what SIA is then please read that tutorial first as it explains why the EIGRP stub feature is useful. Having said that, let’s look at the EIGRP stub…

In a previous tutorial I explained the EIGRP SIA (Stuck In Active) problem, if you are not sure what SIA is then please read that tutorial first as it explains why the EIGRP stub feature is useful. Having said that, let's look at the EIGRP stub... let's start with a nice topology! Look at the follow



let’s start with a nice topology!

hq1 hq1 br1 br2 stubs

Look at the following topology. We have a company with headquarters and 2 branch offices. The 2 HQ routers are connected on the LAN using a Gigabit link. The branch offices are connected to both HQ routers using slow 64kbps serial links. What do you think will happen once HQ 1 loses its route to the 1.1.1.0 /24 network on the left side? Take a look at the following picture:

eigrp queries everywhere

Query packets (red arrows) will fly everywhere! It doesn’t sound like a good idea to use the serial links for backup so we are going to change this behavior by turning the branch routers into EIGRP stubs.

Once the branch routers are configured as stubs, this is the only query you will see:

eigrp query with stubs

If we configure the branch routers as stub routers they will not receive queries from our HQ routers. This is a very good technique to stop query traffic!

Tree stub

Why do we call it a stub? You have probably seen one before! A tree that is cut off is called a stub…there’s nothing attached to it anymore.

If you look at our branch routers they are like the tree. There are no other routers behind the branch routers and we don’t want to use them as backup paths so why bother querying them? EIGRP stubs are not an “all or nothing” solution. We have different flavors so you can choose to which types of routes the stub router should receive queries or not.

Here are the flavors we have:

  • Receive-only: The stub router will not advertise any network.
  • Connected: allows the stub router to advertise directly connected networks.
  • Static: allows the stub router to advertise static routes (you have to redistribute them).
  • Summary: allows the stub router to advertise summary routes.
  • Redistribute:allows the stub router to advertise redistributed routes.

The default is connected + summary. If you like you can mix some of the options with the exception of receive-only because it denies all advertisements. Redistribution is the importing and exporting of routing information from one routing protocol to another.

Let’s look at some configuration examples for the different stub types!

Stub Configuration

To demonstrate the different stub types I will use the following topology:

Two Routers R2 Loopback Interface

Two routers connected to each other, R2 has a loopback interface. We’ll use a basic EIGRP configuration:

R1(config)#router eigrp 123
R1(config-router)#network 192.168.12.0
R2(config-if)#router eigrp 123
R2(config-router)#network 192.168.12.0
R2(config-router)#network 2.2.2.0 0.0.0.255

Let me first demonstrate the EIGRP query behavior to you, we’ll have to enable a debug for that:

R1#debug eigrp packets query 
EIGRP Packets debugging is on
    (QUERY)
R2#debug eigrp packets query 
EIGRP Packets debugging is on
    (QUERY)

We’ll shut the loopback0 interface on R2 to see what will happen:

R2(config)#interface loopback 0
R2(config-if)#shutdown

This is what happens:

R2#
EIGRP: Enqueueing QUERY on FastEthernet0/0 iidbQ un/rely 0/1 serno 33-33
EIGRP: Enqueueing QUERY on FastEthernet0/0 nbr 192.168.12.1 iidbQ un/rely 0/0 peerQ un/rely 0/0 serno 33-33
EIGRP: Sending QUERY on FastEthernet0/0
  AS 12, Flags 0x0, Seq 55/0 idbQ 0/0 iidbQ un/rely 0/0 serno 33-33

You can see that R2 is sending a query towards R1.

R1# EIGRP: Received QUERY on FastEthernet0/0 nbr 192.168.12.2
AS 12, Flags 0x0, Seq 55/0 idbQ 0/0 iidbQ un/rely 0/0 peerQ un/rely 0/0

And we see that R1 has received the query. So far so good, this is normal EIGRP behavior. You lose a network…you ask your neighbors if they know where it is. Let’s get that loopback back online:

R2(config)#interface loopback 0
R2(config-if)#no shutdown

And we’ll configure R1 as an EIGRP stub router.

R1(config)#router eigrp 12
R1(config-router)#eigrp stub

By default, the stub feature uses connected + summary, you can confirm this by looking at the running configuration:

R1#show running-config | begin router eigrp
router eigrp 12
 network 192.168.12.0
 no auto-summary
 eigrp stub connected summary

My debugging is still enabled so the neighbors will show you a message that the configuration has changed:

R1#
%DUAL-5-NBRCHANGE: IP-EIGRP(0) 12: Neighbor 192.168.12.2 (FastEthernet0/0) is down: peer info changed
%DUAL-5-NBRCHANGE: IP-EIGRP(0) 12: Neighbor 192.168.12.2 (FastEthernet0/0) is up: new adjacency
R2#
%DUAL-5-NBRCHANGE: IP-EIGRP(0) 12: Neighbor 192.168.12.1 (FastEthernet0/0) is down: Interface Goodbye received
%DUAL-5-NBRCHANGE: IP-EIGRP(0) 12: Neighbor 192.168.12.1 (FastEthernet0/0) is up: new adjacency

Let’s see if there are any differences when I shut the loopback 0 interface…

R2(config)#interface loopback 0
R2(config-if)#shutdown

The interface goes down…let’s see what happens:

R1# 
EIGRP: Received QUERY on FastEthernet0/0 nbr 192.168.12.2
EIGRP: Enqueueing QUERY on FastEthernet0/0 iidbQ un/rely 0/1 serno 28-28
EIGRP: Enqueueing QUERY on FastEthernet0/0 nbr 192.168.12.2 iidbQ un/rely 0/0 peerQ un/rely 0/0 serno 28-28
EIGRP: Sending QUERY on FastEthernet0/0
  AS 12, Flags 0x0, Seq 44/0 idbQ 0/0 iidbQ un/rely 0/0 serno 28-28
R2#
EIGRP: Received QUERY on FastEthernet0/0 nbr 192.168.12.1
  AS 12, Flags 0x0, Seq 44/0 idbQ 0/0 iidbQ un/rely 0/0 peerQ un/rely 0/0

You can see that R1 will send a query towards R2 because it has lost the 2.2.2.0 /24 network. It’s not receiving a query anymore from R2 because it’s a stub router!

Configurations

Want to take a look for yourself? Here you will find the configuration of each device.

R1

hostname R1
!
ip cef
!
interface FastEthernet0/0
 ip address 192.168.12.1 255.255.255.0
!
router eigrp 123
 network 192.168.12.0
!
router eigrp 12
 eigrp stub connected summary
!
end

R2

hostname R2
!
ip cef
!
interface Loopback0
 ip address 2.2.2.2 255.255.255.0
!
interface FastEthernet0/0
 ip address 192.168.12.2 255.255.255.0
!
router eigrp 123
 network 2.2.2.0 0.0.0.255
 network 192.168.12.0
!
end


Now you know how it deals with the queries, let’s take a look at the different stub options! I’ll be using another topology for this:

eigrp stub example r1 r2 r3

I’m using a basic EIGRP configuration, here’s what it looks like on each router:

R1#show run | begin router eigrp
router eigrp 12
 network 192.168.12.0
 no auto-summary
R2#show run | begin router eigrp
router eigrp 12
 network 2.2.2.0 0.0.0.255
 network 192.168.12.0
 network 192.168.23.0
 no auto-summary
R3#show run | begin router eigrp
router eigrp 12
 network 3.3.3.0 0.0.0.255
 network 192.168.23.0
 no auto-summary

Nothing special as you can see. Let me add a loopback 0 interface on R1 and advertise it into EIGRP.

R1(config)#interface loopback 0
R1(config-if)#ip address 1.1.1.1 255.255.255.0

R1(config)#router eigrp 12
R1(config-router)#network 1.1.1.0 0.0.0.255

Nothing special so far…

R2#show ip route eigrp 
     1.0.0.0/24 is subnetted, 1 subnets
D       1.1.1.0 [90/156160] via 192.168.12.1, 00:00:48, FastEthernet0/0

You can see that R2 has learned about network 1.1.1.0 /24. Now let’s play with the stub feature:

We're Sorry, Full Content Access is for Members Only...

If you like to keep on reading, Become a Member Now! Here is why:

  • Learn any CCNA, CCNP and CCIE R&S Topic. Explained As Simple As Possible.
  • Try for Just $1. The Best Dollar You've Ever Spent on Your Cisco Career!
  • Full Access to our 655 Lessons. More Lessons Added Every Week!
  • Content created by Rene Molenaar (CCIE #41726)

535 Sign Ups in the last 30 days

satisfaction-guaranteed
100% Satisfaction Guaranteed!
You may cancel your monthly membership at any time.
No Questions Asked!

Tags:


Forum Replies

  1. Hi Rob,

    There’s a big difference between the two. An EIGRP router that is configured as a stub does not receive queries when one of its neighbors loses a network.

    Passive-interface is about sending hello packets on an interface. Normally when you use the network command to advertise something then it does two things:

    1. It advertises all networks that fall within the range of your network commmand on all active interfaces.
    2. It sends hello packets on all active interfaces that have networks that fall within the range of your network command.

    When you enable passiv

    ... Continue reading in our forum

  2. Hi,

    Yes this is pretty much exactly what I said in my post.

    There are some specific use cases where you will need to allow a stub router to process queries (such as multihomed branch offices in a DMVPN deployment where if R1’s uplink fails, you have to reconverge through R2 etc).

  3. Hello Jeremy

    This is a great question and it brings up some subtle points of how EIGRP functions. Queries are subject to the split horizon rule just like advertisements are. If you get a query for a network from an interface, you never send out a query for that same network from that interface.

    So in the first case, when R2 lost connectivity to the loopback network, it sent a query to R1 for an alternate route to that destination. This is because in this case, R1 is not a stub. Because R1 got a query from R2, it did not send a query back to R2 via that inte

    ... Continue reading in our forum

  4. Thank you Lazaros,
    It is clear for me, and I have to say that I am one of the luckiest person that I have Lazaros.

  5. Hello Rene,

    I took some time to lab this “eigrp stub redistributed” out and found some interesting parts (if only “redistributed” is in it without “connected” and “summary”)
    The Stub router will only advertise if you use the eigrp “redistribute” command with an foreign routing protocol or another EIGRP AS it wont advertise the route if you use “redistribute connected” or “redistribute static” you need to manually

    ... Continue reading in our forum

31 more replies! Ask a question or join the discussion by visiting our Community Forum