間違いだらけのネットワーク作り(76) 99/05/15
「MPLS」
 
 
 情報化研究会会員の矢野さんがMPLSのIETF DRAFTを翻訳して送ってくれました。高速IPネットワークを専門とする矢野さんから見れば、ここ数回の記事での私のいい加減さを見て「もう少し勉強したら」と思ったのでしょう。しかし、私の興味は技術の詳細にはありません。技術の内容は「文学的に」理解した上で、その技術で「何が出来るのか」、「メリットとデメリットは何か」を 踏まえて「何に使うか」「どう使うか」が私の主たる関心です。
 
 翻訳の最初の部分を紹介します。翻訳はいいのでしょうが、いかんせん元の文章が分かり難いのでしょう。私はこういう文章を追っかけて理解するのはイヤです。でも、「TagSwitchingやMPLSはATMやフレームリレーがVCIやDLCIを使って当たり前にやっていることをコネクションレスなIPが無理やり真似している」、という私の文学的理解は間違いではないようです。それが証拠にこのドキュメントではフレームリレーのDLCIを「フレームリレー回線を識別するためにフレームリレー網で使われるラベル」と定義しています。TagSwitchingでTagと言っているのがMPLSではLabelと言い換えられているだけです。(また、いいかげんな断定)

 そのうち、IPが可変長ではやはりQoS保証が難しいから、網に入った瞬間にラベル付けと固定長へのフラグメントをしてしまえ、といったことが始まるとATMとIPの差はまた少なくなります。同じパケット技術で同じ機能を持とうとすれば仕組みが似てくるのは当然。もともと生まれが「いいかげんな」IPを無理やりしつけて、生まれの良いATMのように仕立てるというのが本当に正しいことなんでしょうか?
 

以下、矢野さんの翻訳引用。

Network Working Group                                      Eric C. Rosen
Internet Draft                                       Cisco Systems, Inc.
Expiration Date: August 1999
                                                        Arun Viswanathan
                                                     Lucent Technologies

                                                             Ross Callon
                                               IronBridge Networks, Inc.
                                                           February 1999
               Multiprotocol Label Switching Architecture

