Поведение сопоставления пакетов в scapy

Справочная информация:

Я использую scapy для тестирования сетевого устройства, которое может выборочно возвращать пакеты, меняя местами MAC-адреса источника / назначения, IP-адреса и номера портов уровня 4. Обмен можно выбрать для layerlayers_2_and_3only, layers_2_and_3, layers_2_3_and_4. Я запускаю scapy на сервере, отправляю пакеты на устройство и проверяю, что в отправленных пакетах соответствующие поля источника / назначения меняются местами в зависимости от настройки.

Проблема:

Метод scapy srploop(), который отправляет пакеты и получает совпадения, хорошо работает для таких типов сообщений, как PING и ARP. Я обнаружил, что если я передаю пакет UDP, а порты источника / назначения не меняются устройством обратной петли, то scapy не обрабатывает пакет с обратной связью как совпадение. Когда номера портов меняются на обратное с помощью устройства обратной связи, пакеты обнаруживаются как совпадающие.

Вопросы:

  1. Есть ли способ переопределить или иным образом повлиять на логику сопоставления пакетов scapy? Например, было бы полезно отключить сопоставление на уровне 4. Я просмотрел документацию и не нашел ничего, что предполагало бы, что это возможно.

  2. Есть ли другой способ добиться этого в scapy. Я экспериментировал с использованием send(), за которым следует sniff(), но мне не удалось получить ответы с помощью этого метода.


person bit_flip    schedule 06.09.2012    source источник


Ответы (1)


Что касается второй части вопроса, вы можете попробовать подход, который я упомянул в Scapy не может обнюхивать пакеты при использовании нескольких потоков.

По сути, запустите сниффер в отдельном потоке и отфильтруйте возвращаемый трафик в очередь, к которой затем можно будет получить доступ из основного потока, выполняющего send(). Таким образом, отправка и получение происходят одновременно (в двух потоках).

Единственная проблема заключается в том, что в моей конкретной настройке я обнаружил странное поведение сниффера, когда он не может применить фильтр при запуске в отдельном потоке. Надеюсь, вам повезет больше.

ОБНОВЛЕНИЕ: проблема со сниффером была решена (см. мой вопрос по ссылке выше).

Надеюсь это поможет!

person Asiri Rathnayake    schedule 29.04.2013