DNS
Что такое DNS?
DNS значит Domain Name System. Paul Mockapetris описал её в 1983 году. Человек помнит имя, а компьютер идёт по номеру. Этот номер — IP-адрес. Запрос сначала идёт к близкому распознавателю. Если распознаватель не знает ответ, он спрашивает сервер, ответственный за имя. Ответственный сервер хранит записи этого имени. Когда запись меняется, старый ответ может ещё побыть в памяти. Поэтому изменение не появляется везде в ту же секунду.
Для чего нужен DNS?
DNS нужен для имени сайта, почтового сервера и связи одного имени с другим. Браузер не берёт страницу из DNS. Сначала он берёт адрес, потом идёт по HTTP.
- Связать имя с одним IP-адресом
- Сказать, на какой сервер идёт почта
- Направить одно имя на другое
- Держать старый адрес в памяти какое-то время
Что можно делать с DNS?
Через DNS меняют, куда смотрит имя. Файл им не переносят. Запись A говорит номер, CNAME — другое имя, MX — почтовый сервер. Неверная запись может увести сайт на другую машину. Сертификат HTTPS — для имени. Когда адрес меняется, сам сертификат не устаревает, но имя должно указывать на ту машину.
Сложно ли освоить DNS?
Записать одну запись легко. Трудность во времени ожидания. Старый ответ может оставаться часами. Две записи CNAME, которые смотрят друг на друга, делают петлю, и имя не открывается. Сменить имя и оставить файл на старом сервере тоже теряет страницу.
Плюсы и ограничения
Плюс: человек не запоминает номер, и имя может остаться, когда адрес меняется. Ограничение: изменение не видно везде сразу. DNS — не содержание страницы. Содержание на сервере, на который указывает адрес.
Основные понятия
Имя — часть, которую читает человек. Запись — один ответ для этого имени. Распознаватель — близкий сервер, который спрашивает.
- Запись A говорит номер
- Запись AAAA говорит более новый вид номера
- MX направляет почту
- Время ожидания — жизнь старого ответа
Короткий пример
Это простая строка, которая спрашивает номер имени. Она не переносит сайт и не меняет запись.
nibrascode.com. A 203.0.113.10
Частые вопросы
- DNS и HTTP — одно и то же? Нет. DNS переводит имя в номер. HTTP просит страницу у сервера по этому номеру.
- Когда запись меняют, сайт сразу открывается везде? Не всегда. Старый ответ может ещё побыть.
- DNS переносит файл? Нет. Он только говорит, куда смотрит имя.