Литмир - Электронная Библиотека

7.1. Служба имен доменов DNS

Хотя программы теоретически могут обращаться к веб-страницам, почтовым ящикам и другим ресурсам по сетевым адресам компьютеров (например, IP), на которых хранится данная информация, пользователям тяжело запоминать такие адреса. Кроме того, размещение веб-страницы компании по адресу 128.111.24.41 будет означать, что в случае переезда сервера компании на новую машину новый IP будет необходимо сообщить всем заинтересованным лицам. Для отделения имен машин от их адресов было решено использовать понятные имена высокого уровня. Поэтому обратиться к веб-серверу компании можно по адресу www.cs.washington.edu. Тем не менее, так как сеть сама по себе понимает только числовые адреса, нужен механизм преобразования имен в сетевые адреса. В следующих разделах мы изучим, как производится это отображение в Интернете.

Когда-то давно во времена сети ARPANET соответствие между текстовыми и числовыми адресами просто записывалось в файле hosts.txt, в котором перечислялись все имена компьютеров и их IP-адреса. Каждую ночь все хосты получали этот файл с сайта, на котором он хранился. В сети, состоящей из нескольких сотен больших машин, работающих под управлением системы с разделением времени, такой подход оправдывал себя.

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

Суть системы DNS заключается в иерархической схеме имен, основанной на доменах, и распределенной базе данных, реализующей эту схему имен. В первую очередь эта система используется для преобразования имен хостов в IP-адреса, но также может использоваться и в иных целях. Определение системы DNS дано в RFC 1034, 1035, 2181 и далее разработано во многих других.

В общих чертах система DNS применяется следующим образом. Для преобразования имени в IP-адрес прикладная программа обращается к библиотечной процедуре, называющейся распознавателем (resolver), передавая ей имя в качестве параметра. Мы видели пример распознавателя gethostbyname в листинге 6.1. Распознаватель посылает запрос, содержащий имя, локальному DNS-серверу, который ищет имя и возвращает соответствующий IP-адрес распознавателю, который, в свою очередь, передает этот адрес вызвавшей его прикладной программе. Запрос и ответ передаются как UDP-пакеты. Имея IP-адрес, программа может установить TCP-соединение с адресатом или послать ему UDP-пакеты.

7.1.1. Пространство имен DNS

Управление большим и постоянно изменяющимся набором имен представляет собой нетривиальную задачу. В почтовой системе на письмах требуется указывать (явно или неявно) страну, штат или область, город, улицу, номер дома, квартиру и фамилию получателя. Благодаря использованию такой иерархической схемы не возникает путаницы между Марвином Андерсоном, живущим на Мейн-стрит в Уайт-Плейнс, штат Нью-Йорк, и Марвином Андерсоном с Мейн-стрит в Остине, штат Техас. Система DNS работает аналогично.

Для Интернета основа иерархии именования разработана организацией под названием ICANN (Internet Corporation for Assigned Names and Numbers — интернет-корпорация по присвоению имен и адресов). ICANN была создана для этих целей в 1998 году, так как Интернет развился во всемирный экономический концерн. Интернет концептуально разделен на более чем 250 доменов верхнего уровня (top-level domains). Доменами называют в Интернете множество хостов, объединенных в логическую группу. Каждый домен верхнего уровня подразделяется на поддомены (subdomains), которые, в свою очередь, также могут состоять из других доменов и т. д. Все эти домены можно рассматривать в виде дерева, показанного на рис. 7.1. Листьями дерева являются домены, не разделяющиеся на поддомены (но состоящие из хостов, конечно). Такой конечный домен может состоять из одного хоста или может представлять компанию и содержать в себе тысячи хостов.

Компьютерные сети. 5-е издание - _376.jpg

Рис. 7.1. Часть доменного пространства имен Интернета

Домены верхнего уровня разделяются на две группы: родовые домены и домены государств. К родовым относятся домены, перечисленные в табл 7.1, включая оригинальные домены, созданные 1980-х годах, и новые, введенные ICANN. В будущем будут добавляться новые базовые домены высшего уровня.

Таблица 7.1. Родовые домены верхнего уровня

Домен

Использование

Дата основания

Ограниченный?

com

Коммерческие цели

1985

Нет

edu

Образовательные учреждения

1985

Да

gov

Правительство

1985

Да

int

Международные организации

1985

Да

mil

Военные

1985

Да

net

Сетевые провайдеры

1985

Нет

org

Некоммерческие организации

1985

Нет

aero

Авиатранспорт

2001

Да

biz

Бизнес

2001

Нет

coop

Кооперативы

2001

Да

info

Информация

2002

Нет

museum

Музеи

2002

Да

name

Люди

2002

Нет

pro

Профессионалы

2002

Да

cat

Каталония

2005

Да

jobs

Занятость

2005

Да

mobi

Мобильные устройства

2005

Да

tel

Контактная информация

2005

Да

travel

Индустрия путешествий

2005

Да

xxx

Секс-индустрия

2010

Нет

За каждым государством в соответствии с международным стандартом ISO 3166 закреплен один домен государства. Интернационализированные доменные имена стран, в которых используется алфавит, отличный от латинского, были введены в 2010 году. Эти домены позволяют именовать хосты, используя арабские, кириллические, китайские и другие письменности.

Зарезервировать домен второго уровня, такой как имя_компании.сот, просто. Домены высшего уровня управляются регистраторами (registrars), назначенными ICANN. Для того чтобы получить имя, нужно просто обратиться к соответствующему регистратору (в данном случае com) и проверить, доступно ли желаемое имя и не является ли оно чьей-либо торговой маркой. Если все в порядке, заказчик регистрируется и за небольшую ежегодную абонентскую плату получает домен второго уровня.

Однако по мере коммерциализации и интернационализации Интернета появляется все больше спорных вопросов, особенно в отношении именования доменов. Эти споры захватывают и саму ICANN. Так, например, создание домена ххх заняло несколько лет и повлекло несколько судебных разбирательств. Размещение порно-контента на отдельном домене — это хорошо или плохо? (Некоторые и вовсе не хотели бы видеть в Интернете сайты с порнографическим содержанием, другие хотели бы разместить их все на один домен, чтобы было легче заблокировать их при помощи программ родительского контроля.) Некоторые домены являются самоорганизующимися, на других существуют ограничения и не всякий может получить имя (как показано в табл. 7.1). Но какие ограничения уместны? Взять хотя бы домен pro. Он предназначен для квалифицированных специалистов. Но кто является специалистом, а кто нет? Понятно, что доктора и адвокаты — это профессионалы, спору нет. А что делать со свободными фотографами, учителями музыки, заклинателями, водопроводчиками, парикмахерами, мусорщиками, татуировщиками, наемниками и проститутками? Имеют ли право квалифицированные представители всех этих и многих других профессий получать домены pro? Кто должен это определять?

215
{"b":"639789","o":1}