Ошибка: 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 не будет опубликован. Обязательные поля помечены *