MPLS レイヤ 3 VPN ラベル割り当ての設定

この章では、Cisco Nexus 9508 スイッチでマルチプロトコル ラベル スイッチング(MPLS)レイヤ 3 仮想プライベート ネットワーク(L3VPN)のラベル割り当てを設定する方法について説明します。

MPLS レイヤ 3 VPN ラベル割り当てについて

MPLS プロバイダー エッジ(PE)ルータには、ローカル ルートとリモート ルートの両方が格納されており、各ルートに対するラベル エントリも含まれています。デフォルトでは、Cisco NX-OS はプレフィックス単位のラベル割り当てを使用します。プレフィックスごとに 1 つのラベルが割り当てられます。分散プラットフォームでは、プレフィックス単位のラベルによりメモリが消費されます。多数の VPN ルーティングおよび転送(VRF)インスタンスおよびルートが存在する場合、プレフィックス単位のラベルにより消費されるメモリ量が問題となります。

VRF 全体でローカル ルートに単一の VPN ラベルがアドバタイズされるように、VRF 単位のラベル割り当てをイネーブルにすることができます。ルータは、VRF デコードおよび IP ベースのルックアップに新しい VPN ラベルを使用して、PE またはカスタマー エッジ(CE)インターフェイスのパケットの転送先を学習します。

ボーダー ゲートウェイ プロトコル(BGP)レイヤ 3 VPN ルートごとに異なるラベル割り当てモードをイネーブルにすることが可能です。これにより、異なる要件を満たし、拡張性とパフォーマンスの間のトレードオフを実現することができます。ラベルはすべてグローバル ラベル スペース内で割り当てられます。Cisco NX-OS は、次のラベル割り当てモードをサポートしています。

  • プレフィックス単位:各 VPN プレフィックスに 1 つのラベルが割り当てられます。ラベル転送テーブルに基づき、リモート PE から着信する VPN パケットは接続された CE に直接転送できます。CE にはプレフィックスがアドバタイズされます。しかし、このモードでは多くのラベルが使用されます。このモードが利用可能なのは、PE から CE に送信される VPN パケットがラベル スイッチングされる場合のみです。これがデフォルトのラベル割り当てモードになります。

  • VRF 単位:VRF のローカル VPN ルートすべてに単一のラベルが割り当てられます。このモードでは、VPN ラベルが出力 PE で削除されると、VRF の転送テーブルで IPv4 ルックアップまたは IPv6 ルックアップが必要になります。このモードは、ラベル スペースと BGP アドバタイズメントに関して最も効率的であり、ルックアップによってパフォーマンスが低下することはありません。Cisco NX-OS では、IPv4 プレフィックスおよび IPv6 プレフィックスの両方で同じ VRF 単位のラベルを使用します。


    (注)  


    EIBGP ロード バランシングでは、VRF 単位のラベル モードを使用する VRF はサポートされません。


  • 集約ラベル:BGP は、集約プレフィックスのローカル ラベルを割り当てたり、アドバタイズしたりできます。転送時には、VRF 単位の場合と同じように IPv4 ルックアップまたは IPv6 ルックアップが必要になります。単一の VRF 単位のラベルは、ルックアップが必要なすべてのプレフィックスに割り当てられ、使用されます。

  • VRF 接続されたルート:直接接続されたルートが再配布およびエクスポートされるときに、各ルートに集約ラベルが割り当られます。コアから送信されるパケットは非カプセル化され、VRF の IPv4 テーブルまたは IPv6 テーブルで、ローカル ルータへのパケットか、別のルータまたは直接接続されたホストへのパケットかを判断するためにルックアップが行われます。単一の VRF 単位のラベルは、これらすべてのルートに割り当てられます。

  • ラベルの抑制:ローカル ラベルがこれ以上プレフィックスに関連付けられないときは、他の PE に送信されるアップデートの時間を確保するために、ローカル ラベルがすぐに解放されない場合があります。ラベルごとに 10 分の抑制タイマーが作動します。この間、ラベルをプレフィックスに対して再利用することができます。タイマーが切れると、BGP はラベルを解放します。

IPv6 ラベルの割り当て

