Когда системы встречают проблемы, как это иногда происходит, вам нужно уметь работать с проблемой и восстанавливать их в нормальное и рабочее состояние. В этом разделе мы сосредотачиваемся на базовых навыках устранения неполадок сети, которые должен обладать любой администратор Linux.
Основное понимание устранения неполадок сети
В большинстве случаев существует широкая разница между网络管理員ми и системными администраторами. Системные администраторы, не обладая видением сети, обычно возлагают вину на сетевых администраторов за отключения и сбои, а сетевые администраторы нехваткой знаний о серверах часто возлагают вину администраторам на отказы устройств конца сегмента. Однако игра в игру вины не помогает решать проблемы, и в рабочем окружении это может провоцировать конфликты между коллегами.
Как системный администратор, базовое понимание устранения неполадок сети поможет вам быстрее решать проблемы и содействовать гармоничной рабочей среде. По этой причине мы собрали этот раздел, чтобы выделить несколько базовых советов по устранению неполадок сети, которые пригодуются при диагностике проблем, связанных с сетью.
A Recap of the TCP / IP Model
В нашей предыдущей теме серии LFCA мы рассмотрели концептуальную модель TCP/IP, которая показывает передачу данных в компьютере и протоколы, которые находятся на каждом уровне.

Еще одна такая же важная концептуальная модель – это модель OSI (Open Systems Interconnection). Это семиуровневая структура TCP/IP, которая разбивает сетевую систему и функции вычислений на каждом уровне.
В модели OSI эти функции разделены на следующие уровни, начиная снизу: Физический уровень, Канальный уровень, Сетевой уровень, Транспортный уровень, Уровень сеансов, Уровень представления и, наконец, Прикладной уровень сверху.

Невозможно обсуждать устранение сетевых проблем без ссылки на модель OSI. По этой причине мы рассмотрим каждый уровень и узнаем различные сетевые протоколы, используемые, и как устранять неисправности, связанные с каждым уровнем.
Уровень 1: Физический уровень
Возможно, это один из наиболее недооцененных уровней, однако это один из наиболее важных уровней, необходимых для любого вида общения. Физический уровень охватывает физические компоненты сети ПК, такие как сетевые карты, Ethernet-кабели, оптоволокно и т. Д. Большинство проблем начинаются здесь и в основном вызваны:
- Не подключенный сетевой/以太网 каabel
- Поврежденный сетевой/以太网 каabel
- Отсутствует или поврежденная сетевая карта
В этом уровне появляются вопросы:
- “Включено ли каabel?”
- “Есть ли физическое соединение?”
- “Есть ли IP адрес?”
- “Можете ли вы отправить запрос ping на IP default gateway?”
- “Можете ли вы отправить запрос ping на ваш DNS сервер?”
Чтобы проверить статус ваших сетевых интерфейсов, запустите команду ip:
$ ip link show

Согласно вышеначальному выводу, у нас есть 2 интерфейса. Первый интерфейс – lo
– это локальный обход и, как правило, не используется. Активный интерфейс сети, который обеспечивает соединение с сетью и интернетом, это интерфейс enp0s3
. Мы можем видеть, что состояние интерфейса указано как UP в выводе.
Если сетевой интерфейс выключен, вы увидите вывод state DOWN.

В этом случае вы можете включить интерфейс с помощью следующей команды:
$ sudo ip link set enp0s3 up

Кроме того, вы можете запустить команду ifconfig ниже.
$ sudo ifconfig enp0s3 up $ ip link show

Просто чтобы подтвердить, что ваш ПК получил IP-адрес от маршрутизатора или DHCP-сервера, выполните команду ifconfig.
$ ifconfig

IP-адрес IPv4 предваряется параметром inet, как показано. Например, IP-адрес этой системы – 192.168.2.104, с подсетью или маской подсети 255.255.255.0.
$ ifconfig

Также можно выполнить команду ip address следующим образом, чтобы проверить IP-адрес вашей системы.
$ ip address
Чтобы проверить IP-адрес шлюза по умолчанию, выполните команду:
$ ip route | grep default
IP-адрес шлюза по умолчанию, который в большинстве случаев является DHCP-сервером или маршрутизатором, указан как показано ниже. В IP-сети вы должны иметь возможность пинговать шлюз по умолчанию.

Чтобы проверить используемые вами DNS-серверы, выполните следующую команду в системах systemd.
$ systemd-resolve --status

A better way to check the DNS servers in use is to run the nmcli command shown
$ ( nmcli dev list || nmcli dev show ) 2>/dev/null | grep DNS

