EIGRP

本章介绍如何使用增强型内部网关路由协议 (EIGRP) 配置 ASA,以路由数据、执行身份验证以及重新分发路由信息。

关于 EIGRP

EIGRP 是思科开发的增强版的 IGRP。与 IGRP 和 RIP 不同,EIGRP 不发送定期路由更新。仅在网络拓扑发生更改时才会发送 EIGRP 更新。将 EIGRP 与其他路由协议区分开来的主要功能包括快速收敛、支持可变长度子网掩码、支持部分更新以及支持多个网络层协议。

运行 EIGRP 的路由器会存储所有邻居路由表,以便可以迅速适应备用路由。如果不存在合适的路由,则 EIGRP 会查询其邻居以发现备用路由。这些查询会传播直至找到备用路由为止。对可变长度子网掩码功能的支持允许在网络号边界自动汇总路由。此外,还可以将 EIGRP 配置为在任何接口的任何位边界汇总。EIGRP 不会定期更新。相反,它仅在路由指标发生更改时才发送部分更新。部分更新的传播是自动绑定的,以便仅对需要该信息的路由器进行更新。得益于这两项功能,EIGRP 与 IGRP 相比可显著减少占用的带宽。

邻居发现是 ASA 用于动态获悉直连网络中其他路由器的过程。EIGRP 路由器发出组播 Hello 数据包,通告其在网络中的存在状态。当 ASA 收到来自新邻居的问候数据包时,会将其包含初始化位集的拓扑表发送至邻居。当邻居收到包含初始化位集的拓扑更新时,邻居将其拓扑表发回到 ASA。

Hello 数据包作为组播消息发出。预期不对 Hello 消息作出响应。但对静态定义的邻居除外。如果您使用 neighbor 命令或在 ASDM 中配置呼叫间隔以配置一个邻居,则发送到该邻居的 Hello 消息将作为单播消息发送。路由更新和确认消息作为单播消息发出。

一旦邻居关系建立后,除非网络拓扑发生更改,否则便不会交换路由更新。邻居关系通过 Hello 数据包来维护。从邻居收到的每个 Hello 数据包均包括保持时间。这是 ASA 预期可收到来自该邻居的 Hello 数据包的时间。如果 ASA 在保持时间内未收到由该邻居通告的 Hello 数据包,则 ASA 会将该邻居视为不可用。

EIGRP 协议使用四种关键算法技术,包括邻居发现/恢复、可靠的传输协议 (RTP) 和对于路由计算非常重要的 DUAL。DUAL 将目标的所有路由都保存在拓扑表中,而不只是保存最低成本路由。最低成本路由会插入到路由表中。其他路由则保留在拓扑表中。如果主路由发生故障,可以从可行后继路由中选择另一个路由。后继路由是指用于进行数据包转发的具有到达目标的最低成本路径的邻居路由器。可行性计算可确保路径不是路由环路的一部分。

如果在拓扑表中找不到可行后继路由,则必须重新计算路由。在路由重新计算期间,DUAL 会查询 EIGRP 邻居获取路由,该邻居反过来又会查询其邻居。当路由器没有可用于路由的可行后继路由时,会返回一个无法访问消息。

在路由重新计算期间,DUAL 会将路由标记为活动状态。默认情况下,ASA 等待三分钟接收来自其邻居的响应。如果 ASA 未收到来自邻居的响应,则会将路由标记为陷入主动状态。系统会删除拓扑表中作为可行性后继路由指向无响应邻居的所有路由。



如果没有 GRE 隧道,则 EIGRP 邻居关系就不会通过 IPSec 隧道受到支持。


EIGRPv6

可以像 EIGRP IPv4 一样配置 EIGRP for IPv6。EIGRPv6 仅与 IPv6 对等体通信,并且仅通告 IPv6 路由。EIGRPv6 在许多方面与 EIGRPv4 类似:

  • DUAL 用于具有相同度量的路由计算和选择。

  • 它可扩展到大型网络实施。

  • 维护邻居表、路由表和拓扑表。

  • 提供等价负载均衡和非等价负载均衡。

但是,EIGRPv6 在许多方面与 EIGRPv4 不同,例如:

  • IPv6 中不使用 network 命令; EIGRP 使用链路进行配置。

  • 在配置期间,必须在每个接口上显式启用 EIGRPv6。

Null0 和 EIGRP

默认情况下,EIGRP 会将 Null0 路由作为汇总路由通告给对等体,以防止通告该汇总路由的路由器转发它没有路由的任何数据包。

例如,考虑两个路由器 R1 和 R2。R1 上的三个接口具有以下网络:192.168.0.0/24、192.168.1.0/24 和 192.168.3.0/24。使用汇总路由 192.168.0.0/22 配置 R1 并将其通告给 R2。当 R2 有一个发往 192.168.2.x 的 IP 数据包时,它会将其转发给 R1。R1 会丢弃该数据包,因为它的路由表中没有 192.168.2.x。但是,如果 R1 也连接到 ISP,并且它有一个指向 ISP 的默认路由,则 192.168.2.x 数据包会转发到 ISP。为了防止此转发操作,EIGRP 会生成一个与汇总路由匹配的条目,指向 Null0。因此,当收到发往 192.168.2.x 的数据包时,R1 将丢弃该数据包,而不是使用默认路由。

EIGRP 准则

防火墙模式准则

仅在路由防火墙模式下受支持。不支持透明防火墙模式。

集群准则

对于单个接口模式下的集群,EIGRP 可以使用集群池作为路由器 ID 与集群对等体形成邻居关系。

IPv6 准则

支持 IPv6 路由。

情景准则

  • 由于默认情况下不支持跨共享接口的情景间组播流量交换,因此 EIGRP 实例不能跨共享接口相互建立邻接关系。但是,您可以使用 EIGRP 进程下 EIGRP 进程配置中的静态邻居配置,在共享接口上建立 EIGRP 邻居关系。

  • 在单独的接口上支持情景间 EIGRP。

重新分配准则

在属于 OSPF 网络的设备上配置 EIGRP 时,请确保将 OSPF 路由器配置为标记路由(EIGRP 不支持路由标记)。

将 EIGRP 重新分发到 OSPF 并将 OSPF 重新分发到 EIGRP 时,如果其中一个链路、接口中断,甚至当路由发起方关闭时,就会发生路由环路。为了防止将路由从一个域重新分发回同一域,路由器可以在重新分发时标记属于某个域的路由,并且可以根据相同的标记在远程路由器上过滤这些路由。由于这些路由不会安装到路由表中,因此它们不会重新分发到同一域中。

其他准则

  • 最多支持一个 EIGRP 进程。

  • 每当应用配置更改时,都会发生 EIGRP 邻接摆动,这会导致修改邻居发送或接收的路由信息(尤其是在分发列表、偏移列表中)和更改汇总。路由器同步后,EIGRP 会在邻居之间重新建立邻接关系。断开并重新建立邻接关系后,系统将清除邻居之间的所有已获知路由,并使用新的分发列表重新执行邻居之间的完整同步。

  • 对 EIGRP 邻居的最大数量没有限制。但是,为了防止不必要的 EIGRP 摆动,建议您将数量限制为每设备 500 个。

配置 EIGRP

本节介绍如何在系统中启用 EIGRP 进程。启用 EIGRP 后,请参阅以下各节了解如何在系统中自定义 EIGRP 进程。

启用 EIGRP

只能在 ASA 中启用一个 EIGRP 路由进程。

过程


步骤 1

创建 EIGRP 路由进程,并进入此 EIGRP 进程的路由器配置模式:

router eigrp as-num

示例:


ciscoasa(config)# router eigrp 2

要启用 EIGRP IPv6 路由进程,请输入以下命令:

as-num 参数为 EIGRP 路由进程的自主系统编号。

步骤 2

配置参与 EIGRP 路由的接口和网络:

network ip-addr [mask]

示例:


ciscoasa(config)# router eigrp 2
ciscoasa(config-router)# network 10.0.0.0 255.0.0.0

可以使用此命令配置一个或多个 network 语句。

ASA 将通告位于已定义网络范围内的直连和静态网络。此外,只有 IP 地址在已定义网络范围内的接口才可参与 EIGRP 路由进程。

如果不希望一个接口参与 EIGRP 路由,但是该接口已连接到希望通告的网络,请参阅为 EIGRP 配置接口


启用 EIGRP 末节路由

您可以启用并将 ASA 配置为 EIGRP 末节路由器。末节路由可减小 ASA 上的内存和处理要求。作为末节路由器,ASA 不需要维护完整的 EIGRP 路由表,因为它会将所有非本地流量转发到分发路由器。通常情况下,除了发送末节路由器的默认路由以外,分布路由器不需要发送任何其他信息。

只有指定的路由会从末节路由器传播到分布路由器。作为末节路由器,ASA 可使用消息“inaccessible”响应对汇总、连接的路由、重新分发的静态路由、外部路由和内部路由的所有查询。将 ASA 配置为末节时,它会向所有邻接路由器发送一个特殊的对等信息数据包以作为末节路由器报告其状态。收到通知其末节状态数据包的任何邻居都不会查询末节路由器是否存在任何路由,且具有末节对等体的路由器也不会查询该对等体。末节路由器依赖于分布路由器将正确的更新发送到所有对等体。

过程


步骤 1

创建 EIGRP 路由进程,并进入此 EIGRP 进程的路由器配置模式:

router eigrp as-num

示例:


ciscoasa(config)# router eigrp 2

as-num 参数为 EIGRP 路由进程的自主系统编号。

步骤 2

配置参与 EIGRP 路由的接口和网络:

network ip-addr [mask]

示例:


ciscoasa(config)# router eigrp 2
ciscoasa(config-router)# network 10.0.0.0 255.0.0.0

可以使用此命令配置一个或多个 network 语句。

ASA 将通告位于已定义网络范围内的直连和静态网络。此外,只有 IP 地址在已定义网络范围内的接口才可参与 EIGRP 路由进程。

如果不希望一个接口参与 EIGRP 路由,但是该接口已连接到希望通告的网络,请参阅配置被动接口一节。

步骤 3

配置末节路由进程:

eigrp stub {receive-only | [connected ] [redistributed ] [static ] [summary ]}

示例:


ciscoasa(config)# router eigrp 2
ciscoasa(config-router)# network 10.0.0.0 255.0.0.0
ciscoasa(config-router)# eigrp stub {receive-only | [connected] [redistributed] [static] [summary]}

必须指定哪些网络由末节路由进程向分布路由器通告。静态网络和已连接网络不会自动重新分发到末节路由进程。

 

末节路由进程不维护完整的拓扑表。末节路由至少需要分布路由器的一个默认路由,以做出路由决策。


自定义 EIGRP

本节介绍如何自定义 EIGRP 路由。

为 EIGRP 路由进程定义网络

通过网络表,可指定 EIGRP 路由进程所使用的网络。对于参与 EIGRP 路由的接口,它必须位于网络条目定义的地址范围内。对于要通告的直连网络和静态网络,它们也必须位于网络条目的范围内。

网络表显示为 EIGRP 路由进程配置的网络。表的每一行显示为指定的 EIGRP 路由进程配置的网络地址和关联掩码。

过程


步骤 1

创建 EIGRP 路由进程,并进入此 EIGRP 进程的路由器配置模式:

router eigrp as-num

示例:


ciscoasa(config)# router eigrp 2

as-num 参数为 EIGRP 路由进程的自主系统编号。

步骤 2

配置参与 EIGRP 路由的接口和网络:

network ip-addr [mask]

示例:


ciscoasa(config)# router eigrp 2
ciscoasa(config-router)# network 10.0.0.0 255.0.0.0

可以使用此命令配置一个或多个 network 语句。

ASA 将通告位于已定义网络范围内的直连和静态网络。此外,只有 IP 地址在已定义网络范围内的接口才可参与 EIGRP 路由进程。

如果不希望一个接口参与 EIGRP 路由,但是该接口已连接到希望通告的网络,请参阅配置被动接口


为 EIGRP 配置接口

如果不希望一个接口参与 EIGRP 路由,但是该接口已连接到您希望通告的网络,您可以配置 network 中包含该接口所连接网络的命令,并使用 passive-interface 命令阻止该接口发送或接收 EIGRP 更新。

过程


步骤 1

创建 EIGRP 路由进程,并进入此 EIGRP 进程的路由器配置模式:

router eigrp as-num

示例:


ciscoasa(config)# router eigrp 2

要启用 EIGRP IPv6 路由进程,请输入以下命令:

ipv6 router eigrp as-num

示例:


ciscoasa(config)# ipv6 router eigrp 2

as-num 参数为 EIGRP 路由进程的自主系统编号。

步骤 2

配置参与 EIGRP 路由的接口和网络:

network ip-addr [mask]

示例:


ciscoasa(config)# router eigrp 2
ciscoasa(config-router)# network 10.0.0.0 255.0.0.0

可以使用此命令配置一个或多个 network 语句。但是,在 EIGRP IPv6 中不使用 network 命令。

ASA 将通告位于已定义网络范围内的直连和静态网络。此外,只有 IP 地址在已定义网络范围内的接口才可参与 EIGRP 路由进程。

如果不希望一个接口参与 EIGRP 路由,但是该接口已连接到希望通告的网络,请参阅为 EIGRP 路由进程定义网络

步骤 3

控制默认候选路由信息的发送或接收:

no default-information {in | out | WORD}

示例:


ciscoasa(config)# router eigrp 2
ciscoasa(config-router)# network 10.0.0.0 255.0.0.0
ciscoasa(config-router)# no default-information {in | out | WORD}

输入 no default-information in 命令会导致在收到的路由中阻止候选默认路由位。

输入 no default-information out 命令会禁用已通告路由中默认路由位的设置。

有关详细信息,请参阅配置 EIGRP 中的默认信息

步骤 4

启用 EIGRP 数据包的 MD5 身份认证:

authentication mode eigrp as-num md5

示例:


ciscoasa(config)# authentication mode eigrp 2 md5

as-num 参数是在 ASA 中配置的 EIGRP 路由进程的自治系统编号。如果 EIGRP 未启用或者如果输入错误编号,则 ASA 会返回以下错误消息:


% Asystem(100) specified does not exist

有关详细信息,请参阅 在接口上启用 EIGRP 身份验证

步骤 5

设置延迟值:

delay

示例:


ciscoasa(config-if)# delay 200

输入的 value 参数以每 10 毫秒为单位。要设置延迟 2000 微秒,请输入 200 作为 value 的值。

要查看分配至接口的延迟值,请使用 show interface 命令。

有关详细信息,请参阅更改接口延迟值

步骤 6

更改呼叫间隔:

hello-interval eigrp as-num seconds

示例:


ciscoasa(config)# hello-interval eigrp 2 60

有关详细信息,请参阅自定义 EIGRP 呼叫间隔和保持时间

步骤 7

更改保持时间:

hold-time eigrp as-num seconds

示例:


ciscoasa(config)# hold-time eigrp 2 60

有关详细信息,请参阅自定义 EIGRP 呼叫间隔和保持时间


配置被动接口

可以将一个或多个接口配置为被动接口。在 EIGRP 中,被动接口既不发送也不接收路由更新。

过程


步骤 1

创建 EIGRP 路由进程,并进入此 EIGRP 进程的路由器配置模式:

router eigrp as-num

示例:


ciscoasa(config)# router eigrp 2

as-num 参数为 EIGRP 路由进程的自主系统编号。

步骤 2

配置参与 EIGRP 路由的接口和网络。可以使用此命令配置一个或多个 network 语句。

network ip-addr [mask]

示例:


ciscoasa(config)# router eigrp 2
ciscoasa(config-router)# network 10.0.0.0 255.0.0.0

ASA 将通告位于已定义网络范围内的直连和静态网络。此外,只有 IP 地址在已定义网络范围内的接口才可参与 EIGRP 路由进程。

如果不希望一个接口参与 EIGRP 路由,但是该接口已连接到希望通告的网络,请参阅为 EIGRP 路由进程定义网络

步骤 3

阻止接口发送或接收 EIGRP 路由消息。

passive-interface {default | if-name}

示例:


ciscoasa(config)# router eigrp 2
ciscoasa(config-router)# network 10.0.0.0 255.0.0.0
ciscoasa(config-router)# passive-interface {default}

使用 default 关键字将会在所有接口上禁用 EIGRP 路由更新。按照 nameif 命令的定义指定接口名称将会在指定接口上禁用 EIGRP 路由更新。可以在 EIGRP 路由器配置中使用多个 passive-interface 命令。


在接口上配置汇总汇聚地址

可以逐个接口配置汇总地址。如果要创建不发生在网络编号编辑的汇总地址,或者要在禁用了自动路由汇总的 ASA 上使用汇总地址,则需要手动定义汇总地址。如果路由表中存在任何更具体的路由,则 EIGRP 将使用与所有更具体路由的最小值相等的指标从接口通告汇总地址。

过程


步骤 1

针对正在更改 EIGRP 所使用的延迟值的接口,进入接口配置模式:

interface phy_if

示例:


ciscoasa(config)# interface inside

步骤 2

创建汇总地址:

summary-address eigrp as-num address mask [distance ]

示例:


ciscoasa(config-if)# summary-address eigrp 2 address mask [20]

要为 EIGRP IPv6 创建汇总地址,请执行以下操作:

ipv6 summary-address eigrp as-num address mask [distance ]

示例:

ciscoasa(config-if)# int gigabitEthernet 0/0
ciscoasa(config-if)# ipv6 summary-address eigrp 1 4001::1/64 ?
interface mode commands/options:
  <1-255>  Administrative distance

默认情况下,所定义的 EIGRP 汇总地址的管理距离为 5。可以通过在 summary-address 命令中指定可选的 distance 参数来更改此值。


更改接口延迟值

接口延迟值用于 EIGRP 距离计算。可以逐个接口修改该值。

过程


步骤 1

针对正在更改 EIGRP 所使用的延迟值的接口,进入接口配置模式:

interface phy_if

示例:


ciscoasa(config)# interface inside

步骤 2

设置延迟值:

delay

示例:


ciscoasa(config-if)# delay 200

输入的 value 参数以每 10 毫秒为单位。要设置 2000 微秒的延迟,可对 value 输入 200。

 

要查看分配至接口的延迟值,请使用 show interface 命令。


在接口上启用 EIGRP 身份验证

EIGRP 路由身份验证提供对来自 EIGRP 路由协议的路由更新的 MD5 身份验证。每个 EIGRP 数据包中的 MD5 密钥摘要可防止从未批准的来源引入未经授权或虚假的路由消息。

系统会逐个接口配置 EIGRP 路由身份验证。必须使用相同的身份验证模式和密钥来配置接口上为 EIGRP 消息身份验证配置的所有 EIGRP 邻居,才能建立邻接关系。



必须先启用 EIGRP,然后才能启用 EIGRP 路由身份验证。


过程


步骤 1

创建 EIGRP 路由进程,并进入此 EIGRP 进程的路由器配置模式:

router eigrp as-num

示例:


ciscoasa(config)# router eigrp 2

as-num 参数是 EIGRP 路由进程的自治系统编号。

步骤 2

配置参与 EIGRP 路由的接口和网络:

network ip-addr [mask]

示例:


ciscoasa(config)# router eigrp 2
ciscoasa(config-router)# network 10.0.0.0 255.0.0.0

  • 可以使用此命令配置一个或多个 network 语句。

  • ASA 将通告位于已定义网络范围内的直连和静态网络。此外,只有 IP 地址在已定义网络范围内的接口才可参与 EIGRP 路由进程。

  • 如果不希望一个接口参与 EIGRP 路由,但是该接口已连接到希望通告的网络,请参阅配置 EIGRP

步骤 3

针对正在配置 EIGRP 消息身份验证的接口,进入接口配置模式:

interface phy_if

示例:


ciscoasa(config)# interface inside

步骤 4

启用 EIGRP 数据包的 MD5 身份认证:

authentication mode eigrp as-num md5

示例:


ciscoasa(config)# authentication mode eigrp 2 md5

as-num 参数是在 ASA 中配置的 EIGRP 路由进程的自治系统编号。如果 EIGRP 未启用或者如果输入错误编号,则 ASA 会返回以下错误消息:


% Asystem(100) specified does not exist

步骤 5

配置 MD5 算法所使用的密钥:

authentication key eigrp as-num key key-id key-id

示例:


ciscoasa(config)# authentication key eigrp 2 cisco key-id 200

  • as-num 参数是在 ASA 中配置的 EIGRP 路由进程的自治系统编号。如果 EIGRP 未启用或者如果输入错误编号,则 ASA 会返回以下错误消息:

    
    % Asystem(100) specified does not exist%
    
    
  • key 参数最多可包含 16 个字符,包括字母、数字和特殊字符。在 key 参数中不允许使用空格。

  • key-id 参数是范围可从 0 到 255 的数字。


定义 EIGRP 邻居

EIGRP Hello 数据包以组播数据包的形式发送。如果 EIGRP 邻居位于整个非广播网络(例如隧道)内,则必须手动定义该邻居。当手动定义 EIGRP 邻居时,Hello 数据包作为单播消息发送至该邻居。

过程


步骤 1

创建 EIGRP 路由进程,并进入此 EIGRP 进程的路由器配置模式:

router eigrp as-num

示例:


ciscoasa(config)# router eigrp 2

as-num 参数为 EIGRP 路由进程的自主系统编号。

步骤 2

配置参与 EIGRP 路由的接口和网络:

network ip-addr [mask]

示例:


ciscoasa(config)# router eigrp 2
ciscoasa(config-router)# network 10.0.0.0 255.0.0.0

步骤 3

定义静态邻居:

neighbor ip-addr interface if_name

示例:


ciscoasa(config)# router eigrp 2
ciscoasa(config-router)# neighbor 10.0.0.0 interface interface1

示例:

对于 EIGRP IPv6

ciscoasa(config)# router eigrp 2
ciscoasa(config-router)# neighbor 2001:DB8:0:ABCD::1 interface interface1

ip-addr 参数是邻居的 IP 地址。

if-name 参数是按照 nameif 命令指定的接口名称,邻居通过该名称可用。可以为 EIGRP 路由进程定义多个邻居。

 

您必须配置参与 EIGRP 路由的接口网络,才能使邻居关系配置生效。


将路由重新分发到 EIGRP 中

您可以将 RIP 和 OSPF 发现的路由重新分布到 EIGRP 路由过程中。您还可以将静态路由和已连接路由重新分布到 EIGRP 路由过程中。如果已连接路由位于 EIGRP 配置中的 network 语句范围内,则无需将其重新分布。



仅适用于 RIP:开始此程序之前,必须创建路由映射,以进一步定义将指定路由协议中的哪些路由重新分发到 RIP 路由进程。


过程


步骤 1

创建 EIGRP 路由进程,并进入此 EIGRP 进程的路由器配置模式:

router eigrp as-num

示例:


ciscoasa(config)# router eigrp 2

as-num 参数为 EIGRP 路由进程的自主系统编号。

步骤 2

(可选)指定应该应用于已重新分发到 EIGRP 路由进程的路由的默认指标:

default-metric bandwidth delay reliability loading mtu

示例:


ciscoasa(config)# router eigrp 2
ciscoasa(config-router)# default-metric bandwidth delay reliability loading mtu

如果未在 EIGRP 路由器配置中指定默认指标,则必须在每个 redistribute 命令中指定指标值。如果在 redistribute 命令中指定 EIGRP 指标且在 EIGRP 路由器配置中有 default-metric 命令,则使用 redistribute 命令中的指标。

步骤 3

将已连接路由重新分发到 EIGRP 路由进程。

redistribute connected [metric bandwidth delay reliability loading mtu] [route-map map_name]

示例:


ciscoasa(config-router)# redistribute connected [metric bandwidth delay reliability loading mtu] [route-map map_name]

如果在 EIGRP 路由器配置中没有 default-metric 命令,则必须在 redistribute 命令中指定 EIGRP 指标值。

步骤 4

将静态路由重新分发到 EIGRP 路由进程:

redistribute static [route-map map_name]

示例:


ciscoasa(config-router)# redistribute static [route-map map_name]

此命令将把所有静态路由传递给 EIGRP。要重新分配选择性静态路由,请确保使用静态路由创建访问列表,然后将其包含在路由映射表中:

示例:


ciscoasa(config)# ip access-list extended R1_Loopback
ciscoasa(config-ext-nacl)#permit ip host 1.1.1.1 any
ciscoasa(config-ext-nacl)#exit

ciscoasa(config)#route-map Permit_to_Distribute
ciscoasa(config-route-map)#match ip address R1_Loopback
ciscoasa(config-route-map)#exit

在创建路由映射后,将其包含在 redistribute 命令中,如下所示:

示例:


ciscoasa(config)#router eigrp 2
ciscoasa(config-router)#redistribute static subnets route-map Permit_to_Distribute

步骤 5

将路由从 OSPF 路由进程重新分发到 EIGRP 路由进程:

redistribute ospf pid [match {internal | external [1 | 2] | nssa-external [1 | 2]}] [metric 带宽延迟可靠性负载 mtu] [route-map map_name]

示例:


ciscoasa(config-router): redistribute ospf pid [match {internal | external [1 | 2] | 
nssa-external [1 | 2]}] [metric bandwidth delay reliability loading mtu] [route-map map_name]

步骤 6

将路由从 RIP 路由进程重新分发到 EIGRP 路由进程:

redistribute rip [metric 带宽延迟可靠性负载 mtu] [route-map map_name]

示例:


ciscoasa(config-router): redistribute rip [metric bandwidth delay 
reliability load mtu] [route-map map_name]


在 EIGRP 中过滤网络



开始此过程之前,必须创建标准 ACL,以定义要通告的路由。也就是说,创建一个标准 ACL,以定义要从发送或接收更新中过滤的路由。


过程


步骤 1

创建 EIGRP 路由进程,并进入此 EIGRP 进程的路由器配置模式:

router eigrp as-num

示例:


ciscoasa(config)# router eigrp 2

as-num 参数为 EIGRP 路由进程的自主系统编号。

步骤 2

配置参与 EIGRP 路由的接口和网络:

ciscoasa(config-router)# network ip-addr [mask]

示例:


ciscoasa(config)# router eigrp 2
ciscoasa(config-router)# network 10.0.0.0 255.0.0.0

可以使用此命令配置一个或多个 network 语句。

ASA 将通告位于已定义网络范围内的直连和静态网络。此外,只有 IP 地址在已定义网络范围内的接口才可参与 EIGRP 路由进程。

如果不希望一个接口参与 EIGRP 路由,但是该接口已连接到希望通告的网络,请参阅为 EIGRP 配置接口

步骤 3

过滤 EIGRP 路由更新中发送的网络:

distribute-list acl out [connected | ospf | rip | static | interface if_name]

示例:


ciscoasa(config)# router eigrp 2
ciscoasa(config-router)# network 10.0.0.0 255.0.0.0
ciscoasa(config-router): distribute-list acl out [connected]

可以指定接口,以将过滤器仅应用于由该特定接口发送的更新。

可以在 EIGRP 路由器配置中输入多个 distribute-list 命令。

步骤 4

过滤 EIGRP 路由更新中接收的网络:

distribute-list acl in [interface if_name]

示例:


ciscoasa(config)# router eigrp 2
ciscoasa(config-router)# network 10.0.0.0 255.0.0.0
ciscoasa(config-router): distribute-list acl in [interface interface1]

可以指定接口,以将过滤器仅应用于由该特定接口接收的更新。


自定义 EIGRP 呼叫间隔和保持时间

ASA 定期发送 Hello 数据包,以发现邻居以及获悉邻居何时变得无法访问或失效。默认情况下,每 5 秒发送一次 Hello 数据包。

问候数据包通告 ASA 保持时间。保持时间向 EIGRP 邻居指示邻居将路由器视为 ASA 可访问的时间长度。如果邻居在通告的保持时间内未收到 Hello 数据包,则将 ASA 视为无法访问。默认情况下,通告的保持时间是 15 秒(呼叫间隔的三倍)。

Hello 时间间隔和通告的保持时间均逐个接口进行配置。我们建议将保持时间至少设置为呼叫间隔的三倍。

过程


步骤 1

进入输入接口配置模式(针对正在配置呼叫间隔或通告保持时间的接口):

interface phy_if

示例:


ciscoasa(config)# interface inside

步骤 2

更改呼叫间隔:

hello-interval eigrp as-num seconds

示例:


ciscoasa(config)# hello-interval eigrp 2 60

要更改 EIGRP IPv6 的 Hello 间隔,请执行以下操作:

ipv6 hello-interval eigrp as-num seconds

示例:


ciscoasa(config)# ipv6 hello-interval eigrp 2 60

