Как будет выглядеть фильтр PCAP для захвата всего трафика, связанного с DHCP?

Насколько я понимаю, для IPv4 мне нужно было бы захватывать

  • UDP-порты 67 и 68,
  • ARP,
  • ICMP эхо-запрос и ответ,

а для IPv6 мне понадобится

  • UDP-порты 546 и 547,
  • все относящиеся к DHCP многоадресные адреса,
  • Обнаружение соседа ICMPv6.

Я хочу захватить связанный с DHCP трафик с помощью tcpdump или wireshark для последующего анализа.

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

Я что-то пропустил?

3 ответа

Решение

Я остановился на следующем фильтре PCAP:

( udp and ( port 67 or port 68 ) )
or arp
or ( icmp and (icmp[icmptype] == 8 or icmp[icmptype] == 0 ) )
or ( udp and ( port 546 or port 547 ) )
or ( icmp6 and ( ip6[40] == 135 or ip6[40] == 136 ) )
or dst net ff02:0:0:0:0:1:ff00::/104
or dst host ff01::1
or dst host ff02::1
or dst host ff02::1:2
or ( icmp6 and ( ip6[40] == 128 or ip6[40] == 129 ) )

Первые три строки перехватывают DHCPv4, ARP (обнаружение дублированного адреса) и PING.

Четвертая строка перехватывает DHCPv6, строки пять-восемь перехватывают обнаружение дублирующихся адресов для IPv6. Девятая строка перехватывает многоадресную рассылку для агентов DHCPv6, а последняя строка - для PING6.

Конечно, это поймает много пакетов, не связанных с трафиком DHCP. Они должны быть улажены впоследствии.

Возможно, трафик PING и PING6 вообще не нужен.

Фильтр port 67 or port 68 получит сам DHCP разговор, это правильно.

Фильтр arp должен захватывать трафик arp в подсети. Это широковещательный характер, поэтому его можно перехватить с любого порта в подсети.

И запросы ICMP вы уже обрисовали.

Я бы сказал, что у вас есть полный список.

Вы хотите фильтровать весь трафик BOOTP, так как DHCP использует BOOTP как протокол связи. Видеть это:

https://wiki.wireshark.org/DHCP

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