0

私は、私の研究のために Eddie Kohler によって作成された Click fast prototyping router api に取り組んでいます。RAW IP ENCAP で tcpdump ファイルを生成するのに苦労しています。tcpdump -i (interface) -L と入力したときにリストされる唯一のリンク タイプは EN10MB であり、それ以外は何もないため、私のリンク タイプでは RAW IP リンク タイプでのキャプチャが許可されていません。

それは私の心を打たないだけです。tcpdump または tshark で Raw IP パケット (ダンプ パケットは IP ヘッダーから開始し、リンク レベル ヘッダーをスキップする必要があります) をキャプチャする方法はありますか?

4

1 に答える 1

2

tcpdump も tshark も、デバイスのリンク層ヘッダー タイプを任意に選択することはできません。デバイス、したがって libpcap/WinPcap では、任意のリンク層ヘッダー タイプを選択することは許可されていません (tcpdump -i {interface} -L通知されているとおり)。

ほとんどのネットワーク インターフェイスは、リンク層のヘッダー タイプとして「生の IP」をサポートしていません。あるとすれば、どちらが行うかはわかりません。カプセル化されたパケットでいっぱいのキャプチャ ファイルが必要な場合、おそらく最も簡単な方法は、インターフェイスからキャプチャし、すべての非 IP パケットを破棄し、IP パケットからリンク層ヘッダーを取り除くプログラムを作成することです。そしてそれらを書き出します。たとえば、DLT_値がDLT_EN10MB(イーサネット) のデバイスでキャプチャしている場合、イーサネット タイプの値として 0x0800 または 0x86DD を持たないすべてのパケットを破棄し、0x0800 または 0x86DD を持つパケットの最初の 14 バイトを取り除きます。これらのイーサネット タイプの値を取得し、結果のパケットをDLT_値 のpcap ファイルに書き出しますDLT_RAW

于 2012-06-24T01:28:35.910 に答える