schedule2021-10-29

tcpdumpでtcpdump packet printing is not supported for link type NFLOGとなる

tcpdumpを実行すると「パケット出力でNFLOGがサポートされていない」ってエラーが出る。

$ sudo tcpdump
tcpdump: packet printing is not supported for link type NFLOG: use -w

環境はCentOS 7 です。

ネットワークインターフェースを指定する

tcpdumpはデフォルトでネットワークインターフェースのリストの一番上のインターフェースを利用し、それがnflogになっている状況です。

ifconfigなどで確認したインターフェースを指定して実行するとパケットキャプチャできる。

# eth2のパケットを出力する
$ sudo tcpdump -i eth2

全てのインタフェースを指定する場合は-i anyです。

# 全てのインタフェースを指定する
$ sudo tcpdump -i any

ネットワークインターフェースのリスト

tcpdumpはデフォルトでネットワークインターフェースのリストの一番上のインターフェースを利用する。

ネットワークインターフェースのリストはオプション-Dで確認できます。

$ sudo tcpdump -D
1.nflog (Linux netfilter log (NFLOG) interface)
2.nfqueue (Linux netfilter queue (NFQUEUE) interface)
3.ens160
4.ens192
5.any (Pseudo-device that captures on all interfaces)
6.lo [Loopback]

ネットワークインターフェースのリストはオプション--list-interfacesでも出力できる。

別のサーバではeth0が一番上にあった。

$ sudo tcpdump -D
1.eth0
2.nflog (Linux netfilter log (NFLOG) interface)
3.nfqueue (Linux netfilter queue (NFQUEUE) interface)
4.eth1
5.usbmon1 (USB bus number 1)
6.eth2
7.any (Pseudo-device that captures on all interfaces)
8.lo [Loopback]

tcpdumpについては↓が詳しい。

nflogとは?

linux netfilter log (nflog) interfaceのことらしい。

参考