Какой принцип передачи использует протокол udp. Протокол UDP. Протокол ARP. Применение

DNS (Domain Name System - система доменных имён) - компьютерная распределённая система преобразование символьного имени (сайт) в IP-адрес (91.106.203.89) и наоборот.

DNS была разработана Полом Мокапетрисом в 1983 году.

В сети интернет DNS выполняет важную задачу, для доступа к веб-серверу необходимо знать его IP-адрес. Необходимость использования DNS обусловлена тем, что людям легче запоминать буквенные (обычно осмысленные) адреса, чем последовательность четырех цифр IP – адреса, компьютерам, в свою очередь, удобнее обрабатывать численное представление адреса (IP-адрес). Также наличие символьного имени сервера позволяет использовать так называемые виртуальные серверы , например, HTTP-серверы, отличающиеся друг от друга именем запроса (доменным именем), но использующие один и тот же IP-адрес.

В начале для преобразования IP-адресов в символьные имена использовался текстовый файл hosts , расположенный:

  • В Windows: %SystemRoot%\system32\drivers\etc\hosts;
  • В Unix: /etc/hosts;

Пример файла hosts в Windows

Файл hosts заполнялся автоматически и централизовано на каждой ЭВМ в своей локальной вычислительной сети. Но даны подход со временем показал свою не-состоятельность, поскольку с ростом сети, количество записей в текстовом файле увеличивалось, как следствие увеличивался размер файла, ко всему прочему частая пересылка файла hosts загружала вычислительную сеть.

В итоге стала необходимость в разработке автоматизированного механизма, которым и стала распределенная система DNS.

Следует учесть, что файл hosts используется до сих пор, в частности, при настройке локального сервера на ЭВМ, в hosts записываются созданные локальные символьные имена. Например:

  • 127.0.0.1 mysite.local

Иерархия имен в DNS

В связи с тем, что число узлов интернета растет с каждым днем, для эффективной работы DNS разработана распределенная база данных, поддерживаемая с использование иерархии DNS-серверов. Структура взаимодействия DNS серверов представлена на рисунке.

Данная схема позволяет разгрузить сервер DNS по нескольким серверам DNS, что и выполняет распределенная база данных.

В основе иерархической структуры DNS лежит представление о доменном имени и зонах. Каждый DNS сервер, отвечающий за имя, может передать ответственность за дальнейшую часть домена другому серверу, что позволяет делегировать ответственность за вновь добавленную информацию на серверы различных организаций (людей), ответственных непосредственно только за «свою» часть доменного имени.

Иерархия доменных имен начинается с корневого домена без имени (или еще как его называют «домен точка»), далее идут домены верхнего уровня или домены первого уровня. Домены верхнего уровня поделены на три зоны:

  • arpa это специальный домен, используемый для сопоставления адрес - имя
  • Семь трехсимвольных доменов называются общими (generic) доменами или организационными (organizational) доменами.
  • Двухсимвольные домены, так называемые домены стран или географические домены (ru – Российская федерация, kz - Казахстан), основанные на кодах стран, в соответствии с ISO 3166.

Поскольку DNS поддерживает иерархию доменных имен, но никак не IP-адресов. Для решения “обратной” задачи есть специальный домен, структура которого совпадает со структурой IP-адресов. Называется этот домен IN-ADDR.ARPA .

in-addr.arpa - специальная доменная зона, предназначенная для определения имени хоста по его IPv4-адресу, используя PTR-запись. Имена в домене IN-ADDR.ARPA образуют иерархию цифр, которые соответствуют IP-адресам. Правда, записываются эти имена в обратном порядке относительно написания IP-адреса.

Например, доменное имя сайт, которое имеет адрес 91.106.203.89 должна быть описана в домене in-addr.arpa как 89.203.106.91.in-addr.arpa, то есть адрес записывается в обратном порядке.

Типы записей DNS

Основные типы записей используемые в протоколе DNS

    • A запись (address record IPv4) или запись адреса - основная запись, выполняет связующую роль между именем хоста (сайт) и IP адресом (5.101.153.37). Если меняется только А запись, то это значит, что наш сайт физически будет размещен на другом хостинге, а все остальные записи останутся работать на старом хостинге.
    • CNAME запись (canonical name record) или каноническая запись имени (псевдоним) - используется для перенаправления на другое имя (по аналогии с ссылками), частным примером использования CNAME записи, является создание доменных имен для ftp, mail, ssh, например
    • NS запись (name server) указывает на DNS сервер текущего домена, так называемые authoritative DNS-серверы. Смена NS-записи, при переходе на другой хостинг, всечёт за собой смену всех записей, соответственно нужно или указывать новые записи или копировать со старого сайта (например, для сохранения почты, нужно скопировать MX-запись со старого хостинга). При неправильном изменении NS записи домена, может привести к остановке работы сайта.

