Инструменты командной строки Linux для обнаружения сетевых проблем на уровнях 2,3,4

Решение проблем с сетью может быть очень сложной задачей.

Пакет, отправленный с клиента на сервер (или наоборот), может быть отброшен в разных местах и ​​по разным причинам. некоторые из наиболее распространенных случаев —

  • Брандмауэр, который блокирует пакет. это может быть брандмауэр на стороне сервера, на стороне клиента или любой брандмауэр на пути между сервером и клиентом. блокировка может быть основана на IP-адресе (источника и/или получателя), портах (в случае tcp/udp) или любых других критериях уровня 3,4.
  • отсутствие подключения уровня 2.
  • конфигурации маршрутизации, которые не установлены должным образом.

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

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

  1. пинг
    Это самая основная команда при устранении неполадок с сетью. команда ping проверит сетевое соединение между вашим хостом и сервером. это определенно первая команда, которую следует использовать при подозрении на отсутствие сетевого подключения.пинг.jpg

  2. ifconfig
    ifconfig позволит вам просматривать и настраивать ваши сетевые интерфейсы.
    вы можете просматривать свои сетевые интерфейсы и назначенные им IP-адреса.
    вы можете просмотреть сетевую статистику для каждого сетевого интерфейса (стоит посмотреть на счетчики отброшенных или ошибочных пакетов).
    вы можете просмотреть состояние сетевого интерфейса (ВВЕРХ/ВНИЗ).
    ifconfig.jpg

  3. tcpdump
    tcpdump распечатает содержимое пакетов, полученных или переданных сетевым интерфейсом (или всеми сетевыми интерфейсами). это мощная утилита из-за ее способности давать полное представление о сетевом трафике и ее возможностях фильтрации, которые позволяют нам фильтровать трафик по свойствам уровня 3 и 4.
    например, чтобы просмотреть весь трафик на eth0, переданный на порт 80 или полученный портом 80 —
    tcpdump.jpg

  4. нетстат
    netstat будет печатать сетевые соединения, таблицы маршрутизации, статистику интерфейсов, маскарадные соединения и членство в многоадресной рассылке.
    Я хочу сосредоточиться на способности netstat предоставлять информацию о прослушиваемых сокетах. при установлении tcp-соединения от клиента к серверу на указанном порту сервера. на сервере должна быть запущена программа, которая «слушает» этот конкретный порт. используя команду netstat (на стороне сервера), мы можем убедиться, что программа действительно имеет прослушивающий сокет на этом конкретном порту и с каких IP-адресов она принимает соединения.
    netstat.jpg

  5. IP-правило, IP-маршрут
    я намеренно объединил эти две команды, так как они связаны. обычно, когда мы хотим взглянуть на нашу настроенную таблицу маршрутизации, мы вводим команду ip route —
    IP-адрес.jpg

вывод, видимый на экране, является основной таблицей маршрутизации. Linux имеет несколько встроенных таблиц маршрутизации, включая пользовательские таблицы маршрутизации, которые можно настроить. чтобы понять поток пакетов в системе, мы должны знать о базе данных политик маршрутизации. ip rule дает нам эту информацию —
маршрут.jpg

из вывода видим, что в этой системе 4 таблицы маршрутизации.
первая таблица маршрутизации для поиска соответствующего маршрута — это локальная таблица, вторая — это таблица 3, а третья — основная таблица. в этом примере была определена маршрутизация на основе источника. все пакеты, исходный IP-адрес которых равен 2.2.2.2 и не имеют совпадения маршрутов в локальной таблице, будут маршрутизироваться на основе таблицы 3, а не на основе основной таблицы! На приведенном ниже снимке экрана показано содержимое таблицы маршрутизации № 3.
маршрут2.jpg

поэтому при поиске проблем с маршрутизацией всегда сначала проверяйте базу данных маршрутизации, используя правило ip, а затем исследуйте правильную таблицу маршрутизации, используя таблицу ip route show. [name]

  1. iptables
    iptables — это инструмент администрирования для фильтрации пакетов IPv4 и NAT. Это в основном служит брандмауэром. В iptables есть 4 таблицы с предопределенными цепочками. обычно мы проверяем таблицу фильтров. таблица фильтров — это таблица по умолчанию, отображаемая при вводе iptables -L, и вся фильтрация определяется в этой таблице.
    iptables.jpg

стоит потратить время на изучение iptables из одного из многочисленных онлайн-учебников. используя iptables, можно проверить определенные правила, которые препятствуют установлению соединения (на приведенном выше снимке экрана соединения, исходящие с исходного IP-адреса 1.2.3.4 с исходным портом 80, удаляются). iptables также предоставляет инфраструктуру ведения журналов, поэтому правило можно добавить с помощью действия LOG (а не DROP или ACCEPT), поэтому, если мы ожидаем увидеть пакет в определенной цепочке, мы можем просто зарегистрировать его и убедиться, что пакет действительно прибыл. туда, где он должен быть.

  1. IP-сосед
    эта команда выводит на экран таблицу arp. всегда помните, что перед отправкой ip-пакета из одной точки в другую отправителю должен быть известен MAC-адрес получателя (фактически это MAC-адрес шлюза в большинстве случаев, когда две конечные точки не связаны напрямую). поэтому всегда стоит проверить таблицу arp на наличие проблем с подключением уровня 2, прежде чем проверять сетевой или транспортный уровень.
    ржание.jpg

  2. коннтрек
    conntrack предоставит вам информацию обо всех соединениях системы, их состоянии и другую полезную информацию.

чтобы увидеть все соединения tcp
conntrack.jpg

каждая запись строки conntrack показывает 2 направления пакета: исходное направление (пакет, который инициировал соединение) и направление ответа. инструмент conntrack может быть очень полезен при отладке сетевых подключений, при проверке состояния TCP-подключения, проверке количества подключений в системе (достижение максимального количества подключений предотвратит установление подключений в будущем) и многого другого.

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

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *