通信パケットを可視化するLANケーブル
イルミパケットは、通信パケットの種類と方向に合わせて、まるでパケットが流れたかのようにケーブルが光ります。
ARPのパケットはオレンジ色、DHCPのパケットは水色のように光ります。
通常のパケット解析に使われるツールはリアルタイムで目で追うことが難しいのに対し、これはパソコンを操作しながらパケットを観察できるので、「どういう操作」をした時に「どういうパケット」が発生するのかを体感することができます。
例えば、ウェブサイトにアクセスした時は、緑(DNS)と青(TCP)の光が複数個流れます。
材料 | 量 | 諸注意 |
---|---|---|
LEDテープ(WS281B) | 1m | 個別アドレス可能・フルカラーのもの.144LEDs/m 推奨. |
Raspberry Pi | 1台 | 動作確認: Raspberry Pi 2, 3, 4 |
LANケーブル | 1m | |
ジャンパ線 オス-メス | 3本 | |
結束バンド | 4本 |
そのほかに,キーボード,ディスプレイ,HDMIケーブル,ルータ等はご用意ください.
動作には以下の環境が必要です.
- golang
- libpcap
- SCons
- rpi_ws281x
- illumi-packet
実行するプログラムはgo言語で記述されています.
https://golang.org/doc/install#install に従ってインストールします.
以下のようにターミナルで実行し,最後にバージョンが表示されることを確認してください.
$ version=1.13.4
$ wget https://storage.googleapis.com/golang/go${version}.linux-armv6l.tar.gz
$ sudo tar -C /usr/local -xzf go${version}.linux-armv6l.tar.gz
$ echo "export PATH=\$PATH:/usr/local/go/bin" >> ~/.profile
$ . ~/.profile
$ go version
go version go1.13.4 linux/arm
プログラムからパケットキャプチャを行うためにlibpcapをインストールします.
$ sudo apt-get install libpcap-dev
rpi_ws281xをビルドするためにSConsをインストールします.
$ sudo apt-get install scons
LEDテープはrpi_ws281xというライブラリで操作します.
https://github.com/jgarff/rpi_ws281x に従ってインストールします.
$ git clone https://github.com/jgarff/rpi_ws281x.git
$ cd rpi_ws281x
$ scons
$ sudo cp -ai ./ws2811.h ./rpihw.h ./pwm.h /usr/local/include/
$ sudo cp -ai ./libws2811.a /usr/local/lib/
このリポジトリのソースコードを適当なディレクトリにダウンロードします.
$ git clone https://github.com/souring001/illumi-packet.git
$ cd illumi-packet
LEDの個数によってillumi-packet.go
の以下の変数を適宜変更してください.
LEDの個数 | count | speed | series |
---|---|---|---|
60 個/m | 60 | 1 | 6 |
144 個/m | 144 | 4 | 12 |
144 個/m (50cm) | 72 | 1 | 12 |
- LANケーブルにLEDテープを乗せて,結束バンドで固定する.
- ジャンパワイヤ(オス側)を挿し込む
- メス側を Raspberry Pi のGPIOの2(5V), 6(GND), 12(信号) に挿し込む
- Raspberry Piとルータに接続する
ソースコードを変更するたびにビルドをする必要があります.
$ go build illumi-packet.go
$ sudo ./illumi-packet
Ctrl+Cで終了します.
オプション | 内容 |
---|---|
-h | オプションの説明 |
-debug | パケット情報等の詳細を出力する(デフォルトはtrue ) |
-device [string] | ネットワークインターフェースを設定(デフォルトはeth0 ) |
-speed [int] | パケットの流れる速度を設定(デフォルトは1 ) |
-narp | ARPを表示しない |
-ntcp | TCPを表示しない |
-nudp | UDPを表示しない |
-reset | 点灯中のLEDの表示を消す |
-ipaddr | IPアドレスをLEDに表示する |
TCP, UDPのパケットを表示しない.
$ sudo ./illumi-packet -nudp -ntcp
パケット情報等の詳細を出力しない.
$ sudo ./illumi-packet -debug=false
Wi-Fiの通信を可視化する.
$ sudo ./illumi-packet -device wlan0
IPアドレスをLEDに表示する.
$ sudo ./illumi-packet -ipaddr
LEDの表示を消す.
$ sudo ./illumi-packet -reset
麻生 航平 作『イルミパケット』はクリエイティブ・コモンズ 表示 4.0 国際 ライセンスで提供されています。
- 改変・再配布自由
- クレジット表示必須
自サイトで使用例を紹介させていただく場合があります。
クレジット表示・自サイトでの紹介を希望されない場合は、お問い合わせください。
Twitter: @souring001
ILLUMI PACKET
Copyright (c) 2019, Kohei Aso