Dns система доменных имен: Что такое DNS? Введение в систему доменных имён

Пара слов о DNS / Блог компании 1cloud.ru / Хабр

Являясь провайдером виртуальной инфраструктуры, компания 1cloud интересуется сетевыми технологиями, о которых мы регулярно рассказываем в своем блоге. Сегодня мы подготовили материал, затрагивающий тему доменных имен. В нем мы рассмотрим базовые аспекты функционирования DNS и вопросы безопасности DNS-серверов.

/ фото James Cridland CC

Изначально, до распространения интернета, адреса преобразовывались согласно содержимому файла hosts, рассылаемого на каждую из машин в сети. Однако по мере её роста такой метод перестал оправдывать себя – появилась потребность в новом механизме, которым и стала DNS, разработанная в 1983 году Полом Мокапетрисом (Paul Mockapetris).

Что такое DNS?


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

DNS состоит из распределенной базы имен, чья структура напоминает логическое дерево, называемое пространством имен домена. Каждый узел в этом пространстве имеет свое уникальное имя. Это логическое дерево «растет» из корневого домена, который является самым верхним уровнем иерархии DNS и обозначается символом – точкой. А уже от корневого элемента ответвляются поддоменые зоны или узлы (компьютеры).


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

В иерархическом же пространстве имен каждое имя составлено из нескольких частей: например, домена первого уровня .ru, домена второго уровня 1cloud.ru, домена третьего уровня panel.1cloud.ru и т. д. Этот тип пространства имен позволяет легко проводить проверки на дубликаты, и при этом организациям не нужно беспокоиться, что префикс, выбранный для хоста, занят кем-то другим – полный адрес будет отличаться.

Сопоставление имен


Давайте взглянем, как происходит сопоставление имен и IP-адресов. Предположим, пользователь набирает в строке браузера www.1cloud.ru и нажимает Enter. Браузер посылает запрос DNS-серверу сети, а сервер, в свою очередь, либо отвечает сам (если ответ ему известен), либо пересылает запрос одному из высокоуровневых доменных серверов (или корневому).

Затем запрос начинает свое путешествие – корневой сервер пересылает его серверу первого уровня (поддерживающего зону .ru). Тот – серверу второго уровня (1cloud) и так далее, пока не найдется сервер, который точно знает запрошенное имя и адрес, либо знает, что такого имени не существует. После этого запрос начинает движение обратно. Чтобы наглядно объяснить, как это работает, ребята из dnssimple подготовили красочный комикс, который вы можете найти по ссылке.

Также стоит пару слов сказать про процедуру обратного сопоставления – получение имени по предоставленному IP-адресу. Это происходит, например, при проверках сервера электронной почты. Существует специальный домен in-addr.arpa, записи в котором используются для преобразования IP-адресов в символьные имена. Например, для получения DNS-имени для адреса 11.22.33.44 можно запросить у DNS-сервера запись 44.33.22.11.in-addr.arpa, и тот вернёт соответствующее символьное имя.

Кто управляет и поддерживает DNS-сервера?


Когда вы вводите адрес интернет-ресурса в строку браузера, он отправляет запрос на DNS-сервер отвечающий за корневую зону. Таких серверов 13 и они управляются различными операторами и организациями. Например, сервер a.root-servers.net имеет IP-адрес 198.41.0.4 и находится в ведении компании Verisign, а e.root-servers.net (192.203.230.10) обслуживает НАСА.

Каждый из этих операторов предоставляет данную услугу бесплатно, а также обеспечивает бесперебойную работу, поскольку при отказе любого из этих серверов станут недоступны целые зоны интернета. Ранее корневые DNS-серверы, являющиеся основой для обработки всех запросов о доменных именах в интернете, располагались в Северной Америке. Однако с внедрением технологии альтернативной адресации они «распространились» по всему миру, и фактически их число увеличилось с 13 до 123, что позволило повысить надёжность фундамента DNS.

Например, в Северной Америке находятся 40 серверов (32,5%), в Европе – 35 (28,5%), еще 6 серверов располагаются в Южной Америке (4,9%) и 3 – в Африке (2,4%). Если взглянуть на карту, то DNS-серверы расположены согласно интенсивности использования интернет-инфраструктуры.

Защита от атак


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

«В прошлом уже происходили атаки на DNS-сервера, приводящие к массовым сбоям. Как-то из-за подмены DNS-записи в течение часа для пользователей был недоступен известный всем сервис Twitter, – рассказывает Алексей Шевченко, руководитель направления инфраструктурных решений российского представительства ESET. – Но куда опаснее атаки на корневые DNS-сервера. В частности, широкую огласку получили атаки в октябре 2002 года, когда неизвестные пытались провести DDoS-атаку на 10 из 13 DNS-серверов верхнего уровня».

Протокол DNS использует для работы TCP- или UDP-порт для ответов на запросы. Традиционно они отправляются в виде одной UDP-датаграммы. Однако UDP является протоколом без установления соединения и поэтому обладает уязвимостями, связанными с подделкой адресов – многие из атак, проводимых на DNS-сервера, полагаются на подмену. Чтобы этому препятствовать, используют ряд методик, направленных на повышение безопасности.

