DNS (Domain Name System)
DNS (Domain Name System) – это распределенная база данных, поддерживающая иерархическую систему имен для идентификации узлов в сети Internet. Числовые адреса хороши для машин, люди же предпочитают имена. Очень непросто разговаривать, используя машинную адресацию (как бы это звучало: “192.112.36.5 обещает вскоре…”?), еще труднее запомнить эти адреса. Поэтому компьютерам в Internet для удобства пользователей были присвоены собственные имена. Все приложения Internet позволяют пользоваться системными именами вместо числовых адресов.
Для объяснения будем использовать почтовую аналогию. Сетевые численные адреса вполне аналогичны почтовой индексации. Машины, сортирующие корреспонденцию на почтовых узлах, ориентируются именно по индексам, и только если с индексами выходит какая-то несуразность, передают почту на рассмотрение людям, которые по адресу могут определить правильный индекс почтового отделения места назначения. Людям же приятнее и удобнее иметь дело с географическими названиями – это аналоги доменных имен.
Процесс поиска адреса в Internet совершенно аналогичен процессу поиска индекса для письма без почтового индекса. Как определяется этот индекс? Все регионы пронумерованы – это первые цифры индекса. Письмо пересылается на центральный почтамт региона, где имеется справочник с нумерацией районов этого региона – это следующие цифры индекса. Теперь письмо идет на центральный почтамт соответствующего района, где уже знают все почтовые отделения в подопечном районе. Таким образом, по географическому адресу определяется почтовый индекс, ему соответствующий. Также определяется и адрес компьютера в Internet, но путешествует не послание, а запрос вашего компьютера об этом адресе. И в отличие от случая с почтой, информация доходит до вас, как если бы районный почтамт места назначения отправлял вам письмо, любезно уведомляя вас на будущее об индексе, которого вы не изволили знать.
Конечно, такое именование имеет свои собственные проблемы. Прежде всего, следует убедиться, что никакие два компьютера, включенные в сеть, не имеют одинаковых имен. Необходимо также обеспечить преобразование имен в числовые адреса, чтобы машины (и программы) могли понимать нас, людей, пользующихся именами: техника по-прежнему общается на языке цифр.
Вначале Internet был не велик, иметь дело с именами было довольно просто. NIC создал регистратуру. Можно было послать запрос и в ответ высылали список имен и адресов. Этот файл называется “host file” (файл рабочих ЭВМ), регулярно распространялся по всей сети – рассылался всем машинам. Имена были простыми словами, все они были уникальны. Если вы использовали имя, то ваш компьютер просматривал этот файл и подставлял вместо имени реальный числовой адрес. Так же, как работает телефонный аппарат со встроенным списком абонентов. Все было легко, просто и замечательно. Всем хватало простых имен, был один Вася, один Петя, один Пафнутий и одна Перепетуя.
По мере развития и расширения Internet возрастало количество пользователей, хостов, а потому увеличивался и упомянутый файл. Возникали значительные задержки при регистрации и получении имени для новых компьютеров, стало затруднительно изыскивать имена, которые еще никто не использовал, слишком много сетевого времени затрачивалось на рассылку этого огромного файла всем машинам, в нем упомянутым. Стало очевидно, что при таких темпах изменений и роста сети, нужна распределенная оперативная система, опирающаяся на новый принцип. Таковая была создана, ее назвали “доменной системой имен” – DNS, а способ адресации – способом адресации по доменному принципу. DNS еще иногда называют региональной системой наименований.
Структура региональной системы имен
Доменная система имен – это метод назначения имен путем передачи сетевым группам ответственности за их подмножество имен. Каждый уровень этой системы называется доменом. Домены в именах отделяются друг от друга точками: cs.msu.su, math.msu.su. В имени может быть различное количество доменов, но практически их не более пяти. По мере движения по доменам слева направо в имени, количество имен входящих в данную группу возрастает.
Первым в имени стоит название рабочей машины – реального компьютера с IP адресом. Это имя создано и поддерживается группой (например, компьютер redsun в группе cs (факультет Вычислительной Математики и Кибернетики)), к которой он относится. Группа входит в более крупное подразделение msu (например, университетское объединение – сеть МГУ), которое в свою очередь, является частью национальной сети (например, стран бывшего СССР, домен su).
Имена зон можно условно разделить на “организационные” и “географические”. В высшей зоне зарегистрированы следующие “организационные” зоны:
-
com – commercial (коммерческие)
-
edu – educational (образовательные)
-
gov – government (правительственные)
-
net – network (организации, обеспечивающие работу сети)
-
org – organization (некоммерческие организации)
В данный момент, чтобы разгрузить домен com, собираются создать несколько новых доменов, но достоверной информации по ним нет. В организационных зонах обычно размещаются непосредственно домены организаций.
Каждая страна (государство) имеет свой географический домен из двух букв, например:
-
ae – Unated Arab Emirates (Объединенные Арабские Эмираты)
-
au – Australia (Австралия)
-
by – Belarus (Белоруссия)
С левого конца доменного имени находятся имена машин. Имена бывают “собственные” и “функциональные”. Имена “собственные” каждый придумывает в меру фантазии: машинам присваиваются имена членов семьи, животных, растений, музыкантов и артистов, литературных персонажей – кто во что горазд.
Имена “функциональные” вытекают из функций, выполняемых машиной:
-
www – HTTP (WWW) сервер
-
-
ftp – FTP сервер
-
-
ns, nss, dns – DNS (Name) сервер
-
-
mail – Mail сервер
-
-
relay – Mail Exchanger
-
-
*proxy – соответствующий Proxy сервер
Считается нежелательным присваивать какой-либо машине функциональное имя – в любой момент может потребоваться перенести соответствующую функцию на другую машину. Для этого лучше всего использовать псевдонимы, которые перенаправляют запросы к данному имени на записи, относящиеся к другому имени. Но вот ссылаться на псевдонимы при объявлении Mail Exchanger’ов и вообще использовать их в правой части записей считается нежелательным, а зачастую является недопустимым.
Группа может создавать или изменять любые принадлежащие ей имена. Если группа cs решит ввести в эксплуатацию новый компьютер и назвать его chronos, то для этого ни у кого не надо спрашивать разрешения, все, что от него требуется, - это добавить новое имя в соответствующую часть соответствующей базы данных, и, рано или поздно, каждый, кому потребуется, узнает об этом имени. Аналогично, если в МГУ решат создать новую группу, например colledge, они (домен msu) могут это сделать также, ни у кого на то не спрашивая никакого соизволения. Тогда, если каждая группа придерживается этих простых правил и поддерживается уникальность имен компьютеров в группе, то у любых разных систем в сети Internet будут всегда разные имена.
Описанный выше механизм аналогичен механизму присвоения почтовых адресов. Названия всех стран различаются. Различаются названия всех областей, республик в Федерации, и эти названия утверждаются в государственном масштабе из центра (конечно, обычно сами регионы заботятся об уникальности своих названий, поэтому здесь царит полная демократия: как республика хочет, так она и называется). В республиках – субъектах федерации – решают вопросы о названиях районов и округов, в пределах одной республики они различаются. Аналогично далее с городами и улицами городов. В разных городах могут быть улицы с одинаковыми названиями, например, почти во всех городах СССР были улицы Ленина и Мира. Однако то были улицы в разных городах. В пределах же одного населенного пункта улицы всегда имеют разные названия, причем именование улиц контролирует соответствующий центральный орган местной администрации (мэрии, сельсовета, горсовета).
Поскольку Internet – сеть всемирная, то нужен был механизм распределения имен на самом верхнем, межгосударственном уровне. Сейчас принята двухбуквенная кодировка государств. Это оговорено в RFC 822. Так, например, домен Канада называется ca, бывший СССР – su, США – us и т.д. США также включили в эту систему структурирования для всеобщности и порядка. Всего же кодов стран почти 300. Единый каталог Internet находится у SRI International (Менло-Парк, Калифорния, США) – государственной организации.
Поиск адреса по доменному имени
Теперь, после того как мы узнали, как соотносятся домены и создаются имена, познакомимся, как использовать эту замечательную систему? Она работает автоматически. Нам не надо разыскивать адрес, соответствующий имени, или подавать специальную команду для его поиска (в UNIX – команда nslookup) Все компьютеры Internet способны пользоваться доменной системой.
Когда используют имя, например, www.lvk.cs.msu.su, надо преобразовать его в адрес. Для этого приложение начинает запрашивать помощь у DNS-серверов. Это приложения обладающие соответствующей базой данных, в число обязанностей которых входит обслуживание такого рода запросов. DNS-сервер начинает обработку имени с правого его конца и двигается по нему влево, т.е. сначала производится поиск адреса в самой верхней группе иерархии, потом постепенно поиск опускается по иерархии, тем самым сужая область поиска. Однако, с целью сокращения поиска, на первом шаге опрашивается локальный узел DNS. Здесь возможны три случая:
-
Местный сервер знает адрес, потому что этот адрес содержится в его части всемирной базы данных. Например, если вы подсоединены к сети Института Физики Высоких Энергий (IHEP), то ваш местный сервер должен обладать информацией о всех компьютерах локальной сети этого института;
-
Местный сервер знает адрес, потому что кто-то недавно уже запрашивал тот же адрес. Когда запрашивается адрес, сервер DNS придерживает его у себя в памяти некоторое время, как раз на случай, если кому-нибудь потребуется то же адрес – это повышает эффективность системы;
-
Местный сервер адрес не знает.
В последнем случае местный сервер обращается к корневому серверу. Это сервер, который знает адреса серверов имен высшего уровня (самых правых в имени), здесь это уровень государств (ранга домена su). У него запрашивается адрес компьютера, ответственного за зону su. Местный DNS-сервер связывается с этим сервером, расположенным на вершине иерархии, и запрашивает у него адрес сервера ответственного за домен msu.su. Теперь уже запрашивается сервер, отвечающий за домен msu, потом опрашивается сервер домена cs, затем – lvk, и у него запрашивается адрес рабочей машины www.
На самом деле, для повышения эффективности, поиск начинается не с самого верха, а с наименьшего домена, в который входите и вы, и компьютер, имя которого вы запросили. Например, если ваш компьютер имеет имя cmc.cs.msu.su, то опрос начнется (если имя не выяснится сразу) не со всемирного сервера, чтобы узнать адрес сервера группы su, а сразу с группы su, что сразу сокращает поиск и по объему, и по времени.
Замечания по региональной системе имен
Распространено несколько заблуждений, с которыми вы можете столкнуться, имея дело с именами. Приведем несколько верных утверждений в качестве опорных, чтобы вывести вас из заблуждений, или предостеречь от них:
-
Доменная система именования указывает на то, кто ответственен за поддержку имени, то есть в чьем ведении оно находится. Однако она ничего не сообщает о владельце компьютера, где же эта машина находится (несмотря на коды стран). Вполне возможно существование в Антарктиде машины с именем inr.msk.su. Это совершенно ненормально, но никаким законам не противоречит.
-
Понятия доменного имени и сети вообще говоря не связаны. Часто доменные имена и сети перекрываются, и жестких связей между ними нет: две машины одного домена могут не принадлежать к одной сети. Например, системы io.cs.msu.su и fox.cs.msu.su могут находиться в совершенно разных сетях: доменные имена указывают на ответственного за домен.
-
У машины может быть много имен. В частности, это верно для машин, предоставляющих какие-либо услуги, которые в будущем могут быть помещены под опеку другой машины. Когда эти службы будут перемещены, то имя, под которым эта машина выступала в качестве такого сервера, будет передано новой машине-серверу вместе с услугами, - для внешних пользователей ничего не изменится. Т.е. они будут продолжать пользоваться этой службой, запрашивая ее по имени, независимо от того, какой компьютер на самом деле занимается обслуживанием. Имена, по смыслу относящиеся к службе, называются “каноническими именами”. В Internet они встречаются довольно часто.
Для связи имена необязательны. Как-нибудь вам придет сообщение: “адресат неизвестен”, что означает, что Internet не может преобразовать использованное вами имя в адрес, – имя более недействительно в том виде, в котором его знает ваш компьютер. Однажды заполучив числовой эквивалент имени, ваша система перестает использовать для связи на машинном уровне доменную форму адреса. Запоминать лучше имена, а не числовые адреса. Некоторым кажется, что система имен это “еще одно звено в цепи, которое может выйти из строя”. Но эти адреса привязаны к конкретным точкам сет. Если компьютер, предоставляющий некие услуги, переносится из одного здания в другое, его сетевое расположение, а значит и адрес, скорее всего изменятся. Имя же менять не надо и не следует. Когда администратор присваивает новый адрес, ему нужно только обновить запись имени в базе данных так, чтобы имя указывало на новый адрес. Так как имя работает по-прежнему, вас совершенно не должно заботить то, что компьютер расположен уже в другом месте.
Региональная система имен, возможно и выглядит сложно, но это одна из тех составляющих, делающих общение с сетью более простым и удобным. Несомненное преимущество доменной системы состоит в том, что она разбивает громадье Internet на набор вполне обозримых и управляемых частей. Хотя сеть включает миллионы компьютеров, все они поименованы, и именование это организовано в удобной рациональной форме, что упрощает работу.
Достарыңызбен бөлісу: |