Рейтинг:0

Является ли случайный ответ от полномочного сервера DNS нормальным?

флаг ng

Мы пытаемся настроить Позволяет шифровать выдача сертификата с использованием сертификат-менеджер и решатель dns01. мы используем Хозяин мечты в качестве нашего DNS-провайдера, и мы создали связующий компонент, который связывает RFC-2136 cert-manager и Dreamhost API.

Мы столкнулись с проблемой, заключающейся в том, что, несмотря на то, что необходимые (TXT) записи добавляются, полномочный DNS-сервер возвращает их случайным образом — с двумя запросами один за другим, один возвращает ответ, а другой ничего не возвращает. Это заставляет cert-manager ждать непредсказуемое количество времени, пока ему не удастся подтвердить наличие записи TXT, а в некоторых случаях вызывает сбой проверки домена Lets Encrypt.

Этого следует ожидать от авторитетного сервера DNS? Или это то, что мы должны обсудить с нашим DNS-провайдером?

Ниже приведен пример такой ситуации (на данный момент отдельный домен отозван). Как вы видете

копать @ns1.dreamhost.com. _acme-challenge.keycloak.tenant-a.k8s-dev.redacted.redacted. ТЕКСТ 

; <<>> DiG 9.16.15-Ubuntu <<>> @ns1.dreamhost.com. _acme-challenge.keycloak.tenant-a.k8s-dev.redacted.redacted. ТЕКСТ
; (найден 1 сервер)
;; глобальные параметры: +cmd
;; Получил ответ:
;; ->>HEADER<<- код операции: QUERY, статус: NXDOMAIN, id: 38336
;; флаги: qr aa rd; ЗАПРОС: 1, ОТВЕТ: 0, АВТОРИЗАЦИЯ: 1, ДОПОЛНИТЕЛЬНО: 1
;; ВНИМАНИЕ: рекурсия запрошена, но недоступна

;; ДОПОЛНИТЕЛЬНЫЙ ПСЕВДОРАЗДЕЛ:
; ЭДНС: версия: 0, флаги:; УДП: 1232
;; РАЗДЕЛ ВОПРОСОВ:
;_acme-challenge.keycloak.tenant-a.k8s-dev.redacted.redacted. В TXT

;; ОТДЕЛ ПОЛНОМОЧИЙ:
отредактировано. 300 В SOA ns1.dreamhost.com. hostmaster.dreamhost.com. 2022060209 18661 600 1814400 300

;; Время запроса: 20 мс
;; СЕРВЕР: 162.159.26.14#53(162.159.26.14)
;; КОГДА: czw cze 02 19:40:17 CEST 2022
;; РАЗМЕР MSG rcvd: 152

копать @ns1.dreamhost.com. _acme-challenge.keycloak.tenant-a.k8s-dev.redacted.redacted. ТЕКСТ 

; <<>> DiG 9.16.15-Ubuntu <<>> @ns1.dreamhost.com. _acme-challenge.keycloak.tenant-a.k8s-dev.redacted.redacted. ТЕКСТ
; (найден 1 сервер)
;; глобальные параметры: +cmd
;; Получил ответ:
;; ->>HEADER<<- код операции: QUERY, статус: NOERROR, id: 41439
;; флаги: qr aa rd; ЗАПРОС: 1, ОТВЕТ: 1, ПОЛНОМОЧИЯ: 0, ДОПОЛНИТЕЛЬНО: 1
;; ВНИМАНИЕ: рекурсия запрошена, но недоступна

;; ДОПОЛНИТЕЛЬНЫЙ ПСЕВДОРАЗДЕЛ:
; ЭДНС: версия: 0, флаги:; УДП: 1232
;; РАЗДЕЛ ВОПРОСОВ:
;_acme-challenge.keycloak.tenant-a.k8s-dev.redacted.redacted. В TXT

;; РАЗДЕЛ ОТВЕТОВ:
_acme-challenge.keycloak.tenant-a.k8s-dev.redacted.redacted. 300 В TXT "Uyr1nHC1CRWQcmOWDvObc4RMd-mNhKaE9bbNZTf3L2k"

;; Время запроса: 16 мс
;; СЕРВЕР: 162.159.26.14#53(162.159.26.14)
;; КОГДА: czw cze 02 19:40:18 CEST 2022
;; MSG SIZE rcvd: 144

Как вы видете

  • Временные метки ответов почти одинаковы
  • Один ответ содержит записи TXT, другой нет.
  • Тот же DNS-сервер (162.159.26.14 - ns1.dreamhost.com) отвечает, и я считаю, что это авторитетный сервер
