Шекспир ошибался: в имени заключено многое. Если вы отвечаете за подключение компании к Internet, то должны быть уверены, что ваши имена - в данном случае серверы имен - содержатся в полном порядке.
Чтобы освободить пользователей от сложностей работы с числовыми IP-адресами, система DNS (Domain Naming System - система именования домена) преобразует текстовые адреса в числовую форму, в которой они и циркулируют в Internet. Любая подключенная к ней сеть должна обеспечивать доступ к DNS.
DNS декодирует
Успешная работа DNS зависит главным образом от надежности локальных серверов имен. Именно за ними остается "последнее слово" в определении соответствия индивидуальных имен хост-компьютеров и их IP-адресов. Эти серверы представляют собой завершающее звено цепочки связей DNS и могут оказаться самым слабым ее элементом, если их не поддерживать в должном порядке.
Функционирование DNS во многом сходно с работой простых распределенных клиент-серверных приложений. На каждой рабочей станции пользователей (или на хост-компьютере, если они работают с терминалами центральной ЭВМ) устанавливается клиентская программа, носящая общее название "преобразователь адресов" (resolver), которая посылает на сервер имен запросы о преобразовании имен в IP-адреса.
Для превращения текстовых имен в их числовые аналоги на сервере имен имеется база данных DNS, представляющая собой набор таблиц, содержащих указатели на другие базы данных DNS.
Сервер имен - обычно это ЭВМ под управлением Unix, осуществляющая описанный процесс, - может быть составной частью ЛВС, может располагаться в сети сервис-провайдера Internet, но может также находиться в ведении InterNIC (Internet Network Information Center - Сетевой информационный центр Internet) и размещаться где-то в сети Internet.
Это нужно знать
Где находится сервер имен, особого значения не имеет, главное, чтобы он был доступен. Однако многие корпорации, располагающие несколькими сетями, предпочитают иметь собственные серверы имен. Такой подход не только ускоряет доступ к серверу за счет того, что вас никто не ограничивает в работе с ним и при необходимости вы можете в любой момент провести его модернизацию, оснастив более производительными аппаратными средствами. Он также упрощает процесс смены имен, охвативший в последнее время корпоративную Америку подобно эпидемии.
Если же вы решите не создавать собственный сервер имен, а воспользоваться тем, который предлагает сервис-провайдер Internet, помните о необходимости информировать его обо всех изменениях на вашем хост-компьютере и в среде пользователей.
Первым шагом при организации сервера имен должно стать создание базы данных DNS. Она будет содержать информацию о всех хост-компьютерах сети, что позволит любому пользователю, обратившемуся на этот сервер с запросом, подключиться к каждому из них.
Вам также потребуется провести конфигурирование программ просмотра серверов Web у каждого сотрудника таким образом, чтобы они обращались на ваш сервер имен при начальной обработке IP-адреса.
И, наконец, вам предстоит позаботиться о том, чтобы обеспечить доступ не только к тем десяткам тысяч хост-компьютеров, которые функционируют в Internet сегодня, но и к огромному количеству новых, появляющихся в Сети каждый день. Для этого в локальный сервер имен нужно ввести имена хост-компьютеров и IP-адреса девяти специальных серверов Internet.
Зри в корень
Девять серверов, названные серверами корневой зоны (root zone servers), располагают информацией о хост-компьютерах серверов имен, обслуживающих семь доменов высшего уровня: .com, .edu, .mil, .gov, .net, .org и специального .arpa.
Серверы корневой зоны получили имена a.root-server.net, b.root-server.net и так далее вплоть до i.root-server.net.
Первый из них - a.root-server.net - выступает в роли первичного сервера имен Internet, управляемого из информационного центра InterNIC, который регистрирует все домены, входящие в несколько доменов высшего уровня. Остальные серверы имен по отношению к нему вторичны, однако все хранят копии одних и тех же файлов. Благодаря этому любой из серверов корневой зоны может заменять и подстраховывать остальные.
На этих девяти серверах размещены файлы корневой зоны каждого из семи доменов высшего уровня. Любой член этой "Банды девяти" несет также файл высшего уровня корневой зоны стран. В нем содержатся данные о серверах имен для таких кодов высшего уровня, как .uk (Великобритания), .ge (Германия), .jp (Япония) и так далее.
В файлах корневой зоны содержатся все имена хост-компьютеров и IP-адреса серверов имен для каждого субдомена, входящего в домен высшего уровня. Например, в домене adobe.com файлы корневой зоны для домена .com содержат данные о сервере имен для любого адреса, заканчивающегося на adobe.com.
Другими словами, каждый корневой сервер располагает информацией обо всех доменах высшего уровня, а также знает имя хост-компьютера и IP-адрес по меньшей мере одного сервера имен, обслуживающего каждый из вторичных доменов, входящих в любой домен высшего уровня. (Для доменов иностранных государств в базе данных хранятся сведения по серверам имен для каждой из стран).
Локальный сервер имен кэширует список хост-компьютеров, поиск которых он производил в последнее время. Это устраняет необходимость постоянно обращаться в DNS с запросами о часто используемых хост-компьютерах.
Кроме того, локальные серверы имен являются итерационными, а серверы корневой зоны - рекурсивными. Это значит, что локальный сервер имен будет повторять процедуру запроса информации о других серверах имен до тех пор, пока не получит ответа.
Корневые же серверы Internet, находящиеся на вершине структуры DNS, напротив, лишь выдают указатели на домены следующего уровня. Добраться до конца цепочки и получить требуемый IP-адрес - задача локального сервера имен. Чтобы решить ее, он должен спуститься по иерархической структуре, последовательно запрашивая у локальных серверов имен указатели на ее низшие уровни.
Записи почтового обмена
Доставка сообщений электронной почты требует использования в DNS специальных функций, так называемых MX-записей (Mail Exchange - почтовый обмен).
В них содержатся указатели на хост-компьютеры, по адресу которых нужно отправить сообщения электронной почты для их последующей доставки в индивидуальные почтовые ящики. При этом указанные в MX-записи хост-компьютеры электронной почты не обязательно содержат почтовый ящик пользователя; это может быть шлюз или хост-компьютер, получающий почту для другого хост-компьютера.
Например, вы посылаете почтовое сообщение по адресу billg@microsoft.com, хотя billg в действительности не имеет почтового ящика на указанном хост-компьютере. Сервер DNS, который обслуживает домен microsoft.com, хранит относящуюся к нему MX-запись. В ней указан шлюз, куда должна быть направлена почта для billg и других адресатов этого домена.
Преимущество этой маленькой хитрости - в гибкости, которую получает Microsoft (в нашем примере). У корпорации появляется возможность изменять конфигурацию хост-компьютера электронной почты в любое удобное для нее время. Если будет принято решение об изменении или переименовании почтовых серверов или если корпорация переведет свою почтовую систему на серверы под управлением Windows NT, которые могут даже не поддерживать адресацию по протоколу SMTP, то проблемы получения нового адреса хост-компьютера для billg не возникнет. MX-записи и почтовые шлюзы защитят вас от подобных сложностей.
Через серверы к адресату
Допустим, вы хотите послать почтовое сообщение своему другу Бобу Макколлу, который работает в подразделении опасных материалов (Hazardous Materials Division) компании Alien Organism. Вы направляете свое послание по адресу bobmc@lethal.hazmat.alienoco.com.
Чтобы преобразовать адрес lethal.hazmat.alienoco.com в пригодный для доставки IP-адрес, программа - преобразователь адресов, установленная на SMTP-шлюзе вашей почтовой системы, запросит у локального сервера имен IP-адрес хост-компьютера "lethal" в домене hazmat.alienoco.com.
Сервер имен прежде всего обратится к /var/named.conf и найдет IP-адреса девяти серверов корневых зон доменов высшего уровня. Затем, чтобы получить IP-адрес почтового хост-компьютера "lethal", ваш сервер имен обратится на один из этих девяти серверов с просьбой выдать IP-адрес сервера имен домена alienoco.com.
На какой из корневых серверов направляется запрос - значения не имеет, так как все они работают с абсолютно одинаковыми данными, и ответ будет получен один и тот же.
В ответ на свой запрос программа - определитель адресов DNS получит имя хост-компьютера и IP-адрес сервера имен домена alienoco.com. Если в домене числится больше одного сервера имен (а чаще всего именно так и бывает), программа получит их все. В нашем примере запрос в DNS относится к электронной почте, поэтому в файлах может также содержаться MX-запись.
Давайте предположим, что такая запись отсутствует, а файлы корневой зоны сообщают, что в домене alienoco.com сервером имен является ns.alienoco.com.
На следующем этапе ваш сервер имен направляет второй, совершенно не связанный с первым, DNS-запрос по адресу ns.alienoco.com. В нем содержится просьба сообщить адрес сервера имен домена hazmat.alienoco.com.
Обратите внимание, что запрос адресован серверу имен ns.alienoco.com, а не одному из корневых серверов имен. Дело в том, что последних - всего девять, а преобразователей имен DNS - неисчислимое множество. Поэтому хост-компьютеры корневого уровня, отправив локальному серверу имен указатель на нижестоящий домен, полностью устраняются из дальнейшего процесса.
Теперь локальный сервер имен запрашивает у сервера имен домена hazmat.alienoco.com IP-адрес домена адресата - lethal.hazmat.alienoco.com. Получив ответ, он сразу же пересылает результат поиска программе-преобразователю адресов. Тогда и только тогда система электронной почты сможет доставить ваше сообщение адресату.
Тук-тук, кто там?
Еще одна причина, по которой вам необходим сервер имен, заключается в том, что вы сами можете стать объектом поиска в DNS.
Скажем, Боб Маккол решил ответить на полученное послание по вашему адресу электронной почты Sallie@toxic.wastedump. com. Его преобразователь адресов электронной почты повторит те же самые действия, но DNS-запрос будет направлен по адресу ns.wastedump.com, а содержащийся в нем вопрос можно перевести примерно так: "По какому IP-адресу можно найти toxic.wastedump.com?".
Именно поэтому служба имен крайне необходима, и всегда нужно знать, как к ней обратиться.
Если у вас есть собственное имя домена, но вас обслуживает сервис-провайдер Internet, то файлы корневой зоны в ходе преобразования адреса будут указывать наряду с вашим сервером и сервер провайдера услуг.
Для надежности лучше иметь и тот и другой, хотя в этом случае вам придется постоянно заботиться о том, чтобы сервис-провайдер Internet был своевременно оповещен об изменении имен ваших хост-компьютеров и IP-адресов, равно как и о появлении в вашей сети новых хост-компьютеров.
Другой стороной преобразования имен в системе DNS является инверсивная адресация, при которой IP-адреса превращаются в имена хост-компьютеров. Указатели высшего уровня, которые обеспечивают этот процесс, называются in-addr-records (записи входящих адресов). Они имеются на всех серверах имен "Банды девяти" и хранятся в специальных файлах домена высшего уровня .arpa.
"Обратный" процесс DNS будет полезен в нескольких случаях. Во-первых, у вас может возникнуть желание выяснить источник поступившего запроса, а во-вторых, преобразование IP-адреса в имя хост-компьютера поможет вам ограничить доступ к своей сети и открыть ее лишь для пользователей заданных доменов или хост-компьютеров.
Так, например, с помощью инверсного отображения адресов можно создавать такие внутренние корпоративные сети, доступ в которые возможен из любого района земного шара, но лишь пользователям определенных хост-компьютеров или доменов.
Другими словами, инверсная адресация позволяет компании Alien Organism создать собственную внутреннюю сеть intranet, доступ в которую получат лишь хост-компьютеры домена alienoco.com. Входящие в эту сеть хост-компьютеры при установлении связи извне направляют в DNS запросы на инверсное определение адреса. Если вход в сеть осуществляется из домена alienoco.com, он будет разрешен, всем же остальным хост-компьютерам в доступе будет отказано.
DNS растет вместе с Internet. В обозримом будущем, пока эта система сохраняет децентрализованную структуру, ее развитие ничем не ограничено.
Уильям Датчер
КАК СЕРВИС-ПРОВАЙДЕРЫ INTERNET ПРЕДОСТАВЛЯЮТ DNS-УСЛУГИ НЕСКОЛЬКИМ ПОТРЕБИТЕЛЯМ
МАРШРУТ ЗАПРОСА В DNS: ОТ LETHAL.HAZMAT.ALIENOCO.COM ДО СООТВЕТСТУЮЩЕГО IP-АДРЕСА
ПЕРВЫЙ ЭТАП: СЕРВЕРЫ КОРНЕВОЙ ЗОНЫ
Где узнать новости DNS
Новости DNS, как и всех Internet-протоколов, публикуются в рабочих документах RFC (Request for Comment). Система DNS изложена в RFC под номерами 1034 и 1035, которые заменили предыдущие RFC № 882 и 883.
Эти и другие подобные им документы можно найти на различных узлах Internet. Например, для их получения установите анонимную FTP-связь с nic.ddn.mil или подключитесь к Web-узлу http://www.nic.ddn.mil.
У. Д.
Кому WINS, а кому DNS...
В корпоративных сетях с серверами Windows NT Server, управляющими клиентами под Windows for Workgroups, Windows 95 и Windows NT в любой комбинации с использованием протокола TCP/IP, можно применять и систему DNS, и систему WINS (Windows Internet Name Service - служба имен Internet под Windows).
WINS и DNS очень похожи, но это не одно и то же. WINS подобно DNS преобразует имена хост-компьютеров в IP-адреса. Как DNS, так и WINS представляют собой распределенные базы данных, но последняя устанавливает соответствие между именами хост-компьютеров и их IP-адресами лишь для вашей ЛВС под управлением Windows NT. DNS, в отличие от WINS, выполняет эту функцию для всех объектов Internet, которые находятся за пределами вашей корпоративной сети.
WINS преобразует имена хост-компьютеров, входящих в домены сети под управлением Windows NT, а DNS делает это с именами хост-компьютеров по всей Internet.
Если на вашем сервере Windows NT Server запущена программа WINS, на рабочих станциях пользователей должны быть указаны адреса ближайшего сервера имен DNS и WINS-сервера. У. Д.