本节书摘来自异步社区《CCNP ROUTE 300-101学习指南》一书中的第2章,第2.3节区分路由协议,作者 【美】戴安娜 蒂尔(Diane Teare) , 鲍勃 瓦尚(Bob Vachon) , 瑞克 格拉齐亚尼(Rick Graziani),更多章节内容可以访问云栖社区“异步社区”公众号查看
2.3 优化EIGRP的工作方式
在相对大型的网络中部署EIGRP时,需要对默认的EIGRP行为进行优化,以实现预期的扩展性。通过部署EIGRP末节配置,可以限制EIGRP的查询范围,使EIGRP更易扩展,同时降低EIGRP的复杂性。汇总可以减少路由表的规模,并优化路由器之间的路由信息交换。
EIGRP默认支持通过多条链路负载分担,以便利用那些可用的冗余链路。要想提升网络的利用率,也可以通过配置EIGRP来实现非等价的负载分担。
在完成本节内容的学习后,读者应该能够:
理解EIGRP查询;
描述当EIGRP变为活跃状态时,如何通过末节路由来减少查询数量;
描述EIGRP的stuck-in-active问题;
解释在EIGRP变为活跃状态时如何使用汇总路由来减少查询范围;
描述EIGRP负载分担的几种做法。
2.3.1 EIGRP查询
EIGRP依赖邻居路由器来提供路由信息。当一台路由器失去了一条路由,且拓扑表中没有可行后继路由时,它就会查找到达目的的替代路径。这称为路由变为活跃状态。
失去路由时,路由器会给(除了用于到达之前后继路由的哪个接口之外的)所有接口的邻居发送查询包(水平分割行为)。这些数据包会询问每个邻居是否有到达某个特定目的的路由。如果一台邻居路由器有替代路由,它就会对查询进行应答并不再进一步传播查询消息。如果邻居没有可替代路由,它就会向自己的每一个邻居查询替代路径。查询消息就会这样在网络中传播,这种方式可以创建一个查询的扩展树。当一台路由器对查询进行应答时,它就会停止在网络的那个分支传播查询消息。
在图2-12所示的网络中,我们可以看到丢失一条路由可能导致EIGRP域中发送大量的查询请求。当路由器R1去往网络192.168.14.0的路由丢失时,R1会通过除了后继路由接口外的所有接口(水平分割),向所有邻居路由器发送查询消息。查询消息会传播到R2。因为R2没有与丢失的路由相关的信息,所以它会继续查询自己的邻居,而邻居也会相继发起查询,以此类推。每个查询消息都要求邻居作出应答,因此流量也会增加。图中的网络拓扑显示了没有到达网络192.168.14.0的冗余链路。
管理员可以使用例2-30中的show ip eigrp topology命令查看活跃状态的路由。这类路由会由字母进行A标记,而字母P表示处于正常的被动状态。
例2-30 观察R1上的活跃路由
R1# show ip eigrp topology
EIGRP-IPv4 Topology Table for AS(1)/ID(172.16.1.2)
Codes: P - Passive, A - Active, U - Update, Q - Query, R - Reply,
r - reply Status, s - sia Status
P 192.168.12.0/24, 1 successors, FD is 281600
via Connected, GigabitEthernet0/1
A 192.168.14.0/24, 0 successors, FD is 409600, Q
1 replies, active 00:00:02, query-origin: Local origin
Remaining replies:
via 172.16.1.1, r, GigabitEthernet0/0
P 172.16.1.0/30, 1 successors, FD is 281600
via Connected, GigabitEthernet0/0
EIGRP的查询传播过程效率很低,会发送许多查询,每个查询都需要一个应答。有两种主要的方案可以用来优化查询传播过程并限制链路上不必要的EIGRP负载。管理员可以使用路由汇总或者EIGRP末节路由特性来优化查询信息的交换过程。
注释
如需全面了解EIGRPDUAL及示例,可以参见Routing Protocols Companion Guide(Cisco Press,2014)。
2.3.2 EIGRP末节路由器
大型EIGRP网络的稳定性通常取决于网络的查询范围,而将大型网络的分支标记为末节则是减少EIGRP查询数量并提升网络扩展性的方式之一。
EIGRP末节路由特性让使用者可以限制网络中的查询消息范围。那些配置为末节的路由器不会将学到的EIGRP路由转发给其他邻居,更重要的是,非末节路由器也不会向末节路由器发送查询消息。这就节省了CPU和带宽资源,同时提高了收敛速度。
在图2-13中,管理员将边界路由器R5到R8配置为了末节设备,所以R3和R4不会向它们发送网络192.168.14.0/24的查询消息。这样做减少了查询消息的总数和使用的带宽。将远程路由器配置为末节也可以减少拓扑的复杂程度,同时简化了配置。对星型拓扑来说尤其如此,管理员可以在双宿主远程路由器或分支上启用末节路由特性。这也就意味着管理员不需要在远程路由器上配置路由过滤就可以避免将远程路由器看作到达中心路由器的传输路径。
例2-31展示了检查路由器HQ和BR1A上的路由表,示例中标记出来的特定路由会在之后进行讨论。
例2-31 R1和BR路由表
HQ# show ip route
Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2
i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
ia - IS-IS inter area, * - candidate default, U - per-user static route
o - ODR, P - periodic downloaded static route, H - NHRP, l - LISP
+ - replicated route, % - next hop override
Gateway of last resort is not set
10.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
C 10.1.0.0/16 is directly connected, Loopback0
L 10.1.0.1/32 is directly connected, Loopback0
172.16.0.0/16 is variably subnetted, 2 subnets, 2 masks
C 172.16.1.0/30 is directly connected, Ethernet0/0
L 172.16.1.1/32 is directly connected, Ethernet0/0
D 192.168.0.0/24 [90/409600] via 172.16.1.2, 00:12:07, Ethernet0/0
D 192.168.16.0/23 [90/307200] via 172.16.1.2, 00:12:07, Ethernet0/0
D EX 192.168.18.0/24 [170/307200] via 172.16.1.2, 00:12:07, Ethernet0/0
BR1A# show ip route
Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2
i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
ia - IS-IS inter area, * - candidate default, U - per-user static route
o - ODR, P - periodic downloaded static route, H - NHRP, l - LISP
+ - replicated route, % - next hop override
Gateway of last resort is not set
10.0.0.0/16 is subnetted, 1 subnets
D 10.1.0.0 [90/409600] via 172.16.1.1, 00:34:56, Ethernet0/0
172.16.0.0/16 is variably subnetted, 2 subnets, 2 masks
C 172.16.1.0/30 is directly connected, Ethernet0/0
L 172.16.1.2/32 is directly connected, Ethernet0/0
192.168.0.0/24 is variably subnetted, 2 subnets, 2 masks
C 192.168.0.0/24 is directly connected, Loopback0
L 192.168.0.1/32 is directly connected, Loopback0
D 192.168.16.0/23 is a summary, 03:05:24, Null0
192.168.16.0/24 is variably subnetted, 2 subnets, 2 masks
C 192.168.16.0/24 is directly connected, Ethernet0/1
L 192.168.16.1/32 is directly connected, Ethernet0/1
S 192.168.17.0/24 [1/0] via 192.168.16.2
S 192.168.18.0/24 [1/0] via 192.168.16.2
可以看出,HQ通过EIGRP学习到了网络192.168.0.0/24、192.168.16.0/23和192.168.18.0/24。第一条路由代表BR1A上的LAN,第二条是汇总路由,最后一条则是重分布的静态路由。
管理员可以使用show ip eigrp neighbors details来验证HQ的邻居,如例2-32所示。
例2-32 验证HQ的邻居
HQ# show ip eigrp neighbors detail
EIGRP-IPv4 Neighbors for AS(1)
H Address Interface Hold Uptime SRTT RTO Q Seq
(sec) (ms) Cnt Num
0 172.16.1.2 Et0/0 13 02:14:33 12 100 0 20
Version 7.0/3.0, Retrans: 0, Retries: 0, Prefixes: 3
Topology-ids from peer - 0
BFD sessions
NeighAddr Interface
不难发现,BR1A是HQ唯一可见的邻居。HQ所有学到的EIGRP路由都是通过它接收到的。还要注意,BR1A和HQ配置在了EIGRP自治系统1当中。
接下来,在例2-33中,管理员使用命令debug eigrp packet terse在HQ上启用了EIGRP包调试功能,同时关闭了Loopback 0接口。
例2-33 在HQ上调试EIGRP查询和应答包
HQ# debug eigrp packets terse
(UPDATE, REQUEST, QUERY, REPLY, IPXSAP, PROBE, ACK, STUB, SIAQUERY, SIAREPLY)
EIGRP Packet debugging is on
HQ# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
HQ(config)# interface Loopback 0
HQ(config-if)# shutdown
*Oct 8 13:11:18.173: EIGRP: Enqueueing QUERY on Ethernet0/0 tid 0 iidbQ un/rely 0/1
serno 21-21
*Oct 8 13:11:18.177: EIGRP: Sending QUERY on Ethernet0/0 tid 0
*Oct 8 13:11:18.177: AS 1, Flags 0x0:(NULL), Seq 19/0 interfaceQ 0/0 iidbQ un/
rely 0/0 serno 21-21
*Oct 8 13:11:18.178: EIGRP: Received ACK on Ethernet0/0 nbr 172.16.1.2
*Oct 8 13:11:18.178: AS 1, Flags 0x0:(NULL), Seq 0/19 interfaceQ 0/0 iidbQ un/
rely 0/0 peerQ un/rely 0/1
*Oct 8 13:11:18.178: EIGRP: Ethernet0/0 multicast flow blocking cleared
*Oct 8 13:11:18.207: EIGRP: Received REPLY on Ethernet0/0 nbr 172.16.1.2
*Oct 8 13:11:18.207: AS 1, Flags 0x0:(NULL), Seq 21/19 interfaceQ 0/0 iidbQ un/
rely 0/0 peerQ un/rely 0/0
*Oct 8 13:11:18.207: EIGRP: Enqueueing ACK on Ethernet0/0 nbr 172.16.1.2 tid 0
*Oct 8 13:11:18.207: Ack seq 21 iidbQ un/rely 0/0 peerQ un/rely 1/0
*Oct 8 13:11:18.207: Handling TLV: 242 41 for 0 route: 10.1.0.0/16
*Oct 8 13:11:18.215: EIGRP: Sending ACK on Ethernet0/0 nbr 172.16.1.2 tid 0
*Oct 8 13:11:18.215: AS 1, Flags 0x0:(NULL), Seq 0/21 interfaceQ 0/0 iidbQ un/
rely 0/0 peerQ un/rely 1/0
HQ(config-if)#
*Oct 8 13:11:20.155: %LINK-5-CHANGED: Interface Loopback0, changed state to
administratively down
*Oct 8 13:11:21.159: %LINEPROTO-5-UPDOWN: Line protocol on Interface Loopback0,
changed state to down
可以看到,HQ通过Ethernet 0/0接口向邻居BR1A发送了一条查询消息。EIGRP路由器使用查询包询问邻居去往某条(最近丢失的)路由的路径信息。BR1A首先通过一个Ack消息确认接收到了查询消息,接着使用一个应答包对接收到的查询消息作出了响应。应答包中的信息表明BR1A没有到达网络10.1.0.0/16的替代路由。HQ通过发送确认响应了一个应答包。
路由器HQ在丢失到达网络10.1.0.0/16的路径时,丢失路由的EIGRP状态就会变为活跃。路由进程保持在活跃状态,直到其发现了另一条路径或从邻居那里接收了所有发送请求的响应消息。
EIGRP末节选项
通过一些不同的EIGRP末节选项,管理员可以精确地指定EIGRP末节应该通告哪些路由,如表2-1所示。
要想使用EIGRP将路由器配置为末节设备,可以在路由器配置模式或者地址族配置模式中使用eigrp stub命令。要想禁用EIGRP末节路由特性,则可以在这条命令前面添加关键字no。
在默认情况下,配置为末节的路由器会与所有邻居共享直连和汇总路由。管理员可以将除receive-only之外的所有的末节选项组合起来使用,以便通告自己需要通告的那种路由。
connected选项可以让EIGRP末节路由器通告所有与EIGRP network命令相匹配的接口的直连路由。这个选项默认即启用,同时也是实际中使用最为广泛的末节可选项。
summary选项可以让EIGRP末节路由器发送汇总路由。管理员可以手工创建汇总路由,也可以在主类网络边界路由器上通过命令auto-summary自动创建汇总。summary默认即启用。
static选项可以让EIGRP末节路由器通告静态路由。但管理员仍然需要使用redistribute static命令将静态路由重分布到EIGRP中。
redistribute选项可以让EIGRP末节路由器通告所有重分布进来的路由,前提是管理员在末节路由器上使用redistribute命令配置了重分布。
receive-only选项会限制末节路由器,让它不能和一个EIGRP自治系统中的任何其他路由器共享它的路由信息。使用这个选项时,不允许设置其他可选项,因为它会路由器通告阻止任何类型的路由。这个选项很少使用。使用这个选项的情况包括路由器只有一个接口,或者管理员配置了带有端口地址转换(Port Address Translation,PAT)的网络地址转换(Network Address Translation,NAT),使得所有主机都隐藏在一个WAN接口之后。
在例2-34中,管理员重新打开了HQ的Loopback 0接口。在例2-35中,管理员通过命令eigrp stub将BR1A配置为了EIGRP末节,HQ上的输出信息显示,邻接关系重新得到了建立。
例2-34 重新启用H1的Loopback 0接口
HQ(config)# interface loopback 0
HQ(config-if)# no shutdown
例2-35 BR1A被配置为EIGRP末节路由器
BR1A(config)# <strong>router eigrp 1</strong>
BR1A(config-router)# <strong>eigrp stub</strong>
*Oct 18 11:51:16.232: %DUAL-5-NBRCHANGE: EIGRP-IPv4 1: Neighbor 172.16.1.1
(Ethernet0/0) is down: peer info changed
BR1A(config-router)#
*Oct 18 11:51:20.495: %DUAL-5-NBRCHANGE: EIGRP-IPv4 1: Neighbor 172.16.1.1
(Ethernet0/0) is up: new adjacency
-----------------------------------------------------------------
*Oct 18 11:51:16.228: %DUAL-5-NBRCHANGE: EIGRP-IPv4 1: Neighbor 172.16.1.2
(Ethernet0/0) is down: Interface PEER-TERMINATION received
HQ#
*Oct 18 11:51:20.503: EIGRP: Adding stub (1 Peers, 1 Stubs)
*Oct 18 11:51:20.503: %DUAL-5-NBRCHANGE: EIGRP-IPv4 1: Neighbor 172.16.1.2
(Ethernet0/0) is up: new adjacency
*Oct 18 11:51:20.503: EIGRP: Enqueueing UPDATE on Ethernet0/0 nbr 172.16.1.2 tid 0
iidbQ un/rely 0/1 peerQ un/rely 0/0
*Oct 18 11:51:20.508: EIGRP: Received UPDATE on Ethernet0/0 nbr 172.16.1.2
<Output omitted>
在将BR1A路由器配置为末节之后,EIGRP的邻接关系需要重新建立。
EIGRP末节路由器会通过EIGRP Hello包宣布自己的新状态。它发送的Hello数据包会告知邻居,链路另一端的路由器是一台末节路由器,所以它们不应该再向自己发送查询包。这会改善网络的收敛时间,因为中心路由器不需要等待远程机构发送的查询应答消息。
接下来,我们需要验证HQ是如何检测到BR1A被配置为末节路由器的。HQ上的所有调试功能都被命令undebug all所禁用了。如例2-36所示。
例2-36 在HQ上禁用调试
HQ# undebug all
All possible debugging has been turned off
在例2-37中,管理员在HQ上使用命令show ip eigrp neighbors details查看了EIGRP邻居。
例2-37 在HQ上验证邻居BR1A为EIGRP末节
HQ# show ip eigrp neighbors detail
EIGRP-IPv4 Neighbors for AS(1)
H Address Interface Hold Uptime SRTT RTO Q Seq
(sec) (ms) Cnt Num
0 172.16.1.2 Et0/0 11 00:39:00 7 100 0 13
Version 7.0/3.0, Retrans: 0, Retries: 0, Prefixes: 2
Topology-ids from peer - 0
Stub Peer Advertising (CONNECTED SUMMARY ) Routes
Suppressing queries
BFD sessions
NeighAddr Interface
在例2-37中不难发现,路由器HQ将路由器BR1A看作是一个末节路由器。在默认情况下,末节路由器只会向邻居通告直连路由和汇总路由;而所有其他路由都会被过滤。此外,读者还可以看到与查询消息有关的信息。HQ正在抑制查询消息,因为BR1A被配置为了末节。
在例2-38中,管理员使用show ip route命令验证了BR1A上的路由表。
例2-38 在BR1A上验证路由表
BR1A# show ip route
Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2
i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
ia - IS-IS inter area, * - candidate default, U - per-user static route
o - ODR, P - periodic downloaded static route, H - NHRP, l - LISP
+ - replicated route, % - next hop override
Gateway of last resort is not set
10.0.0.0/16 is subnetted, 1 subnets
D 10.1.0.0 [90/409600] via 172.16.1.1, 00:18:52, Ethernet0/0
172.16.0.0/16 is variably subnetted, 2 subnets, 2 masks
C 172.16.1.0/30 is directly connected, Ethernet0/0
L 172.16.1.2/32 is directly connected, Ethernet0/0
192.168.0.0/24 is variably subnetted, 2 subnets, 2 masks
C 192.168.0.0/24 is directly connected, Loopback0
L 192.168.0.1/32 is directly connected, Loopback0
D 192.168.16.0/23 is a summary, 00:22:21, Null0
192.168.16.0/24 is variably subnetted, 2 subnets, 2 masks
C 192.168.16.0/24 is directly connected, Ethernet0/1
L 192.168.16.1/32 is directly connected, Ethernet0/1
S 192.168.17.0/24 [1/0] via 192.168.16.2
S 192.168.18.0/24 [1/0] via 192.168.16.2
可以看到,BR1A上的路由表在这台路由器被配置为末节之后没有变化。将一台路由器配置为末节不会改变或限制它从邻居收到的信息,而只会限制它与邻居共享的信息。
例2-39使用show ip route命令查看了HQ上的路由表。
例2-39 BR1A为末节时验证HQ上的路由表
HQ# show ip route
Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2
i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
ia - IS-IS inter area, * - candidate default, U - per-user static route
o - ODR, P - periodic downloaded static route, H - NHRP, l - LISP
+ - replicated route, % - next hop override
Gateway of last resort is not set
10.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
C 10.1.0.0/16 is directly connected, Loopback0
L 10.1.0.1/32 is directly connected, Loopback0
172.16.0.0/16 is variably subnetted, 2 subnets, 2 masks
C 172.16.1.0/30 is directly connected, Ethernet0/0
L 172.16.1.1/32 is directly connected, Ethernet0/0
D 192.168.0.0/24 [90/409600] via 172.16.1.2, 00:09:07, Ethernet0/0
D 192.168.16.0/23 [90/307200] via 172.16.1.2, 00:09:07, Ethernet0/0
在默认情况下,EIGRP末节路由器只会通告直连路由和汇总路由。在输出信息中可以看到,外部EIGRP路由192.168.18.0/24并没有出现在HQ的路由表中。
在例2-40中,管理员在BR1A上使用eigrp stub connected命令将其配置为了一台只通告直连路由的EIGRP末节路由器。
例2-40 BR1A配置为EIGRP Connected末节路由器
BR1A(config)# router eigrp 1
BR1A(config-router)# eigrp stub connected
*Oct 20 18:46:50.137: %DUAL-5-NBRCHANGE: EIGRP-IPv4 1: Neighbor 172.16.1.1
(Ethernet0/0) is down: peer info changed
*Oct 20 18:46:50.419: %DUAL-5-NBRCHANGE: EIGRP-IPv4 1: Neighbor 172.16.1.1
(Ethernet0/0) is up: new adjacency
在更改EIGRP末节选项后,所有邻居会话都需要断开重建。
接下来,我们在例2-41中使用show ip eigrp neighbors detail命令验证了HQ上的EIGRP邻居末节设置。
例2-41 在HQ上验证邻居BR1A为一个EIGRP Connected末节
HQ# show ip eigrp neighbors detail
EIGRP-IPv4 Neighbors for AS(1)
H Address Interface Hold Uptime SRTT RTO Q Seq
(sec) (ms) Cnt Num
0 172.16.1.2 Et0/0 14 00:10:25 12 100 0 8
Version 7.0/3.0, Retrans: 0, Retries: 0, Prefixes: 2
Topology-ids from peer - 0
Stub Peer Advertising (CONNECTED ) Routes
Suppressing queries
BFD sessions
NeighAddr Interface
例2-42在HQ路由器上使用show ip route命令验证了它的路由表。
例2-42 验证HQ路由表
HQ# show ip route
Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2
i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
ia - IS-IS inter area, * - candidate default, U - per-user static route
o - ODR, P - periodic downloaded static route, H - NHRP, l - LISP
+ - replicated route, % - next hop override
Gateway of last resort is not set
10.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
C 10.1.0.0/16 is directly connected, Loopback0
L 10.1.0.1/32 is directly connected, Loopback0
172.16.0.0/16 is variably subnetted, 2 subnets, 2 masks
C 172.16.1.0/30 is directly connected, Ethernet0/0
L 172.16.1.1/32 is directly connected, Ethernet0/0
D 192.168.0.0/24 [90/409600] via 172.16.1.2, 00:14:52, Ethernet0/0
D 192.168.16.0/24 [90/307200] via 172.16.1.2, 00:14:52, Ethernet0/0
可以看出,BR1A现在只会通告直连网络192.168.0.0/24和192.168.16.0/24。HQ不会再收到汇总路由192.168.16.0/23和指向网络192.168.18.0/24的重分布静态路由。
接下来,管理员在例2-43中使用eigrp stub receive-only命令将BR1A配置为了一台EIGR Preceive-only的末节路由器。
例2-43 BR1A配置为EIGRP Receive-Only末节路由器
BR1A(config)# router eigrp 1
BR1A(config-router)# eigrp stub receive-only
*Oct 20 19:06:42.909: %DUAL-5-NBRCHANGE: EIGRP-IPv4 1: Neighbor 172.16.1.1
(Ethernet0/0) is down: peer info changed
BR1A(config-router)#
*Oct 20 19:06:46.356: %DUAL-5-NBRCHANGE: EIGRP-IPv4 1: Neighbor 172.16.1.1
(Ethernet0/0) is up: new adjacency
每次更改EIGRP末节设置都需要重建EIGRP邻居会话。
例2-44使用show ip eigrp neighbors detail命令验证了HQ上的EIGRP邻居末节设置。
例2-44 在HQ上验证邻居BR1A为一个EIGRP Receive-Only末节
HQ# show ip eigrp neighbors detail
EIGRP-IPv4 Neighbors for AS(1)
H Address Interface Hold Uptime SRTT RTO Q Seq
(sec) (ms) Cnt Num
0 172.16.1.2 Et0/0 10 00:03:03 1999 5000 0 10
Version 7.0/3.0, Retrans: 1, Retries: 0
Topology-ids from peer - 0
Receive-Only Peer Advertising (No) Routes
Suppressing queries
BFD sessions
NeighAddr Interface
邻居路由器现在已经配置成为了一个receive-only末节路由器。HQ会继续抑制查询数据包,但即使EIGRP会话建立起来,路由器BR1A也会不通告任何路由。
例2-45使用show ip route命令,通过HQ的路由表验证了上面的理论。
例2-45 验证HQ路由表
HQ# show ip route
Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2
i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
ia - IS-IS inter area, * - candidate default, U - per-user static route
o - ODR, P - periodic downloaded static route, H - NHRP, l - LISP
+ - replicated route, % - next hop override
Gateway of last resort is not set
10.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
C 10.1.0.0/16 is directly connected, Loopback0
L 10.1.0.1/32 is directly connected, Loopback0
172.16.0.0/16 is variably subnetted, 2 subnets, 2 masks
C 172.16.1.0/30 is directly connected, Ethernet0/0
L 172.16.1.1/32 is directly connected, Ethernet0/0
可以看到,所有动态EIGRP路由都从HQ的路由表中消失了。路由器BR1A被配置为了一台receive-only的末节路由器,因此不会向HQ通告任何路由。如果BR1A身后的所有主机都要使用PAT转换时,这是一种很有效的做法。在这样的环境中,HQ不需要知道路由器BR1A身后的网络,因为所有的出站量都会被发送给BR1A的WAN接口,在接口上将执行PAT。
在例2-46中,BR1A的路由表使用show ip route命令显示。
例2-46 配置为Receive-Only末节的BR1A的路由表
BR1A# show ip route
Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2
i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
ia - IS-IS inter area, * - candidate default, U - per-user static route
o - ODR, P - periodic downloaded static route, H - NHRP, l - LISP
+ - replicated route, % - next hop override
Gateway of last resort is not set
10.0.0.0/16 is subnetted, 1 subnets
D 10.1.0.0 [90/409600] via 172.16.1.1, 00:05:57, Ethernet0/0
172.16.0.0/16 is variably subnetted, 2 subnets, 2 masks
C 172.16.1.0/30 is directly connected, Ethernet0/0
L 172.16.1.2/32 is directly connected, Ethernet0/0
192.168.0.0/24 is variably subnetted, 2 subnets, 2 masks
C 192.168.0.0/24 is directly connected, Loopback0
L 192.168.0.1/32 is directly connected, Loopback0
D 192.168.16.0/23 is a summary, 01:20:33, Null0
192.168.16.0/24 is variably subnetted, 2 subnets, 2 masks
C 192.168.16.0/24 is directly connected, Ethernet0/1
L 192.168.16.1/32 is directly connected, Ethernet0/1
S 192.168.17.0/24 [1/0] via 192.168.16.2
S 192.168.18.0/24 [1/0] via 192.168.16.2
注意,即使receive-only这个末节选项也不会影响末节路由器所接收到的路由。BR1A上的路由表无论EIGRP末节配置如何都不会发生变化。
2.3.4 Stuck in Active
当一台路由器失去了一条路由并向邻居发送了查询消息时,它会希望能够以应答数据包的形式收到该查询消息的响应消息。如果没有成功接收查询消息的应答包,就会导致会话终止。
EIGRP使用一种可靠的组播方式来搜索替用路由。因此,接收到在网络中产生的每个查询的应答消息,对于EIGRP来说势在必得。
一旦有一条路由进入活跃状态且查询进程初始化,那么只有接收到每个查询消息的应答后,路由才能走出活跃状态并转换为被动状态。如果路由器在3分钟内(默认时间)没有接收到所有待完成查询的应答消息,路由就会进入stuck-in-active(SIA)状态。这个计时器称为活跃计时器。一旦活跃计时器过期,邻居关系就会被重置。这项设置会让通过失去的邻居所学习到的所有路由都进入活跃状态,并向失去的邻居重新通告路由器所知的所有路由。
如图2-15所示,丢失应答消息最常见的原因是两台路由器之间存在不可靠的链路,而这条链路上出现了一些丢包的情况。虽然路由器能够接收到足够的数据包来维持邻居关系,但无法接收到所有查询或应答消息。当这种情况发生时,受到影响的设备就会产生EIGRP DUAL-3-SIA错误消息。
2.3.5 使用汇总路由减小查询范围
减小查询消息数量还有一种方式,那就是部署路由汇总。当一台路由器接收到某个网络的EIGRP查询,而该网络包含在路由器路由表的一个汇总路由中,它会立刻发送一条应答消息,而不再进一步转发查询包。这样可以减少发送的查询数量,因此可以提升收敛时间。
在图2-17所示的情境中,路由器HQ对所有远程网络执行了汇总。汇总路由会通告给其他路由器,如路由器GW。当远程位置的连接失效,且HQ没有任何到达失去网络的可行后继时,它就会向邻居发送一个查询消息。当路由器GW接收到一个网络192.168.12.0/24的查询消息时,它会立刻使用一个应答消息作出响应,而不再进一步转发查询,因为它有一条汇总路由192.168.0.0/16,其中包含了192.168.12.0/24这个前缀。然而,由于这条路由是通过路由器HQ学来的,所以路由器GW会回应说明它没有到达192.168.12.0/24的替代路径。
在进行汇总之前,例2-47使用show ip route命令显示了HQ上的路由表。
例2-47 在汇总前验证HQ的路由表
HQ# show ip route
Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2
i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
ia - IS-IS inter area, * - candidate default, U - per-user static route
o - ODR, P - periodic downloaded static route, H - NHRP, l - LISP
+ - replicated route, % - next hop override
Gateway of last resort is 209.165.200.226 to network 0.0.0.0
S* 0.0.0.0/0 [1/0] via 209.165.200.226
10.0.0.0/16 is subnetted, 7 subnets
D 10.10.0.0 [90/409600] via 172.16.1.2, 00:18:16, Ethernet0/1
D 10.11.0.0 [90/409600] via 172.16.1.2, 00:18:16, Ethernet0/1
D 10.12.0.0 [90/409600] via 172.16.1.2, 00:18:16, Ethernet0/1
D 10.13.0.0 [90/409600] via 172.16.1.2, 00:18:16, Ethernet0/1
D 10.64.0.0 [90/409600] via 172.16.2.2, 00:16:55, Ethernet0/2
D 10.65.0.0 [90/409600] via 172.16.2.2, 00:16:55, Ethernet0/2
D 10.66.0.0 [90/409600] via 172.16.2.2, 00:16:55, Ethernet0/2
172.16.0.0/16 is variably subnetted, 4 subnets, 2 masks
C 172.16.1.0/30 is directly connected, Ethernet0/1
L 172.16.1.1/32 is directly connected, Ethernet0/1
C 172.16.2.0/30 is directly connected, Ethernet0/2
L 172.16.2.1/32 is directly connected, Ethernet0/2
209.165.200.0/24 is variably subnetted, 2 subnets, 2 masks
C 209.165.200.224/27 is directly connected, Ethernet0/0
L 209.165.200.225/32 is directly connected, Ethernet0/0
通过输出信息显示,HQ从路由器BR1和BR2接收到了7个不同的内部网络。使用汇总减少路由表中路由的数量既可以提升网络的收敛速度,也可以减小查询范围。EIGRP支持自动汇总和手工汇总。
在例2-48中,管理员在BR1上使用auto-summary配置命令配置了自动EIGRP汇总。
例2-48 在BR1上配置自动汇总
BR1(config)# router eigrp 1
BR1(config-router)# auto-summary
*Oct 26 08:56:42.288: %DUAL-5-NBRCHANGE: EIGRP-IPv4 1: Neighbor 172.16.1.1
(Ethernet0/0) is resync: summary configured
*Oct 26 08:56:42.292: %DUAL-5-NBRCHANGE: EIGRP-IPv4 1: Neighbor 172.16.1.1
(Ethernet0/0) is resync: summary up, remove components
启用自动汇总时,邻居之间的邻接关系并不会终止,它们之间只会同步路由信息。auto-summary这条EIGRP命令会在有类网络边界自动汇总路由。在运行Cisco IOS 15之前版本的系统上,这种EIGRP行为默认就会启用。
在例2-49中,管理员在HQ上使用show ip route命令对汇总路由进行了验证。
例2-49 在HQ上验证BR1的汇总路由
HQ# show ip route
Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2
i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
ia - IS-IS inter area, * - candidate default, U - per-user static route
o - ODR, P - periodic downloaded static route, H - NHRP, l - LISP
+ - replicated route, % - next hop override
Gateway of last resort is 209.165.200.226 to network 0.0.0.0
S* 0.0.0.0/0 [1/0] via 209.165.200.226
10.0.0.0/8 is variably subnetted, 4 subnets, 2 masks
D 10.0.0.0/8 [90/409600] via 172.16.1.2, 00:17:23, Ethernet0/1
D 10.64.0.0/16 [90/409600] via 172.16.2.2, 00:32:36, Ethernet0/2
D 10.65.0.0/16 [90/409600] via 172.16.2.2, 00:32:36, Ethernet0/2
D 10.66.0.0/16 [90/409600] via 172.16.2.2, 00:32:36, Ethernet0/2
172.16.0.0/16 is variably subnetted, 4 subnets, 2 masks
C 172.16.1.0/30 is directly connected, Ethernet0/1
L 172.16.1.1/32 is directly connected, Ethernet0/1
C 172.16.2.0/30 is directly connected, Ethernet0/2
L 172.16.2.1/32 is directly connected, Ethernet0/2
209.165.200.0/24 is variably subnetted, 2 subnets, 2 masks
C 209.165.200.224/27 is directly connected, Ethernet0/0
L 209.165.200.225/32 is directly connected, Ethernet0/0
HQ的路由表中并没有10.10.0.0/16到10.13.0.0/16的路由。这些路由都被自动汇总的路由10.0.0.0/8所替代了。
接下来,例2-50通过show ip route命令查看了BR1上的路由表。
例2-50 BR1上的Null0汇总路由
BR1# show ip route
Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2
i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
ia - IS-IS inter area, * - candidate default, U - per-user static route
o - ODR, P - periodic downloaded static route, H - NHRP, l - LISP
+ - replicated route, % - next hop override
Gateway of last resort is not set
10.0.0.0/8 is variably subnetted, 12 subnets, 3 masks
D 10.0.0.0/8 is a summary, 00:15:53, Null0
C 10.10.0.0/16 is directly connected, Loopback0
L 10.10.0.1/32 is directly connected, Loopback0
C 10.11.0.0/16 is directly connected, Loopback1
L 10.11.0.1/32 is directly connected, Loopback1
C 10.12.0.0/16 is directly connected, Loopback2
L 10.12.0.1/32 is directly connected, Loopback2
C 10.13.0.0/16 is directly connected, Loopback3
L 10.13.0.1/32 is directly connected, Loopback3
D 10.64.0.0/16 [90/435200] via 172.16.1.1, 00:31:01, Ethernet0/0
D 10.65.0.0/16 [90/435200] via 172.16.1.1, 00:31:01, Ethernet0/0
D 10.66.0.0/16 [90/435200] via 172.16.1.1, 00:31:01, Ethernet0/0
172.16.0.0/16 is variably subnetted, 4 subnets, 3 masks
D 172.16.0.0/16 is a summary, 00:15:53, Null0
C 172.16.1.0/30 is directly connected, Ethernet0/0
L 172.16.1.2/32 is directly connected, Ethernet0/0
D 172.16.2.0/30 [90/307200] via 172.16.1.1, 00:31:06, Ethernet0/0
209.165.200.0/27 is subnetted, 1 subnets
D 209.165.200.224 [90/307200] via 172.16.1.1, 00:31:06, Ethernet0/0
可以看到,BR1路由表中有一条路由描述的是10.0.0.0/8这个网络,并且指向Null0接口。当配置了自动汇总时,这条路由会自动进入路由表中,以避免路由环路。设想若BR1接收到了一个数据包,其目的网络包含在汇总路由10.0.0.0/8之中,但是没有出现在BR1的路由表中。如果BR1有指向HQ的默认路由,它就会把这个数据包发回给HQ,而HQ则会将其发回给BR1。因此,这个数据包就会陷入路由环路中,直到生存时间(TTL)值过期。如果向邻居通告汇总路由的路由器将这条路由指向自己的Null0接口,就可以防止路由环路的问题。
在例 2-51 中,BR2 上也使用EIGRP配置命令 auto-summary 启用了自动 EIGRP汇总。
例2-51 在BR2上配置自动汇总
BR2(config)# router eigrp 1
BR2(config-router)# auto-summary
BR2(config-router)#
*Oct 26 09:30:45.251: %DUAL-5-NBRCHANGE: EIGRP-IPv4 1: Neighbor 172.16.2.1
(Ethernet0/0) is resync: summary configured
*Oct 26 09:30:45.255: %DUAL-5-NBRCHANGE: EIGRP-IPv4 1: Neighbor 172.16.2.1
(Ethernet0/0) is resync: summary up, remove components
例2-52通过show ip route命令查看了HQ的路由表,验证了HQ上的汇总路由。
例2-52 在HQ上验证BR2的汇总路由
HQ# show ip route
Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2
i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
ia - IS-IS inter area, * - candidate default, U - per-user static route
o - ODR, P - periodic downloaded static route, H - NHRP, l - LISP
+ - replicated route, % - next hop override
Gateway of last resort is 209.165.200.226 to network 0.0.0.0
S* 0.0.0.0/0 [1/0] via 209.165.200.226
D 10.0.0.0/8 [90/409600] via 172.16.2.2, 00:51:02, Ethernet0/2
[90/409600] via 172.16.1.2, 00:51:02, Ethernet0/1
172.16.0.0/16 is variably subnetted, 4 subnets, 2 masks
C 172.16.1.0/30 is directly connected, Ethernet0/1
L 172.16.1.1/32 is directly connected, Ethernet0/1
C 172.16.2.0/30 is directly connected, Ethernet0/2
L 172.16.2.1/32 is directly connected, Ethernet0/2
209.165.200.0/24 is variably subnetted, 2 subnets, 2 masks
C 209.165.200.224/27 is directly connected, Ethernet0/0
L 209.165.200.225/32 is directly connected, Ethernet0/0
注意,HQ从BR2接收到了与从BR1所接收到的相同的汇总路由。这是因为BR1和BR2都在主类网络边界,因此会通告相同的汇总路由。因为两条路由有相同的开销,所以HQ会在两条路由之间进行负载分担。
管理员使用ping命令对从HQ到IP地址10.10.0.1之间的连通性进行了测试,这个地址属于路由器BR1上的汇总网络。例2-53显示了ping测试的结果。
例2-53 测试从HQ到汇总网络的连通性
HQ# ping 10.10.0.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.10.0.1, timeout is 2 seconds:
U.U.U
Success rate is 0 percent (0/5)
连通性测试很有可能失败。如果成功接收到了ICMP应答,可以尝试测试到汇总网络中其他IP地址的连通性,如10.11.0.1、10.12.0.1或10.13.0.1。
输出U.U.U表示HQ接收到了ICMP目的不可达应答。因为HQ认为两台路由器都有到前缀10.0.0.0/8内所有网络的连接,所以它很可能会把流量转发给错误的邻居。
自动汇总在无类网络不连续的网络中会造成连通性问题。网络10.0.0.0/8代表一个大的有类网络,但在上述情景中,这个有类网络的不同部分部署在了不同的位置。鉴于当今大量网络中所使用的都是小的无类子网地址,因此自动汇总只在极少数情况下有用,所以我们不建议使用自动汇总来优化EIGRP。
要想禁用BR1和BR2上的自动汇总,需要在这两台路由器上输入命令no auto-summary,如例2-54所示。
例2-54 在BR1和BR2上禁用自动汇总
BR1(config)# router eigrp 1
BR1(config-router)# no auto-summary
*Oct 26 12:59:46.864: %DUAL-5-NBRCHANGE: EIGRP-IPv4 1: Neighbor 172.16.1.1
(Ethernet0/0) is resync: summary configured
---------------------------------------------------------------------------
BR2(config)# router eigrp 1
BR2(config-router)# no auto-summary
*Oct 26 13:01:07.169: %DUAL-5-NBRCHANGE: EIGRP-IPv4 1: Neighbor 172.16.2.1
(Ethernet0/0) is resync: summary configured
例2-55通过HQ上show ip route命令的输出信息验证了两路由器上都已经禁用了自动汇总。
例2-55 HQ的路由表验证自动汇总已被禁用
HQ# show ip route
Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2
i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
ia - IS-IS inter area, * - candidate default, U - per-user static route
o - ODR, P - periodic downloaded static route, H - NHRP, l - LISP
+ - replicated route, % - next hop override
Gateway of last resort is 209.165.200.226 to network 0.0.0.0
S* 0.0.0.0/0 [1/0] via 209.165.200.226
10.0.0.0/16 is subnetted, 7 subnets
D 10.10.0.0 [90/409600] via 172.16.1.2, 00:23:26, Ethernet0/1
D 10.11.0.0 [90/409600] via 172.16.1.2, 00:23:26, Ethernet0/1
D 10.12.0.0 [90/409600] via 172.16.1.2, 00:23:26, Ethernet0/1
D 10.13.0.0 [90/409600] via 172.16.1.2, 00:23:26, Ethernet0/1
D 10.64.0.0 [90/409600] via 172.16.2.2, 00:22:05, Ethernet0/2
D 10.65.0.0 [90/409600] via 172.16.2.2, 00:22:05, Ethernet0/2
D 10.66.0.0 [90/409600] via 172.16.2.2, 00:22:05, Ethernet0/2
172.16.0.0/16 is variably subnetted, 4 subnets, 2 masks
C 172.16.1.0/30 is directly connected, Ethernet0/1
L 172.16.1.1/32 is directly connected, Ethernet0/1
C 172.16.2.0/30 is directly connected, Ethernet0/2
L 172.16.2.1/32 is directly connected, Ethernet0/2
209.165.200.0/24 is variably subnetted, 2 subnets, 2 masks
C 209.165.200.224/27 is directly connected, Ethernet0/0
L 209.165.200.225/32 is directly connected, Ethernet0/0
HQ路由器现在已经拥有了所有通告的EIGRP网络。
1.计算汇总路由
计算汇总路由需要对希望进行汇总的子网进行分析。读者需要确定所有地址中相同的最高位比特。把IP地址转换为二进制格式,就可以发现子网之间相同的比特。
在表 2-2 中,子网之间的前 13 个比特是相同的。因此,最佳的汇总路由是10.8.0.0/13。
切记,汇总路由10.8.0.0/13也描述了除表中四个子网之外的一些未列出的网络,比如10.9.0.0/16和10.14.0.0/16。如果这些子网部署在了网络的不同部分,那么这个计算出的汇总路由就会造成连通性问题。在这个示例中,我们需要定义两个独立的汇总路由。汇总路由10.10.0.0/15只描述网络10.10.0.0/16和10.11.0.0/16,而汇总路由10.12.0.0/15则只描述10.12.0.0/16和10.13.0.0/16这两个子网。
如果一台路由器有两个到达相同目的的路由(如一个汇总路由以及一个有更长匹配前缀长度的明细路由),路由表进程会选择更加详细的匹配项。
书接上文,例2-56所示为管理员在BR1使用接口配置命令ip summary-address eigrp 110.8.0.0/13在Ethernet 0/0接口上配置了手工汇总。
例2-56 在BR1上配置手工汇总
BR1(config)# interface Ethernet 0/0
BR1(config-if)# ip summary-address eigrp 1 10.8.0.0/13
*Dec 3 13:22:53.406: %DUAL-5-NBRCHANGE: EIGRP-IPv4 1: Neighbor 172.16.1.1
(Ethernet0/0) is resync: summary configured
要配置手工路由汇总,就必须选择正确的接口来传播汇总路由、正确的自治系统编号、汇总地址及其掩码。从Cisco IOS 15开始,ip summary-address命令既可以使用点分十进制格式的子网掩码,也可使用前缀长度,如例中所示。
判断出需要汇总为一个网络的所有那些子网IP地址中相同的比特位,就可以确定要指定使用哪类汇总路由。地址之间的所有相同比特决定了汇总地址及掩码。
注意,只有在路由表中存在汇总路由的更详细项(明细条目)时,路由器才会通告汇总路由。
例2-57使用命令show ip route命令查看了BR1的路由表。
例2-57 BR1路由表中的Null0路由
BR1# show ip route
Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2
i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
ia - IS-IS inter area, * - candidate default, U - per-user static route
o - ODR, P - periodic downloaded static route, H - NHRP, l - LISP
+ - replicated route, % - next hop override
Gateway of last resort is not set
10.0.0.0/8 is variably subnetted, 10 subnets, 4 masks
D 10.8.0.0/13 is a summary, 00:43:25, Null0
C 10.10.0.0/16 is directly connected, Loopback0
L 10.10.0.1/32 is directly connected, Loopback0
C 10.11.0.0/16 is directly connected, Loopback1
L 10.11.0.1/32 is directly connected, Loopback1
C 10.12.0.0/16 is directly connected, Loopback2
L 10.12.0.1/32 is directly connected, Loopback2
C 10.13.0.0/16 is directly connected, Loopback3
L 10.13.0.1/32 is directly connected, Loopback3
D 10.64.0.0/14 [90/435200] via 172.16.1.1, 00:24:06, Ethernet0/0
172.16.0.0/16 is variably subnetted, 3 subnets, 2 masks
C 172.16.1.0/30 is directly connected, Ethernet0/0
L 172.16.1.2/32 is directly connected, Ethernet0/0
D 172.16.2.0/30 [90/307200] via 172.16.1.1, 05:09:11, Ethernet0/0
209.165.200.0/27 is subnetted, 1 subnets
D 209.165.200.224 [90/307200] via 172.16.1.1, 05:09:11, Ethernet0/0
配置路由器通告汇总路由时,路由器也会将这条路由增加到自己的路由表中,并指向Null接口以避免路由环路。转发到Null接口的数据包会被丢弃,这样可以避免路由器将数据包转发到默认路由,并由此造成路由环路的可能性。
例如,如果BR1接收到了发往网络10.8.0.0/24的数据包,那么指向Null接口的路由10.8.0.0/13就会成为最佳匹配路由。因此这个数据包就会被丢弃,因为路由器不知道更详细的路由。
如例2-58所示,BR2也使用ip summary-address eigrp 1 10.64.0.0/14接口命令在Ethernet 0/0接口上配置了手工汇总。
例2-58 在BR2上配置手工汇总
BR2(config)# interface Ethernet 0/0
BR2(config-if)# ip summary-address eigrp 1 10.64.0.0/14
*Dec 3 13:31:55.741: %DUAL-5-NBRCHANGE: EIGRP-IPv4 1: Neighbor 172.16.2.1
(Ethernet0/0) is resync: summary configured
汇总地址是通过分析路由器BR2上各子网的相同比特计算出来的。
例2-59所示为管理员通过命令show ip route查看HQ路由表,以验证汇总路由已经通告了出去。
例2-59 验证HQ接收的汇总路由
HQ# show ip route
Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2
i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
ia - IS-IS inter area, * - candidate default, U - per-user static route
o - ODR, P - periodic downloaded static route, H - NHRP, l - LISP
+ - replicated route, % - next hop override
Gateway of last resort is 209.165.200.226 to network 0.0.0.0
S* 0.0.0.0/0 [1/0] via 209.165.200.226
10.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
D 10.8.0.0/13 [90/409600] via 172.16.1.2, 01:30:05, Ethernet0/1
D 10.64.0.0/14 [90/409600] via 172.16.2.2, 01:10:46, Ethernet0/2
172.16.0.0/16 is variably subnetted, 4 subnets, 2 masks
C 172.16.1.0/30 is directly connected, Ethernet0/1
L 172.16.1.1/32 is directly connected, Ethernet0/1
C 172.16.2.0/30 is directly connected, Ethernet0/2
L 172.16.2.1/32 is directly connected, Ethernet0/2
209.165.200.0/24 is variably subnetted, 2 subnets, 2 masks
C 209.165.200.224/27 is directly connected, Ethernet0/0
L 209.165.200.225/32 is directly connected, Ethernet0/0
所有分支子网被汇总成了两条汇总路由。汇总路由的度量等于被汇总的明细路由的最小度量。
此外还可以看到一条指向下一跳IP地址209.165.200.226,通过Ethernet 0/0接口可达的默认路由。
例2-60使用ping 209.165.202.129命令测试了HQ是否可以连通Internet上的外部网络。
例2-60 在HQ上测试到外部网络的连通性
HQ# ping 209.165.202.129
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 209.165.202.129, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/1/1 ms
外部IP地址连通性的测试成功,因为HQ有指向Internet网络的默认路由。
接下来,我们在例2-61中使用命令ping 209.165.202.129测试BR1是否与外部网络之间存在连通性。在该例中,我们也使用show ip route 209.165.202.129命令验证了路由器的路由表。
例2-61 在BR1上测试到外部网络的连通性
BR1# ping 209.165.202.129
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 209.165.202.129, timeout is 2 seconds:
.....
Success rate is 0 percent (0/5)
BR1# show ip route 209.165.202.129
% Network not in table
路由器与外部IP地址209.165.202.129之间不存在连通性,因为BR1上并没有关于如何到达209.165.202.129 IP地址的信息。
去往外部网络的连通性通常都是通过默认路由实现的,因为一一描述所有独立的外部网络(比如像Internet上的那些网络)会消耗大量的时间和资源。
2.获取默认路由
路由器可以通过几种不同的方式获取默认路由。
使用默认路由的主要目的是为了减少路由表的大小。这种方法尤其适用于末节网络,因为末节网络更适合优化路由条目的数量。
路由器在安装默认路由之前,会检查默认的候选路由。
候选可以是使用命令ip route 0.0.0.0 0.0.0.0 next-hop | interface在本地通过静态配置定义的默认路由。这个命令中的interface是用来转发所有目的地址未知的数据包的出接口,next-hop是将目的地址未知的数据包转发到的IP地址。
候选也可以是动态路由宣告的默认路由。EIGRP可以通过redistribute static命令静态重分布管理员定义的默认路由。
此外,使用ip default-network配置命令时,本地路由表中的所有有类网络都可以成为一个候选的默认路由。这条命令可以给所有有类EIGRP路由添加上一个外部标签,使其成为一个候选的默认路由。
注释
在EIGRP中,默认路由不能直接注入到OSPF中,此时可以使用default-information originate命令;不过,管理员可以在接口上汇总为0.0.0.0/0。
路由器会分析所有的候选默认路由,并基于AD和路由度量值选择其中最优的候选条目作为默认路由。
选定后,路由器会将最后的网关设置为选定候选路由的下一跳。这种做法不适用于最佳候选路由正好是直连路由的情况。
在例2-62中所示的路由表中,在HQ上一条静态默认路由通过redistribute static EIGRP命令被重分布到了EIGRP中。
例2-62 验证HQ的路由表及重分布静态默认路由
HQ# show ip route
Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2
i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
ia - IS-IS inter area, * - candidate default, U - per-user static route
o - ODR, P - periodic downloaded static route, H - NHRP, l - LISP
+ - replicated route, % - next hop override
Gateway of last resort is 209.165.200.226 to network 0.0.0.0
S* 0.0.0.0/0 [1/0] via 209.165.200.226
10.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
D 10.8.0.0/13 [90/409600] via 172.16.1.2, 23:00:26, Ethernet0/1
D 10.64.0.0/14 [90/409600] via 172.16.2.2, 22:41:07, Ethernet0/2
172.16.0.0/16 is variably subnetted, 4 subnets, 2 masks
C 172.16.1.0/30 is directly connected, Ethernet0/1
L 172.16.1.1/32 is directly connected, Ethernet0/1
C 172.16.2.0/30 is directly connected, Ethernet0/2
L 172.16.2.1/32 is directly connected, Ethernet0/2
209.165.200.0/24 is variably subnetted, 2 subnets, 2 masks
C 209.165.200.224/27 is directly connected, Ethernet0/0
L 209.165.200.225/32 is directly connected, Ethernet0/0
HQ# configure terminal
HQ(config)# router eigrp 1
HQ(config-router)# redistribute static
注意,HQ的路由表中有静态默认路由。redistribute static命令将所有HQ上静态定义的路由重分布到了EIGRP进程中。因为这条默认路由是HQ上定义的唯一的静态路由,所以只有这条路由会被重分布。
在例2-63中,使用show ip route命令验证了BR1上的路由表。
例2-63 验证BR1上收到了重分布的静态默认路由
BR1# show ip route
Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2
i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
ia - IS-IS inter area, * - candidate default, U - per-user static route
o - ODR, P - periodic downloaded static route, H - NHRP, l - LISP
+ - replicated route, % - next hop override
Gateway of last resort is 172.16.1.1 to network 0.0.0.0
D*EX 0.0.0.0/0 [170/307200] via 172.16.1.1, 00:17:06, Ethernet0/0
10.0.0.0/8 is variably subnetted, 10 subnets, 4 masks
D 10.8.0.0/13 is a summary, 23:10:22, Null0
C 10.10.0.0/16 is directly connected, Loopback0
L 10.10.0.1/32 is directly connected, Loopback0
C 10.11.0.0/16 is directly connected, Loopback1
L 10.11.0.1/32 is directly connected, Loopback1
C 10.12.0.0/16 is directly connected, Loopback2
L 10.12.0.1/32 is directly connected, Loopback2
C 10.13.0.0/16 is directly connected, Loopback3
L 10.13.0.1/32 is directly connected, Loopback3
D 10.64.0.0/14 [90/435200] via 172.16.1.1, 22:51:03, Ethernet0/0
172.16.0.0/16 is variably subnetted, 3 subnets, 2 masks
C 172.16.1.0/30 is directly connected, Ethernet0/0
L 172.16.1.2/32 is directly connected, Ethernet0/0
D 172.16.2.0/30 [90/307200] via 172.16.1.1, 1d03h, Ethernet0/0
209.165.200.0/27 is subnetted, 1 subnets
D 209.165.200.224 [90/307200] via 172.16.1.1, 1d03h, Ethernet0/0
可以看到,BR1通过EIGRP接收到了默认路由。通告默认路由的邻居路由器HQ被选为最后的网关。BR1现在会把所有目的地址未知的数据包转发给HQ。
星号(*)标记的路由0.0.0.0即为候选的默认路由。标记为D EX的路由是一个外部EIGRP路由。EIGRP会将所有从其他路由协议学到的路由或路由表中的静态路由都标记为外部路由。
如例2-64所示,管理员使用命令ping 209.165.202.129验证了BR1到外部网络的连通性。
例2-64 验证从BR1到外部网络的连通性
BR1# ping 209.165.202.129
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 209.165.202.129, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/1/1 ms
从BR1到外部网络之间目前可以连通。因为BR1没有目的IP地址209.165.202.129的明细信息,所以它会使用收到的默认网络将数据包转发给HQ路由器。
2.3.7 使用EIGRP进行负载分担
EIGRP可以使用通向相同目的的多条链路分发流量,从而增加有效的网络带宽。EIGRP既支持在相同开销的路径上执行负载分担,也支持在不同开销路径的上执行负载分担。
EIGRP默认支持最多4条等开销路径的负载分担。管理员可以使用maximum-paths命令配置IP路由协议支持的最大平行路由数量。路由表中可保存的一样好的路由的最大数量取决于IOS版本;经测试该值通常为32。
在交换数据包时,路由器会以数据包为单位执行通过相同度量路径的负载分担。在快速交换数据包时,路由器则会基于目的地址执行通过相同度量路径的负载分担。Cisco快速转发(CEF)默认情况下即会启用,这种技术同时支持基于数据包的负载分担和基于目的的负载分担。
通过不同开销链路执行负载分担的做法默认是禁用的。只有可行后继路由可以包含在EIGRP的负载分担中,这是为了确保拓扑是无环的。
2.3.8 配置EIGRP负载分担
在本节中,我们会配置EIGRP非等价负载分担。图2-19中的拓扑包含了两台通过三条链路互连的路由器。前两条Ethernet链路相同,第三条串行链路较慢。两台路由器上均已配置了EIGRP。
1.EIGRP负载分担
首先,例2-65验证了HQ与R路由器IP地址192.168.0.1之间的连通性。
例2-65 验证从HQ到BR的连通性
HQ# ping 192.168.0.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.0.1, timeout is 2 seconds:
!!!!!
HQ上的路由表如例2-66所示。
例2-66 验证HQ上的路由表
HQ# show ip route
Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2
i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
ia - IS-IS inter area, * - candidate default, U - per-user static route
o - ODR, P - periodic downloaded static route, H - NHRP, l - LISP
+ - replicated route, % - next hop override
Gateway of last resort is not set
172.16.0.0/16 is variably subnetted, 6 subnets, 2 masks
C 172.16.1.0/30 is directly connected, Ethernet0/0
L 172.16.1.1/32 is directly connected, Ethernet0/0
C 172.16.2.0/30 is directly connected, Ethernet0/1
L 172.16.2.1/32 is directly connected, Ethernet0/1
C 172.16.3.0/30 is directly connected, Serial1/0
L 172.16.3.1/32 is directly connected, Serial1/0
D 192.168.0.0/24 [90/409600] via 172.16.2.2, 00:26:18, Ethernet0/1
[90/409600] via 172.16.1.2, 00:26:18, Ethernet0/0
即使两路由器之间建立了三条链路,HQ也只会针对目的网络192.168.0.0/24在路由表中插入两条等价EIGRP路由。发往这个目的地址的流量会通过接口Ethernet 0/0和Ethernet 0/1进行负载分担。
HQ的路由表中包含了两条去往192.168.0.0/24网络的路径,读者可以通过观察HQ EIGRP拓扑表中存储的内容来了解这一点。例2-67所示为HQ上的EIGRP拓扑表。
例2-67 查看HQ的等价路由路由表
HQ# show ip eigrp topology
EIGRP-IPv4 Topology Table for AS(1)/ID(172.16.3.1)
Codes: P - Passive, A - Active, U - Update, Q - Query, R - Reply,
r - reply Status, s - sia Status
P 172.16.2.0/30, 1 successors, FD is 281600
via Connected, Ethernet0/1
P 192.168.0.0/24, 2 successors, FD is 409600
via 172.16.1.2 (409600/128256), Ethernet0/0
via 172.16.2.2 (409600/128256), Ethernet0/1
via 172.16.3.2 (2297856/128256), Serial1/0
P 172.16.3.0/30, 1 successors, FD is 2169856
via Connected, Serial1/0
P 172.16.1.0/30, 1 successors, FD is 281600
via Connected, Ethernet0/0
EIGRP拓扑表显示了HQ通过三个接口接收到的有关目的网络192.168.0.0/24的信息。Ethernet接口上的两条路由都有最低开销,因此都被选为了后继路由。第三条通过串行接口收到的路由开销值更高,因为串行链路的带宽比较低。
在默认情况下,路由器只会启用等价负载分担。要想使用非等价链路,需要进行额外的配置。
2.通过不等开销路径进行EIGRP负载分担
EIGRP可以通过多条拥有不同度量值的路由来分发流量,这种做法称为不等价负载分担。EIGRP执行负载分担的程度可以通过variance参数进行设置。通过设置variance值,EIGRP可以将多条拥有不同度量的无环路由添加到本地路由表中。EIGRP总是会把后继路由添加到本地路由表中。其余的可行后继是本地路由表中的候选路由。其他的EIGRP条目必须满足两个条件才能被添加到本地路由表中。
路由必须无环。当路由是可行后继路由,其报告距离小于后继路由的可行距离时,即满足这一条件。
路由的度量必须低于最优路由(后继路由)度量值与路由器上配置的variance值,两者的乘积。
variance命令的默认值为1,表示路由器只执行等价负载分担;只有度量值相同的后继路由才会添加到本地路由表中。variance命令并不限制最大路径的数量;它是定义EIGRP负载分担可以接受的度量值范围的倍数。如果variance被设置为2,那么所有通过EIGRP学到的、度量小于两倍后继度量的路由都会被添加到本地路由表中。EIGRP variance命令只有一个参数,即倍数,这是负载分担的度量值,取值为1~128,默认为1,表示执行等价负载分担。
注释
EIGRP本身并不会在多条路由之间进行负载分担;它只会把路由添加到本地路由表中。而本地路由表则可以让交换硬件或软件在多条路径之间执行负载分担。
在例2-68中,管理员在HQ上修改了variance乘数,使EIGRP进行非等价负载分担。
例2-68 在HQ上配置variance参数
HQ(config)# router eigrp 1
HQ(config-router)# variance 6
通过串行链路的路径开销为2297856,而最优路径的开销为409600。所以,如果希望将通过串行链路的路径包含在路由表中,至少需要将variance值设置为6或更大。当variance被设置为6或更大时,通过串行链路的路径开销(2297856)就会小于最优路径开销乘以variance乘数的值。
例2-69所示为HQ路由表中路由的变化。
例2-69 在HQ上验证variance参数
HQ# show ip route
Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2
i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
ia - IS-IS inter area, * - candidate default, U - per-user static route
o - ODR, P - periodic downloaded static route, H - NHRP, l - LISP
+ - replicated route, % - next hop override
Gateway of last resort is not set
172.16.0.0/16 is variably subnetted, 6 subnets, 2 masks
C 172.16.1.0/30 is directly connected, Ethernet0/0
L 172.16.1.1/32 is directly connected, Ethernet0/0
C 172.16.2.0/30 is directly connected, Ethernet0/1
L 172.16.2.1/32 is directly connected, Ethernet0/1
C 172.16.3.0/30 is directly connected, Serial1/0
L 172.16.3.1/32 is directly connected, Serial1/0
D 192.168.0.0/24 [90/2297856] via 172.16.3.2, 00:02:03, Serial1/0
[90/409600] via 172.16.2.2, 00:02:03, Ethernet0/1
[90/409600] via 172.16.1.2, 00:02:03, Ethernet0/0
配置完variance乘数之后,路由器将去往目的192.168.0.0/24的所有三条路由都添加到了路由表中。
variance值也可以通过查看IP协议设置的方法进行验证,如例2-70所示。
例2-70 验证HQ上的variance设置
HQ# show ip protocols
*** IP Routing is NSF aware ***
Routing Protocol is "eigrp 1"
Outgoing update filter list for all interfaces is not set
Incoming update filter list for all interfaces is not set
Default networks flagged in outgoing updates
Default networks accepted from incoming updates
EIGRP-IPv4 Protocol for AS(1)
Metric weight K1=1, K2=0, K3=1, K4=0, K5=0
NSF-aware route hold timer is 240
Router-ID: 172.16.3.1
Topology : 0 (base)
Active Timer: 3 min
Distance: internal 90 external 170
Maximum path: 4
Maximum hopcount 100
Maximum metric variance 6
Automatic Summarization: disabled
Maximum path: 4
Routing for Networks:
0.0.0.0
Routing Information Sources:
Gateway Distance Last Update
172.16.2.2 90 00:02:21
172.16.3.2 90 00:02:21
172.16.1.2 90 00:02:21
Distance: internal 90 external 170
这条命令输出信息中显示了路由器上当前的variance设置,以及可以用来执行负载分担的最大路径数。管理员可以使用EIGRP配置命令maximum-path修改后面的值。设置为1相当于禁用EIGRP负载分担。