IoTモジュールのようなもので通信内容を確認したときがあります。ルーターなどのスイッチに接続すると、他の機器にはパケットは飛んでこないので、通信内容を知る事はできません。スイッチには特定ポートの内容をすべて送るミラーなどの機能があることが多いですが、使える環境は限られます。
このためFreeBSDをブリッジにして通信内容を覗いてみます。
FreeBSD/i386を使い構成はこのようになります。
通常は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を使って帯域制御やパケットロスをシュミレーションすることもできます。