DNS (Domain Name System ) – служба имен, предназначена для автоматического поиска IP-адреса по известному символьному имени узла. Спецификация DNS определяется стандартами RFC 819, 1034 и 1035.

Протокол DNS является служебным протоколом прикладного уровня . Этот протокол несимметричен – в нем определены DNS-серверы и DNS-клиенты. DNS-серверы хранят часть распределенной базы данных о соответствии символьных имен и IP-адресов. Эта база данных распределена по административным доменам сети Internet. Клиенты сервера DNS знают IP-адрес сервера DNS своего административного домена и по протоколу IP передают запрос, в котором сообщают известное символьное имя и просят вернуть соответствующий ему IP-адрес.

Базу данных DNS необходимо вести вручную администратору сети. В настоящее время появилась модификация DNS, называется она DDNS, в которой базы данных обновляются автоматически.

Все DNS-серверы соединены иерархически, в соответствии с иерархией доменов сети Internet. Клиент опрашивает эти серверы имен, пока не найдет нужные отображения.

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

Корень базы данных DNS управляется центром Internet Network Information Center.


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

com – коммерческие организации (например, microsoft.com);

edu – образовательные (например, mit.edu);

gov – правительственные организации (например, nsf.gov);

org – некоммерческие организации (например, fidonet.org);

net – организации, поддерживающие сети (например, nsf.net).

Каждый домен DNS администрируется отдельной организацией, которая обычно разбивает свой домен на поддомены и передает функции администрирования этих поддоменов другим организациям. Каждый домен имеет уникальное имя, а каждый из поддоменов имеет уникальное имя внутри своего домена.

Для преобразования имен в IP-адреса также можно использовать файл hosts . В файле hosts содержится список всех имен хостов и соответствующих им адресов, например,

102.54.94.45 rhimo.acme.com

127.0.0.1 localhost

Недостатком такого способа является необходимость ручного редактирования всех файлов при появлении нового узла в сети.

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

Добавить коротко про ARP/RARP

Помимо основных протоколов стек протоколов TCP/IP содержит большое количество вспомогательных и сопутствующих. Среди них: Dynamic Host Configuration Protocol (DHCP) - сервис, используемый для автоматического назначения IP-адресов хостам.

Windows Internet Name Service (WINS) - сервис, поддерживающий распределенную, динамически обновляемую базу имен хостов и соответствующих им IP-адресов

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

Domain Name System (DNS) - служба разрешения доменных имен, базовая для Интернета. В традиционной реализации DNS требует указывать статическое соответствие между именем хоста и его адресом. Так как служба DNS не динамична, изменения в базе данных DNS (например, при добавлении нового хоста или перемещении его в другую подсеть) необходимо делать вручную. В Windows NT Server 4.0 реализован полный сервер DNS, который интегрирован со службой WINS и снабжен графической утилитой администрирования. Объединение DNS и WINS позволяет создать некоторую форму динамического DNS. Это объединение поддерживается сервисом DNS, выполняемым на Windows NT Server 4.0. Теперь можно, обратившись к DNS, запросить у WINS имя нижнего уровня в дереве DNS.

DNS преобразует символические имена машин в IP-номера (IP-адреса), которые являются адресами машин и из IP-номеров (IP-адресов) в имена. Преобразование, в данном случае, это создание ассоциации между доменным именем и IP-номером. Так, например, имени www.gu.net соответствует IP-адрес 194.93.190.121. За эти преобразования несут ответственность name servers (сервера имен).

DNS-сервер (или сервер имен) - это программа (одна или несколько), обрабатывающая запросы типа:

    "определить IP-адрес по имени",

    "определить имя по IP-адресу",

    "определить имя сервера, на который должна направлятся электронная почта для заданного домена",

    "определить имя другого сервера имен, ответственного за заданный домен".

На одном компьютере может находится одновременно несколько серверов имен.

DNS имеет иерархическую древовидную структуру, "корнями" которой являются так называемые root-сервера . На root-серверах хранится информация о том, какие есть домены первого уровня (com, org, net, gov, ua, ru и другие) и ссылки на DNS-сервера отвечающие за эти домены.

