Я пытаюсь исключить некоторые проблемы и мне нужно перехватывать все сообщения ICMP, кроме ответа эхо / эхо. Однако проблема, которую я пытаюсь найти, заключается в том, что я хочу, чтобы они включали только определенный хост.
Фильтр, который я пробовал, - это tcpdump icmp и 'icmp [0]! = 8 and icmp [0]! = 0' и хост x.x.x.x. Однако он дает только то, что является хостом x.x.x.x или y.y.y.y. Пример того, что я получаю, но хочу иметь только порцию z.z.z.z
18: 06: 07.823692 IP x.x.x.x> y.y.y.y: узел ICMP z.z.z.z недоступен, длина 48
Есть ли у кого-нибудь идеи, как это сделать?
Если я вас правильно понял, вы хотите отфильтровать z.z.z.z
в ответе ICMP. Предположим, что IP-адрес недоступного хоста z1.z2.z3.z4
, тогда вам следует заменить host x.x.x.x
в вашем фильтре со следующим фильтром icmp[24] == z1 and icmp[25] == z2 and icmp[26] == z3 and icmp[27] == z4
.
Если вам нужны только сообщения о недоступности пункта назначения ICMP, рассмотрите возможность использования icmp[icmptype] == icmp-unreach
вместо того icmp[0] != 8 and icmp[0] != 0
.