DNS (Domain Name System — система доменных имён): распределённая система преобразования имени компьютера или другого сетевого устройства в IP адрес.
DNS работает в сетях TCP/IP, как частный случай, DNS может хранить и обрабатывать обратные запросы, определения имени хоста по его IP адресу и т.д..
Ключевые характеристики DNS:
Распределённость хранения информации. Каждый узел сети должен хранить только те данные, которые входят в его зону ответственности и иногда адреса корневых DNS-серверов.
Кеширование информации. Узел может хранить некоторое количество данных не из своей зоны ответственности для уменьшения нагрузки на сеть.
Иерархическая структура. Структура, в которой все узлы объединены в дерево, и каждый узел может или самостоятельно определять работу нижестоящих узлов, или делегировать (передавать) их другим узлам.
Резервирование. Хранение и обслуживание своих узлов, за которое, как правило, отвечают несколько серверов, разделённые как физически, так и логически, что обеспечивает сохранность данных и продолжение работы даже в случае сбоя одного из узлов.
DNS была разработана Полом Мокапетрисом в 1983 году; оригинальное описание механизмов работы описано в RFC 882 и RFC 883. В 1987 публикация RFC 1034 и RFC 1035 изменили спецификацию DNS и отменили RFC 882 и RFC 883 как устаревшие. Некоторые новые RFC дополнили и расширили возможности базовых протоколов.
Основное свойство DNS: имя хоста и IP-адрес могут не быть тождественны, т.е. хост с одним IP-адресом может иметь множество имён, что позволяет поддерживать на одном компьютере множество веб-сайтов (это называется виртуальный хостинг). Обратное также справедливо: одному имени может быть сопоставлено множество хостов, это позволяет создавать балансировку нагрузки. С третьей стороны, бывают реально работающие IP-адреса, которым не соответствует никакое имя.
Рекурсия
Процессе поиска IP по имени:
1. браузер отправил известному ему DNS-серверу так называемый рекурсивный запрос, в ответ на такой тип запроса сервер обязан вернуть «готовый результат», например вернуть IP-адрес или сообщить об ошибке.
2. DNS-сервер, получивший запрос от клиента, последовательно отправляет итеративные запросы, на которые получает от других DNS-серверов уточняющие ответы, пока не получил авторитетный ответ от сервера, ответственного за запрошенную зону.
Записи DNS
Запись A (address record): запись адреса связывает имя хоста с адресом IP.
Запись AAAA (IPv6 address record): связывает имя хоста с адресом протокола IPv6.
Запись CNAME (canonical name record): каноническая запись имени; используется для перенаправления на другое имя.
Запись MX (mail exchange): почтовый обменник указывает сервер, или сервера, обмена почтой для данного домена.
Запись PTR (pointer): запись указателя связывает IP хоста с его каноническим именем. Часто используется для борьбы со спамом: при получении электронной почты сервер проверяет наличие PTR записи для хоста, с которого происходит отправка, в этом случае PTR запись для IP адреса должна соответствовать имени отправляющего почтового сервера, которым он представляется в процессе SMTP сесcии.
Запись NS (name server): указывает на DNS-серверы для данного домена.
Запись SOA (Start of Authority): начальная запись зоны указывает, на каком сервере хранится эталонная информация о данном домене, содержит контактную информацию лица, ответственного за данную зону, тайминги кеширования зонной информации и взаимодействия первичных и вторичных DNS-серверов.