Jump to content

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


Recommended Posts

Posted

Есть 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.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...
На сайте используются файлы cookie и сервисы аналитики для корректной работы форума и улучшения качества обслуживания. Продолжая использовать сайт, вы соглашаетесь с использованием файлов cookie и с Политикой конфиденциальности.