Почему не работает woud ping, но не traceroute
В течение нескольких дней я начал делать интересное наблюдение о том, что машина периодически не отвечает на эхо-запрос ICMP, в то время как она все еще реагирует на трассировку на основе ICMP (определенную с помощью параметра -I).
Насколько я знаю, оба будут использовать эхо-запрос ICMP, поэтому я не ожидаю никакой разницы.
Будет ли у кого-нибудь объяснение этому?
2 ответа
Скорее всего, pong от ping заблокирован / отбрасывается, а traceroute использует сообщение об ошибке из узла / прыжка для определения маршрута. Traceroute не является стандартным инструментом, так как использует информацию для получения информации. Хитрость заключается в том, чтобы манипулировать TTL, поэтому прыжок отвечает ошибкой ICMP (превышен ICMP TTL), и поэтому это возможно.
Я мог бы дать вам список всех полей заголовка в заголовке IP. И для каждого поля заголовка я мог бы объяснить, что ping и traceroute могут использовать разные значения для этого поля. И что другой конец соединения может фильтровать трафик на основе значения этого поля заголовка.
Это, однако, не будет очень полезным ответом. Вместо этого я предлагаю вам проверить поля заголовка исходящего трафика с помощью инструмента, разработанного для этой цели. Ты можешь использовать tcpdump
выполнить первоначальный анализ и сохранить трафик для дальнейшего расследования. Для более тщательной проверки я считаю Wireshark более подходящим инструментом, он может проверять трафик, ранее захваченный с помощью tcpdump, он также может захватывать трафик непосредственно из сетевого интерфейса, так что вы можете проверять его в режиме реального времени.
Наиболее очевидные различия, которые нужно искать, - это длина и предел прыжка. С помощью traceroute принимающая сторона будет получать пакеты с различным пределом прыжка, и пока она отвечает на один из них, вы увидите ответ. С помощью ping он получит только определенный лимит прыжка.
Вам также необходимо обратить внимание на то, получены ли какие-либо ответы. На неправильно сконфигурированной цели вы можете видеть, что пакеты молча отбрасываются, но правильно настроенная цель может отправить вам сообщение об ошибке, указывающее, почему она не обработает запрос. Возможно, что нечетный ответ будет отброшен как неожиданный одной программой при отображении другой.
Несколько полей заголовка могут быть изменены с помощью флагов командной строки как для ping, так и для traceroute. Если вы подозреваете, что определенное поле заголовка вызывает другое поведение, ищите флаги командной строки, чтобы изменить это конкретное поле заголовка, чтобы подтвердить ваше подозрение.