Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

LSP ラベル

MPLSラベルの概要

LSPに沿って移動するパケットは、ラベル(0〜1,048,575の範囲の20ビットの符号なし整数)によって識別されます。イングレスルータのプッシュラベルの場合、この範囲のラベルは制限されません。トランジット静的LSPの受信ラベルは,ラベル値を1,000,000〜1,048,575に制限しています。

MXシリーズ、PTXシリーズ、Tシリーズルーターでは、エントロピーとフローラベルの値は16から1,048,575に制限されています。

MPLSラベルの割り当て

Junos OSでは、ラベル値はルーターまたはスイッチごとに割り当てられますが、ここでは両方についてルーターを使用して説明します。表示出力には、ラベルのみが表示されます(例えば、01024)。マルチキャストパケットのラベルは、ユニキャストパケットのラベルとは異なります。現在、Junos OSはマルチキャストラベルをサポートしていません。

ラベルは、パケットのフローに応じて、下流ルーターが割り当てます。受信ラベルの割り当ては、ラベル付きパケットを受信するルーター(ネクストホップルーター)の責任となります。認識されていない(割り当てられていない)ラベルが含まれる受信パケットはドロップされます。認識できないラベルに対して、ルーターはラベルを剥がしてネットワーク層のヘッダーを解析しようとしたり、ICMP(Internet Control Message Protocol)の宛先到達不能メッセージを生成したりしません。

パケットには複数のラベルが含まれており、直前に保存された値を呼び出す(last-in first-out stack)形式で整理されます。これは、ラベルスタックと呼ばれます。特定のルーターにおけるラベル付きパケットの転送方法は、スタックの最上位にあるラベルのみに基づいて決定されます。

図 1は、単一ラベルのエンコーディングを示しています。エンコーディングは、データリンク層ヘッダーの後ろ、ネットワーク層ヘッダーの前に表示されます。

図 1: ラベルエンコードラベルエンコード

図 2は、サービスクラスビット(EXPまたは実験ビットとも呼ばれる)の目的を説明しています。ビット20および21はキュー番号を指定します。ビット22は、ランダム早期検出(RED)ドロッププロファイルを指定するために使用される、パケット損失の優先度(PLP)ビットです。サービスクラスとサービスクラスビットについての詳細な情報については、MPLS LSP用サービスクラスの設定を参照してください。

図 2: サービスクラスビットサービスクラスビット

MPLSラベルでの運用

ルーターは、以下のラベル運用をサポートしています。

  • プッシュ—パケットの先頭に新しいラベルを追加します。IPv4パケットの場合、新しいラベルは最初のラベルです。TTL(Time-to-live)およびsビットは、IPパケットヘッダーから取得されます。MPLSサービス クラス(CoS)は、キュー番号から取得されます。プッシュ操作が既存のMPLSパケットで実行される場合、2つ以上のラベルを持つパケットがあります。これは、ラベルスタッキングと呼ばれます。トップラベルのsビットは0に設定する必要があり、CoSとTTLを下位レベルから取得する場合があります。ラベルスタックの新しいトップラベルは、下位ラベルのTTL値に関係なく、常にTTLを255に初期化します。

  • ポップ—パケットの先頭からラベルを削除します。ラベルが削除されると、TTLがラベルからIPパケットヘッダーにコピーされ、基になるIPパケットがネイティブIPパケットとして転送されます。パケット内の複数のラベル(ラベルスタッキング)の場合、トップラベルを削除すると、別のMPLSパケットが生成されます。新しいトップラベルは、CoSとTTLを以前のトップラベルから取得する場合があります。以前のトップラベルからポップされたTTL値は、新しいトップラベルに書き戻されることはありません。

  • スワップ—ラベルスタックの一番上にあるラベルを新しいラベルに置き換えます。SビットとCoSビットは以前のラベルからコピーされ、TTL値がコピーされてデクリメントされます(no-decrement-ttlまたはno-propagate-ttlステートメントが設定されている場合を除く)。トランジットルーターは、任意の深さのラベルスタックをサポートします。

  • マルチプッシュ—既存のパケットの上に複数のラベル(最大3つ)を追加します。この操作は、複数回プッシュすることと同じです。

  • スワップアンドプッシュ—既存のラベルスタックの一番上にあるラベルを新しいラベルに置き換え、別の新しいラベルを一番上にプッシュします。

MPLS ラベル操作の理解

従来のパケット転送パラダイムでは、パケットが1つのスイッチから次のスイッチに移動するときに、各ホップで独立した転送決定が行われます。IPネットワークヘッダーが分析され、この分析とルーティングテーブルの情報に基づいてネクストホップが選択されます。MPLS環境では、パケットヘッダーの分析は、パケットがMPLSトンネル(つまり、MPLSトラフィックに使用されるパス)に入るときに1回だけ行われます。

IPパケットがラベルスイッチパス(LSP)に入ると、イングレスプロバイダーエッジ(PE)スイッチがパケットを調べて、宛先に基づいてラベルを割り当て、パケットのヘッダーにラベルを配置します。ラベルは、IPルーティング情報に基づいて転送されるパケットからラベルに関連付けられた情報に基づいて転送されるパケットに変換します。次に、パケットはLSP内の次のプロバイダースイッチに転送されます。このスイッチとLSP内の後続のすべてのスイッチは、ラベル付けされたパケット内のIPルーティング情報を調べません。その代わり、ラベルを使用してラベル転送テーブルで情報を検索します。その後、古いラベルを新しいラベルに置き換え、パケットをパス内の次のスイッチに転送します。パケットがエグレス PE スイッチに到達すると、ラベルが削除され、パケットは再びネイティブ IP パケットになり、IP ルーティング情報に基づいて再度転送されます。

このトピックでは、以下について説明します。

MPLS ラベルスイッチ パスと MPLS ラベル

パケットがMPLSネットワークに入ると、LSPに割り当てられます。各LSPは、MPLSラベル(32ビット)の前にある短い(20ビット)固定長の値であるラベルによって識別されます。ラベルは、ラベル転送テーブルの検索インデックスとして使用されます。このテーブルには、ラベルごとに転送情報が格納されます。カプセル化されたパケットに対して追加の解析または検索が行われないため、MPLSはパケットペイロード内の他のプロトコルの送信をサポートします。

図 3は、単一ラベルのエンコーディングを示しています。エンコーディングは、データリンク層ヘッダーの後ろ、ネットワーク層ヘッダーの前に表示されます。

図 3: ラベルエンコードラベルエンコード

予約済みラベル

ラベルは、0~1,048,575の範囲です。ラベル0〜999,999は内部使用です。

一部の予約済みラベル(0〜15の範囲)には、明確に定義された意味があります。以下の予約済みラベルは、QFX シリーズと EX4600 デバイスによって使用されます。

  • 0、IPv4 Explicit Nullラベル—この値は、それが唯一のラベルエントリである場合(ラベルスタッキングなし)にのみ有効です。これは、受信時にラベルをポップする必要があることを示しています。転送は、IPバージョン4(IPv4)パケットに基づいて続行されます。

  • 1、ルーター アラート ラベル - トップ ラベル値が 1 のパケットを受信すると、処理のためにローカル ソフトウェア モジュールに配信されます。

  • 3、Implicit Nullラベル—このラベルは、シグナリングプロトコル(RSVP)で、ダウンストリームスイッチによるラベルポップを要求するためにのみ使用されます。実際にカプセル化に表示されることはありません。値が3のラベルは、実際のラベルとしてデータパケットで使用しないでください。このラベルには、ペイロード タイプ(IPv4 または IPv6)は含まれていません。

MPLS ラベル操作

QFX シリーズと EX4600 デバイスは、以下の MPLS ラベル操作をサポートします。

  • プッシュ

  • ポップ

  • スワップ

注:

QFX および EX4600 デバイスがラベル スタックに追加できる(プッシュ操作)、またはラベル スタックから削除できる(POP 操作)ラベルの数には制限があります。

  • プッシュ操作の場合—最大 3 つです。

  • POP 操作の場合—最大 3 つです。

プッシュ操作は、IPパケットの先頭に新しいラベルを貼り付けます。IPv4パケットの場合、新しいラベルは最初のラベルです。パケットヘッダーのTTL(Time-to-live)フィールド値は、IPパケットヘッダーから取得されます。プッシュ操作は、すでにMPLSラベルが設定されているパケットには適用できません。

ポップ操作は、パケットの先頭からラベルを削除します。ラベルが削除されると、TTLがラベルからIPパケットヘッダーにコピーされ、基になるIPパケットがネイティブIPパケットとして転送されます。

スワップ操作は、IPパケットから既存のMPLSラベルを削除し、以下に基づいて新しいMPLSラベルに置き換えます。

  • 受信インターフェイス

  • Label

  • ラベル転送テーブル

図 4 は、ラベルがイングレス PE スイッチのカスタマー エッジ インターフェイス(ge-0/0/1)に到着しない IP パケットを示します。イングレスPEスイッチはパケットを調べ、そのパケットの宛先をエグレスPEスイッチとして識別します。イングレス PE スイッチは、ラベル 100 をパケットに適用し、MPLS パケットを発信 MPLS コアインターフェイス(ge-0/0/5)に送信します。MPLSパケットは、プロバイダースイッチを介してMPLSトンネルで送信され、ラベル100のインターフェイス ge-0/0/5 に到着します。プロバイダー スイッチは、ラベル 100 をラベル 200 に交換し、MPLS パケットをコア インターフェイス(ge-0/0/7)を介して、トンネルのネクスト ホップ(エグレス PE スイッチ)に転送します。エグレス PE スイッチは、コア インターフェイス(ge-0/0/7)を介して MPLS パケットを受信し、MPLS ラベルを削除して、IP パケットをカスタマー エッジ インターフェイス(ge-0/0/1)からトンネルを越えた宛先に送信します。

図 4: MPLSラベルスワップMPLSラベルスワップ

図 4は、イングレスPEスイッチからエグレスPEスイッチに一方向に通過するパケットのパスを示しています。ただし、MPLS設定では、トラフィックを逆方向に移動することもできます。したがって、各PEスイッチは、イングレススイッチとエグレススイッチの両方として動作します。

最後から2番目のホップポッピングと最終ホップポッピング

スイッチは、IP over MPLS設定で、デフォルトで最後から2番目のホップポッピング(PHP)を有効にします。PHPの場合、最後から2番目のプロバイダースイッチがMPLSラベルをポップし、トラフィックをエグレスPEスイッチに転送します。次に、エグレスPEスイッチはIPルート検索を実行し、トラフィックを転送します。これにより、エグレスPEスイッチの処理負荷が軽減されます。これは、MPLSラベルのポップを担当しないためです。

  • デフォルトでアドバタイズされたラベルは、ラベル3(Implicit Nullラベル)です。ラベル3がアドバタイズされている場合、最後から2番目のホップスイッチはラベルを削除し、パケットをエグレスPEスイッチに送信します。

  • 最終ホップのポッピングが有効になっている場合、ラベル0(IPv4 Explicit Nullラベル)がアドバタイズされ、LSPのエグレスPEスイッチがラベルを削除します。

MPLS ラベルマネージャーの理解

MPLS ラベルマネージャーは、LSI、動的、ブロック、静的などの異なったラベルタイプを管理するためのもので、Junos Trio チップセットを搭載したモジュラー ポート コンセントレータ (MPC) を使用したプラットフォームでサポートされています。これらのラインカードは、デバイスに enhanced-ip コマンドが設定されている場合、より高い柔軟性と拡張性を提供します。

label-space コマンドの既存の動作が維持されます。これは推奨されません。ラベルの種類ごとに複数の範囲を設定するなどの追加機能を提供するために、 label-space の設定とは独立した [edit protocols mpls label usage] の階層の下に label-range のコマンドが導入されています。ラベルの種類ごとに 1 つの範囲しか必要としない場合は、どちらのスタイルも選択できます。

以下の機能は、デバイスに設定された enhanced-ip のコマンドで最適化されています。

  • IS-IS ルーティングプロトコルのセグメントルーティンググローバルブロック (SRGB) で使用するシステム全体のグローバルラベルプールを定義できます。

  • プラットフォームがその規模に対応できるのであれば、 vrf-table-label のスペースを少なくとも16,000 に増やすことができます。

  • 静的 VRF テーブルラベルに使用するラベル値を指定できます。

  • サポートされているラベルアプリケーションタイプで使用するラベル値の範囲を指定できます。

  • SRGB とラベルタイプ範囲を動的に変更できます。

特殊な MPLS ラベル

一部の予約済みラベル(0〜15 の範囲)には、明確に定義された意味があります。詳細については、『RFC 3032, MPLS Label Stack Encoding』を参照してください。

  • 0、IPv4 Explicit Null ラベル - この値は、唯一のラベルエントリーである場合にのみ有効です(ラベル スタッキングはありません)。これは、受信時直ちにラベルをポップする必要があることを示しています。転送は、IPv4(IPバージョン4)パケットに基づいて続行されます。

  • 1、ルーター アラート ラベル - トップ ラベル値が 1 のパケットを受信すると、処理のためにローカル ソフトウェア モジュールに配信されます。

  • 2、IPv6 Explicit Nullラベル - この値は、それが唯一のラベル エントリーである場合(ラベル スタッキングなし)にのみ有効です。これは、受信時にラベルをポップする必要があることを示しています。転送は、IPv6(IP バージョン 6)パケットに基づいて続行されます。

  • 3、Implicit Null ラベル - このラベルは、制御プロトコル(LDP もしくは RSVP)において、ダウンストリーム ルーターにラベル ポッピングをリクエストすることのみに使用されます。実際にカプセル化に表示されることはありません。値が 3 のラベルは、実際のラベルとしてデータ パケットで使用しないでください。このラベルには、ペイロード タイプ(IPv4 または IPv6)は含まれていません。

  • 4~6 - 未割り当て。

  • 7、エントロピー ラベル インジケーター - エントロピー ラベルがラベル スタックに含まれ、また、エントロピー ラベルに先行する時にのみ使用されます。

  • 8~15 - 未割り当て。

特殊なラベルは一般に、LSP のエグレスと最後から 2 番目のルーター間で使用されます。LSP が IPv4 パケットのみ伝送するよう設定されている場合、エグレス ルーターは最終ホップのラベルとして 0 を使用するように、最後から 2 番目のルーターに信号を送るかもしれません。LSP が IPv6 パケットのみ伝送するように設定されている場合、エグレス ルーターは最終ホップのラベルとして 2 を使用するように、最後から 2 番目のルーターに信号を送るかもしれません。

エグレス ルーターは最後から 2 番目のルーターに最終ラベルとして 3 を使用するように単に信号を送るかもしれませんが、それは最後から2番目のホップ ラベルのホップの実行のリクエストです。エグレス ルーターはラベル付けされたパケットを処理せず、ペイロード(IPv4, IPv6, など)を直接受信することで、エグレスでの MPLS ルックアップを 1 回減らすことができます。

label-stacked パケットの場合、エグレス ルーターは、トップ ラベルがすでに最後から 2 番目のルーターにポップされた MPLS ラベル パケットを受信します。エグレス ルーターは、ラベル 0 または 2 を使用する label-stacked パケットを受信できません。通常、最後から 2 番目のルーターからラベル 3 をリクエストします。

混合モードにおけるエントロピ ラベル サポートの概要