IPv6 プレフィックスは、割り当てられたラベルとともに、ラベル付きユニキャスト アドレス ファミリがイネーブルになっている iBGP ピアにアドバタイズされます。着信した eBGP ネクスト ホップはこのピアに伝播されず、代わりにローカル IPv4 セッションのアドレスが IPv4 射影 IPv6 ネクスト ホップとして送信されます。リモート ピアは、コア ネットワーク内の 1 つまたは複数の IPv4 MPLS LSP を介してこのネクスト ホップを解決します。

ルート リフレクタを使用して、PE 間のラベル付き 6PE プレフィックスをアドバタイズできます。このとき、ルート リフレクタとこれらすべてのピアの間で、ラベル付きユニキャスト アドレス ファミリをイネーブルにする必要があります。ルート リフレクタは転送パスにある必要はなく、受信したネクスト ホップをそのまま iBGP ピアおよびルート リフレクタ クライアントに伝播します。


(注)  


6PE は、6VPE と同様に、プレフィックス単位および VRF 単位のラベル割り当てモードの両方をサポートします。

VRF 単位のラベル割り当てモード

VRF 単位のラベル割り当てを設定する場合、次の条件が適用されます。

  • VRF は、すべてのローカル ルートに対して 1 つのラベルを使用します。

  • VRF 単位のラベル割り当てをイネーブルにした場合、すべての既存の VRF 単位の集約ラベルが使用されます。VRF 単位の集約ラベルが存在しない場合は、ソフトウェアによって新規の VRF 単位のラベルが作成されます。

    VRF 単位のラベルの割り当てをディセーブルにした場合、デフォルトのプレフィックス単位のラベリング設定に戻るため、CE がデータを失うことはありません。

  • VRF 単位ラベルのフォワーディング エントリは、VRF、BGP、またはアドレス ファミリ設定が削除された場合にのみ、削除されます。

ラベル付きユニキャスト パスとラベルなしユニキャスト パスについて

後続アドレス ファミリ識別子(SAFI)は、BGP ルートの指標です。例 1 はラベルなしルート、4 はラベル付きルートです。

  • IPv4 のラベルなしユニキャスト(U)は SAFI 1 です。

  • IPv4 のラベル付きユニキャスト(LU)は SAFI 4 です。

  • IPv6 のラベルなしユニキャスト(U)は、AFI 2 および SAFI 1 です。

  • IPv6 のラベル付きユニキャスト(LU)は、AFI 2 および SAFI 4 です。

Cisco NX-OS リリース 9.2(2) は、1 つの BGP セッションで、IPv4 と IPv6 のラベルなしおよびラベル付きユニキャストの両方をサポートします。この動作は、同じセッションで SAFI-1 と SAFI-4 の一方または両方が有効になっているかどうかに関係なく同じです。

この動作は、すべての eBGP、iBGP、および再配布パスと、eBGP および iBGP ネイバーに適用されます。

MPLS レイヤ 3 VPN ラベル割り当ての前提条件

レイヤ 3 VPN ラベルの割り当てには、次の前提条件があります。

  • ネットワークに MPLS、および LDP と RSVP TE のいずれかを設定する必要があります。PE ルータを含む、コア内のすべてのルータは、MPLS 転送をサポートできる必要があります。

  • MPLS の正しいライセンスおよび MPLS で使用する他の機能をインストールすることが必要です。

  • VRF 単位のラベル割り当てモードを設定する前に、外部/内部ボーダー ゲートウェイ プロトコル(BGP)マルチパス機能がイネーブルになっている場合は、ディセーブルにします。

  • VRF ラベル単位での 6VPE を設定する前に、IPv6 アドレス ファミリをその VRF で設定する必要があります。

MPLS レイヤ 3 VPN ラベル割り当てに関する注意事項と制限事項

