第4回IPv6Mobile-testbedミーティングIPv6Mobile-testbed meeting #4

更新が遅くなってしまいましたが,6/25に行われた第4回IPv6Mobile-testbedミーティングについて紹介させて頂きます.

第3回のミーティングでは,B.A.T.M.A.N.制御ツールbatctlをインストールしてNICに仮想インターフェースを割当て,室内でL2でのマルチホップ通信の動作確認を行いました.
正常に動作することが確認できたので,今回はMR(Mobile Router)用端末をルータとして使うための設定,kernelの設定&再構築を行います.
(以下OSはUbuntu-server 11.10)

1.MRとしての設定
〜まずはIPv6に関する基本的なおさらいから〜
IPv6ネットワークでは,端末へのアドレッシングにRA(Router Advertisement)を用いることができます.
RAとはルータが近隣ノードへプレフィックスなどを通知するためのNDP(Neighbor Discovery Protocol)メッセージの事であり,各端末はこのRAパケットのプレフィックスと自分のMACアドレスを組み合わせて、IPv6アドレスを生成する 事ができます.
これによって,IPv6ではIPv4のようにDHCPサーバを用意しなくても自動的にステートレスアドレスを生成することが可能です.
またIPv6では,ルータはRAを受け取らない(受け取っても解釈しない)という決まりごとがあります.
従って今回MRには,下流インターフェースの指定,RAを受け取らない,フォワーディングを行う,RAを送信するという設定が必要になります.

●下流インターフェースの設定
とりあえず今回は,下流インターフェースにeth0を利用します.(後々wlan1も利用する予定)
/etc/network/interfacesに以下の設定を追加します.

 ●RAを受け取らない・フォワーディングの有効化設定
/etc/sysctl.confを,以下のように設定する

 ●RAの送信を行う
今回RAの送信を行うためのデーモンとしてradvdを使います.
まずはradvdとをインストールします.

 インストールが完了したら,/etc/radvd.confを以下のように設定します.

あとは再起動すれば下流ネットワークにRAを送信するようになります.
なお自動起動の設定は,sysv-rc-confで行います.

2.kernelの設定&再構築
〜目的〜
MRは下流に複数のノードをもち,そのネットワークを保持したまま移動しますが,この時NEMO(Network Mobility)と呼ばれるプロトコルを利用します.
NEMOは,Mobile IPv6(CMIP)をベースに作成されたネットワークを移動させながら通信するためのプロトコルです.
そこで今回私達はNEMOを実装するために,UMIPというMobile IPv6とNEMOのオープンソース実装を利用します.
従ってまずはUMIPを利用するのに必要な準備として,Linux Kernelの2.6.26以降のバージョンに統合されているIPv6モビリティサポートの機能を使えるようにKernelのコンパイルとインストールを行います.

●Kernelのコンパイル
必要なカーネルをDLして,メニュー画面を開きます.

 以下の項目の設定をONにします.

 設定が完了したらKernelのコンパイルを行います.(長時間かかります)

 ●Kernelのインストール
コンパイルが完了したら,Kernelのインストールを行います.

Reboot後OSの名前を確認し,コンパイルしたものに変わっていれば成功です.

写真-12-07-02-18-20-08
GPSでの位置情報取得のために窓際に置かれるDevice達

今回UMIPを利用するための準備が完了したので,次回はUMIPをインストールしてNEMOを利用できるようにします.

(参考URL)
[1]How to setup a NEMO Basic support testbed (with IPsec static keying)
http://www.umip.org/docs/umip-nemo.html

[2]Kernel/Compile – Community Ubuntu Documentation
https://help.ubuntu.com/community/Kernel/Compile/

[3]How to install UMIP (kernel and userland)
http://www.umip.org/docs/umip-install.html

by Kenta MORI