СЕТЬ

Словарь по сетевым технологиям

Руководство по глобальной компьютерной сети Internet

Введение в IP сети

Что такое домен?

Безопасность сети при работе с Internet

Сетевые операционные системы

Протоколы TCP-IP

Локальная сеть из двух компьютеров

Данные о сетевых настройках в реестре

Администрирование почтовых и файловых серверов в Internet

Технология CISCO

Domain Name Service
Служба Доменных Имен

Служба Доменных Имен (BIND - Berkley Internet Name Domains) предназначена для того, чтобы машины, работающие в Internet, могли по доменному имени узнать IP-адрес нужной им машины, а также некоторую другую информацию; а по IP-номеру могли узнать доменное имя машины.

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

Важно не смешивать такие понятия, как DNS (система делегирования прав на распредеоение имен внутри доменов) и BIND (техническую реализацию распределенной базы данных, в которой хранятся IP-номера и другая информация). Дело в том, что DNS может действовать в сети, основанной на DiaUp (коммутируемых) соединениях: например, почтовые сети на юазе протокола UUCP активно используют DNS, хотя никакими серверами имен там и не пахнет. Просто BIND настолько полно реализует "в железе" принципы делегирования прав DNS, что в сознании многих администраторов эти два понятия сливается в одно. Делегирование прав на распределение имен внутри домена дается человеку, но в любом случае (и в UUCP, и в BIND) реализуется компьютером, который этот человек администрирует. Образно говоря, DNS - это техпаспорт, дающий право распоряжаться автомобилем; а BIND (или UUCP) - это ключи, позволяющие запустить мотор и поехать.

Каждый клиент знает своего сервера; обычно указывается не один, а несколько серверов - если первый не отвечает, клиент обращается ко второму и так далее до исчерпания списка. В принципе неважно, к какому серверу обращаться - они дают (должны давать при правильном функционировании) одинаковые ответы на любой запрос. Поэтому для ускорения работы обычно указывают ближайший. Следует помнить, что на одной машине могут функционировать одновременно Name-сервер и программы-клиенты; поэтому если на машине запущен Name-сервер, то в качестве Name-сервера на ней должен быть прописан "я сам".

Имеется некий домен верхнего уровня, обозначаемый точкой: ".". Имеется девять серверов (по крайней мере на моем Name-сервере записано столько), которые отвечают за эту зону. Они не знают ни одного доменного имени - они только авторизуют серверы верхних зон. Серверы верхних зон тоже гнушаются хранить информацию о конкретных машинах и передают это право нижележащим серверам. Тут уже появляются первые упоминания о конкретных машинах, равно как и происходит авторизация нижележащих серверов.

