WirelessWire News Technology to implement the future

by Category

災害時に頼れる地域分散ネットワークシステム技術(後編)

2011.11.21

Updated by WirelessWire News編集部 on November 21, 2011, 10:30 am JST

2011年10月29日、独立行政法人情報通信研究機構(NICT)は、地域分散ネットワーク技術「NerveNet」の公開デモンストレーションを実施した(関連記事:NICT、分散型地域ネットワーク「NerveNet」のデモを実施)。NerveNetの技術についての解説を、同研究機構 光ネットワーク研究所 ネットワークアーキテクチャ研究室 専攻研究員の大和田 泰伯氏にご執筆いただいた。後編では、ネットワーク実現のためのアーキテクチャについて詳しく解説する。(編集部)

前編はこちら

2.NerveNetを実現するアーキテクチャ

我々は、NerveNetのこれらの機能を、低コストで実現するために、既存のWiFi機器やL2スイッチ機器を利用した実装による機能検証を行ってきている。以下に、実装例を紹介する。

2.1.ハードウェア構成

NerveNet基地局装置の現実装(ハードウェア構成)を図3に示す。

▼図3.NerveNet基地局の試作機と内部構成(※画像をクリックして拡大)
201111211130-1.jpg

NerveNet基地局装置は、ユーザ端末収容のための無線LANアクセスポイント装置1台、及び基地局間接続のための無線LANインターフェースを3台と、レイヤ2のVLANスイッチ、それらを制御するためのCPUボードから構成される。現実装では端末収容及び基地局間接続のリンクには無線LANを使用しているが、有線・無線問わずEthernetで基地局内VLANスイッチに接続可能な装置であれば基地局間接続に利用できる。

CPUボード上では、OSとしてLinuxが動作しており、各種ネットワーク機能(DHCP、SIP、DNS等)の他、経路制御プロトコル、基地局間トンネル生成プロトコル、VLAN選択プロトコル等のNerveNet独自のプロトコルが動作している。更に、VLANスイッチや無線LANインターフェースの各種設定を動的に変更する機能も実装しており、基地局の電源を投入すると、自律的に隣接の基地局で使用している無線LANのチャネルをスキャンし、各インターフェースに割り当てるチャネルを決定し、隣接基地局とのリンクを構築すると同時に、VLANスイッチのコンフィギュレーションをネットワーク全体のコンフィギュレーションに応じて変更する。

===

2.2.隣接基地局発見とVLANによるマルチホップ経路構築

NerveNetでは、基地局自身と直接接続している隣接基地局を知るために、それぞれのインターフェース毎に定期的にHelloメッセージを送受信している。このメッセージを受け取る事により、どの基地局がどのインターフェースと(L2スイッチのどのポートと)接続されているかを知ることができる。また、定期的にメッセージを送受信しているため、一定期間メッセージが届かなかった場合には、その基地局へのリンクが切断されたと判断する。基地局は、収集した隣接基地局の接続状態を後述するデータベース同期プロトコルを用いて情報同期することで、ネットワーク全体の接続状態を全基地局で共有することができる。データベース同期に用いるフラッディングでは、隣接する基地局へ1台ずつTCPを用いてバケツリレー的に情報を伝達していく高信頼なフラッディング法を用いる。よって、マルチホップの経路構築前にネットワーク全体でネットワークの状態を共有・把握することができる。

基地局の一部の機器はネットワーク全体を管理する機能を有しており(この装置を以後ネットワークマネージャ:NMと呼ぶ)、このNMがネットワーク全体のトポロジから考えられうる複数のTree経路を代表して計算する。このTree経路に対してVLAN IDを割り当て、ネットワーク全体へ計算結果をフラッディングする。この時にも高信頼なフラッディングを用いる。Tree経路情報を受け取った基地局は、その設定に基づき、自身のVLANスイッチにVLANの設定を書き込む。これにより、メッシュ状の基地局同士のネットワークトポロジ上に複数のTree状のVLANが構築され、任意の基地局間が複数のVLANによりレイヤ2で接続された状態になる。

例えば、図4に示すように、端末1から端末2及び端末3から端末4の通信では基地局(BS)9が端末からのパケットをVLAN ID(VID)=101の経路Treeを使用して宛先基地局へ送信するため、データリンク層ではVID=101のタグをつけてフレームを送信する。中継基地局(BS1及びBS3)のVLANスイッチがそのフレームを受け取ると、自身のVLANスイッチのVID=101が設定されたVLAN上のMACアドレス学習テーブルに従い、適切なポートへフレームをスイッチする。このため、フレームは宛先の基地局までレイヤ2にて高速に中継されていく。通信の中継にVLANスイッチを用いる事で、アドホックネットワークのようなソフトウェアによるルーティングに比べ大量のトラフィック中継処理を高速に行える事、VLAN毎に帯域制御などのトラフィックマネジメントが行える事、汎用・大量生産装置を流用する事でコストを抑えられる等のメリットがある。

