Домой / Обзоры / Что такое DNS сервер и как выбрать наиболее подходящий вид ДНС сервера. Что такое dns

Что такое DNS сервер и как выбрать наиболее подходящий вид ДНС сервера. Что такое dns

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

Как работает

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

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

Поскольку Интернет – это американская разработка, то существует два типа первичных доменов:

  • общие домены, которые принадлежат учреждениям США:
  1. com – бизнес-организации;
  2. gov – правительственные заведения;
  3. edu – образовательные учреждения;
  4. mil – военные представительства;
  5. org – частные организации;
  6. net – интернет-провайдера.
  • коренные домены других страны состоят из двух букв.

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

Точка исполняет роль разделителя между доменами разными порядка. В конце имени точка не ставится. Каждый отдельный домен с точкой называется меткой.

Ее длина не должна превышать 63 символа, а полная длина адреса – 255 знаков. В основном, используются латиница, цифры и знак дефиса, однако несколько лет назад начали использовать начали использовать приставки на основе других систем письменности. Регистр букв не имеет значения.


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

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

Поиск необходимых данных происходит так:



Основы DNS

Узел, состоящий из нескольких доменов, называется зоной . В ее файле содержатся основные параметры своего сегмента. В том числе он включает информацию о FQDN или полностью определенном доменном имени. Если такая запись заканчивается точкой, это значит, что имя объекта задано правильно.

Существует несколько типов компьютеров, которые обслуживают DNS:

  • master – главный агент сети. Он может изменять ее конфигурацию;
  • slave – устройства второго порядка. Они обслуживают клиентов наравне с master и могут заменять его заменять в случае неполадок. Это позволяет разгрузить сеть;
  • кэширующий. Содержит в своем информацию о доменах посторонних зон;
  • невидимый. Отсутствует в описании зоны. Чаще всего этот статус присваивается пользователям со статусом master для того, чтобы уберечь их от атаки.

К ним пользователь может отправить один из двух типов запроса.

Браузер посылает его через программу-resolver:

  • рекурсивный. Если сервер не содержит необходимой информации, этом случае он узнает необходимые данные у компьютеров высшего уровня и присылает клиенту ответ. Это позволяет уменьшить количество запросов и обеспечивает экономию времени и вашего трафика;
  • итеративный. Сервер присылает готовый ответ, отбирая информацию только из собственного кэша (памяти). Если у него нет подходящих данных, то он предоставляет ссылку на другие компьютеры. Затем браузер переходит по этому адресу.

Существует два типа ответов:

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

Видео: служба DNS

Имена и IP-адреса

Служба DNS обеспечивает перевод имен сайтов в IP-адреса. В интернете каждое устройство можно отследить по 2 основным параметрам – имени домена и IP-адресу. Они могут присваиваться компьютеру пользователя, сетевому принтеру или маршрутизатору.

Однако это весьма условно, так как компьютер может не иметь доменного имени, но использовать несколько адресов. Кроме того, каждый IP-адрес должен соответствовать всем доменным именам. Однако домен может содержать информацию только об одном IP-адресе.

Режим работы

Сервера могут работать в режимах:

  1. обслуживание собственной зоны. Обмен данными совершается между главным и подчиненными компьютерами. При этом запросы от неавторитативных пользователей не принимаются;
  2. выполнение рекурсивного вопроса;
  3. форвардинг – сервер отправляет запрос в другую зону.

Изменение DNS параметров

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


Фото: измененние параметров DNS сервера

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

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

Формат сообщения

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

Поле флагов (следующие 16 бит) включает информацию:

  1. тип сообщения;
  2. код операции;
  3. идентификация авторитативности (т.е. показывает, принадлежит ли обслуживающий компьютер к сети);
  4. ТС-флаг. Отображает, пришло сообщение обрезанным или полным.
  5. флаг рекурсии, т.е. требования серверу послать запросы компьютерам высшего порядка;
  6. флаг возможности рекурсии. Показывает способность сервера осуществлять перенаправление сообщения;
  7. код возврата. Отображает, послан ответ с ошибками или нет.

Последнее 16-битное поле показывает общее количество учитываемых параметров.

Вопросы в DNS запросе

Часть записи ресурса в отклике

Любой отклик содержит сведения о стороне, отправившей сообщение. В нем содержатся следующие данные: ответ, полномочия сервера и дополнительная информация о нем.


Кроме них, в сообщении содержится:

  • имя домена;
  • тип запроса;
  • срок актуальности кэшированной версии;
  • длина записи ресурса – оценка объема информации.

Запросы указателя

Запросы указателя направлены на поиск страницы в инверсивном режиме, т.е. поиск имени ресурса по IP-адресу, поданного в виде текстовой строки, разделенной точками.

Для его отправки адрес узла записывается в противоположном порядке с добавлением определенного суффикса (чаще всего в форме in-addr.arpa).

Совершить операцию можно, если ресурс содержит PTR-запись. Это позволяет передать управление зоной владельцу IP-адресов.

Записи ресурсов

Это – список основных программ, используемых службой. В рамках одного домена эти записи являются уникальными. На разных уровнях сети могут существовать дубли этих записей.

Эти данные включают следующие виды записей:

  1. SOA –старта полномочий. Она позволяет сопоставить домен и обслуживающие его компьютеры. Также в них содержатся сведения о сроке актуальности кэшированной версии, и контактном лице, которое обслуживает сервер определенного уровня;
  2. А содержат перечень IP-адресов и соответствующих им хостов. Они позволяют идентифицировать адрес ресурсов домена;
  3. NS (Name Server) включают список компьютеров, которые обслуживают домен;
  4. SRV (Service) отображают все ресурсы, которые выполняют важнейшие функции службы;
  5. MX (Mail Exchanger) позволяют автоматически настроить рассылку данных обслуживающим компьютерам в границах одного домена;
  6. PTR (Pointer) используются для поиска имени ресурса, если пользователь знает его IP-адрес;
  7. CNAME (Canonical Name) позволяют серверу упоминаться под несколькими псевдонимами в службе.

Кэширование

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

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


Фото: настройка кэширующего DNS сервера

Это позволяет экономить траффик, не обращаясь впоследствии к авторитативным пользователям. Но открытая запись остается действительной на протяжении ограниченного срока. Срок его актуальности установлен в файле зоны. По умолчанию минимально он составляет 1 час.

UDP или TCP

Служба поддерживает как протокол UDP, так и TCP.

UDP используется для отправки сообщений по глобальным сетям. Размер сообщений, пересылаемых по этому протоколу, лимитирован. Неполные ответы содержат метку ТС. Это означает, что размер отклика превысил 512 байт, поэтому остальная часть не дошла до компьютера.


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

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

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

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

Чтобы узнать необходимую информацию, клиент посылает запрос. Отклик содержит основные данные об интересующем объекте и компьютере, обслуживающем зону. Для осуществления этого обмена используются протоколы UDP и TCP.

Определение

DNS (Domain Name System, «система доменных имён») - компьютерная распределённая система для получения информации о доменах. Основная область применения данной системы - преобразование имени хоста в IP-адрес и предоставления данных о маршрутизации почты. Хост - это любой компьютер или сервер, подключенный к локальной сети или интернету.

Принцип работы

Схематичное представление процесса определения определения IP-адреса по вводимому имени домена

Работа DNS достаточно проста, но из-за незнания её основ возникает основная масса проблем и вопросов при переносе существующего доменного имени и регистрации нового.

Остановимся немного подробней на описании самой схемы.

  • Когда пользователь запускает веб-браузер и вводит название домена сайта, его ПК отправляет запрос к DNS-серверу интернет-провайдера для получения IP-адреса, на котором находится домен (1).
  • Если DNS-серверы провайдера не обнаруживают в своем кэше информации о запрашиваемом сайте, то отправляют запрос на корневые DNS-серверы (2).
  • Корневой DNS-сервер ищет в своей базе данных информацию о серверах имен хостинг-провайдера, на которых присутствует этот сайт. Далее, он сообщает их кэширующему DNS-серверу провайдера (3).
  • После того, как кэширующий DNS-сервер интернет-провайдера получает информацию о серверах имен хостинг-провайдера он опрашивает любой из них (4) и, в случае получения положительного результата получения IP-адреса (5), помещает в кэш. Кэширование используется для того, чтобы снизить как нагрузку на интернет-каналы, так и для ускорения получения результата запроса.
  • После этого DNS-сервер провайдера передает IP-адрес браузеру пользователя, совершившему запрос сайта (6).
  • И уже после этого браузер, получив IP-адрес запрашиваемого сайта, переходит на сам сайт (7 и 8).

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

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

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

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

