
У меня есть несколько вопросов о том, как работает DNS.
Смогу ли я подключить запись A буквально к любому IP-адресу, например, к IP-адресу Google?
Я на самом деле этого не знал и был весьма удивлен этим. Я думал, что вы можете перенаправлять только на веб-сайты, которыми владеете, или можете перенаправлять свой домен только на фактическую ссылку назначения. И если это правда, то это должно быть то же самое для записей CNAME, верно?
Другими словами, могу ли я сделать так, чтобы при нажатии на мой собственный домен отображался сайт Google, при этом отображалось не имя домена Google, а мой собственный домен?
Смогу ли я подключить несколько записей к одному домену, например, запись A, запись txt или запись AAAA и запись CNAME?
Как на самом деле работают записи txt? Вы действительно просто вводите URL в браузере, и текст появляется на экране, или вам нужно сделать специальный запрос GET или что-то в этом роде?
решение1
Смогу ли я подключить запись A буквально к любому IP-адресу, например, к IP-адресу Google?
Да. Это не совсем вопрос «права собственности», это вопрос соглашения между владельцем домена и оператором сервера.
Это не принесет вам пользы, если вы указываете на сервер, на котором нетсогласился собслуживать нужный вам домен — запись DNS будет работать, но веб-сервер просто ответит страницей с ошибкой. (Это важно для веб-сайтов или электронной почты, где сервер знает, какой домен запрашивается, — или для чего-либо на основе TLS, где сервер должен иметь правильный сертификат.)
Но в целом именно так работает платный веб-хостинг, например: обычно вы не владеете IP-адресом, а в «общих» планах вы не владеете ничем на сервере, но вы все равно указываете на него записи A/AAAA, поскольку он настроен на распознавание домена и выполнение для него каких-то полезных действий.
Я на самом деле этого не знал и был весьма удивлен этим. Я думал, что вы можете перенаправлять только на веб-сайты, которыми владеете, или можете перенаправлять свой домен только на фактическую ссылку назначения. И если это правда, то это должно быть то же самое для записей CNAME, верно?
Тоже да. То же самое, что и выше, владелец не имеет значения, имеет значение только то, настроен ли сервер на выполнение того, что вам нужно (опять же, когда речь идет о веб-сайтах, целевой сервер будет знать, с какого домена он посещается, и он может просто ответить: «Нет, я не настроен на обслуживание этого домена»).
Обычно DNS не заботится о "веб-сайтах" или "ссылках" в первую очередь – его интересуют только доменные имена и IP-адреса. Но даже тогда записи DNS являются однонаправленными; вы можете указать что угодно на что угодно.
Другими словами, могу ли я сделать так, чтобы при нажатии на мой собственный домен отображался сайт Google, при этом отображалось не имя домена Google, а мой собственный домен?
Это будет работать снекоторыйвеб-серверы. С Google — вряд ли.
Опять же, как уже упоминалось выше: веб-серверы знают, под каким доменом они вызываются (он включен в каждый HTTP-запрос). Более крупные веб-хостыполагатьсяна этом, поскольку они обслуживают множество веб-сайтов для разных доменов на одном и том же IP-адресе.
Так что если вы просто создадите запись A для своего собственного домена, указывающую на такой веб-сервер, он не найдет соответствующую конфигурацию "виртуального хоста" и, как правило, будет обслуживать общую страницу с ошибкой вместо нужного вам веб-сайта. Но для небольших веб-серверов, у которых есть только один "default" vhost, это действительно сработает.
Он также не будет работать с HTTPS или чем-либо еще на основе TLS. Даже в простейшем случае сервер должен предоставить сертификат, действительный для посещаемого домена, в противном случае браузер покажет страницу с ошибкой «несоответствие сертификата».
Но со многими другими (не веб) сервисами, тем не менее, этобыработают, а сервер даже не заметит. Например, SSH или FTP вообще не сообщают имя хоста.
Смогу ли я подключить несколько записей к одному домену, например, запись A, запись txt или запись AAAA и запись CNAME?
В целом да, каждая служба будет рассматривать только те типы записей, которые ей нужны, и игнорировать остальные, поэтому вы можете использовать любую комбинацию типов записей (независимо от того, имеет ли она смысл) — за некоторыми исключениями.
Например, A+AAAA вполне нормально — так вы размещаете двухстековые службы IPv4+IPv6, при этом один и тот же сервер имеет оба типа адресов. В корне домена у вас обычно будет MX для почты прямо рядом с этими записями A+AAAA (а также NS+SOA для внутренних операций DNS).
Существуют такие типы записей, как SSHFP, которыесуждено бытьиспользуемые вместе с адресными записями, а также многими типами, имеющими «описательное» применение и просто размещаемыми в любом месте (TXT, HINFO, RP, LOC…).
(Я думаю, что в этом и есть весь смысл существования различных типов пластинок.)
Однако одним большим исключением является CNAME, который обычноне допускаетсядля использования вместе с другими типами записей. Либо имя является псевдонимомилиЭто не так, но и не то и другое одновременно. (Вот почему вы обычно не можете поместить CNAME в корень своего домена — потому что у вас там уже есть SOA и NS.)
Как на самом деле работают записи txt? Вы действительно просто вводите URL в браузере, и текст появляется на экране, или вам нужно сделать специальный запрос GET или что-то в этом роде?
Нет, веб-браузеры вообще не взаимодействуют с TXT-записями. Они там для других целей.
(DNS в целомпредшествовал Интернетуна несколько лет, поэтому большая его часть предназначена для других целей, нежели HTTP. Веб-браузеры просто используют те же записи общего назначения A/AAAA, которые уже использовали многие другие сервисы.)
Хотя для записей TXT не существует URL, вы можете просмотреть содержимое таких записей, сделав прямые DNS-запросы, используя такие инструменты, как«dig», «host» или «nslookup». Например, в Windows можно запустить nslookup -q=txt example.com
или Resolve-DnsName -Type TXT example.com
, а в Linux или macOS предпочтительны host -t txt example.com
или .dig example.com txt
(На самом деле на example.com есть две записи TXT — одна, которая начинается с «v=spf1», предназначена для почтовых серверов, выполняющих проверки SPF, другая, возможно, для проверки домена DigiCert. В настоящее время TXT в основном используется для автоматизированных запросов, хотя иногда все еще можно встретить записи TXT, предназначенные для чтения системными администраторами.)