Jump to content

Recommended Posts

Posted

Столкнулся со странным поведением DNS-сервера.

 

Есть такая конфигурация:

server:
       port: 5353
...
pattern:
       name: "public"
       rrl-whitelist: nxdomain

zone:
       name: "domain.ru."
       zonefile: "zones/zone-public"
       include-pattern: "public"

zone:
       name: "domain.com.ru."
       zonefile: "zones/zone-public"
       include-pattern: "public"

 

И такая зона:

$TTL 1h

@   IN SOA    ns root    (20141031001 1d 6h 1w 1h)
      NS     ns
      NS     ns01
      NS     ns02
      A      127.0.0.1
ns     A      aa.aa.aa.1
ns01   A      aa.aa.aa.1
ns02   A      aa.aa.aa.124
...
test           A     aa.aa.aa.99
*.test         CNAME test
...
domain.com.ru.     A     aa.aa.aa.100
                  MX 10 mx.yandex.ru.
www.domain.com.ru. CNAME domain.com.ru.
...
mail.domain.ru.    CNAME ghs.l.google.com.
...

 

Зоны domain.ru и domain.com.ru идентичны, за исключением того, что в есть несколько записей, которые присутствуют в одной зоне и отсутствуют в другой зоне.

При старте сервиса в логах появляются записи типа "error: zones/zone-public:42: out of zone data", поскольку RR с полным именем в данном случае выходит за пределы зоны. Но насколько я понимаю, в этом случае подобные записи игнорируются, что меня устраивает.

 

Однако странность заключается в следующем.

 

# dig @10.1.128.12 -p 5353 test.domain.ru

; <<>> DiG 9.10.2 <<>> @10.1.128.12 -p 5353 test.domain.ru
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 24443
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 5, ADDITIONAL: 4
;; WARNING: recursion requested but not available

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;test.domain.ru.                        IN      A

;; ANSWER SECTION:
test.domain.ru.         3600    IN      A       aa.aa.aa.99

;; AUTHORITY SECTION:
domain.ru.              3600    IN      NS      ns.domain.ru.
domain.ru.              3600    IN      NS      ns01.domain.ru.
domain.ru.              3600    IN      NS      ns02.domain.ru.

;; ADDITIONAL SECTION:
ns.domain.ru.           3600    IN      A       aa.aa.aa.1
ns01.domain.ru.         3600    IN      A       aa.aa.aa.1
ns02.domain.ru.         3600    IN      A       aa.aa.aa.124

;; Query time: 0 msec
;; SERVER: 10.1.128.12#5353(10.1.128.12)
;; WHEN: ср апр 08 17:39:55 MSK 2015
;; MSG SIZE  rcvd: 208


# dig @10.1.128.12 -p 5353 test.domain.com.ru

; <<>> DiG 9.10.2 <<>> @10.1.128.12 -p 5353 test.domain.com.ru
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: REFUSED, id: 36173
;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1
;; WARNING: recursion requested but not available

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;test.domain.com.ru.             IN      A

;; Query time: 0 msec
;; SERVER: 10.1.128.12#5353(10.1.128.12)
;; WHEN: ср апр 08 17:40:15 MSK 2015
;; MSG SIZE  rcvd: 46

 

Почему запрос на test.domain.ru выполняется, а на test.domain.com.ru не выполняется?

Posted

У меня на одном сервере все еще BIND работает, там все хорошо.

Но он тяжелый и не без глюков.

Поэтому я его заменяю на связку NSD/Unbound.

Связка работает лучше, но иногда вылезают особенности, как сейчас.

Posted

Поэтому я его заменяю на связку NSD/Unbound.

Связка работает лучше, но иногда вылезают особенности, как сейчас.

 

Это ваши проблемы. bind работает как часы в самых разнообразных схемах использования.

Posted

NSD рулез - 224 000 зон в режиме авторитативного сервера, выкидывайте Bind на свалку (на 30 000 доменов он у меня загржался 30 минут - это норм вообще? Я уже молчу про спорадические зависания и адо-подобные конфиги).

 

NSD выкидывает зону целиком, да - там компилятор зон так устроен. Но прежде чем коммитить изменения в файл зоны - не мешало бы его проверять спец тулзой от nsd - zone_checker, она в коде лежит. Она сильно жестче к ошибкам и бреду нежели похожая тулза от named.

Posted

NSD выкидывает зону целиком, да - там компилятор зон так устроен.

Странно, почему же тогда первая зона ресолвится?

Что ж, видимо придется использовать разные файлы зон для разных зон.

В BIND было удобно, что он может игнорировать отдельные RR, а не зону целиком.

Posted

NSD рулез - 224 000 зон в режиме авторитативного сервера, выкидывайте Bind на свалку (на 30 000 доменов он у меня загржался 30 минут - это норм вообще? Я уже молчу про спорадические зависания и адо-подобные конфиги).

 

А теперь подскажите, скольки организациям в стране надо обслуживать овер 200K зон?

 

Файлы зон можно положить на ssd, сами зоны положить в LDAP или Mysql. И потом правильно организовать обновление зон, а не использовать опцию restart.

Posted

 

А теперь подскажите, скольки организациям в стране надо обслуживать овер 200K зон?

То есть те, кому не надо 200к зон, должны использовать бинд просто потому что?

Posted

 

А теперь подскажите, скольки организациям в стране надо обслуживать овер 200K зон?

То есть те, кому не надо 200к зон, должны использовать бинд просто потому что?

 

А потому что некорректная постановка задачи.

bind - стандарт в ДНС.

Posted
bind - стандарт в ДНС.

А с чего бы это вдруг бинд стал стандартом? То что он в той же фре до 10 версии шел в комплекте? :)

То что он просто популярный - от этого стал стандартом?

Posted
То что он просто популярный - от этого стал стандартом?

1. Раньше альтернатив не было.

2. Его пилит ISC, у них основная задача 100% следовать RFC, остальное вторично.

Posted

Присоединюсь к советующим выкинуть NSD и поставить BIND. У меня на нём NS-ы, обслуживающие ~300к зон: никаких проблем, кроме долгой загрузки. Стартует примерно 20 минут на sata 7200 дисках, и это понятно - ему нужно кучу файлов пропарсить.

Posted

А какие проблемы с NSD-то? Не парсить битый конфиг зоны - это с каких времен стало серьезной проблемой? На NSD работает 90% root-dns. И лишь от силы 10% на Бинде. По-моему, лучшего краш теста и сравнения "кто лучше и надежнее" не придумать.

 

Тот же L-root целиком и полностью NSD: http://www.dns.icann.org/index.html%3Fp=3.html тоже самое по K http://k.root-servers.org. Bind - это жуткое нагромождение крапа в коде, огромное количество совеершенно не нужных авторитативнику функций и пагубное по дизайну совмещение рекурсора и авторитативника.

Posted

Не нужно меня агитировать за NSD.

У меня используется оба варианта (BIND и NSD/Unbound) и связка NSD/Unbound мне нравится больше.

Но вот то, что он выкидывает зону целиком, это неудобно в моем случае.

У меня одна зона почти полностью должна повторять другую зону (за некоторыми исключениями), а из-за такой особенности я не могу использовать один файл на обе зоны.

BIND удобен для тестовых и временных схем, именно тем, что у него все в одном и все мыслимые возможности.

 

P.S. А почему authoritative называют "авторитативным"? Ведь это "авторитетный".

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 и с Политикой конфиденциальности.