Мне неизвестна ни одна машина с доменным именем из одного сегмента; очень редко используются доменные имена из двух сегментов (такие как www.ru и ftp.ru; имена из трех и четырех сегментов составляют подавляющую долю всех имен Internet; имена из пяти сегментов встречаются довольно редко, а из шести и более мне неизвестны.

Допустим, клиент запросил адрес "www.организация.город.страна". Поиск информации по доменному имени происходит следующим образом:

  • Клиент спрашивает своего сервера.
    • Если тот является сервером данной зоны, то ответит, на чем все заканчивается.
  • Сервер спрашивает корневой сервер.
  • Тот не может ответить, потому что не знает; зато знает, какой сервер отвечают за зону "страна".
  • Сервер зоны "страна" тоже не может ответить, но знает, что нужно спросить сервер зоны "город.страна".
  • Тот в свою очередь отсылает запрос серверу зоны "организация.город.страна", который сообщит нужную информацию.
Это приближенная модель, которая тем не менее позволяет представить работу системы DNS.

Однако эту стройную картину искажают системы кэширования и вторичных серверов. Дело в том, что получив ответ на свой вопрос, DNS-сервер получает также некоторое число, которое говорит ему о том, по истечении какого времени эта информация должна считаться устаревшей. Таким образом, все серверы, участвовашншие в поиске ответа на вопрос, заданный клиентом, могут (и скорее всего будут) помнить как ответ на заданный вопрос, так и путь, по которому шел поиск. При следующих запросах, имеющих общую правую часть с недавно сделанными запросами, поиск будет упрощен (ускорен).

Кроме того, большинство зон имеет вторичные серверы, которые содержат копии данных с первичных серверов. Сервер вышележащей зоны может направить запрос как первичному серверу, так и любому из вторичных, основываясь на своих соображениях о том, какой из них ближе.

Хочу обратить особое внимание на сходство, различие и взаимодействие систем DNS и IP-маршрутизации. Как и IP-маршрутизация, DNS работает по принципу делегирования полномочий, но выделение доменных имен совершенно не зависит от выделения IP-адресов. Для примера рассмотрим домен freebsd.org (это домен организации, занимающейся распространением операционной системы FreeBSD Unix). FTP-сервер, содержащий дистрибутив операционной системы и множества утилит для нее, имеет копии в нескольких десятках стран. Имена серверов выглядят так:

  • ftp.freebsd.org - первичный сервер в США
  • ftp.страна.freebsd.org - основной сервер в стране
  • ftpчисло.страна.freebsd.org - дополнительный сервер в стране
Так например на 11 февраля 1998 года
  • ftp.ru.freebsd.org соответствует ftp.ru
  • ftp2.ru.freebsd.org соответствует ftp.gamma.ru
  • ftp3.ru.freebsd.org соответствует ftp.chg.ru
Таким образом, машины, находящиеся в России оказались произвольно (по воле DNS-мастера из университета Bercley) включенными в домен freebsd.org; однако, они также состоят в своих зонах. Система DNS позволяет любому DNS-мастеру включить любой сервер в свою зону, хотя это включение никого ни к чему не обязывает.

Однако, некоторым сервисам недостаточно прописывания машины в DNS - так E-mail требует, чтобы машина, принимающая письмо, признала своим адрес, указанный в качестве пункта назначения (очевидно, это связано с тем, что E-mail может работать по протоколам, не нуждающимся не только в DNS, но даже в IP - например, UUCP). Протокол HTTP 1.1 в обязательном порядке (а 1.0 - в качестве дополнительной опции) требует, чтобы в HTTP-запросе указывался не только путь к файлу, отсчитанный от корня сервера (хотя такие запросы тоже признаются), но и имя сервера; при этом сам сервер знает, какие имена - его, а остальные обрезает и обслуживает в соответствии с HTTP 1.0. Это позволяет организовать несколько "виртуальных серверов" на машине, имеющей единственный IP-адрес. Подробности этого я рекомендую посмотреть в документации к WWW-серверу Apache, а также в книгах по администрированию WWW-серверов. Что же касается DNS, то ее роль в этом ограничивается указанием правильных IP-адресов (а для почты - еще и MX-записей) для данных имен.

Делегирование зоны ...in-addr.arpa дается только от провайдера вместе с пулом IP-адресов. Собственно, это связано с предназначением ReverceDNS - сообщать доменное имя по IP-адресу. Наверняка мастер зоны freebsd.org держит Reverce-зону для IP-номеров, выделенных университету Bercley; но все зеркала, о которых говорилось выше (кроме расположенных в университете) не входят в эту Reverce-зону, а значит, ему неподконтрольны.

Одна из проблем состит в том, что Reverce-зону можно выделить только на сеть класса A, B или C (на 16777216, 65536 или 256 адресов) и никак иначе. Можно получить правА на несколько зон одного или разных классов, но что делать тем, кому выделили меньше 256 адресов? А ведь в условиях исчерпания адресного пространства не редкость выделения пула уже на 16 адресов! При невозможности делегирования "частичной" зоны, можно воспользоваться псевдонимом (alias'ом) CHNAME, перенаправив каждый IP-номер на DNS-сервер клиента.

DNS-услуги Internet-провайдера

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

  • делегирование зоны ...in-addr.arpa клиентам, имеющим пул адресов, кратный 256;
  • регистрация доменного имени клиента у держателя той зоны, в которой клиент хочет зарегестрироваться;
  • поддержание вторичного сервера прямой и обратной DNS-зон клиента;
  • поддержание первичного сервера этих зон, если клиент по какой-либо причине не поддерживает их сам (особенно это относится к случаю виртуальных зон и к случаю выделения малого пула адресов);
Если провайдер будет отказываться - сошлитесь на меня. :-)

Политика и стратегия назначения имен

Имена зон условно можно разделить на "организационные" и "географические". В высшей зоне зарегестрированы следующие "организационные" зоны:

  • com - COMmercial (коммерческие)
  • edu - EDUcational (образовательные)
  • gov - GOVermrnt (правительственные)
  • int - INTernational (международные)
  • mil - MILitary (военные)
  • net - NETwork (организации, обеспечивающие работу сети)
  • org - ORGanisation (некоммерческие организации)
В данный момент, чтобы разгрузить домен com, собираются создать несколько новых доменов, но у меня нет достоверной информации по ним. В организационных зонах обычно размещаются непосредственно домены организаций.

Каждая страна (государство) имеет свой географический домен из двух букв (интересующиесь могут посмотреть список). В зонах государств опять же имеются "организационные" и "географические" зоны. "Организационные" в большинстве своем повторяют структуру "организационных" зон верхнего уровня, разве что вместо "com" используется "co". "Географические" выделяются городам, областям и т.п. территориальным образованиям. Непосредственно в тех и других размещаются домены организаций или домены персональных пользователей. В частности, в зоне ru функционируют следующие домены:
  • com - COMmercial (коммерческие)
  • mil - MILitary (военные)
  • net - NETwork (организации, обеспечивающие работу сети)
  • org - ORGanisation (некоммерческие организации)
  • pp - Personal (частные лица)
Поддерживаются организацией RIPN
  • ac - ACademy (образовательные и научные организации)
Поддерживаются организацией FREEnet


После выбора зоны, в которую будет включен наш домен, надо выбрать собственное имя домена. Обычно это имя компании, торговая марка или что-нибудь столь же характерное. Для неанглоязычных стран используется перевод на английский или транскрипция имен. Часто возникают конфликты, связанные с тем, что одно и то же имя используется несколькими фирмами (законодательство допускает это для фирм, работающих в разных отраслях); многие люди заранее резервируют имена, могущие стать популярными для последующей продажи их владельцу торговой марки; но это уже касается юридической стороны функционирования Internet и не входит в мою компетенцию.

Постарайтесь обеспечить однозначное написание доменного имени и его очевидность. Помните, что многие люди путают буквы "c" и "k", а также "v" и "w".

Обратите внимание на благозвучность домена. Имя домена не должно вызывать нежелательных (прежде всего непристойных) ассоциаций на русском и английском языках; если вы собираетесь активно общаться с носителями какого-либо третьего языка, проверьте пристойность звучания вашего домена на нем. В качестве атнипримера приведу "Непристойные шутки про DNS-имена".


С левого конца доменного имени находятся имена машин. Имена бывают "собственные" и "функциональные". Имена "собственные" каждый придумавает в меру фантазии: машинам присваиваются имена членов семьи, животных, растений, музыкантов и артистов, литературных персонажей - кто во что горазд.

Имена "функциональные" вытекают из функций, выполняемых машиной:

  • www - HTTP(WWW)-сервер
  • ftp - FTP-сервер
  • gopher - Gopher-сервер
  • ns, nss, dns - DNS(Name)-сервер
  • mail - Mail-сервер
  • relay - Mail Exchanger
  • *proxy - соответствующий Proxy-сервер
Я считаю нежелательным присваивать какой-либо машине функциональное имя - в любой момент может потребоваться перенести соответствующую функцию на другую машину. Для этого лучше всего использовать псевдонимы, которые перенаправляют запросы к данному имени на записи, относящиеся к другому имени. Но вот ссылаться на псевдонимы при обьявлении Mail Exchanger'ов и вообще использовать их в правой части записей считается нежелательным, а зачастую является недопустимым.

© 2007 Copyright by Heckfy. All rights reserved.