Есть ли способ использовать pfsense в качестве кеширующего DNS-сервера. Он будет разрешать домены, начиная с корневых серверов, и кэшировать их для последующих обращений.
Я попробовал пакет DNS-серверов на pfsense 1.2.2, который, как мне кажется, по умолчанию использует dns-серверы WAN.
Тема на форуме pfSense предлагает установить пакет DNS для tinydns, а затем регулировка размера кеша в соответствии с вашими потребностями.
2-е ОБНОВЛЕНИЕ:
Текущие версии pfSense (2.2+) теперь основаны на FreeBSD 10.X. Сюда входит Unbound в качестве преобразователя. Вы можете указать Unbound на распознаватели в OpenDNS или Google.
[Верно для pfSense 2.1 и ниже]
В pfsense есть DNS-кеш, он называется dnsmasq. Он не запускается с корневых серверов. По умолчанию он принимает DNS от DHCP-сервера WAN, но вы можете переопределить это на веб-странице. Я бы указал в поле на открытый DNS-сервер, например
Google на 8.8.8.8, Level3 на 4.2.2.1, 4.2.2.2 OpenDNS на 208.67.222.222, 208.67.220.220
Корневые серверы заняты, поэтому начинать с них я бы не стал. Используйте адреса выше, и вы получите лучшую производительность.
ОБНОВИТЬ:
На основании комментария ниже, в котором говорится, что dnsmasq не является кешем (неверно, dnsmasq кеширует ответы, а не все типы записей, см. dnsmasq), Я хотел бы отметить, что в pfSense есть еще один пакет, который выполняет полное кэширование DNS. Unbound - это полноценный DNS-преобразователь с поддержкой DNSSEC (подписанные DNS-запросы). Если вам нужен «полный и полный» DNS-кеш, установите его вместо использования dnsmasq (который поставляется по умолчанию).
ПРИМЕЧАНИЕ. При использовании Unbound следует помнить об одном. Если во время обновления системы у вас настроен pfSense на использование только Unbound в качестве преобразователя, DNS не удастся установить, поскольку пакеты не будут установлены до тех пор, пока не будет установлена ОС (но для обновления ОС требуется DNS для получения пакетов). В этом случае убедитесь, что есть резервные DNS-преобразователи, которые pfSense может использовать во время обновления.
Для этого вы можете использовать пакет Unbound.