Одним из вариантов может служить технология uRPF (Unicast Reverse Path Forwarding), идея которой заключается в определении того, может ли пакет с определенным адресом отправителя быть принят на конкретном сетевом интерфейсе. Если пакет получен с сетевого интерфейса, который используется для передачи данных, адресованных отправителю этого пакета, то пакет считается прошедшим проверку. В противном случае он отбрасывается.

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

Еще один вариант – использование функции IP Source Guard. Она основывается на технологии uRPF и отслеживании DHCP-пакетов для фильтрации поддельного трафика на отдельных портах коммутатора. IP Source Guard проверяет DHCP-трафик в сети и определяет, какие IP-адреса были назначены сетевым устройствам.

После того как эта информация была собрана и сохранена в таблице объединения отслеживания DHCP-пакетов, IP Source Guard может использовать ее для фильтрации IP-пакетов, полученных сетевым устройством. Если пакет получен с IP-адресом источника, который не соответствует таблице объединения отслеживания DHCP-пакетов, то пакет отбрасывается.

Также стоит отметить утилиту dns-validator, которая наблюдает за передачей всех пакетов DNS, сопоставляет каждый запрос с ответом и в случае несовпадения заголовков уведомляет об этом пользователя. Подробная информация доступна в репозитории на GitHub.

Заключение


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

Постоянно ведутся работы по повышению надежности, чтобы сделать систему менее чувствительной к сбоям (стихийные бедствия, отключения электросети и т. д.), и это очень важно, поскольку интернет стал неотъемлемой частью нашей жизни, и «терять» его, даже на пару минут, совершенно не хочется.

Кстати, компания 1cloud предлагает своим пользователям VPS бесплатную услугу «DNS-хостинг» – инструмент, упрощающий администрирование ваших проектов за счет работы с общим интерфейсом для управления хостами и ссылающимися на них доменами.

О чем еще мы пишем:

принцип работы системы доменных имен

Прочитав статью, Вы узнаете зачем нужен DNS, о его важности и как он работает.

Что такое DNS

Система доменных имен (DNS) — это то, что позволяет пользователям подключаться к веб-сайтам. В результате, используются доменные имена в Интернете и доступные для поиска URL-адреса, а не числовые адреса интернет-протокола. Вместо того, чтобы запоминать IP-адрес, пользователи могут вместо этого ищут вбивая запрос.DNS - принцип работы системы доменных имен

Технологию ДНС можно сравнить с управлением телефонными контактами на смартфонах. Вместо того, чтобы запоминать отдельные телефонные номера, пользователи легко сохраняют их в своих списках контактов. Затем их можно легко найти по имени и фамилии.

Технология перевода, лежащая в основе ДНС, также полностью определила, как компании используют Интернет. Особенно это заметно при создании фирменного стиля и представлении своих клиентов. Без использования системы доменных имен клиенты теряют информацию о том, какие сайты они ищут. И хотя IP-адреса могут время от времени меняться, доменные имена легко запоминаются и остаются неизменными.

Как работает DNS

Важно различать использование публичного и частного DNS.

  • Общедоступный ДНС: IP-записи обычно предоставляются вашему бизнесу вашим интернет-провайдером (ISP). Эти записи доступны для общественности, независимо от того, какое устройство они используют.
  • Частный ДНС. Частный ДНС отличается от общедоступного тем, что он находится за брандмауэром компании и содержит только записи внутренних сайтов. В этом случае частный ДНС ограничен в своей области запоминанием IP-адресов из используемых внутренних сайтов и служб и не может быть доступен вне частной сети.

В большинстве случаев пользователи будут полагаться на общедоступный ДНС при преобразовании имен хостов в IP-адреса. Вот общий обзор того, как этот процесс работает:

Пользователь вводит доменное имя или URL (например, www.example.ru) в браузер. Затем он отправляет запрос на локальный DNS-сервер, обычно предоставляемый локальной OC или поставщиком услуг Интернета. Этот посредник между клиентом и DNS-сервером имен известен как рекурсивный распознаватель. Он предназначен для запроса или получения запрашиваемой информации о сервере имен к клиенту и от него.secure

Рекурсивный распознаватель делает запрос, который передается корневым серверам имен, отвечающим соответствующим сервером имен TLD.

Корневые серверы имен также контролируются Интернет-корпорацией по присвоению имен и номеров (ICANN). Сервер имен TLD — это то, что содержит всю информацию URL-адресов, которые заканчиваются общими расширениями, такими как com,ru, net, и прочие.

ДНС стал критически важным для основных функций Интернета. Он помогает пользователям легко ориентироваться в море IP-адресов с помощью записей ресурсов. Без этих важных процессов невозможно поддерживать все функции, которые мы используем ежедневно в режиме онлайн.

К тому же, это ограничивало бы наши возможности в:

  • настройке почтовых служб
  • перенаправления веб-сайтов
  • распознавания сложных веб.

Но что делает поиск ДНС таким удивительным? Все поисковые запросы и перенаправления сервера происходят за считанные миллисекунды, не влияя на клиентскую сторону.

Безопасность DNS

Хотя большинство современных ДНС-серверов достаточно безопасны, старые системы, разработанные много лет назад, сталкиваются с проблемами безопасности. Вот несколько общих рисков, связанных с использованием этих DNS-серверов.

Перехват DNSsword attack

