目录

简介

背景

问题

解决方案

简介

本文描述增强型内部网关路由协议(EIGRP)路由度量操作的问题，其中修改后的度量由于已知EIGRP行为而未生效。

背景

在其中一个智能广域网(IWAN)部署中，网络运营商尝试在分支路由器上使用EIGRP延迟度量来影响流量路径优先顺序，却发现存在此问题。路径偏好受EIGRP配置下的distribute-list和延迟度量的调整的影响。检查图1所示的拓扑。

图1 - IWAN拓扑

在此拓扑中，网络运营商尝试在两个数据中心的所有分支路由器上使用distribute-list执行路由操作，以提供优先于前缀以便将特定链路作为首选路径。例如，DC2中的前缀10.2.0.0/16是分支路由器上首选的路由，依次为：DC2-BR2、DC2-BR1、DC1-BR2、DC1-BR1。换句话说，向分支路由器（例如Spoke-1）发送流量的路径首选项将首先指向DC2-BR2路由器，然后指向DC2-BR1路由器，再指向DC1-BR2，最后指向DC1-BR1路由器。网络操作员还在DC1-SW1节点的DCI接口上配置了EIGRP延迟。

DC1-BR1路由器上用于EIGRP度量控制的示例配置如下所示：

! Configuration from DC1-BR1 router

router eigrp TEST

!

address-family ipv4 unicast autonomous-system 100

!

af-interface default

passive-interface

exit-af-interface

!

af-interface Tunnel100

summary-address 10.0.0.0 255.0.0.0

summary-address 10.2.0.0 255.255.0.0

no passive-interface

no split-horizon

exit-af-interface

!

af-interface GigabitEthernet0/0/1

no passive-interface

exit-af-interface

!

af-interface GigabitEthernet0/0/3

no passive-interface

exit-af-interface

!

topology base

distribute-list route-map set-metric-Gig out GigabitEthernet0/0/1

distribute-list route-map set-metric-tag-all out Tunnel100

exit-af-topology

network 10.1.2.0 0.0.0.255

network 10.1.10.0 0.0.0.3

network 10.1.123.0 0.0.3.255

eigrp router-id 10.1.0.11

exit-address-family

!

route-map set-tag-all deny 10

match tag 102 201 202

!

route-map set-tag-all permit 100

match ip address prefix-list set-spoke-delay-4000

set metric 100000 4000 255 1 1500

set tag 101

!

route-map set-tag-all permit 300

match ip address prefix-list set-spoke-delay-1000

set metric 100000 1000 255 1 1500

set tag 101

!

route-map set-tag-all permit 400

match ip address prefix-list set-spoke-delay-2000

set metric 100000 2000 255 1 1500

set tag 101

!

ip prefix-list set-spoke-delay-4000 seq 100 permit 10.2.0.0/16

. . .

!

Tunnel100是通过INET链路连接到分支路由器的动态多点VPN(DMVPN)隧道。在之前的配置中，前缀10.2.0.0/16的延迟设置为4000。同样，DC2-BR2、DC2-BR1和DC1-BR2节点上的延迟分别设置为1000、2000和3000，用于设置首选顺序。尽管本示例使用DMVPN隧道进行演示，但此问题与接口无关。

问题

在分支路由器上实际出现了问题，其中从DC2分支路由器接收到前缀10.2.0.0/16时，其度量不同，但从DC1分支路由器接收到该前缀时，其度量相同。分支路由器的以下输出显示了以下行为：

Spoke-1# show ip eigrp topology 10.2.0.0/16 | in delay

Total delay is 60000000000 picoseconds  (from DC 2 BR2)

Total delay is 100020000000 picoseconds  (From DC 1 BR1)

Total delay is 70000000000 picoseconds  (From DC 2 BR1)

Total delay is 100020000000 picoseconds  (From DC 1 BR2)

此行为导致未按顺序为从DC1-BR1和DC1-BR2路由器接收的路径指定首选项。

解决方案

问题的主要原因是网络操作员试图将度量设置为比收到的值更低的绝对值（更低的度量）。这可以通过 show ip eigrp events 命令。输出显示，路由映射尝试将度量值控制为低于前缀的实际值。

DC1-BR1# show ip eigrp events

. . .

06:47:11.891 Can't reduce rtmap metric, old/new: metric(2950430720) metric(1972633600)

. . .

请注意，对于任何路由协议，您都不可能降低度量，因为这意味着接口的开销为负。这反过来会破坏环路预防条件，并可能导致网络不一致。可以通过两种不同的方式解决问题：

- 减少路径中接收前缀的延迟值。在前一种情况下，减少DCI接口上的EIGRP延迟值有助于缓解问题。

- 执行度量处理时，请配置一个更高的绝对度量。