DNS (Domain Name System) - это распределенная база данных, поддерживающая иерархическую систему имен для идентификации узлов в сети Internet. Служба DNS предназначена для автоматического поиска IP-адреса по известному символьному имени узла. Спецификация DNS определяется стандартами RFC 1034 и 1035. DNS требует статической конфигурации своих таблиц, отображающих имена компьютеров в IP-адрес.

Протокол DNS является служебным протоколом прикладного уровня. Этот протокол несимметричен - в нем определены DNS-серверы и DNS-клиенты. DNS-серверы хранят часть распределенной базы данных о соответствии символьных имен и IP-адресов. Эта база данных распределена по административным доменам сети Internet. Клиенты сервера DNS знают IP-адрес сервера DNS своего административного домена и по протоколу IP передают запрос, в котором сообщают известное символьное имя и просят вернуть соответствующий ему IP-адрес.

Если данные о запрошенном соответствии хранятся в базе данного DNS-сервера, то он сразу посылает ответ клиенту, если же нет - то он посылает запрос DNS-серверу другого домена, который может сам обработать запрос, либо передать его другому DNS-серверу. Все DNS-серверы соединены иерархически, в соответствии с иерархией доменов сети Internet. Клиент опрашивает эти серверы имен, пока не найдет нужные отображения. Этот процесс ускоряется из-за того, что серверы имен постоянно кэшируют информацию, предоставляемую по запросам. Клиентские компьютеры могут использовать в своей работе IP-адреса нескольких DNS-серверов, для повышения надежности своей работы.

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

Корень базы данных DNS управляется центром Internet Network Information Center. Домены верхнего уровня назначаются для каждой страны, а также на организационной основе. Имена этих доменов должны следовать международному стандарту ISO 3166. Для обозначения стран используются трехбуквенные и двухбуквенные аббревиатуры, а для различных типов организаций используются следующие аббревиатуры:

    com - коммерческие организации (например, microsoft.com);

    edu - образовательные (например, mit.edu);

    gov - правительственные организации (например, nsf.gov);

    org - некоммерческие организации (например, fidonet.org);

    net - организации, поддерживающие сети (например, nsf.net).

Каждый домен DNS администрируется отдельной организацией, которая обычно разбивает свой домен на поддомены и передает функции администрирования этих поддоменов другим организациям. Каждый домен имеет уникальное имя, а каждый из поддоменов имеет уникальное имя внутри своего домена. Имя домена может содержать до 63 символов. Каждый хост в сети Internet однозначно определяется своим полным доменным именем (fully qualified domain name, FQDN) , которое включает имена всех доменов по направлению от хоста к корню. Пример полного DNS-имени: citint.dol.ru. Чтобы дать возможность шлюзам в интернете сообщать об ошибках или предоставлять информацию о нестандартных условиях работы, разработчики добавили механизм сообщений специального назначения в протоколы TCP/IP. Этот механизм, известный как Межсетевой Протокол Управляющих Сообщений(ICMP), считается необходимой частью IP и должен включаться в каждую реализацию IP.

Протокол обмена управляющими сообщениями ICMP (Internet Control Message Protocol) позволяет маршрутизатору сообщить конечному узлу об ошибках, с которыми машрутизатор столкнулся при передаче какого-либо IP-пакета от данного конечного узла.

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

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

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

Как и весь другой траффик, сообщения ICMP передаются по интернету в поле данных IP-дейтаграмм. Конечным назначением сообщений ICMP, тем не менее, является не прикладная программа или пользователь на машине назначения, а программное обеспечение IP на этой машине. То есть, когда прибывает сообщение ICMP об ошибке, его обрабатывает модуль программного обеспечения ICMP. Конечно, если ICMP определит, что ошибка была вызвана конкретным протоколом более высокого уровня или прикладной программой, он сообщит об этом соответствующему модулю. Т.о., Межсетевой Протокол Управляющих Сообщений позволяет шлюзам посылать управляющие сообщения или сообщения об ошибках на другие шлюзы или ГВМ; ICMP обеспечивает взаимодействие между программным обеспечением Межсетевого Протокола разных машин.

В этой статье рассмотрены необходимые для практического применения базовые аспекты функционирования .

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

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

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

Ключевыми характеристиками DNS являются:

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

Иерархия и делегирование доменных имен

