1.5 Summarization¶
Blueprint 1.5: Troubleshoot manual and auto-summarization with any routing protocol
- Why summarize: smaller tables, fewer updates, stability, and EIGRP query scoping
- Auto-summarization at classful boundaries, which protocols still offer it, and the discontiguous network problem
- Manual summarization: EIGRP interface summaries, OSPF
area rangeandsummary-address, BGPaggregate-address, RIP interface summaries - The Null0 discard route, the summary metric, leak maps and suppressed components
- Faults: summary on the wrong router or in the wrong area, wrong interface, summary too broad (black hole), summary that never appears
Why summarize, and what it costs¶
A summary replaces several specific prefixes with one shorter prefix. 10.20.0.0/24, 10.20.1.0/24, 10.20.2.0/24 and 10.20.3.0/24 become 10.20.0.0/22.
| Benefit | Cost |
|---|---|
| Smaller routing tables and LSDBs | Less precise routing: traffic may take a suboptimal path to one component |
| A flapping component is hidden from the rest of the network | Unused parts of the range are advertised too, and can attract traffic |
| EIGRP queries stop at the router that receives the summary instead of the components | Changing summary configuration can reset adjacencies on some platforms |
| Fewer SPF and DUAL computations | Needs an addressing plan that groups prefixes on bit boundaries |
To check whether a set of prefixes summarizes cleanly, write the third (or relevant) octet in binary and count the common leading bits. 0, 1, 2 and 3 are 00000000 to 00000011: six shared bits in that octet, plus 16 before it, gives /22.
Exam trap
10.20.1.0/24 to 10.20.4.0/24 do not summarize to a /22. 1 to 4 crosses a boundary (4 is 00000100). The smallest single summary is 10.20.0.0/21, which also covers 10.20.0.0 and 10.20.5.0 to 10.20.7.0. Exam answers that "summarize" non-aligned ranges into a too-small block are wrong; answers that use a too-large block work but advertise address space you do not own.
Auto-summarization¶
Auto-summarization advertises a classful network (A /8, B /16, C /24) instead of its subnets when sending an update out an interface in a different major network.
| Protocol | Auto-summary today |
|---|---|
| EIGRP classic mode | Supported, disabled by default since IOS 15.0 |
| EIGRP named mode | Supported, disabled by default |
| RIPv2 | Supported. Check the current state with show ip protocols rather than assuming a default. |
| OSPF | Never auto-summarizes |
| BGP | Supported, disabled by default |
The verification line is explicit:
On RIP the wording is Automatic network summarization is not in effect (or is in effect).
The discontiguous network problem¶
graph LR
R1["R1<br/>172.16.1.0/24"] -- "10.1.2.0/30" --- R2["R2"]
R3["R3<br/>172.16.3.0/24"] -- "10.2.3.0/30" --- R2
R1 -. "auto-summary: 172.16.0.0/16" .-> R2
R3 -. "auto-summary: 172.16.0.0/16" .-> R2
R1 and R3 each own part of 172.16.0.0/16, separated by network 10.0.0.0. With auto-summary on, both advertise 172.16.0.0/16 to R2. R2 load-shares between them (or picks one), so roughly half of the traffic for each LAN goes to the wrong router. The symptom is intermittent reachability that changes with the destination address. The fix is no auto-summary on R1 and R3.
Exam trap
An exhibit showing D 172.16.0.0/16 [90/...] via 10.1.2.1 and via 10.2.3.3 on the same router is the discontiguous network signature. The answer is no auto-summary on the routers advertising the /16, not on the router receiving it.
Manual summarization by protocol¶
| Protocol | Where | Command | Discard route |
|---|---|---|---|
| EIGRP classic | Any interface, outbound | ip summary-address eigrp <as> <net> <mask> [ad] [leak-map <rm>] |
D <summary> is a summary, Null0, AD 5 |
| EIGRP named | Any af-interface, outbound |
summary-address <net> <mask> [leak-map <rm>] |
Same, AD 5 |
| OSPF internal | ABR only | area <source-area> range <net> <mask> [not-advertise] [cost <n>] |
O <summary> is a summary, Null0 |
| OSPF external | ASBR (or the NSSA ABR doing Type 7 to 5 translation) | summary-address <net> <mask> [not-advertise] [tag <n>] |
O <summary> is a summary, Null0 |
| BGP | Any BGP router | aggregate-address <net> <mask> [summary-only] [as-set] [suppress-map] [attribute-map] |
B <summary> [200/0] via 0.0.0.0, Null0 |
| RIP | Any interface, outbound | ip summary-address rip <net> <mask> |
Yes |
EIGRP¶
How EIGRP summaries behave:
- The summary is advertised only out the interface where it is configured. Components are suppressed on that interface and still advertised on others.
- The summary exists only while at least one component route is in the topology table.
- Its metric is the best (lowest) metric among the components. If that component flaps, the summary's metric changes and an update ripples out.
summary-metric(named mode) fixes the metric. - A local discard route to Null0 with AD 5 is installed on the summarizing router.
- Neighbors receive it as a normal internal route (
D, AD 90). The AD 5 is local only. - A leak map lets chosen components through alongside the summary:
ip summary-address eigrp 100 10.40.0.0 255.255.252.0 leak-map LEAK, where route map LEAK permits the specifics to leak. - A router that receives only the summary replies to queries for a component immediately with "unreachable", so summaries bound the query scope and help prevent stuck-in-active routes.
R4# show ip route 10.40.0.0 255.255.252.0
Routing entry for 10.40.0.0/22
Known via "eigrp 100", distance 5, metric 128256, type internal
Redistributing via eigrp 100
Routing Descriptor Blocks:
* directly connected, via Null0
Route metric is 128256, traffic share count is 1
OSPF¶
router ospf 1
area 1 range 10.20.0.0 255.255.252.0 ! on the ABR, area = where the components live
area 1 range 10.20.8.0 255.255.255.0 not-advertise ! hide a range entirely
summary-address 192.168.0.0 255.255.252.0 ! on the ASBR, external routes only
area rangesummarizes Type 1 and Type 2 information from the named area into a Type 3 LSA sent into other areas. It must be configured on the ABR, with the area ID of the area that contains the components.summary-addresssummarizes external routes (Type 5, and Type 7 at the translating NSSA ABR). It has no effect on internal routes.not-advertiseturns either command into a filter: the range is neither summarized nor advertised.- Both install a discard route to Null0 on the summarizing router.
R3# show ip ospf summary-address
OSPF Router with ID (10.255.255.3) (Process ID 1)
192.168.0.0/22, Metric 20, Type 2, Tag 0
Exam trap
Two OSPF summarization faults appear again and again: summary-address on an ABR for internal routes (no effect, because it only summarizes externals), and area 0 range where area 1 range was needed (the range must name the area the component routes are in, not the area the summary is sent to). The symptom of both is that the specific O IA or O E2 routes are still visible in other areas.
BGP¶
router bgp 65001
address-family ipv4 unicast
network 172.20.1.0 mask 255.255.255.0
network 172.20.2.0 mask 255.255.255.0
aggregate-address 172.20.0.0 255.255.0.0 summary-only
R1# show ip bgp | begin Network
Network Next Hop Metric LocPrf Weight Path
*> 172.20.0.0 0.0.0.0 32768 i
s> 172.20.1.0 0.0.0.0 0 32768 i
s> 172.20.2.0 0.0.0.0 0 32768 i
- The aggregate is created only if at least one component exists in the BGP table. A component in the RIB but not in BGP does not count.
- Without
summary-only, BGP advertises the aggregate and the components. With it, components are markeds(suppressed).suppress-mapsuppresses only selected components. - The aggregate carries the ATOMIC_AGGREGATE and AGGREGATOR attributes. Without
as-set, the AS path information of the components is lost, which removes BGP's loop protection for them.as-setkeeps the AS numbers in an AS_SET. - The alternative method is a static route to Null0 for the summary plus a
networkstatement for it. It works even when no component exists, which is sometimes what you want and sometimes a black hole.
The discard route: protection and danger¶
graph LR
R4["R4 summarizes 10.40.0.0/22<br/>has 10.40.0.0/24 to 10.40.2.0/24<br/>10.40.3.0/24 does not exist"] -- "10.3.4.0/30" --- R3["R3<br/>default route points to R4"]
R3 -- "packet for 10.40.3.9" --> R4
R4 -- "longest match: 10.40.0.0/22 to Null0, dropped" --> N["Null0"]
Without the discard route, R4 would look up 10.40.3.9, find only its default route back toward R3, and send the packet back: a loop until the TTL expires. The Null0 route drops it at R4 instead. That is protection.
The danger is a summary that covers space really in use elsewhere. If 10.40.3.0/24 actually lives behind another router that R4 reaches only by its default route, R4's own discard route black-holes that traffic, and every router that received the /22 sends traffic for it to R4. The fixes are to shrink the summary, leak the specific route, or advertise the specific from where it really lives (longest match beats the summary elsewhere in the network, but not on R4 itself unless R4 also has the specific route).
Common summarization faults¶
| Symptom | Likely cause | Proof |
|---|---|---|
| Specific routes still seen beyond the summarizing router | Summary on the wrong interface (EIGRP), wrong router or wrong command (OSPF), no summary-only (BGP) |
show ip route on the receiver, show running-config on the summarizer |
| Summary never appears | No component route exists (EIGRP, OSPF, BGP aggregate), or the components are in the wrong area | show ip eigrp topology, show ip ospf database, show ip bgp |
| Some destinations in the range unreachable | Summary too broad, discard route drops traffic for space that lives elsewhere | show ip route <dest> on the summarizer points to Null0 |
| Traffic to a component takes a long path | Two routers advertise the same summary with different real reachability | Traceroute; compare components on both summarizers |
| Intermittent reachability to subnets of one major network | Auto-summary with discontiguous subnets | Two equal routes for the classful network on one router |
| EIGRP summary metric keeps changing, causing updates | Best component flaps | debug eigrp fsm in a lab, fix with summary-metric |
Lab: break and fix summarization¶
Topology: four IOSv routers. R1 is in OSPF area 1, R2 is the ABR, R3 is in area 0 and is the ASBR to EIGRP AS 100 on R4. R3 also has four customer pools as static routes to Null0, redistributed into OSPF.
graph LR
R1["R1 area 1<br/>Lo1-Lo4 10.20.0-3.0/24"] -- "Gi0/0 .1 10.1.2.0/30 .2 Gi0/0 area 1" --- R2["R2 ABR"]
R2 -- "Gi0/1 .1 10.2.3.0/30 .2 Gi0/0 area 0" --- R3["R3 ASBR<br/>statics 192.168.0-3.0/24"]
R3 -- "Gi0/1 .1 10.3.4.0/30 .2 Gi0/0 EIGRP 100" --- R4["R4 EIGRP<br/>Lo1-Lo4 10.40.0-3.0/24"]
Requirements. Area 0 must see area 1 as a single O IA 10.20.0.0/22. The OSPF domain must see R4's networks as a single O E2 10.40.0.0/22 and the customer pools as a single O E2 192.168.0.0/22. R4's networks must be summarized by R4 itself.
Step 1. Baseline. Build the topology with these key sections (interface addressing follows the diagram; R1 loopbacks use ip ospf network point-to-point so they appear as /24s):
! R1
router ospf 1
router-id 10.255.255.1
network 10.1.2.0 0.0.0.3 area 1
network 10.20.0.0 0.0.3.255 area 1
!
! R2
router ospf 1
router-id 10.255.255.2
network 10.1.2.0 0.0.0.3 area 1
network 10.2.3.0 0.0.0.3 area 0
area 1 range 10.20.0.0 255.255.252.0
!
! R3
ip route 192.168.0.0 255.255.255.0 Null0
ip route 192.168.1.0 255.255.255.0 Null0
ip route 192.168.2.0 255.255.255.0 Null0
ip route 192.168.3.0 255.255.255.0 Null0
router ospf 1
router-id 10.255.255.3
network 10.2.3.0 0.0.0.3 area 0
redistribute static subnets
redistribute eigrp 100 subnets
summary-address 192.168.0.0 255.255.252.0
router eigrp 100
eigrp router-id 10.255.255.3
network 10.3.4.0 0.0.0.3
redistribute ospf 1 metric 1000000 10 255 1 1500
!
! R4
interface GigabitEthernet0/0
ip address 10.3.4.2 255.255.255.252
ip summary-address eigrp 100 10.40.0.0 255.255.252.0
router eigrp 100
eigrp router-id 10.255.255.4
network 10.3.4.0 0.0.0.3
network 10.40.0.0 0.0.3.255
Verify on R1, which sees everything outside area 1 as one route per summary:
R1# show ip route ospf | begin Gateway
Gateway of last resort is not set
10.0.0.0/8 is variably subnetted, 13 subnets, 4 masks
O IA 10.2.3.0/30 [110/2] via 10.1.2.2, 00:02:10, GigabitEthernet0/0
O E2 10.3.4.0/30 [110/20] via 10.1.2.2, 00:02:10, GigabitEthernet0/0
O E2 10.40.0.0/22 [110/20] via 10.1.2.2, 00:02:10, GigabitEthernet0/0
O E2 192.168.0.0/22 [110/20] via 10.1.2.2, 00:02:10, GigabitEthernet0/0
Save the baseline everywhere.
Step 2. Inject the faults.
! R2
router ospf 1
no area 1 range 10.20.0.0 255.255.252.0
area 0 range 10.20.0.0 255.255.252.0
!
! R3
router ospf 1
no summary-address 192.168.0.0 255.255.252.0
area 0 range 192.168.0.0 255.255.252.0
!
! R4
interface GigabitEthernet0/0
no ip summary-address eigrp 100 10.40.0.0 255.255.252.0
interface GigabitEthernet0/1
ip summary-address eigrp 100 10.40.0.0 255.255.252.0
Step 3. Ticket. "After last night's change the routing tables in the core grew noticeably. Restore the summarization design. Do not add any static routes."
Step 4. Diagnose.
Area 1 summary, on R3: four O IA 10.20.x.0/24 routes instead of one /22. On R2:
The range names area 0, but the components live in area 1, so nothing is summarized. Replace it with area 1 range 10.20.0.0 255.255.252.0.
Customer pools, on R1: four O E2 192.168.x.0/24 routes. On R3, show ip ospf summary-address returns nothing, and the config shows area 0 range 192.168.0.0 .... area range never summarizes external routes. Replace it with summary-address 192.168.0.0 255.255.252.0.
R4 networks, on R3: four D 10.40.x.0/24 routes. On R4 the discard route exists, so the summary is configured somewhere:
R4# show ip route | include Null0
D 10.40.0.0/22 is a summary, 00:05:41, Null0
R4# show running-config interface GigabitEthernet0/1 | include summary
ip summary-address eigrp 100 10.40.0.0 255.255.252.0
It is on Gi0/1, which has no EIGRP neighbor, so R3 still gets the components. Move it to Gi0/0.
Step 5. Verify. On R1 the output matches Step 1 again. On R3 you see one D 10.40.0.0/22 [90/...] and one O IA 10.20.0.0/22. On R2:
Stretch. Add Lo5 10.40.3.129/25 on R1 in area 1 (outside area 1's range but inside R4's summary). Ping it from R3 and explain the result with longest match. Then add a leak map on R4 and observe what changes, and what does not.
Quick check¶
An EIGRP router summarizes 10.8.0.0/21 on Gi0/1. All eight component /24s go down. What happens to the summary?
It is withdrawn. An EIGRP summary, like an OSPF range and a BGP aggregate, exists only while at least one component route exists. The Null0 discard route is removed too.
Which command summarizes Type 7 NSSA routes into a single Type 5 LSA, and on which router?
summary-address <net> <mask> on the NSSA ABR that translates Type 7 into Type 5 (or on the ASBR itself). area range does not apply to external routes.
R1 has aggregate-address 172.20.0.0 255.255.0.0 without summary-only. What do its eBGP peers receive?
The aggregate 172.20.0.0/16 and every component prefix, because components are only suppressed with summary-only or a suppress-map.
References¶
- IP Routing: EIGRP Configuration Guide, Cisco IOS XE 17, "EIGRP route summarization" and "EIGRP summary metric" (search on cisco.com)
- IP Routing: OSPF Configuration Guide, Cisco IOS XE 17, "Configuring route summarization between OSPF areas" (search on cisco.com)
- IP Routing: BGP Configuration Guide, Cisco IOS XE 17, "BGP route aggregation" (search on cisco.com)
- RFC 4632, Classless Inter-domain Routing
- Cisco Live On-Demand Library: search "EIGRP deployment" and "OSPF design"
- Related: Diagram N05, summarization points
Unlock the full question banks and cram sheets
A free account opens every question bank, the timed practice exams, the printable cram sheets, all the simulations and the lab files. Without one you see a 5-question sample of each.
No card needed. Study tips by email are optional and off unless you tick the box. Your address is never sold or shared. Privacy policy ยท Terms
Signed in as . Your account
You're on the free account, so lessons after the first module, question banks, exams and cram sheets show a sample. See Track Pass and All-Access
Also from NetManager Systems: NetManager, network monitoring for multi-vendor networks. Try the NetManager, NetDiag, PCAP Analyzer and OpsDash demos: every new account gets a free 7-day read-only login to each.