A common issue we can find when we doing summarization in EIGRP is the lost of the optimum path towards a remote network. This is due to the fact that EIGRP supress the most specific subnets, that is, those network advertisements with longer prefixes.
I’m going to simulate this behaviour with a very brief example. I’ll use R1, R2, R4, R8, R9 and R10 from the topology:
All these routers are running eigrp with auto-summary disabled. Their connected networks are enabled and neighborship is fully established. Sample output from R1:
R1(config)#do sh run | sec eigrprouter eigrp 2network 85.0.12.1 0.0.0.0network 85.0.145.1 0.0.0.0network 85.0.146.1 0.0.0.0no auto-summaryR1(config)#do sh ip eigrp neIP-EIGRP neighbors for process 2H Address Interface Hold Uptime SRTT RTO Q Seq(sec) (ms) Cnt Num0 85.0.146.9 Se0/0 1 00:00:13 546 3276 0 421 85.0.12.2 Fa0/1 10 00:48:18 255 1530 0 39
And R9’s routing table:
R9(config)#do sh ip routeGateway of last resort is not set85.0.0.0/24 is subnetted, 6 subnetsC 85.0.109.0 is directly connected, FastEthernet0/0D 85.0.108.0 [90/2195456] via 85.0.109.10, 00:00:06, FastEthernet0/0D 85.0.28.0 [90/2707456] via 85.0.146.1, 00:00:07, Serial0/0[90/2707456] via 85.0.109.10, 00:00:07, FastEthernet0/0D 85.0.12.0 [90/2195456] via 85.0.146.1, 00:09:49, Serial0/0D 85.0.145.0 [90/2195456] via 85.0.146.1, 00:09:49, Serial0/0C 85.0.146.0 is directly connected, Serial0/0
Route learning is normal, EIGRP DUAL calculations injects the correct routes to the RIB (Routing Information Base = Routing table).
Now configure route summarization on R10’s FA0/0 :
R10(config)#int fa0/0R10(config-if)#ip summary-address eigrp 2 0.0.0.0 0.0.0.0
Notice I’m aggregating all the routes, that is, I’m advertising a default-route to R9. Yes, you just have learnt how to publish a default route on EIGRP.
Review the RIB at R9:
R9#*Mar 1 01:15:16.283: %DUAL-5-NBRCHANGE: IP-EIGRP(0) 2: Neighbor 85.0.109.10 (FastEthernet0/0) is resync: peer graceful-restartR9#sh ip routeGateway of last resort is 85.0.109.10 to network 0.0.0.085.0.0.0/24 is subnetted, 6 subnetsC 85.0.109.0 is directly connected, FastEthernet0/0D 85.0.108.0 [90/3219456] via 85.0.146.1, 00:00:08, Serial0/0 <-- What the..!!!D 85.0.28.0 [90/2707456] via 85.0.146.1, 00:00:08, Serial0/0D 85.0.12.0 [90/2195456] via 85.0.146.1, 00:18:54, Serial0/0D 85.0.145.0 [90/2195456] via 85.0.146.1, 00:18:54, Serial0/0C 85.0.146.0 is directly connected, Serial0/0D* 0.0.0.0/0 [90/307200] via 85.0.109.10, 00:00:08, FastEthernet0/0
Now we have a default route, but, what about the optimal route to 85.0.108.0/24 pointing towards R10? As you can see in the topology, the best route to this network uses R10 as gateway, but now it’s being aggregated within the default route, routing the current traffic through the sub-optimal path: R1-R2-R8:
R9#traceroute 85.0.108.8Type escape sequence to abort.Tracing the route to 85.0.108.81 85.0.146.1 60 msec 4 msec 72 msec2 85.0.12.2 36 msec 0 msec 48 msec3 85.0.28.8 128 msec * 120 msec
Great, in a attempt to improve our network using summarization, we reached a state of suboptimal routing. How can we solve it? Very easy, with leak-maps.
Using Leak Maps to unsuppress more specific networks
Leak maps allows to specify which networks will be advertised together with the aggregated. We just need to select those interesting networks with a prefix-lists and build a route-map based on it:
R10#sh ip prefix-listip prefix-list PL_LEAK: 1 entriesseq 5 permit 85.0.108.0/24R10#sh route-maproute-map RM_LEAK, permit, sequence 10Match clauses:ip address prefix-lists: PL_LEAKSet clauses:Policy routing matches: 0 packets, 0 bytes
Finally we only need to apply this route-map to the summary-address sentence:
R10(config-if)#ip summary-address eigrp 2 0.0.0.0 0.0.0.0 leak-map RM_LEAKR10(config-if)#*Mar 1 01:48:21.171: %DUAL-5-NBRCHANGE: IP-EIGRP(0) 2: Neighbor 85.0.109.9 (FastEthernet0/0) is resync: summary configured
EIGRP peers re-synchronize with new changes and the resulting RIB is:
R9#sh ip routeGateway of last resort is 85.0.109.10 to network 0.0.0.085.0.0.0/24 is subnetted, 6 subnetsC 85.0.109.0 is directly connected, FastEthernet0/0D 85.0.108.0 [90/2195456] via 85.0.109.10, 00:00:08, FastEthernet0/0 <- Correct!D 85.0.28.0 [90/2707456] via 85.0.146.1, 00:00:12, Serial0/0D 85.0.12.0 [90/2195456] via 85.0.146.1, 00:46:47, Serial0/0D 85.0.145.0 [90/2195456] via 85.0.146.1, 00:46:47, Serial0/0C 85.0.146.0 is directly connected, Serial0/0D* 0.0.0.0/0 [90/307200] via 85.0.109.10, 00:00:09, FastEthernet0/0
Check path:
R9#traceroute 85.0.108.8Type escape sequence to abort.Tracing the route to 85.0.108.81 85.0.109.10 236 msec 128 msec 84 msec2 85.0.108.8 80 msec * 152 msec
No Comments