Перейти к содержимому
Калькуляторы

Необходима настройка DNS, 5 тысяч FreeBSD 10, NSD + Unbound

Есть 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 не работает так, как указано в документации.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.