Диагностика и решение проблем

Диагностика проблем и их решение рассмотрено в статье

Что такое DNS?

DNS расшифровывается как Domain Name System или Domain Name Service. Вы указали имя, а DNS подставляет ip адрес ресурса, на котором размещен сайт. Название в данном случае именно имя хоста или IP адрес. Без DNS вы должны были бы помнить IP адрес каждого сайта, который хотите посетить. Сегодня в Интернете более 300 миллионов веб-сайтов, помнить IP адрес необходимого сайта совершенно невозможно.

Что такое динамический IP?

Как сделать статический ip адрес из динамического?

Нет необходимости покупать статический IP. Используйте наш бесплатный Dynamic DNS для сопоставления динамического адреса или длинного URL с Вашим ресурсом, чтобы легко запомнить имя хоста. Удаленный мониторинг Вашего дома через веб-камеру на любом порту или запуск собственного сервера у Вас дома с динамическим IP адресом - все это доступно с сервисом DnsIP . В случае выделения провайдером динамического IP такой сервис, как Dynamic DNS, становится необходимым.

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

Приватная сеть.

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

Удаленный компьютер и удаленный рабочий стол.

С помощью DynDNS Secure сервис DnsIP позволяет организовать подключение к удаленному компьютеру через любые программы удаленного доступа, используя любой порт. При этом Вы напрямик связываетесь с удаленным компьютером, а наш сервис лишь сообщает Вашим программам необходимый IP адрес.

Мониторинг сети.

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

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

Автонажатие на кнопку бесплатного доступа при использовании Yota.

В случае, если Вы исользуете бесплатный доступ к интернету от провайдера "Yota", один раз в сутки соединение блокируется, и появляется окно в браузере c предложением продолжить на медленной скорости. Это крайне неудобно при использовании удаленного доступа к данному компьютеру. В этом случае достаточно установить нашу бесплатную программу , и она восстановит доступ к интернету в течение нескольких минут. Эта опция доступна без регистрации пользователя на нашем сайте. При этом программу необходимо только установить, никаких настроек делать не нужно.

В любой момент времени можно узнать IP-адрес Вашего ресурса.

К Вашим услугам страница http://dns-free.com/dns2ip.php?dns=xxxxxxx, где xxxxxxx - имя домена в системе DnsIP. Используйте её для организации ссылок на Ваш ресурс с использованием системы динамического днс. Либо добавьте в избранное, и одним щелчком мыши узнайте текущий ip Вашего ресурса. Или введите вручную в форме на той же

  • Перевод

Внимательный читатель найдет на этой картинке IPv6


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

Что такое DNS

DNS расшифровывается как Domain Name System . Это глобальное распределенное хранилище ключей и значений. Сервера по всему миру могут предоставить вам значение по ключу, а если им неизвестен ключ, то они попросят помощи у другого сервера.


Вот и все. Правда. Вы или ваш браузер запрашивает значение для ключа www.example.com , и получает в ответ 1.2.3.4 .

Базовые штуки

Большой плюс DNS в том, что это публичная услуга, и можно потыкать в сервера если хочется разобраться. Давайте попробуем. У меня есть домен petekeen.net , который хостится на машине web01.bugsplat.info . Команды, используемые ниже, можно запустить из командной строки OS X (ой, то есть macOS, - прим. пер. ).


Давайте взглянем на маппинг между именем и адресом:


$ dig web01.bugsplat.info

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


; <<>> DiG 9.7.6-P1 <<>> web01.bugsplat.info ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 51539 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

Здесь есть только одна интересная деталь: информация о самом запросе. Говорится, что мы запросили запись и получили ровно один ответ. Вот:


;; QUESTION SECTION: ;web01.bugsplat.info. IN A

dig по-умолчанию запрашивает A -записи. A это address (адрес), и это один из фундаментальных видов записей в DNS. A содержит один IPv4 -адрес. Есть эквивалент для IPv6 -адресов - AAAA . Давайте взглянем на ответ:


;; ANSWER SECTION: web01.bugsplat.info. 300 IN A 192.241.250.244

Оставшаяся часть ответа описывает сам ответ:


;; Query time: 20 msec ;; SERVER: 192.168.1.1#53(192.168.1.1) ;; WHEN: Fri Jul 19 20:01:16 2013 ;; MSG SIZE rcvd: 56

В частности, здесь говорится, как долго сервер откликался, какой у сервера IP-адрес (192.168.1.1), на какой порт стучался dig (53 , DNS-порт по-умолчанию), когда запрос был завершен и сколько байтов было в ответе.


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


Но в этом примере не видно, что DNS-сервер 192.168.1.1 связался с кучей других серверов чтобы ответить на простой вопрос: «куда указывает адрес web01.bugsplat.info ?». Давайте запустим трейс чтобы узнать о всей возможной цепочке, которую пришлось бы пройти dig "у, если бы информация не был закэширована:


$ dig +trace web01.bugsplat.info ; <<>> DiG 9.7.6-P1 <<>> +trace web01.bugsplat.info ;; global options: +cmd . 137375 IN NS l.root-servers.net. . 137375 IN NS m.root-servers.net. . 137375 IN NS a.root-servers.net. . 137375 IN NS b.root-servers.net. . 137375 IN NS c.root-servers.net. . 137375 IN NS d.root-servers.net. . 137375 IN NS e.root-servers.net. . 137375 IN NS f.root-servers.net. . 137375 IN NS g.root-servers.net. . 137375 IN NS h.root-servers.net. . 137375 IN NS i.root-servers.net. . 137375 IN NS j.root-servers.net. . 137375 IN NS k.root-servers.net. ;; Received 512 bytes from 192.168.1.1#53(192.168.1.1) in 189 ms info. 172800 IN NS c0.info.afilias-nst.info. info. 172800 IN NS a2.info.afilias-nst.info. info. 172800 IN NS d0.info.afilias-nst.org. info. 172800 IN NS b2.info.afilias-nst.org. info. 172800 IN NS b0.info.afilias-nst.org. info. 172800 IN NS a0.info.afilias-nst.info. ;; Received 443 bytes from 192.5.5.241#53(192.5.5.241) in 1224 ms bugsplat.info. 86400 IN NS ns-1356.awsdns-41.org. bugsplat.info. 86400 IN NS ns-212.awsdns-26.com. bugsplat.info. 86400 IN NS ns-1580.awsdns-05.co.uk. bugsplat.info. 86400 IN NS ns-911.awsdns-49.net. ;; Received 180 bytes from 199.254.48.1#53(199.254.48.1) in 239 ms web01.bugsplat.info. 300 IN A 192.241.250.244 bugsplat.info. 172800 IN NS ns-1356.awsdns-41.org. bugsplat.info. 172800 IN NS ns-1580.awsdns-05.co.uk. bugsplat.info. 172800 IN NS ns-212.awsdns-26.com. bugsplat.info. 172800 IN NS ns-911.awsdns-49.net. ;; Received 196 bytes from 205.251.195.143#53(205.251.195.143) in 15 ms

Информация выводится в иерархической последовательности. Помните как dig вставил точку. после хоста, web01.bugsplat.info ? Так вот, точка. это важная деталь, и она означает корень иерархии.


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


Итак, в самом верху трейса находятся корневые сервера, каждый определен с помощью NS- записи. NS -запись связывает доменное имя (в данном случае, корневой домен) с DNS-сервером. Когда вы регистрируете доменное имя у регистратора типа Namecheap или Godaddy, они создают NS -записи для вас.


В следующем блоке видно, как dig выбрал случайный корневой сервер, и запросил у него A -запись для web01.bugsplat.info . Видно только IP-адрес корневого сервера (192.5.5.241). Так какой именно корневой сервер это был? Давайте узнаем!


$ dig -x 192.5.5.241 ; <<>> DiG 9.8.3-P1 <<>> -x 192.5.5.241 ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 2862 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0 ;; QUESTION SECTION: ;241.5.5.192.in-addr.arpa. IN PTR ;; ANSWER SECTION: 241.5.5.192.in-addr.arpa. 3261 IN PTR f.root-servers.net.

Флаг -x заставляет dig провести обратный поиск по IP-адресу. DNS отвечает записью PTR , которая соединяет IP и хост, в данном случае - f.root-servers.net .


Возвращаясь к нашему начальному запросу: корневой сервер F вернул другой набор NS -серверов. Он отвечает за домен верхнего уровня info . dig запрашивает у одного из этих серверов запись A для web01.bugsplat.info , и получает в ответ еще один набор NS -серверов, и потом запрашивает у одного из этих серверов запись A для web01.bugsplat.info. . И, наконец, получает ответ!


Уф! Сгенерировалось бы много трафика, но почти все эти записи были надолго закэшированы каждым сервером в цепочке. Ваш компьютер тоже кэширует эти данные, как и ваш браузер. Чаще всего DNS-запросы никогда не доходят до корневых серверов, потому что их IP-адреса почти никогда не изменяются («Наверно все таки речь идет о большом TTL для записей в их базе. Если у DNS сервера IP адрес вообще ни разу не изменялся, то это не означает, что его база навечно закеширована» - прим. от ). Домены верхнего уровня com , net , org , и т.д. тоже обычно сильно закэшированы.

Другие типы

Есть еще несколько типов, о которых стоит знать. Первый это MX . Он соединяет доменное имя с одним или несколькими почтовыми серверами. Электронная почта настолько важна, что у нее есть свой тип DNS-записи. Вот значения MX для petekeen.net:


$ dig petekeen.net mx ; <<>> DiG 9.7.6-P1 <<>> petekeen.net mx ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 18765 ;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 0 ;; QUESTION SECTION: ;petekeen.net. IN MX ;; ANSWER SECTION: petekeen.net. 86400 IN MX 60 web01.bugsplat.info. ;; Query time: 272 msec ;; SERVER: 192.168.1.1#53(192.168.1.1) ;; WHEN: Fri Jul 19 20:33:43 2013 ;; MSG SIZE rcvd: 93

Заметьте, что MX -запись указывает на имя, а не на IP-адрес.


Еще один тип, который вам скорее всего знаком, это CNAME . Расшифровываетя как Canonical Name (каноническое имя). Он связывает одно имя с другим. Давайте посмотрим на ответ:


$ dig www.petekeen.net ; <<>> DiG 9.7.6-P1 <<>> www.petekeen.net ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 16785 ;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 0 ;; QUESTION SECTION: ;www.petekeen.net. IN A ;; ANSWER SECTION: www.petekeen.net. 86400 IN CNAME web01.bugsplat.info. web01.bugsplat.info. 300 IN A 192.241.250.244 ;; Query time: 63 msec ;; SERVER: 192.168.1.1#53(192.168.1.1) ;; WHEN: Fri Jul 19 20:36:58 2013 ;; MSG SIZE rcvd: 86

Сразу видно, что мы получили два ответа. Первый говорит, что www.petekeen.net указывает на web01.bugsplat.info . Второй возвращает запись A для того сервера. Можно считать, что CNAME это псевдоним (или алиас) для другого сервера.

Что не так с CNAME

Записи CNAME очень полезны, но есть важный момент: если есть CNAME с каким-то именем, то нельзя создать другую запись с таким же именем. Ни MX , ни A , ни NS , ничего.


Причина в том, что DNS производит замену таким образом, что все записи того места, куда указывает CNAME , также валидны для CNAME . В нашем примере, записи у www.petekeen.net и web01.bugsplat.info будут совпадать.


Поэтому нельзя делать CNAME на корневом домене вроде petekeen.net , потому что обычно там нужны другие записи, например, MX .

Запросы к другим серверам

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


$ dig www.petekeen.net @8.8.8.8

Символ @ с IP-адресом или хостом заставляет dig прозводить запрос к указанному серверу через порт по-умолчанию. Можно использовать публичный DNS-сервер Гугла или почти-публичный-сервер Level 3 по адресу 4.2.2.2 .

Типичные ситуации

Давайте рассмотрим типичные ситуации, знакомые многим веб-разработчикам.

