Опубликован: 21.11.2006 | Уровень: специалист | Доступ: платный
Лекция 4:

DNS и доменные имена

Поля ответа, полномочий и дополнительной информации

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

Например, если запросить информацию об МХ -записях домена, то в поле ответа будет получена информация об МХ -записях, а в поле дополнительной информации — записи А для серверов, указанных в поле ответа. Таким образом, с помощью одного DNS-запроса можно узнать и имя, и IP-адрес почтового сервера для домена.

Формат представления исходной записи в пакете DNS показан в табл. 4.4.

Таблица 4.4. Форматы полей ответа, полномочий и дополнительной информации
Разделы Описание
Names Строка переменной длины для доменного имени, относящегося к исходной записи
TYPE Тип исходной записи
CLASS Класс исходной записи ( IN для Internet)
TTL 32-битное значение времени жизни для данной записи
RDLENGTH 16-битовая длина для данных в записи
RDATA Строка переменной длины с описанием записи

В поле ответа значения RDATA соответствуют результатам обработки запроса. Записи МХ представляются не в текстовом формате. Вместе с именем почтового сервера в них вносится значение приоритета.

Сокращение имен

Если в качестве ответов возвращается несколько записей, может возникнуть дублирование текстовых данных. Такая ситуация возникает, например, при возвращении двух записей типа NSns1.isp.net и ns2.isp.net. Эффективнее было бы просто возвращать ответ ns1 и ns2 в домене isp.net. Для уменьшения размера пакета во время DNS-запроса в протоколе DNS реализован метод сокращения передаваемой информации по вышеописанному принципу. Этот метод был разработан для устранения дублирования доменной информации. Для отслеживания дублированной информации была разработана система указателей. Как уже отмечалось ранее, первым в разделе имени является байт, определяющий длину доменного имени. Для сокращения имен значения двух старших бит в нем были изменены. Если эти биты оба равны 0, то байт длины по-прежнему отвечает только за длину доменного имени. Если же оба этих бита равны 1, то значение байта становится указателем смещения в разделе имен, которое указывает на остаток доменного имени, подсоединяемый к имени хоста.

DNS и электронная почта

Чтобы правильно доставить почту компьютеры должны следовать определенному алгоритму. Знание этого алгоритма пригодится при решении проблем в работе электронной почты. Когда удаленный клиент посылает электронное сообщение по адресу prez@smallorg.org, перед его отправкой происходит следующее.

  • Локальный DNS-сервер клиента сначала должен определить, на какой компьютер в домене smallorg.org можно отсылать электронную почту. Решение об этом он принимает на основе МХ -записей, полученных для домена smallorg.org.
  • Если в базе данных или кэше имен локального DNS-сервера не содержится никакой информации об этом домене, то он должен сформировать запрос в Internet и искать ответ там. Прежде всего он попытается получить эту информацию от одного из DNS-серверов верхнего уровня. Естественно, в нем не будет информации о записи МХ для вашего домена, но он определенно получит сведения о DNS-сервере, в ведении которого находится домен .org.
  • Этот сервер, в свою очередь, также не будет иметь информации о ваших МХ -записях и т.п., но он должен иметь IP-адрес DNS-сервера для домена smallorg.org и запросить его о соответствующих МХ -записях. Если имеется одна и более записей МХ для данного домена, то все они отсылаются в порядке следования клиенту, от которого поступил запрос.
  • Теперь, когда клиент обладает IP-адресом (или адресами), он пытается установить SMTP-соединение (см. "Протокол SMTP" , "Протокол SMTP") с главным почтовым сервером домена smallorg.org.
  • Если это соединение установить не удалось, то клиент будет устанавливать соединение по протоколу SMTP со вторичным почтовым сервером, и так далее, пока соединение не будет установлено или не останется серверов, к которым он может обратиться. С этого момента все дальнейшие действия зависят от почтовой программы у клиента. Большинство почтовых программ попытаются повторить весь процесс установки соединения спустя несколько часов. Они будут пытаться повторить этот процесс указанное число раз, после чего делают заключение о невозможности доставки почты.

