DNS: что это такое и как это работает

Опубликовано: 2014-08-14

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

Что такое ДНС?

Арпанет_логическая_карта_март_1977

Схема каждого компьютера, подключенного к ARPANET, предшественнице Интернета, в марте 1977 г.

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

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

Когда вы вводите веб-адрес, такой как http://www.getflywheel.com, в свой веб-браузер, ваш компьютер автоматически не знает, куда идти. Для подключения требуется IP-адрес, но вы предоставили ему доменное имя, которое представляет собой просто строку букв. Домены значительно облегчают людям запоминание местонахождения веб-сайтов, но они не нужны компьютеру для установления соединения. Вместо этого ваш компьютер связывается с DNS-сервером и запрашивает у него IP-адрес этого веб-сайта. DNS-сервер отвечает и сообщает вашему компьютеру: «http://www.getflywheel.com находится по адресу 192.241.128.208». Ваш компьютер получает этот IP-адрес с DNS-сервера и использует его для подключения к IP-адресу, который, в свою очередь, открывает веб-сайт Flywheel.

DNS_Rquest

Как управляются и устанавливаются записи DNS?

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

В мире есть много тысяч DNS-серверов, и все они синхронизируются вместе, чтобы вести учет того, где что находится. Однако не все DNS-серверы одинаковы.

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

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

За корневой зоной находятся подзоны, содержащие домены. Каждый домен верхнего уровня имеет свою собственную запись зоны, которая далее делится на отдельные домены, такие как http://www.getflywheel.com, которые называются доменами второго уровня.

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

Итак, когда компьютер запрашивает getflywheel.com, он сначала связывается с корневым сервером, который сообщает: «Вы ищете веб-сайт .com. Поговорите с сервером имен .com, который находится здесь». Затем ваш компьютер возвращается по цепочке к серверу имен, отвечающему за домен .com, и запрашивает у него дополнительные сведения. Ваш компьютер связывается с серверами до тех пор, пока, наконец, не найдет сервер имен, указанный владельцем домена. Затем он вычисляет IP-адрес, связанный с веб-сайтом, и переходит на него. Ваш компьютер перемещается по дереву серверов вниз по ветвям, пока, наконец, не достигнет листа, содержащего конечную цель.

Корневая иерархия DNS

Примечание. Хотя официально существует 13 корневых DNS-серверов, все, кроме двух, связаны отдельно и распределены по десяткам идентичных серверов с помощью технологии маршрутизации, называемой anycast . Anycast позволяет нескольким узлам существовать как один и тот же объект. Когда устройство подключается к этому объекту, оно подключается к ближайшему доступному узлу в сети (это отличается от геокаста , который используется, например, в CDN, где устройство подключается к ближайшему географическому серверу). Anycast позволяет увеличивать количество корневых серверов и распределять их по всему миру, балансируя нагрузку, сокращая время отклика и предотвращая единые точки отказа.

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

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