Конфликт имен DNS между записью TXT и записью CNAME/A-Record

Я заметил неожиданное поведение при использовании Azure DNS Zones.

У меня есть следующие записи DNS:

_acme_challenge.<mysubdomain1>  IN TXT   -> any value
*                               IN CNAME -> <mysubdomain2>.<mydomain>.com
<mysubdomain2>                  IN A     -> <myIPaddress> 

Если я сейчас делаю nslookup для: <mysubdomain1>.<mydomain>.comя ожидаю получить действительный ответ для: myIPaddress. Но запись TXT блокирует разрешение. После удаления TXT-Entry я получаю ожидаемый результат.

Вы знаете, правильно ли такое поведение? Для меня это кажется неправильным. Но не совсем понятно, работает ли он как положено и специально.

На эту же тему уже есть обсуждение: https://github.com/cert-manager/cert-manager/issues/806но не со значимым конечным результатом.

Надеюсь, вы можете помочь! Спасибо

сетевая система доменных имен azure dns-zone

2 ответа
2

На самом деле это ожидаемое поведение.

RFC1034 имеет эту информацию:

Подстановочные знаки RR не применяются:

  • Когда запрос находится в другой зоне. То есть делегирование отменяет подстановочные знаки по умолчанию.

  • Когда известно, что имя запроса или имя между подстановочным доменом и именем запроса существует. Например, если у RR с подстановочным знаком имя владельца «*.X», а зона также содержит RR, прикрепленные к BX, подстановочные знаки будут применяться к запросам для имени ZX (предполагая, что для ZX нет явной информации), но не на BX, ABX или X.

и это вторая пуля в игре здесь. Ваша запись вызова LetsEncrypt:

_acme_challenge.<mysubdomain1>  IN TXT   -> any value

представил имя <mysubdomain1> и это отменило подстановочный знак. Что вам нужно:

<mysubdomain1>                  IN CNAME -> <mysubdomain2>.<mydomain>.com

как предложил @gapsf (у вас может быть это в дополнение к существующей подстановочной записи).

Томек

Пытаться

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *