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