Я пользуюсь услугами интернет-провайдера, с которого не могу пинговать Google или любой другой сайт, но работает только разрешение имен.
Я где-то на интернет-сайте прочитал, что traceroute — это противоположность ping. Это правда?
Кроме того, если я заблокирую ping в своей сети — на уровне маршрутизатора/возможно, на 4-м уровне — то правда ли, что traceroute также не будет работать?
решение1
Traceroute работает путем явной установкиТТЛполе для различных значений в исходящих пакетах и наблюдение за тем, какие маршрутизаторы отправляютПревышено значение TTL ICMPошибки назад для разныхТТЛценности.
Если все, что заблокировано, этоICMP-эхо-запрос/ответ("ping"), это по сути не блокирует traceroute. Однако одной из возможных реализаций traceroute является отправка пакетов ICMP Echo Request.
Проверьте документацию к вашей программе traceroute, что она отправляет. В некоторых реализациях есть возможность выбрать отправку либо пакетов UDP, либо пакетов ICMP Echo Request.
решение2
По умолчанию traceroute отправляет пакеты UDP для отслеживания маршрута к указанному хосту, в то время как ping использует ICMP. Но traceroute работает, обрабатывая пакеты ICMP, возвращаемые маршрутизаторами в маршруте к хосту назначения.
Это означает, что если вы блокируете только исходящие пакеты ICMP, ping не будет работать, а traceroute будет.
Но если вы заблокируете входящие ICMP-пакеты, traceroute не сможет получать ICMP-ответы от маршрутизаторов на маршруте, и тогда он не будет работать.