Содержание
- 1 Файл hosts — как первый шаг к созданию DNS
- 2 Работа DNS в сети интернет
- 3 Ресурсные записи DNS
- 4 Пример реальных записей DNS
- 5 Выводы
- 6 Как выяснить адрес, используя средства Windows?
- 7 Использование самых быстрых DNS
- 8 Изменение настроек DNS
- 9 Решение проблем
- 10 Зачем нужны DNS-сервера и что это такое?
- 11 Как ДНС-сервера помогают браузеру ориентироваться в сети?
- 12 Как поменять DNS при переносе сайта на другой хостинг?
Содержание
Вы когда-нибудь задавались вопросом, как браузер понимает, какую именно страницу открыть когда вы вводите в строку адрес сайта? На самом деле, это глубокий вопрос, решать который стоит не непосредственно с перехода на сайты, а со связи компьютеров между собой.
В 70-х — 90-х годах 20 века существовала сеть под названием ARPANET. Это была попытка объединить множество компьютеров министерством обороны США для возможности передачи информации во время войны. Важность такого подхода заключалась в быстрой передачи информации на дальние расстояния. Впоследствии принципы работы ARPANET легли в основу современного интернета.
Изначально вся сеть объединяла компьютеры в четырёх различных институтах США:
- Калифорнийский университет в Лос-Анджелесе;
- Стэнфордский исследовательский центр;
- Университет Юты;
- Калифорнийский университет в Санта-Барбаре.
Учёные этих институтов быстро пришли к единому мнению, что передавать друг другу информацию об исследованиях удобнее при помощи новой сети. Для этого было достаточно знать идентификатор того компьютера, на который передаётся сообщение. Сейчас такие идентификаторы называются IP-адресами. У каждого устройства в интернете есть такой идентификатор и именно по нему обращаются устройства друг к другу.
В самом начале компьютеров, подключённых к сети, было несколько десятков, и их идентификаторы было легко запомнить. Можно было записать эти адреса в блокнот и использовать его так же, как и телефонные книги.
Время шло, и уже к середине 80-х годов вместо нескольких десятков компьютеров сеть стала насчитывать несколько тысяч. И каждый из них имел уникальный идентификатор, который становилось всё сложнее учитывать вручную или запоминать. Необходима была система, которая позволит очеловечить имена компьютеров и хранить все адреса в одном месте, чтобы каждый компьютер в сети имел один и тот же набор всех идентификаторов.
Файл hosts — как первый шаг к созданию DNS
Для решения задачи разработчики решили использовать словарь, который связывал уникальное имя и IP-адрес каждого компьютера в сети. Таким словарём стал файл hosts.txt, который и отвечал за привязку IP-адреса к имени компьютера. Файл лежал на сервере Стэнфордского исследовательского института, и пользователи сети регулярно вручную скачивали этот файл на свои компьютеры, чтобы сохранять актуальность словаря, ведь новые компьютеры появлялись в сети почти каждый день.
Выглядел hosts.txt тогда (да и сейчас) таким образом:
192.168.10.36 MIKE-STRATE-PC Сетевой (IP) адрес Имя компьютера
При наличии такого файла на компьютере пользователя для связи с компьютером Майка, можно было не запоминать цифры, а использовать понятное латинское имя «MIKE-STRATE-PC».
Посмотрим, как выглядит файл и попробуем добавить туда новое имя, чтобы подключиться к компьютеру с использованием данного имени. Для этого отредактируем файл hosts. Вы можете найти его на своём компьютере по следующему адресу:
- В Unix-системах:
/etc/hosts
- В Windows-системах:
%Путь до папки Windows%/system32/drivers/etc/hosts
Компьютеру с IP-адресом 192.168.10.36, который находится внутри локальной сети мы указали имя «MIKE-STRATE-PC». После чего можно воспользоваться командой ping, которая пошлёт специальный запрос на компьютер Майка и будет ждать от него ответа. Похоже на то, как вы стучитесь в дверь или звоните в звонок, чтобы узнать, «есть ли кто дома?» Такой запрос можно послать на любой компьютер.
По мере развития сети и «обрастания» её новыми клиентами, такой способ становился неудобным. Всем пользователям компьютеров было необходимо всё чаще скачивать свежую версию файла с сервера Стэнфордского исследовательского института, который обновлялся вручную несколько раз в неделю. Для добавлений же новых версий было необходимо связываться с институтом и просить их внести в файл новые значения.
В 1984 году Пол Мокапетрис (Paul Mockapetris) описал новую систему под названием DNS (Domain Name System / Система доменных имён), которая была призвана автоматизировать процессы соотнесения IP-адресов и имён компьютеров, а также процессы обновления имён у пользователей без необходимости ручного скачивания файла со стороннего сервера.
Работа DNS в сети интернет
В настоящее время интернет окружает нас повсюду — мы используем его в мобильных и настольных устройствах. Системы видеонаблюдения и даже чайники взаимодействуют друг с другом с помощью интернета, и для корректной связи с ними нужна система, с помощью которой пользователи смогут одним запросом в адресной строке подключиться к нужному сервису. Всё это ложится на плечи системы DNS, которая внутри себя хранит намного больше информации, чем просто IP-адрес и название устройств. Записи в DNS также отвечают за корректную отправку электронных писем, связывают друг с другом разные домены и доменные зоны.
DNS является распределённой системой, а значит она имеет множество узлов, каждый из которых ответственен за свою зону. Такое возможно благодаря тому, что сама по себе структура DNS является иерархической, то есть выделяет зоны ответственности, где каждый родитель знает о расположении своего дочернего сервера, и знает зону его ответственности.
Рассмотрим работу DNS и её составных частей поближе.
Терминология
Основными компонентами DNS являются:
Домен (доменное имя) — символьное имя для обозначения сервера в сети интернет. Доменные имена являются иерархической структурой, в которой каждый уровень отделяется точкой. Основными уровнями являются:
- Корневой домен. В урле он не используется, но всегда подразумевается. От него начинается построение всех урлов в сети интернет
- Домены верхнего уровня. К ним относятся домены .ru, .com, .net, .su и так далее. Также этот домен называют доменом первого уровня.
- Домен второго уровня (или основной домен). Это основное имя вашего сайта
- Поддомены (домены третьего, четвёртого, пятого и т.д. уровня). Сюда входят все поддомены основного домена.
DNS-сервер — система, ответственная за хранение и поддержание в актуальном состоянии записей о своих дочерних доменах. Каждый DNS-сервер ответственен только за свою зону, то есть DNS-сервер домена .io знает о том, где расположен домен hexlet, DNS-сервер которого знает о расположении своих поддоменов.
Корневой DNS-сервер — система, знающая расположение (IP-адреса) DNS-серверов доменов верхнего уровня.
Ресурсная запись — единица информации DNS-сервера. Каждая ресурсная запись имеет несколько полей:
- Имя (домен, к которому относится запись)
- Тип
- Параметры
- Значение
Подключение
Необходимо понимать, что доменное имя — это всего лишь абстракция для людей. Сам компьютер и приложения (например, браузер) обращается к сервисам внутри сети интернет только по IP-адресам.
Рассмотрим процесс получения IP-адреса по доменному имени на примере домена ru.hexlet.io
.
Возможны два варианта событий:
-
Компьютер посылает запрос на известный ему DNS-сервер. Чаще всего им является DNS-сервер поставщика интернет-услуг (провайдера): какой IP-адрес у домена ru.hexlet.io?. DNS-сервер провайдера находит в своей базе информацию о том, что домен
ru.hexlet.io
расположен по IP-адресу 104.25.238.104 и возвращает значение нашему компьютеру. Этот процесс похож на то, как использовался файлhosts.txt
. -
Ближайший известный DNS-сервер не имеет записи о том, по какому IP-адресу располагается домен
ru.hexlet.io
. В таком случае запускается цепочка процессов, благодаря которым наш компьютер получит IP-адрес домена:-
Так как домен является иерархической структурой, и все DNS-сервера знают IP-адреса корневых DNS-серверов, то к ним и происходит запрос на получение IP-адреса домена.
-
Корневые DNS-сервера, в соответствии со своей зоной ответственности знают о том, где располагаются DNS-сервера доменов верхнего уровня. Эти адреса возвращаются DNS-серверу нашего провайдера, после чего на нужный DNS-сервер (в нашем случае на DNS-сервер домена .io) посылается запрос на получение IP-адреса домена ru.hexlet.
-
В соответствии со своей зоной ответственности DNS-сервер домена верхнего уровня возвращает IP-адрес DNS-сервера домена hexlet, на который посылается запрос на получение IP-адреса поддомена ru.
-
DNS-сервер возвращает IP-адреса поддомена ru, после чего DNS-сервер нашего провайдера возвращает полученный адрес на наш компьютер, который уже может обратиться к домену ru.hexlet.io по его IP-адресу.
-
Рекурсия в DNS
Можно заметить, что оба описанных выше варианта сильно различаются: в первом случае мы просто послали запрос и получили ответ, а во втором — возникла необходимость идти от самого корневого домена в процессе поиска нужной нам записи. Такой процесс является рекурсивным, потому что ближайший DNS-сервер непрерывно посылает запросы к другим DNS-серверам до тех пор, пока не получит необходимые ресурсные записи. Данный процесс можно визуализировать следующим образом:
При запросах 1 и 2 ближайший сервер будет получать информацию о местонахождении DNS-серверов, которые входят в зону ответственности того сервера, на который был послан запрос. При запросе 3 будут получены необходимые ресурсные записи домена hexlet и его поддоменов.
Рекурсивный поиск — это достаточно долгая операция, которая к тому же сильно нагружает сеть и сами DNS-сервера. Именно для того, чтобы избавиться от рекурсии каждый DNS-сервер кеширует информацию о записях, которые получает, для быстрой отдачи этой информации пользователю.
Как видно, рекурсивный поиск предполагает нахождение конечного ответа на наш запрос путём поиска записи по всем необходимым DNS-серверам, начиная с корневого. В противовес такому способу также существует итеративный запрос, который в отличие от рекурсивного выполняет всего лишь одну итерацию — это запрос ближайшему DNS-серверу, от которого мы можем получить как закешированный ответ, так и данные той зоны, за которую он ответственен. Важно отметить, что итеративный запрос предполагает всего один такой запрос.
Чаще всего в интернете DNS-сервера умеют посылать рекурсивные запросы, потому что в таком случае ответ можно закешировать, что в дальнейшем позволит снизить нагрузку как на сам сервер, так и на другие DNS-сервера. Время, на которое DNS-сервер кеширует информацию, указывается в ресурсной записи DNS, о которой сейчас пойдёт речь.
Ресурсные записи DNS
Современный интернет подразумевает не только получение IP-адреса по доменному имени, но и пересылку электронной почты, подключение дополнительных сервисов аналитики к сайту, настройку защищённого протокола HTTPS. Это чаще всего делается с помощью ресурсных записей DNS.
Рассмотрим, какие ресурсные записи используются, и на что они указывают. Основными ресурсными записями DNS являются:
A-запись — одна из самых важных записей. Именно эта запись указывает на IP-адрес сервера, который привязан к доменному имени.
MX-запись — указывает на сервер, который будет использован при отсылке доменной электронной почты.
NS-запись — указывает на DNS-сервер домена.
CNAME-запись — позволяет одному из поддоменов дублировать DNS-записи своего родителя. Делается это для того, чтобы перенаправить запрос с одного домена на другой (чаще всего для перенаправления домена с поддоменом www на домен без такого поддомена).
TXT-запись — в этой записи хранится текстовая информация о домене. Часто используется для подтверждения прав на владение доменом, посредством добавления определённой строки, которую присылает нам интернет-сервис.
Ресурсные записи почти всегда одинаковые, но для некоторых записей могут появляться другие поля, например в MX-записях также присутствует значение приоритета. В основном ресурсные записи имеют следующую структуру:
Имя записи TTL Класс Тип записи Значение
Разберём подробнее:
Имя записи — указывается домен, которому принадлежит данная ресурсная запись.
TTL(time to live / время жизни) — время в секундах, на которое будет закешировано значение ресурсной записи. Это необходимо для разгрузки DNS-серверов. Благодаря кешированию и возможна ситуация, что ближайший DNS-сервер знает IP-адрес запрашиваемого домена.
Класс — предполагалось, что DNS может работать не только в сети интернет, поэтому в записи указывается и её класс. На сегодняшний день поддерживается только одно значение — IN (Internet).
Тип — указывает тип ресурсной записи, основные из которых были разобраны выше.
Значение — непосредственно значение ресурсной записи. В зависимости от типа ресурсной записи значения могут быть представлены в разном виде.
Посмотрим, в каком виде эти записи хранятся на DNS-серверах на примере домена ya.ru. Для этого воспользуемся утилитой dig, которая получает все доступные ресурсные DNS-записи от DNS-сервера и выводит их пользователю.
Утилита dig является DNS-клиентом и входит в состав одного из самых распространённых DNS-серверов BIND.
Пример реальных записей DNS
Не пугайтесь такого длинного вывода. Уже сейчас можно понять почти всё, что тут указано. Разберём вывод каждой секции более детально.
Вывод состоит из нескольких частей:
- Шапка
- Секция запроса
- Секция ответа
- Служебная информация
Шапка запроса
; <<>> Net::DNS::Dig 0.12 <<>> -t any ya.ru. ;; ;; Got answer. ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 52109 ;; flags: qr rd ra; QUERY: 1, ANSWER: 13, AUTHORITY: 0, ADDITIONAL: 0
Здесь указывается проставленные флаги нашего запроса, количество запросов и ответов, а также другая служебная информация.
Секция запроса
;; QUESTION SECTION: ;ya.ru. IN ANY
В секции запроса указывается домен, к которому происходит обращение, класс записи и те записи, которые мы хотим получить. ANY указывает на то, что нужно вывести все доступные ресурсные записи, но если вы хотите поэкспериментировать с утилитой сами, то можете с помощью специального ключа получить вывод только конкретных записей, которые интересуют в настоящий момент.
Секция ответа
Секция ответа достаточно большая, поэтому для удобства разобьём её по типам ресурсных записей.
;; ANSWER SECTION: ya.ru. 7199INNS ns1.yandex.ru. ya.ru. 7199INNS ns2.yandex.ru. ya.ru.599INA 87.250.250.242 ya.ru.599INAAAA 2A02:6B8:0:0:0:0:2:242
Как запись A, так и AAAA-запись указывают на IP-адрес, который привязан к нашему домену. A-запись указывает IP в формате IPv4, а запись AAAA — в формате IPv6.
ya.ru.7199INMX 10 mx.yandex.ru.
MX-запись также имеет параметр приоритета. Так как серверов для отправки почты может быть несколько, то и записей может быть много, поэтому для определения основного сервера указывается приоритет записи. Чем меньше число, тем выше приоритет.
ya.ru.3599INSOA ns1.yandex.ru. sysadmin.yandex.ru. 2019021800 900 600 2592000 900
Запись SOA(Start of Authority) указывает на несколько различных параметров:
- Сервер с эталонной информацией о текущем домене
- Контактную информацию ответственного лица
- Различные параметры кеширования записей
Бывают и некоторые более специфичные ресурсные записи, о которых здесь не было речи, но это не значит, что они бесполезны. Полный перечень таких записей всегда можно найти в документации (например по DNS-серверу BIND).
Выводы
DNS-сервера сейчас составляют основу всего интернета и используются почти в каждом действии пользователя в сети, будь то переход на сайт, отправка электронной почты, работы с интернет-приложением на телефоне и так далее. Поэтому знания о принципах работы DNS-серверов и основных ресурсных записях, благодаря которым и возможно перемещение по сети интернет, являются важными для разработчика.
Конечно, получить точный ответ на поставленный вопрос просто, достаточно ознакомиться с содержанием договора абонента с поставщиком интернета или сделать звонок в круглосуточную службу поддержки провайдера.
Однако если лень подниматься и искать документы и не хочется напрягать себя разговорами по телефону, то можно выяснить адрес, открыв официальную страницу поставщика услуг связи в интернете.
Перечисленные методы настолько просты, что не требуют инструкций, а ниже представлено руководство о том, как выяснять адрес DNS с помощью встроенных инструментов Windows так, как это делают продвинутые юзеры.
Содержание
Как выяснить адрес, используя средства Windows?
Разработчики ОС из «Майкрософт» оснастили все Windows мощным инструментом под названием «КС» (Командная строка). Использование «КС» позволяет быстро определять применяемые операторами связи сетевые параметры для доступа компьютера пользователя в глобальную сеть.
Опытные пользователи не всегда довольны стабильностью связи даже таких популярных провайдеров как «Билайн» или «Byfly».
Зная простые приемы использования сторонних DNS и прописав их в настройках в качестве предпочтительного и альтернативного, можно значительно повысить скорость работы ПК во всемирной паутине.
Но прежде чем заменить адрес, используемый по умолчанию на альтернативный вариант, надо посмотреть текущий.
С целью самостоятельного решения вопроса, как точно узнать предпочитаемый DNS-сервер, потребуется исполнить такие последовательные действия:
- Клацнуть «Пуск»;
- Перевести стрелочку на строчку «Все программы»;
- Далее развернется перечень приложений, установленных в компьютер, где следует войти в раздел «Стандартные»;
- В содержимом раздела найти «КС» и клацнуть ее для запуска консоли;
- Если вызов «КС» многочисленным клацаньем мышки вызвал затруднения, то следует пальцем руки надавить на клавишу «Win» на клавиатуре ПК, а другим пальцем щелкнуть по кнопке с латинской буквой «R». Это ловкое движение вызовет меню «Выполнить»;
- Затем напечатать «cmd»;
- Клацнуть «Ok»;
- Далее в «КС» напечатать «nslookup»;
- Кликнуть «Ввод»;
- Готово. В «КС» отобразится искомый адрес.
Вот так просто любой пользователь может определить адрес DNS и при этом не имеет значение, с каким провайдером у него заключен договор, например, для абонентов «Киевстар» и «Ростелеком» действия будут одинаковы.
Использование самых быстрых DNS
Применение скоростных DNS для конкретных условий подключения ПК пользователя является одним из лучших методов увеличения скорости работы интернета.
Потребуется выполнить следующие шаги:
- Скачать приложение «NameBench» (утилита свободно распространяется в глобальной сети);
- Запустить утилиту (инсталлировать ее не надо);
- Настраивать утилиту не надо. Сразу клацнуть «Start Benchmark»;
- Подождать;
- Отобразится подробный отчет;
- В отчете показаны сведения с оптимальными параметрами соединения, которые пользователю остается только использовать, вписав предпочитаемый и альтернативный адреса в свойства используемого протокола;
Если у пользователя возникли сложности с вводом сетевых параметров, то ниже описанная инструкция поможет даже новичку быстро справиться с задачей.
Изменение настроек DNS
Недостаточно уметь проверять используемые сетевые настройки, необходимо знать, как их изменять. Процедура простая и осуществляется через «ЦУС и ОД» (Центр управления сетями и общим доступом).
Шаги:
- Открыть меню «ЦУС и ОД». Удобнее всего это сделать, клацнув иконку сети в трее;
- В отобразившемся меню кликнуть «ЦУС и ОД»;
- Далее в окне «ЦУС и ОД» клацнуть «Подключение по локальной сети»;
- В закладке «Общие» кликнуть «Свойства»;
- Выделить используемый протокол;
- Клацнуть «Свойства»;
- Ввести параметры, которые были определены после исполнения предыдущего параграфа этого руководства;
- Перезапустить ПК;
- Готово.
Решение проблем
Иногда появляется ошибка подключения, при этом сначала рекомендуется удостовериться в надежности контакта сетевого кабеля с ПК. В случае подключения ПК через роутер, потребуется испытать работу компьютера, напрямую подключив его сетевую карту с проводом от провайдера.
Если доступ к сети появился, то проблема в маршрутизаторе. Простая процедура перезагрузки роутера обычно позволяет устранить неполадки с соединением.
Чтобы перезагрузить прибор необходимо выполнить следующие шаги:
- Открыть в ПК интернет-обозреватель;
- Ввести IP-адрес, прописанный на шильдике внизу аппарата и клацнуть «Ввод»;
- Далее с шильдика переписать имя и код доступа к web-конфигуратору прибора и клацнуть «Войти»;
Примечание: Если пользователь ранее изменял параметры авторизации, то он их знает.
4. Войти в закладку «Системные инструменты»; 5. Перейти во вкладку «Перезагрузка»; 6. Клацнуть виртуальную клавишу «Перезагрузка»; 7. Подождать;
8. Готово.
Здравствуйте, уважаемые читатели блога KtoNaNovenkogo.ru. О том, что такое интернет и когда он появился, мы с вам уже говорили. Говорили и про то, что такое есть сайты и что такое Веб. Однако, есть еще и техническая сторона работы интернета, которая тоже весьма важна и по своему интересна.
Так, вот DNS — это одна из основополагающих вещей, на которых построена работа всего интернета. Это аббревиатура расшифровывается как Domain Name System, что в переводе означает доменная система имен.
Этого вопроса (устройства доменной системы имен) я уже касался, когда рассказывал о том, что такое домены разного уровня и доменные зоны, но только вскользь. Сегодня я хочу поговорить о роли ДНС-серверов в работе сайтов и всего интернета в целом.
Зачем нужны DNS-сервера и что это такое?
Когда интернет только формировался, то было решено внедрить такую вещь, как домены. Фактически, это имя для узла сети (компьютера, сервера или в более общем смысле слова — хоста).
Дело в том, что на технологическом уровне все устройства в любой сети уже имеют уникальные имена (идентификаторы или IP), но они мало подходят для использования их людьми, ибо представляют из себя набор цифр (читайте про то, что такое АйПи и MAC адреса).
Система же доменных имен оперирует уже полноценными именами (буквы латиницы, цифры, тире и нижнее подчеркивание допускается при их формировании). Их гораздо легче запомнить, они несут смысловую нагрузку (доменное имя моего блога ktonanovenkogo.ru о чем-то уже говорит, а реальный его АйПи 109.120.169.66 малоинформативен) и ими проще оперировать.
Последнее относится именно к человеческому фактору, ибо машинам по-прежнему удобнее использовать IP адреса, что они и делают. Да, да, ваш браузер, когда вы вбиваете в него адрес ktonanovenkogo.ru, такого адреса на самом деле не знает. Но зато он понимает, что это доменное имя, а значит информацию о том, на каком IP размещен данных сайт, он сможет получить от DNS-сервера.
Вот именно на этих ДНС-серверах (иногда их еще называют NS от Name Server, т.е server имен) и держится весь интернет (как плоский мир на трех китах, стоящих на черепахе). Сервер, если вы помните, это просто служебный компьютер не требующий непосредственного участия человека в своей работе (настроили его — он и пашет в режиме 24 на 7). И таких DNS-серверов в сети очень много.
Как работает DNS и причем тут файл Hosts?
На заре интернета ДНС вообще не существовало. Но как же тогда работала сеть? Как браузер понимал, что ktonanovenkogo.ru — это то же самое, что IP адрес 109.120.169.66? За это дело тогда (да и сейчас тоже) отвечал так называемый файл Hosts, где были прописаны все хосты тогда еще маленького интернета.
Такой файл находился (и сейчас находится) на каждом компьютере пользователя (на вашем тоже он есть) подключенного к сети (как его найти смотрите по приведенной выше ссылке).
В файле Hosts было прописано несколько тысяч строк (по числу сайтов в интернете на тот момент), в каждой из которых сначала был прописал IP адрес, а затем через пробел соответствующий ему домен. Вот так выглядела бы запись для моего блога, существуй он в сети лет так двадцать пять — тридцать назад:
109.120.169.66 ktonanovenkogo.ru
Любой браузер (что это такое?) на любом компьютере (даже сейчас) при вводе в адресную строку УРЛа (что это такое?) прежде всего обращается к файлу Hosts на предмет поиска там введенного доменного имени, и лишь не найдя там нужной записи обращается за этой информацией к ближайшему DNS-серверу (как правило, это сервак вашего интернет-провайдера).
Сейчас файл Hosts стал рудиментом (пережитком прошлого) и там обычно есть только одна запись (127.0.0.1 localhost) означающая, что локальным хостом нужно считать данный компьютер.
Правда иногда его используют вирусы и другие зловреды, чтобы вместо одного сайта вы попадали на другой (про фишинг слышали?) — ведь для этого достаточно добавить всего одну строчку в файл Hosts (можете сами прописать в нем, например, «109.120.169.66 yandex.ru» и вместо Яндекса браузер вам будет упорно открывать мой блог). Вот именно поэтому его целостность охраняют большинство антивирусов.
Как ДНС-сервера помогают браузеру ориентироваться в сети?
То есть сейчас всеми делами с адресацией в сети рулят именно ДНС-сервера, хотя по своей сути они очень похожи на файл Hosts, но только хранятся на них данные о многих миллионах адресов, да и размещены они удаленно.
Кроме этого, NS-сервера имеют иерархическую структуру, каждый из уровней которой отвечает за свою часть доменных зон. Ну и, конечно же, они хранят информацию распределенно с многократным резервированием, чтобы сбой на одном устройстве не вызвал коллапс (что это такое?) части сети.
Еще раз поясню цепочку «метаний» браузера при вводе в него Урл адреса сайта. Итак, сначала он обращается к файлу Hosts, потом к ближайшему ДНС-серваку. Он же в ответ передает нужную информацию (о том, какой именно IP адрес соответствует данному домену) нашему браузеру или запрашивает ее у вышестоящего NS-сервера, если такой информации у себя он не находит.
И лишь только после этого браузер обращается к самому сайту по только что узнанному IP адресу. Долго, правда? Но что делать? Иначе никак.
Правда браузер «хитрит» и сохраняет всю полученную от ДНС серверов информацию в свой кеш, чтобы потом не терять время на эти запросы по поводу IP адреса сайта. Естественно, что кеш хранится не вечно, но часто посещаемые пользователем сайты благодаря этому в браузере будут открываться быстрее (кэш — это вообще вещь!).
Какую роль играют NS-сервера хостинга в DNS системе?
На приведенном выше рисунке показана сильно упрощенная схема, по которой не очень понятна роль отдельных уровней ДНС-серверов. Чуть ниже приведена более развернутая схема (хотя и опять же очень упрощенная).
Если вы владелец сайта, то знаете, что при покупке хостинга (или получении его бесплатно) вам выдают адреса NS-серверов (обычно их два), которые нужно будет прописать у вашего регистратора доменных (как это сделать описано чуть ниже). Например, мой хостер Инфобокс выдал мне два адреса (ns1.pa.infobox.ru и ns2.pa.infobox.ru).
Вопрос, как эти адреса NS участвуют в схеме определения IP-адреса по имени домена. Собственно, это показано на приведенном выше рисунке, но я все же поясню:
- Как я уже писал выше, ваш компьютер при вводе в адресной строке Урла типа «ktonanovenkogo.ru» в первую очередь связывается с DNS-серверами вашего интернет-провайдера. Если в их кэше имеется IP адрес соответствующий данному домену, то он незамедлительно будет выдан браузеру и все на этом закончится. В смысле, браузер используя полученный АйПи обратится к моему блогу и откроет запрашиваемую вами страницу.
- Если у вашего интернет-провайдера этой информации не найдется, то он обратится к одному из корневых ДНС-серваков (их не так уж и много и информация на них обновляется не часто — от одного до нескольких раз в сутки).
- Корневые серваки не могут дать вам сразу пару «домен — IP», но зато могут сказать, где эту информацию наверняка можно найти. Т.е. они выдают интернет-провайдеру адреса тех ДНС-серверов, в которых прописана искомая информация об интересующем домене. В нашем случае это будут как раз те самые адреса NS хостера, где физически в данный момент расположены файлы сайта (ns1.pa.infobox.ru и ns2.pa.infobox.ru в моем случае).
- Получив эту информацию ваш интернет-провайдер обратится по одному из полученных NS-адресов и найдет там информацию о том, какой АйПи-адрес на данный момент соответствует домену «ktonanovenkogo.ru».
- ДНС-server вашего интернет-провайдера запомнит эту информацию в свой кэш (чтобы при следующих обращения не повторять всю приведенную выше цепочку запросов) и незамедлительно передаст искомый IP вашему браузеру.
- И только после этого браузер сможет обратиться к виртуальному серваку моего хостинга, где расположен блог https://ktonanovenkogo.ru. В результате на экране вашего компьютера откроется одна из страниц моего сайта.
Как поменять DNS при переносе сайта на другой хостинг?
Именно благодаря системе распределенных DNS-серверов, например, при переезде сайта на другой хостинг (а из-за этого ведь меняется его фактический IP адрес, как вы понимаете) он по-прежнему будет доступен пользователям, как только новая информация (о смене АйПи адреса данным доменом) пропишется во всех ДНС интернета (это правда может занять от нескольких часов до пары суток).
Новая информация (о смене соответствия данного домена и физического IP адреса сайта) в первую очередь прописывается на NS-серверах вашего нового хостинга. Вы же идете в панель регистратора домена (где его покупали) и меняете там адреса NS-серверов старого хостинга, на те, что получили от нового хостера.
Я пользуюсь услугами старейшего регистратора в рунете (промо-код на скидку EB69-6AD7-D77D-43BD) и смена NS-адресов у него проходит так:
- Из выпадюащего списка с адресом вашей почты в правом верхнем углу выбираете пункт «Личный кабинет»
- Переходите на вкладку «Мои домены»
- В столбце «DNS» напротив нужного домена кликаете по строке с текущими адресами НС-серверов
- Во всплывающем окне стираете адреса старых НС-серверов и вместо них прописываете новые (полученные от нового хостера)
- Жмете на кнопку «Добавить»
То же самое можно сделать кликнув по названию домена (в первом столбце) и выбрав на открывшейся странице в области «Управление доменом» пункт «DNS-серверы»:
На открывшейся вкладке нужно будет лишь заменить старые адреса на новые и нажать на кнопку «Изменить».
В любом случае, изменения не вступят с силу сразу. Лишь с течением времени (потихоньку — до двух суток) вся структура ДНС-серверов пропишет эти изменения и пользователи со всех концов света будут попадать на ваш сайт уже живущий на новом хостинге.
Понятно, что на эти один-два дня (пока информация об изменении IP адреса сайта расходится по всей структуре доменной системы имен) на старом хостинге должна находиться рабочая копия сайта, чтобы не было перебоев в его работе. Кстати, не примените ознакомиться с материалом про то, что такое виртуальные хостинг и выделенный server, и что из них лучше выбрать.
Используемые источники:
- https://guides.hexlet.io/dns/
- https://nastrojkin.ru/network/dns/predpochitaemyj-dns-server.html
- https://ktonanovenkogo.ru/vokrug-da-okolo/hosting/chto-takoe-dns-kak-dns-servera-interneta.html