レイヤ 3 VPN ラベル割り当て設定時の注意事項と制限事項は次のとおりです。

  • VRF 単位のラベル割り当てをイネーブルにすると、BGP 再コンバージェンスが発生します。これにより、MPLS VPN コアから発信されるトラフィックでのデータ損失につながる場合があります。


    (注)  


    スケジュールされた MPLS メンテナンスの時間帯に VRF 単位のラベル割り当てをイネーブルにすることにより、ネットワークの中断を最小限に抑えることができます。また、可能であれば、現在アクティブなルータでこの機能をイネーブルにすることは避けてください。


  • プレフィックス単位のラベル割り当てのための集約プレフィックスは、特定の VRF で同じラベルを共有します。

MPLS レイヤ 3 VPN ラベル割り当てのデフォルト設定

表 1. デフォルトのレイヤ 3 VPN ラベル割り当てパラメータ

パラメータ

デフォルト

レイヤ 3 VPN 機能

無効

ラベル割り当てモード

プレフィックス単位

MPLS レイヤ 3 VPN ラベル割り当ての設定

VRF 単位でのレイヤ 3 VPN ラベル割り当てモードの設定

レイヤ 3 VPN の VRF 単位でのレイヤ 3 VPN ラベル割り当てモードを設定できます。

手順

  コマンドまたはアクション 目的

ステップ 1

configure terminal

例:

switch# configure terminal
switch(config)#

グローバル コンフィギュレーション モードを開始します

ステップ 2

feature bgp

例:

switch(config)# feature bgp
switch(config)#

BGP 機能をイネーブルにします。

ステップ 3

feature-set mpls

例:

switch(config)# feature-set mpls
switch(config)#

MPLS フィーチャ セットをイネーブルにします。

ステップ 4

feature-set mpls l3vpn

例:

switch(config)# feature-set mpls l3vpn
switch(config)#

MPLS レイヤ 3 VPN 機能をイネーブルにします。

ステップ 5

router bgp as - number

例:

switch(config)# router bgp 1.1

BGP ルーティング プロセスを設定し、ルータ コンフィギュレーション モードを開始します。as-number 引数は、ルータを他の BGP ルータに対して識別し、ルーティング情報にタグを設定する自律システムの番号を示します。AS 番号は 16 ビット整数または 32 ビット整数にできます。上位 16 ビット 10 進数と下位 16 ビット 10 進数による xx.xx という形式です。

ステップ 6

vrf vrf-name

例:

switch(config-router)# vrf vpn1

ルータ VRF 設定モードを開始します。vrf-name には最大 32 文字の英数字文字列を指定します。大文字と-小文字は区別されます。

ステップ 7

address-family { ipv4 | ipv6 } unicast | multicast }

例:

switch(config-router-vrf)# address-family ipv6 unicast

IP アドレス ファミリ タイプを指定し、アドレス ファミリ コンフィギュレーション モードを開始します。

ステップ 8

label-allocation-mode per-vrf

例:

switch(config-router-vrf-af)# label-allocation-mode per-vrf 

VRF 単位でラベルを割り当てます。

ステップ 9

show bgp l3vpn detail vrf vrf-name

例:

switch(config-router-vrf-af)# show bgp l3vpn detail vrf vpn1

(任意)この VRF の BGP でのレイヤ 3 VPN の設定に関する情報を表示します。vrf-name には最大 32 文字の英数字文字列を指定します。大文字と-小文字は区別されます。

ステップ 10

copy running-config startup-config

例:

switch(config-router-vrf)# copy running-config startup-config

(任意)実行コンフィギュレーションをスタートアップ コンフィギュレーションにコピーします。

デフォルト VRF での IPv6 プレフィックスへのラベル割り当て

IPv4 MPLS 上で IPv6 を実行している場合、デフォルト VRF で IPv6 プレフィックスにラベルを割り当てることができます。


(注)  


デフォルトでは、デフォルト VRF で IPv6 プレフィックスにラベルは割り当てられません。


手順

  コマンドまたはアクション 目的

ステップ 1

configure terminal

例:

switch# configure terminal
switch(config)#

グローバル コンフィギュレーション モードを開始します

ステップ 2

feature bgp

例:

switch(config)# feature bgp
switch(config)#

BGP 機能をイネーブルにします。

ステップ 3

feature-set mpls

例:

switch(config)# feature-set mpls
switch(config)#

MPLS フィーチャ セットをイネーブルにします。

