Сетевое активность прекращается каждые 45 секунд.

Вопрос или проблема

У меня есть много серверов на Linux, в большинстве своем это debian 10-11-12, на некоторых из них (я бы сказал, примерно на 20% из них) сетевая активность останавливается через фиксированные интервалы (обычно 45 секунд). Под «остановкой» я подразумеваю, что rx/tx точно такие же, как и в предыдущую секунду:

cat /sys/class/net/eno1/statistics/rx_bytes
cat /sys/class/net/eno1/statistics/tx_bytes

Я заметил это только после внедрения мониторинга из-за некоторых жалоб, которые у меня были. Теперь я не могу найти виновника. Я пытался сделать дельту процессов, подозревая что-то вроде cron, но у меня ничего нет. Cron отключен, я не вижу ничего подозрительного.

Куда вы предлагаете мне смотреть, чтобы я мог обнаружить, что вызывает это?

Обновления для большей информации:

lspci | grep -E -i --color 'network|ethernet'
01:00.0 Ethernet controller: Broadcom Inc. and subsidiaries NetXtreme BCM5720 Gigabit Ethernet PCIe
01:00.1 Ethernet controller: Broadcom Inc. and subsidiaries NetXtreme BCM5720 Gigabit Ethernet PCIe
02:00.0 Ethernet controller: Broadcom Inc. and subsidiaries NetXtreme BCM5720 Gigabit Ethernet PCIe
02:00.1 Ethernet controller: Broadcom Inc. and subsidiaries NetXtreme BCM5720 Gigabit Ethernet PCIe
root@debian:~# ip monitor dev eno1
xxx.xx.x.1 FAILED
xxx.xx.x.1 FAILED
xxx.xx.x.1 FAILED
xxx.xx.x.0 FAILED
xxx.xx.x.1 FAILED
xxx.xx.x.0 FAILED
xxx.xx.x.1 FAILED
xxx.xx.x.0 FAILED
xxx.xx.x.1 FAILED
xxx.xx.x.0 FAILED
xxx.xx.x.0 FAILED
xxx.xx.x.0 FAILED
xxx.xx.x.1 FAILED
xxx.xx.x.0 FAILED
xxx.xx.x.0 FAILED
xxx.xx.x.0 FAILED
xxx.xx.x.1 FAILED
xxx.xx.x.0 FAILED
xxx.xx.x.0 FAILED
xxx.xx.x.1 FAILED
xxx.xx.x.1 FAILED
xxx.xx.x.0 FAILED
xxx.xx.x.1 FAILED
xxx.xx.x.1 FAILED

journalctl --system -b -x не показывает ничего во время этих событий.

ip link show

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000
    link/ether 51:9f:35:18:22:90 brd ff:ff:ff:ff:ff:ff
    altname enp1s0f0
3: eno2: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
    link/ether 51:9f:35:18:22:91 brd ff:ff:ff:ff:ff:ff
    altname enp1s0f1
4: eno3: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
    link/ether 51:9f:35:18:22:92 brd ff:ff:ff:ff:ff:ff
    altname enp2s0f0
5: eno4: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
    link/ether 51:9f:35:18:22:93 brd ff:ff:ff:ff:ff:ff
    altname enp2s0f1
9: wg0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1420 qdisc fq_codel state UNKNOWN mode DEFAULT group default qlen 500
    link/none

и

ethtool eno1

