
514
Глава 13. Разрешение проблем TCP/IP
Трассировка маршрутов
Если локальная таблица маршрутизации в порядке, проблема может су-
ществовать на некотором удалении от локального узла. Удаленные пробле-
мы маршрутизации могут приводить к получению сообщений об ошибке «по
answer», а также «network unreachable». При этом сообщение «network un-
reachable» не всегда указывает на проблему маршрутизации, оно может
означать, что удаленная сеть недостижима из-за физического разрыва меж-
ду локальным узлом и удаленным пунктом назначения. Обнаружить такие
проблемы позволяет программа trace route.
trace route отслеживает маршрут пакетов UDP, адресованных локальным уз-
лом удаленному узлу. Программа отображает имя (по возможности) и адрес
IP каждого шлюза на пути к удаленному узлу.
trace route при трассировке пакетов использует два механизма: небольшое
TTL (время жизни) пакета и некорректные номера портов, trace route посы-
лает пакеты UDP с небольшими значениями TTL, чтобы обнаружить проме-
жуточные шлюзы. Значения TTL начинаются с 1 и увеличиваются на 1 для
каждой группы из трех отправленных пакетов UDP. Получив пакет, шлюз
уменьшает TTL. Если TTL к этому моменту имеет значение 0, пакет не пере-
сылается дальше, а источнику пакета возвращается ICMP-сообщение «Time
Exceeded» (время доставки превышено), traceroute выводит одну строку для
каждого шлюза, от которого получено сообщение «Time Exceeded». На
рис. 13.2 представлена одна строка вывода и описаны значения ее полей.
Рис. 13.2. Вывод traceroute
Конечный узел, получив пакет от traceroute, возвращает ICMP-сообщение
«Unreachable Port» (порт не доступен). Это происходит потому, что tracerou-
te преднамеренно использует недействительный номер порта (33434), чтобы
вызвать такую ошибку. Получив сообщение «Unreachable Port», traceroute
делает вывод, что пункт назначения достигнут и прекращает трассировку.
Итак, traceroute обладает способностью получать список шлюзов, обозначая
транзитные участки, вплоть до момента, когда удаленный узел получит ад-
ресованный ему пакет. На рис. 13.3 представлена передача пакетов трасси-
ровки узлу, расположенному в трех транзитных участках от локального.
Ниже приведен вывод traceroute для www.internic.net, инициированный сис-
темой Solaris в сети Comcast, traceroute посылает три пакета для каждого
значения TTL. Если для пакета не получен ответ, traceroute выводит звез-
дочку (*). Если ответ получен, traceroute отображает имя и адрес ответивше-
го шлюза, а также время отклика для пакета в миллисекундах.