Также известная как атака перенаправления. Перехват ДНС происходит, когда запросы неправильно разрешены и перенаправляют пользователей на фальшивые и вредоносные веб-сайты. Это делается путем установки вредоносных программ на компьютеры пользователей. В результате, они захватывают маршрутизаторы или перехватывают соединения ДНС по мере их возникновения.

«Отравление»poison

Отравление кэша ДНС происходит, когда хакер фактически получает контроль над самим сервером и скомпрометирует записи IP-адреса. Эти ложные записи затем распространяются по всему миру поставщикам интернет-услуг, где они кэшируются и используются в общедоступных поисках ДНС.

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

Подобно HTTPS, DNSSec добавляет дополнительный уровень безопасности для доступа к ДНС-записям без необходимости интенсивного шифрования, что замедляет процесс запроса.

Рекомендации по безопасности DNS

Независимо от типа ДНС-сервисов, которые вы выбираете, есть несколько рекомендаций, которые используются, чтобы избежать появления атаки и минимизировать любые потенциальные проблемы безопасности:

  • Очистить dns кэш. Регулярная очистка кэша DNS удалит все записи в вашей локальной системе. Этот процесс полезен для удаления любых недействительных или скомпрометированных записей ДНС, которые перенаправляют вас на вредоносные сайты.clear
  • Nslookup. Nslookup — это код программы и команды, который используется администраторами сервера для определения IP-адреса указанного имени хоста. Это позволяет пользователям защищать себя от фишинговых атак и по требованию подтверждать действительность сайтов, которые они посещают.
  • Тест утечки DNS. Есть несколько бесплатных сервисов для запуска теста утечки ДНС. Когда вы используете безопасные VPN или службы конфиденциальности, иногда вы можете обнаружить, что они плохо настроены и ДНС-серверы по умолчанию все еще используются. Это будет означать, что любой, кто отслеживает сетевой трафик, по-прежнему сможет регистрировать вашу активность в злонамеренных целях. Выполнение теста на утечку DNS гарантирует, что у вас есть закрытый VPN-туннель, и ваш сетевой трафик остается безопасным.

Вывод

Надеемся, изучив статью у Вас сложилось устойчивое представление о DNS

Что такое DNS? – Знакомство с DNS – AWS

DNS (система доменных имен) преобразует доменные имена, удобные для человеческого восприятия (например, www.amazon.com), в IP-адреса, понимаемые машиной (например, 192.0.2.44).

 

 

Все компьютеры, подключенные к Интернету, включая смартфоны, настольные компьютеры и серверы, предоставляющие контент для огромных торговых веб-сайтов, находят друг друга и обмениваются информацией с помощью цифр. Эти цифры называются IP-адресами. Чтобы открыть веб-сайт в браузере, не требуется запоминать длинные наборы цифр. Достаточно ввести доменное имя, например example.com, и браузер откроет нужную страницу.

Служба DNS, например Amazon Route 53, – это глобальный распределенный сервис, преобразующий доменные имена, удобные для человеческого восприятия (например, www.example.com), в числовые IP-адреса (например, 192.0.2.1), используемые для взаимодействия компьютеров. Система DNS в Интернете очень похожа на телефонную книгу, которая устанавливает привязку имен абонентов к их телефонным номерам. Серверы DNS преобразуют запросы по именам в IP-адреса, обеспечивая соединение конечного пользователя с определенным сервером при вводе доменного имени в веб-браузер пользователя. Такие запросы называются DNS-запросами.

Авторитативный DNS-сервис. Авторитативный DNS-сервис предоставляет механизм обновления, используемый разработчиками для управления публичными именами DNS. Он отвечает на запросы к DNS, преобразуя доменные имена в IP-адреса, чтобы обеспечить взаимодействие компьютеров между собой. Авторитативный DNS-сервис полностью отвечает за домен и предоставляет информацию об IP-адресах в ответ на запросы рекурсивных DNS-серверов. Amazon Route 53 является авторитативным DNS-сервисом.

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

первые DNS-серверы / Блог компании 1cloud.ru / Хабр

В прошлый раз мы начали рассказывать историю DNS — вспомнили, с чего стартовал проект, и какие проблемы был призван решить в сети ARPANET. Сегодня поговорим о первом DNS-сервере BIND.


Фото — John Markos O’Neill — CC BY-SA

Первые DNS-серверы


После того как в 1983 году Пол Мокапетрис (Paul Mockapetris) и Джон Постел (Jon Postel) предложили концепцию доменных имен для сети ARPANET, она достаточно быстро снискала одобрение ИТ-сообщества. Одними из первых реализовать её на практике взялись инженеры из Университета в Беркли. В 1984 году четыре студента представили первый DNS-сервер — Berkeley Internet Name Domain (BIND). Они работали в рамках гранта, выданного Управлением перспективных исследовательских проектов Министерства обороны США (DARPA).

Разработанная учащимися университета система автоматически преобразовывала DNS-имя в IP-адрес и наоборот. Интересно, что когда её код загрузили на BSD (систему распространения ПО), первые исходники уже имели номер версии 4.3. Первое время DNS-сервером пользовались сотрудники лабораторий университета. Вплоть до версии 4.8.3 за разработку BIND отвечали члены исследовательской группы Университета в Беркли — Computer Systems Research Group (CSRG), но во второй половине 1980-х DNS-сервер вырвался за пределы вуза — его передали в руки Пола Викси (Paul Vixie) из корпорации DEC. Пол выпустил обновления 4.9 и 4.9.1, а потом основал Internet Software Consortium (ISC), который с тех пор и отвечает за поддержку BIND. По словам Пола, все предыдущие версии опирались на код студентов из Беркли, и за прошедшие пятнадцать лет он полностью исчерпал свои возможности для модернизации. Поэтому в 2000 году BIND переписали с нуля.

Сервер BIND включает в себя сразу несколько библиотек и компонентов, реализующих «клиент-серверную» архитектуру DNS и отвечающих за настройку функций DNS-сервера. BIND широко распространен, особенно на Linux, и остается популярной реализацией DNS-сервера. Это решение установлено на серверах, обеспечивающих поддержку корневой зоны.

Есть и альтернативы BIND. Например, PowerDNS, идущий в комплекте с Linux-дистрибутивами. Он написан Бертом Хубертом (Bert Hubert) из голландской компании PowerDNS.COM и поддерживается open source сообществом. В 2005 году PowerDNS внедрили на серверах фонда «Викимедиа». Решением также пользуются крупные облачные провайдеры, европейские телекоммуникационные компании и организации из списка Fortune 500.

BIND и PowerDNS одни из самых распространенных, но не единственные DNS-серверы. Также стоит отметить Unbound, djbdns и Dnsmasq.

Развитие системы доменных имен


За всю историю DNS в её спецификацию вносили множество изменений. В качестве одного из первых и крупных обновлений добавили механизмы NOTIFY и IXFR в 1996 году. Они упростили репликацию баз данных системы доменных имен между первичным и вторичным серверами. Новое решение дало возможность настраивать уведомления об изменении DNS-записей. Такой подход гарантировал идентичность вторичной и первичной DNS-зоны плюс экономил трафик — синхронизация происходила только при необходимости, а не через фиксированные интервалы.


Фото — Richard Masoner — CC BY-SA

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

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


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


Мы в 1cloud предлагаем услугу «Виртуальный сервер». С её помощью можно за пару минут арендовать и настроить удаленный VDS/VPS-сервер.

Также есть партнерская программа для всех пользователей. Разместите реферальные ссылки на наш сервис и получайте вознаграждение за приведенных клиентов.

Система доменных имен dns

Соответствие между доменными именами и IP-адресами может устанавливаться как средствами локального хоста, так и средствами централизованной службы. На раннем этапе развития Internet на каждом хосте вручную создавался текстовый файл с известным именем hosts. Этот файл состоял из некоторого количества строк, каждая из которых содержала одну пару «IP-адрес — доменное имя», например 102.54.94.97 — rhino.acme.com.

По мере роста Internet файлы hosts также росли, и создание масштабируемого решения для разрешения имен стало необходимостью.

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

Служба DNS использует текстовые файлы почти такого формата, как и файл hosts, и эти файлы администратор также подготавливает вручную. Однако служба DNS опирается на иерархию доменов, и каждый сервер службы DNS хранит только часть имен сети, а не все имена, как это происходит при использовании файлов hosts. При росте количества узлов в сети проблема масштабирования решается созданием новых доменов и поддоменов имен и добавлением в службу DNS новых серверов.

Для каждого домена имен создается свой DNS-сервер. Этот сервер может хранить отображения «доменное имя — IP-адрес» для всего домена, включая все его поддомены. Однако при этом решение оказывается плохо масштабируемым, так как при добавлении новых поддоменов нагрузка на этот сервер может превысить его возможности. Чаще сервер домена хранит только имена, которые заканчиваются на следующем ниже уровне иерархии по сравнению с именем домена. (Аналогично каталогу файловой системы, который содержит записи о файлах и подкаталогах, непосредственно в него «входящих».) Именно при такой организации службы DNS нагрузка по разрешению имен распределяется более-менее равномерно между всеми DNS-серверами сети. Например, в первом случае DNS-сервер домена mmtru будет хранить отображения для всех имен, заканчивающихся на mmt.ru: wwwl.zil.mmt.ru, ftp.zil.mmt.ru, mail.mmt.ru и т. д. Во втором случае этот сервер хранит отображения только имен типа mail.mmt.ru, www.mmt.ru, а все остальные отображения должны храниться на DNS-сервере поддомена zil.

Каждый DNS-сервер кроме таблицы отображений имен содержит ссылки на DNS-серверы своих поддоменов. Эти ссылки связывают отдельные DNS-серверы в единую службу DNS. Ссылки представляют собой IP-адреса соответствующих серверов. Для обслуживания корневого домена выделено несколько дублирующих друг друга DNS-серверов, IP-адреса которых являются широко известными (их можно узнать, например, в InterNIC).

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

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

Существуют две основные схемы разрешения DNS-имен. В первом варианте работу по поиску IP-адреса координирует DNS-клиент:

  • DNS-клиент обращается к корневому DNS-серверу с указанием полного доменного имени;

  • DNS-сервер отвечает, указывая адрес следующего DNS-сервера, обслуживающего домен верхнего уровня, заданный в старшей части запрошенного имени;

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

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

