alibek Posted November 1, 2014 · Report post Есть DNS-сервер под управлением FreeBSD 10. На нем работает авторитетный сервер NSD на порту 5353 и ресолвер (кеширующий+рекурсивный) Unbound на порту 53. Авторитетный обслуживает две зоны, mydomain.ru (интернет) и mydomain.local (интранет) и соответствующие им обратные зоны в подсетях xx.yy.0.0/16 и 10.0.0.0/8, настроен примерно так: server: port: 5353 zone: name: "mydomain.local." zonefile: "zones/zone-service" zone: name: "mydomain.ru." zonefile: "zones/zone-public" zone: name: "10.in-addr.arpa." zonefile: "zones/reverse-service" zone: name: "in-addr.arpa." zonefile: "zones/reverse-public" Запросы из внешних сетей поступают на авторитетный сервер; файрвол пакеты на порт 53 транслирует на порт 5353, а ответы с порта 5353 транслирует с порта 53. Ресолвер внешние подсети не обслуживает, только свои подсети (публичные и приватные), настроен примерно так: server: port: 53 root-hints: "/etc/named/named.cache" access-control: 0.0.0.0/0 refuse access-control: 10.0.0.0/8 allow access-control: xx.yy.0.0/16 allow do-not-query-address: 127.0.0.0/8 do-not-query-address: ::1 do-not-query-localhost: yes #private-domain: "mydomain.local." local-zone: "10.in-addr.arpa." nodefault local-zone: "yy.xx.in-addr.arpa." nodefault local-zone: "mydomain.local." nodefault local-zone: "mydomain.ru." nodefault stub-zone: name: "mydomain.local." stub-addr: 10.1.128.12@5353 stub-zone: name: "10.in-addr.arpa." stub-addr: 10.1.128.12@5353 stub-zone: name: "mydomain.ru." stub-addr: 10.1.128.12@5353 stub-zone: name: "yy.xx.in-addr.arpa." stub-addr: 10.1.128.12@5353 Запросы на свои зоны пересылаются в NSD (10.1.128.12:5353), все остальное ресолвится и кешируется. Ресолвер работает, но его ответы для своей зоны не авторитетны. Вот вывод dig: # dig @10.1.128.12 srv-test.mydomain.local ; <<>> DiG 9.9.4-P2 <<>> @10.1.128.12 srv-test.mydomain.local ; (1 server found) ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 21207 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 3, ADDITIONAL: 4 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;srv-test.mydomain.local. IN A ;; ANSWER SECTION: srv-test.mydomain.local. 3600 IN A 10.1.128.9 ;; AUTHORITY SECTION: mydomain.local. 3600 IN NS ns.mydomain.local. mydomain.local. 3600 IN NS ns01.mydomain.local. mydomain.local. 3600 IN NS ns02.mydomain.local. ;; ADDITIONAL SECTION: ns.mydomain.local. 3600 IN A 10.1.128.12 ns01.mydomain.local. 3600 IN A 10.1.128.11 ns02.mydomain.local. 3600 IN A 10.1.128.12 ;; Query time: 5 msec ;; SERVER: 10.1.128.12#53(10.1.128.12) ;; WHEN: Sat Nov 01 16:09:47 MSK 2014 ;; MSG SIZE rcvd: 171 А вот ответ от авторитетного сервера (установлен флаг aa): # dig @10.1.128.12 -p 5353 srv-test.mydomain.local ; <<>> DiG 9.9.4-P2 <<>> @10.1.128.12 -p 5353 srv-test.mydomain.local ; (1 server found) ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 56000 ;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 3, ADDITIONAL: 4 ;; WARNING: recursion requested but not available ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;srv-test.mydomain.local. IN A ;; ANSWER SECTION: srv-test.mydomain.local. 3600 IN A 10.1.128.9 ;; AUTHORITY SECTION: mydomain.local. 3600 IN NS ns.mydomain.local. mydomain.local. 3600 IN NS ns01.mydomain.local. mydomain.local. 3600 IN NS ns02.mydomain.local. ;; ADDITIONAL SECTION: ns.mydomain.local. 3600 IN A 10.1.128.12 ns01.mydomain.local. 3600 IN A 10.1.128.11 ns02.mydomain.local. 3600 IN A 10.1.128.12 ;; Query time: 2 msec ;; SERVER: 10.1.128.12#5353(10.1.128.12) ;; WHEN: Sat Nov 01 16:20:07 MSK 2014 ;; MSG SIZE rcvd: 171 Необходимо сделать так, чтобы Unbound возвращал авторитетные ответы для своей зоны, которые он получает от авторитетного сервера (прописывание local-data не подходит). Бюджет 5 тысяч. Доступ к серверу предоставить не могу. Могу предоставить полный набор настроечных файлов для NSD и Unbound (полная конфигурация, файлы зон, окружение и т.п.). Бесплатные советы приветствуются — я бы сам такое сделал, если бы понял, почему local-zone не работает так, как указано в документации. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...