路由映射

本章介绍如何为 ASA 配置和自定义路由映射。

关于路由映射

在将路由重新分发到 OSPF、RIP、EIGRP 或 BGP 路由进程时会使用路由映射。在为 OSPF 路由进程生成默认路由时也会使用路由映射。路由映射定义了允许将来自指定路由协议的哪些路由重新分发到目标路由进程。

路由映射与广为人知的 ACL 具有许多相同功能。以下是两者共有的一些特征:

  • 它们都是单独语句的有序序列,各自具有允许或拒绝结果。ACL 或路由映射的评估包括采用预先确定顺序的列表扫描,以及每条语句匹配条件的评估。一旦找到第一个语句匹配即中止列表扫描,并且会执行与语句匹配相关联的操作。

  • 它们是通用机制。条件匹配和匹配解释由它们的应用方式和使用它们的功能决定。应用于不同功能的相同路由映射可能以不同方式进行解释。

以下是路由映射与 ACL 之间的一些差异:

  • 路由映射比 ACL 更加灵活,可以根据 ACL 无法验证的条件对路由进行验证。例如,路由映射可以验证路由的类型是否为内部路由。

  • 每个 ACL 按照设计约定以隐式拒绝语句结尾。如果在匹配尝试期间到达路由映射的结尾,则结果取决于路由映射的特定应用。应用于重新分发的路由映射与 ACL 的行为方式相同:如果路由与路由映射中的任何子句不匹配,则会拒绝路由重新分发,就如同路由映射的结尾包含拒绝语句一样。

Permit 和 Deny 子句

路由映射可以具有 permit 和 deny 子句。deny 子句可拒绝来自重新分发的路由匹配。您可以使用 ACL 作为路由映射中的匹配标准。由于 ACL 还有 permit 和 deny 子句,因此数据包与 ACL 匹配时会应用以下规则:

  • ACL permit + route map permit:重新分发路由。

  • ACL permit + route map deny:重新分发路由。

  • ACL deny + route map permit or deny:不匹配 route map 子句,并且对下一个 route-map 子句进行评估。

Match 和 Set 子句值

每个路由映射子句均具有两种类型的值:

  • match 值用于选择应将此子句应用于的路由。

  • set 值用于修改将重新分发到目标协议的信息。

对于要重新分发的每个路由,路由器首先评估路由映射中子句的匹配条件。如果匹配条件成功,则按照 permit 或 deny 子句的指示重新分发或拒绝路由,其某些属性可能会通过 set 命令设置的值修改。如果匹配条件失败,则此子句不适用于路由,软件会根据路由映射中下一个子句继续评估路由。路由映射扫描将继续,直到发现匹配路由的子句或达到路由映射的结尾。

如果存在下列条件中的一个,则每个子句中的 match 值或 set 值可能会缺失或多次重复:

  • 如果一个子句中存在多个匹配条目,则对于给定路由而言,所有这些条目必须都符合,该路由才与该子句匹配(也即,为多个 match 命令应用逻辑 AND 算法)。

  • 如果一个 match 条目引用了一个条目中的多个对象,那么其中任何一个对象都应匹配(应用逻辑 OR 算法)。

  • 如果匹配条目不存在,则所有路由都匹配子句。

  • 如果一个 set 条目在 route map permit 子句中不存在,则该路由将被重新分发,而不修改其当前属性。



请勿在 route map deny 子句中配置 set 条目,因为 deny 子句会禁止路由重新分发 - 没有要修改的信息。


没有 match 或 set 条目的 route map 子句需要执行操作。空 permit 子句允许重新分发剩余路由而不进行修改。空 deny 子句不允许重新分发其他路由(如果路由映射在经过完整扫描后,未发现明确的匹配项,此为默认操作)。

路由映射准则

防火墙模式

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

其他准则

路由映射不支持其中包含用户、用户组和完全限定域名对象的 ACL。

定义路由映射

当指定允许将来自指定路由协议的哪些路由重新分发到目标路由进程时,必须定义路由映射。在 ASDM 中,可以通过添加、编辑或删除路由映射名称、序列号或重新分发来定义路由映射。

过程


步骤 1

