Система доменных имен
Постоянное расширение сети Internet привело к дефициту уникальных адресов для вновь подключаемых узлов. С другой стороны, система адресации в такой сети должна быть универсальной и удобной для пользователя. Последнее обстоятельство особенно было важно с началом использования ресурсов сети не только специалистами, но и неподготовленными пользователями, не владеющими тонкостями адресации в сети. Решающим аргументом для перехода альтернативным способам адресации в сети, удобным для работы пользователей, было неудобство запоминания 32-х битового кода, идентифицирующего отдельный узел. Это неудобство проявилось сразу же, когда сеть использовалась узким кругом специалистов. Поэтому появилась альтернативные формы записи 32-х битового IP-адреса – десятичная (195.224.11.77) и шестнадцатеричная (0xffffff80) дот-нотации. Последняя форма записи особенно была удобной для программистов, часто применяющих шестнадцатеричный алфавит для записи кода программы. Впоследствии с появлением в сети различных сервисов (электронная почта и другие службы), а также с увеличением числа узлов и такая форма записи оказалась неудобной, поскольку достаточно сложно запомнить несколько цифровых адресов, даже в десятичной дот-нотации. Это обусловило появление в сети ARPANET принципиально нового способа адресации, заключающегося в присвоении узлам сети доменного имени. В данном случае правильнее говорить о новом способе именования узлов сети, поскольку доменное имя не является логическим адресом, например, как IP-адрес или физическим адресом, как, например, шестибайтовый адрес сетевого интерфейса. Доменное имя - это только лишь удобная для пользователя форма идентификации узла вычислительной сети (сервис).
Домен – группа узлов сети (хостов), объединенных общим именем, которое для удобства несет определенную смысловую нагрузку. Например, домен «ru» объединяет узлы на территории России, а домен «sport» - узлы, относящиеся к спортивным организациям или содержащие информацию о спорте и т.д. В более широком смысле под доменом понимается множество узлов вычислительной сети, которые администрируются и поддерживаются как одно целое. Доменное имя - это уникальный алфавитно-цифровой идентификатор узла (состоит из символов ASCII-кода - букв от A до Z[7] латинского алфавита и цифр от 0 до 9, также допускается дефис «-»). Введение доменных имен поставило перед разработчиками задачу определения соответствия между доменным именем и логическим IP-адресом узла сети. Подобная задача разработчиками ARPANET была решена, когда для определения соответствия между логическим IP-адресом и физическим адресом сетевого интерфейса в пределах локальной сети были введены протоколы ARP и RARP. Однако для глобальной сети решение такой задачи является более сложным. Первоначально, когда ARPANET состояла из небольшого числа узлов, соответствие между доменными именами и IP-адресами узлов перечислялись в одном файле (hosts.txt) в виде таблицы соответствия цифрового адреса имени машины.
Авторство создания этих таблиц принадлежит Джону Постелю. Именно он первым поддерживал файл hosts.txt, который можно было получить по FTP. Этот файл хранился в сетевом информационном центре Станфордского исследовательского института (SRI). Администраторы сетей передавали в SRI дополнения и изменения, происшедшие в конфигурации администрируемой им сети. Периодически администраторы переписывали этот файл в свои системы.
В локальных сетях файлы hosts используются достаточно успешно до сих пор. Практически все операционные системы от различных версий Unix до Windows последних версий поддерживают эту систему соответствия IP-адресов именам хостов.
Пользователь для обращения к узлу мог использовать как IP-адрес узла, так и его имя. Процедура использования имени заключается в следующем: сначала по имени в файле hosts находят IP-адрес, а затем по IP-адресу устанавливают соединение с удаленным информационным ресурсом.
С ростом сети ARPANET это стало чрезвычайно затруднительно, поскольку файл увеличивался в размерах, а его пересылка по сети и хранение на каждом узле требовало значительных ресурсов. Однако главное неудобство заключалось в том, что такой способ не позволял оперативно учитывать все изменения в сети.
В 1984 году в сети ARPANET стала использоваться служба, получившая название системы доменных имен (Domain Name System - DNS). DNS была описана Полом Мокапетрисом в двух документах: RFC-882 и RFC-883 (позже эти документы были заменены на RFC-1034 и RFC-1035).
В соответствии с RFC-1034 и RFC-1035, описывающими DNS, роль доменного имени в процессе установки соединения осталась прежней. Это значит, что главное, для чего используется DNS служба - это получение IP-адреса узла сети. Исходя из этого, любая реализация DNS является прикладным процессом, который работает над стеком протоколов межсетевого обмена TCP/IP. Таким образом, базовым элементом адресации в сетях TCP/IP с введением DNS остался IP-адрес, а доменное именование (система доменных имен) играет роль вспомогательного сервиса. DNS состоит из трех основных частей: Ø пространство (множество) доменных имен (domain name space); Ø серверов доменных имен (domain name servers); Ø клиентов DNS (Resolver).
Пространство доменных имен имеет вид дерева (иерархии) узлов, как показано на рисунке 6 и подчиняется следующим правилам (RFC-1034):
Ø имя корня - пустая строка, т.е. полное имя обязательно завершается точкой[8]; Ø каждый узел дерева должен быть помечен простым именем, включающим допустимые символы; Ø прописные и строчные буквы в доменных именах не различаются; Ø допустимая длина простого имени не более 63 символов; Ø доменные имена узлов в пределах одного домена должны быть уникальны; Ø допускается применение одинаковых доменных имен в разных доменах, как показано на рисунке 6, где доменное имя «.mil» используется для обозначения домена первого уровня и домена второго уровня, являющегося поддоменом домена «.ru»;
Ø полное имя узла образуется из последовательности имени самого узла и всех имен доменов, которые с ним связаны (снизу вверх по соответствующей ветви дерева) до корня включительно, записываемых слева направо и разделяемых точками, например, как показано на рисунке 6, узлу «.Ekfacultet» соответствует следующее полное доменное имя «.Ekfacultet.urgi.rostov.ru»; Ø максимальная длина полного имени - 255 символов, включая точки; Ø максимальное число уровней дерева – 127[9]; Ø кроме полного (абсолютного) имени узла (FQDN, fully qualified domain name) допускается применение относительного (относительно некоторого опорного узла) имена, в этом случае завершающая точка отсутствует; Ø поддерево доменных имен вместе со своим корневым узлом называется доменом (поддоменом), например, обозначенная на рисунке 6 ветвь относится к группе узлов («.Ekfacultet», «.Urfacultet», «.Phfacultet», «.Dizfacultet», «.Recfacultet») и поддоменов («.rostov» «.urgi»), входящих в домен «.ru», а все узлы, показанные на рисунке 6 на самом нижнем уровне, входят в домен (поддомен) третьего уровня «.urgi» и т.д. Ø объединение узлов в домены является чисто логическим, т.е. не зависящим ни от месторасположения, ни от IP-адреса, ни от способа маршрутизации.
Полное доменное имя узла используется как ключевая информация для поиска IP-адреса узла в базе данных, содержащей таблицы соответствия доменных имен и логических адресов. Корень - это множество все узлов Internet. Данное множество подразделяется на домены первого или верхнего уровня (top-level или TLD).
Корневой зоной Internet и системой корневых серверов управляет ICANN, в частности, ICANN делегирует (передает) права управления зонами первого уровня gTLD (generic top-level domains, домены верхнего организационного уровня) и ccTLD (country code top-level domains, национальные домены).
Рис. 6. Дерево доменных имен
В соответствии с принятыми правилами право администрирования каждого домена первого уровня передается одной конкретной организации (оператору регистра; администратором доменной зоны «ru» является РосНИИРОС). Зарегистрировать домен второго уровня, например, в доменной зоне «ru» можно у одного из многочисленных регистраторов (коммерческие организации, имеющие доступ к общей базе данных оператора регистра для данной доменной зоны).
Первоначально в ARPANET было семь доменов верхнего организационного уровня: 1. com (коммерческие организации); 2. edu (образовательные организации, в основном из США); 3. gov (правительственные организации США); 4. int (международные организации); 5. mil (военные организации США); 6. net (организации, обеспечивающие сетевую инфраструктуру); 7. org (некоммерческие организации). В 90-х годах к ним были добавлены следующие домены: 8. aero (организации, связанные с авиацией); 9. arpa (используется для отображения адресов в имена); 10. biz (коммерческие организации); 11. coop (кооперативы); 12. info (разное); 13. museum (музеи); 14. name (персональные домены); 15. pro (лицензированные профессионалы). Список доменов ccTLD базируется на стандарте двухбуквенных кодов государств и территорий (ISO 3166). Примеры доменов верхнего уровня ccTLD, соответствующие отдельным государствам, приведены в таблице 4. В Internet система доменных имен реализована в виде распределенной базы данных, включающей в себя серверы DNS, клиенты DNS (resolver), объединенные общим протоколом запросов к базе данных и обмена информацией между серверами.
Таблица 4 Примеры национальных доменов верхнего уровня
Информация, соответствующая каждому доменному имени, хранится в записях ресурсов RR (resource records) DNS-сервера. Основным типом хранимой информации является IP адрес. Одному доменному имени может соответствовать несколько IP-адресов (в случае использования нескольких сетевых интерфейсов на компьютере). Кроме этого в записях ресурсов может храниться дополнительная информация, например, максимально допустимое время кэширования[10] полученной информации (TTL, time to live). В системе доменных имен различают несколько типов DNS-серверов.
В зависимости от типа отклика на запрос серверы делятся на авторитетные (authoritative) и неавторитетные (non authoritative). Авторитетный отклик (authoritative response) возвращают серверы, которые являются ответственными за зону, в которой описана информация, необходимая клиенту DNS[11]. Неавторитетный отклик (non authoritative response) возвращают серверы, которые не отвечают за зону, содержащую необходимую клиенту информацию. В зависимости от способа поддержания базы данных авторитетные DNS-серверы делятся на первичные (primary) и дублирующие (secondary)[12]. Первичный сервер доменных имен является ответственным за информацию о конкретной доменной зоне[13] и поэтому хранит эту информацию, загружает ее для ответов клиентам с локального диска узла, на котором он функционирует. Описание зоны этого сервера ведется непосредственно администратором зоны. Дублирующий сервер доменных имен также является ответственным за эту доменную зону. В его функции входит дублирование первичного сервера на случай нарушения его работы. Кроме этого, дублирующий сервер, обрабатывая часть запросов, снимает нагрузку с первичного сервера. Администратор дублирующего сервера не изменяет данные описания доменной зоны, а только обеспечивает синхронизацию базы данных дублирующего сервера с базой данных первичного сервера. Примером такой организации является система корневых (root-servers) DNS-серверов Internet. Всего в сети Internet 13[14] корневых DNS-серверов (таблица 5). Корневые серверы являются основой всей системы доменных имен, поскольку являются а вторитетными серверами для корневой зоны и содержат ссылки на такие же серверы зон первого уровня или сами являются авторитетными серверами некоторых зон первого уровня (например, com. или net.). На запрос о домене корневой сервер возвращает как минимум имя и адрес уполномоченного сервера домена первого уровня, в который входит указанный в запросе узел. Обратившись по полученному адресу можно получить имя и адрес уполномоченного сервера домена второго уровня и т.д. Из всего списка корневых серверов только один из них (A.ROOT-SERVERS.NET) является первичным, а все остальные дублирующие, хотя они содержат идентичную информацию. Таблица 5. Перечень корневых DNS-серверов Internet
Благодаря такой организации в 2002 и 2003 году с разницей в несколько месяцев Internet выдержал две глобальные атаки злоумышленников. В первом случае осенью 2002 года массированная атака DoS (отказ в обслуживании), предпринятая против 13 корневых DNS-серверов, нарушила работу восьми из тринадцати серверов. Соответственно, работоспособность сети сохранилась. Во втором случае, в самом начале 2003 года (25 января), червь (вирус) SQL Slammer вызвал одну из крупнейших и самых быстрораспространяющихся DoS атак. Примерно за 10 минут вирус распространился по всей сети и нарушил работу пяти из тринадцати корневых DNS-серверов.
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|