Поиск по сайту:

LFCA: Изучите основные советы по устранению неполадок в сети – часть 12


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

Фундаментальное понимание устранения неполадок в сети

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

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

Обзор модели TCP/IP

В нашей предыдущей теме серии LFCA мы рассмотрели концептуальную модель TCP/IP, которая показывает передачу данных на компьютере и протоколы, находящиеся на каждом уровне.

Другой не менее важной концептуальной моделью является модель модель OSI (взаимосвязь открытых систем). Это семиуровневая структура TCP/IP, которая разбивает сетевую систему и выполняет вычислительные функции на каждом уровне.

В модели OSI эти функции сегментированы на следующие уровни, начиная снизу. Физический уровень, уровень канала передачи данных, сетевой уровень, транспортный уровень, сеансовый уровень. Уровень представления и, наконец, уровень приложения на самом верху.

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

Уровень 1: Физический уровень

Вероятно, это один из самых игнорируемых уровней, но это один из наиболее важных уровней, необходимых для любого общения. Физический уровень включает в себя физические сетевые компоненты ПК, такие как сетевые карты, кабели Ethernet, оптические волокна и т. д. Большинство проблем начинаются здесь и в основном вызваны:

  • Отключенный сетевой/кабель Ethernet
  • Поврежденный сетевой/кабель Ethernet
  • Сетевая карта отсутствует или повреждена

На этом уровне на ум приходят следующие вопросы:

    Чтобы проверить состояние ваших сетевых интерфейсов, выполните команду 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
    

    Перед адресом IPv4 стоит параметр inet, как показано ниже. Например, IP-адрес этой системы — 192.168.2.104 с подсетью или маской сети 255.255.255.0.

    
    ifconfig
    

    Альтернативно вы можете запустить команду IP-адрес следующим образом, чтобы проверить IP-адрес вашей системы.

    
    ip address
    

    Чтобы проверить IP-адрес шлюза по умолчанию, выполните команду:

    
    ip route | grep default
    

    IP-адрес шлюза по умолчанию, которым в большинстве случаев является DHCP-сервер или маршрутизатор, указывается, как показано ниже. В IP-сети у вас должна быть возможность проверить связь со шлюзом по умолчанию.

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

    
    systemd-resolve --status
    

    Лучший способ проверить используемые DNS-серверы — запустить показанную команду nmcli.

    
    ( nmcli dev list || nmcli dev show ) 2>/dev/null | grep DNS
    

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

    Уровень 2: Уровень канала передачи данных

    По сути, уровень канала передачи данных определяет формат данных в сети. Здесь происходит передача кадров данных между хостами. Преобладающим протоколом на этом уровне является ARP ( Протокол разрешения адресов).

    ARP отвечает за обнаружение адресов канального уровня и выполняет сопоставление адресов IPv4 на уровне 3 с MAC-адресами. Обычно, когда хост подключается к шлюзу по умолчанию, есть вероятность, что у него уже есть IP-адрес хоста, но не MAC-адреса.

    Протокол ARP устраняет разрыв между уровнями 3 и 2, преобразуя 32-битные адреса IPv4 на уровне 3 в 48-битные MAC-адреса на уровне 2 и наоборот.

    Когда компьютер подключается к сети LAN, маршрутизатор (шлюз по умолчанию) назначает ему IP-адрес для идентификации. Когда другой хост отправляет пакет данных, предназначенный для ПК, на шлюз по умолчанию, маршрутизатор запрашивает ARP, чтобы найти MAC-адрес, который соответствует IP-адресу.

    Каждая система имеет свою собственную таблицу ARP. Чтобы проверить таблицу ARP, выполните команду:

    ip neighbor show
    

    Как вы можете заметить, MAC-адрес маршрутизатора заполнен. Если возникла проблема с разрешением, команда не возвращает никаких результатов.

    Уровень 3: Сетевой/Интернет-уровень

    Это уровень, на котором вы работаете исключительно с адресами IPv4, знакомыми системным администраторам. Он предоставляет несколько протоколов, таких как ICMP и ARP, которые мы рассмотрели, а также другие, такие как RIP (Протокол информации о маршрутизации). ).

    Некоторые из распространенных проблем включают неправильную настройку устройства или проблемы с сетевыми устройствами, такими как маршрутизаторы и коммутаторы. Хорошим местом для начала устранения неполадок является проверка, выбрала ли ваша система IP-адрес следующим образом:

    ifconfig
    

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

    ping 8.8.8.8 -c 4
    

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

    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, начиная с нижнего уровня. Это дает вам представление о том, что происходит не так, и помогает сузить круг проблем.