Назад | Перейти на главную страницу

Запись DNS txt для указания субдомена на другой домен

У меня есть экземпляр SimpleHosting на gandi.net, связанный с доменом в Gandi, mygandidomain.org, и еще один домен, myrootdomain.name зарегистрирован где-то еще.

Я успешно добавил запись CNAME в свой myrootdomain.nameDNS-записи, позволяющие одному поддомену, subdomain.myrootdomain.name укажите на мой экземпляр SimpleHosting в Ганди, то есть:

subdomain 10800 IN CNAME mygandidomain.org.

Когда я сейчас пойду в subdomain.myrootdomain.name с Google Chrome я получаю сообщение об ошибке: «Ошибка 404 Vhost unknown». Это сообщение об ошибке исходит от Ганди, а не от другого регистратора доменных имен. Итак, я прихожу к выводу, что запись CNAME вступила в силу.

Однако, чтобы устранить эту ошибку, я только потом прочитал инструкции. В инструкциях, данных Ганди, я должен сделать следующее:

В инструкциях Ганди сказано, что я должен указать на это gpaas12.dc2.gandi.net., т.е.

Добавить строку CNAME

subdomain 10800 IN CNAME gpaas12.dc2.gandi.net.

вместо того

subdomain 10800 IN CNAME mygandidomain.org.

... и, чтобы авторизоваться как владелец домена, следует ли мне удалить какие-либо из них? Какой из них я должен оставить, чтобы соответствовать инструкциям Ганди, чтобы добавить:

@ 10800 IN TXT "test = s0m3r4nD0mG! BB3ri $ hStr1nG" Я также должен добавить запись TXT:

@ 10800 IN TXT "test=s0m3r4nD0mG!bB3ri$hStr1nG"

с какой-то бессмысленной случайной строкой, предоставленной Ганди.

Так я и сделал. Поскольку я не могу ввести эти строки напрямую, но должен использовать некоторый веб-интерфейс ввода, я ввел значение записи TXT один раз с кавычками и один раз без кавычек, и оба для субдомена (введено subdomain.myrootdomain.name. в поле ввода "хост") и для корневого домена (введен myrootdomain.name. в поле ввода "host") на всякий случай, потому что мне не разрешено вводить "@" или "*" в это поле ввода.

Я изменил TTL для всех добавленных и изменил записи DNS на 300. Значит, они должны были быть обновлены давно. Но вот что все же происходит при копании:

$ dig txt subdomain.myrootdomain.name

; <<>> DiG 9.10.3-P4-Ubuntu <<>> txt subdomain.myrootdomain.name
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 50813
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;subdomain.myrootdomain.name.   IN  TXT

;; ANSWER SECTION:
subdomain.myrootdomain.name. 3599   IN  CNAME   mygandidomain.org
mygandidomain.org.  10799   IN  TXT "v=spf1 include:_mailcust.gandi.net ?all"

;; Query time: 52 msec
;; SERVER: 127.0.1.1#53(127.0.1.1)
;; WHEN: Wed Jul 11 05:42:59 CEST 2018
;; MSG SIZE  rcvd: 85

Таким образом, CNAME по-прежнему указывает на mygandidomain.orgвроде бы как я в самом начале (перед тем как поменять на gpaas12.dc2.gandi.net.)

Не знаю, плохо ли это, потому что mygandidomain.org в свою очередь, предположительно, указывает на экземпляр хоста в gpaas12.dc2.gandi.net, если я правильно понял. (И я действительно могу получить доступ к моему сайту, размещенному в Gandi, через mygandidomain.org)

Однако я подумал, что должен увидеть любую из записей TXT, которые я добавил для subdomain.myrootdomain.name к настоящему времени.

Если я правильно понимаю эти строки:

;; QUESTION SECTION:
;subdomain.myrootdomain.name.   IN  TXT

... это означает, что есть запись TXT для subdomain.myrootdomain.name который, однако, пуст?

Кажется, здесь присутствует только непустая запись TXT в записях DNS домена Ганди:

;; ANSWER SECTION:
subdomain.myrootdomain.name. 3599   IN  CNAME   mygandidomain.org
mygandidomain.org.  10799   IN  TXT "v=spf1 include:_mailcust.gandi.net ?all"

..., что не имеет ничего общего с записью TXT, которую я должен был добавить в myrootdomain.name.

Я добавил указанную запись TXT с предоставленным строковым значением один раз с кавычками и один раз без кавычек, как для myrootdomain.name и для subdomain.myrootdomain.name.

Тот же результат относительно записей TXT для копания myrootdomain.name (где, я думаю, должна быть запись TXT, согласно инструкциям Ганди):

;; QUESTION SECTION:
;myrootdomain.name.     IN  TXT

Всего одна пустая запись TXT? Должны ли изменения еще не вступить в силу?

Я также несколько раз сбрасывал записи CNAME и TXT в общедоступном DNS Google (8.8.8.8) через интерфейс на https://developers.google.com/speed/public-dns/cache, для обоих myrootdomain.name и subdomain.myrootdomain.name. И я использую DNS-сервер Google в качестве основного DNS-сервера на этом компьютере.

Когда я иду в subdomain.myrootdomain.name с Google Chrome я все еще получаю ошибку «Ошибка 404 Vhost unknown». - что, вероятно, и следовало ожидать, судя по результатам поиска DNS. Это сообщение об ошибке исходит от Ганди, поэтому хотя бы CNAME (либо gpaas12.dc2.gandi.net или еще mygandidomain.org) вступил в силу там. Я полагаю, что только запись TXT, которая должна помочь авторизовать право собственности на домен, все еще не распознается.

Как ни странно, когда я иду в subdomain.myrootdomain.name с Firefox я по-прежнему получаю более старое сообщение об ошибке от поставщика домена, не принадлежащего Gandi: «Ни один веб-сайт не настроен под этим адресом».

Что-то не так с моими входными данными TXT? Как я уже сказал, я добавил их обоими subdomain.myrootdomain.name (что, вероятно, не соответствует инструкциям Ганди), а также myrootdomain.name (что, вероятно, соответствовало бы инструкциям Ганди) просто потому, что я не мог вместо этого ввести «@» или «*» и хотел быть уверенным, что включил ожидаемую запись. И я также добавил их оба дважды, один раз с включенными кавычками и один раз с исключенными кавычками, предполагая, что только правильная запись будет выбрана Ганди.

Стоит ли удалять какие-нибудь из них? Какой из них я должен оставить, чтобы соответствовать инструкциям Ганди, чтобы добавить:

@ 10800 IN TXT "test=s0m3r4nD0mG!bB3ri$hStr1nG"

Я не вижу, как мои вводимые данные фактически переводятся в эти текстовые строки.

Но ни один из них, кажется, не появляется при выполнении $ dig .... по крайней мере до сих пор. Должен ли я не видеть их появления при выполнении $ dig ...? Как я уже сказал, TTL составляет 300 (поначалу было больше), и я выполнил очистку Google DNS.

Спасибо за любые подсказки и советы о том, как интерпретировать то, что здесь происходит.

РЕДАКТИРОВАТЬ: Теперь работает. Не совсем уверен, но мне кажется, что дополнительная запись TXT, которую я добавил для subdomain.mydomain.name. каким-то образом противоречил CNAME для subdomain.mydomain.name.. В руководстве сказано, что нужно добавлять TXT только для mydomain.name. и нет subdomain.mydomain.name., но, как я объяснил, я сделал и то, и другое «на всякий случай». Я не совсем уверен, что именно это помогло мне, но это было последнее, что я изменил, и теперь это работает.

Этот довольно длинный вопрос представляет собой набор распространенных недоразумений, которые неоднократно встречались в Server Fault. Кроме того, на подобные вопросы обычно можно получить более подробные ответы с конкретными доменами, с которыми мы могли бы протестировать. Надеюсь, вы лучше поймете, что здесь происходит, прочитав это:

  • Когда я иду в subdomain.myrootdomain.name с Google Chrome я все еще получаю ошибку «Ошибка 404 Vhost unknown». - что, вероятно, и следовало ожидать, судя по результатам поиска DNS.

    Это не имеет ничего общего с DNS: тот факт, что вы видите страницу Ганди, говорит о том, что DNS указывает на их серверы, но их веб-серверы не настроены на его распознавание. Чтобы связать домен, вам сначала нужно Добавьте виртуальный хост в свой экземпляр из панели управления экземпляром.

    Второй шаг для домены не в Gandi добавляет CNAME для субдомена и TXT на вершине домена: @ IN TXT эквивалентно myrootdomain.name. IN TXT. Как видно из руководства, форма этого TXT запись кажется subdomain=hash. Если бы в вашей записи буквально было test=s0m3r4nD0mG!bB3ri$hStr1n, вероятно, это было для test.myrootdomain.name вместо твоего subdomain.myrootdomain.name. В этом случае вам нужно начать с самого начала, добавив точный субдомен, который вы планируете использовать.

  • ;; QUESTION SECTION:
    ;subdomain.myrootdomain.name.   IN  TXT
    

    ... это означает, что есть запись TXT для subdomain.myrootdomain.name, которая, однако, пуста?

    Нет это раздел вопросов отображение того, что вы искали. Он не пустой, у него просто нет результатов. Результаты в раздел ответов. И не пусто:

    ;; ANSWER SECTION:
    subdomain.myrootdomain.name. 3599   IN  CNAME   mygandidomain.org
    mygandidomain.org.  10799   IN  TXT "v=spf1 include:_mailcust.gandi.net ?all"
    
  • Я изменил TTL для всех добавленных и изменил записи DNS на 300. Значит, они должны были быть обновлены давно.

    Запрос кешируется для TTL секунд. Если вы впоследствии измените время TTL, это не повлияет на уже кэшированные запросы. Изначально он был кэширован для 10800 секунд, т.е. 3 часа, из которых это 3599 Когда последний раз редактировал ваш вопрос, осталось секунд.

    Если вам нужно проверить, обновляется ли запись на вашем авторитетный серверов имен, вы должны выполнить запрос непосредственно к ним (заменить фактическим NS вашего домена):

    dig subdomain.myrootdomain.name A @authoritative1.example.com
    dig myrootdomain.name TXT @authoritative1.example.com
    
  • Если вы добавите TXT запись на поддомене, который уже имеет CNAME запись, это нормально, что она не работает: она покажет TXT из каноническое имявместо этого, как в ваших результатах. Если имя хоста имеет CNAME запись, в ней не должно быть других записей ресурсов другого типа. Хотите знать, почему? у меня есть ответ, а AndrewB даже более подробно канонический вопрос.