简介
本文档介绍如何在基于 Cisco Nexus NX-OS 的交换机上配置路由泄漏。
先决条件
要求
Cisco 建议您了解以下主题:
- Nexus NX-OS 软件。
- 增强型内部网关路由协议 (EIGRP)、开放最短路径优先协议 (OSPF)、边界网关协议 (BGP) 等路由协议。
使用的组件
本文档中的信息基于 NXOS 版本为 7.3(0)D1(1) 的 Cisco Nexus 7000
本文档中的输出来自特定实验室环境中的设备。用于本文的所有设备从已清除的配置开始。如果您的网络处于活动状态,请确保您了解所有命令的潜在影响。
限制
注意:当通过 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。
将存在于默认 VRF 路由表中的路由重新分配到 BGP。
由于路由位于默认 VRF 中,因此 BGP 中的 redistribute 命令位于全局 address-family ipv4 unicast 部分下。
为 redistribute 命令使用正确的参数,具体取决于路由在默认 VRF 中的连接方式(直连、EIGRP、OSPF 等)。
注意:如果要泄漏的路由作为 BGP 路由安装在源 VRF 中,您可以在所有场景中跳过步骤 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 作为参数,以有选择地重新分配路由。
为了匹配任何和所有的路由,创建的空 route-map permit 语句是有效的。
- 步骤 2: 在目的 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 中确认,现在可以通过 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# |

将存在于 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 中确认,现在可以通过 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# |

您可以选择在源 VRF 下使用 export map 命令,将路由目标分配给要导出的特定路由。
在 route-map 中使用 set extcommunity rt 参数,以分配路由目标。
在下面的示例中,仅导出网络 192.168.2.0/24(路由目标为 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 命令从任何其他 VRF 将 IP 前缀导出到全局路由表(默认 VRF)
Nexus 通过 EIGRP 在其名为 RED 的 VRF 中收到了两个路由。配置泄漏默认 VRF 中的路由。
在本例中,仅泄漏路由 192.168.2.0/24。

将存在于 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 |

- 步骤 2: 在源 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 中确认,现在可以通过 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#