Junos OS リリース 14.2 以降は、エントロピ ラベルを混合モード シャーシでサポートしており、エントロピ ラベルを拡張 IP モードで設定できます。エントロピ ラベルは、トランジット ルーターによる ECMP パスまたはリンク アグリゲーション グループ全体の MPLS トラフィックの負荷分散に役立ちます。エントロピ ラベルは、ディープ パケット インスペクションに頼るのではなく、ルーターがトラフィックの負荷を分散するために使用する負荷分散ラベルを導入するものであり、ラベル スタックの深さが増すものの、転送プレーンでのパケット処理要件を軽減します。Junos OS は、MPC または MIC がある MX シリーズ ルーターのエントロピ ラベルをサポートしており、拡張 IP モードで有効化できます。しかし、コアに直面するインターフェイスに、MPCまたはMICで設定したエントロピーラベルが、このコアに直面する接続の他のエンドにDPCラインカードが備える場合は、これはパケット落ちにつながります。これを回避するために、エントロピ ラベルが混合モードでサポートされています。混合モードでは、エントロピ ラベルを拡張 IP 設定なしで設定できます。これにより、MX シリーズ ルーター DPC が、ポップ アウト エントロピ ラベルをサポートできます。しかし、これはフロー ラベルをサポートしていません。

MPLS LSPにおける抽象的なホップの概要

抽象的なホップとは、管理グループ、拡張管理グループ、共有リスク リンク グループ(SRLG)など、既存のトラフィック制御の制約を論理的に組み合わせたものであり、ユーザーが定義したグループまたはルーターのクラスターを使用して、MPLS ラベルスイッチ パス(LSP)の設定に関する制約として使用されます。抽象的なホップは、既存のパス制約の仕様における制約を克服し、MPLSのトラフィック制御機能に対して複数のメリットを提供します。

抽象的なホップの理解

MPLS LSP を設定するためのパス制約は、実際のホップ形式で個々のルーターを指定しても、管理グループやカラーを指定してルーターのセットを指定しても設定できます。パス制約で実際のホップ(ストリクトまたはルース)を使用する場合、LSPは指定したルーターの順序(たとえば、R1、R2、…Rn)に沿って設定されます。パス制御で管理グループや色指定を使用する場合、特定のルーターは選択せずに、所定の基準を満たすルーターグループを使ってLSPを設定します。また、実際のホップ制約とは異なり、制約内で用いる各ルーターグループに順番はありません。

実際のホップ制約の欠点は、障害が発生した場合、ルーターホップのいずれかがダウンしたり、接続インターフェイスの帯域幅利用率が飽和状態になったりすると、パスがダウンする(または、ローカルまたはエンドツーエンドの保護に依存する)ことです。別な代替ルーターを使うことで、パスやLSPの設定を復旧できることもありますが、オペレーターが別なルーターのホップシーケンスをパス制約に設定してパスを再立ち上げするか、保護パスを解除するまでLSPはダウンしたままになります。

管理グループまたはカラー指定の制約によって、この実際のホップ制約による制限をある程度解消します。これにより、グループ内のルーターが 1 つ停止したり、リンク容量が飽和状態になったとしても、LSP の設定は影響を受けません。これは、パス制約で使用される次ホップルーターは事前に選択されず、LSPは、オペレーターの介在なしで同じ管理グループまたはカラーを持つ他のルーターによって設定されるためです。ただし、ルーターグループの制約では、ホップ制約の中でシーケンスを指定できないという欠点があります。

抽象的なホップでは、ユーザー定義のルーターグループを作成して、各メンバールーターがユーザー定義の制約を満たせるようにすることで、このようなデメリットを克服します。ユーザー定義制約は、管理グループ、拡張管理グループ、共有リスクリンクグループ(SRLG)など、既存のトラフィック制御の制約を論理的に組み合わせたものです。パス制約で使用される一連の抽象的なホップを指定することで、ルーターグループ間の順序が付けられます。これにより、抽象的なホップは、実ホップの制約指定の順序プロパティと、他のトラフィック制御制約が持つ耐障害性を合わせることができます。

パスでは、実際のホップと抽象的なホップの組み合わせを制約として使用できます。抽象ホップを使用する場合、リアルホップのようにルーターの順序(R1、R2、…Rn)を指定するのではなく、ルーターグループまたは抽象ホップの順序セット(G1、G2、…Gn)をパス制約として指定します。各指定ルーターのグループ(例:Gi)は、ユーザーが定義したルーターのセット—R1、R2、Rj、…Rnで構成されます。グループ内のルーターの1つ、たとえばグループGiのルーターRjがダウンすると、同じグループGiの別のルーター、たとえばルーターRkがパス計算によってピックアップされ、ダウンしたルーター(この場合ルーターRj)と置き換えられます。これは、パス制約が順序付けられているため、一連の個別ルーターを通過するのではなく、一連の抽象的なホップを通過する必要があるためです。

抽象的なホップを使用するメリット

抽象的なホップは、ユーザーが定義したルーターグループです。一連の個別ルーターを使用する実際のホップ制約と同様に、一連の抽象的なホップを使用して、ラベルスイッチパス(LSP)を設定できます。抽象的なホップを使用することで、順序付けられたパス制約に耐障害性を提供します。抽象的なホップを使用するその他のメリットは、以下のとおりです。

一連の制約の組み合わせの指定

現在は、複数の属性を満たすリンクを介してアクセスできるパスを指定することができます。このようなパス制約は、複合制約の組み合わせと呼ばれます。たとえば、制約(Ci)では、greenの低遅延リンクが含まれ、SRLG northを除外します。

ただし、一連の複合制約の組み合わせを使用したパスの指定はサポートしていません。たとえば、順序付き制約(C1、C2、Ci、…Cn)には、低遅延の green リンク、遅延がない blue リンク、低遅延の red リンクが含まれます。

地域ごとに異なるリンク アフィニティ(属性)の要件を持つ一連の地理的地域を通じてパスを確立する必要がある場合に、このような順序付きの複合制約の組み合わせが必要となります。抽象的なホップは、コンピューティング ノードが各制約の組み合わせ(Ci など)をユーザー定義のルーター グループ(つまり、抽象的なホップ)とマップすることで、この要件を満たします。

転送ノードによる新規ネットワーク構成の回避

現在のパス制約の仕様機能を使用すると、パス全体に特定の属性のリンクを含めたり、除外したりすることができます。たとえば、パスから SRLG west を除外できます。ただし、条件に応じて属性を除外または指定したり、パスのさまざまな部分に異なる除外またはインクルード属性を適用したりすることはできません。たとえば、SRLG west を除外するのは、red リンクをトラバースする場合に限られます。

回避策として、新しい管理グループを作成して、SRLG west を持たない red リンク をすべて特定し、その管理グループに関連リンクをすべて構成することができます。このアプローチの欠点は、新しい管理グループのメンバーシップを反映するために、ネットワーク全体で構成の変更が必要になる点です。

代わりに抽象的なホップを使えば、構成の変更をイングレス ルーターだけに収めることができます。イングレス ルーターでは、制約の組み合わせは抽象的なホップにマップされます。これにより、伝送ノードでは新しい構成を必要とせずに、前述の要件を満たすことができます。

集中型および分散型パス計算パラダイムの統合

MPLS パスのトラフィック制御は、分散コンピューティングや、集中コントローラーのパス計算によって実現します。2 つの計算タイプの統合は、ハイブリッド計算パラダイムと呼ばれています。集中コントローラー(パス計算要素(PCE))果たす役割がハイブリッド計算アプローチの大きな特徴と言えます。PCEは、イングレス ルーター(パス計算クライアント(PCC))にパスごとのパス計算の指令をルーズ指定し、イングレス ルーターの機能はそれをパス計算の入力に使用します。

