cgroup v1ネットワーク分類器に入出力パケットを表示する方法は?

cgroup v1ネットワーク分類器に入出力パケットを表示する方法は?

ここの指示に従って、単一のプロセスからすべてのネットワークトラフィックを分離してtcpdumpしようとしています。プログラムでパケットを表示する方法):

$ sudo bash
# mkdir                             /sys/fs/cgroup/net_cls 
# mount -t cgroup -onet_cls net_cls /sys/fs/cgroup/net_cls

# mkdir              /sys/fs/cgroup/net_cls/tcpdump
# pidof my_program > /sys/fs/cgroup/net_cls/tcpdump/tasks
# echo 0x100001    > /sys/fs/cgroup/net_cls/tcpdump/net_cls.classid

# iptables -A INPUT  -m cgroup --cgroup 0x100001 -j NFLOG --nflog-group 123
# iptables -A OUTPUT -m cgroup --cgroup 0x100001 -j NFLOG --nflog-group 123
# tcpdump -i nflog:123

ただし、着信トラフィックではなくアウトバウンドトラフィックのみが表示されるため、パフォーマンスが低下します。

# iptables-save -c | grep cgroup

[0:0] -A INPUT -m cgroup --cgroup 1048577 -j NFLOG --nflog-group 123
[4242:623034] -A OUTPUT -m cgroup --cgroup 1048577 -j NFLOG --nflog-group 123

アウトバウンドトラフィックにのみ関心を持つフロー制御(tc)で使用するように意図されているので、これは意図的に設計されているのですか、それとも欠陥ですか?

その質問に対する答えに関係なく、特定のプロセス(またはプロセスのセット)に入って来るすべてのパケットを記録するより良い方法はありますか?

PS:コマンドはtcpdump -i nflog:123 not src host x.x.x.x言い続けます

tcpdump: NFLOG link-layer type filtering not implemented

リンク層のフィルタリングが不要であっても。それは問題ですか?

よろしくお願いします!

ベストアンサー1

おすすめ記事