Справочная информация:
Я использую scapy для тестирования сетевого устройства, которое может выборочно возвращать пакеты, меняя местами MAC-адреса источника / назначения, IP-адреса и номера портов уровня 4. Обмен можно выбрать для layer
, layers_2_and_3
onlylayers_2_and_3
, layers_2_3_and_4
. Я запускаю scapy на сервере, отправляю пакеты на устройство и проверяю, что в отправленных пакетах соответствующие поля источника / назначения меняются местами в зависимости от настройки.
Проблема:
Метод scapy srploop()
, который отправляет пакеты и получает совпадения, хорошо работает для таких типов сообщений, как PING и ARP. Я обнаружил, что если я передаю пакет UDP, а порты источника / назначения не меняются устройством обратной петли, то scapy не обрабатывает пакет с обратной связью как совпадение. Когда номера портов меняются на обратное с помощью устройства обратной связи, пакеты обнаруживаются как совпадающие.
Вопросы:
Есть ли способ переопределить или иным образом повлиять на логику сопоставления пакетов scapy? Например, было бы полезно отключить сопоставление на уровне 4. Я просмотрел документацию и не нашел ничего, что предполагало бы, что это возможно.
Есть ли другой способ добиться этого в scapy. Я экспериментировал с использованием
send()
, за которым следуетsniff()
, но мне не удалось получить ответы с помощью этого метода.