ステップ 4

feature-set mpls l3vpn

例:

switch(config)# feature-set mpls l3vpn
switch(config)#

MPLS レイヤ 3 VPN 機能をイネーブルにします。

ステップ 5

router bgp as - number

例:

switch(config)# router bgp 1.1

BGP ルーティング プロセスを設定し、ルータ コンフィギュレーション モードを開始します。as-number 引数は、ルータを他の BGP ルータに対して識別し、ルーティング情報にタグを設定する自律システムの番号を示します。AS 番号は 16 ビット整数または 32 ビット整数にできます。上位 16 ビット 10 進数と下位 16 ビット 10 進数による xx.xx という形式です。

ステップ 6

address-family { ipv4 | ipv6 } unicast | multicast }

例:

switch(config-router-vrf)# address-family ipv6 unicast

IP アドレス ファミリ タイプを指定し、アドレス ファミリ コンフィギュレーション モードを開始します。

ステップ 7

allocate-label { all | route-map route-map }

例:

switch(config-router-af)# allocate-label all

デフォルト VRF で IPv6 プレフィックスにラベルを割り当てます。

  • all キーワードを使用すると、すべての IPv6 プレフィックスにラベルが割り当てられます。

  • route-map キーワードを使用すると、特定のルート マップで、マッチする IPv6 プレフィックスにラベルが割り当てられます。route-map には最大 63 文字の英数字文字列を指定します。大文字と小文字は区別されます。

ステップ 8

show running-config bgp

例:

switch(config-router-af)# show running-config bgp

(任意)BGP の設定に関する情報を表示します。

ステップ 9

copy running-config startup-config

例:

switch(config-router-vrf)# copy running-config startup-config

(任意)実行コンフィギュレーションをスタートアップ コンフィギュレーションにコピーします。

iBGP ネイバーへの IPv4 MPLS コア ネットワーク(6PE)を介した IPv6 内の MPLS ラベル送信の有効化

6PE は、ラベル付きユニキャスト アドレスファミリがイネーブルになっている iBGP ピアへの割り当てラベルを持つ iPv4 ベース MPLS ネットワーク上のグローバル VRF 内で、IPv6 プレフィックスをアドバタイズします。PE では、コアに面したインターフェイスで LDP が有効になっていて、IPv4 ベースの MPLS ネットワーク経由で IPv6 トラフィックが転送され、BGP の下で「address-family ipv6 labeled-unicast」により PE 間で IPv6 プレフィックスのラベルを交換される必要があります。


(注)  


address-family ipv6 labeled-unicast コマンドは iBGP ネイバーでのみサポートされます。このコマンドを address-family ipv6 unicast コマンドとともに使用することはできません。


手順

  コマンドまたはアクション 目的

ステップ 1

configure terminal

例:

switch# configure terminal
switch(config)#

グローバル コンフィギュレーション モードを開始します

ステップ 2

feature bgp

例:

switch(config)# feature bgp
switch(config)#

BGP 機能をイネーブルにします。

ステップ 3

feature-set mpls

例:

switch(config)# feature-set mpls
switch(config)#

MPLS フィーチャ セットをイネーブルにします。

ステップ 4

feature-set mpls l3vpn

例:

switch(config)# feature-set mpls l3vpn
switch(config)#

MPLS レイヤ 3 VPN 機能をイネーブルにします。

ステップ 5

router bgp as - number

例:

switch(config)# router bgp 1.1

BGP ルーティング プロセスを設定し、ルータ コンフィギュレーション モードを開始します。as-number 引数は、ルータを他の BGP ルータに対して識別し、ルーティング情報にタグを設定する自律システムの番号を示します。AS 番号は 16 ビット整数または 32 ビット整数にできます。上位 16 ビット 10 進数と下位 16 ビット 10 進数による xx.xx という形式です。

ステップ 6

neighbor ip-address

例:

switch(config-router)# neighbor 209.165.201.1

switch(config-router-neighbor)#

BGP ネイバー テーブルまたはマルチプロトコル BGP ネイバー テーブルにエントリを追加します。ip-address 引数には、ドット付き 10 進表記でネイバーの IP アドレスを指定します。

