简介
本文档介绍如何在基于 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。
将存在于默认 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 中确认,现在可以通过 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与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。
将存在于 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 中确认,现在可以通过 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#