Skip to content
Log in Sign up My account

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 range and summary-address, BGP aggregate-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:

R4# show ip protocols | include summarization
  Automatic Summarization: disabled

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

interface GigabitEthernet0/0
 ip summary-address eigrp 100 10.40.0.0 255.255.252.0
router eigrp CORP
 address-family ipv4 unicast autonomous-system 100
  af-interface GigabitEthernet0/0
   summary-address 10.40.0.0 255.255.252.0
  exit-af-interface
  topology base
   summary-metric 10.40.0.0/22 1000000 10 255 1 1500
interface GigabitEthernet0/0
 ipv6 summary-address eigrp 100 2001:db8:40::/48

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 range summarizes 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-address summarizes external routes (Type 5, and Type 7 at the translating NSSA ABR). It has no effect on internal routes.
  • not-advertise turns 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 marked s (suppressed). suppress-map suppresses 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-set keeps the AS numbers in an AS_SET.
  • The alternative method is a static route to Null0 for the summary plus a network statement 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:

R2# show running-config | include range
 area 0 range 10.20.0.0 255.255.252.0

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:

R2# show ip route ospf | include Null0
O        10.20.0.0/22 is a summary, 00:01:12, Null0

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