Важно: эта страница создана для видео. Предполагается, что вы смотрите видео и параллельно читаете эту страницу. Приятного просмотра!

https://youtu.be/bzqS7d0nOPg

3 сетевых точки работы домена 📍

<img loading="lazy" src="/img/dns_scheme.png" alt=""  />

Регистратор

  • Место, где регистрируются домены
  • У регистратора хранится информация о владельце домена
  • У регистратора задаются NS-записи для домена
  • 💰 Домен стоит от 500 руб/год

Хостинг DNS

  • Место, где хранятся все DNS-записи домена, кроме NS-записей
  • Часто такую услугу предлагает и регистратор, и веб-хостинг
  • DNS-хостинг, обычно, связывает между собой домен и сервер (A-запись). Но кроме этого выполняет еще ряд функций
  • 💰Большинство DNS-хостингов бесплатны или почти бесплатны

Веб-хостинг

  • Сервер, на котором физически распологаются исполняемые скрипты сайта, а также, чаще всего, база данных сайта
  • Веб-хостинг обычно предоставляет для каждого сервера отдельный IP-адрес (иногда их два: IPv4 и IPv6)
  • 💰 В среднем от 1000 руб/мес (минимально рабочая VPS с отдельным файловым хранилищем)

О независимости трех точек

Интересно во всей этой схеме то, что эти три сетевых точки часто обслуживаться у разных провайдеров и ими могут владеть разные люди. Например, вы можете владеть доменом, но не иметь доступа к веб-хостингу. Понимая это обстоятельство вы можете, например, разместить свой сайт на чужом домене, не давая владельцу домена доступа к коду. Или, наоборот, вы можете купить домен и разместить на нем не принадлежащий вам SaaS сервис типа Tilda или Medium.


Типы DNS-записей и их параметры ⛓

  • NS 👑 — запись, связывающая домен и DNS-хостинг. Их может быть несколько. В первую очередь будет использоваться запись с наименьшим приоритетом
  • A 🌐 — запись для сопоставления доменного имени (например, domain.ru) и IPv4-адреса сервера (например, 192.168.0.1)
  • АААА 🌐 — то же самое, но для IPv6 адреса (например, 2a03:6f00:1::5c35:6084)
  • MX 📧 — запись, необходимая для работы почты на домене (например, info@domain.ru). Указывает на домен, на котором работает почтовый сервер (например, mail.domain.ru)
  • TXT 📝 — запись, в которой просто хранится текст. Обычно используется для подтверждения владения доменом и подобного.
  • CNAME 🎭 — запись-алиас. То же, что и A запись, но ссылается не на IP, а на домен
  • SOA ℹ️ - запись, содержащая инфу о DNS-регистраторе и владельце домена. Обычно, она создается автоматически. У каждого домена обязательно есть одна SOA-запись

Обратите внимание, что значением записей A и AAAA может быть только IP-адрес, а не домен или его часть. Именно для обхода этого ограничения была создана запись CNAME.

Примеры записей

Тип записи Имя записи Значение Результат
A flagsoft.ru (или @) 95.217.16.92 Домен flagsoft.ru размещен на сервере с IP 95.217.16.92
A www.flagsoft.ru (или www) 95.217.16.92 Поддомен www домена flagsoft.ru размещен на том же ip
AAAA flagsoft.ru (или @) 2a01:4f9:c010:5ccf:: Домен flagsoft.ru размещен на сервере с IP 2a01:4f9:c010:5ccf::
MX flagsoft.ru или @ mx.yandex.net. Почтовые ящики вида info@flagsoft.ru обслуживаются Яндекс.Почтой
NS flagsoft.ru ns1.digitalocean.com. Домен делегирован на NS сервера Digital Ocean. Такая запись обычно размещается у регистратора домена
TXT flagsoft.ru google-site-verification=usZ… TXT-запись, которую мы прописали для домена flagsoft.ru, чтобы подтвердить, что это наш домен. У TXT-записей в значении может быть произвольный набор символов

Скорость применения изменений

  • NS могут применяться долго, до нескольких часов
  • A, MX, TXT и все остальные записи, кроме NS обычно применяются быстро, за несколько минут

