Дан рекурсивный (разумеется для определённой сети, а не open resolver) Bind версии 9.10.1. Все параметры, касающиеся RRL подробно описаны в
документации, однако вычисление конкретных значений проходит методом тыка.
/* текущая конфигурация */
rate-limit {
ipv4-prefix-length 32;
window 10;
responses-per-second 20;
errors-per-second 5;
nxdomains-per-second 5;
slip 2;
exempt-clients {
192.168.4.0/24;
};
};
Пояснения:
- ipv4-prefix-length 32 - сегментация до индивидуального пользователя, а не подсетками по /24, как по умолчанию.
- errors-per-second 5 и nxdomains-per-second 5 - в более частых ответах SERVFAIL или NXDOMAIN никакой нужды нет.
- exempt-clients - исключения для служебной сети.
- responses-per-second 20 в window 10 секунд - это собственно сама магия. Вычислены эти значения были посредством наблюдения за логами и отловом легитимных запросов, попадающие под RRL. При значениях по умолчанию в RRL лог попадают запросы от:
- Торрент-клиентов
- Smart TV (в особенности LG)
- Различных веб-приложений, интенсивно общающихся с CDN
На данный момент попытки вычислить правильные значения для
responses-per-second и
window привели меня к сидению в Wireshark'e, отслеживая и разглядывая запросы. Возможно, есть какой-то иной, более оптимальный и проверенный способ?