Назад | Перейти на главную страницу

Привязать ограничение скорости DNS и значения для ответов в секунду и окна

В моем DNS-сервере named.conf я вижу

    rate-limit {
            responses-per-second 5;
            window 5;
    };

Что это на самом деле означает? И может ли это вызвать проблемы у DNS-клиентов? Это слишком тесная конфигурация?

Вы должны прочитать справочное руководство администратора для BIND 9.9.

В принципе, responses-per-second - количество идентичных ответов, которые могут быть отправлены одному адресату в секунду. Определения хитрые.

Единый пункт назначения - это блокировать сетевых адресов, размер настроен в ipv4-prefix-length или ipv6-prefix-length применимо. Итак, если ipv4-prefix-length 24 года, и оба 192.0.2.1 и 192.0.2.2 запрашивают DNS-сервер, они разделяют эту квоту и могут отправлять только определенное количество запросов между ними двумя.

Идентичные ответы - это ответы на запросы для определенного типа RR для конкретного существующего имени или для несуществующего имени. Следующие запросы все разные:

IN A example.net.
IN A www.example.net.
IN AAAA example.net.
IN A nonexistent.domain.example.net.

Однако все следующие запросы идентичны (при условии, что nonexistent.domain.example.net. и т.д. соответствуют своим названиям):

IN A nonexistent.domain.example.net.
IN A nonexistent.domain2.example.net.
IN SOA other.nonexistent.domain.example.net.

window еще больше усложняет ситуацию. Это количество секунд, на которое может быть сохранена квота. Умножение window и responses-per-second дает максимум, при котором любая квота может быть положительной, или, говоря более простым языком, пакетная емкость.

Чтобы дать всеобъемлющий пример:

Вы - неповторяющийся авторитетный сервер имен для example.net.. Представьте, что трафик DNS вообще не наблюдался за последние 10 секунд, а конфигурация в вопросе применяется глобально. Последовательно происходят следующие события:

  1. Хост 198.51.100.1 отправляет 100 запросов для IN NS example.net.. 25 будут разрешены, а остальные 75 будут проигнорированы.
  2. Хост 198.51.100.1 отправляет 100 запросов для IN A nonexistent.example.net.. 25 будут разрешены, а остальные 75 будут проигнорированы.
  3. Хост 198.51.100.1 отправляет 1 запрос для IN MX nonexistent-domain.example.net. Он будет проигнорирован, поскольку достигнут предел для несуществующих доменов.
  4. Хост 198.51.100.1 отправляет 1 запрос для IN A example.net.. Это разрешено.
  5. Хосты с 192.0.2.1 по 192.0.2.50 каждый отправляют один запрос для IN NS example.net.. 25 из них получают ответы, а остальные 25 игнорируются; квота 198.51.100.0/24 не применяется к этим хостам, но они разделяют квоту на 192.0.2.0/24.
  6. Проходит одна секунда
  7. Хосты с 192.0.2.26 по 192.0.2.50 повторяют свой запрос IN NS example.net.. 5 из них получают ответы, а остальные 20 игнорируются, поскольку квота пополняется только на 5 запросов в секунду.

Он ограничивает количество идентичных ответов, которые один DNS-клиент может получить за секунду. В window 5 опция позволяет пачку ответов 5 * 5.

«Идентичные ответы» и «единый DNS-клиент» - здесь несколько неочевидные термины, подробнее читайте здесь: http://web.archive.org/web/20140209100744/http://ss.vix.su/~vjs/rl-arm.html .

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

iptables -A INPUT -p udp --dport 53 -m recent --set --name dnslimit
iptables -A INPUT -p udp --dport 53 -m recent --update --seconds 60 --hitcount 11 --name dnslimit -j DROP 

IPtables тоже может работать. Полностью исключает доступ трафика к службе в случае обнаружения атаки.

Я не думаю, что это хорошая идея - ограничивать скорость, спросите себя: вы тоже ограничиваете скорость ответов веб-сервера? Как вы думаете, почему ответы DNS менее важны, чем ответы веб-сервера?
И даже если вы ограничите скорость, эти 5 запросов в секунду звучат очень низко.