Traceroute command

Синтаксис и переключатели Traceroute

трассировка -dFInrvx -f first_ttl -г шлюз -я я лицо -m max_ttl -п порт -q nqueries -s src_addr -t тос -w время ожидания -z pausemsecs хозяин packetlen

Хотя выше описано, как команда traceroute должна быть выписана для работы в командной строке, производительность или выход команды можно изменить, указав один или несколько дополнительных ключей.

-f: Установите начальное время жизни, используемое в первом пакете исходящих зондов.

-F: Установите бит «не фрагментировать».

-d: Включить отладку уровня сокета.

-г: Укажите свободный шлюз маршрута источника (максимум 8).

-я: Укажите сетевой интерфейс для получения исходного IP-адреса для исходящих пробных пакетов. Обычно это полезно только для многоуровневого хоста. (См.-s флаг для другого способа сделать это.)

-Я: Используйте ICMP ECHO вместо дейтаграмм UDP.

-m: Установите максимальное время ожидания (максимальное количество переходов), используемое в исходящих пробных пакетах. По умолчанию используется 30 переходов (это же значение по умолчанию используется для TCP-соединений).

-n: Вычислять адреса точек печати численно, а не символически и численно (сохраняет имя сервера имен имен для каждого найденного на пути шлюза).

-п: Установите базовый номер порта UDP, используемый в пробниках (по умолчанию — 33434). Traceroute надеется, что ничто не слушает порты UDP база в base + nhops — 1 на целевом хосте (так что сообщение ICMP PORT_UNREACHABLE будет возвращено для завершения трассировки маршрута). Если что-то прослушивает порт в диапазоне по умолчанию, этот параметр можно использовать для выбора неиспользуемого диапазона портов.

-р: Обход обычных таблиц маршрутизации и отправка непосредственно на хост в подключенной сети. Если хост не подключен к сети напрямую, возвращается ошибка. Эта опция может использоваться для ping локального хоста через интерфейс, который не имеет маршрута через него (например, после того, как интерфейс был сброшен на маршрутизация (8C)).

-s: Используйте следующий IP-адрес (который обычно указывается как IP-номер, а не имя хоста) в качестве исходного адреса в исходящих пробных пакетах. На многодомных хостах (с несколькими IP-адресами) эта опция может использоваться, чтобы заставить исходный адрес быть чем-то иным, чем IP-адрес интерфейса, на который отправлен пробный пакет. Если IP-адрес не является одним из адресов интерфейса этого аппарата, возвращается ошибка и ничего не отправляется. (См.-я флаг для другого способа сделать это.)