抽象的なホップの順序は、集中コントローラーからのガイドラインとして機能します。抽象的なホップは、パス制約を属性に取り込む柔軟性をコントローラーに提供します。これにより、コントローラーは制約内に順序要素の構築もできます。コントローラーは、パスの通過が必要な各ホップを指定する必要がないため、イングレス ルーターがガイドラインまたは指令の制限内で動作するための空き領域を残します。

表 1 は、ハイブリッド計算パラダイムの主要機能を示し、このアプローチと現在のパスの計算方法の比較を示しています。

表 1: 抽象的なホップにおけるハイブリッド計算

機能

分散型制約付き最短パスファースト

集中型制限付き最短パスファースト

ハイブリッド型制限付き最短パスファースト

大規模ネットワークにおける頻繁な変更への対処

 

グローバルビューによる高度なパス計算

 

パス計算へのビジネスロジックの組み込み

 

耐障害性(単一障害点なし)

 

予測可能性

 

ネットワーク負荷への(準)リアルタイム対応

 

フィールドテスト(導入初期との比較)

 

抽象的なホップのJunos OSへの実装

順序を考慮した抽象的なホップ機能は Junos OS リリース 17.1 で導入されています。以下のセクションでは、Junos OSでの抽象的なホップの実装について説明します。

抽象的なホップの定義

抽象的なホップとは、ユーザーがラベルスイッチパス(LSP)の設定に使用するために定義できるルーターグループです。ユーザーは、構成要素属性と呼ばれる異種リンク属性や制約の論理的な組み合わせを定義することで、グループに含めるルーターを制御できます。定義された構成要素属性を満たすリンクを持つルーターは、抽象的なホップを意味するルーターグループに含まれます。

構成要素属性の抽象的なホップへのマッピングは、コンピューティングノードに対して、または設定するLSPのイングレスに対してローカルで行われます。その結果、抽象的なホップは、関連する内部ゲートウェイのプロトコル更新やシグナルプロトコルの拡張機能を持たず、ネットワークに抽象ホップを実装しても、伝送ノードで新しい構成を行う必要はありません。

構成要素リストによって、ユーザーが定義した名前によって識別される、一連のトラフィック制御属性のセットを定義できます。抽象的なホップの定義では、次のいずれかの構成文を使用した構成要素リストを使用します。

  • include-any-list - 指定された構成要素属性のいずれかがリンクに当てはまる場合、リンクは構成要素リストを満たします。

  • include-all-list - 指定されたすべての構成要素がリンクに当てはまる場合、リンクは構成要素リストを満たします。

  • exclude-all-list - 指定されたいずれの構成要素属性もリンクに当てはまらない場合、リンクは構成要素リストを満たします。

  • exclude-any-list - 指定された構成要素の少なくとも 1 つがリンクに当てはまらない場合、リンクは構成要素リストを満たします。

抽象的なホップとは、前述のどのカテゴリにも属すことができる構成要素リストリファレンスの論理的な組み合わせとして定義されています。これを実現するには、論理演算子ANDORを抽象的なホップの定義に含め、構成要素リストに適用します。

  • OR - 抽象的なホップの定義における構成要素リスト リファレンスの少なくとも一つは、接続されたノードが抽象的なホップの一部となるためのリンクを満たす必要があります。

  • AND - 抽象なホップ定義における構成要素リストリファレンスはすべて、接続されたノードが抽象的なホップの一部になるリンクを満たす必要があります。

抽象的なホップの定義の例

抽象的なホップの定義の例として、hopA を以下に示します。

抽象的なホップのhopAは、以下の各リンク属性を有する論理的組み合わせを満たす発信リンクを持つすべてのルーターを含める必要があります。

  • hopA - ((administrative group red && Srlg south) || (administrative group green || Srlg north)) を次の通り定義します。

    • administrative group redSrlg southは、include-all構成要素リストに含まれます(この例ではlistA1)。

    • administrative group greenSrlg northは、include-any構成要素リストに含まれます(この例ではlistA2)。

    • ||はOR演算子です。

抽象的なホップhopAの構成は、以下のとおりです。

  • hopA configuration

Verifying Abstract Hop Configuration

show mpls abstract hop membership <abstract hop name> コマンドは、抽象的なホップのメンバーを表示するために使用します。このコマンドの出力は、トラフィック制御 データベース ノード マッピングに抽象的なホップを提供します。

ここでは、出力フィールドCredibilityは、使用中の内部ゲートウェイプロトコルに関連する信頼性を示しています。

show ted database extensive localコマンドの出力は、トラフィックエンジニアリングデーターベースにキャプチャされたビューを表示します。キーワード local は、出力にローカルなインスツルメンテーションが含まれることを示すために追加されます。このコマンド出力では、関連するリンク属性の論理的組み合わせを満たすリンク属性として、抽象的なホップを示します。

抽象的なホップhopAは、低遅延かつSRLG westを対象としており、抽象的なホップhopBでは、SRLG westを除外しています。図 5は、これらの抽象的なホップのイングレスビューを示しています。

図 5: 抽象的なホップのイングレス ビュー抽象的なホップのイングレス ビュー

パス制約での抽象的なホップの使用

ユーザーは、各抽象的なホップの定義に一意の識別子を関連付けます。この識別子は、パス制約の抽象的なホップを参照するために使用されます。抽象的なホップのシーケンスは、実際のIPホップの使用方法と同様に、パス制約として指定できます。またパス制約は、実際のIPホップによってインターリーブされた抽象的なホップのシーケンスとなる場合もあります。

パス制約で抽象的なホップまたは実際のホップを使用するには、宛先として1つ以上の最短パスファーストが必要です。通常は1ホップあたり1パスとします。パス制約として実際のホップが提供される場合、制約計算には、パス制約のホップ数と同じ数のパスを含み、各パスは制約リスト内のホップ数に達すると終了します。各パスの開始点は、イングレス ルーターを始点に使用した最初のパスの前のパスの宛先になります。

あるいは、パス制約がストリクトまたはルーズ抽象ホップを使用する場合、制約計算はパスで構成され、各パスは制約リスト内の後続の抽象ホップを処理します。この場合、複数のノードがパスの宛先として機能します。このノードセットをパスを有効なルーター セットと呼びます。

抽象的なホップは、以下を使用してメンバー ノードをトラバースします。

  • 定義された構成要素属性の論理的な組み合わせを満たすリンク

  • 任意の種類のリンク

メンバー ノードを抽象的なホップがトラバースする場合、パス制約の定義に抽象ホップ修飾子(ストリクト、ルーズ、ルーズリンク)を使用することで制御できます。たとえば、抽象的なホップ hopA では以下に示す異なる修飾子が、異なる処理を行います。

  • Strict - 制約リストの最後のホップを処理した後、パスは抽象ホップ hopA のメンバーであるリンクまたはノードのみをトラバースし、次の抽象ホップの処理が実行可能な開始点であるhopAのメンバーのノードまで到達します。

  • Loose - 制約リストの最後のホップを処理した後、パスは hopA のメンバーである抽象ホップを持たない任意の実ノードをトラバースし、次の抽象ホップの処理が実行可能な開始点である hopA のメンバーのノードまで到達します。

  • Loose-link - 制約リストの最後のホップを処理した後、パスは hopA のメンバーである抽象ホップを持たない任意の実ノードをトラバースし、次の抽象ホップの処理が実行可能な開始点である hopA のメンバーのノードまで到達します。しかし、このパスは、抽象的なホップ hopA のメンバーのリンクを少なくとも 1 つトラバースする必要があります。

    つまり、ルーズリンク タイプの抽象ホップは、関連する抽象ホップメンバーのリンクを介して制約内に到達可能で有効なルーターがある場合のみ処理されます。

抽象的なホップの仕様例

表 2 に、パス制約で抽象的なホップを使用するユースケースの例を示します。

表 2: パス制約での抽象的なホップの使用

パス制約の目的

抽象的なホップ修飾子

