Рейтинг:-1

Получение SERVFAIL/NOTAUTH при передаче зоны — ISC BIND 9

флаг ma

У меня есть два сервера BIND, на которых работает BIND 9:

BIND 9.11.36-RedHat-9.11.36-3.el8 (версия с расширенной поддержкой) <id:68dbd5b>
работает в Linux x86_64 4.18.0-372.9.1.el8.x86_64 #1 SMP Вт, 10 мая, 08:57:35 по восточному поясному времени 2022 г.
собрано make с помощью '--build=x86_64-redhat-linux-gnu' '--host=x86_64-redhat-linux-gnu' '--program-prefix=' '--disable-dependency-tracking' '-- prefix=/usr' '--exec-prefix=/usr' '--bindir=/usr/bin' '--sbindir=/usr/sbin' '--sysconfdir=/etc' '--datadir=/usr /share' '--includedir=/usr/include' '--libdir=/usr/lib64' '--libexecdir=/usr/libexec' '--sharedstatedir=/var/lib' '--mandir=/usr /share/man' '--infodir=/usr/share/info' '--with-python=/usr/libexec/platform-python' '--with-libtool' '--localstatedir=/var' '- -enable-threads' '--enable-ipv6' '--enable-filter-aaaa' '--with-pic' '--disable-static' '--includedir=/usr/include/bind9' '-- with-tuning=large' '--with-libidn2' '--enable-openssl-hash' '--with-geoip2' '--enable-native-pkcs11' '--with-pkcs11=/usr/lib64/ pkcs11/libsofthsm2.so' '--with-dlopen=yes' '--with-dlz-ldap=yes' '--with-dlz-postgres=yes' '--with-dlz-mysql=yes' '- -with-dlz-filesystem=yes' '--with-dlz-bdb=yes' '--with-gssapi=yes' '--disable-isc-spnego' '--with-lmdb=no' '-- с-libjson' ' --enable-dnstap' '--with-cmocka' '--enable-fixed-rrset' '--with-docbook-xsl=/usr/share/sgml/docbook/xsl-stylesheets' '--enable-full -report' 'build_alias=x86_64-redhat-linux-gnu' 'host_alias=x86_64-redhat-linux-gnu' 'CFLAGS= -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 - Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin -cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection' 'LDFLAGS=-Wl,-z,relro -Wl,-z,now -specs=/usr/lib/ rpm/redhat/redhat-hardened-ld' 'CPPFLAGS= -DDIG_SIGCHASE' 'PKG_CONFIG_PATH=:/usr/lib64/pkgconfig:/usr/share/pkgconfig'
скомпилировано GCC 8.5.0 20210514 (Red Hat 8.5.0-10)
скомпилировано с версией OpenSSL: OpenSSL 1.1.1k FIPS 25 марта 2021 г.
ссылка на версию OpenSSL: OpenSSL 1.1.1k FIPS 25 марта 2021 г.
скомпилировано с версией libxml2: 2.9.7
связана с версией libxml2: 20907
скомпилировано с версией libjson-c: 0.13.1
связано с версией libjson-c: 0.13.1
скомпилировано с версией zlib: 1.2.11
связано с версией zlib: 1.2.11
связана с версией maxminddb: 1.2.0
скомпилировано с версией protobuf-c: 1.3.0
связано с версией protobuf-c: 1.3.0
поддержка потоков включена

пути по умолчанию:
  именованная конфигурация: /etc/named.conf
  Конфигурация rndc: /etc/rndc.conf
  Корневой ключ DNSSEC: /etc/bind.keys
  Ключ сеанса nsupdate: /var/run/named/session.key
  именованный файл PID: /var/run/named/named.pid
  именованный файл блокировки: /var/run/named/named.lock
  геоIP-каталог: /usr/share/GeoIP

Главный сервер находится по адресу 172.16.19.243, а дополнительный — по адресу 172.16.19.251. Они могут пинговать друг друга, и порт 53 (UDP и TCP) открыт на обоих. Раньше оба работали, но в нашу автоматизацию ввели новый код, и оба потеряли доступ к сети примерно на два часа. Возможно конфигурация была изменена.

Вторичный не показывает файлы зон в /etc/named/. Передача зоны не удалась:

Вторичный DNS-сервер с именем [546308]: общее: информация: зона 19.16.172.in-addr.arpa/IN: обновление: неожиданный rcode (SERVFAIL) от мастера 172.16.19.251#53 (источник 0.0.0.0#0)

/var/log/named/zone_transfers на основном шоу:

xfer-out: информация: клиент @0x7f48600ebf90 69.61.12.108#47302 (ns4.mydomain.example): неверный запрос на передачу зоны: 'ns4.mydomain.example/IN': неавторизованная зона (NOTAUTH)
... через 3 дня происходит отключение, но логи не появляются...
...через несколько часов после отключения и повторяющееся по сей день...
notify: info: zone mydomain.example/IN: отправка уведомлений (серийный номер 2022051909)
уведомление: информация: зона 19.16.172.in-addr.arpa/IN: отправка уведомлений (серийный номер 2022051909)
уведомление: информация: зона 16.16.172.in-addr.arpa/IN: отправка уведомлений (серийный номер 2022051909)
уведомление: информация: зона 17.16.172.in-addr.arpa/IN: отправка уведомлений (серийный номер 2022051909)
уведомление: информация: зона 18.16.172.in-addr.arpa/IN: отправка уведомлений (серийный номер 2022051909)