在 ASDM 中,依次选择配置 > 设备设置 > 路由 > 路由映射

步骤 2

点击添加

系统将显示 Add Route MapEdit Route Map 对话框。

步骤 3

输入路由映射名称和序列号。路由映射名称是分配给特定路由的名称。序列号是在 ASA 中添加或删除路由映射条目的顺序。

 

如果编辑一个现有路由映射,则已填写 Route Map Name 和 Sequence Number 字段。

步骤 4

要拒绝路由匹配重新分发,请点击 Deny。如果在路由映射 deny 子句中使用 ACL,则不会重新分发 ACL 允许的路由。要允许重新分发路由匹配,请点击 Permit。如果在路由映射 permit 子句中使用 ACL,则会重新分发 ACL 允许的路由。

此外,如果在路由映射 permit 或 deny 子句中使用 ACL,并且 ACL 拒绝路由,则无法找到路由映射子句匹配,并将评估下一个路由映射子句。

步骤 5

点击 Match Clause 选项卡以选择应将此子句应用到的路由,并设置以下参数:

  • 选中匹配路由的第一跳接口复选框,以启用或禁用匹配路由的第一跳接口或将任何路由与指定的下一跳接口相匹配。如果指定多个接口,则路由可以匹配任一接口。

    • 在 Interface 字段中输入接口名称,或点击省略号以显示 Browse Interface 对话框。

    • 选择一个或多个接口,点击 Interface,然后点击 OK

  • 在 IPv4 和 IPv6 部分中,执行以下一项或多项操作:

    • 选中 Match Address 复选框以启用或禁用匹配路由或匹配数据包的地址。

    • 选中 Match Next Hop 复选框以启用或禁用匹配路由的下一跳地址。

    • 选中 Match Route Source 复选框以启用或禁用匹配路由的通告源地址。

    • 从下拉列表中选择 Access List to Prefix List 以匹配 IP 地址。

    • 根据先前的选择,点击省略号以显示 Browse Access ListBrowse Prefix List 对话框。

       

      OSPF 不支持前缀列表。

    • 选择所需的 ACL 或前缀列表。

  • 选中匹配路由指标复选框以启用或禁用匹配路由的指标。

    • Metric Value 字段中,键入指标值。可以输入多个以逗号分隔的值。通过此设置可匹配具有指定指标的任何路由。指标值范围在 0 到 4294967295 之间。

  • 选中 Match Route Type 复选框以启用或禁用路由类型匹配。有效路由类型为 External1、External2、Internal、Local、NSSA-External1 和 NSSA-External2。启用后,即可从列表中选择多个路由类型。

步骤 6

点击 Set Clause 选项卡以修改以下信息,该信息将重新分发到目标协议:

  • 选中 Set Metric Clause 复选框以启用或禁用目标路由协议的指标值,并在 Value 字段中键入值。

  • 选中 Set Metric Type 复选框以启用或禁用目标路由协议的指标类型,并从下拉列表中选择指标类型。

  • 自适应接口指标类型- 此选项与基于策略的路由相关。此选项根据接口上收集的度量值设置输出接口,即开销、往返时间 (RTT)、抖动、平均意见得分 (MOS) 和丢失(丢包)。

  • 点击 可用接口 字段并选择应用于路由的接口。出口接口从接口列表中选择。如果接口的成本相同,则这是主用-主用配置,数据包在出口接口上进行负载均衡(轮询)。如果成本不同,则选择成本最低的接口。与开销度量类似,其他值根据度量类型、最小抖动、最小 RTT、最小丢包和最大 MOS 应用。仅当接口处于启用状态时,才会考虑这些接口。

步骤 7

点击 BGP Match Clause 选项卡以选择应将此子句应用到的路由,并设置以下参数:

  • 选中 Match AS path access lists 复选框以启用将 BGP 自治系统路径访问列表与指定的路径访问列表相匹配。如果指定多个路径访问列表,则路由可以匹配任一路径访问列表。

  • 选中 Match Community 复选框以启用将 BGP 社区与指定的社区相匹配。如果指定多个社区,则路由可以匹配任一社区。出站路由映射中将不会通告与至少一个匹配社区不匹配的路由。

    • 选中 Match the specified community exactly 复选框以启用将 BGP 社区与指定的社区完全匹配。

  • 选中 Match Policy list 复选框以配置路由映射,从而评估和处理 BGP 策略。如果指定多个策略列表,则路由可以处理任一策略列表。

