Next: Маршрутизация
Up: Работа Internet: организацияструктура,
Previous: Создание сети с человеческим
Помните, мы говорили, что компьютеры в Internet имеют числовые адреса вида 32.22.223.33, и успокоили вас, заверив, что запоминать эти цифры не придётся? Настала пора поговорить об этой стороне жизни Internet чуть подробнее.
Числовые адреса подходят для связи машин, люди же предпочитают имена. Очень непросто разговаривать, используя машинную адресацию, как бы это звучало:``Читайте homepage на 192.216.212.98'' (Бамбарбия! Кергуду!*), ещё труднее запомнить эти адреса. Поэтому компьютерам в Internet для удобства пользователей были присвоены собственные имена. Тогда описанный разговор принимает вид:``Читайте homepage на соваме''. Все приложения Internet позволяют пользоваться системными именами вместо числовых адресов.
Как мы уже упоминали, для понимания полезно использовать почтовую аналогию. Сетевые численные адреса вполне аналогичны почтовой индексации. Машины, сортирующие корреспонденцию на почтовых узлах, ориентируются именно по индексам, и только если с индексами выходит какая-то несуразность, передают почту на рассмотрение людям, которые по адресу могут понять в чём дело и сообразить, как быть, например, при отстутствии индекса -- определить правильный индекс почтового отделения места назначения. Нормальным же людям приятнее и удобнее иметь дело с географическими названиями и человеческими именами -- это аналоги компьютерных имён.
Конечно, такое именование имеет свои собственные проблемы. Прежде всего, следует убедиться, что никакие два компьютера, включённые в сеть, не имеют одинаковых имён. Должно также обеспечить преобразование имён в числовые адреса, для того чтобы машины (и программы) могли понимать нас, пользующихся именами: техника по-прежнему общается на языке цифр.
Немного истории. Вначале Internet размерами напоминала курилку, и иметь дело с именами было довольно просто. NIC создал регистратуру. Можно было послать запрос в ответ на который высылали список имён и адресов. Такой файл (назывался ``host file'' -- файл рабочих ЭВМ) регулярно распространялся по всей сети -- рассылался всем машинам. Имена были простыми словами, все были единственными. Если пользователь употреблял имя, его компьютер просматривал этот файл и подставлял вместо имени реальный числовой адрес. Всё было легко, просто и замечательно. Всем хватало простых имён, в курилке был один Джон, один Пит, один Donald.
Но по мере развития и расширения Internet возрастало количество пользователей, хостов, а потому увеличивался и упомянутый файл. Возникали значительные задержки при регистрации и получении имени новым компьютером, стало затруднительно изыскивать имена, которые ещё никто не использовал, начали появляться Патермуфии Пафнутьевичи Хлорелльские и Ясдондукты Яксокустодиевны Хламидомонадберги. Слишком много сетевого времени стало затрачиваться на рассылку этого огромного файла всем машинам, в нём упомянутым. Стало ясно: чтобы справиться с такими темпами изменений и роста сети, нужна распределённая оперативная система, опирающаяся на новый принцип. Таковая была создана, её назвали ``доменной системой имён'' -- DNS, а способ адресации -- способом адресации по доменному принципу. DNS иногда ещё называют региональной системой наименований.
Если вы хотите узнать о DNS подробности, советуем вам прочитать RFC 1591, а также изумительную книгу [8]
Доменная система имён -- это метод назначения имён путём передачи сетевым группам ответственности за их подмножество имён. Каждый уровень этой системы называется доменом. Домены в именах отделяются друг от друга точками:
hump.ihep.su, vxcern.cern.ch, nic.ddn.mil
nusun.jinr.dubna.su, uddias.bashkiria.su
Первым в имени стоит название рабочей машины -- реального компьютера с IP адресом. Это имя создано и поддерживается группой (например, компьютер nusun (это SUN Sparc) в группе jinr (ОИЯИ)), к которой он относится. Группа входит в более крупное подразделение (например, городское объединение -- сеть города Дубны), которое в свою очередь, является частью национальной сети (например, сети стран бывшего СССР, домен su). Для США наименование страны по традиции опускается, там самыми крупными объединениями являются сети образовательных (edu), коммерческих (com), государственных (gov), военных (mil) учреждений, а также сети других организаций (org) и сетевых ресурсов (net).
Группа может создавать или изменять любые ей подлежащие имена. Если jinr решит поставить другой компьютер, например, Convex, и назвать его cv, она ни у кого не должна спрашивать разрешения, всё, что от неё требуется, -- это добавить новое имя и соответствующие записи в базу данных на своём сервере DNS, и, рано или поздно, каждый, кому потребуется, сможет узнать об этом имени.
Аналогично, если в Дубне решат создать новую группу, например, schools, они (домен dubna) могут это сделать также, ни у кого на то не спрашивая никакого соизволения.
Эта ситуация совершенно аналогична ситуации с присвоением географических названий -- организацией почтовых адресов. Названия всех стран различаются. Различаются названия всех областей, республик в Федерации, и эти названия утверждаются в государственном масштабе из центра (конечно, обычно сами регионы заботятся об уникальности своих названий, поэтому здесь царит полная демократия: как республика хочет, так она и называется)*. В республиках -- субъектах федерации -- решают вопросы о названиях районов и округов, в пределах одной республики они различаются. Аналогично далее с городами и улицами городов. В разных городах могут быть улицы с одинаковыми названиями: почему бы не быть во всех городах Союза по улице Ленина или Мира? Это улицы разных городов, и их не перепутать (помня о городах! Не напоминайте ``С лёгким паром!''). В пределах же одного населённого пункта улицы всенепременно имеют разные названия, причём именование этих улиц целиком и полностью под ответственностью и началом соответствующего центрального органа данного населённого пункта (мэрии, сельсовета, горсовета). При этом администрация соответствующего уровня должна иметь структурированную полную информацию о названиях и местоположении объектов, находящихся на её территории. Таким образом, почтовый адрес на основе географических и административных названий однозначно определяет точку назначения.
Аналогично, если каждая группа в Internet придерживается таких простых правил -- всегда убеждается, что имена, которые она присваивает, единственны во множестве её непосредственных подчинённых, то никакие две системы, где бы те ни были в Сети, не смогут получить одинаковых имён.
Очевидно, такая свобода в именовании даётся не бесплатно. Если группа ,например, весь домен oea.ihep.su, решает сама заняться своими именами и выделяется в отдельную DNS-зону, она должна обеспечить надёжное функционирование по крайней мере двух серверов DNS, которые будут вести информационную базу по именам компьютеров всей этой группы. Причём, информация об этих серверах (о зоне их ответственности, их адреса и т.п.) должна храниться на DNS-серверах зоны более высокого уровня, включающей домен этой зоны. Это нужно для того, чтобы внешние компьютеры могли найти тех, у кого следует спрашивать информацию об именах этой зоны. Если же группа не имеет своих серверов DNS, она не может сама распоряжаться своими именами, тогда её именами заведует группа домена более высокого уровня, являющаяся самостоятельной зоной DNS, т.е. имеющая свои серверы DNS.
Поскольку Internet сеть мировая, требовался также способ передачи ответственности за имена внутри стран им самим. Сейчас принята двухбуквенная кодировка государств. Это оговорено в RFC 822. Так, например, домен Канада называется ca, бывший СССР -- su, Россия -- ru, США -- us и т.д. США также включили в эту систему структурирования для всеобщности и порядка. В этой кодировке представлено почти 300 стран, из которых около 100 имеют компьютерную сеть того или иного рода. Единый каталог Internet находится у SRI International Inc. (Менло-Парк, Калифорния, США) -- государственной организации.
Теперь вы знаете, как соотносятся домены и создаются имена. Возможно, вы теперь озадачены: а как использовать эту замечательную систему, что нужно делать? Ничего и никак не надо делать. Просто употребите имя на компьютере в Internet. В Internet каждый уважающий себя компьютер умеет обращаться с DNS, и каждый работающий в сети компьютер обязан знать свой собственный сетевой адрес. Расслабьтесь, имя переварится в числовой адрес автоматически.
Вам никогда не придётся самим разыскивать адрес, соответствующий какому-либо имени, или подавать специальную команду для его поиска (например, в UNIX -- это команда nslookup). Вы, конечно, можете это проделать -- для собственного удавольствия, но зачем, ведь этого совсем не требуется.
Когда вы пользуетесь именем, например, mx.ihep.su, компьютер должен преобразовать его в адрес. Для этого он начинает запрашивать информацию у DNS-серверов. Как мы уже говорили, -- это специальные сетевые узлы, обладающие соответствующей базой данных, в число обязанностей которых входит обслуживание такого рода запросов. Запрос посылается местному DNS-серверу, который, отвечает за имена в вашей зоне DNS. DNS-сервер начинает обработку имени с правого его конца и двигается по нему влево, т.е. сначала он производит поиск адреса в самой большой группе (домене), потом постепенно сужает поиск.
Но для начала ваш местный сервер посмотрит на имеющуюся у него самого и у его соратников (вы помните, что DNS-серверов должно быть по крайней мере 2?) информацию. Возможно она есть у них самих.
А вообще говоря, здесь возможны три случая:
Как местный сервер может разузнать запрошенный адрес? Либо он сам знает адрес сервера верхнего уровня нужного домена, либо он спросит об этом у сервера верхнего уровня своего собственного домена, адрес которого он должен знать.
Например, за домен su отвечают серверы
137.39.1.3 (ns.uu.net),а за домен ru отвечают192.16.202.11 (ns.eu.net),
193.124.22.65 (ns.ussr.eu.net).
137.39.1.3 (ns.uu.net),192.5.23.200 (sparky.arl.mil),
192.16.202.11 (ns.eu.net),
192.36.125.2 (sunic.sunet.se),
192.36.148.18 (sunic.sunet.se),
192.93.0.4 (ns2.nic.fr),
192.93.2.4 (ns2.nic2.fr).
На случай полной идиотии местного сервера в нём имеется информация о том, как связаться с корневым сервером. Это сервер, который знает адреса серверов имён высшего уровня (самых правых в имени), здесь это уровень государств (ранга домена su). У этого сервера запрашивается адрес компьютера, ответственного за нужную зону, в нашем примере это su.
Местный DNS-сервер связывается с этим более общим сервером и запрашивает у него адрес сервера, ответственного за домен ihep.su. Теперь уже запрашивается этот сервер и у него запрашивается адрес рабочей машины mx.
На самом деле кэширование запрошенных имён приводит к тому, что DNS-серверы практически постоянно держат в своей памяти адреса серверов зон более высокого уровня, в которых находится данный домен. Поэтому поиск начинается не с самого верха, а с наименьшего домена, в который входит и запрашивающий и запрашиваемый компьютеры.
Этот поиск адреса совершенно аналогичен поиску пути письма без надписанного почтового индекса. Как определяется этот индекс? Все регионы пронумерованы -- это первые цифры индекса. Письмо пересылается на центральный почтамт этого региона, где имеется справочник с нумерацией районов этого региона -- это следующие цифры индекса. Теперь письмо идёт на центральный почтамт соответствующего района, где уже знают все почтовые отделения в подопечном районе. Таким образом по географическому адресу определяется почтовый индекс, ему соответствующий. Также определяется и адрес компьютера в Internet, но путешествует не послание, а запрос вашего компьютера об этом адресе. И в отличие от случая с почтой, информация об адресе доходит до вас, как если бы районный почтамт места назначения отправлял вам письмо, любезно уведомляя вас на будущее об индексе, которого вы не изволили знать.
Конечно, есть существенное отличие между этими схемами: почтовый индекс можно определять постепенно, уточняя его с каждым запросом, а адрес компьютера в Internet можно определить только сразу весь, никакой постепенности здесь быть не может.
Распространено несколько заблуждений, с которыми вы можете столкнуться, имея дело с именами. Приведём несколько верных утверждений в качестве опорных, чтобы вывести вас из заблуждений, или предостеречь от них:
Вот реально существовавший пример: в Институте Химической Физики (пос. Черноголовка Московской области) стояла машина с именем lle.icp.chg.free.net, относящимся к домену net, расположенному, по идее, в США. Теперь весь домен переименован в ac.ru, а этот компьютер называется icp.ac.ru, при этом его числовой адрес остался прежним.
Другой реальный пример: адреса GlasNet все относятся к домену glas.apc.org, что тоже, казалось бы, находится в США. Ан нет.
Например, системы dxunk8.oea.ihep.su и dxunk14.oea.ihep.su находятся в совершенно разных сетях (dxunk8 -- в сети 192.102.229, а dxunk14 -- в 192.160.233).
И ещё раз: доменные имена указывают на ответственного за домен.
Вот, например, текущие cnames имени newcom.kiae.su:
tlg.kiae.su,То, что у компьютера может быть много числовых адресов, нам кажется совершенно очевидным.news-server.kiae.su,
fax.kiae.su,
tty,kiae.su,
telex.kiae.su.
Адреса привязаны к конкретным точкам сети. Если компьютер, предоставляющий некие услуги, переносится из одного здания в другое, его сетевое расположение, а значит и адрес, скорее всего изменятся. Имя же менять не надо и не следует. Когда администратор присваивает компьютеру новый адрес, ему нужно только обновить соответствующую запись (типа A) в базе данных местного DNS-сервера так, чтобы старому имени соответствовал новый адрес. Имя будет работать по-прежнему, и вам должно быть совершенно до фени, что компьютер расположен уже в другом месте и/или имеет другой числовой адрес. Внешние наблюдатели скорее всего вообще ничего не заметят.
Региональная система имён, возможно, и выглядит сложно, но она делает общение с сетью более простым и удобным. Несомненное преимущество доменной системы состоит в том, что она разбивает громадьё Internet на набор вполне обозримых и управляемых частей. Хотя сеть включает миллионы компьютеров, все они поименованы, и именование это организовано в удобной рациональной форме, что упрощает работу.
X.400 -- общий стандарт, разработанный ISO и CCITT, для управления сообщениями. Вскоре этот стандарт планируют принять многие сети. Некоторые уже используют его.
Дополнительно к обычному тексту сообщения X.400 могут содержать и другие форматы (факсы, записи звуков речи, музыки, различные изображения и т.д.)*. Адресация в пользовании также очень проста, слегка напоминает своей идеей DNS. Только здесь используются не названия групп, сетей, но более привычные в обиходе понятия:
Можно преобразовать старый адрес в X.400 формат, но не всегда это будет просто. Тем не менее, вполне может статься, что вас осчастливят письмом в формате X.400. Чтобы послать ответ отправителю, просто возьмите его адрес из поля ``From:'' полученного письма. Соответствующий шлюз с этим разберётся.
Для общего случая имеются инструкции (RFC 1327, 1506) по переводу адресов и текстовых сообщений X.400 в формат RFC 822, имеется соответствующее программное обеспечение. А существует ли единый стандарт для записи X.400-адреса? Вроде даже и нет. Поэтому пока невозможно единообразно и ясно надписать таковой, например, на бизнес-карте.
Заинтересовавшихся пользователей отсылаем к [21].