Во втором варианте реализуется рекурсивная процедура:

  • DNS-клиент запрашивает локальный DNS-сервер, то есть тот сервер, который обслуживает поддомен, к которому принадлежит имя клиента;

  • если локальный DNS-сервер знает ответ, то он сразу же возвращает его клиенту; это может соответствовать случаю, когда запрошенное имя входит в тот же поддомен, что и имя клиента, а также может соответствовать случаю, когда сервер уже узнавал данное соответствие для другого клиента и сохранил его в своем кэше;

  • если же локальный сервер не знает ответ, то он выполняет итеративные запросы к корневому серверу и т. д. точно так же, как это делал клиент в первом варианте; получив ответ, он передает его клиенту, который все это время просто ждал его от своего локального DNS-сервера.

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

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

Выводы

  • В стеке TCP/IP используются три типа адресов: локальные (называемые также аппаратными), IP-адреса и символьные доменные имена. Все эти типы адресов присваиваются узлам составной сети независимо друг от друга.

  • IP-адрес имеет длину 4 байта и состоит из номера сети и номера узла. Для определения границы, отделяющей номер сети от номера узла, реализуются два подхода. Первый основан на понятии класса адреса, второй — на использовании масок.

  • Класс адреса определяется значениями нескольких первых бит адреса. В адресах класса А под номер сети отводится один байт, а остальные три байта — под номер узла, поэтому они используются в самых больших сетях. Для небольших сетей больше подходят адреса класса С, в которых номер сети занимает три байта, а для нумерации узлов может быть использован только один байт. Промежуточное положение занимают адреса класса В.

  • Другой способ определения, какая часть адреса является номером сети, а какая номером узла, основан на использовании маски. Маска — это число, которое используется в паре с IP-адресом; двоичная запись маски содержит единицы в тех разрядах, которые в IP-адресе должны интерпретироваться как номер сети.

  • Номера сетей назначаются либо централизованно, если сеть является частью Internet, либо произвольно, если сеть работает автономно.

  • Процесс распределения IP-адресов по узлам сети может быть автоматизирован с помощью протокола DHCP.

  • Установление соответствия между IP-адресом и аппаратным адресом (чаще всего МАС — адресом) осуществляется протоколом разрешения адресов ARP, который для этой цели просматривает ARP-таблицы. Если нужный адрес отсутствует, то выполняется широковещательный ARP-запрос.

  • В стеке TCP/IP применяется доменная система символьных имен, которая имеет иерархическую древовидную структуру, допускающую использование в имени произвольного количества составных частей. Совокупность имен, у которых несколько старших составных частей совпадают, образуют домен имен. Доменные имена назначаются централизованно, если сеть является частью Internet, в противном случае — локально.

  • Соответствие между доменными именами и IP-адресами может устанавливаться как средствами локального хоста с использованием файла hosts, так и с помощью централизованной службы DNS, основанной на распределенной базе отображений «доменное имя — IP-адрес».

Выводы

  • Протокол IP решает задачу доставки сообщений между узлами составной сети. Протокол IP относится к протоколам без установления соединений, поэтому он не дает никаких гарантий надежной доставки сообщений. Все вопросы обеспечения надежности доставки данных в составной сети в стеке TCP/IP решает протокол TCP, основанный на установлении логических соединений между взаимодействующими процессами.

  • IP-пакет состоит из заголовка и поля данных. Максимальная длина пакета 65 535 байт, Заголовок обычно имеет длину 20 байт и содержит информацию о сетевых адресах отправителя и получателя, о параметрах фрагментации, о времени жизни пакета, о контрольной сумме и некоторых других. В поле данных IP-пакета находятся сообщения более высокого уровня, например TCP или UDP.

  • Вид таблицы IP-маршрутизации зависит от конкретной реализации маршрутизатора, но, несмотря на достаточно сильные внешние различия, в таблицах всех типов маршрутизаторов есть все ключевые поля, необходимые для выполнения маршрутизации.

  • Существует несколько источников, поставляющих записи в таблицу маршрутизации. Во-первых, при инициализации программное обеспечение стека TCP/ IP заносит в таблицу записи о непосредственно подключенных сетях и маршрутизаторах по умолчанию, а также записи об особых адресах типа 127.0.0.0. Во-вторых, администратор вручную заносит статические записи о специфичных маршрутах или о маршрутизаторе по умолчанию. В-третьих, протоколы маршрутизации автоматически заносят в таблицу динамические записи о имеющихся маршрутах.

  • Эффективным средством структуризации IP-сетей являются маски. Маски позволяют разделить одну сеть на несколько подсетей. Маски одинаковой длины используются для деления сети на подсети равного размера, а маски переменной длины — для деления сети на подсети разного размера. Использование масок модифицирует алгоритм маршрутизации, поэтому в этом случае предъявляются особые требования к протоколам маршрутизации в сети, к техническим характеристикам маршрутизаторов и процедурам их конфигурирования.

  • Значительная роль в будущем IP-сетей отводится технологии бесклассовой междоменной маршрутизации (CIDR), которая решает две основные задачи. Первая состоит в более экономном расходование адресного пространства — благодаря CIDR поставщики услуг получают возможность «нарезать» блоки разных размеров из выделенного им адресного пространства в точном соответствии с требованиями каждого клиента. Вторая задача заключается в уменьшении числа записей в таблицах маршрутизации за счет объединения маршрутов — одна запись в таблице маршрутизации может представлять большое количество сетей с общим префиксом.

  • Важной особенностью протокола IP, отличающей его от других сетевых протоколов, является его способность выполнять динамическую фрагментацию пакетов при передаче их между сетями с различными MTU. Это свойство во многом способствовало тому, что протокол IP смог занять доминирующие позиции в сложных составных сетях.

смешивать, но не взбалтывать / Блог компании Сервер Молл / Хабр

В очередном «конспекте админа» остановимся на еще одной фундаментальной вещи – механизме разрешения имен в IP-сетях. Кстати, знаете почему в доменной сети nslookup на все запросы может отвечать одним адресом? И это при том, что сайты исправно открываются. Если задумались – добро пожаловать под кат..

Для преобразования имени в IP-адрес в операционных системах Windows традиционно используются две технологии – NetBIOS и более известная DNS.


NetBIOS (Network Basic Input/Output System) – технология, пришедшая к нам в 1983 году. Она обеспечивает такие возможности как:


  • регистрация и проверка сетевых имен;


  • установление и разрыв соединений;


  • связь с гарантированной доставкой информации;


  • связь с негарантированной доставкой информации;


  • поддержка управления и мониторинга драйвера и сетевой карты.

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


Небольшая памятка о сути широковещательных запросов.

Широковещательным называют такой запрос, который предназначен для получения всеми компьютерами сети. Для этого запрос посылается на специальный IP или MAC-адрес для работы на третьем или втором уровне модели OSI.

Для работы на втором уровне используется MAC-адрес FF:FF:FF:FF:FF:FF, для третьего уровня в IP-сетях адрес, являющимся последним адресом в подсети. Например, в подсети 192.168.0.0/24 этим адресом будет 192.168.0.255


Интересная особенность в том, что можно привязывать имя не к хосту, а к сервису. Например, к имени пользователя для отправки сообщений через net send.

Естественно, постоянно рассылать широковещательные запросы не эффективно, поэтому существует кэш NetBIOS – временная таблица соответствий имен и IP-адреса. Таблица находится в оперативной памяти, по умолчанию количество записей ограничено шестнадцатью, а срок жизни каждой – десять минут. Посмотреть его содержимое можно с помощью команды nbtstat -c, а очистить – nbtstat -R.

Пример работы кэша для разрешения имени узла «хр».

Что происходило при этом с точки зрения сниффера.

В крупных сетях из-за ограничения на количество записей и срока их жизни кэш уже не спасает. Да и большое количество широковещательных запросов запросто может замедлить быстродействие сети. Для того чтобы этого избежать, используется сервер WINS (Windows Internet Name Service). Адрес сервера администратор может прописать сам либо его назначит DHCP сервер. Компьютеры при включении регистрируют NetBIOS имена на сервере, к нему же обращаются и для разрешения имен.


В сетях с *nix серверами можно использовать пакет программ Samba в качестве замены WINS. Для этого достаточно добавить в конфигурационный файл строку «wins support = yes». Подробнее – в документации.

В отсутствие службы WINS можно использовать файл lmhosts, в который система будет «заглядывать» при невозможности разрешить имя другими способами. В современных системах по умолчанию он отсутствует. Есть только файл-пример-документация по адресу %systemroot%\System32\drivers\etc\lmhost.sam. Если lmhosts понадобится, его можно создать рядом с lmhosts.sam.

Сейчас технология NetBIOS не на слуху, но по умолчанию она включена. Стоит иметь это ввиду при диагностике проблем.


DNS (Domain Name System) – распределенная иерархическая система для получения информации о доменах. Пожалуй, самая известная из перечисленных. Механизм работы предельно простой, рассмотрим его на примере определения IP адреса хоста www.google.com:


  • если в кэше резолвера адреса нет, система запрашивает указанный в сетевых настройках интерфейса сервер DNS;


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


  • после этого наш сервер спрашивает об имени www.google.com сервер, который держит зону com;


  • затем сервер, который держит зону google.com уже выдает ответ.

Наглядная схема прохождения запроса DNS.

Разумеется, DNS не ограничивается просто соответствием «имя – адрес»: здесь поддерживаются разные виды записей, описанные стандартами RFC. Оставлю их список соответствующим статьям.

Сам сервис DNS работает на UDP порту 53, в редких случаях используя TCP.


DNS переключается на TCP с тем же 53 портом для переноса DNS-зоны и для запросов размером более 512 байт. Последнее встречается довольно редко, но на собеседованиях потенциальные работодатели любят задавать вопрос про порт DNS с хитрым прищуром.

Также как и у NetBIOS, у DNS существует кэш, чтобы не обращаться к серверу при каждом запросе, и файл, где можно вручную сопоставить адрес и имя – известный многим %Systemroot%\System32\drivers\etc\hosts.

В отличие от кэша NetBIOS в кэш DNS сразу считывается содержимое файла hosts. Помимо этого, интересное отличие заключается в том, что в кэше DNS хранятся не только соответствия доменов и адресов, но и неудачные попытки разрешения имен. Посмотреть содержимое кэша можно в командной строке с помощью команды ipconfig /displaydns, а очистить – ipconfig /flushdns. За работу кэша отвечает служба dnscache.

На скриншоте видно, что сразу после чистки кэша в него добавляется содержимое файла hosts, и иллюстрировано наличие в кэше неудачных попыток распознавания имени.

