EIGRP Stub Explained

EIGRP stub routing prevents stub routers from receiving query packets from their neighbors. When you configure a router as an EIGRP stub, it tells its neighbors not to send any queries.  This reduces query traffic, which is particularly useful in hub-and-spoke topologies. In large hub-and-spoke topologies, a lost route at the hub can trigger queries to all neighbors, including routers at remote branches over (slow) WAN links with no other routers behind them. Not sending queries to these remote routers helps prevent the Stuck in Active (SIA) problem and improves network convergence.

In this lesson, we’ll learn how EIGRP stub routing works, when to use it, and explore the different stub options (receive-only, connected, static, summary, and redistributed). We’ll configure each option and verify the behavior.

Key Takeaways

  • EIGRP stub routers don’t receive query packets from their neighbors.
  • Stub routing prevents SIA issues in hub-and-spoke topologies
  • Default stub behavior is connected + summary routes
  • Five stub options available:
    • receive-only
    • connected
    • static
    • summary
    • redistributed
  • Stub routers still maintain full routing tables, but limit what they advertise.

Prerequisites

Before studying EIGRP stub routing, you should understand:

  • Basic EIGRP configuration and neighbor relationships
  • EIGRP query process and how queries propagate through the network
  • Stuck in Active (SIA) problem – read the EIGRP Queries and Stuck in Active lesson first
  • Basic hub-and-spoke network topologies

Explanation

Let’s take a closer look at how this works.  When you configure a router as an EIGRP stub, it advertises its stub status to neighbors during the EIGRP hello process. Neighbors receive this information and mark the router as a stub in their topology table. When a hub router loses a route, it checks each neighbor’s stub status. If a neighbor is a stub router, the hub router skips sending queries to that neighbor. The hub router immediately marks that path as unreachable without waiting for a query reply. The stub router continues to receive all routes from its neighbors and maintains a complete routing table. The stub feature only limits which routes the stub router advertises and prevents it from receiving queries.


Let’s take a look at an example. Here is the topology:

hq1 hq1 br1 br2 stubs

We have a company network with headquarters and two branch offices. The two 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) are sent 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 effective technique for stopping query traffic.

Why do we call it a stub? 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 a 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? There are different options to configure EIGRP stub routers:

Here are the options:

  • 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, except receive-only, which blocks all advertisements. Redistribution is the importing and exporting of routing information from one routing protocol to another.

Configuration

Let’s look at this in action. To demonstrate the different stub types, I will use the following topology:

Two Routers R2 Loopback Interface

Two routers are connected, and R2 has a loopback interface. We’ll use a basic EIGRP configuration:

R1(config)#router eigrp 12
R1(config-router)#network 192.168.12.0
R2(config-if)#router eigrp 12
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 to 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: 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 to 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!

Depending on your IOS version, it’s also possible that R1 doesn’t send a query. The output above is from IOS 15.1(4)M10. On 15.6(3)M2, R1 didn’t send any query to R2.

Configurations

Want to take a look for yourself? Here, you will find the final 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 look at the different stub options! I’ll be using another topology for this:

Eigrp Stub Three Routers Topology

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!

  • Learn CCNA, CCNP and CCIE R&S. Explained As Simple As Possible.
  • Try for Just $1. The Best Dollar You've Ever Spent on Your Cisco Career!
  • Full Access to our 799 Lessons. More Lessons Added Every Week!
  • Content created by Rene Molenaar (CCIE #41726)
2989 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. Hello,

    thank you for this lesson, and It very helpfull.
    on the start of config on router 1, I think there is one mistake.

    R1(config)#router eigrp 123 (router ei 12).

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

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

    I think it should be shutdown and not “no shut”

  3. Thanks for letting me know, just fixed it.

  4. HI Rene,

    Nice explanation.

    what is the difference between stub static and stub redistribute.
    for me , it seems both are same as in both the cases only redistributed routes will be advertised as per the example you have provided.

    Thanks, Praveen

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