設定

有効なルーター セット

アフィニティ

hopA のメンバーであるノードをトラバースして、hopA を満たすリンクのみを取得する。

ストリクト

[edit protocols mpls]
Path path_hopA_s {
    hopA abstract strict;
}

抽象hopAの全メンバー:つまり、A1、A2…An

hopA(抽象hopAを満たすリンクのみを選択)。

hopA を満たさないリンクも含めた hopA メンバーのノードをトラバースする。

ルーズ

[edit protocols mpls]
Path path_hopA_l {
    hopA abstract loose;
}

抽象hopAの全メンバー:つまり、A1、A2…An

なし(任意の種類のリンク)。

hopA を満たすリンクを少なくとも 1 つ取得して、hopA のメンバーであるノードをトラバースする。

ルーズリンク

注:

ルーズリンク修飾子は、同じ抽象的なホップに対してルーズに続いてストリクトであると見なされる。つまり、hopA ルーズリンクは、hopA ルーズと hopA ストリクトと同等である。

[edit protocols mpls]
Path path_hopA_ll {
    hopA abstract loose-link;
}

この場合、パス制約として hopA に関連付けられた計算パスは 2 つ存在する。両方のパスに有効なルーターセットは以下の通り。

抽象hopAの全メンバー:つまり、A1、A2…An

注:

パス計算中はルーターは一度だけトラバースされる。

この場合、パス制約として hopA に関連付けられた計算パスは 2 つ存在する。2つのパスのアフィニティは以下の通り。

  • パス 1 - なし(任意の種類のリンク)

  • パス2 - hopA(抽象hopAを満たすリンクのみ選択)

hopA メンバーのトラバース ノード。hopA を満たすリンクのみを取得し、hopB を満たすリンクのみを取得する hopB のメンバーのノードがその後に続く。

ストリクト

[edit protocols mpls]
Path path_hopA_hopB_s {
    hopA abstract strict;
    hopB abstract strict;
}
  • hopA - hopA と hopB のメンバー セットの共通部分。

    注:

    抽象ホップの後にストリクト抽象ホップが続く場合、2 つのメンバー セットの共通部分は有効なルーター セットと見なす。

  • hopB - 抽象 hopB の全メンバー:つまり、B1、B2…Bn

  • hopA - hopA(抽象 hopA を満たすリンクのみを選択)。

  • hopB - hopB(抽象 hopB を満すリンクのみを選択)。

hopA メンバーのトラバースノード。hopA を満たすリンクのみを取得し、hopB を満たす任意のリンクを取得する hopB のメンバーのノードがその後に続く。

ストリクトおよびルーズ

[edit protocols mpls]
Path path_hopA_s_hopB_l {
    hopA abstract strict;
    hopB abstract loose;
}
  • hopA - 抽象 hopA の全メンバー:つまり、A1、A2…An

  • hopB - 抽象 hopB の全メンバー:つまり、B1、B2…Bn

  • hopA - hopA(抽象 hopA を満たすリンクのみを選択)。

  • hopB - なし(任意のリンクを選択)。

hopA メンバーのトラバースノード。任意の種類のリンクを取得し、hopB を満たす任意のリンクを取得する hopB のメンバーのノードがその後に続く。

ルーズ

[edit protocols mpls]
Path path_hopA_l_hopB_l {
    hopA abstract loose;
    hopB abstract loose;
}
  • hopA - 抽象 hopA の全メンバー:つまり、A1、A2…An

  • hopB - 抽象 hopB の全メンバー:つまり、B1、B2…Bn

なし(任意のリンクを選択)。

hopA メンバーのトラバースノード。任意の種類のリンクを取得し、hopB を満たすリンクのみを取得する hopB のメンバーのノードがその後に続く。

ルーズおよびストリクト

[edit protocols mpls]
Path path_hopA_l_hopB_s {
    hopA abstract loose;
    hopB abstract strict;
}
  • hopA - hopA と hopB のメンバーの共通部分。

    抽象ホップの後にストリクト抽象ホップが続く場合、2 つのメンバー セットの共通部分は有効なルーター セットと見なす。

  • hopB - 抽象 hopB の全メンバー:つまり、B1、B2…Bn

  • hopA - なし(任意のリンクを選択)。

  • hopB - hopB(抽象 hopB を満すリンクのみを選択)。

図 6 抽象的な hopA、hopB、hopC のパス制約に、ストリクト、ルーズ、ルーズ抽象ホップ修飾子を合わせて示します。

図 6: 抽象的なホップに対するパス制約の例抽象的なホップに対するパス制約の例

抽象的なホップにおける制約付き最短パスファーストは以下の通りです。

  • hopA に関連するパス 1

    • 有効なルーター - ルーター R1 および R2(hopB がストリクト抽象ホップであるため、hopA と hopB の共通部分)。

    • アフィニティ - なし(hopA がルーズであるため)。

  • hopB に関連するパス 2

    • 有効なルーター - ルーター R1、R2、R3、R4

    • アフィニティ - hopB に準拠したリンクのみを選択(hopB がストリクト抽象ホップであるため)

  • hopC に関連するパス 3

    • 有効なルーター - ルーターR5、R6、R7、エグレスルーター。

    • アフィニティ - なし(hopC がルーズ抽象ホップであるため)

パスの計算とバックトラッキング

各制限付き最短パスファーストのパスで、有効なルーターセットに最も近いルーターが、パスに設定されているアフィニティを満たすリンクを使用して到達した場合、そのパスに関連付けられる抽象ホップが処理済みとして扱われます。こうして到達した有効なルーターは、次の制約パスの起点となります。開始ルーターがイングレスルーターではない制約パスが失敗した場合、パスは前のパスにバックトラックされ、処理が繰り返されます。

バックトラッキングの例

制約付き最短パスファーストのパスpが失敗すると、現在のパスpの起点として機能した前のパス(p-1)の出口ルーターは、前のパス(p-1)の有効なルーターセットとしては無効となります。次に、前のパス(p - 1)を再実行して、有効なルーター セットからパス p - 1 の次に最適な出口ルーターまたは宛先を見つけます。

こうして決定されたルータは、パスpの新しい開始ルーターとして機能します。障害が発生して、未調査の有効なルーターがある限りこの手順を繰り返します。

show mpls lsp abstract-hop-computation name lsp-nameコマンドは、LSPごとに関係する様々な計算パスや、各パスに適格な出口ルーターを提供します。また、コマンド出力は、パスごとのアフィニティを提供し、選択したパスの現在の開始ルーターを表示します。有効なルーターごとに、バックトラックの状態(有効または無効)が表示されます。

出力フィールド Credibility は、使用中の内部ゲートウェイ プロトコルに関連する信頼性を表示します。

例:MPLS LSP の抽象的なホップの設定

この例は、MPLS LSP(ラベルスイッチ パス)に抽象的なホップを設定する方法を示しています。抽象的なホップは、ユーザーが MPLS LSP の順序を考慮した、強靭なパス制約を指定できる既存のトラフィック制御制約の主な特徴を併せ持っています。

要件

この例では、以下のハードウェアとソフトウェアのコンポーネントを使用しています。

  • M Series マルチサービス エッジ ルーター、MX シリーズ 5G ユニバーサル ルーティンッグ プラットフォーム、T Series コア ルーター、PTX シリーズ パケット トランスポート ルーターを組み合わせた 6 台のデバイス。

  • すべてのデバイスで実行されている Junos OS リリース 17.1 以降。

開始する前に、以下を実行します。

  • デバイスインターフェイスを設定します。

  • 機器ルーター ID を設定sい、AS(自律システム)番号を割り当てます。

  • すべてのデバイスで RSVP を設定します。

  • すべてのデバイスでOSPF またはその他の内部ゲートウェイ プロトコルを設定します。

  • すべてのデバイスで管理グループ、拡張管理グループ、SRLG(共有リスク リンク グループ)を設定します。

