tcpdump вывода tcpreplay не соответствует вводу

У меня возникла проблема, из-за которой на некоторых машинах количество байтов, которое tcpdump сообщает о выводе tcpreplay, не соответствует вводу tcpreplay.

В частности, tcpdump всегда сообщает на 14 байт больше, чем pcap, данный tcpreplay.

Для репликации я создал простой пакет в scapy, используя команду: packet = Ether()/IP(dst='1.2.3.4')/TCP()/Raw(load='S:' + ('-' * 64) + ':E') wrpcap("tcp.pcap", packet)

Я установил виртуальные интерфейсы с: ip link add front1 type veth peer name back1 ifconfig back1 up ifconfig front1 up

Контролируйте ввод в интерфейс с помощью: sudo tcpdump -XX -Q out -i front1

Затем отправьте сгенерированный пакет с: sudo tcpreplay -i front1 tcp.pcap

Монитор tcpdump производит: 0x0000: d4ae 52c1 2005 2c59 e547 2ca4 0800 4500 ..R...,Y.G,...E. 0x0010: 006c 0001 0000 4006 d31c 9e82 04e7 0102 .l....@......... 0x0020: 0304 0014 0050 0000 0000 0000 0000 5002 .....P........P. 0x0030: 2000 b4a6 0000 533a 2d2d 2d2d 2d2d 2d2d ......S:-------- 0x0040: 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d ---------------- 0x0050: 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d ---------------- 0x0060: 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d ---------------- 0x0070: 2d2d 2d2d 2d2d 2d2d 3a45 0000 0000 5400 --------:E....T. 0x0080: 0000 0000 0000 0000 ........

Принимая во внимание, что tcpdump исходного файла производит: 0x0000: d4ae 52c1 2005 2c59 e547 2ca4 0800 4500 ..R...,Y.G,...E. 0x0010: 006c 0001 0000 4006 d31c 9e82 04e7 0102 .l....@......... 0x0020: 0304 0014 0050 0000 0000 0000 0000 5002 .....P........P. 0x0030: 2000 b4a6 0000 533a 2d2d 2d2d 2d2d 2d2d ......S:-------- 0x0040: 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d ---------------- 0x0050: 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d ---------------- 0x0060: 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d ---------------- 0x0070: 2d2d 2d2d 2d2d 2d2d 3a45 --------:E

То есть монитор выдает содержимое, идентичное файлу, с добавлением 14 дополнительных байтов.

Похоже, это происходит независимо от размера ввода.

Я проверил, что эта проблема не возникает на других машинах, но не могу определить параметры, которые вызывают ее.

Некоторая информация о версии:

$ tcpreplay -V tcpreplay version: 3.4.4 (build 2450) (debug) Copyright 2000-2010 by Aaron Turner <aturner at synfin dot net> Cache file supported: 04 Not compiled with libdnet. Compiled against libpcap: 1.7.4 64 bit packet counters: enabled Verbose printing via tcpdump: enabled Packet editing: disabled Fragroute engine: disabled Injection method: PF_PACKET send() $ tcpdump --version tcpdump version 4.9.2 libpcap version 1.7.4 OpenSSL 1.0.2g 1 Mar 2016

Работает на Ubuntu 16.04.5

1 ответ

Это связано с ошибкой в ​​ядре Linux 4.15.0, о которой сообщалось в следующем отчете об ошибке:

https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1782544

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