Посмотрите наши лучшие предложения ⇛ домены со скидками... и самые дешевые домены...

Служба DNS

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

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

База DNS была создана в 1983 году Паулем Мокапетрисом и описана в RFC (Request for Comments) 882 и 883, которые позже были признаны устаревшими и были заменены RFC 1034 и 1035, которые были дополнены новой информацией. Первоначальным заданием DNS было заменить текстовый файл hosts, который составлялся централизованно. Этот текстовый файл обновлялся на каждой из компьютеров сети вручную. В связи с развитием сети Интернет количество доменов постоянно увеличивалось, что требовало нового подхода к преобразованию доменных имен и IP-адресов. Поскольку база DNS обладала большей надежностью и была способна вместить большее количество доменных имен, все данные постепенно были интегрированы в нее, и таким образом система DNS была предоставлена в распоряжение всем пользователям сети Интернет.

Отличительные особенности DNS:

  • децентрализованное управление
  • древовидная иерархическая структура хранения доменных имен
  • однозначность имен
  • возможность добавления новых доменов

Компоненты DNS

Nameserver

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

Авторитетный Nameserver отвечает за одну зону. Поэтому его сведения об этой зоне считаются достоверными. Для каждой зоны существует минимум один авторитетный сервер, так называемый первичный nameserver. Он хранит данные в SOA Resource Record. По причинам избыточности и распределения нагрузки авторитетные nameserver’a почти всегда реализованы как кластер-сервера, где данные распределенно хранятся на нескольких подчиненных серверах.

Неавторитетный Nameserver принимает данные о зоне через другие серверы, так сказать, не из первых рук. Его сведения считаются недостоверными. Поскольку данные DNS очень редко подвергаются изменениям, неавторитетные серверы хранят полученную от резолвера запрошенную информацию в оперативной памяти, чтобы при новых запросах эта информация выдавалась быстрее. Эта техника носит название кэширование. Каждая из этих записей обладает определенным сроком годности (TTL, Time to live), по истечении которого она удаляется из кэша. TTL назначается для каждой записи авторитетным Nameserver’ом и определяется после совершенного изменения этой записи (часто подвергающиеся изменениям данные DNS обычно имеют низкий TTL). Однако при определенных обстоятельствах это означает, что Nameserver может предоставлять неверные сведения в то время, как эти данные были изменены.

Особым случаем считается Nameserver только для кэширования. В этом случае Nameserver не несет ответственности ни за какую зону и должен отправлять все запросы на следующие Nameserver’а. Для этого имеется несколько стратегий:

Делегирование

Части доменного имени часто располагаются на поддоменах со специально ответственными за это Nameserver’ами. Nameserver одного домена знает ответственные Nameserver’a этих поддоменов из его зоны данных и делегирует запросы об этой подчиненной части доменного имени на этот Nameserver.

Пересылка

В том случае, если запрашиваемая часть доменного имени находится вне собственного домена, запрос направляется дальше конфигурируемым Nameserver’ам.

Первичный сервер

В случае, когда ни один сервер не конфигурирует или не отвечает, запрос направляется на первичный сервер. Для этого имена и IP-адреса первичного сервера депонируются в форме статического файла. Существует 13 первичных серверов (сервер А-М). Первичные серверы обрабатывают запросы исключительно многократно (сервер пересылает запрос на другие Nameserver’ы), так как иначе они были бы перегружены большим количеством запросов.

Строение базы DNS

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

На каждом сервере хранится одна или несколько записей — так называемые зоны — которые содержат все релевантные данные. При этих данных речь идет о Resource Records. Очень большое значение имеют 7 типов записи:

  • SOA, Start of authority record — благодаря данному типу записи задаются такие параметры зоны, как срок действия или серийный номер.
  • NS, Name Server — с ее помощью реализуется делегирование на другой Nameserver.
  • A, Address record — назначает имени адрес IPv4.
  • AAAA — назначает имени адрес IPv6.
  • CNAME, Canonical name record — отсылает от одного имени к другому.
  • MX, Mail exchange — назначает имени почтовый сервер, является особенным по историческим причинам, так как он относится к специальному сервису в интернете, а именно доставка электронной почты посредством SMTP. Все другие сервисы CNAME, A и AAAA служат для связывания домена с IP-адресом .
  • PTR, Hointer — назначает IP-адресу домен (реверсы Lookup) и равным образом используется для IPv4 и IPv6, только для IPv4 ниже домена «IN-ADDR.ARPA». и для IPv6 ниже «IP6. ARPA.»

С течением времени были выявлены новые типы записи, с помощью которых реализуется расширение базы DNS. Этот процесс еще не завершен.

Расширение DNS

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

Динамический DNS

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

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

Интернационализация

Кодировка в доменных именах была ограничена латиницей, т.к. DNS (как и Интернет вообще) был разработан в Соединенных Штатах Америки. Вместе с тем к DNS были не приспособлены многие буквы и символы, часто используемые в других странах — например, умлауты ä, ö, ü и ß в немецкоязычных странах или символы из полностью других письменных систем (например, китайский язык).

Тем временем в 2003 году последовало разрешение увеличения набора символов. Это было написано в RFC 3490, где была описана интернационализация доменных имен IDNA. Чтобы новая система была совместима с прежней, расширенные наборы с допустимыми символами кодируются и отображаются в допустимых теперь именах. При этом расширенные наборы символов нормализуются сначала согласно алгоритму Nameprep (RFC 3491) и отображаются затем посредством Punycode (RFC 3492) на применимый для DNS набор символов. IDNA требует настройки приложений сети (например, Web-браузер), тем не менее, инфраструктура Nameserver’a (сервер, резолвер) не должна изменяться. В немецкоязычных странах с марта 2004 могут регистрироваться и использоваться немецкие, лихтенштейнские, австрийские и швейцарские домены (.de.li.at и.ch) с умлаутами. Также применение IDNA возможно в других доменах верхнего уровня, в частности, в азиатских странах.

DNS в локальной сети

DNS не ограничен интернетом. DNS также может вносить локальные имена и соответствующие адреса в собственные зоны на Nameserver’e.

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

DNS-сервер BIND может работать совместно с DHCP и позволяет каждому клиенту сети работу с доменными именами.

Для пользователей Windows существует другая программа - WINS, которая обладает теми же возможностями, что и BIND, но использует другой протокол.

Соединение DNS-серверов

На сегодняшний день возможно связывать вместе несколько DNS-серверов. Сервер, именуемый как “мастер”, отвечает за несколько доменов. Синхронизирующие устройства после внесенных изменений актуализируют данные, мастер распределяет эти данные не автоматически. Выборка данных реализуется трансфером зон. Трансфер зон идет по BIND через TCP (через Default Port 53) и обычно, благодаря своей конфигурации, требует аутентификации. Синхронизирующиеся устройства обновляются, когда меняется серийный номер данных или когда они получаеют соответствующее сообщение от мастера. Совместное использование порта трансфера должно быть связано через брандмауэр с IP-адресом мастера. При использовании другого программного обеспечения данные корректируются другими путями, например, LDAP-Replikation, rsync, или другими механизмами.

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

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

Известны следующие методы:

При TSIG (Transaction Signatures) речь идет о простом основывающемся на симметричных ключах методе, при котором трафик между DNS-серверами и модернизированными версиями клиентов остается защищенным.

При DNSSEC (DNS Security) используется асимметричная криптосистема, которая выполняет почти все защитные требования DNS. Наряду со связью сервер-сервер также сохраняется связь клиент-сервер.

Формы атак

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

DDOS атаки на Nameserver

При DDOS атаке (Distributed-Denial-of-Service-Attack) DNS перегружаются большим потоком DNS-запросов, так что легитимные запросы не могут быть выполнены. В настоящее время не имеется надежной защиты против DDOS атак на Nameserver’ы. В качестве мер предосторожности можно попробовать установить размеры Nameserver’а или инсталлировать распределенную сеть многими серверами. В любом случае, данный вид атак требует огромных затрат, т.к. необходимо завладеть такой мощной системой, как сам сервер, что весьма трудно реализовать. При таких атаках часто используются боты.

Атака рекурсивными запросами (DNS Amplification Attack)

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

DNS-Spoofing

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

Cache Poisoning

В ответ на запрос пользователя дополнительно к правильному ответу передаются манипулируемые данные, которые пользователь принимает в свой кэш и использует позже, возможно, непроверенно.

Открытый DNS-сервер

Использующие авторитетный DNS-сервер для своих собственных доменов, разумеется, должны быть открыты для запросов с любых IP-адресов. Чтобы препятствовать использованию клиентами данного сервера в качестве общего Nameserver’a (к примеру, для атак на корневой сервер), он разрешает BIND ограничивать ответы о собственных доменах. Например, при опции allow-recursion {127.0.0.1; 172.16.1.4;} рекурсивные запросы, т.е. запросы о других доменах, обрабатываются только для локального компьютера (localhost) и 172.16.1.4. Все другие IP-адреса получают ответ только на запросы о своих доменах.

Дополнительная мера предосторожности - разрешать для ввода информации извне только UDP. ICCP DP также может быть допущена. Тем не менее, это варьируется от свойств Proxy.

Открытый DNS-сервер может быть также ловушкой, если он посылает в ответ фальшивые IP-адреса.

Защита от спама

При опции “Черный список” DNS запрашивает, находится ли доменное имя или IP-адрес в этом списке.: пользователь отправляет DNS-запрос на RBL-сервер. Он отвечает ‘127.0.0.1’, если адрес не находится в списке, то с ‘1 270,0,x’, x> 1. Значение x может содержать дополнительные сведения о запрашиваемом IP-адресе. Так как зона 127.0.0.0/8 зарезервирована для локального хоста, ошибки и неправильные толкования невозможны.