Appleoddity avatar
флаг ng
Этого следует ожидать, если есть задержка репликации или время жизни, которое должно истечь. Как долго вы ждали? Кроме того, пытались ли вы запросить каждый DNS-сервер напрямую, чтобы определить тот, у которого есть или нет запись, чтобы подтвердить, что вы подозреваете, что это действительно так?
Patrick Mevzek avatar
флаг cn
@Appleoddity «Этого следует ожидать, если есть задержка репликации или срок действия TTL, который должен истечь». Это не имеет значения на авторитетных серверах, по крайней мере, не в части TTL. Что касается «репликации», это зависит от того, как выполняется конфигурация на наборе авторитетных серверов имен, но любой хороший провайдер DNS должен гарантировать слабую согласованность в течение нескольких минут, если не секунд.
Patrick Mevzek avatar
флаг cn
«с двумя запросами один за другим, один из которых возвращает ответ, а другой ничего не возвращает». Можете ли вы показать, какие именно запросы выполняются? Лучше, даже с настоящими именами? Вы проверили конфигурацию DNS в DNSViz?
user1686 avatar
флаг fr
Имейте в виду, что «один и тот же» сервер может внутренне транслироваться и/или балансироваться по нагрузке на несколько независимых хостов, некоторые из которых могут быть синхронизированы с официальной базой данных DNS Dreamhost, а другие могут быть не синхронизированы.
AGrzes avatar
флаг ng
@ user1686 Я думаю, что это может быть так, особенно с учетом того, что после того, как я проверил из другой страны (используя облачный VPS), я получил разные ответы.Не могли бы вы расширить комментарий до ответа? В основном описывает механизм, с помощью которого, казалось бы, один авторитетный DNS-сервер может на самом деле быть группой несинхронизированных серверов.
Рейтинг:1
флаг fr

Тот же DNS-сервер (162.159.26.14 - ns1.dreamhost.com) отвечает, и я считаю, что это авторитетный сервер

Как и в случае с веб-серверами, один IP-адрес может скрывать несколько DNS-серверов, отвечающих на ваши запросы. Даже запросы из одного и того же местоположения могут быть распределены по нескольким узлам с помощью балансировщика нагрузки или многопутевого маршрута. (Иногда «ns1» и «ns2» предназначены исключительно для галочки, и оба ведут к одному и тому же пулу серверов.)

Да, в идеале все авторитетные серверы в кластере должны знать одни и те же данные, но в зависимости от того, как они реализованы, кластер мог некоторые серверы временно не синхронизированы с официальной базой данных Dreamhost по разным причинам. Например (совершенно гипотетически — я не знаю, как работают системы Dreamhost), запросы на «перезагрузку» могут быть распределены по времени, чтобы уменьшить нагрузку на базу данных.

после того, как я проверил из другой страны (используя облачный VPS), я получил разные ответы

В более широком масштабе, при запросах из разных мест, произвольная рассылка BGP может привести к совершенно другим кластерам. Хорошим примером являются общедоступные преобразователи DNS или корневые серверы — в мире существует множество экземпляров 1.1.1.1, а также много экземпляров «f.root-servers.net».Если Dreamhost использует anycast для размещения «ns1» в нескольких физических местах (что они, вероятно, делают для уменьшения задержки), то еще более вероятно, что они будут рассинхронизированы в течение короткого периода времени после внесения изменений. (Это одна из областей, где "распространение DNS" не ложь.)

Многие DNS-серверы поддерживают специальный имя хоста.bind и/или id.сервер запросы, на которые они отвечают, используя свои индивидуальные имена. Попробуйте это из разных мест:

dig +short @ns1.dreamhost.com hostname.bind. текст хаоса

Но в целом, ничего из перечисленного на самом деле не меняет — ваша проблема мало чем отличается от наличия отдельных серверов и их синхронизации. Например, даже если у вас были обычные серверы ns1/ns2/ns3, использующие традиционную репликацию DNS AXFR, всякий раз, когда новые данные загружаются на главный сервер, может потребоваться несколько секунд, чтобы он отправил NOTIFY на реплики, а они передали данные. изменения. Резолверы, просматривающие ваши записи NS, совершенно не подозревают об этом и могут случайным образом выбрать либо сервер, на котором уже есть новые данные, либо сервер, на котором их нет.

Таким образом, независимо от того, как работает ваш DNS-хост и сколько у него серверов, вы никогда не должны ожидать, что обновления будут на 100% мгновенными; узнать, публикует ли провайдер ожидаемое время, или просто ждать произвольные 5 или 10 секунд.

AGrzes avatar
флаг ng
Я приму этот ответ через некоторое время, если больше ничего не появится.Во-первых, то, что мы наблюдаем, заключается в том, что ответы DNS не стабилизируются в течение многих минут - трудно сказать точно, но обычно через несколько часов проверка DNS завершается успешно, либо все серверы возвращают правильные записи, либо возвращая достаточно длинную последовательность правильных ответов. записи случайно. Так что я не ожидаю, что это сработает мгновенно, но я надеюсь, что синхронизация авторитетных серверов заработает, скажем, через 15 минут.

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

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