はじめに
このドキュメントでは、Cisco Nexus NX-OS ベースのスイッチでルートリークを設定する方法について説明します。
前提条件
要件
次の項目に関する知識があることが推奨されます。
- Nexus NX-OSソフトウェア
- ルーティングプロトコル。Enhanced Interior Gateway Routing Protocol(EIGRP)、Open Shortest Path First(OSPF)、Border Gateway Protocol(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 で 2 つのルートを受信しています。この設定により、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など)にどのように存在するかによって異なります。
注:リークするルートが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 permit ステートメントの作成は、すべてのルートを照合する点で有効です。
- ステップ 2:宛先 VRF での import vrf default の設定.
import vrf default コマンドは、宛先 VRF で設定されます。コマンドラインでは、宛先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 |
- ステップ 3:宛先 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 で 2 つのルートを受信しています。この設定により、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 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 |
- ステップ 3:宛先 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 コマンドを使用できます(任意)。 ルートターゲットを割り当てるには、ルートマップで 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ファミリスイッチで、export vrf default mapコマンドを使用して他のVRFからグローバルルーティングテーブル(デフォルトVRF)にIPプレフィックスをエクスポートする機能は、NX-OSリリース7.3(0)D1(1)で導入されました。
Nexus は、EIGRP を介して RED と呼ばれる VRF で 2 つのルートを受信しました。この設定により、デフォルト VRF のルートがリークされます。
この例では、ルート 192.168.2.0/24 のみがリークされます。
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 |
- ステップ 2:元の VRF における export vrf default の設定.
export vrf default コマンドは、元の VRF で設定されます。デフォルト VRF でエクスポートされるルートを明確に定義するには、コマンドラインにパラメータとしての route-map が必要です。
元の 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 |
- ステップ 3:デフォルト 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
]
ルートが BGP テーブルに正常に表示されることを確認するには、次のコマンドを実行します。
2 番目のコマンドは、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#