Представьте, как было бы, если бы нам пришлось запоминать IP-адреса всех веб-сайтов, которые мы используем ежедневно. Даже если бы у нас была феноменальная память, процесс перехода на веб-сайт был бы невероятно медленным и затратным по времени.
А что, если нам нужно посетить несколько веб-сайтов или использовать несколько приложений, которые находятся на одном компьютере или виртуальном хосте? Это было бы одной из худших головных болей, о которой я могу подумать – не говоря уже о возможности изменения IP-адреса, связанного с веб-сайтом или приложением, без предварительного уведомления.
Просто мысль об этом была бы достаточным поводом отказаться от использования Интернета или внутренних сетей через некоторое время.
Именно это было бы миром без Системы доменных имен (также известной как DNS). К счастью, этот сервис решает все упомянутые выше проблемы – даже если связь между IP-адресом и именем изменится.
Поэтому в этой статье мы узнаем, как настроить и использовать простой DNS-сервер, сервис, который позволит переводить доменные имена в IP-адреса и наоборот.
Введение в разрешение имен DNS
Для небольших сетей, которые не подвержены частым изменениям, файл /etc/hosts может быть использован в качестве первоначального метода разрешения доменного имени на IP-адрес.
С помощью очень простого синтаксиса этот файл позволяет нам ассоциировать имя (и/или псевдоним) с IP-адресом следующим образом:
[IP address] [name] [alias(es)]
Например,
192.168.0.1 gateway gateway.mydomain.com 192.168.0.2 web web.mydomain.com
Таким образом, вы можете обратиться к веб-машины как по ее имени, так и по псевдониму web.mydomain.com, или по ее IP-адресу.
Для крупных сетей или тех, которые подвержены частым изменениям, использование файла /etc/hosts для преобразования доменных имен в IP-адреса не является приемлемым решением. Вот где возникает необходимость в специализированной службе.
Под капотом сервера DNS находится большая база данных в виде дерева, которое начинается с корневой (“.”)
зоны.
Следующее изображение поможет нам проиллюстрировать:

На изображении выше корневая зона (.)
содержит домены com, edu и net. Каждый из этих доменов управляется (или может управляться) различными организациями, чтобы избежать зависимости от крупной центральной. Это позволяет правильно распределять запросы иерархическим образом.
Давайте посмотрим, что происходит под капотом:
1. Когда клиент делает запрос к DNS-серверу для web1.sales.me.com, сервер отправляет запрос верхнему (корневому) DNS-серверу, который направляет запрос к серверу имен в зоне .com
.
Это, в свою очередь, направляет запрос к серверу имен следующего уровня (в зоне me.com
), а затем к sales.me.com
. Этот процесс повторяется столько раз, сколько необходимо, пока FQDN (Полное квалифицированное доменное имя, web1.sales.me.com в данном примере) не будет возвращено сервером имен зоны, к которой оно принадлежит.
2. В этом примере сервер имен в sales.me.com.
отвечает на адрес web1.sales.me.com
и возвращает требуемую ассоциацию доменного имени с IP и другую информацию (если настроен).
Вся эта информация отправляется на исходный DNS-сервер, который затем передает ее клиенту, который запросил ее изначально. Чтобы избежать повторения тех же шагов для будущих идентичных запросов, результаты запроса хранятся на DNS-сервере.
Поэтому такой тип настройки часто называется рекурсивным, кэширующим DNS-сервером.
Source:
https://www.tecmint.com/setup-recursive-caching-dns-server-and-configure-dns-zones/