1
0

More than 3 years have passed since last update.

FreeBSDでsnoop

Last updated at Posted at 2020-12-29

IoTモジュールのようなもので通信内容を確認したときがあります。ルーターなどのスイッチに接続すると、他の機器にはパケットは飛んでこないので、通信内容を知る事はできません。スイッチには特定ポートの内容をすべて送るミラーなどの機能があることが多いですが、使える環境は限られます。

このためFreeBSDをブリッジにして通信内容を覗いてみます。

FreeBSD/i386を使い構成はこのようになります。

snoop.png

通常はfxp0を使っています。ブリッジを設定します。

% sudo ifconfig bridge create
% sudo ifconfig bridge0 up
% sudo ifconfig bridge0 addm fxp0
% sudo ifconfig bridge0 addm vr0
% sudo ifconfig vr0 up

これで

% sudo tcpdump -i vr0

通信内容の確認ができます。このケースではbridge0やvr0にIPアドレスは必要ありません。

インターフェースはなんでもよくてUSB-Etherモジュールが手軽でよいかもしれません。

tcpdumpのhostでモジュールのIPアドレスを指定したり、etherでMACアドレスを指定すると、モジュールに関係するパケットだけ見れます。

HTTPであればtcpdump -xXで中身も見れますが、HTTPSの場合中身を見てもなんだか分かりません。

FreeBSDでは上記のkernel moduleを使う方法とは別にnetgraphを使ってもbridgeを実現できます。この場合/usr/share/examples/netgraph/ether.bridgeを修正して試すのが良いでしょう。

この構成でdummynetを使って帯域制御やパケットロスをシュミレーションすることもできます。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0