EIGRP Route Summarization
Problem
You want to reduce the size of your routing tables to improve the stability and efficiency of the routing process.
Solution
The ip summary-address eigrp configuration command allows you to configure manual summary addresses on a per-interface basis:
Router1#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)#interface Serial0/0.2
Router1(config-subif)#ip summary-address eigrp 55 172.25.0.0 255.255.0.0
Router1(config-subif)#exit
Router1(config)#end
Router1#
EIGRP can automatically summarize subnet routes into classful network-level routes. You can enable this command with the auto-summary command or disable it with the no auto-summary configuration command:
Router1#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)#router eigrp 55
Router1(config-router)#no auto-summary
Router1(config-router)#exit
Router1(config)#end
Router1#
A useful new feature allows you to configure a leak-map so that the router will advertise the summary route, as well as some subset of the summarized addresses:
Router9# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router9(config)#ip prefix-list 10.5.5/24 permit 10.5.5.0/24
Router9(config)#route-map LEAK10-5-5 permit 10
Router9(config-route-map)#match ip address prefix-list 10.5.5/24
Router9(config-route-map)#exit
Router9(config)#interface Serial0/0
Router9(config-if)#ip summary-address eigrp 55 10.5.0.0 255.255.0.0 leak-map LEAK10-5-5
Router9(config-if)#exit
Router9(config)#end
Router9#
Discussion
Summarization is one of the most powerful features of EIGRP, and one of the most frequently overlooked methods for improving network efficiency. Unlike RIP, which summarizes along classful network boundaries, EIGRP uses CIDR, allowing you to summarize at any bit in the address, as well as allowing supernets. And while OSPF also allows this sort of summarization, as we will discuss in Chapter 8, OSPF can only summarize at the ABR. Conversely, EIGRP allows you to summarize at any router in the network. This means that with EIGRP, you can have multiple hierarchical levels of address summarization, which can greatly improve the maximum size and efficiency of a large network, but only if it is designed properly to allow it.
|
You can see all of the summarization information, including which interfaces will send out summary addresses, using the show ip protocols command:
Router1#show ip protocols
Routing Protocol is "eigrp 55"
Outgoing update filter list for all interfaces is not set
Redistributed static filtered by 7
Incoming update filter list for all interfaces is not set
Default networks flagged in outgoing updates
Default networks accepted from incoming updates
EIGRP metric weight K1=1, K2=0, K3=1, K4=0, K5=0
EIGRP maximum hopcount 100
EIGRP maximum metric variance 1
Redistributing: static, eigrp 55
Automatic network summarization is not in effect
Address Summarization:
172.25.0.0/16 for Serial0/0.2
Summarizing with metric 28160
Maximum path: 4
Routing for Networks:
10.0.0.0
172.22.0.0
172.25.0.0
Routing Information Sources:
Gateway Distance Last Update
10.1.1.1 90 1d23h
172.25.1.7 90 00:00:57
172.25.2.2 90 00:00:57
172.22.1.4 90 00:00:57
Distance: internal 90 external 170
Router1#
In this example, we have only summarized 172.25.0.0/16 on interface Serial0/0.2. However, it is important to remember that you can summarize several networks at the same time on a single interface by simply configuring all of the different summary addresses, as follows:
Router1#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)#interface Serial0/0.2
Router1(config-subif)#ip summary-address eigrp 55 172.25.0.0 255.255.0.0
Router1(config-subif)#ip summary-address eigrp 55 10.0.0.0 255.0.0.0 80
Router1(config-subif)#end
Router1#
When it summarizes addresses, EIGRP will automatically suppress all of the routes that are included in the summary. Of course, if there are no routes to summarize, the router won't distribute the summary address.
The metric of this summary route will be equal to the best metric of the routes being summarized. It is important to remember this because if the route with the best metric goes away for any reason, EIGRP will change the metric of the summary. So if the route with the best metric is unstable, it will make the summary route unstable. If you want to ensure that this doesn't happen, you can configure a static route within the summarized range, and point it to a null interface. Then you must configure the router to redistribute this static route into EIGRP.
The following example shows a CIDR supernet summarization:
Router1#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)#interface Serial0/0.2
Router1(config-subif)#ip summary-address eigrp 55 0.0.0.0 0.0.0.0
Router1(config-subif)#end
Router1#
In this case, if there are any routes to distribute at all, EIGRP will distribute only the default route 0.0.0.0/0 and suppress all of the individual routes. This is actually an extremely useful technique on low-speed WAN links, particularly when this link represents the only path to the rest of the network. In such cases, the remote site only needs to know that it can get to everything it needs through this link. Further, because routing is always done by taking the longest match first, if the remote site happens to have more specific routing information for a particular destination, it won't use this summary route.
You could accomplish the same thing by redistributing a single static default route by using the redistribution techniques discussed in Recipe 7.3 and filtering out everything except 0.0.0.0/0 using a distribute list as in Recipe 7.2. But this summary address technique does both of these actions in a single step. Furthermore, with this technique, the default route appears in the routing table as an internal route:
Router2#show ip route eigrp
D* 0.0.0.0/0 [90/2172416] via 172.25.2.1, 00:00:30, Serial0.1
Router2#
Leak-maps became available in IOS level 12.3(14)T. This feature allows you to configure a summary address, and also advertise some of the summarized networks. In the example shown in the Solutions section above, we have summarized all of the 10.5.0.0/16 range of addresses:
Router9(config)#interface Serial0/0
Router9(config-if)#ip summary-address eigrp 55 10.5.0.0 255.255.0.0 leak-map LEAK10-5-5
This summary includes a leak-map called LEAK10-5-5, which is defined by using a route map:
Router9(config)#ip prefix-list 10.5.5/24 permit 10.5.5.0/24
Router9(config)#route-map LEAK10-5-5 permit 10
Router9(config-route-map)#match ip address prefix-list 10.5.5/24
This route map does nothing but match a particular prefix, 10.5.5.0/24, and exclude it from summarization. We can then look at the routing table on a neighboring router:
Router2#show ip route 10.0.0.0
Routing entry for 10.0.0.0/8, 9 known subnets
Variably subnetted with 3 masks
Redistributing via eigrp 55
D 10.1.2.1/32 [90/2300416] via 172.20.10.9, 00:20:34, Serial0/0
D 10.5.5.0/24 [90/2838016] via 172.20.10.9, 00:00:37, Serial0/0
D 10.1.1.0/24 [90/2300416] via 172.20.10.9, 00:20:34, Serial0/0
D 10.5.0.0/16 [90/2838016] via 172.20.10.9, 00:18:53, Serial0/0
Router2#
This router now receives both the summary address, 10.5.0.0/16, and the specific prefix 10.5.5.0/24. This can be quite useful in situations when you have imperfect summarization. That is, you might be able to reduce all of the routes for a particular part of your network to a single summary route, 10.5.0.0/17. But if the single network 10.5.5.0/24 resides in a different part of the network, you need to make sure that this specific prefix also appears in routing tables throughout the network. Recall that routers will always use the most specific route when forwarding packets.
Previously, if you couldn't summarize all of the prefixes in a network, you had to advertise all of the individual routes. So the leak-map feature allows you to reduce the size of your routing table without causing problems for a few exceptions.
Note that because the feature uses route maps to define the leaked routes, you could also match parameters such as the route type (internal, external, or local) tag, or the router's next-hop interface for that route. For example you could use the interface matching to leak individual routes only if the remote site is on dial backup.