Проблема не решается запуском rndc ретрансфер mydomain.example. Запрос AXFR с помощью dig также завершается ошибкой:

копать -t axfr mydomain.example 172.16.19.243

; <<>> DiG 9.11.36-RedHat-9.11.36-3.el8 <<>> -t axfr mydomain.example 172.16.19.243
;; глобальные параметры: +cmd
; Передача не удалась.
; Передача не удалась.

Запрос записей A и PTR из Интернета для мастер-работ. Делать то же самое со вторичным теперь не удается:

копать @172.16.19.251 191.19.16.172.in-addr.arpa ptr

; <<>> DiG 9.18.2 <<>> @172.16.19.251 191.19.16.172.in-addr.arpa ptr
; (найден 1 сервер)
;; глобальные параметры: +cmd
;; Получил ответ:
;; ->>HEADER<<- код операции: QUERY, статус: SERVFAIL, id: 57626
;; флаги: qr rd; ЗАПРОС: 1, ОТВЕТ: 0, АВТОРИЗАЦИЯ: 0, ДОПОЛНИТЕЛЬНО: 1
;; ВНИМАНИЕ: рекурсия запрошена, но недоступна

;; ДОПОЛНИТЕЛЬНЫЙ ПСЕВДОРАЗДЕЛ:
; ЭДНС: версия: 0, флаги:; УДП: 1232
; COOKIE: 204e72e23787aef415f9ec7562866219e93a158c23f1f323 (хорошо)
;; РАЗДЕЛ ВОПРОСОВ:
;191.19.16.172.in-addr.arpa. В ПТР

;; Время запроса: 48 мс
;; СЕРВЕР: 172.16.19.251#53(172.16.19.251) (UDP)
;; КОГДА: Чт, 19 мая, 10:28:39 CDT 2022 г.
;; РАЗМЕР MSG rcvd: 83

Файл /etc/named.conf мастера показан ниже:

параметры {
        разрешить запрос {
          никто;
        };
        разрешить передачу {
          никто;
        };
        рекурсия нет;

        auth-nxdomain нет; # соответствует RFC1035
        минимальные ответы да;
        минимальный-любой да;
        dnssec-включить да;
        dnssec-валидация да;
};

зона "." В {
        тип подсказки;
        файл "named.ca";
};

включить "/etc/named.rfc1912.zones";
включить "/etc/named.root.key";

//Системные зоны
зона "mydomain.example" В {
  тип мастер;
  файл "/etc/named/mydomain.example.db";
  разрешить запрос {любой;
  };
  разрешить передачу {
    локальный хост;
    172.16.19.243;
  };
  уведомлять да;
};

зона "16.16.172.in-addr.arpa" IN {
  тип мастер;
  файл "/etc/named/16.16.172.in-addr.arpa.rev";
  разрешить запрос {любой;
  };
  разрешить передачу {
    локальный хост;
    172.16.19.243;
  };
  уведомлять да;
};
// Зоны для 17 - 19 включены в конфиг *точно* такого же формата. Генерируется программно - если есть
// здесь опечатка, значит есть во всех. Передача зон не работает.

/etc/named/16.16.172.in-addr.arpa.rev на мастере выглядит следующим образом:

86400 долларов США

@ В SOA ns3.mydomain.example. admin.mydomain.example. (
                                                2022051917 ;Серийный номер
                                                3600 ;Обновить
                                                1800 ;Повторить
                                                604800 ;Срок действия
                                                86400 ;Минимальный TTL
)

;; Все записи зоны NS
@ В NS ns3.mydomain.example.
@ В NS ns4.mydomain.example.

;; Все записи PTR зоны

* В PTR HDN-UIDO

Опять же, поиск DNS для любой записи не работает на вторичном сервере, но все работает на главном. Перенос зон с главного на вторичный невозможен. Все зоны и конфигурации генерируются программно, поэтому если ошибка в одной зоне, то она будет присутствовать во всех. Других заметных ошибок в логах не обнаружено. Нет отказов SELinux ни на одном из серверов. Права доступа /etc/named/ равны 0770 root:named system_u:object_r:named_conf_t:s0 на обоих серверах. Удаление всех файлов .jnl не помогло (на мастере был только один, а не в /etc/named).

Что может быть причиной? Спасибо.

РЕДАКТИРОВАТЬ 5/19
Я подтвердил, что оба сервера имеют 53/UDP и 53/TCP, открытые друг для друга.

Из вторичного:

dig @172.16.19.243 +tcp 200.18.16.172.in-addr.arpa ptr

; <<>> DiG 9.11.36-RedHat-9.11.36-3.el8 <<>> @172.16.19.243 +tcp 200.18.16.172.in-addr.arpa ptr
; (найден 1 сервер)
;; глобальные параметры: +cmd
;; Получил ответ:
;; ->>HEADER<<- код операции: QUERY, статус: NOERROR, id: 6246
;; флаги: qr aa rd; ЗАПРОС: 1, ОТВЕТ: 1, ПОЛНОМОЧИЯ: 0, ДОПОЛНИТЕЛЬНО: 1
;; ВНИМАНИЕ: рекурсия запрошена, но недоступна

;; ДОПОЛНИТЕЛЬНЫЙ ПСЕВДОРАЗДЕЛ:
; ЭДНС: версия: 0, флаги:; УДП: 1232
; КУКИ: a9c777930fc7d210a2b794de6286b88d1d5f01b2a729a2f5 (хорошо)
;; РАЗДЕЛ ВОПРОСОВ:
;200.18.16.172.in-addr.arpa. В ПТР

;; РАЗДЕЛ ОТВЕТОВ:
200.18.16.172.in-addr.arpa. 86400 IN PTR EHB-DYN.18.16.172.in-addr.arpa.

;; Время запроса: 0 мс
;; СЕРВЕР: 172.16.19.243#53(172.16.19.243)
;; КОГДА: Чт, 19 мая, 16:37:15 CDT 2022 г.
;; РАЗМЕР MSG rcvd: 110

именованная контрольная зона использовался для проверки всех зон. Единственная проблема, о которой сообщалось, заключалась в отсутствии записи для NS4, на что также указывалось в комментариях. Я обратил на это внимание и изменил его на серверах, но это изменение не попало в этот вопрос, когда я его писал. В любом случае это не решило проблему. named-checkconf был запущен на обоих серверах, и оба вернули статус 0.

Подчиненный сервер имеет несколько адресов, но он использует правильный (показанный) адрес для запроса ведущего, что подтверждается перехватом пакетов на ведущем.

Запись A удалена из файла конфигурации обратной зоны. Фрагмент файла выше является точным.

Patrick Mevzek avatar
флаг cn
Вы не забыли открыть TCP/53 между ними, так как AXFR использует TCP, а не UDP. Также `ping` не является подходящим инструментом для устранения проблем с DNS. `копать` есть. И вы можете использовать его опцию `+tcp`, чтобы заставить TCP видеть, работают ли обычные запросы или нет. Помимо этого `NOTAUTH` появляется для запросов к зонам, для которых сервер не является полномочным, а `SERVFAIL` должен инициировать подробности в файлах журналов. PS: пожалуйста, не запутывайте сильно. Используйте `example.com` или TLD `.example`, если вам нужен заполнитель (но вопросы с реальными данными всегда лучше и дают лучшие ответы).
Patrick Mevzek avatar
флаг cn
«Удаление всех файлов .jnl не помогло». Конечно, не делайте такие вещи случайным образом в запущенном экземпляре привязки.Посмотрите на `rndc` и его команды `заморозить` и `разморозить`. Используйте также `named-checkconf` и `named-checkzone`, чтобы оценить достоверность ваших файлов. В вашей обратной зоне есть по крайней мере одна повторяющаяся строка (`NS ns3` появляется дважды), и вы не можете иметь `ns3 A` в обратной зоне, это не имеет смысла (как определено, это означает, что имя `ns3. 16.16.172.in-addr.arpa`, что, конечно же, не то, что вы хотели).
Nikita Kipriyanov avatar
флаг za
На самом деле, правильный способ удалить файл .jnl — запустить `rndc sync -clean `.
Nikita Kipriyanov avatar
флаг za
Итак, где конфиг слейва? Кроме того, возможно, ведомое устройство имеет несколько IP-адресов и использует неправильный адрес для исходящих подключений к ведущему устройству?
Nikita Kipriyanov avatar
флаг za
Также ваша зона выглядит странно. Если имена всех NS-серверов принадлежат этой зоне, все они должны иметь записи A в этой зоне, не только ns3, но и ns4. Кроме того, из любопытства, чего вы хотите добиться с помощью подстановочной записи PTR в «форвардной» зоне?
vpseg avatar
флаг ma
Спасибо @PatrickMevzek и Никите Киприянову, я сделал все возможное, чтобы следовать тому, что вы оба сказали (несмотря на ваш совет по поводу записей A, которые кажутся конфликтующими), и обновил вопрос.
Nikita Kipriyanov avatar
флаг za
Я неправильно прочитал вопрос, я не заметил, что вы настраиваете обратную зону. Однако вы настроили в `named.conf` ссылку на файл `/etc/named/16.16.172.in-addr.arpa.rev`, но отображая содержимое `/etc/named/16.16.172.in- addr.arpa` (без суффикса `.rev`). Это ошибка в вопросе или в конфигурации? Кроме того, вы показываете проблемы с зоной 19.16.172.in-addr.arpa, но показываете конфигурацию и содержимое зоны 16.16.172.in-addr.arpa. Я понимаю, что зоны "похожи", но не могли бы вы все же сделать вещи автономными? Вы можете заметить ошибку, когда будете это делать.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.