RFC 3031 - MPLS アーキテクチャの中核構成要素(Detailed MPLS Architecture)
3. MPLS アーキテクチャの中核構成要素(Detailed MPLS Architecture)
3.1 転送等価クラス(FEC)
「転送等価クラス」とは、同一の方法・同一の経路で転送される一連のパケットのこと。どの FEC に属するかの判定根拠は、ネットワーク層宛先 prefix でも、明示ルート・サービスクラス(CoS)・送信元・アプリケーション識別でもよい。FEC の粒度はローカル・ポリシーで決まる。
3.2 ラベル(Label)
ラベルは短く固定長で、局所的な意味しか持たない識別子。ラベルはそれが配布された「ラベル空間」内でのみ一意の意味を持つ。ラベルは MPLS 専用の「shim(シム)」ヘッダに符号化しても、ATM の VPI/VCI やフレームリレーの DLCI フィールドに直接符号化してもよい。
3.3 ラベル・スイッチング・ルータ(LSR)
LSR は次を行う装置:入ラベルから ILM を検索、検索結果に従いラベル・スタック操作(置換・プッシュ・ポップ)を実行、次ホップへ転送。LER は MPLS ドメイン境界にあり、「ラベルなしパケット」と「ラベル付きパケット」の変換を担う LSR である。
3.4 ラベル束縛とラベル配布
「ラベル束縛」とは、あるダウンストリーム LSR(Rd)がラベル L を FEC F に束縛し、その束縛をラベル配布プロトコルでピア(Ru)へ通知すること。Ru は束縛を受け取ると、「FEC F のパケットを Rd へ送るにはラベル L を使う」ことを知る。
3.5 ラベル配布モード(Label Distribution Mode)
- ダウンストリーム・オン・デマンド(Downstream on Demand): Ru が FEC のラベルを Rd に要求する。
- ダウンストリーム・アンソリシテッド(Downstream Unsolicited): Rd が要求なく自発的にラベル束縛を通知する。
3.6 ラベル制御モード(Label Control Mode)
- 独立制御(Independent): 各 LSR は FEC を認識すると即座に独立してラベルを束縛・配布する(従来の IP ホップバイホップ・ルーティングの収束と同種)。
- 順序制御(Ordered): LSR は、その FEC の出口 LSR である場合、あるいは次ホップからその FEC のラベル束縛を受け取った場合にのみ、ラベルを束縛・配布する。順序制御は LSP が完成してからトラフィックを流すことを保証し、特定のパス属性(資源予約・明示ルーティング・ノード重複回避)を要する場合に適する。
3.7 ラベル保持モード(Label Retention Mode)
- リベラル保持(Liberal): Rd が現在 Ru の次ホップでなくても、Ru は Rd からの束縛を保持し、ルート変更後に即座に再利用する。代償はより多くのラベル管理。
- コンサバティブ保持(Conservative): Ru は次ホップでない Rd からの束縛を破棄し、必要時に再取得する。代償はルート変更時に再確立が必要だが、ラベル占有は少ない。
3.8 ラベル・スタック(Label Stack)
MPLS はラベル・スタック(LIFO)をサポートする。パケットには複数のラベルをプッシュできる。転送処理は常にスタック最上位のラベルに基づき、ラベルの階層レベルに依らない。スタック深さが m のとき、底から level 1、level 2、…、level m ラベルと呼ぶ。ラベル・スタックの導入により「LSP トンネル」と「MPLS 階層化」が可能になる(§3.27 参照)。
3.9 NHLFE(次ホップ・ラベル転送エントリ)
NHLFE はラベル付きパケットの転送に用い、以下を含む:
- パケットの次ホップ
- ラベル・スタックに対する操作:最上位ラベルの置換/ポップ/置換+1つ以上の新ラベルのプッシュ
- さらに:データリンク・カプセル化方式、ラベル・スタック符号化方式、正しい処理に必要なその他の情報
次ホップが自 LSR そのものの場合は「ポップ」を実行し、残りの内容(別ラベルか生 IP)で自機再度転送決定を行う。
3.10 ILM(入ラベル・マップ)
ILM は各入ラベルを NHLFE 群へマップする。複数 NHLFE へマップされる場合、転送前にいずれかを選択する(等価マルチパス負荷分散等)。選択方法はアーキテクチャ外。
3.11 FTN(FEC から NHLFE へのマップ)
FTN は「到着時ラベルなしだが、まずラベルを付けて転送すべき」パケットに用いる。LSR はネットワーク層ヘッダを解析して FEC を決定し、FTN で NHLFE へマップする。複数 NHLFE へマップされる場合は転送前に選択する。
3.12 ラベル・スイッチング(Label Swapping)
ラベル付きパケットの転送:LSR は最上位ラベルを検索 → ILM → NHLFE → 次ホップ決定とラベル・スタック操作 → 新ラベル・スタックを符号化して転送。 ラベルなしパケットの転送:LSR はネットワーク層ヘッダを解析して FEC 決定 → FTN → NHLFE → ラベルを付けて転送。
重要: ラベル・スイッチング使用時、次ホップは常に NHLFE から得られ、場合によっては「MPLS を使わない場合の次ホップ」と異なることがある。
3.13 ラベルのスコープと一意性(Scope and Uniqueness of Labels)
Rd はラベル L1 を FEC F に束縛して Ru1 へ、L2 を同じ FEC F に束縛して Ru2 へ配布できる。L1==L2 かはローカルで決まる。Rd が受信した最上位ラベル L が Ru1 か Ru2 のどちらからプッシュされたかを区別できれば、F1==F2 を要せず、Rd は Ru1・Ru2 に異なる「ラベル空間」を使っていると見なせる。
Ru1・Ru2 が Rd の唯一の配布ピアであり、いずれもポイント・ツー・ポイント接続で直結している場合のみ、Rd は「インタフェース単位スコープ」のラベル(per-interface label space)を使える。そうでなければラベルは Rd 装置全体で一意(per-platform label space)でなければならない。Rd が Ru と2本のポイント・ツー・ポイント接続で結ばれる場合は、同一ラベル値に異なる FEC を束縛できるが、その束縛が当該インタフェース上のパケットにのみ有効なときに限る。それ以外では Rd は同一ラベル値を2つの異なる FEC に束縛してはならない(異なる階層どうしであっても不可——MPLS に「階層ごとに異なるラベル空間」という概念はない)。
3.14 ラベル・スイッチド・パス(LSP)、LSP 入り口、LSP 出口
「level m の LSP」とは一連のルータ <R1, ..., Rn> であり、R1(LSP 入り口)がラベルをプッシュしてスタック深を m とし、途中各 Ri が level m ラベル(ILM 検索)に従い転送し、R1 から R[n-1] までスタック深は常に m 以上であり、その間通過する L2 スイッチ S は level m ラベルにもネットワーク層ヘッダにも基づかず転送(全く見ないか、より上の階層のラベルを見る)する。
「ある FEC F の LSP」とは、level m ラベルが FEC F に対応するとき、あるパケット P に対する level m LSP をいう。同一の LSP 出口を根とし複数の入り口 LSP を集約してできる木を、その FEC の「LSP ツリー」(マルチポイント・ツー・ポイント木)と呼ぶ。
3.15 最終前ホップ・ポップ(Penultimate Hop Popping)
§3.14 の定義により、R[n-1] が Rn へ P を送る際、スタック深は m-1 でもよい。すなわち「最終前ホップ」でポップし、出口ではポップしない。これはアーキテクチャ上完全に正当:level m ラベルの目的は P を Rn へ届けることであり、R[n-1] が Rn へ送ると決めた時点でそのラベルは無用になる。
利点:出口は1回の検索(2回ではない)、最終前ホップも1回の検索で済み、ハードウェア「ファスト・パス」の簡略化と時間予算管理に寄与する。この場合 LSP 出口は LSR でなくてもよい。しかしポップできないハードウェアもあるため強制はできず、LSP 出口が「明示的に要求した」場合、または「LSP 次ホップが MPLS 非対応」の場合にのみ最終前ホップはポップする。ポップ可能な LSR は、ダウンストリーム・ピアが要求したときは最終前ホップ・ポップを実行しなければならない。初期ネゴシエーションで隣接がポップを支援するか判定できねばならず、支援しない者にはポップを要求してはならない。
3.16 LSP 次ホップ(LSP Next Hop)
ある LSR におけるラベル付きパケットの「LSP 次ホップ」とは、そのパケット転送に用いる NHLFE が指定する次ホップ。ある FEC の LSP 次ホップとは、その FEC に対応するラベルで索引される NHLFE が指定する次ホップ。LSP 次ホップは、ネットワーク層ルーティング・アルゴリズムが選んだ次ホップ(L3 次ホップ)と異なることがある。
3.17 不正な入ラベル(Invalid Incoming Labels)
LSR が何らかの入ラベル付きパケットを受け取ったが、そのラベルの束縛が存在しない場合、ラベルを単に剥いでラベルなし IP パケットとして転送してはならない——そうすると場合によってはループを形成する(上流は明示ルーティングと見なし、下流は束縛なしと見なして、ラベルなしのホップバイホップ・ルーティングがパケットを上流へ戻す可能性がある)。したがって、不正な入ラベル付きパケットを受け取ったら、ラベルなし転送しても害がないと何らか確定できない限り破棄しなければならない。
3.18 LSP 制御:順序 vs 独立
§3.6 参照。独立制御は各 LSR が独立決定(従来 IP 収束と同種)。順序制御は出口 LSR であるか次ホップから束縛を受け取ったときのみ束縛する。トラフィックが特定属性(ノード重複なし・資源保障・明示的パス指定等)のパスを辿る必要があるなら、順序制御を使わねばならない。順序 LSP の確立は入り口または出口から開始できる。両制御は完全に相互運用可能;ただし LSP 内に非順序制御ノードがあれば全体挙動は独立制御に近づく。アーキテクチャはこの選択をローカル事項とする。
3.19 集約(Aggregation)
各ルーティング表 prefix ごとに FEC を立てると、MPLS ドメイン内で同一経路を辿る FEC が大量発生し得る。そのとき、これら FEC の和集合をより大きな1つの FEC とし、ラベルを1つだけ束縛する——これを「集約」という。集約はラベル数とラベル配布制御トラフィックを低減する。
与えられた集約可能 FEC 群に対し、(a) 1つの FEC に集約(最粗粒度)、(b) 複数 FEC に集約、(c) 全く集約しない(最細粒度)を選べる。順序制御では、各 LSR は次ホップの使う粒度に合わせるべき。独立制御では隣接 LSR 間で粒度が異なり得る:Ru が Rd より細かければ、より多くのラベルを Rd のより少ないラベルへマップするだけ(必要に応じ再送・撤回);Ru が Rd より粗ければ、Rd のより細かい粒度を優先(m 個撤回し n 個配布)するか、m 個のラベルを Rd の n 個のラベルの部分集合へマップする(ルーティング結果が同じと確定できるなら)。全 LSR は(設定により)割り当てたラベルの粒度を知っておく必要がある。
3.20 ルート選択(Route Selection)
MPLS は2種の LSP ルート選択を支援:(1) ホップバイホップ・ルーティング;(2) 明示ルーティング。ホップバイホップでは各ノードが独立に次ホップを選ぶ(既存 IP 網の通常方式)。明示ルーティングでは単一の LSR(通常は入り口または出口)が LSP 中の一部または全部のノードを指定:全部指定なら「厳密明示ルーティング」、一部指定なら「緩やかな明示ルーティング」。明示ルーティングのノード列は設定で決めても、単一ノード(出口がリンク状態データベースから計算等)が動的に計算してもよい。明示ルーティングはポリシー・ルーティングやトラフィック・エンジニアリングに有用;MPLS はラベル割当時に明示ルーティングを指定するため、各 IP パケットに付与する必要がなく、IP ソース・ルーティングよりずっと効率的。具体的使用手順はアーキテクチャ外。
3.21 出ラベル欠如(Lack of Outgoing Label)
ラベル付きパケットが LSP を辿る際、ある LSR に達したがその ILM が(正当な)入ラベルをいかなる NHLFE にもマップしていないことがある(過渡状態または次ホップ誤りによる)。このときも、単にラベル・スタックを剥いでネットワーク層ヘッダで転送を続けてはならない——元が明示ルーティング LSP ならループし得るし、ネットワーク層ヘッダ情報だけでは本 LSR が正しく転送できないかもしれない。両方の事象が存在しないと確定できない限り、唯一安全な処置はパケットを破棄することである。
3.22 生存時間(TTL)
従来 IP は1ホップごとに TTL を1減らし、0 なら破棄し、設定ミスや収束の遅れによるループに対する一定の保護を提供する。TTL はマルチキャスト範囲制御や traceroute にも用いられる。MPLS は2種の TTL 問題を処理せねばならない:(i) ループ抑制;(ii) 範囲制限等その他の機能実現。
パケットが LSP を辿った後、その TTL は「ラベル・スイッチングを行わず同一ルータ列を辿った場合」と等しくあるべき;LSP 階層を経るなら、通過した LSR ホップ総数が TTL に反映されるべき。
具体処理はラベルが MPLS 専用 shim ヘッダ([MPLS-SHIM])に符号化されているか、L2 ヘッダ(ATM の [MPLS-ATM]、フレームリレーの [MPLS-FRMRLY])に符号化されているかで異なる:
- shim ヘッダに符号化される場合、shim には TTL フィールドが必須であり、ネットワーク層ヘッダ TTL からロードし、LSR 各ホップで1減らし、LSP 離脱時にネットワーク層ヘッダ TTL へコピーし直す。
- L2 ヘッダ(ATM AAL5 の VPI/VCI 等)に符号化され、L2 スイッチが転送し、L2 に TTL フィールドがない場合、ホップごとの TTL 減算は不可能。この「TTL を減らせない LSR 列からなる LSP 区間」を「非 TTL LSP 区間」という。パケットがその区間を離脱するとき、通過 LSR ホップ数を反映した TTL を与える(ユニキャストでは入り口へ LSP 長を伝播し、入り口が投入前に TTL を減らす)。非 TTL LSP 区間に入るときに、あるパケットの TTL がその区間出口に達する前に尽きることが判定できれば、その LSR は当該パケットに対するラベル・スイッチングをしてはならない(traceroute 用の別手順、例えば traceroute パケットを通常のホップバイホップ転送とする、の開発が必要)。
3.23 ループ制御(Loop Control)
非 TTL LSP 区間では TTL によるループ防止が使えない。その重要性は LSR 機能を提供するハードウェアに依存する。例えば ATM 交換ハードウェアでラベル(VPI/VCI)を担う場合、ハードウェアが TTL を減らせなければ保護がない;ハードウェアが異なる VPI/VCI の入信元セルに公平なバッファ・プール・アクセスを提供できれば、過渡的ループが他トラフィックへ甚大な影響を及ぼすことはない;できなければ過渡的ループでも全体性能を著しく劣化させる。
たとえ公平バッファを提供できても、「あり得る時間」を超えるループを検出する価値はある。さらに、TTL/VC ごとの公平キューでループに耐えられても、可能なときはループする LSP の確立を避けるのが望ましい。したがって非 TTL LSP 区間に接続し得るすべての LSR は、共通のループ検出技法を支援せねばならないが、その技法の使用は任意(詳細は [MPLS-ATM] と [MPLS-LDP])。
3.24 ラベル符号化(Label Encodings)
ラベル・スタックをパケットと共に運ぶには、ラベル・スタックの具体的符号化を定義する必要がある。アーキテクチャは、転送装置の種類に応じ複数の符号化を支援する。
3.24.1 MPLS 専用ハードウェア/ソフトウェア
最も直観的なのは、データリンク層とネットワーク層ヘッダの間に「shim」プロトコルを置き、これを「プロトコル非依存」のネットワーク層カプセル化(generic MPLS encapsulation)とし、さらにそれをデータリンク層プロトコル上に載せる方式。[MPLS-SHIM] 参照。
3.24.2 ATM スイッチを LSR として使用
MPLS 転送過程は ATM 等の従来「ラベル・スイッチング」スイッチと類似:ATM スイッチは入ポート+入 VPI/VCI で「クロスコネクト表」を索引し、出ポートと出 VPI/VCI を得る。ラベルをこれらフィールドに直接符号化できれば、ソフトウェア更新だけで従来スイッチを LSR(ATM-LSR)として使える。ATM セルヘッダ(AAL5 を想定)でラベルを符号化する3方式:
- SVC 符号化: VPI/VCI で最上位ラベルを符号化。各 LSP は1つの ATM SVC として実現され、ラベル配布プロトコルは ATM シグナリング・プロトコルとなる。この方式では ATM-LSR はラベル・スタックのプッシュ/ポップ操作ができない。
- SVP 符号化: VPI で最上位ラベルを、VCI でスタック中2番目のラベル(存在すれば)を符号化。ATM「VP スイッチング」(LSP を ATM SVP として実現)が可能。しかしネットワーク内に非 MPLS ATM 網を通過する ATM 仮想パスが存在すると VPI が MPLS に使えないかもしれない;この符号化では VP 出口の ATM-LSR は実際に1回の「ポップ」を実行する。
- SVP マルチポイント符号化: VPI で最上位ラベルを、VCI の一部で2番目のラベルを、残りの VCI 部で LSP 入り口を符号化。通常の ATM VP スイッチング能力によりマルチポイント・ツー・ポイント VP を実現し、異なるパケットのセルは異なる VCI を運ぶことで、マルチポイント・ツー・ポイント VP は支援するが VC マージは支援しない ATM スイッチ上でも、セル交錯問題なしにラベル・マージを実現する。この方式は、各 ATM スイッチに16ビット VCI 値を割り当てられ、かつ同一 VCI 値が2つの異なるスイッチに割り当てられない能力に依存する。
スタック上のラベル数が ATM ヘッダで符号化できる数を超える場合は、ATM 符号化と汎用 shim 符号化を組み合わせて使わねばならない。
3.24.3 符号化技法間の相互運用
LSP の異なるホップ上で異なる符号化を使える。ラベル付きパケットを処理するとき、LSR はまず現在のラベル・スタックを復号し、操作し、適切に符号化して次ホップへ送る。しかし ATM スイッチは2符号化間の変換ができないため、アーキテクチャは「ある level m LSP 上の連続する2つの LSR になり得る ATM スイッチは、同一の符号化技法を使わねばならない」と要求する。「ATM インタフェース+MPLS shim インタフェース」を持つ LSR は、入インタフェースで ATM 符号化ラベル・スタックを降ろし、出インタフェースで MPLS shim 符号化ラベル・スタックに換えられる。
3.25 ラベル・マージ(Label Merging)
ある LSR が複数の入ラベルを同一 FEC に束縛し、その FEC のトラフィック転送時に、これらすべてのパケットに単一の出ラベルを適用したい場合——これを「ラベル・マージ」という。
ある LSR が「マージできる」とは、異なる入インタフェースから、あるいは異なるラベルで到着した2つのパケットを、同一出インタフェースから同一ラベルで送出できる(送出後、異なるインタフェース/ラベル由来の情報は失われる)ことをいう。LSR が「マージできない」とは、異なるインタフェースから、あるいは異なるラベルで到着した2つのパケットは、異なるインタフェースへ、あるいは異なるラベルで送り出されねばならないことをいう。SVC/SVP 符号化を用いる ATM-LSR はラベル・マージを実行できない。
マージできない LSR は、同一 FEC で異なる入ラベルのパケットを異なる出ラベルで転送せねばならない。マージ時は FEC ごと出ラベル数は1で足りる;非マージ時は FEC ごと出ラベル数が全網ノード数に達し得る。マージ時は FEC ごと必要入ラベル数はラベル配布隣接数を超えない;非マージ時はその FEC トラフィックを本 LSR へ転送する上流ノード数に達し得、事前にいくつ必要かも不定。アーキテクチャはマージ可能・不可能な両 LSR を包摂し、両者の相互運用手順も含む。
3.25.1 マージできない LSR
MPLS 転送過程は ATM・フレームリレーと類似:データ単位が到着 → ラベル(VPI/VCI または DLCI)でクロスコネクト表を検索 → ポートを選択 → ラベル値を書き換え;ラベル配布プロトコルはクロスコネクト表を築く「シグナリング・プロトコル」となり得る。しかしこれら技術は必ずしもマージを支援しない:ATM で強引にマージすると異なるパケットのセルが交錯し再構成不能になる;バックプレーンをセル交換とする一部フレームリレー・スイッチも同様にセル交錯で再構成不能になり得る。
MPLS は2つの解決策を提供:一つはマージできない LSR の使用を許す手順を含むこと、もう一つは一部の ATM スイッチをマージ可能 LSR として働かせることを支援すること。MPLS は両者が正しく相互運用する手順も含む。
3.25.2 マージ可能/不可能 LSR のラベル
マージを支援する上流 LSR には、FEC ごとラベル1つで足りる;マージを支援しない上流隣接には、FEC ごと複数ラベル(具体的数はその上流ノード数により不確定)が必要。アーキテクチャは規定する:マージを支援しない上流隣接に対しては、その FEC のラベルを明示的に要求しない限り、いかなるラベルも送らない;上流は複数回要求でき、その都度新ラベルを与える;下流隣接もまたマージを支援しないときは、その下流隣接へさらにラベルを要求しに行かねばならない。
限られた個数の入ラベルしか1つの出ラベルにマージできないノード(例:ハードウェア制限で最大4つの入ラベルしかマージできず、6つ受け取った)も存在し、その場合は2つの出ラベルにマージしてよい。明示ルーティング LSP へのラベル・マージ適用は今後の研究課題。
3.25.3 ATM 上のマージ
セル交錯の除去法:
- VP マージ(SVP マルチポイント符号化): 複数仮想パスを1つの仮想パスにマージし、異なる発信元のパケットは VP 内の異なる VCI で区別。
- VC マージ: スイッチは1パケットの全セルを(AAL5 フレーム終端指示で判定)整パケット受信するまでバッファし、それから送出。
VP マージはより多くの既存 ATM 実装と両立し、マージ点で遅延とバッファ要求を導入しないが、各 VP 内の VCI 空間の調整が必要。採用方式は今後の研究課題。MPLS は「既存機器との両立」と「プロトコル複雑度/スケーラビリティ」の両立のため、VP マージと VC マージの両方を支援するのが望ましい。MPLS に関与する各 ATM スイッチは、直結する ATM 隣接が VP マージ・VC マージ・非マージのいずれを行うかを知っておく必要がある。
相互運用(VC マージ・VP マージ・非マージ): まず VC マージと非マージの相互運用を述べるのが易しい——すべて VC(VPI+VCI スプライス)転送に基づく。上流隣接が VC マージなら VPI/VCI は1つで足りる;非マージなら自らに1つの VPI/VCI に加え、その上流隣接へ十分な数を渡す必要がある。VP マージノードは1つの VP(VPI 識別)とその VP 内の複数 VCI を要求する。三者を同時支援するには、「ゼロ個以上の VC 識別(VPI/VCI)+ゼロ個以上の VP(VPI 識別、各 VP は指定数の VC(VCI 集合)を含む)」の組合せを上流ノードが要求できるよう許容せねばならない。
3.26 トンネルと階層化(Tunnels and Hierarchy)
ルータ Ru が、自らと Rd がパケットのホップバイホップ経路上の隣接ルータでなく、かつ Rd がパケットの最終宛先でもないにもかかわらず、あるパケットを別のルータ Rd へ明示的に配送することがある——例えばパケットを宛先アドレスが Rd のネットワーク層パケット内にカプセル化し、Ru から Rd への「トンネル」を形成する。このように処理されるパケットを「トンネル・カプセル化されたパケット」という。
-
ホップバイホップ・ルーティング・トンネル: トンネル・カプセル化パケットが Ru→Rd のホップバイホップ経路を辿るなら「ホップバイホップ・ルーティング・トンネル」といい、その「送信端点」は Ru、「受信端点」は Rd。
-
明示ルーティング・トンネル: トンネル・カプセル化パケットが非ホップバイホップ経路を辿るなら「明示ルーティング・トンネル」(ソース・ルーティング・カプセル化等)。
-
LSP トンネル: LSP を用いてトンネルを実現し、ネットワーク層カプセル化ではなくラベル・スイッチングでパケットをトンネル通過させる。トンネルとは LSP
<R1, ..., Rn>であり、R1 が送信端点、Rn が受信端点。そのトンネルへ送るべきパケット群は1つの FEC を成し、トンネル中各 LSR はその FEC(すなわちトンネル)にラベルを割り当てねばならない。パケットを LSP トンネルへ送り込む方法は、送信端点がトンネル・ラベルをプッシュしトンネル次ホップへ送ること。トンネル受信端点が受信パケットを区別する必要がなければ、最終前ホップでポップしてよい。- 「ホップバイホップ・ルーティング LSP トンネル」=送信端と受信端間のホップバイホップ・ルーティング LSP。
- 「明示ルーティング LSP トンネル」=同時に明示ルーティング LSP でもある LSP トンネル。
-
階層化:LSP 中の LSP トンネル: LSP
<R1,R2,R3,R4>を考える。R1 がラベルをプッシュしてその(ホップバイホップ)経路を辿らせるが、R2・R3 は直接接続せず、ある LSP トンネルの端点として隣接しているとする。すると P は実際には<R1,R2,R21,R22,R23,R3,R4>を経る。P が R1 から R2 へはスタック深1;R2 はラベル検索でトンネルへ入るべきと知り、入ラベルを R3 に意味のあるラベルに置換し、さらに R21 に意味のある level 2 ラベルをプッシュ;R21/R22/R23 は level 2 ラベルでスイッチ;R23(R2-R3 トンネルの最終前ホップ)がポップして R3 へ;R3 は P が level 1 ラベルのみ(既にトンネル脱出)と見て、P の level 1 LSP の最終前ホップとしてポップ、R4 はラベルなしの P を受け取る。ラベル・スタック機構により LSP トンネルの任意深さの入れ子が可能。 -
ラベル配布ピアと階層化: level 1 LSP
<R1,R2,R3,R4>上で、R2→R3 は level 2 LSP<R2,R21,R22,R3>を辿る。level 2 LSP に対し R2 のピアは R21;level 1 LSP に対し R2 のピアは R1 と R3。各階層にそのラベル配布ピアが得る。R2 と R21 は IGP 隣接でなければならないが、R2 と R3 はそうでなくてよい。- IGP 隣接でもあるものを「ローカル・ラベル配布ピア」、IGP 隣接でないがラベル配布ピアになり得るものを「リモート・ラベル配布ピア」という。上例では R2-R21 がローカル、R2-R3 がリモート。
- アーキテクチャは層間でラベルを配布する2方式を支援:明示的ピア(ピアへ明示的に宛名付けされたラベル配布メッセージを送る。リモート・ピアが少数・上位束縛が多数・またはリモートが異なるルーティング領域/ドメインにある場合に適す)と暗黙的ピア(明示的に宛名付けされたメッセージを送らず、上位ラベルを下位ラベルの属性として、下位ラベルと共にローカル・ピアへ配布し、それがさらに伝播する。リモート・ピアが多数の場合に適すが、中間ノードが直接には関心のない情報を格納せねばならない)。
3.27 ラベル配布プロトコル転送(Label Distribution Protocol Transport)
ラベル配布プロトコルは MPLS ノード間でラベル束縛を確立・維持するために用いる。正しく動作するには、ラベル配布情報は信頼性ある転送であり、同一 FEC に関するメッセージは順序通り転送され、できればフロー制御もでき、1データグラムに複数ラベル・メッセージを載せられるのがよい。一つの達成法は TCP を下位転送として使うこと([MPLS-LDP] と [MPLS-BGP] はそうしている)。
3.28 なぜラベル配布プロトコルは1つでないか?
アーキテクチャは「いかなる場合にいかなるプロトコルを」とは決めないが、いくつかの考慮を挙げる:
- BGP と LDP: 多くの状況で、ラベル束縛を「アドレス prefix で識別可能な FEC」へ結びつけるのが適当。そのルートを配布する標準かつ広く配備されたルーティング・アルゴリズムがあるなら、ラベル配布をルーティング配布に「相乗り」させるのが最良。例えば BGP はこの種ルートを配布する;BGP 話者が BGP ピアへラベルも配布すべきなら、BGP を用いたラベル配布([MPLS-BGP])は、BGP ルート・リフレクタにもラベル配布をさせられ、BGP ピア間で LDP を用いてラベル配布する場合に比べ显著な拡張性優位がある。
- RSVP Flowspec へのラベル配布: RSVP で特定フローに資源予約を確立するとき、そのフローのパケットにラベルを付けることで各ホップでの RSVP filterspec 適用が不要になり、RSVP が path/resv 確立過程でラベル配布を「おまけ」で行うのが最も効率的。
- 明示ルーティング LSP へのラベル配布: トラフィック・エンジニアリング等の応用は、入り口から出口へ明示ルーティングを確立し、沿道で資源を予約せねばならない。2つの考え:資源予約プロトコルを拡張して明示ルーティングとラベル配布を支援([MPLS-RSVP-TUNNELS])、またはラベル配布プロトコルを拡張して明示ルーティングと資源予約を支援([MPLS-CR-LDP])。
3.29 マルチキャスト(Multicast)
本節は今後の研究課題。