Я установил BIND
сервис на моем сервере CentOS 8 с recursion yes;
конфигурация. Я заметил, что с моего сервера каждый час отправляется очень большой трафик (~ 8 ГБ), и я не мог определить, что является источником этого трафика. затем я изменил названную конфигурацию и отключил рекурсию: recursion no;
после отключения рекурсии и измерения трафика я вижу, что трафик отправки резко упал до менее 200 МБ. теперь мой вопрос в том, как эта рекурсия может вызвать такой большой трафик отправки ?!
Рекурсия означает, что сервер имен отвечает на каждый запрос наилучшим образом, даже для зон, за которые он не отвечает.
Плохая идея включать рекурсию и позволять ему отвечать на любой запрос для каждого клиента без каких-либо ограничений, потому что там будет много идиотов, которые либо захотят использовать другие открытые серверы имен, либо даже попытаются затопить третьи стороны с ответами.
Рекурсия должна быть разрешена только для клиентов, которые этот сервер имен должен активировать как преобразователь. Итак, если у вас есть
recursion yes;
у вас также должно быть ограничение, например:
allow-recursion { 127.0.0.1; x.x.x.x; };
и перечислите все действующие IP-адреса клиентов.
Если этот сервер имен не является основным NS для доменных имен, вы также можете открыть его для ответа на запросы разрешенных клиентов только с
allow-query { 127.0.0.1; x.x.x.x; };
allow-query-cache { 127.0.0.1; x.x.x.x };
Более того, если этот сервер имен отвечает только за несколько клиентов, вам следует подумать о том, чтобы закрыть UDP 53 и TCP 53 для всех остальных IP-адресов с помощью брандмауэра.