-t: Установить тип обслуживания в пробных пакетах до следующего значения (по умолчанию — 0). Значение должно быть десятичным целым числом в диапазоне от 0 до 255. Эта опция может использоваться, чтобы увидеть, будут ли разные типы услуг приводить к различным путям. (Если вы не используете 4.4bsd, это может быть академическим, поскольку обычные сетевые службы, такие как telnet и ftp, не позволяют вам контролировать TOS.) Не все значения TOS являются законными или значимыми — см. Спецификацию IP для определений. Полезные значения, вероятно,-t 16 ‘(низкая задержка) и `-t 8 ‘(высокая пропускная способность).

-v: Подробный вывод. Получены ICMP-пакеты, отличные от TIME_EXCEEDED и UNREACHABLE.

-w: Установите время (в секундах), чтобы ждать ответа на зонд (по умолчанию 5 секунд).

-Икс: Переключить контрольные суммы IP. Как правило, это предотвращает вычисление контрольных сумм IP контрольных сумм. В некоторых случаях операционная система может перезаписывать части исходящего пакета, но не пересчитывать контрольную сумму; таким образом, в некоторых случаях по умолчанию необходимо не вычислять контрольные суммы и использовать-Икс заставляет их рассчитываться

Обратите внимание, что контрольные суммы обычно требуются для последнего прыжка при использовании ICMP-зондов ECHO (-Я), поэтому они всегда вычисляются при использовании ICMP.

-z: Установите время (в миллисекундах) для паузы между зондами (по умолчанию 0). Некоторые системы, такие как Solaris и маршрутизаторы Cisco, сообщают об ограничении скорости ICMP-сообщений

Хорошее значение для использования — 500 (например, 1/2 секунды).

Examples

traceroute computerhope.com

Trace the route that packets take between your system and the host named computerhope.com, using the default method (udp datagram, 16 simultaneous probes). The results will look similar to the following output:

traceroute to computerhope.com (166.70.10.23), 30 hops max, 60 byte packets
 1  176.221.87.1 (176.221.87.1)  1.474 ms  1.444 ms  1.390 ms
 2  f126.broadband2.quicknet.se (92.43.37.126)  10.047 ms  19.868 ms  23.156 ms
 3  10.5.12.1 (10.5.12.1)  24.098 ms  24.340 ms  25.311 ms
 4  212.247.178.9 (212.247.178.9)  25.777 ms  27.184 ms  27.625 ms
 5  vst-ncore-1.bundle-ether1.tele2.net (130.244.39.46)  30.632 ms  31.610 ms  32.194 ms
 6  kst5-core-1.bundle-ether6.tele2.net (130.244.71.178)  33.608 ms  15.274 ms  16.449 ms
 7  kst5-peer-1.ae0-unit0.tele2.net (130.244.205.125) 252.53 ms 11.169 ms 12.158 ms
 8  avk6-peer-1.ae0-unit0.tele2.net (130.244.64.71)  19.661 ms  25.765 ms  26.730 ms
 9  peer-as3257.avk6.tele2.net (130.244.200.106)  25.390 ms  24.863 ms xe-5-0-0.nyc30.ip4.tinet.net (89.149.181.109)  23.626 ms
10  fortress-gw.ip4.tinet.net (216.221.158.90)  29.943 ms  31.112 ms  29.002 ms
11  208.116.63.254 (208.116.63.254)  32.102 ms  29.862 ms  29.337 ms

Выбор IP-адреса для исходящих соединений

Выбор локального адреса для исходящих соединений в большинстве случаев системой осуществляется автоматически, исходя из имеющихся IP-адресов интерфейсов и таблиц маршрутизации. Во многих случаях сетевые сервисы (веб-сервер, почтовый сервер и др.) позволяют указывать исходный адрес с помощью конфигурационных файлов. Давайте рассмотрим пример. Пусть система имеет два интерфейса eth0(192.168.1.1/24) и eth1(192.168.56.102/24):

# ip addr show
1: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast
        state UP qlen 1000 link/ether 08:00:27:23:22:97 brd ff:ff:ff:ff:ff:ff
        inet 192.168.1.1/24 brd 192.168.1.255 scope global eth0
        inet6 fe80::a00:27ff:fe23:2297/64 scope link
        valid_lft forever preferred_lft forever
2: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast
        state UP qlen 1000 link/ether 08:00:27:fd:e5:aa brd ff:ff:ff:ff:ff:ff
        inet 192.168.56.102/24 brd 192.168.56.255 scope global eth1
        inet6 fe80::a00:27ff:fefd:e5aa/64 scope link
        valid_lft forever preferred_lft forever

Маршрут по умолчанию у данной системы — 192.168.56.1:

# ip route show
192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.1
192.168.56.0/24 dev eth1 proto kernel scope link src 192.168.56.102
default via 192.168.56.1 dev eth1

При такой конфигурации для исходящих соединений будет использоваться интерфейс eth1 и IP-адрес 192.168.56.102 (кроме соединений с узлами сети 192.168.1.0/24 — eth0 и IP-адрес 192.168.1.1). Ниже показан дамп сетевого пакета, отправленного командой ping -c 1 192.168.3.4:

# tcpdump -ne -i eth1 host 192.168.3.4
 tcpdump: verbose output suppressed, use -v or -vv for full protocol decode  listening on eth1, link-type EN10MB (Ethernet), capture size 65535 bytes
 10:18:18.924084 08:00:27:fd:e5:aa > 0a:00:27:00:00:00, ethertype IPv4 (0x0800),
 length 98: 192.168.56.102 > 192.168.3.4: ICMP echo request, id 960, seq 1, length 64

Однако, если добавить альтернативный маршрут для сети 192.168.3.0/24 через некоторый шлюз 192.168.1.254:

# ip route add 192.168.3.0/24 via 192.168.1.254

то, для пакетов, предназначенных узлу 192.168.3.4, будет использоваться интерфейс eth0 и исходящий адрес 192.168.1.1 (показан дамп сетевого пакета):

# tcpdump -ne -i eth0 host 192.168.3.4
 tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
 10:23:33.393706 08:00:27:23:22:97 > 00:00:00:00:00:aa, ethertype IPv4 (0x0800),
 length 98: 192.168.1.1 > 192.168.3.4: ICMP echo request, id 968, seq 1, length 64

Синтаксис команды ip route позволяет повлиять на выбор локального IP-адреса при соединении с удаленными системами. Для этого служит параметр src с указанием предпочитаемого IP-адреса (должен быть установлен на сетевом интерфейсе компьютера) для отправки пакетов на направление, определяемое в команде префиксом маршрутизации. Так, для указанной ниже конфигурации будет использоваться исходящий адрес 192.168.56.102 (кроме взаимодействия с узлами сети 192.168.1.0/24):

# ip addr show eth1
2: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
         link/ether 08:00:27:fd:e5:aa brd ff:ff:ff:ff:ff:ff
         inet 192.168.56.102/24 brd 192.168.56.255 scope global eth1
         inet 192.168.1.10/24 brd 192.168.1.255 scope global eth1:1
         inet6 fe80::a00:27ff:fefd:e5aa/64 scope link
         valid_lft forever preferred_lft forever
# ip route show
192.168.1.0/24 dev eth1 proto kernel scope link src 192.168.1.10
192.168.56.0/24 dev eth1 proto kernel scope link src 192.168.56.102
default via 192.168.56.1 dev eth1

Для того, чтобы использовать исходный адрес 192.168.1.10 для соединения с узлами сети 192.168.3.0/24 следует использовать команду:

# ip route add 192.168.3.0/24 via 192.168.56.1 src 192.168.1.10 dev eth1:1

Таблица маршрутизации при этом будет иметь вид:

# ip route show
192.168.3.0/24 via 192.168.56.1 dev eth1 src 192.168.1.10
192.168.1.0/24 dev eth1 proto kernel scope link src 192.168.1.10
192.168.56.0/24 dev eth1 proto kernel scope link src 192.168.56.102
default via 192.168.56.1 dev eth1

Синтаксис параметры утилиты ROUTE

route ] ]

-f

— Очищает таблицу маршрутизации от всех записей, которые не являются узловыми маршрутами (маршруты с маской подсети 255.255.255.255), сетевым маршрутом замыкания на себя (маршруты с конечной точкой 127.0.0.0 и маской подсети 255.0.0.0) или маршрутом многоадресной рассылки (маршруты с конечной точкой 224.0.0.0 и маской подсети 240.0.0.0). При использовании данного параметра совместно с одной из команд (таких, как add, change или delete) таблица очищается перед выполнением команды.

-p

— При использовании данного параметра с командой add указанный маршрут добавляется в реестр и используется для инициализации таблицы IP-маршрутизации каждый раз при запуске протокола TCP/IP.

команда

— Указывает команду, которая будет запущена на удаленной системе. Возжожна одна из следующих команд: PRINT
— Печать маршрута, ADD
— Добавление маршрута, DELETE
— Удаление маршрута, CHANGE
— Изменение существующего маршрута.

конечная_точка

— Определяет конечную точку маршрута. Конечной точкой может быть сетевой IP-адрес (где разряды узла в сетевом адресе имеют значение 0), IP-адрес маршрута к узлу, или значение 0.0.0.0 для маршрута по умолчанию.

mask маска_сети

— Указывает маску сети (также известной как маска подсети) в соответствии с точкой назначения. Маска сети может быть маской подсети соответствующей сетевому IP-адресу, например 255.255.255.255 для маршрута к узлу или 0.0.0.0. для маршрута по умолчанию. Если данный параметр пропущен, используется маска подсети 255.255.255.255. Конечная точка не может быть более точной, чем соответствующая маска подсети. Другими словами, значение разряда 1 в адресе конечной точки невозможно, если значение соответствующего разряда в маске подсети равно 0.

шлюз

— Указывает IP-адрес пересылки или следующего перехода, по которому доступен набор адресов, определенный конечной точкой и маской подсети. Для локально подключенных маршрутов подсети, адрес шлюза — это IP-адрес, назначенный интерфейсу, который подключен к подсети. Для удаленных маршрутов, которые доступны через один или несколько маршрутизаторов, адрес шлюза — непосредственно доступный IP-адрес ближайшего маршрутизатора.

metric метрика

— Задает целочисленную метрику стоимости маршрута (в пределах от 1 до 9999) для маршрута, которая используется при выборе в таблице маршрутизации одного из нескольких маршрутов, наиболее близко соответствующего адресу назначения пересылаемого пакета. Выбирается маршрут с наименьшей метрикой. Метрика отражает количество переходов, скорость прохождения пути, надежность пути, пропускную способность пути и средства администрирования.

if интерфейс

— Указывает индекс интерфейса, через который доступна точка назначения. Для вывода списка интерфейсов и их соответствующих индексов используйте команду route print. Значения индексов интерфейсов могут быть как десятичные, так и шестнадцатеричные. Перед шестнадцатеричными номерами вводится 0х. В случае, когда параметр if пропущен, интерфейс определяется из адреса шлюза.

Примеры команды Route

  • Чтобы вывести на экран все содержимое таблицы IP-маршрутизации, введите команду: route print
    ;
  • Чтобы вывести на экран маршруты из таблицы IP-маршрутизации, которые начинаются с 10., введите команду: route print 10.*;
  • Чтобы добавить маршрут по умолчанию с адресом стандартного шлюза 192.168.12.1, введите команду: route add 0.0.0.0 mask 0.0.0.0 192.168.12.1;
  • Чтобы добавить маршрут к конечной точке 10.41.0.0 с маской подсети 255.255.0.0 и следующим адресом перехода 10.27.0.1, введите команду: route add 10.41.0.0 mask 255.255.0.0 10.27.0.1
    ;
  • Чтобы добавить постоянный маршрут к конечной точке 10.41.0.0 с маской подсети 255.255.0.0 и следующим адресом перехода 10.27.0.1, введите команду: route -p add 10.41.0.0 mask 255.255.0.0 10.27.0.1.

Видео — Работа с утилитой ROUTE

· Комментариев нет

Поразительно, как быстро бежит время. Люди думаю, что настоящие компьютеры очень высокотехнологичны, но протокол TCP/IP существует в той или иной форме уже более трех десятилетий. У него было достаточно времени, чтобы созреть и стать стабильным и надежным. Но если дело касается компьютеров, то ничего не может быть надежным. При указании маршрутов для пакетов в сети иногда случаются неприятности. В таких ситуациях следует быть знакомым с таблицами маршрутизации Windows. Они определяют поток пакетов из необходимой машины. В статье я расскажу о том, как просматривать таблицы и как их понять.

Summary

This document has demonstrated how the traceroute command determines the path a packet takes from a given source to a given destination with the use of UDP and ICMP packets. The possible types of ICMP messages in the outputs are:

  • If the TTL is exceeded in transit, type=11, code=0, then the packet is sent back by the transit router in all the cases where the TTL of the probe packets expires before the packets reach the destination.

  • If the port is unreachable, type=3, code=3, then the packet is sent back in response to the UDP probe packets when they reach the destination (the UDP application is not defined). These packets are limited to one packet per 500 ms. This explains why the response from the destination (see the outputs for the and ) failed in the even responses. Device 7C does not generate the ICMP message, and the traceroute command output in each device waits for more than one second. In the case of the MS Windows tracert command output, the ICMP message is generated because the UDP port 137 does not exist in a Cisco router.

  • If there is an echo, type=8, code=0, then the echo probe packet is sent by the MS Windows PC.

  • If there is an echo reply, type=0, code=0, then a reply to the previous packet is sent when the destination is reached. This only applies to the MS Windows tracert command.

Traceroute Example

Traceroute starts its journey towards its destination differently. It begins with a TTL=1 (instead of the default 51) and adds one until it reaches its final destination.

When beginning the Traceroute test, the next hop that receives the packet with a TTL=1, which in my case, is the gateway, will execute the TTL-1 by protocol, which will result in TTL=0. That means there will be no further forwarding and the packet will be discarded.

The next-hop (my gateway) will notify the source that the TTL exceeded with the “ICMP TTL exceeded” message, containing valuable information such as IP, hostname, and delay.

As mentioned in the previous section, the main job of the Traceroute command is to +1 to the TTL until the packet reaches the final destination.

So, back to our example, let’s traceroute 8.8.8.8.

The Traceroute example shows that the packet took 13 hops from the source (192.168.0.1) to reach its destination (8.8.8.8), along with all information from the hops in between.

From the same screenshot, you can see that the hop number 10 is “72.14.219.20” the same IP that we got from command “ping 8.8.8.8 -10”.

How Traceroute Works

The traceroute command maps the journey that a packet of information undertakes from its source to its destination. One use for traceroute is to locate when data loss occurs throughout a network, which could signify a node that’s down.

Because each hop in the record reflects a new server or router between the originating PC and the intended target, reviewing the results of a traceroute scan identifies slow points that may adversely affect your network traffic.

Evaluating the specific route that network traffic follows (or finding the miscreant gateway that’s discarding your packets) presents several troubleshooting challenges. Traceroute uses the IP protocol time to live field to solicit an ICMP TIME_EXCEEDED response from each gateway along the path to a destination host.

The only parameter you must include when you execute the traceroute command is the host name or IP address of the destination.

Что это и чем его едят#

— это утилита, присутствующая во многих дистрибутивах Linux по умолчанию, которая может использоваться в диагностических, учебных или отладочных целях. При помощи вы иной раз можете избавить себя от лишней головной боли, когда необходимо отыскать причину возникающего сбоя, при этом не имея доступа к исходным кодам. Помимо этого, может использоваться при отправке багрепортов разработчикам. Используя этот инструмент вы сможете воочию увидеть, что делает программа.

— это бесплатная утилита, распространяемая под BSD-лицензией. Изначально она была написана для и называлась . Затем усилиями Branko Lankester она была портирована на Linux, включая поддержку специфики Linux-ядра. Затем, в 1993 году, версии для и Linux были объединены в одну, был добавлен некоторый функционал из . В итоге получившийся винегрет назвали , который теперь работает на многих UNIX-платформах. Сегодня разработкой утилиты занимаются и .

В самом простом варианте strace запускает переданную команду с её аргументами и выводит в стандартный поток ошибок все системные вызовы команды. Давайте разберём опции утилиты, с помощью которых можно управлять её поведением:

  • — выводить указатель на инструкцию во время выполнения системного вызова;
  • — выводить стек вызовов для отслеживаемого процесса после каждого системного вызова;
  • — выводить всю информацию о системных вызовах не в стандартный поток ошибок, а в файл;
  • — не выводить сообщения о подключении о отключении от процесса;
  • — не выводить сообщения о завершении работы процесса;
  • — выводить временную метку для каждого системного вызова;
  • — указать максимальный размер выводимой строки, по умолчанию 32;
  • — выводить время суток для каждого вызова;
  • — добавить микросекунды;
  • — добавить микросекунды и количество секунд после начала эпохи Unix;
  • — выводить длительность выполнения системного вызова;
  • — выводить все не ASCI-строки в шестнадцатеричном виде;
  • — выводить все строки в шестнадцатеричном виде;
  • — выводить пути для файловых дескрипторов;
  • — выводить информацию о протоколе для файловых дескрипторов;
  • — подсчитывать количество ошибок, вызовов и время выполнения для каждого системного вызова;
  • — добавить определённое количество микросекунд к счетчику времени для каждого вызова;
  • — сортировать информацию выводимую при опции . Доступны поля , , и . По умолчанию используется ;
  • — суммировать время между началом и завершением системного вызова;
  • — позволяет отфильтровать только нужные системные вызовы или события;
  • — отслеживать только системные вызовы, которые касаются указанного пути;
  • — позволяет выводить дополнительную информацию, такую как версии окружения, статистику и так далее;
  • — если указанный системный вызов обнаружен, трассировка прекращается;
  • — отслеживать также дочерние процессы, если они будут созданы;
  • — если задана опция , то для каждого дочернего процесса будет создан отдельный файл с именем .
  • — позволяет блокировать реакцию на нажатия и ;
  • — добавляет переменную окружения для запускаемой программы;
  • — указывает процесса, к которому следует подключиться;
  • — запустить программу, от имени указанного пользователя.

Вы знаете основные опции , но чтобы полноценно ею пользоваться, нужно ещё разобраться с системными вызовами, которые используются чаще всего. Мы не будем рассматривать все, а только основные. Многие из них вы уже и так знаете, потому что они называются так же, как и команды в терминале:

  • — создание нового дочернего процесса;
  • — попытка читать из файлового дескриптора;
  • — попытка записи в файловый дескриптор;
  • — открыть файл для чтения или записи;
  • — закрыть файл после чтения или записи;
  • — изменить текущую директорию;
  • — выполнить исполняемый файл;
  • — получить информацию о файле;
  • — создать специальный файл, например, файл устройства или сокет;

А теперь разберём примеры Linux.

ECMP trace

Networks are now much more complicated than before, and there can be many paths between two network objects (such as your phone, your laptop, some kind of remote server, etc.). This packet routing method is called ECMP or Equal-Cost MultiPath and is used to increase network bandwidth and reliability.

Running a regular trace on an ECMP-enabled network can be a headache, so tools like paris-traceroute exist.

Equal-cost multi-path routing

Equal-cost multi-path routing (ECMP) is a routing strategy in which packets can be forwarded to the next hop at a single destination through several “best paths” that are connected to the start node and for which the routing metric is calculated. Multi-path routing can be used in conjunction with most routing protocols, since this solution is limited to one router for each hop. It can substantially increase bandwidth by load-balancing traffic over multiple paths; however, there may be significant problems in deploying it in practice.

Additional Information:

  • https://en.wikipedia.org/wiki/Equal-cost_multi-path_routing
  • https://en.wikipedia.org/wiki/Multipath_routing

Simply put, the path of a packet from point A to point F can be represented as follows:

The package can take route B-D or C-E.

A regular traceroute sends a lot of packets, but cannot force them all to follow the same route. Therefore, different packets can be sent on different routes and messages about the expiration of the packet can come from nodes from different paths.

The way packets can go is shown in black arrows, and the path that traditional routing tools can show is shown in red:

It is even worse when two routes of the same metric score have different lengths:

The team that created Paris-traceroute invented a technique that uses ECMP stream hashing to check all possible paths. Dublin Traceroute does what Paris-traceroute can do, plus a little more.

Paris-traceroute already detects NAT devices, but it’s actually quite different: Paris-traceroute can tell you whether the transition that appears as a loop in traceroute is due to NAT or not; while Dublin Traceroute can tell you if there is NAT after a given point, it can also identify multiple NATs.

Диагностика разрешения имен (nslookup, dig)

Разобравшись с сетевой связностью и маршрутизацией приходим к следующему этапу — разрешение доменных имен. В большинстве случаев в работе с удаленными сервисами мы не используем IP-адреса, а указываем доменные имена удаленных ресурсов. За перевод символических имен в IP-адреса отвечает служба DNS — это сеть серверов, которые содержат актуальную информацию о соответствии имен и IP в пределах доверенных им доменных зон.

Самый простой способ проверить работает ли разрешение имен — запустить утилиту ping с указанием доменного имени вместо IP-адреса (например, ping ya.ru). Если ответные пакеты от удаленного сервера приходят, значит все работает как надо. В противном случае нужно проверить прописан ли DNS-сервер в сетевых настройках и удается ли получить от него ответ.

Способы выяснения какой DNS-сервер использует наш сервер различаются в зависимости от используемой версии и дистрибутива ОС Linux. Например, если ОС используется Network Manager для управления сетевыми интерфейсами (CentOS, RedHat и др.), может помочь вывод команды nmcli:


Скриншот №7. Команда nmcli

В настройках сетевого интерфейса, в разделе DNS configuration, мы увидим IP-адрес сервера. В Ubuntu 18.04 и выше, использующих Netplan, используем команду systemd-resolve —status:


Скриншот №8. Команда systemd-resolve —status

Используемый сервер также будет указан в настройках интерфейса, в разделе DNS Servers. В более старых версиях Ubuntu потребуется проверить содержимое файлов /etc/resolve.conf и /etc/network/interfaces. Если сервер не указан, воспользуйтесь статьей для ОС Ubuntu 18.04 или CentOS, чтобы скорректировать настройки.

Проверить работу сервиса разрешения имен нам помогут утилиты nslookup или dig. Функционально они почти идентичны: G-вывод утилиты dig содержит больше диагностической информации и гибко регулируется, но это далеко не всегда нужно. Поэтому используйте ту утилиту, которая удобна в конкретной ситуации. Если эти команды недоступны, потребуется доставить пакеты на CentOS/RedHat:

для Debian/Ubuntu:

После успешной установки сделаем тестовые запросы:


Скриншот №9. Тестовые запросы

В разделе Answer Section видим ответ от DNS сервера — IP-адрес для A-записи с доменным именем ya.ru. Разрешение имени работает корректно:


Скриншот №10. Подтверждение корректной работы

Аналогичный запрос утилитой nslookup выдает более компактный вывод, но вся нужная сейчас информация в нем присутствует.

Что же делать, если в ответе отсутствует IP-адрес? Возможно, DNS-сервер недоступен. Для проверки можно отправить тестовый запрос на другой DNS-сервер. Обе утилиты позволяют эти сделать. Направим тестовый запрос на DNS-сервер Google:


Скриншот №11. Отправка тестового запроса 1


Скриншот №12. Отправка тестового запроса 2

Если имена разрешаются публичным DNS-сервером корректно, а установленным по умолчанию в ОС нет, вероятно, есть проблема в работе этого DNS-сервера. Временным решением данной проблемы может быть использование публичного DNS-сервера в качестве сервера для разрешения имен в операционной системе. В том случае, если разрешение имен не работает ни через локальный, ни через публичный DNS сервер — стоит проверить не блокируют ли правила файрвола отправку на удаленный порт 53 TCP/UDP пакетов (именно на этом порту DNS-серверы принимают запросы).

Часто используемые параметры:

  • nslookup имя сервер — разрешить доменное имя, используя альтернативый сервер;
  • nslookup –type=тип имя — получить запись указанного типа для доменного имени (например, nslookup -type=mx ya.ru – получить MX-записи для домена ya.ru);
  • dig @сервер имя — разрешить доменное имя, используя альтернативый сервер;
  • dig имя тип — получить запись указанного типа для доменного имени (например, dig ya.ru mx — получить MX-записи для домена ya.ru).

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

191028
Санкт-Петербург
Литейный пр., д. 26, Лит. А

+7 (812) 443-85-60

700
300

ООО «ИТГЛОБАЛКОМ ЛАБС»

700
300

Пример в Windows

Запуск программы производится из командной строки. Для этого вы должны войти в неё. Для операционных систем семейства Windows существует несколько способов запуска командной строки:

  1. Пуск — Выполнить — В графе «Открыть» написать «cmd» и нажать Ок.
  2. Сочетание клавиш Win (кнопка с логотипом Windows) + R (должны быть нажаты одновременно) — В графе «Открыть» написать «cmd» и нажать Ок.
  3. Пуск — Все программы (или просто «Программы», зависит от версии операционной системы) — Стандартные — Командная строка.

В открывшемся окне написать:

  tracert example.net

Где tracert — обращение к программе, а example.net — любой домен или IPv4 адрес.

  C:\Documents and Settings\Administrator>tracert ru.wikipedia.org
  
  Трассировка маршрута к rr.esams.wikimedia.org 
  с максимальным числом прыжков 30:
  
  1     1 ms    <1 ms    <1 ms  vpn4.kras.gldn 
  2     2 ms    <1 ms    <1 ms  C7604-BRAS4-FTTB.ranetka.ru 
  3     1 ms     1 ms     4 ms  C76-External.ranetka.ru 
  4     1 ms    <1 ms    <1 ms  pe-l.Krasnoyarsk.gldn.net 
  5    79 ms    79 ms    98 ms  cat01.Stockholm.gldn.net 
  6   131 ms   131 ms   132 ms  ams-ix.2ge-2-1.br1-knams.wikimedia.org 
  7   131 ms   131 ms   131 ms  te-8-2.csw1-esams.wikimedia.org 
  8   133 ms   134 ms   133 ms  rr.esams.wikimedia.org 
  
  Трассировка завершена.

Оцените статью
Рейтинг автора
5
Материал подготовил
Андрей Измаилов
Наш эксперт
Написано статей
116
Добавить комментарий