ステップ 7

address-family ipv6 labeled-unicast

例:

switch(config-router-neighbor)# address-family ipv6 labeled-unicast

switch(config-router-neighbor-af)#

IPv6 ラベル付きユニキャスト アドレス プレフィックスを指定します。このコマンドは、iBGP ネイバーによってのみ受け入れられます。

ステップ 8

show running-config bgp

例:

switch(config-router-af)# show running-config bgp

(任意)BGP の設定に関する情報を表示します。

ステップ 9

copy running-config startup-config

例:

switch(config-router-vrf)# copy running-config startup-config

(任意)実行コンフィギュレーションをスタートアップ コンフィギュレーションにコピーします。

アドバタイズと撤回のルール

次の表は、さまざまなシナリオでのアドバタイズと撤回の動作を示しています。

表 2. アドバタイズと撤回のルール

大文字/小文字

Bestpath/

Addpath のタイプ

ローカル ラベルが存在しますか?

NHS または NHU

Update-group SAFI

アドバタイズまたは撤回?

コメント

1

ラベルのないパス。たとえば、RX ラベルがない。

はい

NHS

SAFI-1

デフォルトでアトバタイズ。

現在のデフォルトの動作は、アドバタイズです。理想的なデフォルトの動作は、下位互換性を維持するために撤回である必要があります。ネイバーに SAFI 1 と SAFI 4 の両方が設定されている場合、advertise local-labeled-route CLI コマンドは、ピアへの SAFI 4 パスのみをアドバタイズする決定論的な方法を提供します。この機能は、ラベル付きパスの優先順位を強制する方法を提供します。

2

SAFI-4

アドバタイズ

IPv4/IPv6 再配布ルートと 6PE: 常に暗黙の NHS。

3

NHU

SAFI-1

アドバタイズ

4

SAFI-4

出金

IPv4/IPv6 再配布ルートと 6PE: NHU は無視されます。常に暗黙の NHS。現在、NXOS BGP は暗黙の null でアドバタイズしています。

5

いいえ

NHS

SAFI-1

アドバタイズ

6

SAFI-4

出金

7

NHU

SAFI-1

アドバタイズ

8

SAFI-4

出金

9

ラベル付きのパス。たとえば、RX ラベルがある。

はい

NHS

SAFI-1

デフォルトでアトバタイズ。

NbrKnob で撤回。

現在のデフォルトの動作は、アドバタイズです。理想的なデフォルトの動作は、下位互換性を維持するために撤回である必要があります。

10

SAFI-4

アドバタイズ

11

NHU

SAFI-1

出金

next-hop-self 値を持つ IBGP-IBGP リフレクト ルートについては、現在、期待どおりに撤回しています。next-hop-unchanged 値を持つ IBGP-EBGP ルートの場合、NXOS BGP は現在、ラベルなしでアドバタイズしています。

12

SAFI-4

アドバタイズ

13

いいえ

NHS

SAFI-1

アドバタイズ

14

SAFI-4

出金

15

NHU

SAFI-1

出金

IBGP-IBGP リフレクト ルートについては、撤回します。IBGP-EBGP ルートについては、アドバタイズしています。

SAFI-4

アドバタイズ

IBGP-IBGP リフレクト ルートについては、撤回します。IBGP-EBGP ルートについては、アドバタイズしています。

ローカル ラベル割り当ての有効化

手順

  コマンドまたはアクション 目的

ステップ 1

configure terminal

例:

switch# configure terminal
switch(config)#

グローバル コンフィギュレーション モードを開始します

ステップ 2

feature bgp

例:

switch(config)# feature bgp
switch(config)#

BGP 機能をイネーブルにします。

ステップ 3

feature-set mpls

例:

switch(config)# feature-set mpls
switch(config)#

MPLS フィーチャ セットをイネーブルにします。

ステップ 4

router bgp as - number

例:

switch(config)# router bgp 1.1

BGP ルーティング プロセスを設定し、ルータ コンフィギュレーション モードを開始します。as-number 引数は、ルータを他の BGP ルータに対して識別し、ルーティング情報にタグを設定する自律システムの番号を示します。AS 番号は 16 ビット整数または 32 ビット整数にできます。上位 16 ビット 10 進数と下位 16 ビット 10 進数による xx.xx という形式です。

ステップ 5

address-family { ipv4 | ipv6 } unicast | multicast }

例:

switch(config-router-vrf)# address-family ipv4 unicast

IP アドレス ファミリ タイプを指定し、アドレス ファミリ コンフィギュレーション モードを開始します。

ステップ 6

allocate-label { all | route-map route-map }

例:

switch(config-router-af)# allocate-label all

デフォルト VRF で IPv6 プレフィックスにラベルを割り当てます。

  • all キーワードを使用すると、すべての IPv6 プレフィックスにラベルが割り当てられます。

  • route-map キーワードを使用すると、特定のルート マップで、マッチする IPv6 プレフィックスにラベルが割り当てられます。route-map には最大 63 文字の英数字文字列を指定します。大文字と小文字は区別されます。

ステップ 7

neighbor ip-address

例:

switch(config-router)# neighbor 209.165.201.1

switch(config-router-neighbor)#

BGP ネイバー テーブルまたはマルチプロトコル BGP ネイバー テーブルにエントリを追加します。ip-address 引数には、ドット付き 10 進表記でネイバーの IP アドレスを指定します。

ステップ 8

[no] advertise local-labeled-route

例:

switch(config-router-neighbor)# advertise local-labeled-route

IPv4 または IPv6 ユニキャスト SAFI(SAFI-1)を介して、BGP ネイバーに、ローカル ラベルを持つ IPv4 または IPv6 ルートをアドバタイズするかどうかを示します。デフォルトは有効になっているため、BGP ネイバーにアドバタイズできます。

ステップ 9

address-family { ipv4 | ipv6 } unicast | multicast }

例:

switch(config-router-vrf)# address-family ipv6 unicast

IP アドレス ファミリ タイプを指定し、アドレス ファミリ コンフィギュレーション モードを開始します。

ステップ 10

[no] advertise local-labeled-route

例:

switch(config-router-neighbor)# advertise local-labeled-route

IPv4 または IPv6 ユニキャスト SAFI(SAFI-1)を介して、BGP ネイバーに、ローカル ラベルを持つ IPv4 または IPv6 ルートをアドバタイズするかどうかを示します。デフォルトは有効になっているため、BGP ネイバーにアドバタイズできます。

ステップ 11

route-map label_routemap permit 10

例:

switch(config-router-vrf)# route-map label_routemap permit 10

ステップ 12

show running-config bgp

例:

switch(config-router-af)# show running-config bgp

(任意)BGP の設定に関する情報を表示します。

ステップ 13

copy running-config startup-config

例:

switch(config-router-vrf)# copy running-config startup-config

(任意)実行コンフィギュレーションをスタートアップ コンフィギュレーションにコピーします。

MPLS レイヤ 3 VPN ラベル割り当ての設定の確認

レイヤ 3 VPN ラベル割り当ての設定を表示するには、次のいずれかの作業を行います。

表 3. MPLS レイヤ 3 VPN ラベル割り当ての設定の確認

コマンド

目的

show bgp l3vpn [ detail ] [vrf v rf-name ]

VRF での BGP のレイヤ 3 VPN 情報を表示します。

show bgp vpnv4 unicast labels [vrf v rf-name ]

BGP のラベル情報を表示します。

show ip route [vrf v rf-name ]

ルートのラベル情報を表示します。

MPLS レイヤ 3 VPN ラベル割り当ての設定例

次に、IPv4 MPLS ネットワークの VRF 単位のラベル割り当てを設定する例を示します。

PE1
-----
vrf context vpn1
rd 100:1
address-family ipv4 unicast
route-target export 200:1
router bgp 100
neighbor 10.1.1.2 remote-as 100
address-family vpnv4 unicast
send-community extended
update-source loopback10
vrf vpn1
address-family ipv4 unicast
label-allocation-mode per-vrf
neighbor 36.0.0.2 remote-as 300
address-family ipv4 unicast