1

Я применил фильтр udp , чтобы просто захватывать трафик UDP, как описано в Wireshark Wiki:

Показывать только трафик на основе UDP: udp

Однако это не только показывает трафик UDP. Он показывает трафик UDP и все, что строится поверх UDP.

Поскольку я хочу анализировать только наш собственный UDP-трафик и пока не внедрил диссектор, я ищу способ показать только UDP-трафик, который не может быть идентифицирован как какой-либо другой протокол.

Я хотел бы избежать добавления списка протоколов для исключения, например, избегать длинного списка других протоколов в моем фильтре:

udp && !http && !dhcpv6 && !bootp && !smb && !cldap && !mdns && !llmnr

Как я могу захватить только трафик UDP, который не может быть идентифицирован как другой протокол?

1 ответ1

1

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

В Wireshark раздел "Кадр" содержит различные метаданные о рассеченном пакете, например:

Protocols in frame: eth:ethertype:ip:udp:dns

Это соответствует полю frame.protocols . Теперь примените соответствие регулярному выражению, используя ~ или matches:

udp && frame.protocols ~ ":udp$"

Это будет соответствовать всем пакетам, где последним распознанным протоколом был UDP (то есть frame.protocols заканчивается текстом :udp). Будьте осторожны - некоторый трафик может быть ошибочно определен как какой-то непонятный протокол, хотя это не так.

(Префикс udp && является оптимизацией - сопоставление протокола может быть более эффективным для отбрасывания трафика, отличного от UDP, чем совпадение с регулярным выражением строки.)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .