tcprewrite - усеченная ошибка пакета

Я использую tcprewrite, чтобы переписать мои сырые файлы pcap (изменить MAC-адрес, а затем изменить IP-адрес) из набора данных CAIDA. Я сталкивался с этой проблемой. Используйте команду следующим образом:

sudo tcprewrite --infile=xxx.pcap --dlt=enet --outfile=yyy.pcap --enet-dmac=00:00:00:03 --enet-smac=00:00:00:1f 

Ошибка

pcap was captured using a snaplen of 65000 bytes.  This may mean you have truncated packets.

Я пытался найти решения из Интернета, и, к сожалению, я не могу решить его. Согласно этой теме http://sourceforge.net/p/tcpreplay/mailman/tcpreplay-users/?viewmonth=201201 ошибка возникает из-за того, что пакет не перехватывается с самого начала.

У кого-нибудь есть идеи, как решить эту проблему?

1 ответ

Решение

pcap was captured using a snaplen of 65000 bytes. This may mean you have truncated packets.

Или это не так, и, фактически, это, вероятно , не означает, что вы урезали пакеты.

Механизм захвата пакетов в некоторых системах требует, чтобы была указана некоторая максимальная длина пакета, но это может быть что-то достаточно большое, чтобы на практике никакие пакеты не были больше максимального и, следовательно, никакие пакеты не были усечены.

65535 часто использовался в качестве такого максимума - Wireshark сделал это еще до того, как он был переименован в Wireshark, и tcpdump сначала был изменен так, чтобы "-s 0" использовал 65535, а затем изменил значение по умолчанию на 65535. tcpreplay обрабатывает любую максимальную длину пакета < 65535 как "не пытается захватить весь пакет", но предупреждение о, например, 65534 немного глупо.

Tcpdump и Wireshark недавно увеличили ограничение до 262144 для обработки некоторых захватов USB.

(Ограничение выбрано не слишком большим - форматы файлов pcap и pcap-ng допускают до 2^32-1, но некоторые программы могут при чтении такого файла пытаться выделить 2^32-1-байт буфера и сбой.)

Так что не беспокойтесь об этом, но также не указывайте явно длину снимка 65000 - явные длины снимка полезны, только если вы хотите захватить только часть пакета или если у вас есть старый tcpdump (или ANCIENT Ethereal) по умолчанию это 68 или 96 байт, и в последнем случае вы могли бы также пойти со значением>= 65535.

Другие вопросы по тегам