debianでインライン構成のパケットキャプチャマシンを作る

概要

トラブルシューティングの際にネットワークを流れるパケットをキャプチャしたい場合があります。 Liva Q1L はLANポートが2ポートあるためインラインでキャプチャできるデバイスにできればキャプチャ用に別途ハブなどを用意する必要が無く便利です。 キャプチャしたファイルは Wireshark などで分析することが出来ます。

f:id:infrablogger:20211115212410p:plain
通常構成
f:id:infrablogger:20211115212620p:plain
インライン構成

環境

ハードウェア

ソフトウェア

設定

現在の構成を確認する

nmcliコマンドで、現在の構成が確認できます。 LANケーブルの接続された enp2s0 と、接続されていない eno1 が存在します。

# nmcli con
NAME             UUID                                  TYPE      DEVICE 
ethernet-enp2s0  2815e4b1-4a3d-4d99-96b9-bea28eec47cd  ethernet  enp2s0 
ethernet-eno1    07025d57-e81f-4ef6-b2ec-e324f9bd5601  ethernet  -- 

LANをブリッジ構成にする

仮想ブリッジ br0 を作成します。ブリッジとは複数のLANポートをまとめて1つのハブのようにしたものです。無線と有線をブリッジすることで無線アクセスポイントを作成することなどもできます。ルーターと違うのは、全て同一のネットワークセグメント(ブロードキャストドメイン)になることです。

例えば、IPアドレスDHCPで取得するブリッジを作成する場合、以下のようにします。

# nmcli con add type bridge ifname br0

IPアドレスを固定したい場合は、以下のようにします。

# nmcli con add type bridge ifname br0 ipv4.method manual ipv4.address "192.168.11.11/24" ipv4.gateway "192.168.11.1"  ipv4.dns "192.168.11.1"

物理ポート enp2s0 と eno1 をブリッジに接続します。

# nmcli con add type bridge-slave ifname enp2s0 master bridge-br0
# nmcli con add type bridge-slave ifname eno1 master bridge-br0

物理ポートを 削除します。今、enp2s0にLANケーブルが接続されているなら、先にeno1から削除し、後からenp2s0を削除し再起動します。

# nmcli con del ethernet-eno1
# nmcli con del ethernet-enp2s0 ; reboot

これで、br0 を流れるパケットをキャプチャすればよいことになります。

tcpdump をインストールする

パケットキャプチャに利用するソフトウェア tcpdump をインストールします。

# apt install tcpdump

キャプチャする

# tcpdump -n -i br0 -s 0 -w /tmp/tcpdump.pcap
  • -n IPを名前に変換しない
  • -i キャプチャするインターフェースを指定する
  • -s パケットの最大サイズ(0の場合は無制限)
  • -w キャプチャしたデータの保存先

参考