Mobile IP
出典: フリー百科事典『ウィキペディア(Wikipedia)』
Mobile IP(もばいるあいぴー)は、ノードが実際につながっているネットワークに関わらず、いつでも一意のIPアドレスでアクセスできるようにするレイヤ3のプロトコルである。
現在のインターネットで用いられているTCP/IPは、IPアドレスが識別子であると同時に、ネットワーク上の位置も意味している。そのため、あるネットワークに接続しているノードが別のネットワークに繋ぎかえると、IPアドレスが変わってしまうことになる。 これは互いのIPアドレス(とポート番号)でセッションを識別しているTCPのセッションが継続不可能になったり、IPアドレスが不変であることを前提にサービスを待ち受けているサーバー用途には使えないことになる。
Mobile IPは、ノードに一意のアドレスを割り当て、TCP/IPスタック内で実際に使用しているIPアドレスと入れ換えることによって、上位レイヤや通信相手に対し、どこのネットワークでも割り当てた一意のアドレスで通信しているように見せる仕組みを提供する。 これにより、移動ノードでのサービス待ち受けや長時間セッションの継続が可能になる。
目次 |
[編集] 用語
- 移動ノード(mobile node)
- 接続するネットワークが変わってもIPアドレスが変わらないノード
- ホームエージェント(home agent)
- 移動ノードが外部リンクにいるときに移動ノード宛のパケットを捕獲して移動ノードの現在位置に登録する。留守番役
- 外部エージェント(foreign agent)
- 外部リンクで移動ノードからの移動要求を中継したり、パケットを配送する等移動ノードをサポートする。
- 対向ノード(correspondent node)
- 移動ノードと通信しているノードを便宜上こう呼ぶ。特にMobile IPv6では経路最適化を行う場合には、対向ノードでも標準のIPv6には入っていないMobileIPv6用の拡張ヘッダに対応している必要がある。
- ホームアドレス(home address)
- 移動ノードに割り当てられる不変のアドレス
- 気付けアドレス、ケアオブアドレス(care-of address)
- 移動ノードが実際に通信に使用しているアドレス
- ホームリンク(home link)
- ホームアドレスと同じネットワークアドレスをもつネットワーク。ここにホームエージェントがおかれている。
- 外部リンク(foreign link)
- ホームリンク以外の全てのネットワーク。移動ノードが移動してくる。
[編集] プロトコル概要
Mobile IPにはIPv4用のものとIPv6用のものがあり、移動ノードが外部にいるときにホームエージェントに現在の位置を通知し、ホームエージェントが移動ノード宛(ホームアドレス宛)のパケットを実際の移動ノードの位置(気付けアドレス宛)に転送してやると言う点で、両者とも基本的な考え方は似ているといえる。 しかし実際にはIPv4とIPv6という違い以上に、実際の動作や用語など、多々異なる部分もあるので、ここでは別々に見ていくこととする。
[編集] Mobile IPv4
- ホームリンクにはホームエージェントがおかれている。
- 移動ノードにはいつでもホームアドレスがついており、移動ノードがホームリンクにいるときは、通常のIPノードとまったく同じ動作をする。
- 外部リンクには外部エージェントがおかれていることもある。
- ホームエージェントや外部エージェントは、そのリンク上にエージェントの存在を知らせるために、ICMP Router Discovery(RFC1256)を拡張した、エージェント広告(Agent Advertisement)を行っている。これを受信することで移動ノードは、自分がいまどのリンクにいるのかを知ることができる。
Mobile IPの動きは以下の通り。
- 移動の検知: 移動ノードはネットワークに流れているエージェント広告を聞いて、自分が今外部リンクにいるのかホームリンクにいるのかを知る。外部リンクにいる時は、外部エージェントの広告よりその気付けアドレスとMACアドレスを知ることができる。
- 移動登録: 移動ノードはホームアドレスと気付けアドレスを外部エージェントを通してホームエージェントに登録パケットを出す(登録要求; Registration Request)。
- ホームエージェントはその登録要求をうけて、ホームアドレスと気付けアドレスの組を管理しているデータベース(バインディング; binding)を更新(または登録)する。もしこの登録要求が新規登録なら、ホームエージェントはホームリンクに対し、そのホームアドレスのMACアドレスがホームエージェントであるようなGratuitous ARPパケットを出す。これによって、そのネットワークいるルータを含めたノードのARPキャッシュが更新され、また今後ホームアドレスへのARP requestに対してはホームエージェントが答えるようになるため、ホームアドレス宛パケットをホームエージェントが捕獲できるようになる。
- 移動ノードへのパケットの配送: ホームアドレス宛のパケットがホームリンクまで届くと、それは前記の仕組みによりホームエージェントに捕獲される。ホームエージェントは自身が管理しているバインディングから、そのホームアドレスをもつ移動ノードの実際の位置(気付けアドレス)がわかるので、そこに向けてIP in IPトンネリングを行う。
- 外部エージェント、移動ノード間は両者とも既に相手のMACアドレスがわかっているので、外部エージェントはトンネルを解除した上で、移動ノードに転送する。移動ノードには宛先が自分のホームアドレス宛のパケットが到着する。
- 移動ノードからは、どこのネットワークからでも送信元アドレスをホームアドレスにして送信する。一般にIPパケットは宛先アドレスだけで配送されるので、既存のネットワーク変更なしに配送されるが、そのネットワークでingressフィルタリングが設定されている場合は、一度ホームエージェントにトンネリングした上で、そこから配送する方法もある。
ここでは外部リンクに外部エージェントが存在する場合の概要が紹介されているが、移動ノードに外部エージェント機能を組み込んだ、共有気付けアドレス(co-located care-of address)という方式もある。 これは外部リンクに移動した移動ノードが自力でDHCPなどで実際の接続可能なアドレスを取得し、登録要求、パケット転送等を行う。このとき移動ノードには接続可能な気付けアドレスと不変のホームアドレスが共存していることになる。
[編集] Mobile IPv4で使われるパケット
[編集] Mobile IPv4のセキュリティ
To Be Written Soon
[編集] Mobile IPv6
Mobile IPv6のMobile IPv4との大きな違いは以下の通りである。
- 外部エージェントがない。全ての移動ノードは移動登録/パケット転送等の処理を行う。
- 制御メッセージはUDPではなく、新たに設けられたモビリティヘッダで運ばれる。
- 制御メッセージ名が変更されている。
- ingressフィルタリングを避けるために、IPv6の宛先オプションとして、ホームアドレスオプションというオプションが新設された。
- 経路最適化が基本スペックの中に定義されている。また経路最適化を行うために、対向ノードとの間のセキュリティ確保のためにreturn routabilityという仕組みが導入された。
- ホームエージェントのアドレスの自動発見
Mobile IPv6のシーケンスは以下の通り
- 移動の検知IPv6ルータがリンクに送信している、ルータ広告(router advertisement)を聞いて新しいネットワークに移動したことを知り、また同時にこのルータ広告からIPv6のアドレス自動設定の仕組みによって気付けアドレスを取得する。
- 移動ノードがホームエージェントアドレスを知らない場合、ホームリンクのあるエニキャストアドレスにホームエージェント発見要求パケットを送信し、ホームエージェントの一覧を得る。
- 移動ノードは自分で保持しているホームエージェントの一覧より一つを選び、登録要求(バインディングアップデート; binding update)パケットを送信する。気付けアドレスはこのパケットの送信元アドレス、ホームアドレスはホームアドレスオプションに入れて送信される。
- ホームエージェントはホームアドレスと気付けアドレスを自身で管理しているデータベース(バインディングキャッシュ; Binding cache)を更新し、もしこの登録要求が新規登録なら、ホームエージェントはホームリンクに対し、そのホームアドレスのMACアドレスがホームエージェントであるようなUnsolicited Neighbor Advertisementパケットを出す。これによって、そのネットワークいるルータを含めたノードの近隣キャッシュが更新され、また今後ホームアドレスへの近隣探索要求に対してはホームエージェントが答えるようになるため、ホームアドレス宛パケットをホームエージェントが捕獲できるようになる。
- 移動ノードの現在位置を知らない、すなわちバインディングキャッシュを持っていない対向ノードから送出されるパケットはホームリンクに到達し、ホームエージェントに捕獲され、移動ノードにトンネリングされる。移動ノードは、トンネリングをほどき、ホームアドレス宛のパケットを受け取る。
- 移動ノードの現在位置を知っている、すなわちバインディングキャッシュを持つ対向ノードは、ホームエージェントを経由せずに直接移動ノードにパケットを送ることができる。これが経路最適化である。このパケットは送信先アドレスは移動ノードの気付けアドレスになり、更にIPv6の経路オプションが付き、そこにホームアドレスが入る。このパケットは移動ノードの気付けアドレスに到着すると、経路オプションに従って最終到着アドレスをホームアドレスに設定して再び送信処理をすると、移動ノードのホームアドレスに到着する。
- 移動ノードからのパケットには、ソースアドレスに気付けアドレス、宛先オプションにホームアドレスオプションを付加してそこにホームアドレスが入り、通常のIPルーティングに従って配送される。しかし、このパケットにはIPv6標準ノードでは解釈されないホームアドレスオプションが入っているので、相手ノードによってはこのパケットは拒絶される(ICMP6 parameter problemが返ってくる)。このような対向ノードに対しては、ホームエージェントにトンネルし、そこから配送される。
- パケットがホームエージェントから配送される等、対向ノードがバインディングキャッシュを持っていないと認識した移動ノードは、その対向ノードにバインディングアップデートを送信することができる。
[編集] Mobile IPv6のセキュリティ
Mobile IPv6では、移動ノード-ホームエージェント間、移動ノード-対向ノード間で別々のセキュリティ確保方式が採用されている。 これは、もともと移動ノードのホームアドレスはホームリンクから切り出されたものである以上、移動ノードとホームエージェント間には何らかの信頼関係が確保しうるが、対向ノードは移動ノードとは全く関係のないノードなので、そのような信頼関係は持てない、という前提による。
- 移動ノード - ホームエージェント間
この場合は、モビリティヘッダをIPsecのESPで保護する。
- 移動ノード - 対向ノード間
Return routabilityと呼ばれる新しい仕組みを導入している。
[編集] 標準化
標準化はIETFで行われている。
Mobile IPv4は移動プロトコル関係が分化する前のmobileip wgにてほぼ基本部分の標準化は終了し、現在はmipv4 wgにて標準化活動が行われている。 Mobile IPv6はmip6 wgにて標準化活動が行われている。
[編集] 規格
[編集] 動向
Mobile IPv4のRFCが1996年に発行され、Mobile IPv6のRFCは2004年7月に発行された。 しかし、現在までにMobile IPはそれほど普及している様子はない。 これには次のような理由が考えられる。
- 現在利用されているインターネットのプロトコルのほとんどは短い間にセッションが終了してしまうものがほとんどである。そのため、あまり長時間のセッションを持ち運びたいと言う要求はない。
- もともとダイアルアップ接続の頃から、多くのユーザーはノードのIPアドレスは頻繁に変わるものだという前提でインターネットと接してきている。そのため多くのアプリケーションもIPアドレスを識別子としては利用しておらず、何らかの理由でノードの同定が必要な場合でも別の手段でアプリケーションで処理しているのが通例である。
[編集] 関連項目
- NEMO
- MANET