IPv4 и IPv6

Пример IPv4: 95.217.16.92

Пример IPv6: 2a01:4f9:c010:5ccf:4f9:5ccf (2a01:4f9:c010:5ccf:: тоже валидный)

История

IP-адреса с начала интернета были IPv4. Затем, они стали кончаться. Для решения проблемы был создан стандарт IPv6. Согласно статистике Google на январь 2020 года, доля IPv6 в сетевом трафике составляла около 30 %.

Количество адресов

Общее возможное количество адресов IPv4 — 4,3 миллиарда (2^32).

Общее количество IPv6-адресов — 2^128. Теоретически для IPv6 доступны 340,282,366,920,938,463,463,374,607,431,768,211,456 адреса или 340 ундециллионов (это число 340, за которым следует 36 нолей).


Инструменты для анализа DNS 🛠

Узнать DNS-провайдера и регистратора

Менеджерам следует пользоваться сервисами https://www.cy-pr.com/ или https://www.nic.ru/whois/.

Консольная команда для разработчиков

whois domain.ru

Узнать все DNS-записи домена

Менеджерам для проверки DNS-записей можно воспользоваться онлайн-сервисом https://www.reg.ru/nettools/dig

Консольная команда для разработчиков

dig <website.ru> any

Узнать IP

Менеджеры могут посмотреть прямо через браузер. Это надежнее, чем онлайн-сервисы, потому что такой способ учитывает влияние файла hosts (о нем ниже).

Аналог для разработчиков

ping domain.ru

Боремся с кэшем DNS у нашего интернет-провайдера

DNS-записи кэшируются у разных интернет-провадйеров по разному, поэтому после смены этих записей, пользователи разных провайдеров могут какое-то время видеть разный сайт: кто-то будет видеть старый, кто-то новый. У нас в офисе интернет-провайдер, у которого медленно обновляется кэш DNS, поэтому для проверки стоит либо зайти на сайт через телефон (через сотовую связь, не используя Wi-Fi), либо воспользоваться сервисом Netrenderer, либо настроить использование сторонних DNS. Проще всего, использовать Netrenderer. В перспективе удобнее прописать сторонние DNS на компьютере.

  1. Посмотреть на телефоне, используя 3G (LTE, EDGE), а не Wi-Fi.

  2. http://netrenderer.com - онлайн сервис, с помощью которого можно посмотреть на сайт из интернета, чтобы проверить применились ли DNS-записи у других пользователей. Важно понимать, что сервис создан не для этого, а для проверки отображения сайта в Internet Explorer. Поэтому не стоит смотреть на верстку, а только на то, отображается ли правильный сайт.

  3. Прописать сторонние DNS на компьютере можно с помощью инструкции. Используйте 8.8.8.8 и 1.1.1.1, это максимально актуальные и, при этом, бесплатные DNS-провайдеры. Пример инструкции (их полно в сети) https://vynesimozg.com/izmenit-adres-dns-servera-v-windows-10/

Управляем парой домен-IP самостоятельно

До сих пор мы учились только получать и анализировать сетевые данные. Но, если вы хоть немного связаны с веб-разработкой, вам придется иногда вставать у руля. Пусть даже только для вашего локального компьютера.

Файл hosts позволяет на вашем локальном компьютере “насильно” сопоставить домен и IP-адрес. Это нужно, например, для того, чтобы проверить как работает сайт, до того, как на него будет переключен домен.

В Linux и MacOS этот файл расположен по адресу /etc/hosts В Windows он расположен в c:\windows\system32\drivers\etc\hosts

Так как файл hosts является системным, то в любой ОС вам понадобятся права администратора для изменения этого файла.

Также имейте ввиду, что приоритет файла hosts выше, чем у любых DNS. Другими словами записи hosts перекрывают любые DNS. Поэтому при веб-разработке изменения в этот файл обычно вносятся временно.

Пример содержимого файла hosts:

135.181.82.90 m2data.net
192.241.249.96 new.pixelbuddha.net

На Windows можно воспользоваться программой https://hostsfileeditor.com/ Хотя я ее еще не пробовал ставить, так что аккуратнее.