Как вы заметили, здесь происходит значительная часть сетевой отладки.
Уровень 2: Уровень канала передачи данных
По сути, уровень канала передачи данных определяет формат данных в сети. Здесь происходит обмен данных между хостами. Основной протокол на этом уровне – ARP (протокол разрешения адресов) (Address Resolution Protocol).
ARP отвечает за обнаружение адресов канального уровня и выполнение отображения IPv4-адресов на уровне 3 на MAC-адреса. Обычно, когда хост обращается к шлюзу по умолчанию, есть вероятность, что у него уже есть IP-адрес хоста, но нет MAC-адреса.
Протокол ARP соединяет различия между третьей и второй моделями OSI, транслируя 32-битные IPv4 адреса третьего уровня в 48-битные MAC адреса второго уровня и наоборот.
Когда компьютер присоединяется к локальной сети LAN,路由器 (default gateway) назначает ему IP-адрес для идентификации. Когда другой хост посылает пакет данных, направленный компьютеру, к default gateway,路由器 запрашивает ARP, чтобы найти MAC-адрес, соответствующий IP-адресу.
Каждая система имеет свой собственный ARP таблицу. Чтобы проверить вашу ARP таблицу, выполните команду:
$ ip neighbor show

Как вы можете заметить, MAC-адрес路由器 заполнен. Если есть проблема с разрешением, команда возвращает без вывода.
Уровень 3: Сетевой/ Интернет уровень
Это уровень, с которым вы работаете только с IPv4 адресами, знакомыми с системными администраторами. Он обеспечивает множество протоколов, таких как ICMP и ARP, о которых мы говорили, а также другие, такие как RIP (Protocol for Routing Information).
Обычные проблемы включают неверную настройку устройства или проблемы с сетевыми устройствами, такими как маршрутизаторы и switches. Хорошим местом для начала исправления ошибок является проверка, выбрал ли ваш система IP-адрес следующим образом:
$ ifconfig

Также вы можете использовать команду ping для проверки подключения к Интернету, отправив пакет эхо ICMP на DNS Google. Флаг -c
обозначает количество отправляемых пакетов.
$ ping 8.8.8.8 -c 4

Вывод показывает положительный ответ от DNS Google с нулевой потерей пакетов. Если у вас нерегулярное подключение, вы можете проверить, на каком участке происходит потеря пакетов, используя команду traceroute следующим образом.
$ traceroute google.com

Звездочки указывают на точку, в которой происходит потеря или исчезновение пакетов.
Команда nslookup запрашивает DNS, чтобы получить IP-адрес, связанный с доменным именем или хостом. Это называется прямым DNS-запросом.
Например.
$ nslookup google.com
Команда показывает IP-адреса, связанные с доменом google.com.
Server: 127.0.0.53 Address: 127.0.0.53#53 Non-authoritative answer: Name: google.com Address: 142.250.192.14 Name: google.com Address: 2404:6800:4009:828::200e
Команда dig – еще одна команда, используемая для запросов к DNS-серверам, связанным с именем домена. Например, для запроса серверов имен DNS выполните:
$ dig google.com
Уровень 4: Транспортный уровень
Транспортный уровень обрабатывает передачу данных с использованием протоколов TCP и UDP. Для напоминания, TCP является протоколом с установлением соединения, в то время как UDP не устанавливает соединение. Запущенные приложения слушают сокеты, которые состоят из портов и IP-адресов.
Общие проблемы, которые могут возникнуть, включают заблокированные TCP-порты, которые могут быть необходимы для приложений. Если у вас есть веб-сервер и вы хотите проверить его состояние, используйте команду netstat или ss, чтобы проверить, слушает ли веб-служба порт 80
$ sudo netstat -pnltu | grep 80 OR $ ss -pnltu | grep 80

Иногда порт может быть использован запущенной службой в системе. Если вы хотите, чтобы другая служба использовала этот порт, вам придется настроить ее на использование другого порта.
Если у вас все еще возникают проблемы, проверьте брандмауэр и убедитесь, что интересующий вас порт заблокирован.
Большая часть отладки будет выполняться на этих 4 уровнях. Очень мало отладки выполняется на уровнях сеанса, представления и приложения. Это потому, что они играют менее активную роль в функционировании сети. Тем не менее, давайте быстро рассмотрим, что происходит на этих уровнях.
Уровень 5: Уровень сеанса
Сеансовый уровень открывает коммуникационные каналы, называемые сеансами, и обеспечивает их открытие во время передачи данных. Он также закрывает их после завершения связи.
Уровень 6: Уровень представления
Также известный как уровень синтаксиса, уровень представления синтезирует данные для использования прикладным уровнем. Он определяет, как устройства должны шифровать, кодировать и сжимать данные с целью обеспечения их успешного получения на другом конце.
Уровень 7: Прикладной уровень
Наконец, у нас есть прикладной уровень, который находится ближе к конечным пользователям и позволяет им взаимодействовать с прикладным программным обеспечением. Прикладной уровень богат протоколами, такими как HTTP, HTTPS, POP3, IMAP, DNS, RDP, SSH, SNMP и NTP, чтобы упомянуть некоторые из них.
Заключение
При устранении неполадок в системе Linux рекомендуется использовать слоистый подход с использованием модели OSI, начиная с нижнего уровня. Это поможет вам понять, в чем проблема, и поможет вам сузить круг поиска проблемы.
Source:
https://www.tecmint.com/basic-network-troubleshooting-tips/