Для чего нужна днс
Что такое DNS-сервер и для чего он нужен?
Что такое DNS-сервер и для чего он нужен?
DNS-сервер — это сервер системы DNS (Domain Name System), отвечающий за сопоставление имён доменов Интернета с IP-адресами компьютеров, на которых эти домены физически находятся. DNS-серверы позволяют пользователям набирать в браузере обычные адреса сайтов и избавляют от необходимости запоминать IP-адреса.
Что такое DNS-сервер простыми словами
Как настроить DNS-серверы
Основные DNS записи
Что такое DNS-сервер простыми словами
Сеть Интернет — это огромное количество сайтов, расположенных на физически существующих компьютерах и серверах. Каждая из этих машин имеет уникальный идентификатор во всемирной сети — IP-адрес. Он состоит из четырёх групп цифр, разделённых точками. Чтобы открыть сайт, нужно обратиться к серверу, на котором он находится, по IP-адресу. Применительно к обычным пользователям это выглядит нереалистично. Каждый день многие из нас посещают десятки и сотни сайтов — и совершенно невозможно допустить, чтобы мы запоминали десятки и сотни последовательностей цифр. Об этой проблеме задумались давно, и ещё в 80-годах разработали её решение — систему доменных имён, или DNS (Domain Name System).
Серверы, входящие в DNS, хранят в себе специальные таблицы соответствий. Доменные имена, то есть привычные всем буквенные имена веб-сайтов, сопоставлены в них с IP-адресами серверов, на которых эти сайты физически находятся.
Проще говоря, любой server системы DNS — это что-то вроде раздела «Контакты» смартфона, в котором имена людей сопоставлены с их телефонными номерами. Вам не нужно вспоминать цифры — вы просто выбираете человека, и вот вы уже разговариваете с ним. DNS-серверы работают точно так же! Впрочем, это — весьма упрощённое описание. Если углубиться в вопрос, мы увидим немало нюансов.
Как работает DNS
Система Domain Name System работает следующим образом. Вы решили посетить тот или иной сайт и вводите в адресной строке браузера его URL. Строго говоря, узла с таким названием во всемирной сети не существует — как было сказано выше, в ней есть лишь узлы с числовыми IP-адресами. Именно поэтому первое, что делает браузер — обращается к DNS-серверу, который указан в настройках вашего подключения (о том, как задать такие настройки, будет подробно рассказано далее). Сервер, получив доменное имя, ищет в таблице соответствующий ему IP-адрес, и, найдя его, возвращает вашему клиентскому устройству. Лишь после этого браузер обращается непосредственно к узлу, на котором хранится интересующий вас сайт, и по протоколу HTTP получает его содержимое, которое и отображается на вашем экране.
Наша планета огромна, и количество узлов, на которых хранится контент сайтов, не поддаётся исчислению. Невозможно представить некий единый DNS-сервер, который хранил бы в себе информацию абсолютно обо всех устройствах, содержащих веб-контент. Его и не нужно представлять — в действительности в мире существует великое множество DNS-серверов разных уровней, каждый из которых отвечает лишь за определённую, пусть и достаточно большую, зону, и содержит информацию лишь о близлежащих (с известной долей условности) сайтах. Но что произойдёт, если вы, находясь, например, в Новосибирске, решите посетить веб-сайт, контент которого физически расположен в Рио-де-Жанейро? Сначала запрос браузера попадёт на DNS-сервер, указанный в ваших локальных настройках. Соответствия между полученным бразильским доменным именем и каким-либо IP-адресом на нём не окажется. Несмотря на это, сервер не оставит запрос без внимания — он перенаправит его на вышестоящий, в котором необходимое соответствие вполне может найтись. Этот процесс будет повторяться столько раз, сколько понадобится для того, чтобы наконец выяснить IP-адрес сайта в Рио-де-Жанейро. Полученная информация по цепочке DNS-серверов вернётся обратно к вашему браузеру в Новосибирске, и он без проблем сможет открыть нужный вам бразильский сайт.
Система DNS, как мы видим, сложна и интеллектуальна — но не менее умны и современные браузеры. Допустим, на следующий день вы вновь решили посетить тот же сайт в солнечной Бразилии. В этот раз ваш запрос уже не будет передаваться по длинной цепочке от одного DNS-сервера к другому — браузер просто поднимет IP-адрес сайта из своего локального кеша, в который он записал его вчера, и соединение будет установлено быстрее. Миллионы браузеров по всему миру используют кеш, благодаря чему нагрузка на систему DNS существенно снижается.
Особого внимания заслуживает такое понятие, как DNS-зона. Выше мы рассмотрели связь только между доменным именем и IP-адресом сайта. Существуют, однако, и другие объекты — в частности, почтовые серверы и поддомены сайта. Они напрямую связаны с основным доменным именем, но вполне могут иметь разные IP-адреса. Как установить соответствие между всеми перечисленными объектами? Для этого на DNS-сервере создаётся специальный файл, в котором они и сопоставляются. Этот файл представляет собой описание DNS-зоны.
Как настроить DNS-серверы
Рассмотрим настройку DNS-серверов на примере одной из наиболее распространённых операционных систем — Windows 10. Адреса серверов задаются в разделе настроек, посвящённом доступу в Интернет, поэтому нас интересует именно он.
В системном трее (справа внизу) найдите значок подключения к Интернету. Кликните по нему правой кнопкой мыши и выберите пункт «Открыть «Параметры сети и Интернет». Перед вами появится окно с многочисленными разделами. В группе «Изменение сетевых параметров» найдите раздел «Настройка параметров адаптера» и откройте его, кликнув левой кнопкой мыши.
Перед вами — окно, в котором собраны все сетевые подключения компьютера. Вам нужно найти то из них, через которое осуществляется доступ в Интернет. Автор этой статьи пользуется проводным подключением, и соответствующая иконка называется «Ethernet/Network connection». Кликните правой кнопкой мыши по иконке активного подключения и выберите в появившемся контекстном меню нижний пункт — «Свойства».
В новом диалоговом окне вы увидите список компонентов, которые использует ваше активное подключение. Найдите в нём строчку «IP версии 4 (TCP/IPv4)», кликните по ней левой кнопкой мыши, а затем нажмите кнопку «Свойства», расположенную чуть ниже. Вы увидите окно, до которого и нужно было добраться. Именно в нём задаются адреса DNS-серверов (нижняя группа полей).
Обратите внимание на то, что операционная система даёт вам два варианта на выбор — получать адрес серверов DNS в автоматическом режиме или использовать желаемые адреса, которые можно ввести вручную. Если вы выберете первый вариант, все запросы из браузера будут отправляться интернет-провайдеру, а он, в свою очередь, сам будет назначать тот или иной DNS-сервер (причём с наибольшей вероятностью это будет сервер самого провайдера). Этот вариант удобен тем, что вам ничего не нужно прописывать — сайты должны открываться без проблем. У него, однако, есть и недостатки. Если DNS-сервер или провайдер в целом по той или иной причине «ляжет», вы фактически лишитесь доступа в Интернет до устранения проблемы — браузер не будет получать IP-адреса веб-сайтов. Кроме того, DNS-сервер провайдера может умышленно отдавать неверные ответы, и вы будете видеть не те сайты, которые хотели бы открыть (это, в частности, возможно при блокировке Роскомнадзором интересующего вас ресурса). Обойти эти проблемы можно, если выбрать второй вариант и прописать адреса предпочитаемого и альтернативного DNS-сервера вручную.
Закономерен вопрос: какие адреса серверов можно указать в настройках? Вот несколько наиболее распространённых и популярных вариантов:
l серверы Google: предпочитаемый — 8.8.8.8, альтернативный — 8.8.4.4;
l серверы Яндекс: предпочитаемый — 77.88.8.8, альтернативный — 77.88.8.2;
l серверы Яндекс, содержащие записи только о проверенных сайтах и защищающие от злоумышленников: предпочитаемый — 77.88.8.8, альтернативный — 77.88.8.2;
l семейные серверы Яндекс (то же, что в пункте выше, за минусом сайтов со «взрослым» контентом: предпочитаемый — 77.88.8.3, альтернативный — 77.88.8.7;
l серверы OpenDNS: предпочитаемый — 208.67.222.222, альтернативный — 208.67.220.220.
Это — далеко не полный перечень существующих DNS-серверов, которые можно указать вручную. Вооружившись терпением, вы сможете найти в Интернете и другие адреса.
Закончив настройку, нажмите кнопку «ОК» и закройте диалоговое окно активного подключения. Проверьте, корректно ли открываются веб-сайты в вашем браузере.
Основные DNS записи
Каждый DNS-сервер содержит так называемые ресурсные записи, необходимые для его работы. Перечень основных записей с расшифровкой их значений представлен ниже.
A: IP-адрес сервера, на котором расположен домен, по стандарту IPv4.
AAA: IP-адрес по стандарту IPv6.
TXT: произвольные текстовые сведения о домене. Длина этой записи не может превышать 255 символов.
MX: информация о почтовом сервере в формате mail.company.com. Если у домена несколько почтовых серверов, что не редкость, рядом с каждой записью указывается число от 0 до 65535, обозначающее приоритет (наивысший — 0). Считается стандартом указывать 10-й приоритет для первого сервера почты.
CNAME: так называемое каноническое имя хоста. Необходимо при изменении имени сервера для перенаправления запроса на иное доменное имя. Содержит поля Alies и Canonical name (в первом указывается старое имя, во втором — новое, на которое должно идти перенаправление).
_Service._Proto.Name: запись, состоящая из нескольких элементов. Здесь Service означает название службы (например, ldap), Proto — протокол для подключения клиентов (например, tcp), Name — доменное имя, к которому привязана служба. Кроме того, указываются приоритет (по аналогии с MX), относительный вес, номер порта и доменное имя службы.
SOA: главная запись о домене, содержащая его имя и срок жизни информации о нём. Считается стандартом указывать срок жизни 1 сутки (задаётся в секундах, которых в сутках 86400).
Как это работает: Пара слов о DNS
Являясь провайдером виртуальной инфраструктуры, компания 1cloud интересуется сетевыми технологиями, о которых мы регулярно рассказываем в своем блоге. Сегодня мы подготовили материал, затрагивающий тему доменных имен. В нем мы рассмотрим базовые аспекты функционирования DNS и вопросы безопасности DNS-серверов.
/ фото James Cridland CC
Изначально, до распространения интернета, адреса преобразовывались согласно содержимому файла hosts, рассылаемого на каждую из машин в сети. Однако по мере её роста такой метод перестал оправдывать себя – появилась потребность в новом механизме, которым и стала DNS, разработанная в 1983 году Полом Мокапетрисом (Paul Mockapetris).
Что такое DNS?
Система доменных имен (DNS) является одной из фундаментальных технологий современной интернет-среды и представляет собой распределенную систему хранения и обработки информации о доменных зонах. Она необходима, в первую очередь, для соотнесения IP-адресов устройств в сети и более удобных для человеческого восприятия символьных имен.
DNS состоит из распределенной базы имен, чья структура напоминает логическое дерево, называемое пространством имен домена. Каждый узел в этом пространстве имеет свое уникальное имя. Это логическое дерево «растет» из корневого домена, который является самым верхним уровнем иерархии DNS и обозначается символом – точкой. А уже от корневого элемента ответвляются поддоменые зоны или узлы (компьютеры).
Пространство имен, которое сопоставляет адреса и уникальные имена, может быть организовано двумя путями: плоско и иерархически. В первом случае имя назначается каждому адресу и является последовательностью символов без структуры, закрепленной какими-либо правилами. Главный недостаток плоского пространства имен – оно не может быть использовано в больших системах, таких как интернет, из-за своей хаотичности, поскольку в этом случае достаточно сложно провести проверку неоднозначности и дублирования.
Сопоставление имен
Давайте взглянем, как происходит сопоставление имен и IP-адресов. Предположим, пользователь набирает в строке браузера www.1cloud.ru и нажимает Enter. Браузер посылает запрос DNS-серверу сети, а сервер, в свою очередь, либо отвечает сам (если ответ ему известен), либо пересылает запрос одному из высокоуровневых доменных серверов (или корневому).
Также стоит пару слов сказать про процедуру обратного сопоставления – получение имени по предоставленному 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
Для начала, следует рассмотреть понятие DNS и описание его работы. DNS — это аббревиатура от Domain Name System («Системы доменных имен»), главной задачей которой является хранение и управление информацией о доменных зонах.
Открыть любой сайт в интернете можно, введя в строке браузера его числовой IP-адрес или символьное имя. Человеку более удобен второй вариант, поэтому необходим сервис-посредник, который будет автоматически преобразовывать символы из названий доменных имен в IP-адреса в цифры. Для этого и предназначена Система доменных имен.
По аналогии с телефонным справочником, можно назвать доменное имя (URL-адрес) «контактом», а IP-адрес — «номером абонента». Если дать определение простыми словами, DNS — это сама телефонная книга со всеми сохраненными в ней контактами.
Главное отличие физической телефонной книги от ее интернет-аналога заключается в том, что контакты в последней сохраняют не обычные пользователи Сети. «Номера» в системе DNS регистрируют владельцы сайтов, имеющие права на определенный домен или домены.
Зачем нужны DNS-серверы
Назначение DNS-сервера
Классификация серверов
Учитывая функции DNS-сервера, их можно поделить на несколько видов. При этом, сервер-преобразователь или «резолвер» (от англ. Resolver, «преобразователь»), непосредственно конвертирующий доменные имена в IP-адреса, может одновременно принадлежать к двум и более типам.
Ниже представлены определения основных типов DNS-серверов.
Кэширование
Чтобы понимать, как работает DNS-сервер, нужно детально рассмотреть, как в нем происходит процесс кэширования.
При обращениях к любому сайту (даже при переходе на внутренние страницы), серверам необходимо проверять связь домена и IP-адреса. Однако, посещаемый ресурс может храниться довольно далеко, поэтому постоянные запросы на первичный DNS-сервер могут сильно снизить скорость загрузки страниц.
Решить проблему со скоростью обработки запросов позволяет ближайший к компьютеру пользователя DNS-сервер, который становится кэширующим. На нем сохраняется информация о ранее отправленных запросах на IP-адреса. При следующем обращении на один и тот же сайт, данные по его адресу будут поступать оперативно, за счет их наличия в кэше.
Однако, для кэширования нужен источник, с которого будут поступать данные о сайте. Им являются первичные и вторичные DNS-сервера. Это означает, что при регистрации домена владелец сайта должен указывать адрес DNS-сервера, где будет сохранена информация о домене.
Как правило, для работы домена достаточно сохранить свои данные на двух DNS-серверах — первичном и вторичном. Хотя, гораздо лучше указывать большее их количество. Это повысит надежность работы веб-адреса, поскольку при отсутствии доступа к одному DNS-серверу, можно будет обработать запрос на следующем.
Как работает DNS-сервер
Рассмотрим более подробно принцип работы DNS-сервера на примере сайта example.com. Все доменные имена и IP-адреса здесь приведены только для примера.
Следует понимать, что информация о соответствии доменного имени IP-адресу хранится на сервере имен определенное время и обновляется с определенной периодичностью. Эти параметры могут отличаться, в зависимости от того, как настроены NS-записи и работает DNS.
Когда у веб-ресурса меняется IP-адрес или сервер имен, в базе DNS-сервера может оставаться устаревшая информация, до момента обновления кэша. До этого, при отправлении запроса с именем сайта, пользователям будет открывать старый IP-адрес. Поэтому при переезде ресурса рекомендуется настроить переадресацию.
Начни экономить на хостинге сейчас — 14 дней бесплатно!
Давайте уже разберемся в DNS
Внимательный читатель найдет на этой картинке IPv6
Люди часто озадачены доменами. Почему мой сайт не работает? Почему эта хрень поломана, ничего не помогает, я просто хочу, чтобы это работало! Обычно, вопрошающий или не знает про DNS, или не понимает фундаментальных идей. Для многих DNS — страшная и непонятная штука. Эта статья — попытка развеять такой страх. DNS — это просто, если понять несколько базовых концепций.
Что такое DNS
DNS расшифровывается как Domain Name System. Это глобальное распределенное хранилище ключей и значений. Сервера по всему миру могут предоставить вам значение по ключу, а если им неизвестен ключ, то они попросят помощи у другого сервера.
Базовые штуки
Давайте взглянем на маппинг между именем и адресом:
Здесь есть только одна интересная деталь: информация о самом запросе. Говорится, что мы запросили запись и получили ровно один ответ. Вот:
Оставшаяся часть ответа описывает сам ответ:
Как видите, при обычном DNS-запросе происходит куча всего. Каждый раз, когда вы открываете веб-страницу, браузер делает десятки таких запросов, в том числе для загрузки всех внешних ресурсов вроде картинок и скриптов. Каждый ресурс отвечает за минимум один новый DNS-запрос, и если бы DNS не был рассчитан на сильное кэширование, то трафика генерировалось бы очень много.
Корневые DNS-сервера обслуживаются различными компаниями и государствами по всему миру. Изначально их было мало, но интернет рос, и сейчас их 13 штук. Но у каждого из серверов есть десятки или сотни физических машин, которые прячутся за одним IP.
Другие типы
Что не так с CNAME
Запросы к другим серверам
Давайте представим, что конфигурация DNS испорчена. Вам кажется, что вы исправили проблему, но не хотите ждать когда обновится кэш чтобы удостовериться. С помощью dig можно сделать запрос к публичному DNS-серверу вместо своего дефолтного, вот так:
Типичные ситуации
Давайте рассмотрим типичные ситуации, знакомые многим веб-разработчикам.
Редирект домена на www
Этот IP принадлежит Namecheap’у, и там крутится маленький веб-сервер, который просто делает перенаправление на уровне HTTP на адрес http://www.iskettlemanstillopen.com :
CNAME для Heroku или Github
Wildcards
Заключение
Надеюсь, теперь у вас есть базовое понимание DNS. Все стандарты описаны в документах:
Есть еще пара интересных RFC, в том числе 4034, который описывает стандарт DNSSEC и 5321, который описывает взаимосвязь DNS и email. Их интересно почитать для общего развития.