Команда трассировка маршрута linux

Утилиты Traceroute и Tracert

Traceroute — это утилита, которая позволяет проследить маршрут следования данных до удалённого адресата в сетях TCP/IP. В Linux используется команда Traceroute, а в Windows — Tracert. При помощи этих команд можно увидеть путь пакета данных от вашего компьютера до целевого сервера или сайта.

Как работают Tracert и Traceroute

Когда вы пытаетесь открыть сайт, браузер отправляет сообщение (запрос) серверу, на котором этот сайт находится. Сообщение на своём пути проходит через маршрутизаторы. Они решают, куда дальше передать сообщение, чтобы гарантированно его доставить адресату. В трассировке маршрутизаторы ещё называют хопами (хоп — прыжок) или узлами. Количество узлов, через которые на своём пути пройдёт запрос, можно узнать при помощи утилит Tracert и Traceroute. Узлы, которые не являются целевыми для запроса, называют транзитными.

Утилита Traceroute формирует UDP-датаграмму (сообщение, которое нужно доставить целевому серверу), упаковывает её в IP-пакет и передаёт первому транзитному узлу. В заголовке такого IP-пакета есть поле TTL (Time To Live) — время жизни пакета. Оно определяет количество хопов, через которые пакет может пройти. На каждом узле TTL уменьшается на единицу. Если на пути к удалённому адресату время жизни пакета станет равно 0, маршрутизатор отбросит пакет и отправит источнику ICMP-сообщение об ошибке «Time Exceeded» (время истекло).

Этот принцип лежит в основе работы утилит Tracert и Traceroute, однако между ними есть отличия. Рассмотрим каждую утилиту отдельно.

Tracert отправляет на хост назначения ICPM-запрос «Echo Request» с TTL=1. Первый маршрутизатор, который получит запрос, проверяет, кому он предназначен. Если маршрутизатор не является целевым хостом, он уменьшает TTL на 1, отбрасывает пакет и отправляет ICMP-сообщение источнику, так как время жизни теперь равно 0. В этом сообщении маршрутизатор указывает информацию о себе и причину дропа пакета. Получив сообщение, Tracert запоминает этот маршрутизатор как первый хоп (прыжок) и отправляет следующий пакет, но уже с TTL=2. Первый хоп успешно обрабатывает новый пакет, уменьшает время его жизни на 1 и передаёт дальше. Следующий маршрутизатор тоже выполняет проверку хоста назначения и, если пакет предназначен не ему, уменьшает TTL, отбрасывает пакет и отправляет ICMP-сообщение источнику. Tracert запоминает второй хоп, снова увеличивает TTL на 1 и отправляет следующий пакет. Эти действия будут повторяться до тех пор, пока пакет не достигнет целевого хоста. Когда запрос попадёт к целевому хосту, этот хост в ответ направит ICMP «Echo Reply». Источник воспримет это как завершение трассировки.

Читайте также:  Linux history clear one command

Утилита Traceroute вместо ICMP-запроса отправляет 3 UDP-пакета на определенный порт целевого хоста и ожидает ответа о недоступности этого порта. Первый пакет отправляется с TTL=1, второй с TTL=2 и так далее, пока запрос не попадёт адресату. Отличие от Tracert в том, как Traceroute понимает, что трассировка завершена. Так как вместо ICMP-запроса он отправляет UDP-запрос, в каждом запросе есть порт отправителя (Sourсe) и порт получателя (Destination). По умолчанию запрос отправляется на закрытый порт 34434. Когда запрос попадёт на хост назначения, этот хост отправит ответ о недоступности порта «Destination port unreachable» (порт назначения недоступен). Это значит, что адресат получил запрос. Traceroute воспримет этот ответ как завершение трассировки.

Если Tracert работает по протоколу ICMP, то какой протокол используется командой Traceroute? По умолчанию используется протокол UDP, но traceroute может отправить и ICMP-запрос «Echo Request», как Tracert. Такой способ пригодится, если хоп не отвечает на UDP-пакет.

Как использовать Traceroute и Tracert

Кириллические домены необходимо вводить в формате Punycode. Для перевода домена в Punycode воспользуйтесь сервисом.

Источник

10+ traceroute command in Linux [Cheat Sheet]

traceroute is a command-line tool that displays the routes taken by network packets to reach the given host. It also helps to find slow traffic between source and destination. traceroute can come in handy when troubleshooting connectivity issues.

How to install traceroute

traceroute command is not available by default on most Linux distributions. You can use the following commands to install traceroute on your system.

Install traceroute on CentOS, RHEL, Fedora

$ sudo dnf install traceroute

Install traceroute on Ubuntu and Debian

$ sudo apt install traceroute

Syntax to use traceroute command

The syntax for the traceroute command is as follows:

host indicates the name or IP address of the destination host.

Different examples to use traceroute command

1. Trace the route to a network host

You can specify the domain name or IP address to trace the route to a network host.

Читайте также:  Ноутбук dell установка linux

The following example prints the route taken by packets to reach the host golinuxcloud.com .

$ traceroute golinuxcloud.com

Sample Output:

trace the route to a network host

The traceroute command displays the IP addresses through which the packets pass and the time taken by packets to reach the destination.

There are three instances of time in milliseconds as traceroute sends three packets in each hop.

If the destination is not reached, it prints asterisks like in hop 9. It can be caused due to a firewall blocking the network.

2. Trace the route using IPv4

The -4 option enables only IPv4 tracerouting to a network host.