步骤 8

点击 BGP Set Clause 选项卡以修改以下信息,该信息将重新分发到 BGP 协议:

  • 选中 Set AS Path 复选框以修改 BGP 路由的自治系统路径。

    • 选中 Prepend AS path 复选框以向 BGP 路由预置任意自治系统路径字符串。通常本地 AS 编号预置多次,从而增加自治系统路径长度。如果指定多个 AS 路径编号,则路径可以预置任一 AS 编号。

    • 选中 Prepend Last AS to the AS Path 复选框以向 AS 路径预置最后一个 AS 编号。为 AS 编号输入 1 到 10 之间的值。

    • 选中 Convert route tag into AS Path 复选框以将路由的标记转换为自治系统路径。

  • 选中设置社区复选框以设置 BGP 社区属性。

    • 点击 Specify Community 以输入社区编号(如果适用)。有效值的范围为 1 到 4294967200、internet、no-advertise 和 no-export。

    • 选中 Add to the existing communities 以将社区添加到已现有的社区。

    • 点击 None 以从用于传递路由映射的前缀删除社区属性。

  • 选中 Set local preference 复选框以便为自治系统路径指定首选项值。

  • 选中 Set weight 复选框以便为路由表指定 BGP 权重。输入 0 到 65535 之间的值。

  • 选中 Set origin 复选框以指定 BGP 源代码。有效值为 Local IGP 和 Incomplete。

  • 选中 Set next hop 复选框以指定实现路由映射的 match 子句的数据包输出地址。

    • 点击 Specify IP address 以输入将数据包输出到的下一跳的 IP 地址。它不需要是相邻路由器。如果指定多个 IP 地址,则数据包可以在任一 IP 地址输出。

    • 点击 Use peer address 以将下一跳设置为 BGP 对等体地址。

步骤 9

点击“确定”。


自定义路由映射

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

定义路由以匹配特定的目标地址

过程


步骤 1

在 ASDM 中,依次选择配置 > 设备设置 > 路由 > 路由映射

步骤 2

点击添加

系统将显示 Add Route Map 对话框。从该对话框中,可以分配或选择路由映射名称、序列号及其重新分发访问(即,允许或拒绝)。路由映射条目按顺序读取。您可以使用序列号标识顺序,否则 ASA 会使用您添加条目的顺序。

步骤 3

点击 Match Clause 选项卡以选择应将此子句应用到的路由,并设置以下参数:

  • 选中匹配路由的第一跳接口复选框,以启用或禁用匹配路由的第一跳接口或将任何路由与指定的下一跳接口相匹配。如果指定多个接口,则路由可以匹配任一接口。

    • Interface 字段中输入接口名称,或点击省略号以显示 Browse Interface 对话框。

    • 选择接口类型(insideoutside),点击 Selected Interface,然后点击 OK

    • 选中 Match IP Address 复选框以启用或禁用匹配路由或匹配数据包的地址。

    • 选中 Match Next Hop 复选框以启用或禁用匹配路由的下一跳地址。

    • 选中 Match Route Source 复选框以启用或禁用匹配路由的通告源地址。

    • 从下拉列表中选择 Access List to Prefix List 以匹配 IP 地址。

    • 根据先前的选择,点击省略号以显示 Browse Access ListBrowse Prefix List 对话框。

       

      OSPF 不支持前缀列表。

    • 选择所需的 ACL 或前缀列表。

  • 选中匹配路由指标复选框以启用或禁用匹配路由的指标。

    • Metric Value 字段中,键入指标值。可以输入多个以逗号分隔的值。通过此设置可匹配具有指定指标的任何路由。指标值范围在 0 到 4294967295 之间。

  • 选中 Match Route Type 复选框以启用或禁用路由类型匹配。有效路由类型为 External1、External2、Internal、Local、NSSA-External1 和 NSSA-External2。启用后,即可从列表中选择多个路由类型。


