MBA標準0202号 2004年1月 公開 MBA標準は、モバイルブロードバンド協会プロトコル分科会が、同協会会員より提 案された標準案を審議し、所定の内部手続を経て公開するものである。 このMBA標準0201号は、モバイルブロードバンド協会正会員たるモバイルインタ ーネットサービス株式会社より「MISプロトコル(MISP)仕様書」として提案された標準 案を審議し、所定の手続を経て公開に至ったものである。 注意: このMBA 標準には、このMBA 標準に係る必須の工業所有権に関する特別の記述は行わ れていないが、当該必須の工業所有権の権利所有者は、「このMBA 標準に係る工業所有 権である『セッション共有鍵共有方法、無線端末認証方法、無線端末および基地局装置』 の権利は古河電気工業株式会社及び太田昌孝が保有するが、このMBA 標準を使用する者 に対し、適切な条件の下に、非排他的かつ無差別に当該「セッション共有鍵共有方法、無 線端末認証方法、無線端末および基地局装置」の実施を許諾する。但し、このMBA 標準 を使用する者が、このMBA 標準で規定する内容の全部又は一部が対象となる必須の工業 所有権を所有し、かつ、その権利を主張した場合、その者についてはこの限りではない。」 旨表明している。 モバイルブロードバンド協会 www.mbassoc.org 変更履歴 2006/6/6 編集上の修正。冒頭説明文中「標準草案」を「標準」に、「0201号」を「0202号」に訂正。 2006/6/6 編集上の修正。「図.12」を「図.11」に、「図.13 Path MTU発見(2)」を図.12 Path MTU発見(2)」に訂正。 ----以下本文---- MISモバイルIP仕様書 大森 幹之 2001年11月20日 目次 1.はじめに 1.1 用語と略語 1.2 プロトコル概要 1.3 本仕様書の構成 2.モバイルIP登録 2.1 モバイルIP登録テーブル 2.2 モバイルIP登録要求 2.3 モバイルIP登録応答 2.4 認証拡張 2.5 再送攻撃に対する防御 3.IP-in-IPトンネル 3.1 カプセル化されたパケットのフォーマット 3.2 トンネル中のICMPメッセージ 3.3 トンネルのMTU 3.4 Path MTU発見 4.リバースパストンネリング 5.MISモバイルIPプロファイル 6.参考文献 1. はじめに IPネットワークでは,ホストにはIPアドレスと呼ばれる識別子が付けられるが,ホス トが接続しているネットワークが変わると,IP アドレスも異なったものになる.そのた め,通信途中にホストがネットワーク上を移動すると通信が途切れてしまう. モバイルIPとは,そのような問題を解決し,ネットワーク上をホストが移動しても途 切れることのない通信を実現する技術である.なお,モバイルIPの仕様は,RFC 2002で 規定されているが,MISモバイルIPはそのサブセットとなっており,また,トンネルとし て,RFC 2003で規定されている IP-in-IPトンネルを用いている. MISモバイルIPの特徴としては,以下のような点が上げられる. - ホームネットワークが仮想的である. - フォーリンエージェントの機能がモバイルノードに取り込まれている. 1.1 用語と略語 1.1.1 用語 - モバイルノード 移動体端末.フォーリンエージェントの機能も有する. - ホームエージェント モバイルノード宛のパケットをトンネリングを用いてモバイルノードへ配送する ルータ.モバイルノードのネットワーク上の位置情報(気付アドレス)を管理する. - フォーリンエージェント モバイルノードとホームエージェントの間で,パケットのカプセル化を解くといっ たことを行なうサーバ.本仕様では,モバイルノードに統合されている. - ホームアドレス モバイルノードに対して割り当てられるIPアドレスで,モバイルノードがネット ワーク上の任意の地点に移動しても常に同じ値を持つ. - 気付アドレス モバイルノードが現在接続しているネットワーク上で得るIPアドレス. - ホームネットワーク ホームエージェントの下に存在する仮想的なネットワーク.そのネットワークアド レスにホームアドレスが属している.なお,モバイルノードがこのホームネットワー クに直接接続することはない. - コレスポンデントノード モバイルノードの通信相手. - モバイルIP登録 モバイルノードの気付アドレスをホームエージェントに登録すること. - モバイルIP登録要求 モバイルノードが自身の気付アドレスをホームエージェントに登録するために 送信されるメッセージ. - モバイルIP登録応答 モバイルIP登録要求に対してホームエージェントが返す応答. - モビリティバインディング ホームアドレス,気付アドレス,モバイルIP登録応答の識別子などといった1つ のモバイルノードに関する情報. - カプセル化 ここでは,IP-in-IPカプセル化のことを指す.IPパケットにIPヘッダを付加したり, それに付随する処理. - トンネル(IP-in-IPトンネル) カプセル化されたパケットが通るパス. - リバースパストンネリング モバイルノードがコレスポンデントノードに対してパケットを送信する際にも, モバイルノードとHA間のトンネルを用いること. 1.1.2 略語 HA:ホームエージェント FA:フォーリンエージェント MN:モバイルノード CN:コレスポンデントノード 1.2 プロトコル概要 モバイルIPでは,MNはホームアドレスと気付アドレスの2種類のIPアドレスを持つ. ホームアドレスは,MNが移動しても変化することのないIPアドレスであり,気付アド レスは,MNが接続しているネットワーク上で得るIPアドレスである.MNは,CNとの通 信に常にホームアドレスを用いることによって,CNとの接続を維持したまま,ネット ワーク上を移動できるようになる.また,MNのホームアドレスのパケットをMNに配送 したり,MNのホームアドレスと気付アドレスを管理するために,HAが存在する.HA上 には,仮想的なホームネットワークが存在し,MNのホームアドレスはこのホームネッ トワークのアドレス空間に属している. MNは,ネットワークに接続する際に,気付アドレスを得る.そして,MNはその気付 アドレスをHAに登録する(モバイルIP登録).この登録は,MNとHAが以下の2つのメッ セージを交換することによって行なわれる. - モバイルIP登録要求 : MNがHAに対して送信するメッセージ. 気付アドレスや登録の有効時間といった情報を含んでいる. - モバイルIP登録応答 : HAがMNに対して送信するメッセージ. MNからのモバイルIP登録要求に対する応答である. モバイルIP登録要求 +-----+<------------- +----+ | HA | | MN | +-----+ ------------->+----+ モバイルIP登録応答 図1.モバイルIP登録 HAは,正当なモバイルIP登録要求を受け取ると,MNのホームアドレス宛のパケット をMNに配送するために,気付アドレスなどのモバイルIP登録要求に含まれる情報を管 理しておく.この情報とそれに付随するものをモビリティバインディングと呼び,HA はその登録の有効時間の間,そのモビリティバインディングを保持する.なお,この 登録の際,MNとHA間は,1つの共有鍵を持っており,この共有鍵を用いて相互に認証 を行なっている. モバイルIP登録が完了すると,MNとCN間でホームアドレスを使ったパケットの送受 信ができるようになる. - MNからCNへのパケットの送信(通常) (1)MNからCNにパケットを送信する.この際,送信元アドレスはそのMNのホームア ドレスに設定されている.そして,通常のIP経路制御によってCNにまで配送さ れる . ホームネットワーク ---------- | +-----+ +----+ | HA | | MN | +-----+ +----+ / /(1) / |__ +------+ | CN | +------+ 図2. MNからCNへのパケットの送信(通常) - MNからCNへのパケットの送信(リバースパストンネリング) MNからCNに直接パケットを送信するとき,MNが現在接続しているネットワーク上の ルータが送信元アドレスでパケットフィルタリングをしている場合には,そのルータ でMNからのパケットが破棄される. これを防ぐために,リバースパストンネリングと呼ばれる技術がある.リバースパ ストンネリングでは,以下のようにしてMNからCNにパケットが配送される. (1)MNはパケットを気付アドレスを送信元アドレス,HAのIPアドレスを宛先アドレス に持ったIPヘッダでカプセル化し送信する. (2)HAは,そのパケットのカプセル化を解き,送信する.そして,通常のIP経路制御 によってCNにまで配送される. ホームネットワーク ---------- | (1) +-----+ +----+ | HA | <======= | MN | +-----+ +----+ \ (2) \ \ __| +------+ | CN | +------+ ====== tunnel 図3. MNからCNへのパケットの送信(リバースパストンネリング) - CNからMNへのパケットの送信 (1)CNはMNのホームアドレス宛のパケットを送信し,このパケットは通常のIP経路制 御によってHAまで配送される (2)HAはそのパケットをMNの気付アドレスを宛先アドレスに持ったIPヘッダでカプセ ル化し送信する. (3)カプセル化されたパケットは,通常のIP経路制御によって,MNまで配送され, MNはカプセル化を解き,元のパケットを取り出す. ホームネットワーク ---------- | (3) +-----+ +----+ | HA | =======> | MN | +-----+ (2) +----+ -- |\ \ (1)\ +------+ | CN | +------+ ====== tunnel 図4. CNからMNへのパケットの送信 1.3 本仕様書の構成 本仕様書では,2章でモバイルIP登録に関連する処理について述べ,3章でIP-in-IP トンネリングについて述べる.そして,4章でリバースパストンネリングについて述べ, 最後に,5章で RFC2002 の仕様のうち,MISモバイルIPが採用しているものについて 述べる. 2.モバイルIP登録 2.1 モバイルIP登録テーブル HAは,MNごとにホームアドレスとそのパスワード(共有鍵)を保持しておかなけれ ばならない.そのMNごとの設定が格納されているテーブルをモバイルIP登録テーブル と呼ぶ.もし,正当なモバイルIP登録要求を受け取った際には,登録テーブル内の該 当するMNに関するモビリティバインディングを更新しなければならない. モビリティバインディングは,以下のものを含んでいる. - 気付アドレス - モバイルIP登録応答の時刻フィールドの値 - モバイルIP登録応答の有効時間フィールドの値 - モバイルIP登録の残りの有効時間 2.2 モバイルIP登録要求 HAは,MNから送られてくるモバイルIP登録要求を処理し,必要に応じてモビリティ バインディングの更新,応答の送信を行なう.HAは,MNからのモバイルIP登録要求に 対して応答を送信する場合を除き,モバイルIP登録応答を送信してはならない.特に, モバイルIP登録要求がタイムアウトしたことを伝えるためにHAがモバイルIP登録応答 を生成し送信することはあってはならない. 2.2.1 モバイルIP登録要求のパケットフォーマット モバイルIP登録要求はUDP(User Datagram Protocol)を用いて送信される.モバイ ルIP登録要求のIPヘッダ,UDPヘッダには以下のようなIPアドレスとポート番号が指定 されている. - IP ヘッダ 送信元アドレス :気付アドレス 宛先アドレス :HAのIPアドレス - UDP ヘッダ 送信元ポート:任意 宛先ポート :434 パケットフォーマットは以下の通り. 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | タイプ |S|B|D|M|G|V|T|r| 有効時間 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ホームアドレス | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | HAのIPアドレス | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 気付アドレス | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | + 時刻 + | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 認証拡張... +-+-+-+-+-+-+-+- 図5.モバイルIP登録要求 各フィールドの意味はとその値は以下の通り. タイプ 1 (モバイルIP登録要求) S 値は常に0. B 値は常に0. D MNがパケットのカプセル化を解くことを示す. 値は常に1. M 値は常に0. G 値は常に0. V 値は常に0. T MNが,HAにリバースパストンネリングを要求する際に設定される. 通常は,0.リバースパストンネリング使用時のみ,1に設定される. r 予約領域.常に 0. 有効時間 登録の有効時間(単位は秒). この値が 0 の時はMNの登録が消去される.また,0xffff の場合は, 無限を表す. MNはこのフィールドの値を90に設定する. ホームアドレス,HAのIPアドレス, 気付アドレス 時刻 MNがこのメッセージを送信した時刻を1970年1月1日0時0分0秒GMTから           の経過秒数で表す.64ビット中32ビット目に小数点が置かれる符号無し固定小数点数である。 この時刻の有効数字は、36ビット以上必要で           有効数字以下の桁は、擬似乱数によって生成しなければならない。 認証拡張 2.4節参照 なお,MNの時刻の秒が時刻フィールドの上位が32ビットで表現できる上限を越え, 桁上がりが生じた場合に備えて,時刻の秒は以下のようにして大小関係が決定される. 2つの時刻の秒をt1,t2とする. - 以下のどちらかが成立した場合,t1の方がt2より小さな値であると決定 * t1 < t2 かつ t2 - t1 < 2 ^ (32-1) * t1 > t2 かつ t1 - t2 > 2 ^ (32-1) - 以下のどちらかが成立した場合,t1の方がt2より大きいな値であると決定 * t1 < t2 かつ t2 - t1 > 2 ^ (32-1) * t1 > t2 かつ t1 - t2 < 2 ^ (32-1) 2.2.2 モバイルIP登録要求の正当性の評価 IPヘッダが不正であるか,UDPチェックサムが 0 でない不正な値を持ったモバイル IP登録要求は,無条件にHAによって廃棄され,いかなる応答も返されない. HAはモバイルIP登録要求を以下のような順でその正当性を評価する. 1)モバイルIP登録要求中のホームアドレスフィールドがモバイルIP登録テーブル内 に存在していることを確認する.存在していない場合には,不正なモバイルIP登 録要求と見なし,コードが134であるモバイルIP登録応答を送信する. 2)モバイルIP登録要求中の認証拡張フィールドの存在を調べ,存在すれば,認証の 処理を実行する.もし,存在しなかったり,認証に失敗した場合には,不正なモ バイルIP登録要求であると見なし,コードが131であるモバイルIP登録応答をMNに 送信する. 3)モバイルIP登録要求中のS,B,D,M,G,B,Tの各フィールドを調査する. もし,上記の値以外であった場合には,不正なモバイルIP登録要求であると見な し,コードが134であるモバイルIP登録応答を送信する. 4)時刻フィールドの正当性を2.5節の方法に従い,評価する. 時刻フィールドの値が不正であった場合には,HAはその要求を拒否する.そして, 2.5節の方法でモバイルIP登録応答の時刻フィールドの値を計算し,コードが133 であるモバイルIP登録応答を送信する. 2.2.3 モバイルIP登録要求の送信 MNは,移動先で気付アドレスを新規に得た場合に,モバイルIP登録要求をHAに送信 する.また,モバイルIP登録要求を60秒毎にモバイルIP登録要求を送信することによ って,HAにそのMNのモビリティバインディングの更新を要求する. また,MNは,登録が成功するまで0.1×2**n(秒)の間隔(ただし、最大51.2秒)で  モバイルIP登録要求を送信しなければならない.ここで,nは登録し初めてから  送信されたモバイルIP登録要求の 数を表す.さらに,MNは過去に送信した最新の10個のモバイルIP登録要求の時刻フィー ルドの値を保持しておかなければならない. 2.3 モバイルIP登録応答 2.3.1 モバイルIP登録応答のパケットフォーマット モバイルIP登録応答はUDP(User Datagram Protocol)を用いて送信される.モバイ ルIP登録応答のIPヘッダ,UDPヘッダには以下のようなIPアドレスとポート番号が指定 されている. - IPヘッダ 送信元アドレス: HAのIPアドレス 宛先アドレス : MNの気付アドレス - UDPヘッダ 送信元ポート: 434 宛先ポート : 対応するモバイルIP登録要求の送信元ポート 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | タイプ | コード | 有効時間 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ホームアドレス | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | HAのIPアドレス | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | + 時刻 + | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 認証拡張... +-+-+-+-+-+-+-+- 図6.モバイルIP登録応答 タイプ 3 (モバイルIP登録応答) コード モバイルIP登録要求の結果を意味する値. 有効時間 登録要求の有効時間(単位は秒) モバイルIP登録要求が受け入れられた場合,その有効である時間 が設定される.その値は常に90である. また,受け入れられなかった場合は,この値は意味がなく,MNは 無視しなければならない. MNのホームアドレス,HAのIPアドレス 時刻 モバイルIP登録要求がHAに受け入れられた場合には,モバイルIP登 録要求の時刻フィールドの値が設定される.逆に,HAによって拒絶 された場合には,上位32ビットにHAの現在時刻の秒が設定され, 下位32ビットには,モバイルIP登録要求の時刻フィールドの下位32ビッ トの値が設定される. 認証拡張 2.4節参照 モバイルIP登録要求の結果を表すコードとその意味は,以下の通り. 値 意味 0 モバイルIP登録要求が受け入れられたことを示す. 1 simultaneous bindings をサポートしないが,モバイルIP登録要求が受け入れ られたことを示す. 130 十分な計算機資源がない. 131 MNの認証に失敗した. 133 HAとMNの時刻が同期されていない 134 モバイルIP登録要求のパケットフォーマットが正しくない. 136 モバイルIP登録要求のHAのIPアドレスが正しくない. 2.3.2 モバイルIP登録応答の正当性の評価 IPヘッダが不正であるか,UDPチェックサムが 0 でない不正な値を持ったモバイル IP登録応答は,無条件にMNによって廃棄される. MNはモバイルIP登録応答を以下のような順でその正当性を評価する. 1)モバイルIP登録応答中の認証拡張フィールドの存在を調べ,存在すれば,認証の 処理を実行する.もし,存在しなかったり,認証に失敗した場合には,その登録 応答を破棄する. 2)モバイルIP登録応答中のホームアドレスがMNのそれと等しいことを確認する. 等しくない場合,MNはその登録応答を破棄する. 3)モバイルIP登録応答中のHAのIPアドレスがMNが送信したモバイルIP登録要求のも のと等しいことを確認する. 等しくない場合,MNはその登録応答を破棄する. 4)時刻フィールドの値がMNが送信したモバイルIP登録要求の中に同様の値をもって いるものが存在するかを検査する.もし,存在しない場合,そのモバイルIP登録 応答を破棄する.なお,HAとMNの時刻の同期を行なっている際は,時刻フィール ドの下位32ビットだけがこの検査に使われる(2.5.2 節参照). 2.3.3 モバイルIP登録応答の送信 HA は,以下のポリシに基づいてモバイルIP登録要求に対応する応答を送信する. なお,ここでの正当なモバイルIP登録要求とは,HAに受け入れられるものを指す. 1)正当なモバイルIP登録要求の場合 必ず応答を送信する. 2)不正なモバイルIP登録要求の場合 以下の条件がすべて満たされた場合,HAは応答を返さない. - 前回受け取ったモバイルIP登録要求がHAによって拒否された. - 前回のモバイルIP登録要求に対する応答を返した時刻から0.5秒以上経過し ていない. - 前回要求が拒否されたのと同様の理由で今回の要求も拒否された. 2.4 認証拡張 認証拡張のフォーマットは以下のとおり. 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | タイプ | 長さ | SPI .... +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ... SPI (cont.) | メッセージダイジェスト ... +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 図7.認証拡張 タイプ 32 長さ 20 (= 4 + (メッセージダイジェスト の長さ:16)) SPI Security Parameter Index の略.メッセージダイジェス トの計算に使われるアルゴリズムの種類を示す. 値は 3(Keyed-MD5)のみが許される. メッセージダイジェスト このメッセージダイジェストは,モバイルIP登録要求の先 頭から SPI フィールドまで で計算される. MNとHAは共有鍵を持っており,keyed MD5[2]を用いて各メッセージのメッセージダ イジェストを計算することにより,相互に認証を行なう.なお,この共有鍵は,MN毎 に存在する.メッセージダイジェストは,各メッセージの先頭(IPヘッダ,UDPヘッダ は含まない)から認証拡張中のSPIフィールドまでで計算される.そして,MNとHAはメッ セージを送信する際に,認証拡張中のメッセージダイジェストフィールドにメッセー ジダイジェストを設定する.また,メッセージを受信したMNとHAは,まずそのメッセー ジのメッセージダイジェストを計算し,その値とメッセージ中のAuthenticatorフィー ルドの値とを比較する.もし,両者が等しい場合には,認証に成功したことになる. 逆に両者が異なっていれば,認証に失敗したことになる. 2.5 再送攻撃に対する防御 MNとHAの間の通信路に攻撃者がいた場合,攻撃者は,MNが送信し,HAに受け付けら れたモバイルIP登録要求を傍受できる.攻撃者がこの傍受したモバイルIP登録要求を 再送することによって,攻撃者がMN宛のパケットを不正に受信できてしまう.これが 再送攻撃である.ここでは,この攻撃を防ぐ手法について述べる. 2.5.1 タイムスタンプ方式 再送攻撃を防ぐために,タイムスタンプ方式を用いる.タイムスタンプ方式では, HAは,モバイルIP登録要求の時刻の値が,HAの現在時刻と±7秒以上ずれていた場 合には,この登録要求を拒否し,コード133を含んだモバイルIP登録応答を送信する. さらに,HAは,最後に受け入れたモバイルIP登録要求の時刻の値を記録しておき,そ れと等しい,もしくは,古いものは受け入れない.そして,HAは時刻が一致していな いことを示す,コード133のモバイルIP登録応答を返す.ただし,2.3.4節の 2) の条件がすべて満される場合には,モバイルIP登録応答は返されない. このようにして,HAが一度受け入れたモバイルIP登録要求を傍受し,攻撃者が再送 しても,HAはその登録要求を受け入れないため,再送攻撃を防ぐことができる. なお,この方式では,HAとMNとで時刻が同期していなければならない.この時刻の 同期に関しては,次節で述べる. 2.5.2 HAとMNの時刻の同期 ここでは,HAとMNのシステムの時刻が同期していない場合に,両者で時刻を同期さ せる手法について述べる. まず,MNが自身の時刻を含んだモバイルIP登録要求を送信する.HAがそのモバイル IP登録要求を受け取ると,HAはモバイルIP登録要求の時刻フィールドからMNがその登 録要求を送信した時刻を得る.もし,ここで得られた時刻と,HAの時刻の差が±7秒 以上であった場合,MNの時刻がHAの時刻と同期していないものとして,HAはモバイル IP登録要求を拒否する.そして,コード133を含むモバイルIP登録応答を返す.この モバイルIP登録要求の時刻フィールドの上位32ビットにはHAの時刻の秒が設定される. なお,2.3.3節 2) の条件をすべて満たす場合には,この応答は返されない. 次に,MNはHAから送信されたモバイルIP登録応答を受け取ると,その応答のコー ドが133であることから,HAとの時刻が同期しておらず,モバイルIP登録に失敗して いることを知る.そこで,MNはモバイルIP登録応答の時刻フィールドからその上位32 ビットを取り出し,HAとの時刻(秒)との差を計算し,その値を保存しておく. そして,以降モバイルIP登録要求を送信するときには,送信時のMNの時刻にここで計 算された差を加えたものを時刻フィールドに設定する. このようにして,MNがHAとの時刻のずれを検知し,モバイルIP登録要求にその差 分を加えて送信することによって時刻の同期が実現されている.もし,再び時刻のず れが生じた場合には,最初の処理から時刻の同期をやりなおす. MN HA (ab) | ------------> | (cd) | | | <------------ | d = c - a | | | | (a'b')| -----------> | n = a' + d | | | | (): MN,HAのシステムの現在時刻 1文字目が上位32ビット,2文字目が下位32ビット <>: モバイルIP登録要求/応答の時刻フィールドの値 1文字目が上位32ビット,2文字目が下位32ビット d: HAとMNの差 n: 時刻が同期した後の時刻フィールドの値 図8.HAとMNの時刻の同期 3. IP-in-IPトンネル IP-in-IPトンネルは RFC 2003[2] で規定されており,IPパケットをIPでカプセル化 して配送する技術である. 3.1 カプセル化されたパケットのフォーマット 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 ^ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |Version| IHL | TOS | パケット長 | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 外 | 識別子 |Flags| フラグメントオフセット | 部 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ IP | TTL | プロトコル | ヘッダチェックサム | ヘ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ッ | 送信元アドレス | ダ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | 宛先アドレス | V +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ^ |Version| IHL | TOS | パケット長 | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | 識別子 |Flags| フラグメントオフセット | 内 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 部 | TTL | プロトコル | ヘッダチェックサム | IP +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ヘ | 送信元アドレス | ッ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ダ | 宛先アドレス | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | オプション | パディング | V +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |ペイロード +---------..... 図.9 カプセル化されたパケットのフォーマット 外部IPヘッダの各フィールドの値は以下のとおり. Version:4 IHL:5(ヘッダ長20バイト) TOS:内部IPヘッダの値 パケット長: パケット全体の長さで,外部IPヘッダ,内部IPヘッダ,および, そのペイロードの長さの和. 識別子,Flags, フラグメントオフセット: 4.3.4 参照. ただし,内部IPヘッダのFlagsフィールドに DF ビットが設定 されているときには,外部IPヘッダの Flags フィールドにDFビッ トが設定される. TTL: 255 プロトコル: 4 宛先アドレス,送信元アドレス: - HAがカプセル化する場合 * 宛先アドレス: MNの気付アドレス * 送信元アドレス: HAのIPアドレス - リバーストンネリング時 * 宛先アドレス: HAのIPアドレス * 送信元アドレス: MNの気付アドレス 内部IPヘッダの各フィールドは,カプセル化される前のIPヘッダと同じものを持ち, トンネル内で変更されることはない.ただし,TTLフィールドはカプセル化の際に1減 算される.このとき,TTLフィールドの値が 0 になった時には,パケットは破棄され る. 3.2 トンネル中のICMPメッセージ HAに対してパケットを送信し,HAがそのパケットをカプセル化して,MNに配送する場 合に,HAとMNの間で何らかの問題が生じると,HAとMNとの間のルータからHAに対して, ICMPメッセージが送信されることがある.例えば,図.10において,ルータRがHAとMN間 の経路上のルータだと仮定する.このとき,ルータRがMNの気付アドレスへの経路情報 を持っておらず,パケットを配送できなくなると,ルータRはICMPメッセージをHAに対 して送信する. ICMP <----- +----+ +----+ +---+ +----+ | CN |-->>-| HA |-->>--| R |--XX--| MN | +----+ +----+ +---+ +----+ ================== R : ルータ ===== : トンネル 図.10 トンネル内のルータによるICMPメッセージの送信 ここでは,上記のようなトンネル内のルータが送信したICMPメッセージとそれを受 け取った場合のHAが処理すべきことについて述べる.なお,HAがICMPメッセージを転 送するためには,HAが接続しているネットワーク上のルータが送信元アドレスフィル タリングをしていてはならない. 3.2.1 HAによるICMPメッセージの送信と転送 HAがICMPメッセージを生成し送信する場合と,HAがICMPメッセージを転送する場合 とで,ICMPメッセージのIPヘッダの送信元アドレスが異なる.それぞれの場合で, ICMPメッセージのIPヘッダの送信元アドレスと宛先アドレスは以下のとおり. - HAがICMPメッセージを生成し送信する場合 * 送信元アドレス : HAのIPアドレス * 宛先アドレス : CNのIPアドレス - HAがICMPメッセージを受け取り転送する場合 * 送信元アドレス : ICMPメッセージのIPヘッダのそれと同様 * 宛先アドレス : CNのIPアドレス 3.2.2 HAによるパケットの蓄積 ICMPではカプセル化されたパケットの外部IPヘッダとそれに続く8バイト分のデー タグラムしか配送されない.そのため,HAがトンネル内のルータからICMPメッセージ を受け取っても,内部IPヘッダの送信元アドレス,宛先アドレス,トランスポート層 のポート番号などの情報を得ることができず,正しくCNにICMPメッセージを転送する ことができない. そこで,HAは,HAが過去に配送したMNのホームアドレス宛のパケットの一部をMN毎 に以下のようにして蓄積しておく. - カプセル化される前のパケットのIPヘッダ,IPオプション,および,それに 続く8バイトのデータグラムを保持. - 上記のうち,過去1秒間で最もサイズが大きかったものを保持し,それ以外は 破棄する. * サイズが等しいものに関しては,最新のものをとっておく. - 過去5秒間分を保存しておき,1秒毎に更新する. このようにして,トンネル内のルータが送信するDatagram Too BigのICMPメッセージを   HAがCNに配送できるようになる. 3.2.3 ICMPを受け取ったときのHAの動作 HAが各種のICMPメッセージを受け取った際の動作を以下に示す. - Desitination Unreachable (Type 3) * Network Unreachable (Code 0) CNが正しいアドレスに対してパケットを送信している場合には, HAは,Host Unreachable (Code 1) の ICMPメッセージを生成し,CNに送信しな ければならない.それ以外の場合,Network Unreachable (Code 0) のICMPメッ セージを送信しなければならない. * Host Unreachable (Code 1) HAは,このメッセージをCNに転送しなければならない. * Protocol Unreachable (Code 2) HAは,Network Unreachable (Code 0),もしくは,Host Unreachable (Code 1) のICMPメッセージを生成し,CNに送信しなければならない. * Port Unreachable (Code 3) HAはこのICMPメッセージを破棄しなければならない. * Datagram Too Big (Code 4) HAは,CNにこのICMPメッセージを転送しなければならない. * Source Route Failed (Code 5) HAの内部でのみ処理されるべきである.HAはCNにこのICMPメッセージを転送し てはならない. - Source Quench (Type 4) HAはこのICMPメッセージを転送してはならない. - Redirect (Type 5) HAの内部でのみ処理されるべきである.HAはCNにこのICMPメッセージを転送し てはならない. - Time Exceeded (Type 11) HAは,Host Unreachable (Type 3, code 1)のICMPメッセージをCNに転送しなけ ればならない. - Parameter Problem (Type 12) このICMPメッセージがCNが送信したパケット自体の問題によって生成された場 合,HAはCNにこのICMPメッセージを転送してもよい.また,HAが挿入したIPオ プションの問題によるものであった場合には,HAはこのICMPメッセージをCNに 転送してはならない. - その他のICMPメッセージ 上記以外のICMPメッセージは,トンネリングに関係ない.このようなICMPメッ セージをHAが受信した場合には,参考文献 [4]の仕様に乗っ取った動作をHAは するべきである. 3.3 トンネルのMTU トンネルのMTUは,物理インターフェースのMTUからIPヘッダの最小の長さである20 バイトを引いたものとする. 3.4 Path MTU発見 CNからMNの方向のPath MTU発見の処理について述べる.CN が DF フラグが設定され たIPパケットを送信し,HAまで到達すると,HAは,MNとのトンネルのMTUとIPパケット のサイズを確かめる.もし,トンネルのMTUよりもIPパケットのサイズの方が大きけれ ば,ICMP Datagram Too Big メッセージを CN に返す.これによって,CNが Path MTU 発見を行なうことができる. ICMP <----- +----+ +----+ +----+ | CN |-->--| HA |=====| MN | +----+ +----+ +----+ 1500 1480 数字 MTU ------ 物理インターフェース ====== トンネルインターフェース 図.11 Path MTU発見(1) また,トンネルのMTUよりもカプセル化されたパケットのサイズの方が小さく,かつ, HAとMNのトンネル内の途中の経路で,パケットのサイズよりも小さいMTUを持ったリン クが存在する場合を考える.下図で,CNが1260バイトのパケットを送信したとすると, HAはそのパケットをカプセル化し,ルータRへ転送する.ここで,IPヘッダのヘッダ長 を20バイトと仮定すると,HAから送信されるカプセル化されたパケットのパケット長 は1280バイトとなる.HAとルータRの接続しているリンクのMTUは1500であるから,HA はICMPメッセージを生成せず,ルータRにパケットを転送する. ICMP ICMP <----- <----- +----+ +----+1500 +---+1200 +----+ | |1260 | |-----| R |-----| | | CN |-->--| HA | +---+ | MN | | | | |===============| | +----+ +----+ 1480 +----+ R トンネル内のルータ 数字 各リンクのMTU ------ 物理インターフェース ====== トンネルインターフェース 図.12 Path MTU発見(2) しかし,ルータRとMNのリンクのMTUが1200バイトであり,カプセル化されたパケット のパケット長が1280バイトでそのリンクのMTUよりも大きくなっている.そのため, ルータRはICMPメッセージを生成し,HAに送信する.そして,HAがそのICMPメッセージ をCNに転送することによって,CNがMNまでのPath MTUを知ることができる. なお,MNからCNへのPath MTU発見は,リバースパストンネリングをしている場合は, 上記と同様に行なわれる.また,リバースパストンネリングを使用していない場合は, 通常のIPv4と同様に行なわれる. 4.リバースパストンネリング リバースパストンネリングとは,MNがホストに対してパケットを配送する際にも,パ ケットをカプセル化して送信し,HAがそのカプセル化を解き,CNにまで転送することを いう.これは,MNが接続している移動先のネットワーク上のルータがソースフィルタリ ングしている際に有用となる. リバースパストンネリングを用いた場合,MNがCNへパケットを送信する際の配送方式 が通常のものと異なる.MNからCNへのパケットは以下のようにして配送される. (1)CN宛のパケットを以下のようなアドレスでカプセル化し,HAに送信する. 送信元アドレス - MNの気付アドレス 宛先アドレス - HAのアドレス (2)HAはカプセル化されたパケットのカプセル化を解き,送出する. (3)カプセル化が解かれたパケットは,通常のIP経路制御によって,CNまで配送され る. (2) (1) +-----+ +----+ | HA | <======= | MN | +-----+ +----+ \ \ (3) \ __| +------+ | CN | +------+ ===== tunnel 図.13 リバースパストンネリングによるパケットの配送 なお,MNはICMPの処理なども3章で述べたように行なわなければならない. 5.MISモバイルIPプロファイル ここでは,RFC2002 [1] で規定されているモバイルIPの仕様のうち,MISモバイルIPで 採用しているものについて述べる. - MNがホームネットワークに物理的に接続することがない. * MNがホームネットワークに接続していることをMN自身が知るためのものであるHAに よるホームネットワーク上へのルータ広告が不要である. - ホームネットワークが仮想的である, * ホームアドレス宛のパケットをHAが取得するためのプロキシアープが不要である. - タイムスタンプを用いた再送攻撃の防御. - FAがMNに取り込まれている. * FAによるルータ広告とFA,HA間のメッセージの交換が必要ない. * MNとHAが直接メッセージを交換することによって,モバイル登録の処理が行なわれ る. * MNのCoAはグローバルアドレスでなければならない. * MNがパケットのカプセル化やそのカプセル化を解く処理を行なう. - IP-in-IPトンネルの採用. * トンネルとしてIP-in-IPトンネルを採用している. - リバースパストンネリングのサポート. * 4章で述べたような条件下でも動作する. 6. 参考文献 [1] Perkins, C., "IP Mobility Support", RFC 2002, October 1996. [2] Rivest, R., "The MD5 Message-Digest Algorithm", RFC 1321, April 1992. [3] Perkins, C., "IP Encapsulation within IP", RFC 2003, October 1996. [4] J. Postel, "Internet Control Message Protocol (ICMP)", RFC 792, September 1981. ----以上----