Если база данных DNS сконфигурирована неправильно, то в поисках ответственного за доставку почты в вашем домене хоста DNS может прервать поиски и вернуть клиенту ответ с сообщением об ошибке. Помните, что сама система DNS не участвует в доставке сообщений электронной почты. Цель DNS — предоставление удаленному клиенту IP-адреса, компьютера который способен принимать и обрабатывать электронную почту в домене smallorg.org. Получив этот IP-адрес, удаленный клиент может инициировать почтовый сеанс по протоколу SMTP.

ОС Linux как клиент DNS

Если нет выделенного соединения с сетью Internet, то нежелательно использовать сервер электронной почты на базе ОС Linux еще и в качестве DNS-сервера для вашего домена. Например, если кто-нибудь попытается послать вам электронное письмо в три часа утра и в это время Linux-сервер не будет подключен к Internet, то, вероятно, отправитель просто не сможет преобразовать доменное имя, и сообщение не будет отправлено. Провайдерами Internet обычно поддерживается DNS-сервер для клиентов, которые постоянно подключены к Сети. DNS-сервер провайдера направляет удаленного клиента на почтовый сервер, обслуживающий ваш домен. Если же ваша сеть не подключена к Internet постоянно, то, вероятнее всего, провайдер будет принимать и накапливать почтовые сообщения, адресованные в вашу сеть, чтобы в удобное для вас время почтовый сервер на Linux смог подключиться и забрать их.

Если же ваш почтовый сервер имеет постоянное соединение с Internet, но вы хотите, чтобы провайдер содержал все записи о вашем домене, то, сконфигурировав свой почтовый сервер, можно добиться того, что он будет использовать DNS-сервер провайдера для преобразования имен в IP-адреса. Ниже описаны способы конфигурирования сервера на базе ОС Linux для реализации этого решения.

Конфигурирование клиентских файлов DNS

Для организации работы вашего Linux-сервера в качестве клиента системы DNS понадобится три файла. Обычно все они находятся в каталоге /etc. Это файлы resolv.conf, hosts и host.conf.

Файл преобразования имен хостов

Файл /etc/resolv.conf используется для указания Linux-серверу, какому DNS-серверу должны направляться DNS-запросы. Здесь можно указать до трех DNS-серверов. Второй и третий серверы из списка будут использоваться в качестве резервных, если ответ не будет получен от первого (главного) сервера. Если в вашей сети имеется локальный DNS-сервер, то его нужно использовать в качестве главного. Если в локальной сети доступ организован на базе имен компьютеров, то это значительно увеличит скорость доступа, так как преобразование имен хостов в адреса через локальный DNS-сервер происходит быстрее. Если же DNS используется для доступа к удаленным компьютерам вне сети, то не следует ожидать повышения скорости доступа. Кроме того, в этом файле можно указать имя домена по умолчанию для ускорения поиска доменов системой DNS. Например, можно указать начало поиска доменов с домена smallorg.org как с домена по умолчанию. Теперь, если нужно получить IP-адрес для хоста fred.smallorg.org, можно просто указать имя хоста fred, и ОС Linux будет автоматически добавлять к нему имя домена smallorg.org. К сожалению, это может работать и против вас. Дело в том, что система DNS будет добавлять имя домена smallorg.org ко всем хостам, для которых она производит преобразование имен. Так, если осуществляется соединение с узлом http://www.linux.org, сначала ведется поиск узла http://www.linux.org.smallorg.org. Если найти его не удалось, то производится поиск уже http://www.linux.org. В листинге 4.2 показан пример файла /etc/resolv.conf для клиента DNS на базе ОС Linux.

1 search smallorg.org
2 nameserver 10.0.0.1
3 nameserver 10.0.0.2
4 nameserver 10.0.0.3
Листинг 4.2. Пример файла /etc/resolv.conf

В строке 1 задается поиск домена по умолчанию, который следует использовать во всех DNS-запросах. Помните, что это может замедлить обработку запросов для хостов, не принадлежащих к вашему домену, так как текст по команде search будет добавляться ко всем запросам. В строках 2–4 указаны главный, вторичный и третичный DNS-серверы, которые обслуживают данного клиента. Наиболее часто в их роли выступают DNS-серверы провайдера, назначаемые для вашей сети, хотя вполне возможно использование и других DNS-серверов по желанию (если, конечно, ваш провайдер не фильтрует DNS-запросы).

Valentin Diduk
Valentin Diduk
Украина, одесса, кпи, 2010
Евгений Олабин
Евгений Олабин
Беларусь, Гродно