ユビキタス時代に華開くか!? 最新IP技術の実像に迫る
特集:モバイルIP技術詳解

福永勇二
インタラクティブリサーチ
2002/9/21

Part.3 モバイルIPのメカニズムを技術的に検証する

モバイルIPプロトコルの概要

 まず初めに、移動端末が移動先ネットワークに接続したときのメッセージのやりとりを見てみよう。IPコネクティビティを取得した移動端末は、最初に現在自分がいるネットワークが、本来いるべきネットワーク(ホーム・ネットワーク)か、それとも移動先ネットワーク(フォーリン・ネットワーク)であるかを識別する必要がある。

 この目的に利用するメッセージがAgent Advertisementメッセージだ。Mobile Agent Advertisementメッセージは、ICMPルータ発見メッセージを拡張したものである。フォーリン・エージェントはこのメッセージを定期的に送出する。

 何らかの理由により移動端末がMobile Agent Advertisementメッセージを受け取れない場合、自らルータに対してMobile Agent Advertisementメッセージの送信をリクエストすることもできる。その際に利用するメッセージがMobile Agent Solicitationメッセージだ。このメッセージを受け取ったフォーリン・エージェントは速やかにMobile Agent Advertisementメッセージを送出することになる。

 移動端末はこうやって受信したMobile Agent Advertisementメッセージの内容から、自分がホーム・ネットワークにいるのか、それともフォーリン・ネットワークにいるのか判断することができる。

 自分がフォーリン・ネットワークにいることを検出した移動端末は、次に自分の現在位置をホーム・エージェントに登録するため、Registration Requestメッセージを送出する。このメッセージにはUDPのポート434番を使用する。Registration Requestメッセージはフォーリン・エージェントを介して(場合によっては直接ホーム・エージェントに送信されることもある)ホーム・エージェントに送信される。

 ホーム・エージェントは、こうして受け取ったRegistration Requestメッセージから当該端末がいるネットワークを検出し、自らが管理する転送先テーブルに登録する。この処理が終わると、ホーム・エージェントは位置登録の結果をRegistration Responseメッセージに書き込み、フォーリン・エージェントに送り返す。フォーリン・エージェントはそのメッセージからカプセル化したパケットの受信準備を行った後、移動端末にRegistration Responseメッセージを送り返す。

 以上のメッセージ交換によって、ホーム・エージェントには移動端末あてのパケットの転送先が記録され、またフォーリン・エージェントはホーム・エージェントから受け取ったカプセル化されたパケットの送出先が記録される。これらの情報があることによって、初めて移動端末のホーム・アドレスあてに送出したIPパケットが、移動先に転送することが可能となるわけである。

 なお、移動端末が通信相手に送出するパケットは、ホーム・エージェント〜フォーリン・エージェント間のトンネルは通らない。通常のIPパケットの配送ルートによって配送させる。また、このパケットの送信元アドレスにはホーム・アドレスが記されている。このことは、通信相手が端末の移動の有無や移動先をまったく感知しなくてよいことを示している。

モビリティ・エージェント発見のためのメッセージ

●Mobility Agent Advertisementメッセージ
 図5はMobility Agent Advertisementメッセージの構造を示したものだ。このメッセージはICMPルータ発見メッセージの拡張として定義されている。図中のICMP Router Advertisement Messageとある部分が、そのもともとのICMPルータ発見メッセージであり、Mobility Agent Advertisementメッセージでは、さらにその後に1つ以上のExtensionが続く構造となっている。