步骤 3

更改保持时间:

hold-time eigrp as-num seconds

示例:


ciscoasa(config)# hold-time eigrp 2 60

要更改 EIGRP IPv6 的保持时间,请执行以下操作:

ipv6 hold-time eigrp as-num seconds

示例:


ciscoasa(config)# ipv6 hold-time eigrp 2 60


禁用自动路由汇总

默认情况下已启用自动路由汇总。EIGRP 路由进程在网络号边界上汇总。如果存在非连续网络,这可能会引起路由问题。

例如,如果路由器同时连接到 192.168.1.0、192.168.2.0 和 192.168.3.0 网络,且这些网络全部参与 EIGRP,则 EIGRP 路由进程会为这些路由创建汇总地址 192.168.0.0。如果另一个路由器添加到网络 192.168.10.0 和 192.168.11.0,且这些网络均参与 EIGRP,则它们也会汇总为 192.168.0.0。为防止可能出现的将流量路由到错误位置,应在创建冲突性汇总地址的路由器上禁用自动路由汇总。

过程


步骤 1

创建 EIGRP 路由进程,并进入此 EIGRP 进程的路由器配置模式:

router eigrp as-num

示例:


ciscoasa(config)# router eigrp 2

as-num 参数为 EIGRP 路由进程的自主系统编号。

步骤 2

禁用自动路由汇总:

no auto-summary

示例:


ciscoasa(config-router)# no auto-summary

自动汇总地址的默认管理距离为 5。


配置 EIGRP 中的默认信息

可以控制 EIGRP 更新中默认路由信息的发送和接收。默认情况下,将发送并接受默认路由。将 ASA 配置为禁止接收默认信息会导致已接收路由中的备选默认路由位被阻止。将 ASA 配置为禁止发送默认信息会禁用已通告路由中的默认路由位设置。

过程


步骤 1

创建 EIGRP 路由进程,并进入此 EIGRP 进程的路由器配置模式:

router eigrp as-num

示例:


ciscoasa(config)# router eigrp 2

as-num 参数为 EIGRP 路由进程的自主系统编号。

步骤 2

配置参与 EIGRP 路由的接口和网络:

network ip-addr [mask]

示例:


ciscoasa(config)# router eigrp 2
ciscoasa(config-router)# network 10.0.0.0 255.0.0.0

可以使用此命令配置一个或多个 network 语句。

ASA 将通告位于已定义网络范围内的直连和静态网络。此外,只有 IP 地址在已定义网络范围内的接口才可参与 EIGRP 路由进程。

如果不希望一个接口参与 EIGRP 路由,但是该接口已连接到希望通告的网络,请参阅为 EIGRP 配置接口

步骤 3

控制默认候选路由信息的发送或接收:

no default-information {in | out | WORD}

示例:


ciscoasa(config)# router eigrp 2
ciscoasa(config-router)# network 10.0.0.0 255.0.0.0
ciscoasa(config-router)# no default-information {in | out | WORD}

 

输入 no default-information in 命令会导致在收到的路由中阻止候选默认路由位。输入 no default-information out 命令会禁用已通告路由中默认路由位的设置。


禁用 EIGRP 水平分割

水平分割用于控制 EIGRP 更新和查询数据包的发送。在接口上启用水平分割时,不会为以此接口为下一跳的目标发送更新和查询数据包。以这种方式控制更新和查询数据包可降低路由环路的可能性。

默认情况下,所有接口上均启用水平分割。

水平分割可阻止路由器通告的路由信息从产生该信息的所有接口传出。此行为通常可优化多个路由设备之间的通信,尤其是在链路中断时。但是,使用非广播网络时,可能出现此行为不如人意的情况。对于这些情况,包括配置了 EIGRP 的网络,可能要禁用水平分割。

如果在某个接口上禁用水平分割,则必须同时在该接口上的所有路由器和接入服务器禁用水平分割。

要禁用 EIGRP 水平分割,请执行以下步骤:

过程


步骤 1

针对正在更改 EIGRP 所使用的延迟值的接口,进入接口配置模式:

interface phy_if

示例:


ciscoasa(config)# interface phy_if

步骤 2

禁用水平分割:

no split-horizon eigrp as-number

示例:


ciscoasa(config-if)# no split-horizon eigrp 2

要为 EIGRP IPv6 禁用水平分割,请执行以下操作:

no ipv6 split-horizon eigrp as-number

示例:


ciscoasa(config-if)# no ipv6 split-horizon eigrp 2


重新启动 EIGRP 进程

您可以重新启动 EIGRP 进程,也可以清除重分发计数器或清除计数器。

过程


重新启动 EIGRP 进程,或者清除重分发计数器或清除计数器:

clear eigrp pid {1-65535 | neighbors | topology | events)}

示例:


ciscoasa(config)# clear eigrp pid 10 neighbors


配置 EIGRPv6 进程

本节介绍如何在系统中启用和配置 EIGRP IPv6 进程。

启用 EIGRPv6

只能在 ASA 中启用一个 EIGRPv6 路由进程。

过程


创建 EIGRP 路由进程,并进入此 EIGRP IPv6 进程的路由器配置模式:

ipv6 router eigrp as-num

示例:

ciscoasa(config)# ipv6 router eigrp 2

as-num 参数是 EIGRP 路由进程的自治系统编号。


EIGRPv6 中的过滤器规则



开始此过程之前,必须创建标准 ACL,以定义要通告的路由。也就是说,创建一个标准 ACL,以定义要从发送或接收更新中过滤的路由。


过程


步骤 1

创建 EIGRP 路由进程,并进入此 EIGRP 进程的路由器配置模式:

ipv6 router eigrp as-num

示例:


ciscoasa(config)# ipv6 router eigrp 2

as-num 参数是 EIGRP 路由进程的自治系统编号。

步骤 2

将前缀列表应用于从接口通告的 IPv6 路由更新的 EIGRP:

distribute-list prefix-list name out interface if_name

示例:


ciscoasa(config)# ipv6 router eigrp 2
ciscoasa(config-router)# distribute-list acl out interface interface2

可以在 EIGRPv6 路由器配置中输入多个 distribute-list 命令。

步骤 3

将前缀列表应用于 EIGRP 以获取在接口上接收的 IPv6 路由更新:

distribute-list prefix-list name in [interface if_name]

示例:


ciscoasa(config)# ipv6 router eigrp 2
ciscoasa(config-router)# distribute-list acl in interface interface1


为 EIGRPv6 配置接口

如果不希望一个接口参与 EIGRP 路由,但是该接口已连接到您希望通告的网络,您可以 配置其中包含该接口所连接网络的 passive-interface 命令, 阻止该接口发送或接收 EIGRP 更新。

过程


步骤 1

创建 EIGRP 路由进程,并进入此 EIGRP IPv6 进程的路由器配置模式:

ipv6 router eigrp as-num

示例:


ciscoasa(config)# ipv6 router eigrp 2

as-num 参数是 EIGRP 路由进程的自治系统编号。

步骤 2

控制默认候选路由信息的发送或接收:

no default-information {in | out | WORD}

示例:


ciscoasa(config)# ipv6 router eigrp 2
ciscoasa(config-router)# network 10.0.0.0 255.0.0.0
ciscoasa(config-router)# no default-information {in | out | WORD}

输入 no default-information in 命令会导致在收到的路由中阻止候选默认路由位。

输入 no default-information out 命令会禁用已通告路由中默认路由位的设置。

有关详细信息,请参阅配置 EIGRP 中的默认信息

步骤 3

更改呼叫间隔:

ipv6 hello-interval eigrp as-num seconds

示例:


ciscoasa(config-if)# int gigabitEthernet 0/0
ciscoasa(config-if)# ipv6 hello-interval eigrp 2 60 

有关详细信息,请参阅自定义 EIGRP 呼叫间隔和保持时间

步骤 4

更改保持时间:

ipv6 hold-time eigrp as-num seconds

示例:


ciscoasa(config-if)# int gigabitEthernet 0/0
ciscoasa(config-if)# ipv6 hold-time eigrp 2 60 

有关详细信息,请参阅自定义 EIGRP 呼叫间隔和保持时间


为 EIGRPv6 配置被动接口

可以将一个或多个接口配置为被动接口。在 EIGRPv6 中,被动接口既不发送也不接收路由更新。

过程

步骤 1

创建 EIGRPv6 路由进程,并进入此 EIGRP IPv6 进程的路由器配置模式:

ipv6 router eigrp as-num

示例:

ciscoasa(config)# ipv6 router eigrp 2

as-num 参数是 EIGRP 路由进程的自治系统编号。

步骤 2

阻止接口发送或接收 EIGRP 路由消息。

passive-interface {default | if-name}

示例:

ciscoasa(config)# ipv6 router eigrp 2
ciscoasa(config-router)# passive-interface {default}

使用 default 关键字将会在所有接口上禁用 EIGRPv6 路由更新。按照 nameif 命令的定义指定接口名称将会在指定接口上禁用 EIGRP 路由更新。可以在 EIGRPv6 路由器配置中使用多个 passive-interface 命令。


将路由重新分发到 EIGRPv6

您可以将发现的 OSPF、BGP、ISIS 路由重新分配到 EIGRP IPv6 路由进程中。您还可以将静态路由和已连接路由重新分布到 EIGRP 路由过程中。

过程


步骤 1

创建 EIGRP 路由进程,并进入此 EIGRP 进程的路由器配置模式:

ipv6 router eigrp as-num

示例:


ciscoasa(config)# ipv6 router eigrp 2

as-num 参数是 EIGRP 路由进程的自治系统编号。

步骤 2

(可选)指定应该应用于已重新分发到 EIGRP 路由进程的路由的默认指标:

default-metric[ bandwidth | delay | reliability | loading | mtu]

示例:


ciscoasa(config)# router eigrp 2
ciscoasa(config-router)# default-metric bandwidth 10 delay 20

如果未在 EIGRP 路由器配置中指定默认指标,则必须在每个 redistribute 命令中指定指标值。如果在 redistribute 命令中指定 EIGRP 指标且在 EIGRP 路由器配置中有 default-metric 命令,则使用 redistribute 命令中的指标。

 

指定 default-metric 时,ASA 中的 show run-config 命令不会显示 default-metric 配置。

步骤 3

将已连接路由重新分发到 EIGRP 路由进程。

redistribute connected [metric bandwidth | delay | reliability | loading | mtu] [route-map map_name]

示例:


ciscoasa(config-router)# redistribute connected [metric bandwidth 100] [route-map map_name]

如果在 EIGRP 路由器配置中没有 default-metric 命令,则必须在 redistribute 命令中指定 EIGRP 指标值。

步骤 4

将静态路由重新分发到 EIGRP 路由进程:

redistribute static [metric bandwidth | delay | reliability | loading | mtu] [route-map map_name]

示例:


ciscoasa(config-router): redistribute static [route-map map_name]

步骤 5

将路由从 OSPF 路由进程重新分发到 EIGRP 路由进程:

redistribute ospf pid [match {internal | external [1 | 2] | nssa-external [1 | 2]}] [metric 带宽延迟可靠性负载 mtu] [route-map map_name]

示例:


ciscoasa(config-router)# redistribute ospf pid [match {internal | external [1 | 2] | 
nssa-external [1 | 2]}][route-map map_name]

步骤 6

将 BGP 路由进程中的路由重新分发到 EIGRP 路由进程:

redistribute bgp [metric bandwidth delay reliability load mtu] [route-map map_name]

示例:


ciscoasa(config-router)# redistribute bgp [route-map map_name]

步骤 7

