Важно: эта страница создана для видео. Предполагается, что вы смотрите видео и параллельно читаете эту страницу. Приятного просмотра!
3 сетевых точки работы домена 📍
Регистратор
- Место, где регистрируются домены
- У регистратора хранится информация о владельце домена
- У регистратора задаются 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 на компьютере.
-
Посмотреть на телефоне, используя 3G (LTE, EDGE), а не Wi-Fi.
-
http://netrenderer.com - онлайн сервис, с помощью которого можно посмотреть на сайт из интернета, чтобы проверить применились ли DNS-записи у других пользователей. Важно понимать, что сервис создан не для этого, а для проверки отображения сайта в Internet Explorer. Поэтому не стоит смотреть на верстку, а только на то, отображается ли правильный сайт.
-
Прописать сторонние 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/ Хотя я ее еще не пробовал ставить, так что аккуратнее.