debianでインライン構成のパケットキャプチャマシンを作る
概要
トラブルシューティングの際にネットワークを流れるパケットをキャプチャしたい場合があります。 Liva Q1L はLANポートが2ポートあるためインラインでキャプチャできるデバイスにできればキャプチャ用に別途ハブなどを用意する必要が無く便利です。 キャプチャしたファイルは Wireshark などで分析することが出来ます。
環境
ハードウェア
- ECS Liva Q1L
- CPU Intel® Celeron® N3350
- メモリ 4GB
- 内蔵ストレージ eMMC 64GB
- 有線LAN 2×Gigabit LAN (10BASE-T/100BASE-TX/1000BASE-T)
- 無線LAN Wi-Fi 802.11ac
ソフトウェア
設定
現在の構成を確認する
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 キャプチャしたデータの保存先