Linux команда tracepath с примерами практического применения

LinuxLinuxBeginner
Практиковаться сейчас

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

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

Linux Commands Cheat Sheet


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/RemoteAccessandNetworkingGroup(["Remote Access and Networking"]) linux/RemoteAccessandNetworkingGroup -.-> linux/netstat("Network Monitoring") linux/RemoteAccessandNetworkingGroup -.-> linux/ping("Network Testing") subgraph Lab Skills linux/netstat -.-> lab-422964{{"Linux команда tracepath с примерами практического применения"}} linux/ping -.-> lab-422964{{"Linux команда tracepath с примерами практического применения"}} end

Разобраться с назначением команды tracepath

В этом шаге вы узнаете о назначении и использовании команды tracepath в Linux. Команда tracepath - это инструмент диагностики сети, который используется для трассировки маршрута, по которому передаются пакеты от локального узла до удаленного узла, и для выявления любых промежуточных прыжков или сетевых проблем на этом пути.

Команда tracepath похожа на команду traceroute, но она использует механизм обнаружения максимальной единицы передачи (Path MTU Discovery, PMTUD) для определения максимальной единицы передачи (MTU) по маршруту, что может помочь выявить сетевые проблемы, связанные с фрагментацией пакетов.

Давайте начнем с запуска команды tracepath до удаленного узла:

$ sudo tracepath google.com
 1?: [LOCALHOST]                                         pmtu 1500
 1:  192.168.1.1                                           0.161ms
 1:  192.168.1.1                                           0.158ms
 2:  10.0.0.1                                              1.694ms
 3:  203.0.113.1                                           9.717ms
 4:  142.250.209.174                                      10.843ms
 5:  142.250.209.174                                      10.518ms
     Resume: pmtu 1500 hops 5 back 5

Пример вывода:

Вывод показывает маршрут, по которому передаются пакеты от локального узла до удаленного узла google.com. Каждая строка представляет собой прыжок в маршруте, и вывод содержит следующую информацию:

  • Номер прыжка
  • IP-адрес промежуточного маршрутизатора или сетевого устройства
  • Время в пути (RTT) для пакета, чтобы добраться до этого прыжка и вернуться на локальный узел

Команда tracepath также сообщает о максимальной единице передачи (MTU) по маршруту, которая в этом случае составляет 1500 байт.

Запустив команду tracepath, вы можете выявить любые сетевые проблемы или узкие места на маршруте, такие как высокая задержка, потеря пакетов или проблемы с MTU.

Использовать tracepath для трассировки маршрута до удаленного узла

В этом шаге вы научитесь использовать команду tracepath для трассировки маршрута до удаленного узла и выявления любых сетевых проблем на этом пути.

Давайте начнем с трассировки маршрута до удаленного узла, такого как google.com:

$ sudo tracepath google.com
 1?: [LOCALHOST]                                         pmtu 1500
 1:  192.168.1.1                                           0.161ms
 1:  192.168.1.1                                           0.158ms
 2:  10.0.0.1                                              1.694ms
 3:  203.0.113.1                                           9.717ms
 4:  142.250.209.174                                      10.843ms
 5:  142.250.209.174                                      10.518ms
     Resume: pmtu 1500 hops 5 back 5

Пример вывода:

Вывод показывает маршрут, по которому передаются пакеты от локального узла до удаленного узла google.com. Каждая строка представляет собой прыжок в маршруте, и вывод содержит следующую информацию:

  • Номер прыжка
  • IP-адрес промежуточного маршрутизатора или сетевого устройства
  • Время в пути (RTT) для пакета, чтобы добраться до этого прыжка и вернуться на локальный узел

Команда tracepath также сообщает о максимальной единице передачи (MTU) по маршруту, которая в этом случае составляет 1500 байт.

Вы также можете использовать команду tracepath для трассировки маршрута до другого удаленного узла, такого как example.com:

$ sudo tracepath example.com
 1?: [LOCALHOST]                                         pmtu 1500
 1:  192.168.1.1                                           0.161ms
 1:  192.168.1.1                                           0.158ms
 2:  10.0.0.1                                              1.694ms
 3:  203.0.113.1                                           9.717ms
 4:  93.184.216.34                                        10.843ms
 5:  93.184.216.34                                        10.518ms
     Resume: pmtu 1500 hops 5 back 5

Запустив команду tracepath для разных удаленных узлов, вы можете выявить любые сетевые проблемы или узкие места на маршруте, такие как высокая задержка, потеря пакетов или проблемы с MTU.

Исправление сетевых проблем с использованием tracepath

В этом шаге вы научитесь использовать команду tracepath для устранения сетевых проблем.

Давайте начнем с имитации сетевой проблемы, заблокировав соединение с удаленным узлом с использованием брандмауэра iptables:

$ sudo iptables -A OUTPUT -d 8.8.8.8 -j DROP

Эта команда заблокирует весь исходящий трафик к IP-адресу 8.8.8.8, который является одним из публичных DNS-серверов Google.

Теперь попробуем отследить маршрут до 8.8.8.8 с использованием команды tracepath:

$ sudo tracepath 8.8.8.8
 1?: [LOCALHOST]                                         pmtu 1500
 1:  192.168.1.1                                           0.161ms
 1:  192.168.1.1                                           0.158ms
 2:  10.0.0.1                                              1.694ms
 3:  no reply
 4:  no reply
 5:  no reply
     Resume: pmtu 1500 hops 5 back 2

Пример вывода:

Вывод показывает, что команда tracepath смогла отследить маршрут до третьего прыжка, но затем столкнулась с сообщением "no reply", что указывает на то, что соединение было заблокировано или удаленный узел не отвечает.

Для устранения этой проблемы вы можете предпринять следующие действия:

  1. Проверить правила брандмауэра, чтобы убедиться, что соединение блокируется, как ожидается:

    $ sudo iptables -L
    Chain OUTPUT (policy ACCEPT)
    target     prot opt source               destination
    DROP       all  --  anywhere             8.8.8.8
  2. Попробовать отправить ping-запросы к удаленному узлу, чтобы проверить, действительно ли соединение заблокировано:

    $ ping 8.8.8.8
    PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
    ^C
    --- 8.8.8.8 ping statistics ---
    3 packets transmitted, 0 received, 100% packet loss, time 2023ms

    Вывод показывает, что соединение заблокировано, как свидетельствует 100% потеря пакетов.

  3. Удалить правило брандмауэра, чтобы восстановить соединение:

    $ sudo iptables -D OUTPUT -d 8.8.8.8 -j DROP

Используя команду tracepath для определения точки, где соединение блокируется, вы можете быстро устранять сетевые проблемы и выявить причины их возникновения.

Резюме

В этом лабе вы узнаете о назначении и использовании команды tracepath в Linux, которая является инструментом диагностики сети, используемым для трассировки маршрута, по которому передаются пакеты от локального узла до удаленного узла, и выявления любых промежуточных прыжков или сетевых проблем на этом пути. Вы также научитесь использовать команду tracepath для трассировки маршрута до удаленного узла и устранения сетевых проблем с использованием вывода команды.

Команда tracepath похожа на команду traceroute, но она использует механизм обнаружения максимальной единицы передачи (Path MTU Discovery, PMTUD) для определения максимальной единицы передачи (MTU) по маршруту, что может помочь выявить сетевые проблемы, связанные с фрагментацией пакетов. Запустив команду tracepath, вы можете выявить любые сетевые проблемы или узкие места на маршруте, такие как высокая задержка, потеря пакетов или проблемы с MTU.

Linux Commands Cheat Sheet