付録 A. LDP のラベル配布手順
本セクションは, 次のイベントに対する LSR の応答という観点からラベル配布の動作を規定する:
- Receive Label Request Message;
- Receive Label Mapping Message;
- Receive Label Abort Request Message;
- Receive Label Release Message;
- Receive Label Withdraw Message;
- Recognize new FEC;
- Detect change in FEC next hop;
- Receive Notification Message / Label Request Aborted;
- Receive Notification Message / No Label Resources;
- Receive Notification Message / No Route;
- Receive Notification Message / Loop Detected;
- Receive Notification Message / Label Resources Available;
- Detect local label resources have become available;
- LSR decides to no longer label switch a FEC;
- Timeout of deferred label request.
イベントに対する LSR の応答の規定は 3 つの部分から成る:
-
概要 (Summary). そのイベントに対する LSR の応答を概観として述べる文章.
-
コンテキスト (Context). 規定のアルゴリズム (Algorithm) 部分から参照される要素のリスト. (3 を参照.)
-
アルゴリズム (Algorithm). そのイベントに対する LSR の応答のアルゴリズム.
概要は, 簿記 (bookkeeping) の動作, または使用中の LSR のラベル広告モード, 制御モード, もしくはラベル保持モードに依存する動作といった, LSR の応答の細部を省略することがある. 意図は, アルゴリズムが LSR の応答を完全かつ曖昧さなく規定することである.
本セクションのアルゴリズムは, ホップバイホップでルーティングされるトラフィックに対して MPLS アーキテクチャ仕様 [RFC3031] で定義された手順を使用する. これらの手順は次のとおり:
-
Label Distribution 手順. これは下流 LSR が, LDP ピアへ FEC のラベルをいつ配布するかを決定するために実行する. アーキテクチャは 4 つの Label Distribution 手順を定義する:
. Downstream Unsolicited Independent Control. [RFC3031] では PushUnconditional と呼ばれる.
. Downstream Unsolicited Ordered Control. [RFC3031] では PushConditional と呼ばれる.
. Downstream On Demand Independent Control. [RFC3031] では PulledUnconditional と呼ばれる.
. Downstream On Demand Ordered Control. [RFC3031] では PulledConditional と呼ばれる.
-
Label Withdrawal 手順. これは下流 LSR が, 以前に LDP ピアへ配布した FEC ラベルマッピングをいつウィズドローするかを決定するために実行する. アーキテクチャは単一の Label Withdrawal 手順を定義する. LSR がラベルと FEC の間のバインディングを断ち切るたびに, それは, 以前にそのマッピングを送信したすべての LDP ピアからその FEC ラベルマッピングをウィズドローしなければならない (MUST).
-
Label Request 手順. これは上流 LSR が, 下流 LSR に対してある FEC にラベルをバインドし対応するラベルマッピングを自身に送信することをいつ明示的に要求するかを決定するために実行する. アーキテクチャは 3 つの Label Request 手順を定義する:
. Request Never. LSR は決してラベルを要求しない.
. Request When Needed. LSR は必要になったときはいつでもラベルを要求する.
. Request On Request. この手順は, ラベルマージを行わない LSR によって使用される. LSR は, 必要になったときはいつでも要求するのに加えて, ラベルの要求を受信したときにラベルを要求する.
-
Label Release 手順. これは上流 LSR が, 以前に受信したある FEC のラベルマッピングをいつ解放するかを決定するために実行する. アーキテクチャは 2 つの Label Release 手順を定義する:
. Conservative Label retention. [RFC3031] では ReleaseOnChange と呼ばれる.
. Liberal Label retention. [RFC3031] では NoReleaseOnChange と呼ばれる.
-
Label Use 手順. これは LSR が, ある FEC ラベルをいつ転送/スイッチングに使用し始めるかを決定するために実行する. アーキテクチャは 3 つの Label Use 手順を定義する:
. Use Immediate. LSR は, FEC ネクストホップから受信したラベルを直ちに転送/スイッチングに使用する.
. Use If Loop Free. LSR は, FEC ネクストホップから受信した FEC ラベルを, そうすることによって転送ループを引き起こさないことを判定した場合にのみ, 転送/スイッチングに使用する.
. Use If Loop Not Detected. この手順は, LSR がその FEC の LSP でループを検出した場合を除き, Use Immediate と同じである. FEC ラベルの転送/スイッチングへの使用は, その FEC のネクストホップが変化するかループがもはや検出されなくなるまで継続される.
このバージョンの LDP はループ防止メカニズムを含まない. したがって, 以下の手順は Use If Loop Free 手順を使用しない.
-
Label No Route 手順 ([RFC3031] では NotAvailable 手順と呼ばれる). これは上流 LSR が, FEC ラベルマッピングの要求に応答して下流 LSR から届く No Route 通知にどのように応答するかを決定するために実行する. アーキテクチャ仕様は 2 つの Label No Route 手順を定義する:
. Request Retry. LSR は, より後の時点でラベル要求を発行すべきである.
. No Request Retry. LSR は, 下流 LSR がネクストホップを持つときには下流 LSR がラベルマッピングを提供するであろうと想定すべきであり, その要求を再発行すべきではない.