目录

简介

先决条件

要求

使用的组件

限制

配置

默认 VRF 到 VRF

VRF 到 VRF

VRF 到默认 VRF

验证

简介

本文档介绍如何在基于 Cisco Nexus NX-OS 的交换机上配置路由泄漏。

先决条件

要求

Cisco 建议您了解以下主题：

- Nexus NX-OS 软件。

- 路由协议，例如增强型内部网关路由协议(EIGRP)、开放最短路径优先(OSPF)、边界网关协议(BGP)等。

使用的组件

本文档中的信息基于 NXOS 版本为 7.3(0)D1(1) 的 Cisco Nexus 7000

本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始（默认）配置。如果您的网络处于活动状态，请确保您了解所有命令的潜在影响。

限制

您必须将路由直接从源VRF泄漏到目标VRF。您不能泄漏当前从另一个VRF泄露的路由。

假设通过Nexus上的不同VRF路由时，无法建立从Nexus到对等IP的BGP会话。

配置

VRF 之间的泄漏在 BGP 进程级别执行。因此，必须先将路由添加到 BGP 进程，具体来说是添加到 BGP 表中。

注意：本文档中可互换使用术语“默认VRF”和“全局路由表”。

默认 VRF 到 VRF

在本例中，Nexus 通过 EIGRP 在其默认 VRF 中收到了两个路由。配置泄漏 VRF BLUE 中的路由。

在本例中，仅泄漏路由 192.168.2.0/24。

全局路由表输出

Nexus# show ip route eigrp

IP Route Table for VRF "default"

'*' denotes best ucast next-hop

'**' denotes best mcast next-hop

'[x/y]' denotes [preference/metric]

'%<string>' in via output denotes VRF <string>

172.16.2.2/32, ubest/mbest: 1/0

*via 10.1.2.2, Eth2/1, [90/130816], 00:00:21, eigrp-1, internal

192.168.2.0/24, ubest/mbest: 1/0

*via 10.1.2.2, Eth2/1, [90/130816], 00:00:21, eigrp-1, internal

Nexus#

注意：在NX-OS中，需要启用全局配置模式中的功能。要启用 BGP，请使用命令 feature bgp。

- 步骤1:重新分配到 BGP.

将存在于默认 VRF 路由表中的路由重新分配到 BGP。

由于路由位于默认 VRF 中，因此 BGP 中的 redistribute 命令位于全局 address-family ipv4 unicast 部分下。

使用redistribute命令的正确参数，这取决于路由在默认VRF中的状态（直连、eigrp、ospf、..）。

注意：如果要泄漏的路由作为源VRF中的BGP路由进行安装，您可以在所有场景中跳过步骤1。在本例中，源 VRF 是默认 VRF（全局路由表）。

重新分配到 BGP

route-map ALL permit 10

!

router bgp 65535

address-family ipv4 unicast

redistribute eigrp 1 route-map ALL

注意：在NX-OS中，路由映射始终需要作为参数来选择性地重新分发路由。

为了匹配任何和所有的路由，创建的空 route-map permit 语句是有效的。

- 第二步：在目的 VRF 中配置 Import VRF default.

在目的 VRF 中配置了 import vrf default 命令。该命令行需要使用 route-map 作为参数，以明确定义要在目的 VRF 中导入的路由（在本例中是名为 BLUE 的 VRF）。

在目的 VRF 中配置 Import VRF default

ip prefix-list NETWORK seq 5 permit 192.168.2.0/24

!

route-map GLOBAL-TO-VRF permit 10

match ip address prefix-list NETWORK

!

vrf context BLUE

address-family ipv4 unicast

import vrf default map GLOBAL-TO-VRF

- 第三步：查看目的 VRF 路由表.

您可以在目的 VRF 中确认，现在可以通过 BGP 看到这些路由。

VRF 中的这些 BGP 路由现在可以在同一 VRF 中运行的任何其他路由协议中重新分配。

查看目的 VRF 路由表

Nexus# show ip route vrf BLUE

IP Route Table for VRF "BLUE"

'*' denotes best ucast next-hop

'**' denotes best mcast next-hop

'[x/y]' denotes [preference/metric]

'%<string>' in via output denotes VRF <string>

192.168.2.0/24, ubest/mbest: 1/0

*via 10.1.2.2%default, Eth2/1, [20/130816], 00:15:00, bgp-65535, external, tag 65535,

Nexus#

VRF 到 VRF

在本例中，Nexus 通过 EIGRP 在其名为 RED 的 VRF 中收到了两个路由。配置泄漏 VRF BLUE 中的路由。

VRF RED 路由表输出

Nexus# show ip route eigrp vrf RED

IP Route Table for VRF "RED"

'*' denotes best ucast next-hop

'**' denotes best mcast next-hop

'[x/y]' denotes [preference/metric]

'%<string>' in via output denotes VRF <string>

172.16.2.2/32, ubest/mbest: 1/0

*via 10.1.2.2, Eth2/1, [90/130816], 00:00:08, eigrp-1, internal

192.168.2.0/24, ubest/mbest: 1/0

*via 10.1.2.2, Eth2/1, [90/130816], 00:00:08, eigrp-1, internal

Nexus#

- 步骤1:重新分配到 BGP.

将存在于 VRF RED 路由表中的路由重新分配到 BGP。

由于路由位于 VRF RED 中，因此 BGP 中的 redistribute 命令位于 VRF RED address-family ipv4 unicast 部分下。

