Диагностика сети

Сеть не работает, или работает не так, как хотелось бы. Рассмотрим несколько инструментов для диагностики.

ping отправляет удалённому хосту ICMP пакет и ждёт от него ответа pong. В отличие от аналога в Windows, ping будет отправлять пакеты, пока не будет прерван (например, комбинацией клавиш Ctrl+C). Например:

ping 8.8.8.8

traceroute показывает маршрут к удалённому хосту. Может иметь смысл запуск с ключом «-n» (не преобразовывать ip адреса в DNS имена). Например:

traceroute -n google.com

Установка в Debian:

apt install traceroute

Правильно ли работает DNS?

Проверим, прописан(ы) ли в системе DNS сервер(ы):

cat /etc/resolv.conf

и мы должны увидеть одну или более строк содержащих «nameserver». Что-то подобное:

nameserver 192.168.7.1

dig / host — инструменты для диагностики DNS.
dig — преобразовывает DNS имена в ip адрес. Например, запросить ip адрес для сайта yandex.ru у сервера 8.8.8.8:

dig yandex.ru @8.8.8.8

host — помогает узнать DNS имя для ip адреса. Например, запросить имя домена для ip адреса 5.255.255.70 у сервера 8.8.8.8:

host 5.255.255.70 8.8.8.8

Установка в Debian:

apt install dnsutils

Подключен ли сетевой кабель к ethernet порту?
Воспользуемся командой «ip a» или «ifconfig»:

ip a

Посмотрите на строку с информацией о сетевом адаптере, подключение которого нас интересует.
«NO-CARRIER» и «state DOWN» говорят нам о том, что кабель не подключен

«state UP» говорит о том, что кабель подключен.

ifconfig

Смотрим на строку с информацией об адаптере. Если строка содержит «RUNNING», то кабель подключен.

Прописан(ы) ли маршрут(ы)?
Увидеть маршруты можно одной из команд: ip route или route -n:

route -n
ip route

Верно ли настроена сеть?

Командой «ip a»/»ifconfig» посмотрим настройки сети, а командой «ip route»/»route -n» посмотрим маршрут(ы) и утилитой ip калькулятором «ipcalc» проверим наши настройки на вменяемость.

Маршрутизатор не доступен.
Кабель(и) подключён(ы), настройки сети верные.
Убедимся, что нужные кабели подключены к нужным сетевым адаптерам. Для этого послушаем сеть. Установим утилиту tcpdump:

apt install tcpdump

Теперь послушаем трафик, например, на сетевом интерфейсе enp1s0 и не будем выводить информацию связанную с нашим ip адресом (допустим, 192.168.168.29):

tcpdump -n -i enp1s0 ! host 192.168.168.29

Таким образом, мы увидим весь трафик в сети, куда подключёна наша сетевая карта и без трафика к/от нашей сетевой карты.
Зачем? Увидев «чужой» трафик, мы сможем сделать выводы о конфигурации сети, в которую мы подключились, а соответственно понять, туда ли мы подключились и правильно ли мы сделали настройки.

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

Debian/Ubuntu/Astra: /etc/network/interfaces
OpenWRT: /etc/config/network
Gentoo/Calculate: /etc/conf.d/net