集中トラフィックでパケットロス…そんなネットワークの課題を分散して軽減!

SmartMeshはメッシュネット・トポロジーを自動的に構築することが可能なネットワークです。ところが、実際の多ノード運用では、Managerにトラフィックが集中してパケットをロスしてしまう場合があります。これは、SmartMeshに限った話ではありません。様々なネットワークにおいても同じことが言えます。

実験概要

今回は、SmartMeshのVManagerをベースに、もう1台のAP Moteを追加することで、トラフィック処理を軽減させてみたいと思います。

AP MoteとAP Bridgeの違い

  • AP Mote(アクセス・ポイント・モート)とは、アクセスポイントモードにしたUSBのSmartMeshデバイスのことです。
  • AP Bridge(アクセス・ポイント・ブリッジ(ゲートウェイとして機能))とは、RPi3とAP Moteを使用したGatawayシステムの総称です。

1台のAP Moteで対応できるトラフィックは、40パケット/secです。これ以上の負荷がかかると取りこぼすことになります。そこで、今回は、Raspberry Pi 3(以下:RPi3)を使用して、2台のAP MoteをVManagerで一元的に管理できる方法をご紹介します。

これをやってみる(実験内容)

  • EManagerをAP Moteにする
  • VManagerとして動かす
  • RPi3をAP Bridgeとして設定する
  • 複数のAP MoteをVManagerに統合する

それでは、一つ一つ見ていきましょう。

EManagerをAP Moteにする

EManagerは、DC2274A-AというUSBの青いデバイスです(図1)。このファームウェアを変更することで、DC2274A-Bにすることができます。

図図1:DC2274A-A

まずは、SmartMeshのツールガイドとユーザガイドをダウンロードして、その手順を理解しておきましょう。

SmartMesh IP Tools Guide
SmartMesh IP Users Guide

書き換えに必要なものは、AP Moteにするためのバイナリです。事前に、MyAnalogの登録をしておきましょう。

ファイルのダウンロード

登録後、2つのファイルをダウンロードしてください。

1)SmartMeshのバイナリ SmartMesh_IP.zip

SmartMeshのバイナリ

2)プログラマー Download ESP Zip File

書き込みツール
現時点のバージョンは、esp_1.1.1.6.zipです。

この2つのファイルを同じディレクトリに配置しておくと、便利です。

書き換え

必要なファイルは、SmartMeshのバイナリが含まれているディレクトリにあります。「Eterna」-「AP Mote」のディレクトリの中にある、prog_APM_DC2274A-A.batを実行します。

このバッチファイルに記載されているファイルは、4つあるフォルダから、コピーしてくる必要があります。

フォルダは、「AP Mote」「FuseTables」「Manager」「Mote」です。バージョンが記載されていますので、基本的には最新のバージョンを選択すればいいでしょう。

今回書き込むファイル群

今回書き込むファイルは、以下の4つのファイルです。図2の緑で囲ってあるのが該当するファイルです。

  • loader_1_0_6_4_oski.bin
  • mote_part_r52074.bin
  • ap_ip_1_4_2_3_oski.bin
  • FT-DC2274A-A-MEM128K-M4-115K-680-0383-0002REV1.bin

図図2:更新するファイルとバッチファイル

バッチファイルは、1-2分で終了します。図3は、書き込みのログ画面です。

図図3:書き込み中のログ画面

成功すれば、EManagerは、AP Moteに変更されます。

リストア方法

EManagerをVManaerのAP Moteにしたけど、やっぱり戻したい場合は、下記方法でEManagerに戻すことができます。

`ESP –E`
`ESP –P fuse_table.bin 0`
`ESP –P mgr_part_r52074.bin 800`
`ESP –P manager_ip_1_4_2_2_oski.bin 1000`
					

詳しくは、SmartMesh IP Users Guideの"4.1.6 Restoring Manager Factory Default Settings"を見て下さい。

FullImageでバックアップ

どうしても心配な方は、AP Moteへの変更を行う前に、

ESP -r fullImage.bin

でバックアップを取りましょう。

戻すときは、

ESP -P fullImage.bin

で戻すことができます。

VManagerとして動かす

DC2274A-AをAP Moteに変更したら、VManagerで動くかどうかを確認してみましょう(図4)。

図図4:VManagerとして起動させたところ。

他のMoteもつないで、consoleで確認してみます(図5)。

図図5:VManagerとして動作していることが確認できました。

RPi3をAP Bridgeとして設定する

こんどは、あらかじめにAP BridgeのイメージをいれたOSイメージをRPi3に入れて動かしてみましょう(図6)。

図図6:AP MoteとRPi3でAP Bridgeを構成します。

RPi3のOSイメージ

VManagerのパッケージには、AP Bridge Softwareという名前のOSイメージファイルが同梱されています。

これをSDカードに書き込んで、RPi3をブートさせると、AP Bridge用のソフトウェアが含まれています。RPi2も使用できます。SDカードは、16GB以上のmicroSDカードを用意するといいでしょう。

今回使用しているバージョンは、rev_1_1_0です。イメージファイルは、raspbian-jessie-lite-dust-11004.imgを使用しています。

RPi3をつないでみる

RPi3は、Ethernetにつないで、HDMIとキーボードを接続し、起動させます。図7のように接続しています。DC2274は、直接USBポートに使用すると、他のポートを塞いでしまいますので、USBの延長コネクタがあると便利です。

図図7:AP BridgeとRPi3をつないで、起動させているところ。

RPi3は、VManagerのように起動しますので、ID:dust/PW:dustでログインします。

RPi3のIPアドレスを確認

RPi3のコマンドifconfigでIPアドレスを確認します。今回割り当てられたアドレスをメモか何かで控えておきます。ここでは、10.0.1.29としておきましょう。

複数のAP MoteをVManagerに統合する

ここで、VManagerで、RPi3のAP Bridgeを統合します。

Stunnelを使う

Linuxのコマンドプロンプトから、update-apc-config stunnel --host ipaddressコマンドで、VManagerと接続します。

先ほどのIPアドレスを使用し、update-apc-config stunnel --host 10.0.1.29と入力します。このコマンドにより、RPi3のAP BridgeがVManagerに統合されます。

consoleで確認

VManagerにSSHでログインして、consolesmコマンドでMoteの状態を確認してみました(図8)。

図図8:追加されたAP Mote

赤い枠で囲んであるところが、追加されたAP Moteです。2つのAP Moteで4台のMoteが接続されていることがわかります。

ローカルに接続されたVManagerは、「Int」で表示されています。Stunnelで接続されたAP Bridgeは、「Net」で表示されています。

まとめ

ノード数が増えてくると、帯域増加は免れません。そんな時に、簡単に追加できるAP Moteで、VManagerのトラフィック負荷の解消を検討して見て下さい。