1. Introduction to MPLS
1.1. Overview
  コネクションレス型ネットワーク層プロトコルのパケットを考え、そのパケットがあるルータから次のルータに転送される時のことを想定しよう。その時にそれぞれのルータはお互いのルータが連係し合うのではなくそのルータ、そのルータで別個に転送する。すなわち、ルータそれぞれが(パケットがやってきたらその度に)パケットヘッダを解析するのである。そして、ネットワーク層の経路制御アルゴリズムはそれぞれのルータで同じように実行されている。それぞれのルータは他のルータに左右されることなく、独立してパケットが次に行くべき場所を決定する。
  その転送先は経路制御アルゴリズムの結果とパケットヘッダの分析結果から決まる。パケットヘッダにはきわめて多くの情報が含まれており、次の転送先を選ぶだけではなく、それ以上の情報も引き出すことができる。そのため、次のホップを選ぶということは二つの仮定に分けて考えられる。はじめの過程は可能性があるパケットを全部考えて、それを方路(転送のされ方が等しくなるようなパケットの組)に分類しなおすことである。次の過程はそれぞれの方路(転送され方が等しくなるようなパケットの組)を次のホップへと対応付けることである。
  そのため、一つのFEC(forwarding equivalence class:同じように(例えば、同じ経路
を辿るとか転送の際に同じ処理がされる)転送されるIPパケットのグループに対応付けてしまえば、それぞれ違ったパケットであっても転送先を決めるということに限って言えば、パケットの区別はつかない。パケットがある一つのFECに属していて、なおかつある一つのノードからやって来た場合、まったく同じ経路を辿っていく。(ある種のマルチパス経路制御をしていた場合、そのFECが関連づけられている複数の経路を辿ることになる。)  従来のIP転送の場合を考えよう。ルータが二つのパケットを同じFECに属するとみなすことがある。それは二つのパケットがルータの経路制御表で同じアドレスプレフィックスであった場合である。(この時の「同じアドレス」というのは「それぞれのパケットの宛先アドレスが最長一致で同じプレフィックスを持っていた場合のことである。)パケットが転送されていくと、それぞれのホップで順番にパケットは再試験され、その度毎にあるFECに対応づけられる。
  MPLSではあるパケットがあるFECに対応付けられるのは一度だけである。それはパケットがネットワークに入ってきたときになる。対応付けされたパケットは"label"という名の短い固定長の値を付加される。パケットが次のホップへ転送される時にそのLabelも一緒に送られる。これがパケットのラベル付けである。それに続くホップではもはやネットワークレイヤーのヘッダーを分析することはない。それどころかlabelはその次のホップや新しいlabelを決めるテーブルでのインデックスとして使われるようになる。
  MPLSの転送パラダイムではパケットが一度FECに対応付けられると、続くルータではもうヘッダの分析は行わない。すべての転送がlabelを使って行われる。これは従来のネットワークレイヤでの転送にくらべていくつかの利点がある。
    MPLS転送はスイッチを使って行うことができる。そのスイッチはlabelを参照し、置換できる。それは、ネットワークレイヤのヘッダを分析はできない(もしくは十分な早さでネットワークレイヤのヘッダを分析はできない)ようなスイッチであっても構わない。    パケットがネットワークに入る時にFECに対応付けられるため、FECに対する対応を決める際に、入口になるルータではネットワークレイヤヘッダに含まれていない情報であってもそのパケットに関する情報なら利用できる。例えば、違ったポートに到着したパケットは違ったFECに対応付けられる。一方、従来のパケット転送ではパケットを転送する情報としてパケットヘッダだけが用いられる。(訳者注:つまり従来の方式では入って来たポートの違いは無視される)
    ある特定のルータからネットワークに入ってきたパケットは、別のルータから入って来た同様のパケットと違うラベルを付加される。その結果として転送の決定は入口のルータに依存して容易に行われる。これは従来の転送ではできない。パケットの入って来たルータの識別する情報はパケットには含まれていないためである。

***どのようにパケットをFECに割り当てるを決める考慮はより複雑になってもよい。
ラベルされたパケットを主として転送するルータにはその影響はほとんどない。
(意味の取り方が二つある??)

     時にはある特定のルートに沿ってパケットを転送するように強制する方が望ましいこともある。そのルートはそのパケットがネットワークに入ってきた時(もしくはその前)に選択されるものである。(その方式は)パケットがネットワークを転送されていく時に通常のダイナミックルーティングで選択される経路とは違う。これ(特定のルートに沿った転送)はポリシーもしくはトラフィック制御によって行われるだろう。従来の転送ではそれを行うにはパケット自体がルート情報を持つ、"ソース・ルーティング"を行わなければならなかった。MPLSではラベルはその特定のルートを示すことができ、ルートの識別をするためにパケットに情報を載せる必要はない。
  ルータによってはネットワークレイヤヘッダを分析して、パケットのネクストホップを選ぶだけではなくて"優先度"や"サービスクラス"を決めるために使う。それらは異なる廃棄のしきい値に適応されたり、異なるパケットをスケジューリングする際に使われたりする。MPLSではlabelを使って完全にもしくは部分的に優先度やサービスクラスを伝達することが可能である(もちろん必須ではない)。このケースではlabelはFECと優先度とサービスクラスを組み合わせたものを示していると言える。
  MPLSは"マルチプロトコル"ラベルスイッチングを示している。マルチプロトコルというのはこの技術がどんなネットワークレイヤプロトコルにも適用できるからである。しかし、このドキュメントではネットワークレイヤプロトコルとしてIPを使う場合に限定する。

 この項ではこのドキュメントで使用される用語の一般的で概念の概要を与える。
いくつかの用語はこの後でより正確に定義する。

DLCI:
フレームリレー回線を識別するためにフレームリレー網で使われるラベル

 
 label:
短い固定長の識別子である。それは物理的な繋がりを表し、あるFECに
対応しており、ローカルに有効な識別子であり。
 
 
 
 

ホームページへ