将 ISIS 路由进程中的路由重新分发到 EIGRP 路由进程:

redistribute isis [level-1 | level-2 | level-1-2][include-connected | metric number | metric-type | tag | route-map map_name]

示例:


ciscoasa(config-router)# redistribute isis [level-1] [metric delay 20 [route-map map_name]]


定义 EIGRPv6 邻居

EIGRP Hello 数据包以组播数据包的形式发送。如果 EIGRP 邻居位于整个非广播网络(例如隧道)内,则必须手动定义该邻居。当手动定义 EIGRP 邻居时,Hello 数据包作为单播消息发送至该邻居。

过程


步骤 1

创建 EIGRP 路由进程,并进入此 EIGRP 进程的路由器配置模式:

ipv6 router eigrp as-num

示例:


ciscoasa(config)# ipv6 router eigrp 2

as-num 参数是 EIGRP 路由进程的自治系统编号。

步骤 2

定义静态邻居:

neighbor ip-addr interface if_name

示例:


ciscoasa(config)# ipv6 router eigrp 2
ciscoasa(config-router)# neighbor 2001:DB8:0:ABCD::1 interface interface1

ip-addr 参数是邻居的 IP 地址。

if-name 参数是按照 nameif 命令指定的接口名称,邻居通过该名称可用。可以为 EIGRP 路由进程定义多个邻居。


EIGRP 监控

可以使用以下命令监控 EIGRP 路由进程。有关命令输出的示例和说明,请参阅命令参考。此外,您可以禁用邻居变更消息和邻居警告消息的日志记录。

如要监控或禁用多个 EIGRP 路由统计信息,请输入以下命令之一

  • router-id

    显示此 EIGRP 进程的 router-id。

  • show eigrp [as-number] events [{start end} | type]

    显示 EIGRP 事件日志。

  • show eigrp [as-number] interfaces [if-name] [detail]

    显示参与 EIGRP 路由的接口。

  • show eigrp [ as-number] neighbors [detail | static] [if-name]

    显示 EIGRP 邻居表。

  • show eigrp [as-number] topology [ip-addr [mask] | active | all-links | pending | summary | zero-successors]

    显示 EIGRP 拓扑表。

  • show eigrp [as-number] traffic

    显示 EIGRP 流量统计信息。

  • show mfib cluster

    显示有关转发条目和接口的 MFIB 信息。

  • show route cluster

    显示有关集群的其他路由同步详细信息。

  • no eigrp log-neighbor-changes

    禁用邻居变更消息的日志记录。在路由器配置模式下为 EIGRP 路由进程输入此命令。

  • no eigrp log-neighbor-warnings

    禁用邻居警告消息的日志记录。

  • show ipv6 eigrp as-number interface interface

    显示 EIGRP IPv6 拓扑表。

  • show ipv6 eigrp [as-number] traffic

    显示 EIGRP IPv6 流量统计信息。

  • show ipv6 eigrp [ as-number] neighbors[ if-name]

    显示 EIGRP IPv6 邻居表。

  • show ipv6 eigrp interfaces[ if-name]

    显示与给定接口相关的邻居信息。

  • show ipv6 eigrp [as-number] topology [ipv6-address [mask] | active | all-links | pending | summary | zero-successors]

    显示 EIGRP IPv6 拓扑表。

  • show ipv6 eigrp [as-number] events [{start - end} | type]

    显示 EIGRP IPV6 事件日志。

  • show ipv6 eigrp timers

    显示已配置的呼叫计时器和保持计时器。

EIGRP 示例

以下示例显示如何通过各种可选进程启用和配置 EIGRP:

过程


步骤 1

要启用 EIGRP,请输入以下命令:


ciscoasa(config)# router eigrp 2
ciscoasa(config-router)# network 10.0.0.0 255.0.0.0

步骤 2

要配置从中发送或接收 EIGRP 路由消息的接口,请输入以下命令:


ciscoasa(config-router)# passive-interface {default}

步骤 3

要定义 EIGRP 邻居,请输入以下命令:


ciscoasa(config-router)# neighbor 10.0.0.0 interface interface1

步骤 4

要配置参与 EIGRP 路由的接口和网络,请输入以下命令:


ciscoasa(config-router)# network 10.0.0.0 255.0.0.0

步骤 5

要更改用于 EIGRP 距离计算的接口延迟值,请输入以下命令:


ciscoasa(config-router)# exit
ciscoasa(config)# interface phy_if
ciscoasa(config-if)# delay 200


EIGRP 的历史记录

表 1. EIGRP 的功能历史记录

功能名称

平台版本

功能信息

EIGRP 支持

7.0(1)

对于使用增强型内部网关路由协议 (EIGRP) 来路由数据、执行身份验证和重新分发及监控路由信息,添加了相应的支持。

引入了以下命令:route eigrp

多情景模式下的动态路由

9.0(1)

在多情景模式下支持 EIGRP 路由。

集群

9.0(1)

对于 EIGRP,在集群环境中支持批量同步、路由同步和第 2 层负载均衡。

引入或修改了以下命令:show route clusterdebug route cluster、show mfib cluster、debug mfib cluster

EIGRP 自动汇总

9.2(1)

默认情况下,现已针对 EIGRP 禁用 Auto-Summary 字段。

EIGRPv6 支持

9.20(1)

对于使用增强型内部网关路由协议 (EIGRP) 来路由数据、执行身份验证和重新分发及监控路由信息,添加了 IPv6 支持。

我们引入了以下命令: ipv6 eigrp ipv6 hello-interval eigrp ipv6 hold-time eigrp ipv6 split-horizon eigrp show ipv6 eigrp interface show ipv6 eigrp traffic show ipv6 eigrp neighbors show ipv6 eigrp interface ipv6 summary-address eigrp show ipv6 eigrp topology show ipv6 eigrp events show ipv6 eigrp timers clear ipv6 eigrp clear ipv6 router eigrp