среда, 26 января 2022 г.

Проблемы с DNS


Не думал, что в свои «под 70» придётся консультировать по поводу доменов, DNS и прочего... Однако: пришлось.

Нижеследующее — попытка разъяснения. Возможно: не такая уж излишняя: со всей этой «кухней» обычный клиент сталкивается однажды: продекларировав желание иметь сайт. Со временем это всё легко забывается. Вторая трудность: разнообразие вариантов реализации. В идеале: хостер прилагает к договору хостинга домен с умолчательными настройками  зоны. Но и в том случае вам, быть может, захочется иметь корпоративную почту на gmail (а такая возможность используется многими моими клиентами). Так что даже в «идеальном» случае некоторые знания не помешают. Итак...

Что такое доменное имя — знаем? В соответствии с wiki: это «символьное имя, служащее для идентификации областей, которые являются единицами административной автономии в Сети, в составе вышестоящей по иерархии такой области. Каждая из таких областей называется доме́ном… Доменные имена дают возможность адресации интернет-узлов и расположенным на них сетевым ресурсам (веб-сайтам, серверам электронной почты, другим службам) быть представленными в удобной для человека форме... состоит из непосредственного имени домена и далее имён всех доменов, в которые он входит». Как правило, имеются в виду FQDN (сокр. от англ. fully qualified domain name — имя домена, не имеющее неоднозначностей в определении). Если быть точным, то FQDN всегда оканчивается точкой — доменом нулевого (корневого) уровня. Но об том почти никто никогда не вспоминает: браузеры сами подставляют эту самую точку. Более того: большинство контрольных панелей DNS поступают также. Хотя в файле зоны, описывающем домен эта точка — обязательна. Т.е. первая трудность: будьте внимательны и обратите внимание на то, добавляет ли «последнюю» точку в FQDN панель, которую вы используете. Если не добавляет — это будет вашей заботой.

Теперь определимся, что такое «доменная зона». А вот это: «совокупность доменных имён определённого уровня, входящих в конкретный домен». И,  да: доменная зона домена «com» (первого уровня) — это нечто необъятное. Но нас сейчас интересует только  наш собственный домен. Например: my_domain.com.ua.  Так вот для доменов (поддоменов по отношению к my_domain.com.ua) mail.my_domain.com.ua, www.my_domain.com.ua, job.my_domain.com.ua зоной как раз и является  my_domain.com.ua.

А теперь: к делу. «Хочу сайт с придуманным мной именем». Идём к регистратору доменных имён и узнаём: хватило ли нашей фантазии на что-то оригинальное. Или домен с придуманным именем уже существует. И так пока не выберем уникальное и, в то же время: удовлетворяющее нас имя для нашего домена. Функции регистратора может взять на себя хостер, к которому вы обратились с целью размещения сайта — на важно. Суть  в том, что с момента приобретения домена в Сети за вами закреплено это самое уникальное имя. Грубо говоря, больше ничего регистратор не делает. Это как получение гражданства: вот вам паспорт, а где вы будете жить, в кем в браке, дети... то уже не ко мне. Я только фиксирую факт гражданства и [часто, хотя и не всегда], буду брать с вас [сравнительно] небольшую сумму за «продление доменного имени». Не чаще раза в год. Единственное, что гарантирует регистратор доменного имени это то, что в рамках мировой системы  доменных имён он всегда будет сообщать: какой DNS-сервер  обслуживает ваш домен. Для этого он попросит вас указать имена [и ip-адреса] DNS-серверов, которым «делегируется» ваш домен. Фактически, «делегирование» — всего лишь строка в описателе зоны вашего домена (my_domain.com.ua, в нашем случае) примерно такого вида:

NS   provider_ns_server.com   uuu.xxx.yyy.zzz

Это всего лишь означает, что за информацией обо всех субдоменах вашего домена (а, заодно, и обо всей остальной информацией, хранимой NS-серверами) нужно обращаться на provider_ns_server.com (ip-адрес: uuu.xxx.yyy.zzz).  Разумеется: делегировать домен можно любому DNS-серверу: регистратора, провайдера, предоставителю бесплатных услуг или своему собственному.  Кому делегировали — туда и обращайтесь за DNS-менеджментом. Будь то регистратор, провайдер, хостер или ваш собственный BIND.

В чём состоит этот самый DNS-менеджмент? В редактировании записей зоны вашего домена. Типов таких записей довольно много, но для начала хватит следующих:

  • A-запись — задает преобразование имени хоста в IP-адрес. Это может быть хост, на котором расположен ваш сайт (адрес даст вам хостер).  Это — прежде всего. Но: необязательно.

  • MX-запись — определяет почтовый сервер для вашего домена. То есть: почтовый сервер, обслуживающий почту для адресов *@my_domain.com.ua имени.

  • NS-записи — определяют DNS-серверы, которым делегирован ваш домен (авторитативны для данной зоны).

  • CNAME-запись — определяет отображение псевдонима в каноническое имя узла. Прежде всего: для субдомена www.my_domain.com.ua (вы же хотите, чтобы на ваш сайт попадали вне зависимости от наличия «www» в адресе?). Хотя также можно организовать и web-доступ к почте (mail.my_domain.com.ua), удалённый доступ к каким-то хостам (job.my_domain.com.ua) и т.п. — мало ли?

  • TXT-запись — содержит общую текстовую информацию. Эти записи могут использоваться в любых целях, Google, например, может предложить верификацию права владения доменом через такую запись. 

К сожалению, строки зоны вашего домена могут выглядеть в исполнении разных контрольных панелей по-разному. Так что общих рекомендаций не будет. Лучше всё-таки знать, что за этим стоит. Вот, например, фрагмент файла зоны для BIND:

 ;; A Records

ghs.google.com.mis.kiev.ua.     1       IN      A       142.250.203.147

my_domain.com.ua.    1       IN      A       NNN.NNN.NNN.NNN

;; CNAME Records

mail.my_domain.com.ua.       1       IN      CNAME   ghs.google.com.my_domain.com.ua

www.my_domain.com.ua.        1       IN      CNAME   my_domain.com.ua

;; MX Records

 my_domain.com.ua.   3600    IN      MX      5 alt2.aspmx.l.google.com

my_domain.com.ua.    3600    IN      MX      5 alt1.aspmx.l.google.com

my_domain.com.ua.    3600    IN      MX      1 aspmx.l.google.com.

;; TXT Records

my_domain.com.ua.    1       IN      TXT     "v=spf1, include:_spf.google.com ~all"

Здесь для домена my_domain.com.ua обеспечивается mail-сервер на gmail.com, а сайт — на NNN.NNN.NNN.NNN (ip-адрес, выданный хостером).

Вроде: всё.  Для случаев алиасинга/редиректов/специальных видов доступа: нужно читать. Google в помощь...