Редирект домена на www

Часто нужно сделать редирект домена iskettlemanstillopen.com на www.iskettlemanstillopen.com . Регистраторы типа Namecheap или DNSimple называют это URL Redirect . Вот пример из админки Namecheap:




Символ @ означает корневой домен iskettlemanstillopen.com . Давайте посмотрим на запись A у этого домена:


$ dig iskettlemanstillopen.com ;; QUESTION SECTION: ;iskettlemanstillopen.com. IN A ;; ANSWER SECTION: iskettlemanstillopen.com. 500 IN A 192.64.119.118

Этот IP принадлежит Namecheap"у, и там крутится маленький веб-сервер, который просто делает перенаправление на уровне HTTP на адрес http://www.iskettlemanstillopen.com:


$ curl -I iskettlemanstillopen.com curl -I iskettlemanstillopen.com HTTP/1.1 302 Moved Temporarily Server: nginx Date: Fri, 19 Jul 2013 23:53:21 GMT Content-Type: text/html Connection: keep-alive Content-Length: 154 Location: http://www.iskettlemanstillopen.com/

CNAME для Heroku или Github

Взгляните на скриншот выше. На второй строке там CNAME . В этом случае www.iskettlemanstillopen.com указывает на приложение, запущенное на Heroku.


$ heroku domains === warm-journey-3906 Domain Names warm-journey-3906.herokuapp.com www.iskettlemanstillopen.com

С Github похожая история, но там нужно создать специальный файл в корне репозитория, и назвать его CNAME . См. документацию .dns Добавить метки

Категория ~ Фундаментальные статьи – Игорь (Администратор)

Устройство DNS

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

Руководство представляет из себя три главы:

Примечание : В данной статье, сознательно не поднимались такие вопросы, как построение DNS серверов для локальных сетей, определения зон и делегаций, а так же разновидности DoS и DDoS атак (отказ в обслуживании), так как основной целью данного материала являются: познакомить вас с основами DNS, дать ответы на большинство вопросов и предупредить о возможных проблемах.

1. Как мы находим ресурсы в Интернете: URL-адреса, IP-адреса и доменные имена

Система интернет имен

Интернет использует имена, адреса и маршруты для идентификации и поиска ресурсов:

  • Названия указывают, что вы ищете
  • Адреса указывают, где искать ресурс
  • Маршруты показывают, как туда попасть

Существует две основные системы интернет имен:

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

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

Когда вы бродите в интернете и вводите уникальный идентификатор ресурса, он же Uniform Resource Locator (URL), вы, как правило, используете одну из этих двух систем имен, как показано в примере ниже:

URL, как правило, идентифицирует не только адрес назначения, но и механизм, который необходимо использовать. Поэтому URL схему еще часто называют протоколом, хотя в реальности это не так. Происходит это потому, что схема, как правило, соответствует названию используемого протокола. Например, URL схема "http" обычно, но не всегда использует протокол передачи HyperText Transfer Protocol (HTTP). Тем не менее, схема - это выбранный механизм, а не протокол.

Система доменных имен, Domain Name System (DNS)

Маскировка адреса под внутренний адрес сети

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

Перенаправление, при обращении к несуществующему доменному имени

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

Поэтому стоит избегать использования DNS серверов, которые используют перенаправление. Тем не менее, вы можете использовать DNS сервера, которые осуществляют доброкачественное перенаправление:

  • Исправление опечаток. Например, "gogole.ru" будет переправлен на "google.ru"
  • Фильтрация и блокировка вредоносных ресурсов, при выдаче поддельного IP адреса, как это делает OpenDNS

Отсутствие DNSSEC аутентификации

Изначально DNS не предусматривал никаких функций безопасности. Поэтому со временем появился Domain Name System Security Extensions (DNSSEC), использующий криптографию с открытым ключом для защиты DNS данных. Тем не менее, многие DNS сервера не имеют данного расширения, и поэтому более уязвимы к таким атакам, как "отравление кэша".

Если вам интересно узнать еще больше подробностей о DNS, то вот материалы, которые могут пригодится:

  • Microsoft TechNet так же имеет свое руководство "Основные понятия о службе DNS "

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