配置前缀规则



配置前缀规则之前,必须先配置前缀列表。


要配置前缀规则,请执行以下步骤:

过程


步骤 1

选择配置 > 设备设置 > 路由 > IPv4 前缀规则IPv6 前缀规则

步骤 2

点击 Add 并选择“Add Prefix Rule”。

系统将显示添加前缀规则对话框。从该对话框中,可以添加序列号、选择 IP 版本(IPv4 或 IPv6)、指定网络的前缀、其重新分发访问(即,允许或拒绝)及最小和最大前缀长度。

步骤 3

输入可选序列号或接受默认值。

步骤 4

以 IP 地址/掩码长度格式指定前缀数字。

步骤 5

点击 PermitDeny 单选按钮以指示重新分发访问。

步骤 6

输入可选的最小长度最大长度

步骤 7

完成后点击 OK

列表中将显示新前缀规则或修改后的前缀规则。

步骤 8

点击 Apply 保存更改。


配置前缀列表

当前缀列表的多个条目与给定前缀相匹配时,将使用具有最低序列号的条目。为提高效率,可能需要手动为最常用的匹配或拒绝项分配较低的序列号来将其置于列表顶部附近。默认情况下,序列号从 5 开始并以 5 为增量自动生成。



OSPF 不支持前缀列表。


要添加前缀列表,请执行以下步骤:

过程


步骤 1

选择配置 > 设备设置 > 路由 > IPv4 前缀规则IPv6 前缀规则

步骤 2

点击添加 > 添加前缀列表

系统将显示 Add Prefix List 对话框。

步骤 3

输入前缀名称和说明,然后点击 OK


为路由操作配置度量值

要为路由操作配置指标值,请执行以下步骤:

过程


步骤 1

在 ASDM 中,依次选择配置 > 设备设置 > 路由 > 路由映射

步骤 2

点击添加

系统将显示 Add Route MapEdit Route Map 对话框。从该对话框中,可以分配或选择路由映射名称、序列号及其重新分发访问(即,允许或拒绝)。路由映射条目按顺序读取。可使用序列号标识顺序,或者 ASA 可使用添加路由映射条目的顺序。

步骤 3

点击设置子句 (Set Clause) 选项卡以修改以下信息,该信息将重新分发到目标协议:

  • 选中 Set Metric Clause 复选框以启用或禁用目标路由协议的指标值,并在 Value 字段中输入值。

  • 选中 Set Metric Type 复选框以启用或禁用目标路由协议的指标类型,并从下拉列表中选择指标类型。


路由映射示例

以下示例显示如何将跳数等于 1 的路由重新分发到 OSPF。

  1. 在 ASDM 中,依次选择配置 > 设备设置 > 路由 > 路由映射

  2. 点击添加

  3. Route Map Name 字段中输入 1-to-2

  4. Sequence Number 字段中,输入路由序列号。

  5. 点击允许 (Permit) 单选按钮。

    默认情况下,此选项卡位于顶部。

  6. 点击匹配子句 (Match Clause) 选项卡。

  7. 选中 Match Metric of Route 复选框,并键入 1 作为指标值。

  8. 点击设置子句 (Set Clause) 选项卡。

  9. 选中 Set Metric Value 复选框,并键入 5 作为指标值。

  10. 选中 Set Metric-Type 复选框并选择 Type-1

路由映射的历史记录

表 1. 路由映射的功能历史记录

功能名称

平台版本

功能信息

路由映射

7.0(1)

引入了此功能。

引入了以下屏幕:Configuration > Device Setup > Routing > Route Maps。

增强了对静态和动态路由映射的支持

8.0(2)

添加了对动态和静态路由映射的增强支持。

多情景模式下的动态路由

9.0(1)

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

支持 BGP

9.2(1)

引入了此功能。

更新了以下屏幕:Configuration > Device Setup > Routing > Route Maps,增加了 2 个选项卡:BGP match clause 和 BGP set clause。

IPv6 支持前缀规则

9.3.2

引入了此功能。

更新了以下屏幕:

配置 > 设备设置 > 路由 > IPv4 前缀规则IPv6 前缀规则