kimagre inrash

感想を書きます

Raspberry Pi 3 でパケット遅延器を作る(有線-無線ブリッジ)

time 2018/01/21

パケットの実験

パケットの帯域制限や遅延の実験がしたくなったのでいろいろ調べる。

WindowsPCを経由させれば、簡単にできそう。

ウチのPCには有線LAN接続できるものがなかったので以下のLANアダプタを購入。
Amazonで買おうと思っていたけれど、ちょうど売り切れていたのでヨドバシで買いました。

購入するが・・・

購入してきたのでPCに繋いでブリッジ接続。
接続自体は簡単に出来ました。
で、パケット遅延ソフトを探す。
上記を参考に試してみたもののうまく起動できず。
capture1050.jpg
以下のエラーが起動時に発生。
Just-In-Time (JIT) デバッグを呼び出すための詳細については、
ダイアログ ボックスではなく、このメッセージの最後を参照してください。
************** 例外テキスト **************
System.BadImageFormatException: 間違ったフォーマットのプログラムを読み込もうとしました。 (HRESULT からの例外: 0x8007000B)
   場所 wlinee.wlinee.InitializeLinee()
   場所 wlinee.wlinee.Form1_Load(Object sender, EventArgs e)
   場所 System.Windows.Forms.Form.OnLoad(EventArgs e)
   場所 System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
   場所 System.Windows.Forms.Control.CreateControl()
   場所 System.Windows.Forms.Control.WmShowWindow(Message& m)
   場所 System.Windows.Forms.Control.WndProc(Message& m)
   場所 System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   場所 System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
************** 読み込まれたアセンブリ **************
mscorlib
    アセンブリ バージョン: 2.0.0.0
    Win32 バージョン: 2.0.50727.8825 (WinRelRS3.050727-8800)
    コードベース: file:///C:/Windows/Microsoft.NET/Framework64/v2.0.50727/mscorlib.dll
----------------------------------------
wlinee
    アセンブリ バージョン: 1.0.0.0
    Win32 バージョン: 1.0.0.0
というわけで別のソフトを探す。

他のソフトを試す

一応起動できて遅延は確認できたけど、
ブリッジ接続している端末から送ったものに関しては適用されていない模様。
いよいよWindowPCでこれらを扱うのが難しくなってきた。
というわけでLinux関連で調べ始める。
するとちょうどいい感じの記事発見。

Raspberry Pi 3を買いました

DT9NYjWXUAA-oVu.jpg large.jpg
買ったのは以下。

セットアップ

セットアップは上記を参考にやりました。
かなり簡単。
OSのセットアップていうと
CD-ROMとかDVD-ROMを入れて数時間てイメージだったけど
今時ネットワークでインストール出来るんですね。
私は有線でやりました。
DT9R1yFVMAAlDcw.jpg large.jpg

出来た

上記を参考にLANアダプタ指してやってみたところ、出来たっぽい。

$ sudo apt install bridge-utils

$ sudo brctl addbr br0
$ sudo brctl addif br0 eth0 
$ sudo brctl addif br0 eth1
eth0に100msの遅延を設定
$ sudo tc qdisc add dev eth0 root netem delay 100ms

eth0に設定したものを解除

$ sudo tc qdisc del dev eth0 root
でもわざわざLANアダプタつけないといけないのは面倒だし、
せっかく小型なラズパイの邪魔だよね、ということで
無線LANと有線LANのブリッジ接続を試す。

無線LANと有線LANのブリッジ

Raspberry Pi 3 を WiFi アクセス・ポイント化する
元々搭載されている有線LANをルータ側、
無線LANはアクセスポイントとして
ラズパイ経由で外部ネットワークにいくイメージ。
上記サイトを参考に簡単に出来ました。
試しに100msの遅延を設定してiPhoneからラズパイアクセスポイントに接続してみると確かに遅延がついてました。
rp0000.jpgrp0100.jpg

目的達成

最後にSSHとVNCを有効にして完了。
SSH は TeraTerm 使ってます。
VNC はいろいろあって訳がわからなかったけど、
RealVNC のビューワにしました。
RealVNCで接続したときに画面解像度がVGA(640×480)になってしまったけど、
設定から変更できました。
【STEP-01】画面の解像度と地域設定を行う。

まとめ

rp3.jpg
今まで興味はあったけど、いざ使おうとなると何しようかなと考えてしまって保留状態だったRaspberryPi。
今回たまたまではあるけど、軽く触ってみてかなりいい感じのマシンということが判明。
マシンもいいですが、ネット上に資料がたくさんあるので解決までの時間が早いのもいいところ。
また何か作りたくなったら買ってみます。

前後記事

Raspberry Pi 3 と LOGICOOL C270 でネコ観察カメラを作る