Основы Domain Name System

dns

DNS - иерархическая система доменных имён, основанная на доменах, в которой распределённая база данных реализует эту схему имён. Первостепенное использование этой системы заключается в преобразовании имён хостов в IP-адреса. Определение DNS дано в RFC 1034 и 1035.

Суть в общих чертах. Для преобразования имени в IP-адрес прикладная программа (например, браузер) обращается к "распознавателю" (служба преобразования имён, процедура), передавая ей имя в качестве аргумента. Распознаватель это имя вкладывает в UDP-пакет и посылает ближайшему DNS-серверу. Сервер в случае существования в своём кэше нужных записей отправляет их распознавателю. Далее прикладная программа устанавливает TCP-соединение с пришедшем ей IP-адресом.

Домен верхнего (первого) уровня - самый высокий уровень в DNS после корневого домена. Является начальной точкой отсчёта доменного имени в сети Интернет. Доменные имена, как известно, читаются справа-налево. Примерами доменов такого уровня могут служить .com, .org, .ru.

Характер имени домена: нечувствительно к регистру, длина одного уровня имени может достигать 63 символов (от точки до точки), общая длина домена не должна быть больше 255 символов.

Абсолютное имя домена - имя домена, заканчивающееся точкой (например, ceph.ibm.com.).

Относительное имя домена - соответственно не заканчивающееся точкой ( например, prox.ibm.com).

Запись ресурсов - единица измерения информации в DNS. У одного хоста может быть неограниченное число записей. Запись ресурса может состоять из 6 частей: имя домена (domain_name), время жизни (ttl), класс (class), тип (type), длина поля данных (rdlen), поле данных (rdata).

Запись domain_name - соответственно поле, для которого создана запись.

Запись ttl - время жизни данной записи на текущем сервере. Может быть любой длины до 86400 секунд.

Запись class - содержит запись о принадлежности к сети. В рамках Интернета это всегда IN.

Запись type - содержит значение типа записи (SOA, A, AAAA, MX, NS, CNAME, PTR, HINFO, TXT).

Запись rdlen - длина поля данных, запись rdata - поле данных.

Типы DNS-записей
-----------------------------------------------------------
SOA  | начальная запись зоны с указанием мастер сервера
-----------------------------------------------------------
A    | запись, соотносящая домен c IP-адресом
-----------------------------------------------------------
AAAA | соотносит домен с IPv6-адресом
-----------------------------------------------------------
MX   | запись указывает на почтовый сервер домена
-----------------------------------------------------------
NS   | запись авторитативного сервера для записи
-----------------------------------------------------------
CNAME| каноническое имя, псевдоним
-----------------------------------------------------------
PTR  | запись, соотносящая IP-адрес с доменом
-----------------------------------------------------------
HINFO| содержит информацию о оборудовании и ОС хоста
-----------------------------------------------------------
TXT  | может содержать любой ASCII-текст
-----------------------------------------------------------
SRV  | содержит имя хоста и порт для определенных служб
-----------------------------------------------------------

Атака Каминского - DNS-спуфинг, который ведёт к компрометации данных с внедрением в кэш фальшивых DNS-записей, чтобы перенаправить пользователей на сервер, контролируемый злоумышленником.

Киберсквоттинг - регистрация доменных имён, содержащих торговую марку, не принадлежащую регистрируемому лицу. Цель - нажива на перепродаже.

Тайпсквоттинг - регистрация доменных имён, близких по написанию с уже существующими именами. Цель - подделка оригинальных ресурсов.

Корневой сервер DNS - официальный сервер DNS, администратором которого является ICANN. Общих корневых серверов в мире всего 13 штук. Их доменные имена находятся в зоне root-servers.net и называются a.root-servers.net, b.root-servers.net и т.д.

Альтернативный корневой сервер - сервер DNS, которым могут управлять различные организации.

**DNS-сервер - приложение, предназначенное для ответов на DNS-запросы.

Авторитативный сервер DNS - отвечает за какую либо зону. Является официальным источником DNS-записи. Например, мастер и слэйв серверы являются авторитативными.

Мастер сервер DNS - первичный сервер, имеющий право на внесение изменений в данные зоны. Может существовать только в единственном числе у одной зоны.

Слэйв сервер DNS - вторичный сервер, получающий данные от мастер сервера и не имеющий права на внесение изменений. Может быть несколько у одной зоны.

Кэширующий сервер DNS - обслуживает запросы клиентов. В случае если имеет доступ к авторитативным серверам, то выполняет нерекурсивный запрос. Если не имеет доступа к таким серверам, то выполняет рекурсивный запрос к вышестоящему кэширующему серверу.

DNSBL-сервер - хранит чёрные списки адресов и имён. Формально не входит в иерархию DNS, но использует тот же механизм и протокол работы.

DNS-клиент - программа, преобразующая посредством запросов к DNS-серверу имя домена в IP-адрес.

Прямой запрос - запрос от DNS-клиента на преобразование имени в IP-адрес.

Обратный запрос - запрос на преобразование IP-адреса в доменное имя.

Рекурсивный запрос - запрос, при котором DNS-клиент получает ответ от сервера, которому он отправил запрос, независимо от числа серверов, используемых для нахождения DNS-записи.

Итеративный запрос - запрос, при котором DNS-клиент сам выполняет запросы ко всем серверам, которые нужны для получения DNS-записи.

DNS работает на 53 порту TCP и UDP. Чаще всего для DNS-клиентов используется UDP, так как их запрос помещается в дейтаграмму. Для обмена записями между DNS-серверами используется TCP.

Комментарии