Route summarization is one of those EIGRP features that looks like a simple address-shortening trick but quietly solves three different problems at once: it shrinks topology tables, it speeds up convergence, and it creates query boundaries that protect you from stuck-in-active events. If you are working through the EIGRP complete guide, summarization is the point where the protocol stops being a config exercise and starts being a design tool.
In this article you will configure manual summarization in both classic and named mode on Cisco IOS XE, watch the Null0 discard route appear, advertise a default route with summary-address 0.0.0.0/0, and see a suppression side effect that surprises a lot of engineers the first time. Every output below is captured live from a CML lab, not typed from memory.
Why Summarize in EIGRP
EIGRP is a distance vector protocol, so every router carries every prefix it learns in its topology table. In a small lab that costs nothing. In a network with a few thousand routes, every extra prefix is more memory, more update traffic, and, most importantly, more queries when something fails. When EIGRP loses a route with no feasible successor, it queries its neighbors for that exact prefix (the full mechanics are in the EIGRP query process and stuck-in-active deep dive). A router that only knows a summary cannot be queried for the missing /24 inside it, which means summarization physically limits how far queries propagate.
Three wins, one command:
- Smaller routing and topology tables. Four /24s become one /22. Multiply that across a real address plan and the savings are significant.
- Fewer updates. A flapping /24 inside a stable summary is invisible to the rest of the network, because the summary metric only changes when the best component metric changes.
- Query boundaries. Routers that only know the summary reply immediately to queries for component routes, which is your main structural defense against stuck-in-active.
Interface-Level Summarization (Not Like OSPF)
If you come from OSPF, recalibrate: OSPF can only summarize at area boundaries on ABRs and ASBRs (see the OSPF complete guide for why). EIGRP has no areas, so it summarizes per interface, on any router. You decide exactly which neighbor sees the summary and which sees the components. That flexibility is a genuine architectural advantage of EIGRP, and it is one of the honest points in favor of EIGRP in the EIGRP vs OSPF comparison.
The Lab
Five IOL-XE routers in CML. R1 is the hub, R2 and R3 are spokes, and R4-R5 form a longer alternate path. R3 carries four loopbacks that simulate a site address block: 10.1.0.0/24 through 10.1.3.0/24, which pack neatly into 10.1.0.0/22. R1, R2, and R4 run named mode EIGRP (router eigrp PINGLABZ, AS 100) while R3 and R5 run classic mode (router eigrp 100), so you will see both syntaxes.
Before summarization, R1 sees all four components from R3:
R1# show ip route eigrp | include 10.1.
D 10.1.0.0/24 [90/3584000] via 10.0.13.2, 00:00:16, Ethernet0/2
D 10.1.1.0/24 [90/3584000] via 10.0.13.2, 00:00:16, Ethernet0/2
D 10.1.2.0/24 [90/3584000] via 10.0.13.2, 00:00:16, Ethernet0/2
D 10.1.3.0/24 [90/3584000] via 10.0.13.2, 00:00:16, Ethernet0/2Classic Mode: ip summary-address eigrp
In classic mode the command lives on the interface, pointing in the direction the summary should be advertised. R3 summarizes toward both of its neighbors:
R3(config)# interface Ethernet0/1
R3(config-if)# ip summary-address eigrp 100 10.1.0.0 255.255.252.0
R3(config-if)# interface Ethernet0/2
R3(config-if)# ip summary-address eigrp 100 10.1.0.0 255.255.252.0The AS number in the command must match your EIGRP process (a mismatch is silently useless). Verify on the receiving side. R2's table now carries a single /22, learned over both of its paths:
R2# show ip route eigrp | include 10.1.
D 10.1.0.0/22 [90/4608000] via 10.0.24.2, 00:00:16, Ethernet0/2
[90/4096000] via 10.0.12.1, 00:00:16, Ethernet0/1Four prefixes became one, network-wide, with two interface commands on one router.
The Null0 Discard Route
The summarizing router installs something interesting in its own table:
R3# show ip route | include Null0
D 10.1.0.0/22 is a summary, 00:00:24, Null0This is the discard route, and it exists to prevent routing loops. Imagine R3 advertises 10.1.0.0/22 but loses 10.1.2.0/24. A packet for 10.1.2.5 arrives because the summary attracted it. Without the Null0 route, R3 might follow a default route back toward the neighbor that sent the packet, which follows the summary back to R3, and you have a loop that only dies at TTL expiry. With the discard route, longest prefix match works: no /24, so the /22 to Null0 wins, and the packet is cleanly dropped.
The summary is a real EIGRP topology entry on R3, with a metric inherited from the lowest-metric component:
R3# show ip eigrp topology 10.1.0.0/22
EIGRP-IPv4 Topology Entry for AS(100)/ID(10.1.3.1) for 10.1.0.0/22
State is Passive, Query origin flag is 1, 1 Successor(s), FD is 128256
Descriptor Blocks:
0.0.0.0 (Null0), from 0.0.0.0, Send flag is 0x0
Composite metric is (128256/0), route is Internal
Vector metric:
Minimum bandwidth is 8000000 Kbit
Total delay is 5000 microseconds
Reliability is 255/255
Load is 1/255
Minimum MTU is 1514
Hop count is 0
Originating router is 10.1.3.1Notice hop count 0 and next hop 0.0.0.0: the summary originates here. If you need the mechanics of how that composite metric is computed, the EIGRP metric and K values guide breaks it down, and the 64-bit version of the story is in the EIGRP wide metrics article.
Named Mode: summary-address Under af-interface
Named mode moves the same feature under the routing process, in the af-interface section. This keeps all EIGRP policy in one place instead of scattering it across interface configs (the layout logic is covered in the EIGRP configuration guide):
R1(config)# router eigrp PINGLABZ
R1(config-router)# address-family ipv4 unicast autonomous-system 100
R1(config-router-af)# af-interface Ethernet0/1
R1(config-router-af-interface)# summary-address 10.1.0.0/22Named mode also accepts CIDR notation, which is a small quality-of-life win over the classic dotted mask.
Advertising a Default Route with summary-address 0.0.0.0/0
A default route is just the ultimate summary: it covers everything. That means summary-address 0.0.0.0/0 is a legitimate and clean way to originate a default into EIGRP from an edge or hub router. Here R1 advertises a default toward R2 in named mode:
R1(config)# router eigrp PINGLABZ
R1(config-router)# address-family ipv4 unicast autonomous-system 100
R1(config-router-af)# af-interface Ethernet0/1
R1(config-router-af-interface)# summary-address 0.0.0.0/0R1 installs its own discard route, exactly as before:
R1# show ip route | include Null0
D* 0.0.0.0/0 is a summary, 00:00:26, Null0And R2 receives a candidate default, flagged with the asterisk:
R2# show ip route eigrp | begin Gateway
Gateway of last resort is 10.0.12.1 to network 0.0.0.0
D* 0.0.0.0/0 [90/1024640] via 10.0.12.1, 00:00:18, Ethernet0/1
1.0.0.0/32 is subnetted, 1 subnets
D 1.1.1.1 [90/2560640] via 10.0.24.2, 00:00:18, Ethernet0/2
3.0.0.0/32 is subnetted, 1 subnets
D 3.3.3.3 [90/4608000] via 10.0.24.2, 00:00:18, Ethernet0/2The Side Effect That Bites: Summaries Suppress Components
Look at that last capture again. Before this change, R2 reached 1.1.1.1 (R1's own loopback) directly via R1. Now it reaches it via 10.0.24.2, the long way around through R4. Why?
A summary suppresses every more-specific prefix on the interface where it is configured, and 0.0.0.0/0 covers everything. R1 stopped advertising all individual routes to R2 the moment the default went on. R2 still has specifics learned from its other neighbor R4, so those now win by longest prefix match, even though the physical path is worse.
Rule of thumb before you summarize
A summary-address suppresses all component routes on that interface. If the neighbor has another path to those components, traffic silently shifts to it. Advertising 0.0.0.0/0 suppresses every prefix, so use it only where the neighbor genuinely should send everything to you, such as a stub site behind a single hub. This pairs naturally with EIGRP stub routing.
Other Ways to Originate a Default
The summary approach is not the only one, and it pays to know the trade-offs:
- Redistribute a static default.
ip route 0.0.0.0 0.0.0.0 <next-hop>plusredistribute staticunder EIGRP. The route arrives as EIGRP external (D*EX, administrative distance 170), and it does not suppress anything. This is the common choice at an internet edge. BGP-learned defaults at that edge are a different conversation, covered in the BGP complete guide. - ip default-network. Legacy, classful, easy to get wrong. Know it exists for old configs; do not deploy it new.
- summary-address 0.0.0.0/0. Internal route (AD 90), interface-scoped, suppresses everything. Best for hub-to-stub designs.
Controlling the Summary Metric and Leaking Exceptions
By default the summary inherits the lowest metric among its components, which means the summary is recomputed every time that best component changes. On a router summarizing hundreds of prefixes, that recomputation has a CPU cost, and the resulting metric churn partially defeats the stability you were buying. Named mode has a fix: pin the metric.
R1(config-router-af)# topology base
R1(config-router-af-topology)# summary-metric 10.1.0.0/22 10000 100 255 1 1500The five values are the classic bandwidth, delay, reliability, load, and MTU inputs. With a pinned metric, component flaps stop touching the summary entirely. The trade-off is honesty: the advertised metric no longer reflects the real best path, so reserve it for summaries whose components are metric-equivalent anyway.
The other refinement is the leak map. Sometimes you want the summary and one exception: advertise 10.1.0.0/22 but also leak 10.1.2.0/24 so a specific service keeps an exact route (perhaps to steer it down a preferred link). A leak map is a route map naming the components allowed to escape suppression:
R3(config)# ip prefix-list LEAK-VOICE permit 10.1.2.0/24
R3(config)# route-map LEAK-MAP permit 10
R3(config-route-map)# match ip address prefix-list LEAK-VOICE
R3(config)# interface Ethernet0/1
R3(config-if)# ip summary-address eigrp 100 10.1.0.0 255.255.252.0 leak-map LEAK-MAPNeighbors now receive both the /22 and the leaked /24, and longest prefix match sends the exception traffic exactly where you pointed it. Leak maps are also the escape hatch when a default-route summary would otherwise suppress something you need visible.
Where to Summarize: Design Patterns
Summarization works best where the addressing hierarchy meets the physical hierarchy. Three patterns cover most networks:
- Hub toward spokes. Spokes rarely need the full enterprise table. A default or a short summary list from the hub keeps spoke routers tiny, and pairs with stub routing in the other direction. This is the classic WAN pattern.
- Site toward core. Each site advertises one block (like R3's /22 here) upstream. Core topology tables stay flat no matter how many VLANs a site adds, and site-internal flaps never leave the site: this is the query boundary in action, the same mechanism that protects against stuck-in-active.
- Between routing domains. At redistribution boundaries, summarizing before you redistribute caps how much churn crosses into the other protocol.
One caution from the suppression discussion above: before adding any summary on a transit router, run show ip eigrp topology for the components and check which neighbors have alternate paths to them. The summary changes what those neighbors prefer, and the new best paths should be ones you actually want carrying the traffic.
Key Takeaways
- EIGRP summarizes per interface on any router, unlike OSPF's area-boundary restriction. That makes it a precision tool: each neighbor can see a different level of detail.
- The summarizing router installs a Null0 discard route automatically. It is loop prevention, not a bug, and packets for missing components are dropped by longest prefix match.
- The summary inherits the lowest component metric, and it stays quiet unless that best metric changes, which dampens the blast radius of flapping components.
- Summaries are query boundaries. This is the structural fix for stuck-in-active, alongside stub routing.
summary-address 0.0.0.0/0is a clean internal default, but it suppresses every more-specific route on that interface. Check what else the neighbor can see before you commit.
Summarization decides how much of your network each router has to think about. Get it right and queries die at the boundary you drew. For where this fits in the bigger picture of DUAL, metrics, and design, head back to the EIGRP complete guide.