2

関連する 3 つの質問:

  1. raw ソケットには、カーネル内 BPF (libpcap によって使用される) と同等のフィルタリング方法がありますか?

  2. raw ソケットを開くと、マシン上のすべての IP パケットを受信することになりますか?

  3. iptables は raw ソケットとどのように相互作用しますか? raw ソケットは iptables がドロップするパケットを認識しますか?

BPF - http://lwn.net/Articles/599755/

4

1 に答える 1

2
  1. raw ソケットには、カーネル内 BPF (libpcap によって使用される) と同等のフィルタリング方法がありますか?

それは同等以上のものです。BPF フィルター自体をサポートしています。次のようにソケットを取り付けます。

 setsockopt(socket, SOL_SOCKET, SO_ATTACH_FILTER, &bpf_filter, sizeof(bpf_filter));

(この質問には完全な例があります)。

過去数年間、BPF は Linux で多くの変更を受けており、ネットワークのさまざまなフックに接続できるようになりました: ソケットだけでなく、tc イングレス/イーグレス インターフェイス、XDP (互換性のあるドライバーを備えた NIC)。また、kprobes、tracepoints、perf events、cgroups などなど、トレース/監視用です。

質問 2 と 3 の答えがわかりません。申し訳ありません。

于 2016-12-03T23:50:42.357 に答える