Статья - 05
"Настройка DNS Сервера"
(22.10.2019)
DNS(Domain Name System) сервер похож на интернет-телефонную книгу.
Он управляет доменными именами и их IP-адресами.
Это необходимо, потому что пользователю не удобно запоминать и вводить IP-адреса,
чтобы зайти на Google или progerpadawan.habr.io.
Если вы хотите перейти на Google.com, например, вам не нужно вводить 8.8.8.8 или 77.214.53.237,
вы можете просто ввести "google.com".
Процесс DNS поиска и соединения:
- Пользователь (клиент) вызывает сайт.
- Клиент отправляет запрос на DNS-сервер провайдера для получения IP.
- Если DNS-сервер провайдера не предоставляет информацию о запрошенной
странице в своем кэше, он отправляет запрос корневому DNS-серверу. - DNS-сервер ищет информацию на веб-сайте, отправляет IP и сохраняет все в кэш.
- После этого соединение требует подтверждения 3 раза: 1 раз от клиента,
затем от сервера и снова клиента. - Попадаем на сайт
Имя домена может отображаться иерархически в виде древовидной структуры.
Узлы и графы древовидной структуры также называются метками или уровнями.
Полное доменное имя (FQDN = Fully Qualified Domain Name) получается в результате связывания этих уровней.
Таким образом, комбинации домена верхнего уровня, домена второго уровня
субдомена по адресам www.domaindiscount24.com, shop.spiegel.de и de.wikipedia.org.
(см. пример: древовидная структура пространства имен домена)
Резольвер
Средство распознавания (англ. resolver) — это программа, которая получает информацию из системы доменных имен.
Программа является своего рода переключателем между приложением и DNS.
Средство распознавания интегрировано непосредственно в TCP/IP протокол
и доступно в виде библиотеки программного обеспечения для
разрешения имен.
Распознаватель обращается с помощью функций "getHostByName" и "getHostByIp".
Возвращает IP-адрес доменного имени или основное доменное имя IP-адреса.
Для работы распознавателя ему необходим IP-адрес одного, а лучше двух DNS-серверов,
которые необходимо указать в конфигурации IP.
Как правило, IP-хост получает IP-адрес DNS-сервера через DHCP,
или IP-адрес необходимо вводить вручную.
Хост-файл
Файл состоит из табличного списка IP-адресов и связанных имен хостов.
Зоны прямого просмотра(Forward Lookup Zones)
Предлогает путь от имени к адресу.
Обратный поиск(Reverse Lookup)
Зоны обратного просмотра являются необязательными и обеспечивают разрешение адреса к имени.
Способы проверки
Для того, чтобы иметь возможность проверить,
был ли DNS-сервер успешно настроен и можно ли подключиться к серверу,
вы можете использовать 3 различных инструмента:
- Сайты типа "Isdown Rightnow" проверяют, доступен ли сайт на данный момент.
- Команда ping <host name>, в консоли(cmd), “пингует” страничку
- Команда tracert <host name>, в консоли(cmd)
Linux DNS сервер
А теперь попробуем создать и настроить свой DNS сервер на базе Linux Debian ServerНа линукс DNS серверный сервис bind9
Вы можете использовать туже Виртуальную машину, из прошлой статьи про DHCP
Обновляем списки пакетов
и скачиваем bind9
sudo apt-get update
sudo apt-get install bind9
Теперь к настройкам:
Надо изменить файл named.conf.options в директории /etc/bind
sudo nano /etc/bind/named.conf.options
с:
на:
Ctrl S чтобы сохранить
Ctrl X чтобы выйти
Также нам нужно изменить named.conf.local в /etc/bind
sudo nano /etc/bind/named.conf.local
В DNS-зонах прописаны соединения между доменами и IP-адресами.
Теперь отрегулируем две зоны в соответствии с рисунком:
Ctrl S сохранить
Ctrl X выйти
Сейчас мы создадим два файла с именами named.conf.local, используя дефолтные файлы связывания.
forward.local
sudo cp /etc/bind/db.local /etc/bind/forward.maxim.local
sudo nano /etc/bind/forward.maxim.local
Здесь необходимо ввести IP-адрес клиента и соответствующее доменное имя.
Ctrl S сохранить
Ctrl X выйти
reverse.local
sudo cp /etc/bind/db.127 /etc/bind/reverse.maxim.local
sudo nano /etc/bind/reverse.maxim.local
Настройте IP-адрес клиента и связанное доменное именя, опираясь на картинку.
Ctrl S сохранить
Ctrl X выйти
Теперь для проверки конфигурации мы можем использовать:
sudo named-checkconf /etc/bind/named.conf.local
sudo named-checkzone maxim.local /etc/bind/forward.maxim.local
sudo named-checkzone maxim.local /etc/bind/reverse.maxim.local
Если не вылезло ошибок, все ок)
командой:
sudo systemctl restart bind9
перезагрузим наш Bind9 DNS сервис.
И проверяем статус:
sudo systemctl status bind9
Windows сервер
Во-первых, нам надо настроить IP:Открой Network&Internet Settings -> Ethernet2 -> network adapter options -> Internetprotokoll, Version 4 (TCP/IPv4)
Сейчас открываем категорию Manage, "Add role and features"(Server-Role)
Ролью сервера мы выбираем DNS-сервер.
(DHCP также должен быть установлен. Чтобы установить его, следует вернуться к нашей предыдущей документации.)
Теперь мы используем инструмент администрирования DNS Windows.
Чтобы открыть его, мы используем ключ Windows и ищем «DNS».
В этом инструментарии мы настроим DNS.
Нажмите на маленькие стрелки слева от папок, чтобы мы могли видеть все подпапки.
Щелкните правой кнопкой мыши на “зону прямого просмотра”( Forward Lookup Zone) и выберите «Новая зона».
В этом окне введите "maxim.local"
Выберите «Первичная зона»(Primary Zone)
Теперь введите "maxim.local".
Затем нажимайте «Далее», пока окно не закроется.
Теперь зона обратного просмотра настроена.
Щелкните правой кнопкой мыши на “зону обратного просмотра”( Reverse Lookup Zone) и выберите «Новая зона».
Затем выберите «maxim.local», щелкните правой кнопкой мыши и выберите «Новый хост A» («Neuer Host A»).
После того, как новый хост (A) будет настроен, перед нами появится эта картинка.
Windows клиент
Как и в случае с DHCP-клиентом, просто настройте IP, как на картинке:Тестируем
Наконец, мы проверяем DNS-сервер на нашем клиенте, используя nslookupnslookup dns.maxim.local
можем проверить наше соединение.
Если это изображение соответствует вашему результату, вы правильно настроили DNS-сервер!