基地局が、宛先となる基地局に対してフレームを送信する際には、複数あるVLANツリー候補の中から最もコストの少ないVLANツリーを選択して送信する。このコストは、リンク毎の無線LAN装置のビットレート、受信信号強度、再送回数等から算出する。もし、図4に示す様に経路上のリンクが切断された場合には、リンク切断を検出した基地局(BS1とBS8)からリンク切断通知メッセージが全基地局に対して即座にフラッディング(全宛先に到達可能なVLANツリーを用いたL2によるフラッディング)され、その経路を使用して通信を行なっていた基地局は即座に切断されたリンクを含まない最小コストのVLANツリー(この例ではVID=102のTree経路)へ切り替える。切断されたリンクが経路上に含まれていない場合(例えばVID=101におけるBS9からBS2 への通信)には、そのままの経路を使い続ける。これにより、災害や障害などによる機器の故障やリンクの切断に対して強いネットワークを実現している。

▼図4.リンク切断時の経路自動切り替え(※画像をクリックして拡大)
201111211130-2.jpg

===

2.3.端末間移動通信技術

NerveNetでは、利用可能な端末として無線LAN搭載の機器(スマートフォン等)を対象としており、基地局は端末に対し通常の無線LANアクセスポイントとしてWiFiサービスを提供する。端末は、基地局による認証(現実装ではSIPを用いて実装している)の後にIPアドレスの割り当て、デフォルトGWアドレス(基地局内制御PCのアドレス)及びDNSサーバの設定を行う。

この時、端末の識別子(ID)であるSIP-URIを基地局へSIPを用いて登録(REGIST)すると同時に、REGISTされた基地局では、他の全基地局に対して端末の所在情報をフラッディングにより通知する。基地局装置はそれぞれ異なるサブネットを構成し、そのサブネットのアドレスプールより端末へIPを割り当てる。端末側からは、基地局装置がデフォルトゲートウェイとして見え、基地局を切り替えるたびに新たにIPアドレスを割り当てなおす。端末間の通信は、端末装置毎に付けられた端末識別子(SIP-URI)を用いて行う。

基地局では、端末へIPを割り当てた際に、そのIPアドレスとSIP-URIを記録している。そのため、送信元端末が宛先端末のSIP-URIからIPアドレスを解決するためのリクエストに対し、基地局が即座に応答できる。端末は基地局を切り替えるたびにIPアドレスが変化するが、その都度SIPが宛先IPアドレスの解決を行うことで通信セッションを維持し続けるため、シームレスな移動通信を可能としている。また、個々の基地局が端末のSIP要求に応答するため、特定のSIPサーバを設置する必要もない。

2.4.セキュリティ技術

NerveNetでは、先にも述べた様に、予め接続を許可された端末のみ接続を許可するための認証技術が含まれている。また、端末からの通信は、基地局によって宛先となる基地局へルーティングされる際にIPv6トンネルを介してそのまま転送される。この時、基地局間トンネルにIPsecを用いる事で端末間の通信を暗号化することができ、たとえ基地局間通信を盗聴されたとしても、端末間でやり取りされる通信を覗き見ることができないようにする事が可能である。(図5参照)

現実装では、端末に対して予め識別子であるSIP-URIと認証鍵を配っておき、その端末のSIP-URI及び認証鍵は全ての基地局間で揮発メモリ上に保持している事が前提となっているが、現在、この鍵の配布や端末同士の認証も含め分散で認証が行えるような仕組みの研究開発を行っている。

▼図5.端末間通信時の基地局装置におけるパケットの経路(※画像をクリックして拡大)
201111211130-3.jpg

===

2.5.マルチキャスト・フラッディングと分散データベースの同期

既存のアドホックネットワークでマルチキャストを利用するためには、ODMRP等のマルチキャストルーティングプロトコルを用いてマルチキャストグループを構成し、そこへのJoin/Leaveをする事でマルチキャストの配信経路を維持する。また、レイヤ2によるメッシュネットワークの規格であるIEEE802.11sは、LANの拡張であるため、基本的にはブロードキャスト通信は行えるが、ブロードキャストであるためLAN内の全てのアクセスポイント/端末への配信が前提となる。

これらのマルチキャストやブロードキャストは、映像や音声等のリアルタイム性を重視した放送型の通信をサポートするために使用される事が多く、そのため無線LANではマルチキャストのフレームはユニキャストと異なり再送されない。よって、隠れ端末問題等により無線信号の衝突や干渉によりフレームが損失する環境下では、全マルチキャストグループのメンバ端末に対して確実に同報配信することが困難である。

NerveNetでは、上記のようなリアルタイム性を重視する放送型アプリケーション向けのレイヤ2によるフラッディング機能と、遅延を許容しても確実にデータをグループ内に配信するためのTCPを用いたバケツリレーによるフラッディング(グループキャスト)の2種類を基地局の機能として端末にAPIを提供している。

===

3.端末アプリケーション例(安否確認・検索及び広報発信アプリケーション)

NerveNetにおける端末アプリケーションの例として、今回は2011年10月29日に東京都小金井公園にて行われた平成23年度東京都・小平市・西東京市・武蔵野市・小金井市合同総合防災訓練で実際にデモとして公開した、災害時における安否確認・検索システムを紹介する。

端末は、NerveNet用アプリケーション起動時に、基地局に対して自身のアプリケーション情報及びグループ情報を基地局へ登録する。基地局では、端末の接続情報と同様に、端末で動作しているアプリケーション情報及びグループ情報をフラッディングし、基地局間で共有する。基地局は、自身が把握している同一アプリケーション・同一グループに所属しているネットワーク内の端末情報が更新される度に、配下の端末に対してもその情報をプッシュ通知する。これにより、端末では、同一のアプリケーションを同一グループIDで動作させている端末の一覧を常に把握することができ、それらとの間でアプリケーションが管理するデータベースの同期を行うことができる。

例えば、今回の安否登録・確認アプリケーションでは、避難してきた人がICカード(Felica/Mifare)を端末にかざし、名前・住所・年齢・連絡先電話番号等の情報をその端末上で登録すると、登録された個人情報は端末アプリケーション内のデータベースの個人情報テーブルへICカードのUIDと共に格納される。アプリケーションのデータベースに更新があると、端末は基地局へ更新された情報及び更新されたテーブルのHash情報を送り、その情報は同時にネットワーク内で同一のアプリケーション・同一グループを構成している全端末に対してグループキャストされる。端末が新たな情報を受け取ると、自身のデータベースを更新する。これにより、全ての端末アプリケーション内のデータベースを同期させる。最終的に、遠隔地の避難所で登録された個人情報データベースが別の避難所の端末へも同期されるため、どの避難所に誰がいるかを端末内のデータベースから即座に検索する事ができる。

また、このようなデータベース同期による通信のもうひとつのメリットは、遅延を許容している(DTNである)ことである。災害等により、これまで互いにつながっていたネットワークが2つ以上に分断されてしまった場合であっても、端末がそのネットワーク間を移動し、移動先のネットワークで端末内に記録されたデータベースと移動先ネットワーク内の最新情報とを相互に情報同期させることにより、ネットワーク的に分断された地点間の情報であってもリアルタイムではないが同期・伝達することが可能である。これらを実現するために、基地局装置はアプリケーションのデータベースを同期するためのフレームワーク(グループ間マルチキャスト機能・差分情報提供機能、P2P通信機能)を提供する。ユーザのデータベース同期及び必要な情報交換は、端末同士が基地局の提供するグループキャストやP2P通信機能を用いながら、同一グループ内のデータベース同期を行う。

小金井公園で行われた防災訓練では、ICカードを用いた個人情報の登録の他、別の避難所に避難者が転居した際にも、予め登録したICカードを端末にかざすだけで、その避難所へ転居した事が別の避難所でも即座に確認できるデモや、ある端末から避難所の全端末に対して広報メッセージを同時配信し、配信されたメッセージが端末へプッシュ通知されると同時に音声読み上げさせるアプリケーションを実演した。これらは全てNerveNetの基地局が提供する端末間のデータベース同期支援機能とグループキャスト及びP2P通信機能を活用した一例である。今回使用した端末用アプリケーションは全てAndroidのアプリケーションとして実装しており、近年普及しつつあるスマートフォンであれば、NerveNet基地局の提供する機能を用いたアプリケーションを容易に作成・動作させることができる。

▼図6.NerveNetを活用した端末アプリケーションの一例(安否登録・確認及び広報発信)(※画像をクリックして拡大)
201111211130-4.jpg

文・大和田 泰伯(独立行政法人 情報通信研究機構 光ネットワーク研究所 ネットワークアーキテクチャ研究室 専攻研究員)

WirelessWire Weekly

おすすめ記事と編集部のお知らせをお送りします。(毎週月曜日配信)

登録はこちら