図5 Mobility Agent Advertisementメッセ−ジの構造(図版をクリックすると別ウィンドウで拡大表示します

 IPヘッダに含まれる送信先アドレスは、マルチキャストが可能な環境の場合は「224.0.0.1」が、そうでない場合は限定的ブロードキャスト・アドレスである「255.255.255.255」を指定する。またTTLは1を設定する。

 ICMPルータ発見メッセージに相当する部分の各フィールド値は次の意味を持っている。

タイプ
このメッセージのタイプ。9がRouter Advertisementを表す
コード
16の場合はモビリティ・エージェントとして機能することを示す。この値が0の場合は通常のルータとして機能することを示している
チェックサム
ICMPパケットのチェックサムを示す
アドレス数
このメッセージを含むルータアドレスの数を示す
アドレス長
1つのアドレスを表すのに必要なワード数(1ワードは32bits)を示す
有効時間
このメッセージが有効な秒数
ルータ・アドレスn
このネットワークに存在するルータのアドレス
ルータ優先度n
ルータの優先順位(1が最優先)

 ルータアドレスnと優先度nには、そのネットワークにおけるルータのアドレスと優先度がセットされる。そのフォーリン・エージェントがモバイルIP以外のパケットに対して、ルータとして機能する場合に、自分のアドレスもここにセットされることになる。

 Mobility Agent Advertisementメッセージでは、この後にExtensionが続くのだが、そのうち最も重要なものがMobility Agent Advertisement Extensionである。その内容は次のとおりとなっている。

タイプ
このExtensionの種類。Mobility Agent Advertisementは16になる
サイズ
シーケンス番号以降のワード数
シーケンス番号
エージェント初期化後からカウントしたAdvertisementの総数
登録受付時間
エージェントがRegistration Requestを受け付け可能な秒数
フラグ
(後述)
気付アドレスn
移動端末の気付アドレス

 ここで注意が必要なのは、気付アドレスをフォーリン・エージェントがアナウンスする点だ。移動先ネットワークにおける移動端末のIPアドレスが、常に気付アドレスになるとは限らない。むしろ、フォーリン・エージェントがアナウンスする気付アドレスを使用する方が多いかもしれない。これは気付アドレスの意味を考えると分かる。気付アドレスとは、ホーム・エージェントがカプセル化したパケットを送出する際のあて先アドレスだ。そのためカプセル化したパケットの中身をフォーリン・エージェントが取り出す場合には、その移動端末の気付アドレスは、フォーリン・エージェント自身がアナウンスする必要がある。気付アドレス=移動端末のアドレスとなるのは、カプセル化したパケットの取り出しなど、フォーリン・エージェントの役割を移動端末自身が行う場合である。

 フラグにセットされる情報には次のものがある。

R
位置登録はこのフォーリン・エージェントを介して行う必要がある
B
位置登録を受け付けることができない
H
ホーム・エージェントとしてサービスをしている
F
フォーリン・エージェントとしてサービスをしている
M
最低限のカプセル化のみを行う
G
GRE encapsulationを実装している
V
Van Jacobson Header compressionを実装している

 HビットとFビットの少なくとも1つは必ずセットされる。またFビットがセットされたときのみ、Rビットをセットすることができる。

 これ以外のExtensionとしては、Prefix-Length ExtensionとOne-byte Padding Extensionがある。前者はそのネットワークのネットワーク・アドレス部分のビット長を通知するもので、ICMPルータ発見メッセージ部分のルータアドレスnに適用される。出現順はルータアドレスnと同順である。また後者はフィールド・パディングのためのExtensionであり、必要がある場合のみICMPメッセージの空き部分を埋める目的に利用する。

●Mobility Agent Solicitationメッセージ
 図6はMobility Agent Solicitationの構造を示したものだ。

図6 Mobility Agent Solicitationメッセ−ジの構造

 フォーマットはICMP Router Solicitationメッセージとまったく同一である。各フィールドの意味は次のとおりである。なおIPヘッダのTTLは1にセットされる。

タイプ
このメッセージのタイプ。10はMobility Agent Solicitationを表す
サイズ
常に0
シーケンス番号
ICMPパケットのチェックサムを示す

 このメッセージを受信したモビリティ・エージェントは、速やかにMobility Agent Advertisementメッセージを送信する。場合によっては、定期的なMobility Agent Advertisementメッセージ送出は行わず、Mobility Agent Solicitationを受信したときのみMobility Agent Advertisementを送出するような構成も可能となっている。

位置登録のためのメッセージ

●Registration Requestメッセージ
 図7はRegistration Requestメッセージの構造を示している。

図7 Registration Requestメッセージの構造(図版をクリックすると別ウィンドウで拡大表示します

 Registration RequestメッセージにはUDPが用いられ、ポート番号は434である。モビリティ・エージェント発見のためのメッセージは、同一サブネット内へのアナウンスであるためICMPのマルチキャストまたはブロードキャストを用いていた。一方、このメッセージは、異なるネットワークに接続した移動端末〜ホーム・エージェント間でやりとりするものであるため、ユニキャストのUDPパケットを用いる。各フィールドの意味は次のとおり。

タイプ
このメッセージのタイプ。1はRegistration Requestを表す
フラグ
(後述)
有効登録期間
位置登録の有効時間を秒で表す
ホーム・アドレス
移動端末のホーム・アドレスを与える
ホーム・エージェント
移動端末のホーム・エージェント・アドレスを与える
気付アドレス
移動端末の気付アドレスを与える
要求識別子
端末が生成した64bits乱数。いつ行った要求かを識別する
Extensions
拡張情報フィールド。Mobile-Home Authentication Extensionは必須

 フラグには次の種類がある。

S
同時バインディング(以前の移動先情報を破棄しない)を要求
B
ホーム・エージェントにブロードキャストの転送を要求
D
移動端末が自身でカプセル化の解除を行うことを示す
M
最低限のカプセル化の使用を要求する
G
GRE encapsulationの使用を要求する
V
Van Jacobson Header Compressionの使用を要求する

 Registration RequestメッセージのExtensionsには、Mobile-Home Authentication Extension、Mobile-Foreign Authentication Extension、Foreign-Home Authentication Extensionの3種類がある(図8)。

図8 Mobile-Home/Mbiles-Foreign/Foreign-Home Authentication Extensionの構造

 これらのメッセージは、移動端末と各モビリティ・エージェント間、もしくはモビリティ・エージェント間で、相互に認証や暗号化を行うために必要な情報を交換する。各フィールドの意味は次のとおり。

タイプ
このメッセージのタイプ。32、33、34は各Authentication Extensionを表す
サイズ
SPIフィールド以降のバイト・サイズ
SPI
認証アルゴリズム、キー値などの組み合わせを指定する値
認証情報
SPIで指定したアルゴリズムで使用する認証値

 モバイルIPでは、デフォルトの認証アルゴリズムとして、「prefix+suffix」モードのkeyed-MD5(SPI=1)を指定しており、これは最小限実装しなければならない。これ以外のアルゴリズムやシークレット(共有キーや、公開/秘密キーの組み合わせ)については、実装に任されている。

●Registration Replyメッセージ
 図9はRegistration Replyメッセージの構造を示している。

図9 Registration Replyメッセージの構造

 各フィールドの意味は次のとおりとなっている。

タイプ
このメッセージのタイプ。3はRegistration Replyを表す
結果コード
Requestの結果を表す
有効登録期間
登録が受け付けられた場合に位置登録の有効時間を秒で表す
ホーム・アドレス
移動端末のホーム・アドレスを与える
ホーム・エージェント
移動端末のホーム・エージェント・アドレスを与える
要求識別子
端末が生成した64bits乱数。いつ行った要求かを識別する
Extensions
拡張情報フィールド。Mobile-Home Authentication Extensionは必須

 なお、結果コードは0または1が登録成功を、64以上の値が登録失敗を表す。0と1の違いは、0は移動端末がフラグで指定した条件がすべて受け入れられたことを、1は同時バインディングが受け入れられなかったが、登録そのものは成功したことを表している。また結果コードが64〜127まではフォーリン・エージェントで、128以上はホーム・エージェントで登録が拒否されたことを示す。


Index
特集:モバイルIP技術詳解
  Part.1 「モバイルIP」が必要な理由
・PHSによるインターネット接続とホットスポットでの無線LAN接続との場合を比較してみる
  Part.2 モバイルIPとはどのような技術か?
・手紙の転送の例を基に、モバイルIPの動作を理解しよう
Part.3 モバイルIPのメカニズムを技術的に検証する
・エージェント間のメッセージのやりとりなど、プロトコル・レベルでのモバイルIPの動作を理解しよう
  Part.4 モバイルIPの課題とそれを解決する技術
・IPv6、実装面など、モバイルIPが抱える問題を検証する
  Part.5 これからのモバイルIP
・モバイルIPをどのように展開するか!?
 


「Master of IP Network総合インデックス」



Master of IP Network フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Master of IP Network 記事ランキング

本日 月間