При попытке разрешения имени обычно используются сервера DNS, настроенные на сетевом адаптере. Но в ряде случаев, например, при подключении к корпоративному VPN, нужно отправлять запросы разрешения определенных имен на другие DNS. Для этого в системах Windows, начиная с 7\2008 R2, появилась таблица политик разрешения имен (Name Resolution Policy Table, NRPT). Настраивается она через реестр, в разделе HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\DnsClient\DnsPolicyConfig или групповыми политиками.

Настройка политики разрешения имен через GPO.

При наличии в одной сети нескольких технологий, где еще и каждая – со своим кэшем, важен порядок их использования.


Операционная система Windows пытается разрешить имена в следующем порядке:


  • проверяет, не совпадает ли имя с локальным именем хоста;


  • смотрит в кэш DNS распознавателя;


  • если в кэше соответствие не найдено, идет запрос к серверу DNS;


  • если имя хоста «плоское», например, «servername», система обращается к кэшу NetBIOS. Имена более 16 символов или составные, например «servername.domainname.ru» – NetBIOS не используется;


  • если не получилось разрешить имя на этом этапе – происходит запрос на сервер WINS;


  • если постигла неудача, то система пытается получить имя широковещательным запросом, но не более трех попыток;


  • последняя попытка – система ищет записи в локальном файле lmhosts.

Для удобства проиллюстрирую алгоритм блок-схемой:

Алгоритм разрешения имен в Windows.

То есть, при запуске команды ping server.domain.com NetBIOS и его широковещательные запросы использоваться не будут, отработает только DNS, а вот с коротким именем процедура пойдет по длинному пути. В этом легко убедиться, запустив простейший скрипт:

@echo off
echo %time%
ping hjfskhfjkshjfkshjkhfdsjk.com
echo %time%
ping xyz
echo %time%
pause

Выполнение второго пинга происходит на несколько секунд дольше, а сниффер покажет широковещательные запросы.

Сниффер показывает запросы DNS для длинного имени и широковещательные запросы NetBIOS для короткого.

Отдельного упоминания заслуживают доменные сети – в них запрос с коротким именем отработает чуть по-другому.


Active Directory тесно интегрирована с DNS и не функционирует без него. Каждому компьютеру домена создается запись в DNS, и компьютер получает полное имя (FQDN — fully qualified domain name) вида name.subdomain.domain.com.

Для того чтоб при работе не нужно было вводить FQDN, система автоматически добавляет часть имени домена к хосту при различных операциях – будь то регистрация в DNS или получение IP адреса по имени. Сначала добавляется имя домена целиком, потом следующая часть до точки.

При попытке запуска команды ping servername система проделает следующее:


При этом к составным именам типа www.google.com суффиксы по умолчанию не добавляются. Это поведение настраивается групповыми политиками.

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

Настраивать DNS суффиксы можно также групповыми политиками или на вкладке DNS дополнительных свойств TCP\IP сетевого адаптера. Просмотреть текущие настройки удобно командой ipconfig /all.

Суффиксы DNS и их порядок в выводе ipconfig /all.

Однако утилита nslookup работает немного по-другому: она добавляет суффиксы в том числе и к длинным именам. Посмотреть, что именно происходит внутри nslookup можно, включив диагностический режим директивой debug или расширенный диагностический режим директивой dc2. Для примера приведу вывод команды для разрешения имени ya.ru:

nslookup -dc2 ya.ru

------------
Got answer:
    HEADER:
        opcode = QUERY, id = 1, rcode = NOERROR
        header flags:  response, want recursion, recursion avail.
        questions = 1,  answers = 1,  authority records = 0,  additional = 0

    QUESTIONS:
        4.4.8.8.in-addr.arpa, type = PTR, class = IN

    ANSWERS:
    ->  4.4.8.8.in-addr.arpa
        name = google-public-dns-b.google.com
        ttl = 86399 (23 hours 59 mins 59 secs)

------------
╤хЁтхЁ:  google-public-dns-b.google.com
Address:  8.8.4.4

------------
Got answer:

    HEADER:
        opcode = QUERY, id = 2, rcode = NOERROR
        header flags:  response, want recursion, recursion avail.
        questions = 1,  answers = 1,  authority records = 0,  additional = 0

    QUESTIONS:
        ya.ru.subdomain.domain.com, type = A, class = IN

    ANSWERS:
    ->  ya.ru.subdomain.domain.com
        internet address = 66.96.162.92
        ttl = 599 (9 mins 59 secs)

------------
Не заслуживающий доверия ответ:

------------
Got answer:

    HEADER:
        opcode = QUERY, id = 3, rcode = NOERROR
        header flags:  response, want recursion, recursion avail.
        questions = 1,  answers = 0,  authority records = 1,  additional = 0

    QUESTIONS:
        ya.ru.subdomain.domain.com, type = AAAA, class = IN

    AUTHORITY RECORDS:
    ->  domain.com
        ttl = 19 (19 secs)
        primary name server = ns-2022.awsdns-60.co.uk
        responsible mail addr = awsdns-hostmaster.amazon.com
        serial  = 1
        refresh = 7200 (2 hours)
        retry   = 900 (15 mins)
        expire  = 1209600 (14 days)
        default TTL = 86400 (1 day)

------------
╚ь :     ya.ru.subdomain.domain.com
Address:  66.96.162.92

Из-за суффиксов утилита nslookup выдала совсем не тот результат, который выдаст например пинг:

ping ya.ru -n 1
Обмен пакетами с ya.ru [87.250.250.242] с 32 байтами данных:
Ответ от 87.250.250.242: число байт=32 время=170мс TTL=52

Это поведение иногда приводит в замешательство начинающих системных администраторов.


Лично сталкивался с такой проблемой: в домене nslookup выдавал всегда один и тот же адрес в ответ на любой запрос. Как оказалось, при создании домена кто-то выбрал имя domain.com.ru, не принадлежащее организации в «большом интернете». Nslookup добавляла ко всем запросам имя домена, затем родительский суффикс – com.ru. Домен com.ru в интернете имеет wildcard запись, то есть любой запрос вида XXX.com.ru будет успешно разрешен. Поэтому nslookup и выдавал на все вопросы один ответ. Чтобы избежать подобных проблем, не рекомендуется использовать для именования не принадлежащие вам домены.

При диагностике стоит помнить, что утилита nslookup работает напрямую с сервером DNS, в отличие от обычного распознавателя имен. Если вывести компьютер из домена и расположить его в другой подсети, nslookup будет показывать, что всё в порядке, но без настройки суффиксов DNS система не сможет обращаться к серверам по коротким именам.

Отсюда частые вопросы – почему ping не работает, а nslookup работает.

В плане поиска и устранения ошибок разрешения имен могу порекомендовать не бояться использовать инструмент для анализа трафика – сниффер. С ним весь трафик как на ладони, и если добавляются лишние суффиксы, то это отразится в запросах DNS. Если запросов DNS и NetBIOS нет, некорректный ответ берется из кэша.

Если же нет возможности запустить сниффер, рекомендую сравнить вывод ping и nslookup, очистить кэши, проверить работу с другим сервером DNS.

Кстати, если вспомните любопытные DNS-курьезы из собственной практики – поделитесь в комментариях.

система доменных имен (DNS) | Документы Microsoft

  • 2 минуты на чтение

В этой статье

Применимо к: Windows Server (полугодовой канал), Windows Server 2016

Система доменных имен

(DNS) — это один из стандартных наборов протоколов, которые составляют TCP / IP, и вместе DNS-клиент и DNS-сервер предоставляют компьютерам и пользователям услуги преобразования имен по преобразованию имен компьютеров в IP-адреса.

Примечание

В дополнение к этому разделу доступно следующее содержимое DNS.

В Windows Server 2016 DNS — это роль сервера, которую можно установить с помощью диспетчера сервера или команд Windows PowerShell. Если вы устанавливаете новый лес и домен Active Directory, DNS автоматически устанавливается вместе с Active Directory в качестве сервера глобального каталога для леса и домена.

Доменные службы Active Directory (AD DS) используют DNS в качестве механизма определения местоположения контроллера домена.Когда выполняется какая-либо из основных операций Active Directory, например проверка подлинности, обновление или поиск, компьютеры используют DNS для обнаружения контроллеров домена Active Directory. Кроме того, контроллеры домена используют DNS для поиска друг друга.

Служба DNS-клиента включена во все клиентские и серверные версии операционной системы Windows и запускается по умолчанию при установке операционной системы. Когда вы настраиваете сетевое соединение TCP / IP с IP-адресом DNS-сервера, DNS-клиент запрашивает DNS-сервер, чтобы обнаружить контроллеры домена и преобразовать имена компьютеров в IP-адреса.Например, когда сетевой пользователь с учетной записью пользователя Active Directory входит в домен Active Directory, служба DNS-клиента запрашивает DNS-сервер, чтобы найти контроллер домена для домена Active Directory. Когда DNS-сервер отвечает на запрос и предоставляет клиенту IP-адрес контроллера домена, клиент связывается с контроллером домена, и может начаться процесс аутентификации.

Службы DNS-сервера и DNS-клиента Windows Server 2016 используют протокол DNS, включенный в набор протоколов TCP / IP.DNS является частью прикладного уровня эталонной модели TCP / IP, как показано на следующем рисунке.

,

DNS (система доменных имен) Определение

означает «Система доменных имен». Доменные имена служат в качестве запоминаемых имен для веб-сайтов и других служб в Интернете. Однако компьютеры получают доступ к Интернет-устройствам по их IP-адресам. DNS переводит доменные имена в IP-адреса, позволяя вам получить доступ к Интернету по его доменному имени.

Благодаря DNS вы можете посетить веб-сайт, введя доменное имя, а не IP-адрес. Например, чтобы посетить компьютерный словарь технических терминов, вы можете просто ввести «techterms.com «в адресной строке вашего веб-браузера, а не IP-адрес (67.43.14.98). Это также упрощает адреса электронной почты, поскольку DNS переводит доменное имя (после символа» @ «) в соответствующий IP-адрес.

Чтобы понять, как работает DNS, вы можете представить его как приложение контактов на вашем смартфоне. Когда вы звоните другу, вы просто выбираете его или ее имя из списка. Телефон на самом деле не называет человека по имени, он звонит на его номер телефона. DNS работает таким же образом, связывая уникальный IP-адрес с каждым доменным именем.

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

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

Обновлено: 30 августа 2014 г.

TechTerms — Компьютерный словарь технических терминов

На этой странице содержится техническое определение DNS. Он объясняет в компьютерной терминологии, что означает DNS, и является одним из многих Интернет-терминов в словаре TechTerms.

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

.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *