Тестирование сетевого подключения

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

Введение

Сетевое подключение является фундаментальным аспектом любой современной вычислительной системы. Когда возникают проблемы, знание того, как их диагностировать, становится критически важным навыком для любого разработчика или системного администратора. Эта лабораторная работа проведет вас через серию основных команд Linux для систематической проверки и устранения неполадок сетевых соединений.

Вы узнаете, как использовать ping для проверки базовой доступности, traceroute для отображения пути, который проходят ваши данные в сети, nslookup для проверки разрешения DNS, и ip route для инспекции таблицы маршрутизации вашей системы. К концу этой лабораторной работы у вас будет прочная основа для диагностики распространенных сетевых проблем.

Проверка локального хоста с помощью команды ping 127.0.0.1

На этом шаге вы будете использовать команду ping для проверки сетевого стека на вашей локальной машине. Это самый базовый и важный первый шаг в любом процессе устранения неполадок сети.

Команда ping отправляет пакеты ICMP (Internet Control Message Protocol) ECHO_REQUEST целевому хосту и ожидает ECHO_RESPONSE. Адрес 127.0.0.1 — это стандартный адрес "localhost" или "loopback" (обратного вызова), который всегда указывает на машину, на которой вы работаете. Успешный ping до локального хоста подтверждает, что сетевое программное обеспечение вашей системы работает корректно.

Мы будем использовать опцию -c 4, чтобы отправить только 4 пакета, что предотвратит бесконечное выполнение команды.

Выполните следующую команду в вашем терминале:

ping -c 4 127.0.0.1

Вы должны увидеть вывод, похожий на следующий, который указывает на успешную отправку и получение пакетов.

PING 127.0.0.1 (127.0.0.1) 56(84) bytes of data.
64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.045 ms
64 bytes from 127.0.0.1: icmp_seq=2 ttl=64 time=0.049 ms
64 bytes from 127.0.0.1: icmp_seq=3 ttl=64 time=0.048 ms
64 bytes from 127.0.0.1: icmp_seq=4 ttl=64 time=0.047 ms

--- 127.0.0.1 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3074ms
rtt min/avg/max/mdev = 0.045/0.047/0.049/0.001 ms

Строка 0% packet loss подтверждает, что локальный сетевой интерфейс работает правильно.

Проверка шлюза с помощью команды ping 172.60.0.1

На этом шаге вы проверите связность с шлюзом вашей локальной сети. Шлюз (gateway) — это маршрутизатор, который соединяет вашу локальную сеть с другими сетями, включая Интернет. Успешный ping до шлюза подтверждает, что ваша машина может взаимодействовать с локальной сетью.

Сначала вам нужно найти IP-адрес вашего маршрута по умолчанию (default gateway). Вы можете сделать это с помощью команды ip route и фильтрации по слову "default".

Выполните эту команду, чтобы найти ваш шлюз:

ip route | grep default

Вывод покажет вам маршрут по умолчанию. IP-адрес, следующий сразу за словом via, является адресом вашего шлюза. В лабораторной среде это обычно 172.60.0.1.

default via 172.60.0.1 dev eth1

Теперь используйте команду ping для проверки связности с этим адресом шлюза. Не забудьте использовать опцию -c 4.

ping -c 4 172.60.0.1

Успешный вывод будет выглядеть следующим образом:

PING 172.60.0.1 (172.60.0.1) 56(84) bytes of data.
64 bytes from 172.60.0.1: icmp_seq=1 ttl=64 time=0.075 ms
64 bytes from 172.60.0.1: icmp_seq=2 ttl=64 time=0.051 ms
64 bytes from 172.60.0.1: icmp_seq=3 ttl=64 time=0.052 ms
64 bytes from 172.60.0.1: icmp_seq=4 ttl=64 time=0.053 ms

--- 172.60.0.1 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3060ms
rtt min/avg/max/mdev = 0.051/0.057/0.075/0.010 ms

Этот результат подтверждает, что ваша машина может взаимодействовать с шлюзом локальной сети.

Трассировка маршрута с помощью команды traceroute google.com

На этом шаге вы будете использовать команду traceroute для отслеживания сетевого пути от вашей машины до внешнего назначения, например, google.com. Эта команда полезна для определения того, на каком участке пути может происходить сбой соединения.

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

sudo apt-get update

Теперь установите утилиту traceroute. Флаг -y автоматически отвечает "да" на любые запросы.

sudo apt-get install -y traceroute

После завершения установки вы можете запустить traceroute до google.com. Это покажет вам последовательность маршрутизаторов (хопов), через которые проходят пакеты для достижения цели.

traceroute google.com

Вывод будет содержать список каждого хопа, его IP-адрес и время кругового пути (round-trip time) для достижения этого хопа. Вывод будет варьироваться, но будет выглядеть примерно так (мы сократили его для краткости):

traceroute to google.com (142.250.191.46), 30 hops max, 60 byte packets
 1  uswest5 (172.60.0.1)  0.031 ms  0.010 ms  0.010 ms
 2  10.220.8.54 (10.220.8.54)  0.289 ms 10.220.8.38 (10.220.8.38)  0.275 ms 10.220.8.54 (10.220.8.54)  0.263 ms
 3  11.73.4.217 (11.73.4.217)  2.134 ms 11.73.4.241 (11.73.4.241)  2.141 ms 11.73.4.185 (11.73.4.185)  1.409 ms
 ...
 8  142.251.65.127 (142.251.65.127)  4.316 ms  2.849 ms  4.335 ms
 9  nuq04s42-in-f14.1e100.net (142.250.191.46)  4.296 ms  1.556 ms  2.964 ms

Каждая строка представляет маршрутизатор на пути. Звездочки * * * указывают на то, что маршрутизатор не ответил на зонд (probe) вовремя.

Проверка разрешения DNS с помощью команды nslookup google.com

На этом шаге вы проверите разрешение системы доменных имен (DNS). DNS — это "телефонная книга" Интернета; она преобразует доменные имена, понятные человеку (например, google.com), в IP-адреса, понятные машине (например, 142.250.199.14). Если DNS не работает, вы не сможете получить доступ к веб-сайтам по их именам, даже если ваше сетевое соединение в остальном в порядке.

Команда nslookup — это инструмент, используемый для запроса DNS-серверов с целью получения этой информации.

Выполните следующую команду, чтобы найти IP-адрес для google.com:

nslookup google.com

Вывод покажет вам, какой DNS-сервер ответил на ваш запрос, и IP-адреса, связанные с доменным именем.

Server:  127.0.0.11
Address: 127.0.0.11#53

Non-authoritative answer:
Name: google.com
Address: 142.250.191.46
Name: google.com
Address: 2607:f8b0:4005:80f::200e

Строки Server и Address показывают DNS-резолвер (resolver), который использует ваша система. Раздел Non-authoritative answer предоставляет IPv4 (Address: 142.250.191.46) и IPv6 (Address: 2607:...) адреса для google.com. Успешный ответ, подобный этому, подтверждает, что разрешение DNS работает корректно.

Устранение проблем с подключением с помощью ip route show

На этом шаге вы изучите IP-таблицу маршрутизации ядра (kernel's IP routing table). Таблица маршрутизации представляет собой набор правил, которые ваша система использует для определения того, куда отправлять сетевой трафик. Неправильный или отсутствующий маршрут является частой причиной проблем с подключением.

Команда ip route show (или ее короткий псевдоним ip r) отображает основную таблицу маршрутизации. Это одна из самых важных команд для диагностики сетевых проблем на низком уровне.

Выполните команду, чтобы просмотреть вашу таблицу маршрутизации:

ip route show

Вывод перечислит все маршруты, о которых знает ваша система.

default via 172.60.0.1 dev eth1
172.60.0.0/16 dev eth1 proto kernel scope link src 172.60.1.160

Наиболее важной строкой является маршрут по умолчанию (default route).

  • default via 172.60.0.1 dev eth1: Эта строка означает, что для любого назначения, явно не перечисленного в таблице, трафик будет отправлен на шлюз (gateway) по адресу 172.60.0.1 (который вы проверяли командой ping на Шаге 2) через сетевой интерфейс eth1.

Если бы этот маршрут по умолчанию отсутствовал, ваша система не знала бы, как отправлять трафик в Интернет, и команды типа ping google.com завершались бы ошибкой "Network is unreachable" (Сеть недоступна). Понимание этой таблицы является ключом к решению таких проблем, часто путем добавления правильного маршрута по умолчанию с помощью команды, подобной sudo ip route add default via <gateway_ip>.

Резюме

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

Вы практиковались в использовании следующих основных команд:

  • ping: Для проверки доступности локальной машины и сетевого шлюза.
  • ip route: Для определения вашего шлюза по умолчанию и проверки таблицы маршрутизации системы.
  • traceroute: Для отслеживания пути, который проходят пакеты до удаленного хоста, выявляя потенциальные точки отказа.
  • nslookup: Для проверки того, что система доменных имен (DNS) корректно преобразует имена хостов в IP-адреса.

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