$ traceroute -4 golinuxcloud.com

Sample Output:

traceroute using ipv4 protocol

3. Trace the route using IPv6

The -6 option allows you to use IPv6 protocol to trace the route to a network host.

$ traceroute -6 gtraolinuxcloud.com

Sample Output:

~]# traceroute -6 2a00:8a00:4000:293::1e0 traceroute to 2a00:8a00:4000:293::1e0 (2a00:8a00:4000:293::1e0), 30 hops max, 80 byte packets 1 2a00:8a00:4000:293::1e0 (2a00:8a00:4000:293::1e0) 0.074 ms 0.019 ms 0.016 ms

Or alternatively we can also use traceroute6 as shown below:

~]# traceroute6 2a00:8a00:4000:293::1e0 traceroute to 2a00:8a00:4000:293::1e0 (2a00:8a00:4000:293::1e0), 30 hops max, 80 byte packets 1 2a00:8a00:4000:293::1e0 (2a00:8a00:4000:293::1e0) 0.063 ms 0.017 ms 0.016 ms

4. Use ICMP ECHO

By default, the traceroute command uses the UDP ports for tracerouting. To use ICMP ECHO instead of UDP, run the command with -I option.

$ traceroute -I golinuxcloud.com

Sample Output:

traceroute using ICMP ECHO

5. Specify the maximum number of hops

The default maximum hops number is 30. You can change its value using the -m option.

$ traceroute -m hop_num golinuxcloud.com

Sample Output:

specify max hops in traceroute

6. Specify the interface

With -i flag, you can specify the interface you want to use to send packets to a host.

$ traceroute -i interface google.com

Sample Output:

specify interface in traceroute

7. Do not fragment packets

The -F option tells traceroute not to fragment probe packets.

$ traceroute -F golinuxcloud.com

Sample Output:

traceroute command to not fragment packets

8. Set the wait time

You can use the -w option to define time in seconds to wait for a response to the next hop. The default value is 5.0 seconds. The float point value is also allowed.

$ traceroute -w time golinuxcloud.com

Sample Output:

set wait time for a response

9. Set the number of probe packets per hop

The -q option lets you specify the number of probe packets for a hop. The default is 3.

$ traceroute -q num golinuxcloud.com

Sample Output:

The following example sends two packets in each hop to a host.

set number of probe packets per hop

10. Do not resolve IP addresses to their domain names

The -n option forces the traceroute command not to map IP addresses to their domain names when displaying them.

$ traceroute -n golinuxcloud.com

Sample Output:

Читайте также:  Active directory dhcp dns linux

do not resolve ip addresses to their domain names

11. Specify the destination port

The -p option is used to specify the destination port number for UDP tracing. The default port value is 33434.

$ traceroute -p port_num golinuxcloud.com

Sample Output:

specify the destination port

12. Set the full packet length

The default value of the full packet length is equal to the length of an IP header plus 40. You can change it by passing a new length to the traceroute command.

$ traceroute golinuxcloud.com packetlen

Sample Output:

change full packet length in traceroute

Conclusion

Now you should have understood how to use traceroute command to track the packet’s route to a network host. We have discussed the most common options used in traceroute commands. We hope you find this tutorial helpful.

If you have any confusion, let us know in the comment section.

Источник

Команда трассировка маршрута linux

Командой tracert мы инициируем отправку пакетов данных тому получателю, который указали – это может быть адрес сайта, имя компьютера в сети или IP-адрес. При этом пакеты проходят через все промежуточные системы (обычно это специальные сетевые устройства – машрутизаторы) между нашим компьютером и получателем. Таким образом, мы устанавливаем маршрут до пункта назначения и, что гораздо более важно – определяем время отклика (значение в миллисекундах) каждого промежуточного узла.

Таким образом можно установить, в каком месте цепочки находится проблема. Если пакеты не доходят до самого пункта назначения – значит, проблема в нем. Если цепочка обрывается на середине – проблема в каком-то из промежуточных маршрутизаторов. При этом с другого компьютера или по другому маршруту (если такой существует) наш отвалившийся сайт может быть доступен. Если пакеты не выходят за пределы сети нашего провайдера – стало быть, там и проблема.

Трассировка в Linux

В linux за трассировку отвечает пакет traceroute. Первое что сделаем это поставим пакет. Для этого достаточно полнить простенькую команду.

Для CentOS и RedHat

Для Debian и Ubuntu

Как сделать трассировку в Ubuntu-Debian-CentOS с помощью traceroute-01

Как сделать трассировку в Ubuntu-Debian-CentOS с помощью traceroute-01

Сделаем трассировку до Яндекса. traceroute ya.ru. Видим пошло построение маршрута.

Как сделать трассировку в Ubuntu-Debian-CentOS с помощью traceroute-02

Как сделать трассировку в Ubuntu-Debian-CentOS с помощью traceroute-02

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

Популярные Похожие записи:

  • Установка NuGet в Windows
  • Установка DIG в Windows, за минутуУстановка DIG в Windows, за минуту
  • Большая потеря пакетов на виртуальной машине ESXIБольшая потеря пакетов на виртуальной машине ESXI
  • Настройка сети в CentOS 8, за минуту
  • Ошибка активации 0xC004F034 на KMS сервере
  • Ошибка Log Disk Exhaustion on vCenter 7, 100% решениеОшибка Log Disk Exhaustion on vCenter 7, 100% решение

Источник

Оцените статью
Adblock
detector