Ошибка: net_ratelimit: N callbacks suppressed

  • 11.08.2017
  • 12 237
  • 0
  • 18.03.2019
  • 12
  • 11
  • 1
Ошибка: net_ratelimit: N callbacks suppressed

В данной статье пойдет речь об информационных сообщениях "net_ratelimit: N callbacks suppressed", которые появляются в логах, их значении и возможных вариантах устранения.

Описание

Где N - это произвольное число. По своей сути - это не ошибка, а механизм ОС Linux, позволяющий избежать DoS атак на систему. Суть его заключается в том, что он ограничивает число сообщений, связанных с работой сети, которые логируются ядром системы (и модулями) за определенный промежуток времени. Пример вывода лога:

[2594907.552623] net_ratelimit: 27902 callbacks suppressed
[2594907.552625] nf_conntrack: nf_conntrack: table full, dropping packet
[2594907.553493] nf_conntrack: nf_conntrack: table full, dropping packet
[2594907.553519] nf_conntrack: nf_conntrack: table full, dropping packet
[2594907.553585] nf_conntrack: nf_conntrack: table full, dropping packet
[2594907.553612] nf_conntrack: nf_conntrack: table full, dropping packet
[2594907.553857] nf_conntrack: nf_conntrack: table full, dropping packet
[2594907.554024] nf_conntrack: nf_conntrack: table full, dropping packet
[2594907.554099] nf_conntrack: nf_conntrack: table full, dropping packet
[2594907.554202] nf_conntrack: nf_conntrack: table full, dropping packet
[2594907.554584] nf_conntrack: nf_conntrack: table full, dropping packet
[2594912.556914] net_ratelimit: 17954 callbacks suppressed
[2594912.556916] nf_conntrack: nf_conntrack: table full, dropping packet
[2594912.557770] nf_conntrack: nf_conntrack: table full, dropping packet
[2594912.558396] nf_conntrack: nf_conntrack: table full, dropping packet
[2594912.558973] nf_conntrack: nf_conntrack: table full, dropping packet
[2594912.559897] nf_conntrack: nf_conntrack: table full, dropping packet
[2594912.560300] nf_conntrack: nf_conntrack: table full, dropping packet
[2594912.560316] nf_conntrack: nf_conntrack: table full, dropping packet
[2594912.560645] nf_conntrack: nf_conntrack: table full, dropping packet
[2594912.560778] nf_conntrack: nf_conntrack: table full, dropping packet
[2594912.561251] nf_conntrack: nf_conntrack: table full, dropping packet

Посмотреть текущие настройки системы можно следующими командами:

# cat /proc/sys/net/core/message_cost
5
# cat /proc/sys/net/core/message_burst
10

Как видно из настроек выше, система позволит записать в лог не более 10 строк за период в 5 секунд. В случае превышения, выведет ошибку net_ratelimit: N callbacks suppressed, т.е. файл message_cost содержит временной интервал в секундах, а файл message_burst - максимальное число сообщений, которые могут быть записаны в лог за этот интервал.

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

# sysctl -w net.core.message_cost=0

Это временное изменение, которое будет действовать до перезагрузки.
Чтобы оно действовало и после перезагрузки, необходимо проделать следующее:

echo "net.core.message_cost = 0" >> /etc/sysctl.conf
sysctl -p

Первой командой мы дописываем в конец файла /etc/sysctl.conf интересующее нас значение параметра net.core.message_cost = 0, а второй применяем новые настройки.

Была ли эта статья Вам полезна?

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

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

Напоминаем Вам, что Ваше сообщение будет опубликовано только после проверки администратором сайта. Обычно это занимает 1-2 рабочих дня.