概要

Junos OS リリース 17.1 は、ユーザー定義ルーター クラスターまたはグループである抽象的なホップを導入します。実際のホップ制約(ストリクトまたはルーズ)のシーケンスと同様に、LSP(ラベルスイッチ パス)の設定に一連の抽象的なホップのシーケンスを使用できます。パスでは、実際のホップと抽象的なホップの組み合わせを制約として使用できます。

抽象的なホップは、管理グループ、拡張管理グループ、SRLGなどの既存のトラフィック制御制約と、実際のホップの順序付け特性を論理的に組み合わせたものです。その結果、抽象的なホップのシーケンスがパス制約で使用される場合、構成属性と呼ばれるリンクまたはノード属性の論理的な組み合わせを満たすルーターのグループ間で順序付けが達成されます。

抽象的なホップを設定する方法:

  • [edit protocols mpls] 階層レベルで constituent-list list-name ステートメントを含めることで、構成要素トラフィック制御属性を含む構成要素リストを作成します。

  • [edit protocols mpls abstract-hop abstract-hop-name] 階層レベルで抽象的なホップ定義に構成要素リストを含めます。

  • [edit protocols mpls path path-name] 階層レベルで抽象的なホップを使用するパス制約を定義します。

MPLS LSP の抽象的なホップを設定する場合、以下のガイドラインを考慮します。

  • 抽象的なホップは、デバイスのマスター ルーティング インスタンスでのみサポートされます。

  • IPv6 宛先は抽象的なホップ制約ではサポートされていません(IPv4 宛先のみ動作します)。

  • 抽象的なホップはストリクトまたはルーズ制約です。

  • Junos OS リリース 17.1 の抽象的なホップ サポートは、エリア間 MPLS LSP にのみ提供され、ドメイン間またはエリア間 LSP には提供されません。

  • 抽象的なホップ制約は、定期的なポイントツーポイント LSP に対してのみ有効です。ポイントツーマルチポイント LSP、外部制御型双方向 LSP、動的コンテナ LSP、RSVP オートメッシュ LSP、エリア間 LSPなどの他の種類の MPLS LSP は、抽象的なホップ設定ではサポートされません。

  • 抽象的なホップは、LSP の全体の最短パスの計算を有効にしません。

  • 抽象的なホップは、同じパス制約で複数回参照しないでください。

  • 抽象的なホップ制約仕様は、GRES(グレースフル ルーティング エンジン スイッチオーバー)、ISSU(統合型稼動中ソフトウェア アップグレード)、NSR(ノンストップ ルーティング)のサポートには影響しません。

  • 抽象的なホップ制約仕様は、全体的なネットワーク パフォーマンスに影響しません。ただし、抽象的なホップ設定により、制限付き最短パス ファースト計算に必要な時間は増加します。抽象的なホップ LSP の設定時間は、抽象的なホップ設定を使用しない LSP の設定にかかる時間より長くなければなりません。

トポロジー

図 7 は、抽象的なホップで設定されたサンプル ネットワーク トポロジーを示しています。デバイス R0 および R3 は、それぞれホスト(ホスト 1 およびホスト 2)に接続されます。デバイス R4 および R5 はそれぞれ、デバイス R0、R1、R2、および R3 には接続されています。デバイス R1 および R2 も直接お互いに接続されます。

デバイス R0 および R3 は、同じ自律システム(AS 64496)の下で設定されます。MPLS LSP は、1 つのプライマリ パスと 2 つのセカンダリ パス(スタンバイおよび非スタンバイ セカンダリ パス)でデバイス R0 からデバイス R3 にかけて設定されます。

4 つの構成構成リスト(c1、c2、c3、c4)は、3 つの SRLG(g1、g2、g3)、3 つの管理グループ(グリーン、ブルー、レッド)、1 つ以上の拡張管理グループ(ゴールド)を使用して作成されます。3 つの抽象的なホップ(ah1、ah2、ah3)は、設定された構成要素リストを使用して定義され、パス制約として指定されます。抽象的なホップ ah1 は、プライマリ パスの制約として指定され、抽象的なホップ ah2 および ah3 は、それぞれセカンダリ スタンバイ パスとセカンダリ スタンバイ パスの制約として指定されます。

図 7: 抽象的なホップ パス制約の設定抽象的なホップ パス制約の設定

設定

CLIクイック構成

この例を迅速に設定するには、以下のコマンドをコピーして、テキストファイルに貼り付け、改行を削除し、ネットワーク設定に一致させる必要がある詳細情報を変更し、コマンドを [edit] 階層レベルでCLIにコピーアンドペーストして、設定モードから commit を入力します。

デバイスR0

デバイスR1

デバイスR2

デバイスR3

デバイス R4

デバイス R5

手順

ステップバイステップでの手順

次の例では、設定階層内のさまざまなレベルに移動する必要があります。CLI のナビゲーションについては、CLIユーザー・ガイドコンフィギュレーション・モードでのCLIエディタの使用を参照してください。

Device R0を設定するには:

  1. デバイス R0 で拡張 IP ネットワーク サービスを有効にします。

  2. ループバック インターフェイスを含め、デバイス R0 のインターフェイスを設定します。

  3. 機器 R0 のルーター ID と自律システム番号を割り当てます。

  4. SRLG 定義を設定します。

  5. 拡張管理グループ定義を設定します。

  6. 管理グループ定義を設定します。

  7. 管理インターフェイスを除くデバイス R0 のすべてのインターフェイスで MPLS を設定します。

  8. デバイス R0 のインターフェイスに設定されたトラフィック制御属性を割り当てます。

  9. デバイス R0 をデバイス R3 に接続する LSP を設定し、プライマリおよびセカンダリ パス属性を LSP に割り当てます。

  10. R0-R31 LSP のプライマリ パスおよびセカンダリ パスを定義します。

  11. 抽象的なホップ定義に構成要素トラフィック制御属性を備えた構成要素リストを作成します。

  12. 設定された構成要素リストと各オペレーターを割り当てて、抽象的なホップを定義します。

  13. 抽象的なホップ定義を含めることで、設定されたパスの制約を定義します。

  14. デバイス R0 で RSVP を設定します。管理インターフェイスとホスト 1 に接続されるインターフェイスを除くデバイス R0 のすべてのインターフェイスで RSVP を有効にし、帯域幅値を割り当てます。

  15. 管理インターフェイスを除く、デバイス R0 のすべてのインターフェイスで OSPF を設定し、トラフィック制御機能を割り当てます。

  16. デバイス R0 でポリシーを設定して、パケットごとに負荷分散を有効にします。

  17. 負荷分散ポリシーを転送テーブルにエクスポートします。

結果

コンフィギュレーションモードから、 show protocolsshow chassisshow interfacesおよびshow routing-optionsshow policy-optionsコマンドを入力して、コンフィギュレーションを確認します。出力結果に意図した設定内容が表示されない場合は、この例の手順を繰り返して設定を修正します。

検証

設定が正常に機能していることを確認します。

抽象的なホップ設定の検証

目的

抽象的なホップ メンバーシップ表を表示する show mpls abstract-hop-membership コマンドを発行して、デバイス R0 の抽象的なホップ定義のメンバーを検証します。

アクション

オペレーショナルモードから、show mpls abstract-hop-membershipコマンドを実行します。

意味

show mpls abstract-hop-membership コマンドの出力は、トラフィック エンジニアリング データベース ノード マッピングに抽象的なホップを提供します。Credibility フィールドには、使用する内部ゲートウェイ プロトコル(OSPF)に関連する信頼性を表示されます。

抽象的なホップ パス計算の検証

目的

show mpls lsp abstract-computation コマンドを発行して、デバイス R0 で LSP の抽象的な計算を検証します。

アクション

オペレーショナルモードから、show mpls lsp abstract-computationコマンドを実行します。

意味

show mpls lsp abstract-hop-computation コマンド出力は、LSP に関連するさまざまな計算パスと各パスを修飾する出口デバイスを提供します。コマンド出力はパスごとのアフィニティも提供し、そのパスに対して選択された現在のスタート デバイスを示します。有効なルーター(デバイス)に対して、バックトラッキングの状態(有効または無効)が表示されます。

Credibility フィールドは、使用されている内部ゲートウェイ プロトコル(OSPF)に関連する信頼性を示します。

MPLSラベルの最大枚数を設定する

MPLSアプリケーション用に設定したインタフェースでは、MPLSが動作する最大ラベル数を設定することができます。

デフォルトでは、ラベルの数は最大3つです。4枚または5枚のラベルを必要とするアプリケーションでは、最大4枚または5枚に変更することができます。

family mplsJunos OS Release 19.1R1以降では、Egress Packet Forwarding Engine(PFE)がプッシュできるラベルの最大数を利用できます。MPLSネクストホップでプッシュできるラベル数は、デバイスがプッシュできるラベル数、または発信インターフェースの下で設定されたmaximum-labelsのいずれか小さい方です。このサポートは、MPCおよびMICインターフェイスを備えたMXシリーズ・ルーター、および第3世代FPCを備えたPTXシリーズ・ルーターで有効になっています。

注:

PTXシリーズルーターでは、ingress PFEでプッシュできるラベルの最大数は4であり、egress PFEでは8です。

ラベルプッシュ機能の向上は、セグメントルーティングのトラフィックエンジニアリングLSPやRSVP-TEポップ&フォワードLSPなどの機能で有効です。MPLSネクストホップを使用するアプリケーションの既存の機能はすべて、増加したラベルプッシュ機能で引き続き動作します。以下はその例です。

  • MPLS LSPのlsping、traceroute、BFDなど、すべてのOAMユーティリティ。

  • lspmon などの監視ユーティリティ、MPLS LSP 用の LM DM。

show route tableshow route forwarding-tableとコマンド出力が強化され、ネクストホップコンポーネントごとに最大16枚のラベルを表示できるようになりました。

たとえば、以下のように表示されます。

注:

インタフェースのMPLSラベルの最大数が変更された場合,そのMPLSインタフェースはバウンスされます。そのインタフェース上のすべてのLDPおよびRSVPセッションが再起動し,そのインタフェース上のすべてのLSPがフラップすることになります。

例えば、VPNサービスを提供するお客様に対して、2層のキャリア・オブ・キャリア型のVPNサービスを構成するとします。キャリア・オブ・キャリアVPNは、プロバイダキャリア(Tier1 ISP)とカスタマーキャリア(Tier2 ISP)の2層関係で構成される。キャリア・オブ・キャリアVPNでは、プロバイダキャリアがカスタマーキャリアのためにVPNバックボーンネットワークを提供します。顧客である通信事業者は、そのエンドユーザーに対してレイヤー3 VPNサービスを提供します。顧客キャリアはラベル付けされたトラフィックをプロバイダキャリアに送り、プロバイダキャリアのネットワークの反対側にあるネクストホップに配送します。このシナリオでは、3つのラベルスタックが必要です。プロバイダキャリアVPN用のラベル、カスタマーキャリアVPN用のラベル、輸送経路用のラベルの3つを用意します。

高速リルートサービスを追加する場合、プロバイダーキャリアのネットワーク内のPEルーターは、4番目のラベル(リルートラベル)をサポートするように構成されている必要があります。顧客キャリアがシグナリングプロトコルとして LDP を使用し、 事業者キャリアが RSVP を使用している場合、 事業者キャリアは LDP over RSVP tunnel service をサポートする必要があります。この追加サービスにはラベルが1枚必要で、合計5枚のラベルが必要です。

顧客キャリアにとって、プロバイダキャリアのVPNに接続するために使用するルーターはPEルーターである。しかし、プロバイダ事業者はこの機器をCEルータと見なしています。

表 3 は、ラベルの必要条件をまとめたものです。

表 3: MPLSラベルを3枚、4枚、5枚使用する場合のシナリオ例

必要なラベルの枚数

シナリオ

3

キャリアオブキャリアVPNまたは2つのラベルと高速リルートによるVPN

4

キャリアオブキャリアと高速リルートの組合せ

5

キャリア・オブ・キャリアは高速リルート、カスタマー・キャリアはLDP、プロバイダ・キャリアはRSVPを実行中

ラベルの最大枚数を設定・監視する場合。

  1. 論理インターフェイスの最大値を指定します。この設定をキャリアのPEルーターに適用します。
  2. 設定を確認します。

    Maximum labels: 5コマンド出力には,論理インタフェースユニット 0 の下のフィールドが含まれます。

最終ホップルーターでラベルを POP させる MPLS の設定

LSP (ラベルスイッチパス) のエグレス ルーターでアドバタイズされるラベル値を制御できます。デフォルトでアドバタイズされたラベルは、ラベル 3 (Implicit Nullラベル)です。ラベル3がアドバタイズされると、最終ホップルーターはラベルを削除し、パケットをエグレスルーターに送信します。最終ホップのポッピングを有効にすることで、ラベル 0 ( IPv4 Explicit Null ラベル )がアドバタイズされます。最終ホップのポッピングにより、MPLSネットワークを通過するどのパケットにも確実にラベルが含まれます。

注:

ジュニパーネットワークスのルーターは、着信ラベルに基づいてパケットをキューに入れます。他のベンダーのルーターは、個別にパケットをキューに入れます。複数のベンダーのルーターを搭載したネットワークで作業する場合、このことを覚えておいてください。

最終ホップルーターでラベルをPOPするMPLSを設定するには、explicit-nullステートメントを含めます。

以下の階層レベルでこのステートメントを設定することができます。

  • [edit protocols mpls]

  • [edit logical-systems logical-system-name protocols mpls]

BGP ピアへの明示的な Null ラベルのアドバタイズ

IPv4(inet)ファミリーの場合のみ、ルーティング グループの BGP ピアは、inet ラベル付きユニキャストと inet6 ラベル付きユニキャスト NLRI の一連の接続ルート(直接およびループバック ルート)に明示的な NULL ラベルを送信できます。デフォルトでは、ピアはラベル 3(暗黙的な NULL)をアドバタイズします。explicit-null ステートメントが有効になっている場合、ピアはラベル 0(明示的な NULL)をアドバタイズします。明示的な NULL ラベルは、MPLS ネットワークを通過するパケットにラベルが存在するようにします。暗黙的な NULL ラベルを使用すると、最後から 2 番目のホップ ルーターはラベルを削除し、エグレス ルーターにプレイン IP パケットとしてパケットを送信します。これにより、最後から 2 番目のホップが別のベンダーのルーターである場合、最後から 2 番目のホップ ルーターでパケットのキューリングに問題が発生する可能性があります。その他のベンダーの一部は、受信ラベルではなく、発信ラベルの CoS ビットに基づいてパケットをキューに入れます。

明示的な NULL ラベルをアドバタイズするには、設定に以下のステートメントを含めます。

このステートメントを含めることができる階層レベルの一覧は、このステートメントのステートメント概要のセクションを参照してください。

connected-only ステートメントは、明示的な NULL ラベルをアドバタイズする必要があります。

明示的な NULL ラベルが接続されたルートをアドバタイズしていることを確認するには、show route advertising-protocol bgp neighbor-address コマンドを使用します。

EX シリーズスイッチでのMPLSラベル操作を理解する

従来のパケット転送パラダイムでは、パケットが1つのスイッチから次のスイッチに移動するときに、各ホップで独立した転送決定が行われます。IPネットワークヘッダーが分析され、この分析とルーティングテーブルの情報に基づいてネクストホップが選択されます。MPLS環境では、パケットヘッダーの分析は、パケットがMPLSトンネル(つまり、MPLSトラフィックに使用されるパス)に入るときに1回だけ行われます。

IPパケットがラベルスイッチパス(LSP)に入ると、イングレスプロバイダーエッジ(PE)スイッチがパケットを調べて、宛先に基づいてラベルを割り当て、パケットのヘッダーにラベルを配置します。ラベルは、IPルーティング情報に基づいて転送されるパケットからラベルに関連付けられた情報に基づいて転送されるパケットに変換します。次に、パケットはLSP内の次のプロバイダースイッチに転送されます。このスイッチとLSP内の後続のすべてのスイッチは、ラベル付けされたパケット内のIPルーティング情報を調べません。その代わり、ラベルを使用してラベル転送テーブルで情報を検索します。その後、古いラベルを新しいラベルに置き換え、パケットをパス内の次のスイッチに転送します。パケットがエグレスPEスイッチに到達すると、ラベルが削除され、パケットは再びネイティブIPパケットになり、IPルーティング情報に基づいて再度転送されます。

このトピックでは、以下について説明します。

MPLSラベル-スイッチパスとスイッチのMPLSラベル

パケットがMPLSネットワークに入ると、LSPに割り当てられます。各LSPは、MPLSラベル(32ビット)の前にある短い(20ビット)固定長の値であるラベルによって識別されます。ラベルは、ラベル転送テーブルの検索インデックスとして使用されます。このテーブルには、ラベルごとに転送情報が格納されます。カプセル化されたパケットに対して追加の解析または検索が行われないため、MPLSはパケットペイロード内の他のプロトコルの送信をサポートします。

注:

ジュニパーネットワークスEX3200およびEX4200イーサネットスイッチでのMPLSの実装は、シングルラベルパケットのみをサポートします。ただし、ジュニパーネットワークスEX8200イーサネットスイッチでのMPLSは、最大3つのラベルを持つパケットをサポートします。

図 8は、単一ラベルのエンコーディングを示しています。エンコーディングは、データリンク層ヘッダーの後ろ、ネットワーク層ヘッダーの前に表示されます。

図 8: ラベルエンコードラベルエンコード

予約済みラベル

ラベルは、0~1,048,575の範囲です。ラベル0〜999,999は内部使用です。

一部の予約済みラベル(0〜15の範囲)には、明確に定義された意味があります。以下の予約済みラベルがスイッチに使用されています。

  • 0、IPv4 Explicit Nullラベル—この値は、それが唯一のラベルエントリである場合(ラベルスタッキングなし)にのみ有効です。これは、受信時にラベルをポップする必要があることを示しています。転送は、IPバージョン4(IPv4)パケットに基づいて続行されます。

  • 1、ルーター アラート ラベル - トップ ラベル値が 1 のパケットを受信すると、処理のためにローカル ソフトウェア モジュールに配信されます。

  • 2、IPv6 Explicit Nullラベル - この値は、それが唯一のラベル エントリーである場合(ラベル スタッキングなし)にのみ有効です。これは、受信時にラベルをポップする必要があることを示しています。

  • 3、Implicit Nullラベル—このラベルは、シグナリングプロトコル(RSVP)で、ダウンストリームスイッチによるラベルポップを要求するためにのみ使用されます。実際にカプセル化に表示されることはありません。値が3のラベルは、実際のラベルとしてデータパケットで使用しないでください。このラベルには、ペイロード タイプ(IPv4 または IPv6)は含まれていません。

スイッチでのMPLSラベル操作

EXシリーズスイッチは、次のラベル操作をサポートしています。

  • プッシュ

  • ポップ

  • スワップ

プッシュ操作は、IPパケットの先頭に新しいラベルを貼り付けます。IPv4パケットの場合、新しいラベルは最初のラベルです。パケットヘッダーのTTL(Time-to-live)フィールド値は、IPパケットヘッダーから取得されます。プッシュ操作は、すでにMPLSラベルが設定されているパケットには適用できません。

ポップ操作は、パケットの先頭からラベルを削除します。ラベルが削除されると、TTLがラベルからIPパケットヘッダーにコピーされ、基になるIPパケットがネイティブIPパケットとして転送されます。

スワップ操作は、IPパケットから既存のMPLSラベルを削除し、以下に基づいて新しいMPLSラベルに置き換えます。

  • 受信インターフェイス

  • Label

  • ラベル転送テーブル

図 9は、イングレスPEスイッチのカスタマーエッジインターフェース(ge-0/0/1)に到着するラベルのないIPパケットを示しています。イングレスPEスイッチはパケットを調べ、そのパケットの宛先をエグレスPEスイッチとして識別します。イングレスPEスイッチは、ラベル100をパケットに適用し、MPLSパケットを発信MPLSコアインターフェイス(ge-0/0/5)に送信します。MPLSパケットは、プロバイダースイッチを介してMPLSトンネルで送信され、ラベル100のインターフェイスge-0/0/5に到着します。プロバイダースイッチは、ラベル100をラベル200に交換し、MPLSパケットをコアインターフェイス(ge-0/0/7)を介して、トンネルのネクストホップ(エグレスPEスイッチ)に転送します。エグレスPEスイッチは、コアインターフェイス(ge-0/0/7)を介してMPLSパケットを受信し、MPLSラベルを削除して、IPパケットをカスタマーエッジインターフェイス(ge-0/0/1)からトンネルを越えた宛先に送信します。

図 9: MPLSラベルスワップMPLSラベルスワップ

図 9は、イングレスPEスイッチからエグレスPEスイッチに一方向に通過するパケットのパスを示しています。ただし、MPLS設定では、トラフィックを逆方向に移動することもできます。したがって、各PEスイッチは、イングレススイッチとエグレススイッチの両方として動作します。

最後から2番目のホップポッピングと最終ホップポッピング

スイッチは、IP over MPLS設定で、デフォルトで最後から2番目のホップポッピング(PHP)を有効にします。PHPの場合、最後から2番目のプロバイダースイッチがMPLSラベルをポップし、トラフィックをエグレスPEスイッチに転送します。次に、エグレスPEスイッチはIPルート検索を実行し、トラフィックを転送します。これにより、エグレスPEスイッチの処理負荷が軽減されます。これは、MPLSラベルのポップを担当しないためです。

EX8200スイッチでは、デフォルトのPHPを使用するか、最終ホップのポッピングを設定するかを選択できます。

  • デフォルトでアドバタイズされたラベルは、ラベル3(Implicit Nullラベル)です。ラベル3がアドバタイズされている場合、最後から2番目のホップスイッチはラベルを削除し、パケットをエグレスPEスイッチに送信します。

  • 最終ホップのポッピングが有効になっている場合、ラベル0(IPv4 Explicit Nullラベル)がアドバタイズされ、LSPのエグレスPEスイッチがラベルを削除します。

変更履歴

サポートされる機能は、使用しているプラットフォームとリリースによって決まります。 特定の機能がお使いのプラットフォームでサポートされているかどうかを確認するには、 Feature Explorer をご利用ください。

リリース
説明
19.1R1
family mplsJunos OS Release 19.1R1以降では、Egress Packet Forwarding Engine(PFE)がプッシュできるラベルの最大数を利用できます。MPLSネクストホップでプッシュできるラベル数は、デバイスがプッシュできるラベル数、または発信インターフェースの下で設定されたmaximum-labelsのいずれか小さい方です。このサポートは、MPCおよびMICインターフェイスを備えたMXシリーズ・ルーター、および第3世代FPCを備えたPTXシリーズ・ルーターで有効になっています。
14.2
Junos OS リリース 14.2 以降は、エントロピ ラベルを混合モード シャーシでサポートしており、エントロピ ラベルを拡張 IP モードで設定できます。