Я настраиваю внутренний DNS-кеш, потому что у моего брандмауэра возникают проблемы с обработкой всех сеансов, созданных DNS-запросами. Я пробовал использовать bind9, dnsmasq и DJB dnscache, все они помогают уменьшить количество запросов, покидающих мою сеть, но по-прежнему выполняется много запросов.
Глядя на файлы журнала и выходные данные tcpdump и dnstop, кажется, что запросы, возвращающие SERVFAIL, вообще не кэшируются. И многие из этих неудавшихся запросов являются запросами AAAA, что очень досадно, потому что у меня не включен ipv6 ни на одном сервере.
Я рассмотрел несколько способов исправить ситуацию, и я думаю, что если бы я мог каким-то образом предотвратить пересылку запросов записей AAAA кешем DNS, это значительно уменьшило бы количество запросов.
Самое близкое, что я нашел, было фильтр-аааа-на-v4 вариант в BIND9. Однако это только удаляет запись из ответа сервера и не препятствует его пересылке.
Любая помощь будет оценена.
Я не думаю, что это возможно в любом стандартном преобразователе DNS. Кроме того: сокрытие ответов IPv6 от клиентов может нарушить проверку DNSSEC, в зависимости от того, выполняете ли вы проверку или где именно.
Авторитетный DNS-сервер не должен возвращать SERVFAIL при запросе данных, которых у него нет, поэтому настоящая проблема - это эти серверы. Я лично очень редко вижу такое плохое поведение, но вы, кажется, наблюдаете его чаще. Если есть всего несколько серверов, которые плохо себя ведут, может быть хорошей идеей сообщить об этом оператору или владельцам доменных имен, чтобы они могли исправить это.
Некоторые межсетевые экраны могут обрабатывать определенный трафик без сохранения состояния. Вы можете фильтровать как
internal DNS cache address port > 1024 <--> * port 53
и сделать весь этот трафик без гражданства. Вы не потеряете много защиты, и ваш брандмауэр будет иметь меньшую нагрузку. Честно говоря, я удивлен, что у вашего брандмауэра есть проблемы с обработкой сеансов DNS-запросов. Вы никогда не указывали, какую марку и модель используете. Я сделал это на Juniper SRX 210 для сервера BitTorrent. Если вы думаете, что DNS-запросы вызывают много сеансов ... ;-)
А если ничего не помогает, вы можете перенести работу на внешний преобразователь DNS. Если вы настроите свой DNS-кеш для пересылки всех запросов на внешний преобразователь (на ум приходят преобразователи вашего интернет-провайдера и 8.8.8.8/8.8.4.4), тогда вашему DNS-кешу не придется проходить по самому DNS-дереву, что уменьшит число запросов много.