Назад | Перейти на главную страницу

Как правильно интерпретировать результаты tracert, в частности предпоследний переход перед таймаутом

Я устраняю проблемы с беспроводным интернет-соединением, которое постоянно разрывается. Провайдер говорит, что радиосигнал хороший, так что он должен быть моим cisco asa 5505. Я им не верю ...

Для обсуждения предположим следующее:

Общедоступный IP-адрес удаленного сайта - 10.1.1.50, а его шлюз по умолчанию - 10.1.1.1.

Когда я выполняю tracert из удаленного местоположения на 10.1.1.50, должен ли предпоследний переход tracert всегда быть 10.1.1.1?

Когда соединение не работает, предпоследний переход не является 10.1.1.1, однако 10.1.1.1 доступен для проверки связи, и я могу выполнить его трассировку.

Я думаю, это проблема маршрутизации провайдера.
Моя логика верна? Если 10.1.1.1 доступен, не должен ли он быть предпоследним прыжком на трассировке перед тем, как я получу таймауты?

В 99% случаев предпоследний переход трассировки маршрута будет не быть шлюзом по умолчанию целевого хоста. Это связано с тем, как работает traceroute.

Все IP-пакеты имеют -несколько ошибочные- время жить (TTL) поле. Это поле уменьшается на единицу каждым маршрутизатором, пересылающим пакет. Если маршрутизатор уменьшает TTL до 0, он отбрасывает пакет и генерирует ICMP TTL превышен пакет ошибки и отправляет его обратно тому, кто отправил исходный пакет. Пакет с ошибкой будет иметь IP-адрес назначения источника исходного пакета (в данном случае хоста, инициировавшего трассировку). Исходным IP-адресом пакета ошибки обычно будет IP-адрес исходящий интерфейс, то есть тот, который обращен к остальной части сети.

Traceroute использует этот факт; он отправляет пакеты с последовательно увеличивающимся TTL; это заставляет каждый маршрутизатор на пути между источником и местом назначения отправлять сообщения о недоступности ICMP обратно на хост, выполняющий traceroute. Каждая ошибка будет иметь исходный IP-адрес последнего маршрутизатора, который получил пробный пакет до того, как был отброшен. Это позволяет traceroute построить картину пути между источником и местом назначения.

Рассмотрим диаграмму ниже (игнорируя возможность нескольких путей):

________     1.1____1.2                2.1____2.2     ________
|Host A|-----|Router 1|--- Internet ---|Router 2|-----|Host B|
--------     ----------                ----------     --------

Если хост A выполняет трассировку к хосту B, то предпоследним переходом будет маршрутизатор 2, который получит тестовый пакет следующим образом:

SrcIP: A | DstIP: B | TTL: 1

Маршрутизатор 2 уменьшит TTL до 0; что приведет к генерации ICMP TTL с истекшим сроком действия:

SrcIP: 2.1 | DstIP: A | TTL <default>

Следовательно, когда traceroute получает это сообщение об ошибке, IP-адрес, который он увидит на предпоследнем переходе, будет выходить на интернет-интерфейс маршрутизатора 2, а не на тот, который обращен к хосту B.