簡介
本文檔介紹如何在基於Cisco Nexus NX-OS的交換機上配置路由洩漏。
必要條件
需求
思科建議您瞭解以下主題:
- 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在其預設VRF中通過EIGRP收到兩條路由。該配置會洩漏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# |
![Nexus Route Leak](/c/dam/en/us/support/docs/ios-nx-os-software/nx-os-software/213908-configure-vrf-route-leak-on-nexus-00.png)
注意:在NX-OS中,需要啟用全域性配置模式中的功能。若要啟用BGP,命令是feature bgp。
重新分發BGP中預設VRF路由表中的路由。
由於路由位於預設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 |
![Nexus Route Leak](/c/dam/en/us/support/docs/ios-nx-os-software/nx-os-software/213908-configure-vrf-route-leak-on-nexus-01.png)
注意:在NX-OS中,路由對映始終需要作為引數來選擇性地重新分發路由。
建立的空路由對映permit語句對於匹配任何和所有路由是有效的。
在目標VRF中配置import vrf default命令。命令列需要route-map作為引數,以便明確定義目標VRF中要匯入的路由,在本例中為名為BLUE的VRF。
配置目標VRF中的匯入VRF預設值 |
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 |
![Nexus Route Leak](/c/dam/en/us/support/docs/ios-nx-os-software/nx-os-software/213908-configure-vrf-route-leak-on-nexus-02.png)
您可以在目標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# |
![Nexus Route Leak](/c/dam/en/us/support/docs/ios-nx-os-software/nx-os-software/213908-configure-vrf-route-leak-on-nexus-03.png)
VRF到VRF
在這種情況下,Nexus通過EIGRP在其VRF中收到兩條名為RED的路由。該配置會洩漏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# |
![Nexus Route Leak](/c/dam/en/us/support/docs/ios-nx-os-software/nx-os-software/213908-configure-vrf-route-leak-on-nexus-04.png)
重新分發BGP中VRF RED路由表中的路由。
由於路由位於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 |
![Nexus Route Leak](/c/dam/en/us/support/docs/ios-nx-os-software/nx-os-software/213908-configure-vrf-route-leak-on-nexus-05.png)
為了在VRF之間洩漏,需要使用路由目標。
原始VRF導出Route-Target值。
目標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 |
![Nexus Route Leak](/c/dam/en/us/support/docs/ios-nx-os-software/nx-os-software/213908-configure-vrf-route-leak-on-nexus-06.png)
您可以在目標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# |
![Nexus Route Leak](/c/dam/en/us/support/docs/ios-nx-os-software/nx-os-software/213908-configure-vrf-route-leak-on-nexus-07.png)
- 第4步(可選)。將Route-Target分配給特定路由。
您可以選擇使用原始VRF下的export map命令將路由目標分配給要匯出的特定路由。
使用route-map中的set extcommunity rt引數分配Route-Target。
在本示例中,僅將網路192.168.2.0/24與Route-Target 1:1一起匯出,該路由隨後會以VRF BLUE匯入。
結果是只有指定的網路被洩漏。
將Route-Target分配給特定路由 |
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在其VRF中收到兩條稱為RED的路由。配置會洩漏預設VRF中的路由。
在本範例中,只有路由192.168.2.0/24會洩漏。
![Nexus Route Leak](/c/dam/en/us/support/docs/ios-nx-os-software/nx-os-software/213908-configure-vrf-route-leak-on-nexus-08.png)
重新分發BGP中VRF RED路由表中的路由。
由於路由位於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 |
![Nexus Route Leak](/c/dam/en/us/support/docs/ios-nx-os-software/nx-os-software/213908-configure-vrf-route-leak-on-nexus-09.png)
export vrf default命令在原始VRF中配置。命令列需要route-map作為引數,以便明確定義要在預設VRF中匯出的路由。
配置源VRF中的匯出VRF預設值 |
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 |
![Nexus Route Leak](/c/dam/en/us/support/docs/ios-nx-os-software/nx-os-software/213908-configure-vrf-route-leak-on-nexus-10.png)
您可以在預設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# |
![Nexus Route Leak](/c/dam/en/us/support/docs/ios-nx-os-software/nx-os-software/213908-configure-vrf-route-leak-on-nexus-11.png)
驗證
vrf路由洩漏過程有4個階段。驗證可以按以下順序完成:
![Nexus Route Tables](/c/dam/en/us/support/docs/ios-nx-os-software/nx-os-software/213908-configure-vrf-route-leak-on-nexus-12.png)
為了檢查路由表中路由是否正確,命令如下:
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#