Домен представляет собой именованную ветвь в дереве имен, включающую в себя сам узел (напр., домен первого уровня ".com"), а также подчиненные ему узлы (напр., домен второго уровня "example.com", домен третьего уровня "mail.example.com" и т.д.). Для обозначения иерархической принадлежности доменных имен принято использовать понятие "уровень" - показатель положения узла в дереве доменов. Чем ниже значение уровня, тем выше иерархическое положение домена

  • "." - домен нулевого уровня
  • ".ru" - домен первого (верхнего) уровня
  • "example.com" - домен второго уровня
  • "mail.example.com" - домен третьего уровня
  • Этот список можно продолжать

Обратите внимание на домен нулевого уровня "." (dot - точка) , также называемый корневым. На практике точку обычно не указывают ("example.com" вместо "example.com."), т.е. указание корневого домена не является обязательным условиям разрешения IP-адреса. Большинство клиентских программ (интернет-браузеров и т.д.) добавляют домен нулевого уровня автоматически и не отображают его пользователю. Доменное имя, не включающее обозначение домена нулевого уровня называется относительным, включающее же точку на конце - полностью определенным (FQDN - Fully Qualified Domain Name) .

Доменная зона - часть иерархического дерева доменных имен (напр. ".ru"), целиком переданная на обслуживание определенному DNS-серверу (чаще нескольким) с целью делегирования другому лицу ответственности за этот и все подчиненные домены ("anyaddress.ru", "any.anyaddress.ru").

Делегирование - передача ответственности за определенную ветвь дерева доменных имен другому физическому или юридическому лицу. Именно эта процедура практически реализует важный принцип работы DNS - распределенность хранения записей и обработки запросов. Сам процесс делегирования представляет собой добавление в ресурсные записи родительской зоны (".ru"), так называемых "склеивающих" ("glue") NS-записей для делегируемой дочерней зоны ("example.com"), указывающих на DNS-сервера принимающей домен стороны (например, DNS-сервера нашей компании). С этого момента все ресурсные записи домена второго уровня "example.com" и всех его дочерних доменов (например, "mail.example.com" и т.д.) хранятся на DNS-серверах этой компании, а родительская зона ".ru" хранит только указывающие на эти сервера NS-записи.

DNS-сервер - хост, хранящий ресурсные записи и обрабатывающий DNS-запросы. DNS-сервер может самостоятельно разрешать адреса, относящиеся к зоне его ответственности (в примере выше это зона example.com), или передавать запросы по зонам, которые он не обслуживает, вышестоящим серверам.

DNS-клиент - набор программных средств для работы с DNS. Сам DNS-сервер периодически также выступает в качестве клиента.

Основные типы ресурсных записей

Ресурсная запись (RR - Resource Record) - единица хранения и передачи информации в DNS, включающая в себя следующие элементы (поля):

  • Имя (Name) - имя домена, к которому относится запись
  • TTL (Time To Live) - допустимое время хранения записи неответственным сервером
  • Тип (Type) - параметр, определяющий назначение и формат записи в поле данных (Rdata)
  • Класс (Class) - тип сети передачи данных (подразумевается возможность DNS работать с типами сетей, отличных от TCP/IP)
  • Длина поля данных (Rdlen)
  • Поле данных (Rdata) - содержание и формат поля зависят от типа записи

Ниже представлены типы ресурсных записей, используемые чаще всего:

  • A (IPv4 Address Record - адресная запись) - связывает доменное имя с IPv4-адресом хоста
  • AAAA (IPv6 Address Record) - связывает доменное имя с IPv6-адресом хоста (аналогично А-записи)
  • CNAME (Canonical Name Record - каноническая запись имени) - используется для перенаправления на другое доменное имя
  • MX (Mail Exchange - почтовый обменник) - ссылается на почтовый сервер, обслуживающий домен
  • NS (Name Server - сервер имен) - ссылается на DNS-сервер, ответственный за домен
  • TXT - текстовое описание домена. Зачастую требуется для выполнения специфических задач (например, подтверждения права собственности на домен при привязке его к почтовому сервису)
  • PTR (Point to Reverse - запись указателя) - связывает ip-адрес машины с доменом, используется преимущественно для проверки сторонними почтовыми сервисами отправляемых через эту машину электронных писем на отношение к домену, указанному в параметрах почтового сервера. При несоответствии этих параметров письмо проверяется более тщательно по другим критериям.

Рекурсивные и нерекурсивные DNS-запросы

Рекурсией называется модель обработки запросов DNS-сервером, при которой последний осуществляет полный поиск информации, в том числе о доменах, неделегированных ему, при необходимости обращаясь к другим DNS-серверам.

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

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