Skip to content

souring001/illumi-packet

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

イルミパケット

通信パケットを可視化するLANケーブル

English

illumi-packet

動画 (YouTube)

概要

イルミパケットは、通信パケットの種類と方向に合わせて、まるでパケットが流れたかのようにケーブルが光ります。

ARPのパケットはオレンジ色、DHCPのパケットは水色のように光ります。

通常のパケット解析に使われるツールはリアルタイムで目で追うことが難しいのに対し、これはパソコンを操作しながらパケットを観察できるので、「どういう操作」をした時に「どういうパケット」が発生するのかを体感することができます。

例えば、ウェブサイトにアクセスした時は、緑(DNS)と青(TCP)の光が複数個流れます。

color

準備

必要なもの

材料 諸注意
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

golangのインストール

実行するプログラムは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のインストール

プログラムからパケットキャプチャを行うためにlibpcapをインストールします.

$ sudo apt-get install libpcap-dev

SConsのインストール

rpi_ws281xをビルドするためにSConsをインストールします.

$ sudo apt-get install scons

rpi_ws281xのインストール

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ケーブルの作り方

  1. LANケーブルにLEDテープを乗せて,結束バンドで固定する.
  2. ジャンパワイヤ(オス側)を挿し込む
  3. メス側を Raspberry Pi のGPIOの2(5V), 6(GND), 12(信号) に挿し込む
  4. Raspberry Piとルータに接続する

GPIO_Outline

GPIO

ビルド方法

ソースコードを変更するたびにビルドをする必要があります.

$ 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

showipaddress

LEDの表示を消す.

$ sudo ./illumi-packet -reset

LICENSE

クリエイティブ・コモンズ・ライセンス

麻生 航平 作『イルミパケット』はクリエイティブ・コモンズ 表示 4.0 国際 ライセンスで提供されています。

  • 改変・再配布自由
  • クレジット表示必須

自サイトで使用例を紹介させていただく場合があります。
クレジット表示・自サイトでの紹介を希望されない場合は、お問い合わせください。

CONTACT

Twitter: @souring001

ILLUMI PACKET
Copyright (c) 2019, Kohei Aso

About

Illuminating Packets on an Ethernet Cable using LED Strip.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages