LSP ルーター
LSP内のルーター
LSP 内の各ルーターは、次のいずれかの機能を実行します。
-
イングレスルーター—LSPの先頭のルーター。このルーターは、IP パケットを MPLS レイヤー 2 フレームでカプセル化し、パスの次のルーターに転送します。各LSPは、ingressルーターを1つだけ持つことができます。
-
エグレスルーター—LSPの末尾にあるルーター。このルーターは、MPLSカプセル化を削除して、MPLSパケットからIPパケットに変換し、IP転送テーブルの情報を使用してパケットを最終宛先に転送します。各LSPは、egressルーターを1つだけ持つことができます。LSPのイングレスルーターとエグレスルーターを同じルーターにすることはできません。
-
トランジット ルーター—イングレス ルーターとエグレス ルーターの間の LSP 内の中間ルーター。トランジットルーターは、受信したMPLSパケットをMPLSパスの次のルーターに転送します。LSPには、0台以上のトランジットルーターを含めることができ、1つのLSPに最大253台のトランジットルーターを含めることができます。
1 つのルーターを複数の LSP の一部にすることができます。これは、1つ以上のLSPのingressまたはegressルーター、1つ以上のLSPのトランジットルーターになることもあります。各ルーターがサポートする機能は、ネットワーク設計によって異なります。
LSP のイングレスおよびエグレス ルーター アドレスの設定
以下のセクションでは、LSPのイングレスルーターとエグレスルーターのアドレスを指定する方法について説明します。
LSPのイングレスルーターアドレスの設定
ローカルルーターは常に、LSPの始点であるingressルーターと見なされます。ソフトウェアは、LSP 内の次のルーターに到達するために使用する適切な発信インターフェイスと IP アドレスを自動的に決定します。
デフォルトでは、ルーターIDがingressルーターのアドレスとして選択されます。送信元アドレスの自動選択を上書きするには、 from ステートメントに送信元アドレスを指定します。
from address;
以下の階層レベルでこのステートメントを含めることができます。
-
[edit protocols mpls label-switched-path lsp-name] -
[edit logical-systems logical-system-name protocols mpls label-switched-path lsp-name]
LSP が使用する発信インターフェイスは、設定した 送信元アドレスの影響を受けません。
LSPのエグレスルーターアドレスの設定
LSPを設定する場合、 to ステートメントを含めてegressルーターのアドレスを指定する必要があります。
to address;
以下の階層レベルでこのステートメントを含めることができます。
-
[edit protocols mpls label-switched-path lsp-name] -
[edit protocols mpls static-label-switched-path lsp-name] -
[edit logical-systems logical-system-name protocols mpls label-switched-path lsp-name] -
[edit logical-systems logical-system-name protocols mpls static-label-switched-path lsp-name]
シグナル付きLSPを設定する場合、 to ステートメントのみが必須です。その他のステートメントはすべてオプションです。
LSPが確立されると、egressルーターのアドレスがルーティングテーブルにホストルートとしてインストールされます。その後、このルートを BGP がトラフィックを転送するために使用することができます。
ソフトウェアで BGP トラフィックを LSP 経由で送信させるには、egressルーターのアドレスを BGP ネクストホップのアドレスと同じにします。egressルーターのアドレスを、任意のルーターのインターフェイスアドレスとして、またはBGPルーターIDとして指定できます。異なるアドレスを指定すると、そのアドレスが同じルーター上にある場合でも、BGPトラフィックはLSPを介して送信されません。
BGPネクストホップのアドレスを特定するには、 show route detail コマンドを使用します。LSP の宛先アドレスを特定するには、 show mpls lsp コマンドを使用します。ルートがLSPを経由したかどうかを確認するには、 show route または show route forwarding-table コマンドを使用します。最後の 2 つのコマンドの出力では、ルートに含まれる label-switched-path キーワードまたは push キーワードは、ルートが LSP を通過したことを示しています。また、 traceroute コマンドを使用して、ルートが導く実際のパスをトレースします。これは、ルートがLSPを通過したかどうかの別の指標です。
また、ルートのネクストホップアドレスを設定するBGPインポートポリシーフィルターを定義することで、BGPネクストホップのアドレスを操作することもできます。
ルーティングテーブルへのエグレスルーターアドレスの追加防止
すべてのLSPに対してtoステートメントを使用してアドレスを設定する必要があります。このアドレスは、常にinet.3またはinet.0ルーティングテーブルに/32プレフィックスとしてインストールされます。no-install-to-addressステートメントを含めることで、toステートメントを使用して設定されたegressルーターアドレスがinet.3およびinet.0ルーティングテーブルに追加されないようにすることができます。
inet.3およびinet.0ルーティングテーブルに to ステートメントアドレスをインストールしない理由には、次のようなものがあります。
-
制約付き最短パスファースト(CSPF)RSVP LSPを、セカンダリループバックアドレス向けのトラフィックにマッピングできるようにします。
no-install-to-addressステートメントを含むRSVPトンネルを設定し、後でinstall pfx/ <active>ポリシーを設定する場合、以下を実行できます。-
トラフィックに影響を与えることなく、LSPが正しく設定されたことを確認します。
-
トラフィックを段階的に LSP にマッピングします。
-
トラブルシューティングが完了したら、
no-install-to-addressステートメントを削除して、トラフィックを宛先ループバックアドレス(BGPネクストホップ)にマッピングします。
-
-
CCC 接続が IP トラフィックを失うのを防ぎます。LSP が接続に属していないと判断すると、inet.3 ルーティングテーブルの
toステートメントで指定されたアドレスをインストールします。その後、IPトラフィックがCCCリモートエンドポイントに転送され、これにより一部のタイプのPICが失敗する可能性があります。
toステートメントを使用して設定されたegressルーターアドレスがinet.3およびinet.0ルーティングテーブルに追加されないようにするには、no-install-to-addressステートメントを含めます。
no-install-to-address;
以下の階層レベルでこのステートメントを含めることができます。
-
[edit protocols mpls label-switched-path lsp-name] -
[edit protocols mpls static-label-switched-path lsp-name] -
[edit logical-systems logical-system-name protocols mpls label-switched-path lsp-name] -
[edit logical-systems logical-system-name protocols mpls static-label-switched-path lsp-name]
MPLS シグナル LSP 向けイングレス ルーターの設定
MPLS信号のラベルスイッチパス(LSP)は、特定のingressルーターから特定のegressルーターに向かって実行されます。基本的な MPLS シグナリング LSP 機能については、ingressルーターを設定する必要がありますが、他のルーターを設定する必要はありません。
シグナル付きLSPを設定するには、ingressルーターで以下のタスクを実行します。
名前付きパスの作成
シグナル付きLSPを設定するには、まずingressルーター上で1つ以上の名前付きパスを作成する必要があります。パスごとに、パスの一部またはすべてのトランジットルーターを指定することも、空のままにすることもできます。
各パス名には最大32文字を含めることができ、文字、数字、ピリオド、ハイフンを含めることができます。名前は、ingressルーター内で一意である必要があります。名前付きパスが作成された後、 primary または secondary ステートメントとともに名前付きパスを使用して、 [edit protocols mpls label-switched-path label-path-name] 階層レベルでLSPを設定できます。任意の数のLSPに同じ名前付きパスを指定することができます。
LSP が RSVP セッションのプライマリ パスとセカンダリ パスのどちらに関連付けられているかを確認するには、 show rsvp session detail コマンドを発行します。
空のパスを作成するには、次の形式の path ステートメントを含めて名前付きパスを作成します。この形式の path ステートメントは空であり、イングレスルーターとエグレスルーター間の任意のパスが受け入れられることを意味します。実際には、使用されるパスは、宛先ベースのベストエフォート型トラフィックがたどるのと同じパスになる傾向があります。
path path-name;
以下の階層レベルでこのステートメントを含めることができます。
-
[edit protocols mpls] -
[edit logical-systems logical-system-name protocols mpls]
パスの一部またはすべてのトランジットルーターを指定するパスを作成するには、次の形式の path ステートメントを含め、トランジットルーターごとに1つのアドレスを指定します。
path path-name { (address | hostname) <strict | loose>; }
以下の階層レベルでこのステートメントを含めることができます。
-
[edit protocols mpls] -
[edit logical-systems logical-system-name protocols mpls]
この形式の path ステートメントでは、1つ以上のトランジットルーターアドレスを指定します。イングレスルーターまたはエグレスルーターの指定はオプションです。各トランジットルーターのアドレスまたはホスト名を指定できますが、タイプが looseの場合は、各トランジットルーターをリストする必要はありません。アドレスを、ingressルーター(オプション)または最初のトランジットルーターから始まり、egressルーター(オプション)またはegressルーターの直前のルーターまでのパスに沿って順番に指定します。ルーターホップごとに指定する必要があるアドレスは1つだけです。同じルーターに複数のアドレスを指定すると、最初のアドレスのみが使用されます。追加のアドレスは無視され、切り捨てられます。
各ルーターアドレスに対して、以下のいずれかのタイプを指定します。
-
strict—(デフォルト)前のルーターからこのルーターへのルートは直接パスであり、他のルーターを含めることはできません。addressがインターフェイスアドレスの場合、このルーターは、受信インターフェイスが指定されたインターフェイスであることも確認します。前のルーターとこのルーターの間にパラレルリンクがある場合、着信インターフェイスが指定されたインターフェイスであることを確認することが重要です。また、リンクごとにルーティングを適用することもできます。厳密なアドレスの場合、設定するルーターのすぐ前のルーターが、そのルーターに直接接続されていることを確認する必要があります。アドレスはループバック インターフェイス アドレスにすることができますが、その場合、着信インターフェイスはチェックされません。
-
loose—前のルーターからこのルーターへのルートは、直接パスである必要はなく、他のルーターを含めることができ、どのインターフェイスでも受信できます。アドレスには、任意のインターフェイスアドレスまたはループバックインターフェイスのアドレスを指定できます。
例: 名前付きパスの作成
パス to-hastings を設定して、イングレスからエグレス ルーターへの完全な厳密なパスを 10.14.1.1、10.13.1.1、10.12.1.1、10.11.1.1 の順に指定します。指定されたもの以外の中間ルーターは存在できません。ただし、egressルーターがpathステートメントに具体的に記載されていないため、10.11.1.1とegressルーターの間に中間ルーターが存在する可能性があります。エグレス前に中間ルーターが発生しないようにするには、strictタイプを使用して、egressルーターを最後のルーターとして設定します。
[edit protocols mpls]
path to-hastings {
10.14.1.1 strict;
10.13.1.1 strict;
10.12.1.1 strict;
10.11.1.1 strict;
}
パス( alt-hastings)を作成して、ルーター 10.14.1.1 と 10.11.1.1の間に任意の数の中間ルーターを使用できるようにします。さらに、 10.11.1.1 とegressルーターの間に中間ルーターを使用できます。
[edit protocols mpls]
path alt-hastings {
10.14.1.1 strict;
10.11.1.1 loose;
}
フェイトシェアリングを使用した代替バックアップパスの設定
プライマリ パスが不安定になった場合に備えて、1 つ以上のバックアップ パスを計算するために Constrained Shortest Path First(CSPF)が使用する情報のデータベースを作成できます。データベースは、ルーターやリンクなどのネットワークの要素間の関係を記述します。これらのネットワーク要素は同じ運命を共有するため、この関係を運命の共有と呼びます。
共有リンクの数をできるだけ最小限に抑えたバックアップ パスとプライマリ パスとのファイバー パスを設定することで、ファイバーが切断された場合でも、失われるデータ量は最小限に抑えられ、宛先へのパスが残るようにすることができます。
バックアップパスが最適に機能するためには、プライマリパスとリンクや物理ファイバーパスを共有してはなりません。これにより、単一障害点がプライマリ パスとバックアップ パスに同時に影響を与えることはありません。
以下のセクションでは、フェイトシェアを設定する方法とそれがCSPFに与える影響について説明し、フェイトシェアリングの設定例を示します。
フェイトシェアリングの設定
フェイトシェアを設定するには、 fate-sharing ステートメントを含めます。
fate-sharing { group group-name { cost value; from address <to address>; } }
このステートメントを含めることができる階層レベルの一覧については、このステートメントの「ステートメント概要」セクションを参照してください。
各運命共有グループには、最大 32 文字までの名前が必要で、文字、数字、ピリオド (.)、ハイフン (-) を含めることができます。最大512 個のグループを定義できます。
フェイトシェアリンググループには、以下の3種類のオブジェクトが含まれます。
-
ポイントツーポイントリンク—リンクの両端にあるIPアドレスで識別されます。番号なしポイントツーポイントリンクは、通常、他のインターフェイスからIPアドレスを借用することで識別されます。順序は重要ではありません。
from 10.1.3.4 to 10.1.3.5とfrom 10.1.3.5 to 10.1.3.4は同じ意味を持ちます。 -
非ポイントツーポイントリンク—LANインターフェイス(ギガビットイーサネットインターフェイスなど)または非ブロードキャストマルチアクセス(NBMA)インターフェイス(ATM(非同期転送モード)やフレームリレーなど)上のリンクを含めます。これらのリンクは、個々のインターフェイスアドレスで識別します。例えば、LANインターフェイス
192.168.200.0/24に4つのルーターが接続されている場合、各ルーターリンクは個別に識別されます。from 192.168.200.1; # LAN interface of router 1 from 192.168.200.2; # LAN interface of router 2 from 192.168.200.3; # LAN interface of router 3 from 192.168.200.4; # LAN interface of router 4
アドレスは任意の順序でリストできます。
-
ルーターノード—設定されたルーターIDで識別されます。
グループ内のすべてのオブジェクトには、特定の類似点があります。例えば、同じファイバーコンジットを共有するすべてのファイバー、同じファイバーを共有するすべての光チャネル、同じLANスイッチに接続するすべてのリンク、同じ電源を共有するすべての機器などに対してグループを定義できます。すべてのオブジェクトは /32 ホスト アドレスとして扱われます。
グループが意味を持つためには、少なくとも 2 つのオブジェクトが含まれている必要があります。0 個または 1 つのオブジェクトでグループを設定できます。これらのグループは、処理中は無視されます。
オブジェクトは任意の数のグループに含めることができ、グループには任意の数のオブジェクトを含めることができます。各グループには設定可能なコストが割り当てられており、これはこのグループが CSPF の計算に与える影響のレベルを表しています。コストが高いほど、バックアップパスがグループ内のオブジェクトをプライマリパスと共有する可能性が低くなります。このコストは、トラフィックエンジニアリングのメトリックに直接匹敵します。デフォルトでは、コストは1です。フェイトシェアリングデータベースを変更しても、CSPFの次回の再最適化まで、確立されたLSPには影響しません。運命共有データベースは、高速再ルート計算に影響を与えます。
CSPF への影響
CSPF が LSP のプライマリ パス(またはプライマリ パスがアクティブでない場合はセカンダリ パス)を計算するとき、運命を共有する情報を無視します。プライマリパスに対して可能な限り最適なパス(最小IGPコスト)を常に見つけたいと考えています。
(同じLSPの)プライマリパスがアクティブな状態でCSPFがセカンダリパスを計算すると、以下のような状態が発生します。
-
CSPF は、プライマリ パスに関連付けられているすべての運命共有グループを識別します。CSPFは、プライマリパスが通過するすべてのリンクとノードを識別し、少なくとも1つのリンクまたはノードを含むグループリストをコンパイルすることでこれを行います。CSPFは、検索でingressノードとegressノードを無視します。
-
CSPF は、コンパイルされたグループ リストと照合して、トラフィック制御データベース内の各リンクをチェックします。リンクがグループのメンバーである場合、リンクのコストはグループのコストだけ増加します。リンクが複数のグループのメンバーである場合、すべてのグループコストが加算されます。
-
CSPF は、トラフィック制御データベース内のすべてのノード(イングレス ノードとエグレス ノードを除く)についてチェックを実行します。繰り返しになりますが、ノードは複数のグループに属している可能性があるため、コストが付加されます。
-
ルーターは、調整されたトポロジーで通常のCSPF計算を実行します。
バイパスLSPでフェイトシェアする場合のCSPFへの影響
リンク保護またはリンクノード保護でフェイトシェアリングが有効になっている場合、CSPFはバイパスLSPパスを計算する際に以下のように動作します。
-
CSPF は、プライマリ LSP パスに関連する運命共有グループを特定します。CSPFは、バイパスが保護しようとしている直下のリンクと直前の下流のノードを特定することで、これを行います。CSPF は、直接ダウンストリーム リンクと直接ダウンストリーム ノードを含むグループ リストをコンパイルします。
-
CSPF は、コンパイルされたグループリストと照合して、トラフィック制御データベース内の各リンク(ingressから直接ダウンストリームノードへ)をチェックします。リンクがグループのメンバーである場合、リンクのコストはグループのコストだけ増加します。
-
CSPF は、フェイトシェア パスにないダウンストリーム リンクを特定します。
この計算により、実行可能な代替手段が利用可能な場合に、バイパスがプライマリ LSP パスと同じ物理リンクを使用することを防ぎます。
例:フェイトシェアリングの設定
eastとwestの運命を分かち合うグループを設定します。west にはオブジェクトがないため、処理中は無視されます。
[edit routing-options]
fate-sharing {
group east {
cost 20; # Optional, default value is 1
from 10.1.3.4 to 10.1.3.5; # A point-to-point link
from 192.168.200.1; # LAN interface
from 192.168.200.2; # LAN interface
from 192.168.200.3; # LAN interface
from 192.168.200.4; # LAN interface
from 10.168.1.220; # Router ID of a router node
from 10.168.1.221; # Router ID of a router node
}
group west {
.....
}
}
MPLS信号LSP向け中間ルーターおよび出口ルーターの設定
MPLSに参加すべきすべてのMPLSルーターでシグナル付きLSPを設定するには、これらのルーターでMPLSとRSVPを有効にする必要があります。
イングレスルーターとエグレスルーター間の接続を設定する
ingressルーターは、プライマリパスを使用してegressルーターへの接続と再接続を何度も試みます。ingressルーターがプライマリパスを使用して接続の確立を試みる頻度と、再試行間の待機時間を制御できます。
再試行タイマーは、ingressルーターがプライマリパスを使用してエグレスegressルーターに再度接続しようとするまでの待機時間を設定します。デフォルトの再試行時間は30 秒です。時間は1秒から600 秒まで可能です。この値を変更するには、 retry-timer ステートメントを含めます。
retry-timer seconds;
以下の階層レベルでこのステートメントを設定できます。
-
[edit protocols mpls label-switched-path lsp-name] -
[edit logical-systems logical-system-name protocols mpls label-switched-path lsp-name]
デフォルトでは、ingressルーターがプライマリパスを使用してegressルーターへの接続を確立または再確立しようとする回数に制限は設定されていません。試行回数を制限するには、 retry-limit ステートメントを含めます。
retry-limit number;
以下の階層レベルでこのステートメントを設定できます。
-
[edit protocols mpls label-switched-path lsp-name] -
[edit logical-systems logical-system-name protocols mpls label-switched-path lsp-name]
制限は10,000までです。再試行の制限を超えると、パス接続の確立は行われません。この時点で、プライマリパスを再起動するために介入が必要です。
再試行制限を設定した場合、正常にプライマリパスが作成されるたびに1にリセットされます。
LSPのPing
次のセクションでは、 ping mpls コマンドを使用してLSPの機能を確認する方法について説明します。
- MPLS LSP の Ping
- ポイントツーマルチポイント LSP の ping
- MPLS LSP のエンドポイント アドレスへの ping
- CCC LSP の Ping
- レイヤー3 VPNのPing
- RFC 4379に基づくLSP pingおよびtracerouteコマンドのサポート
MPLS LSP の Ping
特定のLSPにpingを実行できます。エコー要求は、MPLSパケットとしてLSPを介して送信されます。ペイロードは、127/8の範囲(デフォルトでは127.0.0.1、このアドレスは設定可能です)のアドレスとポート8503に転送されるUser Datagram Protocol(UDP)パケットです。この情報を構築し、この情報を MPLS パケットとして送信するためのラベルとインターフェイス情報は、標準 LSP トラフィックの場合と同じです。
エコー要求がエグレスノードに到着すると、受信側はパケットの内容を確認し、UDPを使用して正しい戻り値を含む応答を送信します。エコー要求を送信するルーターは、2 秒のタイムアウト後にエコー応答を受信するのを待ちます(この値は設定できません)。
リモートルーターで終端するLSPにpingを実行できるようにするには、リモートの [edit protocols mpls] 階層レベルでMPLSを設定する必要があります。LDP転送等価クラス(FEC)のみにpingを実行する場合でも、MPLSを設定する必要があります。
MPLS LSPにpingを実行するには、 ping mpls <count count> <ldp <fec>> <rsvp <exp forwarding-class> <lsp-name>> コマンドを使用します。セカンダリMPLS LSPにpingを実行するには、 ping mpls <count count> <rsvp <lsp-name>> standby path-name コマンドを使用します。このコマンドの詳細については、 CLIエクスプローラーを参照してください。
ping mplsコマンドは、ルーティングインスタンス内ではサポートされていません。
self-pingはマスターインスタンスでサポートされていますが、VLANベースのLSPやCCCで使用されるLSPではサポートされていません。メッセージはLSPごとに表示され、設定の可読性を低下させます。
ポイントツーマルチポイント LSP の ping
ポイントツーマルチポイントLSPにpingを実行するには、 ping mpls rsvp lsp-name multipoint または ping mpls rsvp egress address コマンドを使用します。 ping mpls rsvp lsp-name multipoint コマンドは、すべてのegressルーター識別子のリストと、ポイントツーマルチポイントLSPエグレスルーターの現在のステータスを返します。 ping mpls rsvp lsp-name multipoint egress address コマンドは、指定されたegressルーターの現在の状態を返します。
MPLS LSP のエンドポイント アドレスへの ping
2つのプロバイダエッジ(PE)ルーター間のLSPが稼働しているかどうかを確認するには、LSPのエンドポイントアドレスにpingを実行します。MPLS LSP エンドポイントに ping を実行するには、 ping mpls lsp-end-point address コマンドを使用します。このコマンドは、指定されたアドレスで終端するLSP(RSVPまたはLDP)のタイプと、そのLSPがアップしているかダウンしているかを示します。
このコマンドの詳細については、 CLIエクスプローラーを参照してください。
CCC LSP の Ping
特定のCCC LSPにpingを実行できます。CCC LSP ping コマンドは、MPLS LSP に使用するものと同じです。使用するコマンドは ping mpls <count count> <rsvp <lsp-name>>です。また、 ping mpls <count count> <rsvp <lsp-name>> standby path-name コマンドを使用して、セカンダリスタンバイCCC LSPにpingを実行することもできます。
このコマンドの詳細については、 CLIエクスプローラーを参照してください。
レイヤー3 VPNのPing
同様のコマンド ping mpls l3vpn vpn-name prefix prefix <count count> を使用して、レイヤー 3 VPN に ping を実行できます。このコマンドの詳細については、 ルーティングデバイス用 Junos OS VPN ライブラリ と CLI エクスプローラーを参照してください。
RFC 4379に基づくLSP pingおよびtracerouteコマンドのサポート
このJunos OSは、RFC 4379に基づくLSP ping および traceroute コマンドをサポートしており、 マルチプロトコルラベルスイッチ(MPLS)データプレーン障害を検出します。
RFC 4379に基づくLSP ping および traceroute コマンドは、MPLS TTLの有効期限に依存してLSPがたどるパスをトレースしようとします。LSP は、イングレスからエグレスに複数のパスを取ることができます。これは特に等コストマルチパス(ECMP)で発生します。LSP traceroute コマンドは、LSP ノードへの可能なすべてのパスをトレースできます。