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

  • 11.08.2017
  • 5 059
  • 0
  • 18.03.2019
  • 3
  • 2
  • 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 рабочих дня.