Linux
pcap 和原始套接字
我想開發一個應用程序(如果可能,模組或使用者級)以在 RHEL 中創建一個原始套接字,直接從核心竊取所有 2 級數據包(不被其他打開的套接字路由或處理)。我想將數據包提供給 pcap 以程式方式處理某些數據包類型。最好的做法是什麼?我看過關於零拷貝網路、pcap、BPF 的文章,但我猜它們都在處理數據包擷取/拷貝?
不要給介面一個IP地址。只需啟動它,並使用 libpcap 擷取數據包。如果它沒有 IP 地址,如果您擔心,核心將不理會它。
如果您希望介面具有由核心處理的 IP 地址並僅將一些 IP 數據包重定向到您的應用程序,netfilter 可以做到。查看 NFQUEUE 或 NFLOG iptables 目標。
如果您關心數據包擷取性能,請查看PF_RING。
否則,也許您可以更詳細地解釋您要嘗試做什麼,因為我不清楚。