簡介
本文檔介紹如何在基於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# |
附註:在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 |
附註:在NX-OS中,始終需要將路由對映作為引數來選擇性地重新分發路由。建立的空路由對映permit語句對於匹配任何和所有路由是有效的。
在目標VRF中配置import vrf default命令。命令列需要將路由對映作為引數來明確定義要在目標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 |
可以在目標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在其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# |
重新分配BGP中VRF RED路由表中的路由。由於這些路由在VRF RED中,因此BGP中的redistribute命令位於vrf RED地址系列ipv4單播部分下。
重新分發到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# |
- 第4步(可選)。 將Route-Target分配給特定路由。
可以選擇使用原始VRF下的export map命令,以將路由目標分配給要匯出的特定路由。使用路由對映中的set extcommunity rt引數以分配路由目標。
在本示例中,僅將網路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命令,從任何其他VRF將IP字首匯出到全域性路由表(預設VRF)。
Nexus通過EIGRP在其VRF中收到兩條稱為RED的路由。配置會洩漏預設VRF中的路由。
在本範例中,只有路由192.168.2.0/24會洩漏。
重新分配BGP中VRF RED路由表中的路由。由於這些路由在VRF RED中,因此BGP中的redistribute命令位於vrf RED地址系列ipv4單播部分下。
重新分發到BGP |
route-map ALL permit 10 ! router bgp 65535 vrf RED
address-family ipv4 unicast
redistribute eigrp 1 route-map ALL |
export vrf default命令在原始VRF中配置。命令列需要將路由對映作為引數來明確定義要在預設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 |
可以在預設VRF中確認現在通過BGP看到路由。現在,可以在也運行在預設VRF中的任何其他路由協定中重新分發預設VRF中的這些BGP路由。
檢查預設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
]
為了檢查BGP表中的路由是否正確,命令如下:
請注意,第二個命令可互換使用,以便在BGP表中顯示IPv4單播地址。
show bgp ipv4 unicast [vrf
] show ip bgp [vrf
]
最後,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#