libpcap を使用して、.pcap ファイルに保存されたパケットの再生を実装しようとしています。プロセスは非常に簡単です。「pcap_open_offline」で pcap ファイルを開き、 で開いたデバイスにパケットを渡し、インターフェイス経由pcap_open_live
で で送信しpcap_inject
ます。
現在、NIC にはイーサネット ケーブルが接続されていません。開いたデバイスが送信をサポートしているかどうかがわからpcap_open_live
ないことがわかっているので、pcap_inject ( errno 100
) からエラーが発生します。これは予想されることですか?コマンドラインから単にtcpreplayを使用すると、イーサネットケーブルが接続されているかどうかに関係なく、終了し、エラーは表示されません。
tcpreplay/tcpedit が「デッド」インターフェースをどのように処理するか知っている人はいますか? tcpreplay はパケット ヘッダーを書き換えますが、生で送信しようとしていますか? どんな助けでも大歓迎です!
私はUbuntu 14.04を使用しており、インターフェースはアドレスレスで無差別モードです:
auto eth1
iface eth1 inet manual
up ifconfig eth1 promisc up
down ifconfig eth1 promisc down