Что происходит, когда я изменяю запись сервера имен или запись A в файле зоны или в настройках DNS?

11

Я не очень понимаю, как работает интернет и DNS. Я полон терминов, которые я не понимаю, когда пытаюсь прочитать об этом в Википедии. У меня нет опыта работы в информатике.

Что происходит при изменении записи сервера имен с ns1.oldserver.com на ns1.newserver.com? Я имею в виду, какая «машина» или что-то отвечает за направление URL-запроса пользователя с ns1.oldserver.com на ns1.newserver.com? Как пользователь узнает, что больше никогда не пойдет на ns1.oldserver.com?

Аналогично, когда я изменяю запись A для домена, чтобы она указывала со старого IP-адреса на новый IP-адрес, что на самом деле происходит? Это то же самое, что изменение записи сервера имен?

Спасибо

Джон
источник

Ответы:

19

Запись делегируется от родительских серверов имен - это похоже на цепочку (или обычно описывается как обратное дерево). Каждый DNS-клиент знает IP-адреса корневых серверов - это набор серверов (я думаю, что это 13), которые обеспечивают IP-адреса серверов реестров - Nominet для .uk, eurID для .eu и др.

Затем ваш домен регистрируется в реестре, в котором есть адреса ваших серверов имен (в вашем примере ns1.oldserver.com). Наконец, сервер имен вашего домена (или серверов имен, как у вас должно быть минимум два) обслуживает фактический запрос.

Представьте себе, например, что клиент хочет посетить www.domain.com.

Это можно разделить на три компонента - так называемый домен верхнего уровня (TLD), для которого клиент запрашивает у корневых серверов - .com в этом примере. Один из серверов имен, который бы обслуживал это, мог бы быть a.gtld-servers.net - корневые серверы передадут клиенту IP-адрес a.gtld-servers.net - они известны как NS и клейкие записи.

Далее идет фактический домен - domain.com в этом примере. Клиент запрашивает a.gtld-servers.com для domain.com. Это может затем вернуть ns1.domain.com и ns2.domain.com с соответствующими IP-адресами в качестве NS и клейких записей.

Наконец, имя хоста - www в этом примере. Поэтому клиент запросит ns1.domain.com или ns2.domain.com для домена www.domain.com и вернет фактический IP-адрес веб-сайта (запись A).

Все это происходит за миллисекунды. Типичное время ожидания для распознавателя DNS составляет 2 секунды.

Чтобы вернуться к исходному вопросу, при изменении серверов имен вы изменяете записи NS на уровне реестра (Nominet, eurID и т. Д.). После внесения изменений, когда клиент запрашивает корневые серверы для domain.com , он получит IP-адрес ns1.newserver.com вместо ns1.oldserver.com.

Как правило, все клиенты по всему миру могут заметить это изменение до 72 часов, поскольку они кэшируют все результаты в течение периода времени, указанного в записи домена. Записи NS обычно кэшируются в течение 72 часов или даже до недели. Поэтому не переводите старые серверы имен в автономный режим как минимум на несколько дней после внесения изменений.

Изменение записи A - это то же самое, что изменение записи NS - вы меняете только содержимое, как изменение записи в базе данных. В следующий раз, когда кто-то запросит вашу запись, он получит новое значение (опять же с учетом кэширования, но для записей A оно намного ниже, обычно 1/2 - 1 день.)

Если у вас есть доступ к Linux-серверу, запустите dig + trace www.google.com, и вы увидите полную цепочку запросов, которые могут дать вам лучшее представление.

Энди Шеллам
источник
Красиво объяснил!
Нитин Венкатеш
Я добавил новый DNS, поэтому у меня может быть дополнительный для резервного копирования. DNS Local Parent Mismatch - единственная ошибка, которую я получаю при проверке с помощью онлайн-инструментов. Распространяется ли он в конце концов автоматически или мой интернет-провайдер должен будет обновить свои записи?
Сверхразум