重新分配到 BGP

route-map ALL permit 10

!

router bgp 65535

vrf RED

address-family ipv4 unicast

redistribute eigrp 1 route-map ALL

- 第二步：创建导出和导入路由目标.

要在 VRF 之间泄漏路由，需要使用路由目标。

源 VRF 导出路由目标值。

目标 VRF 导入同一路由目标值。

创建导出和导入路由目标

vrf context RED

address-family ipv4 unicast

route-target export 1:1

!

vrf context BLUE

address-family ipv4 unicast

route-target import 1:1

- 第三步：查看目的 VRF 路由表.

您可以在目的 VRF 中确认，现在可以通过 BGP 看到这些路由。

VRF 中的这些 BGP 路由现在可以在同一 VRF 中运行的任何其他路由协议中重新分配。

查看目的 VRF 路由表

Nexus# show ip route vrf BLUE

IP Route Table for VRF "BLUE"

'*' denotes best ucast next-hop

'**' denotes best mcast next-hop

'[x/y]' denotes [preference/metric]

'%<string>' in via output denotes VRF <string>

172.16.2.2/32, ubest/mbest: 1/0

*via 10.1.2.2%RED, Eth2/1, [20/130816], 00:01:58, bgp-65535, external, tag 65535,

192.168.2.0/24, ubest/mbest: 1/0

*via 10.1.2.2%RED, Eth2/1, [20/130816], 00:01:58, bgp-65535, external, tag 65535,

Nexus#

- 第 4 步（可选）：将路由目标分配给特定路由。

您可以选择在源 VRF 下使用 export map 命令，将路由目标分配给要导出的特定路由。

在 route-map 中使用 set extcommunity rt 参数，以分配路由目标。

在本例中，仅网络192.168.2.0/24与Route-Target 1:1一起导出，该路由后来以VRF BLUE导入。

结果是仅泄漏指定网络。

将路由目标分配给特定路由

ip prefix-list NETWORK seq 5 permit 192.168.2.0/24

!

route-map ADD-RT permit 10

match ip address prefix-list NETWORK

set extcommunity rt 1:1

!

vrf context RED

address-family ipv4 unicast

export map ADD-RT

!

vrf context BLUE

address-family ipv4 unicast

route-target import 1:1

VRF 到默认 VRF

注意：在Nexus 7000和Nexus 7700系列交换机上，NX-OS版本7.3(0)D1(1)引入了此功能，该功能支持使用export vrf default map命令将IP前缀从任何其他VRF导出到全局路由表（默认VRF）

Nexus 通过 EIGRP 在其名为 RED 的 VRF 中收到了两个路由。配置泄漏默认 VRF 中的路由。

在本例中，仅泄漏路由 192.168.2.0/24。

- 步骤1:重新分配到 BGP.

将存在于 VRF RED 路由表中的路由重新分配到 BGP。

由于路由位于 VRF RED 中，因此 BGP 中的 redistribute 命令位于 VRF RED address-family ipv4 unicast 部分下。

重新分配到 BGP

route-map ALL permit 10

!

router bgp 65535

vrf RED

address-family ipv4 unicast

redistribute eigrp 1 route-map ALL

- 第二步：在源 VRF 中配置 Export VRF default.

在源 VRF 中配置了 export vrf default 命令。该命令行需要使用 route-map 作为参数，以明确定义要在默认 VRF 中导出的路由。

在源 VRF 中配置 Export VRF default

ip prefix-list NETWORK seq 5 permit 192.168.2.0/24

!

route-map GLOBAL-TO-VRF permit 10

match ip address prefix-list NETWORK

!

vrf context RED

address-family ipv4 unicast

export vrf default map GLOBAL-TO-VRF

- 第三步：查看默认 VRF 路由表.

您可以在默认 VRF 中确认，现在可以通过 BGP 看到这些路由。

默认 VRF 中的这些 BGP 路由现在可以在同样在默认 VRF 中运行的任何其他路由协议中重新分配。

查看默认 VRF 路由表

Nexus# show ip route

IP Route Table for VRF "default"

'*' denotes best ucast next-hop

'**' denotes best mcast next-hop

'[x/y]' denotes [preference/metric]

'%<string>' in via output denotes VRF <string>

192.168.2.0/24, ubest/mbest: 1/0

*via 10.1.2.2%RED, Eth2/1, [20/130816], 00:08:19, bgp-65535, external, tag 65535,

Nexus#

验证

VRF 路由泄漏过程分为 4 个阶段。可按以下顺序进行验证：

要检查路由表中的路由是否正确，可使用以下命令：

show ip route [vrf <vrf name>]

要检查 BGP 表中的路由是否正确，可使用以下命令：

请注意，第二个命令可以互换使用，以便在 BGP 表中显示 IPv4 单播地址。

show bgp ipv4 unicast [vrf <vrf name>]

show ip bgp [vrf <vrf name>]

最后，可以使用 show forwarding route A.B.C.D/LEN [VRF <vrf name>]，来确认第 3 层 - 在线卡级别编程的路由（硬件编程）

Nexus# show forwarding route 10.1.2.2

slot  1

=======

IPv4 routes for table default/base

'*' denotes recursive route

----------------+----------------------------------------+----------------------+-----------------

Prefix          | Next-hop                               | Interface            | Labels

----------------+----------------------------------------+----------------------+-----------------

10.1.2.0/24       Attached                                 Ethernet2/1

Nexus#