モバイル IPv6 ネットワークのエミュレータの作成とその評価
2002MT092 山本 孔明
指導教員

後藤 邦夫

1 はじめに

3 仮想モバイルノードの実現方法

ノート PC や PDA などの普及によって，コンピュータを移動しながら利用する機会が増えてきた．しかし，現状のプロトコルではネットワーク間の移動による IPアドレスの変化によって，進行中の通信が途絶えてしまうという問題を抱えている．これを解決するために現在
では MobileIPv6 というプロトコルが提案されている．
しかし，モバイルネットワークを実験をしようと考えると，実際にノードを移動させること，複数の移動先ネットワークの用意が必要であることなどから非常に大がかりな実験になってしまう．
そこで，モバイルノードを模倣するプログラムは 1 ホ
ストで多数のモバイルノードをエミュレートするために仮想ホストとし，また，IPv6 に対応した Divert Socketを使用して，移動先ネットワークに依存するネットワー
ク障害起こすことによって様々な状況下のネットワークへノードが移動する状況をエミュレート可能にする．

本節では本研究で使用する仮想 MN を説明する．
3.1 仮想モバイルノードの移動モデル
MN はネットワーク 間を転々と移動したり電源をON/OFF にしたりする．MN の移動モデルには，2 次

本研究では各々ひとつの Mobile Node(MN，ネットワーク間を移動するノード)，Home Agent(HA，MN の移動を管理する機器)，Correspondent Node(CN，MNの通信相手)，ルータを設置するだけで，ネットワーク内を複数の MN が移動している状況を模倣する．図 1 に本研究のネットワークモデルを示す．HA は MobileIPv6

NetworkA
IP/prefix CN

MN2NetworkB
IP/prefix

 

0,2

1,2

2,2

0,1

1,1

2,1 

p_move/40,01-(p_move+p_off)

1,0Poweroff (  )2,0p_move/3

図 2: 状態遷移図

2 実験ネットワーク

MN1

元ランダムウォークのマルコフ連鎖を使用する．本研究
では離散形であるマルコフ連鎖を単位時間毎に計算することで連続形のマルコフ過程に近似して用いる．図 2 に本研究で用いる MN の状態遷移図を示す．

MN MNmNetworkFIP/prefix   divert NetworkA delay,loss !
  
()



NetworkFHA

図 2 は 9 つのエリアがグリッド状に配置された場合のMN の状態遷移を図示したものである．p move はノードが別のエリアに移動する確率の合計であり，p off については MN が電源 OFF 状態になる確率を表している．残りの 1 - (p move+p off) が同じ場所に留まる確率である．また，p on は電源を ON にする確率である．
再び同じ場所で電源を OFF から ON にするとは限らないので，p on/エリア数を各エリアの電源 ON にする確率とする．この状態遷移図から 1 次元の状態番号を生成し，状態遷移確率行列をつくる．1 次元の状態番号をm×N + n とし，M×N を Poweroff 状態に割り当てる．
3.2 仮想モバイルノードの移動の模倣
MN は移動してルータ広告によって CoA を変え，HAに BU を送信して移動先を知らせる．その後，ACK を受信し，MN の移動手続きは完了となる．MN の移動を模倣するには以下のような問題点がある．

HomeNetwork

図 1: ネットワークモデル

機能を追加した Linux ホストを，CA と MN には IPv6が使えるが MIPv6 機能がない Linux ホストを各 1 台使用する．1 台の MN 用ホストでは，1 プロセスで 1つの仮想 MN を模倣するプログラムを必要数動かす．
ネットワークの違いは IP アドレスの範囲で表現する．
IPv6DIVERT を用いた障害発生ルータで，ネットワー
ク毎に異なる delay, loss などを設定することで，多数の仮想的な移動先ネットワークを模倣できる．

・多数のノードを物理的に移動させるのは困難
・1 台のホストで多数の MN エミュレータを動かすためには，OS の MobileIPv6 機能は使えない．
・模倣したい MN の数だけホストが必要
本研究では，ネットワークインタフェイス (NI) に IP
アドレスを付けず，プログラム上で仮想的につけた IP
アドレスを，移動モデルにしたがって変更し，同時にBU を送信する．しかし，NI に IP アドレスをつけないと，OSI の第 2 層までの通信しかできなくなる．図 3 は

仮想ホストを実現するためのプログラムを図示したものである．返事をうけとるために pcap ライブラリを用  



pcap loop

raw socket

ICMP ECHOREQUEST

ICMP ECHO
REPLY

ICMP
NEIGHBOR
SOLICITATIONICMPNEIGHBOR
ADVERT

TunnelTunnel

図 3: 仮想ホストプログラム

い，仮想的にプログラム内で割り当てた IP アドレス宛のパケットを受信可能にした．送信には raw socket を使用した．図 4 に 1 台の MN を模倣するプログラムの処理内容を示す．

p_move
while(1){' &()!"$#!% &BU
 *+ ,* - + , sleep()!
 *.1+ 0!
/
3254
76/298
raw socketBinding Update *+BU

MN の種類や利用目的などで，移動確率や ON/OFF確率が異なる．本研究のエミュレータでは起動時に異なるパラメータを与えるだけで，模倣可能である
2) 仮想的な移動先ネットワーク
エリア数はプログラム起動時に 2 次元エリアのパラメータ (5×5 など) を，与えればよいだけなので，実質無限の仮想ネットワークが構築できる．障害には divert
socket で使用するポート数の上限である 2 の 16 乗から 1024 引いた値まで設定可能である．
3) CN，MN 間の通信
現在，ICMP ECHO を受信し応答可能．ping6 ではオプションで間隔，データ長，送信回数を変更することができるので，UDP ストリーミングなどの通信を模倣することも可能である．しかし，TCP の複雑な通信を模倣するにはプログラムの変更が必要である．
4) 電波が一時的に弱くなる状況の模倣
エリア内での障害は障害パラメータを時間変動させることで可能．エリア境界での不安定な挙動の場合，障害ルータが MN のエリア内位置を知らないので，MN 自身がエリア移動時に障害を起こすが必要ある．

IP*-+ 
while(1){: 14 ; .5<=5.?> !A@B}}

図 4: モバイルノードの動作

4 エミュレータの評価
MN と HA を模倣するためのホストには，CPU がIntel(R)Celeron(TM)500MHz，メモ リ が SDRAM の64MB である PC を使用した．
この PC を使用し，100 個の仮想ネットワークの中で仮想 MN を 10 台，20 台，50 台，100 台，150 台，200台動かした．150 台の MN を動かした時点で w コマンドによる CPU の負荷が 60 を越えた．通信を継続しながらの移動を模倣するために，CN から ping6 を全 MNに送信し続けた場合，150 台の MN を模倣した状態では，MN 側での処理が追いつかないことで通信を継続することができず，今回実験に用いた PC では 120 台まで模倣可能だった．また，このとき HA の負荷は 90 を越えた．HA は多くの MN に対する処理が集中するため，非常に高い処理能力が要求される．しかし，今回の研究では比較的性能の低い PC を使用しているため，性能次第ではより多くの MN を模倣することや，HA の負荷軽減が期待できる．
エミュレータの拡張性
本節では，MN の様々な動作を模倣するためのエミュレータ拡張性について述べる．
1) 各 MN によって移動パターンの種類を複数使用する．

5 おわりに
本研究では，1 台のホストで複数の MN が仮想ネットワークを 2 次元ランダムウォークに従って移動を繰り返し，結果として，100 個のエリア (ネットワーク) を 120台の MN が, 通信を継続しながら動きまわっている状態をエミュレートすることに成功した．PC の性能次第では 120 台を大きく越えるノードを模倣できると考えている．本研究によって，例えば，セキュリティ監視や娯楽のために UDP で動画像を見ながら MN が移動する状況での HA の負荷や，MN への通信到達性などを容易に調べることが可能になった．
MobileIPv6 は現在普及には至っていないため，比較対象となる実際の環境下でのデータがないが，今後MobileIPv6 が普及し，多くのデータと比較することでより精度の高いエミュレータになることが期待できる．
今後の課題は，仮想 MN が TCP などの様々な通信に対応できるようにすること，ネットワークエミュレータにdelay を導入し，ネットワーク内での遅延を模倣することである．

参考文献[1] 伊原 亜希，村瀬 進哉：ネットワーク障害の模倣を目的とする仮想ルータの設計と実現, 南山大学数理情報学部情報通信学科卒業論文, 2005.
[2] Johnson, D., Perkins, C., Arkko, J.: Mobility Support in IPv6, RFC3775, 2004.
[3] MIPL: MobileIPv6.org,
http://www.mipl.mediapoli.com/., 2005.
[4] Wysocki, T.A. et. al: Advanced Wired and Wireless Networks, Springer, 2005.