Settings for eno1:
    Supported ports: [ TP ]
    Supported link modes:   10baseT/Half 10baseT/Full
                            100baseT/Half 100baseT/Full
                            1000baseT/Half 1000baseT/Full
    Supported pause frame use: No
    Supports auto-negotiation: Yes
    Supported FEC modes: Not reported
    Advertised link modes:  10baseT/Half 10baseT/Full
                            100baseT/Half 100baseT/Full
                            1000baseT/Half 1000baseT/Full
    Advertised pause frame use: No
    Advertised auto-negotiation: Yes
    Advertised FEC modes: Not reported
    Link partner advertised link modes:  10baseT/Half 10baseT/Full
                                         100baseT/Half 100baseT/Full
                                         1000baseT/Full
    Link partner advertised pause frame use: Symmetric Receive-only
    Link partner advertised auto-negotiation: Yes
    Link partner advertised FEC modes: Not reported
    Speed: 1000Mb/s
    Duplex: Full
    Auto-negotiation: on
    Port: Twisted Pair
    PHYAD: 1
    Transceiver: internal
    MDI-X: off
    Supports Wake-on: g
    Wake-on: d
        Current message level: 0x000000ff (255)
                               drv probe link timer ifdown ifup rx_err tx_err
    Link detected: yes

Похоже, что скорость вашего сетевого адаптера установлена на “auto“, и по каким-то причинам (погружаясь в детали) каждые 45 секунд сетевые адаптеры заново оговаривают скорость соединения. В это время пакеты не проходят через соединение.

Проверьте свою скорость соединения с помощью

ip link show

и, выбрав скорость, используйте

ip link set dev XXX speed YYY

(‘XXX’ — имя устройства, а ‘YYY’ — выбранная вами скорость).

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

Конечно, прочитайте man ip ip-link. Если на ваших системах нет ip, вы можете, вероятно, решить проблему с помощью ifconfig, прочитайте man ifconfig.

Запустите на одной из ваших проблемных машин

tcpdump -n -i eno1 broadcast or stp

и ищите любые штормы широковещательной рассылки STP.

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

Ответ или решение

Проблема с сетью: Остановка активности на 45 секунд

Вы столкнулись с проблемой, когда активность сети на ваших Linux-серверах останавливается с фиксированным интервалом – каждые 45 секунд. Это может вызывать значительные неудобства и требует тщательного анализа с целью выявления причин. Рассмотрим, какие шаги стоит предпринять для диагностики и решения проблемы.

1. Проверка работы сетевого интерфейса

Сначала необходимо удостовериться, что сетевая карта функционирует корректно. Команда ip link show показала, что интерфейс eno1 находится в состоянии UP. Однако стоит проверить, действительно ли происходит автоопределение скорости и дуплекса. Вы можете использовать команду:

ethtool eno1

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

ip link set dev eno1 speed 1000
ip link set dev eno1 duplex full

Проверяйте документацию (man ip ip-link или man ifconfig), чтобы убедиться в правильности применяемых параметров.

2. Мониторинг событий сети

Запустите tcpdump, чтобы отслеживать серверный трафик и выявить возможные STP (Spanning Tree Protocol) или другие широковещательные проблемы:

tcpdump -n -i eno1 broadcast or stp

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

3. Системные журналы

Хотя вы уже проверили журналы командой journalctl --system -b -x, убедитесь, что проверяете все уровни логирования и не пропустили критические сообщения. Используйте фильтры для поиска ошибок, связанных с сетью:

journalctl -k | grep -i error

4. Проверка автоматических задач

Вы упомянули, что cron отключён, однако стоит проверить другие возможные автоматические процессы. Используйте команды systemctl list-timers и atq для проверки, не запускаются ли отложенные команды или таймеры системы.

5. Поиск аппаратных неисправностей

Некорректная работа сетевой карты может также стать причиной остановки трафика. Рассмотрите возможность:

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

6. Мониторинг сетевой активности

Если проблема сохраняется, попробуйте использовать специализированные инструменты для мониторинга сети, такие как nload, iftop или vnstat, которые позволяют отслеживать использование полосы пропускания и могут дать подсказки о том, как именно ведёт себя сеть.

Заключение

Проблема с остановкой сетевой активности может быть вызвана рядом факторов — от некорректной настройки интерфейса, изменений на уровне STP до аппаратных неисправностей. Проводя систематическое расследование с помощью вышеописанных методов, вы сможете pinpoint, где именно кроется проблема, и устранить её. Не забывайте также о документировании всех изменений во избежание появления подобных неполадок в будущем.

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

Капча загружается...