![カーネルモジュールにデータを直接保存する方法は? [閉鎖]](https://linux33.com/image/76405/%E3%82%AB%E3%83%BC%E3%83%8D%E3%83%AB%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB%E3%81%AB%E3%83%87%E3%83%BC%E3%82%BF%E3%82%92%E7%9B%B4%E6%8E%A5%E4%BF%9D%E5%AD%98%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95%E3%81%AF%EF%BC%9F%20%5B%E9%96%89%E9%8E%96%5D.png)
関数はTCPパケットをキャプチャしておりnetif_receive_skb
、TCPパケットの再生ペイロードを保存したいと思います。カーネルモジュールではそのファイルを読み書きできないので、ディスクに直接保存することをお勧めしますか?
これは良い考えですか、それとも他の提案がありますか?
答え1
要件を異なる角度から近づけると、要件を満たすことができます。
iptables
ユーザースペース用に選択したパケットをキューに追加する-j NFQUEUE
オプション(参考資料を参照)があります。man iptables
ユーザー空間プログラムでディスクにパケットを書き込むのは簡単です。
バラよりhttps://home.regit.org/netfilter-en/using-nfqueue-and-libnetfilter_queue/いくつかの非常に興味深い詳細については、私はちょうどそれを一掃したことを指摘したいと思います。