Как сделать свой dns сервер
С недавнего времени я стал замечать некие непонятные торможения в совершенно разных случаях связанных с интернетом. Не только банальный просмотр страниц стал ощущаться несколько более тяжеловесным, но и доступ к разным ресурсам не связанным с браузингом напрямую. Это замедление было нерегулярным и трудно классифицируемым, но со временем стало раздражать.
После несложных исследований был найден предполагаемый виновник - DNS сервер моего провайдера. Он, в принципе, работает быстро, но иногда сильно задумывается. Я смог это доказать себе при помощи namebench, который проверяет скорость резолвинга не при помощи синтетических тестов, но используя историю вашего брожения по интернатам.
При том, что средняя скорость была неплохая, пики торможения доходили почти до секунды, что, несомненно, безобразие. Конечно, дешево и сердито просто поменять DNS на более другой, например гугловый 8.8.8.8 / 8.8.4.4 или opendns или какой другой по вкусу (namebench предлагает список альтернатив), но раз уж я за это дело взялся, то решил довести до логического конца - завести свой собственный кэширующий DNS.
Ставить руками bind или его альтернативы - это конечно не наш путь. Проще всего поискать подходящий docker image и, если не найден, сделать его самому.
К счастью, такой уже есть и он даже работает. Там внутри bind и webmin для GUI управления. Я немного добавил в его docker-compose.yml , чтоб передать пароль для webmin и запретил IPv6, который приводил к ошибкам резолвинга. Вот такой compose получился в результате:
Если вам не мешает IPv6, просто удалите строку command .
Чтоб это дело поднять у себя, надо просто сохранить это в подходящем месте (у меня /srv/bind ) как docker-compose.yml и запустить примерно так:
После запуска натравите свой DNS на адрес того компьютера, что запускает контейнер с bind и все должно заработать. Если вам, для каких-то целей, надо локально переводить свой внутренние имена в адреса (и/или наоборот), то это тоже делается почти легко через webmin. Вот тут пример такого использования нарисован и в виде картинок и с понятным пояснением.
В результате все это работает, проблема нерегулярного торможения исчезла и namebench радостно предлагает мне мой собственный сервер, который, естественно, рвет все удаленные варианты.
Дочерние и пользовательские DNS-серверы устраняет необходимость клиентов направлять домены на DNS-серверы других компаний. Этот мануал поможет создать дочерний и пользовательский DNS-сервер.
Типы DNS-серверов
С именем такого DNS-сервера нужно указывать также и IP-адрес.
Пользовательский DNS-сервер (branded nameserver) требует немного более тщательной настройки, но предоставляет полный контроль над DNS вашего домена. Однако это может вызвать некоторые трудности в управлении вашим DNS. Вам нужно будет развернуть как минимум два VPS со специализированным программным обеспечением, таким как BIND, PowerDNS или NSD (демоны DNS-серверов). Хорошее сравнение программного обеспечения DNS-серверов можно найти в Википедии.
При настройке вы можете использовать любую схему именования, но в мануале используются стандартные схемы:
Требования
Чтобы увеличить контроль над пользовательским DNS-сервером, используйте минимум два VPS, которые будут действовать как первичный и вторичный DNS-серверы.
Примечание: Технически один VPS может работать как первичный и вторичный DNS-сервер одновременно. Однако этот подход применять не рекомендуется, поскольку он негативно влияет на безопасность и отказоустойчивость. Имейте в виду, что количество DNS-серверов для одного домена не ограничено. Ограничения здесь может вводить только провайдер домена.
Создание дочернего DNS-сервера
Откройте панель управления хостинг-провайдера и добавьте свой домен в DNS-менеджер.
Откорректируйте записи NS:
Примечание: Помните про точки в конце имен хоста.
Дальше все зависит от регистратора доменного имени. Откройте панель управления регистратора доменного имени и зарегистрируйте IP-адреса ваших DNS-серверов, создав связующие записи. Эти записи свяжут IP-адреса провайдера с именами хостов DNS-серверов.
Например, в GoDaddy нужно просто открыть панель управления доменными именами и найти область, в которой можно указать имена хостов. Нажмите Manage -> Add Hostname и введите NS1 в Hostname и IP-адрес провайдера; Нажмите Add Hostname еще раз и введите NS2, а затем повторите процесс для NS3.
Осталось только проверить работу DNS-серверов.
Создание пользовательского сервера
Самый простой способ настроить DNS – это использовать DNS-менеджер, если таковой предоставляется вашим хостинг провайдером.
Однако если такой возможности нет, вам необходимо развернуть DNS-сервер, например BIND. Полная конфигурация zone-файла выходит за рамки данного мануала. Общий процесс выглядит так:
- Укажите IP-адреса для записей А ns1 и ns2 и связующих записей. Требуется как минимум 2 VPS для поддержки DNS-серверов.
- Откройте панель управления регистратора домена и создайте связующие записи для всех DNS-серверов, которые вы хотите развернуть. Просто убедитесь, что вы используете правильные IP-адреса серверов.
После этого можно протестировать DNS-серверы. Однако имейте в виду, что в зависимости от регистратора изменения в DNS-серверах могут занимать до 72 часов.
DNS (Domain Name System) – система доменных имен. В статье Настройка простой (одноранговой) локальной сети мы задавали IP адреса компьютеров и использовали их для удаленного подключения. Если простейшая сеть состоит (минимум) из двух компьютеров, то нет проблем, все ОК и хорошо.
Но, представим, что наша сеть разрослась до сотни, тысячи десятков тысяч и более компьютеров. Суть DNS в том, что DNS хранит данные о соответствии IP-адреса домену. То есть каждому IP-адресу, состоящему из цифр, соответствует буквенное имя, домен (Domain).
Так же система доменных имен удобнее визуально, согласитесь проще запомнить имя mycomp чем IP-адрес 192.168.1.1 , особенно если таких компьютеров много. Например, компьютер бухгалтера можно назвать compbuh и не запоминать его IP-адрес.
Соответствия IP-адресов именам, ресурсные записи доменов, а так же иную информацию хранит в себе DNS-сервер. По сути своей DNS-сервер это служба которая обеспечивает работоспособность DNS.
DHCP (англ. Dynamic Host Configuration Protocol — протокол динамической настройки узла) – это сетевой протокол, который позволяет получать устройствам, например компьютерам, IP-адреса автоматически.
Например, у вас дома стоит роутер, который раздает интернет. У вас есть компьютер и ноутбук. Именно DHCP раздает вашим устройствам (компьютеры, ноутбуку, смартфону) IP-адреса. Именно IP-адреса позволяют устройствам обмениваться информацией с роутером, благодаря чему на устройствах есть интернет.
Рассмотрим установку DNS на Windows Server 2012.
Установка DNS на Windows Server 2012
Создание зоны прямого просмотра на DNS сервере
Далее отключаем брандмауэр Windows Server: Центр управления сетями и общим доступом -> Брандмауэр Windows (слева внизу) -> Включение и отключение брандмауэра Windows — > отключаем для всех типов сетей.
Далее задаем IP-адрес сервера. Проверяем созданную зону.
Проверить работу только что установленного DNS сервера, например, запустить командную строку и попробовать пропинговать узел который был создан чуть ранее.
Обучаю HTML, CSS, PHP. Создаю и продвигаю сайты, скрипты и программы. Занимаюсь информационной безопасностью. Рассмотрю различные виды сотрудничества.
Получи бесплатную консультацию от компьютерного сервиса Master Soft:
- Ремонт и настройка ПК любой сложности, опыт 11 лет
- Гарантия 12 мес. на все виды услуг
- Быстрый ремонт, так как все запчасти в наличии
- Быстрый выезд мастера, 40-60 мин.
- Скидка 20% при оформлении онлайн заявки
Наличие DNS сервера в сети значительно облегчает жизнь системным администраторам и пользователям. DNS преобразует полные имена узлов (FQDN) в IP-адреса. Благодаря этому пользователям для доступа к ресурсам сервера не нужно вводить его числовой адрес (например, 192.168.15.250). Достаточно написать что-то вроде "server1" или любое другое имя, которое задал администратор. Запомнить его гораздо проще, чем набор чисел.
DNS и Active Directory - пошаговая установка
Служба DNS входит в базовый комплект компонентов серверных операционных систем от компании Microsoft, начиная с самых первых версий. Ее инсталляция, как и установка DHCP, не занимает много времени. Предварительная установка DNS сервера является базовым условием для развертывания мощнейшего комплекса инструментов администрирования сетевых пользователей и компьютеров – домена Active Directory.
Предварительная подготовка
Перед тем, как будет выполнена полная установка DNS, должна быть проведена предварительная подготовка. Для начала станции, на которой планируется развернуть службу, следует присвоить статический IP-адрес. Также необходимо указать подходящее имя, которое будет соответствовать новому домену.
Нами должна быть выполнена активация роли DNS-сервера на активной в данный момент станции, чтобы получить доступ к соответствующей оснастке и управляющим командам. Искомое находится в оснастке "Управление сервером" (Панель управления>>Администрирование>>УС). Раскрываем вкладку и щелкаем мышью по надписи "Роли". Жмем "Добавить" и в появившемся списке указываем нужный нам пункт. Мы активировали установку DNS в Windows Server.
После завершения инсталляции сервер доменных имен оказывается полностью готов к работе. Пока на нем нет ни одной рабочей зоны, и сервер выполняет только кэширующие функции.
Типы доменных зон
Всего существует 3 типа зон:
- основная (для записи и чтения);
- дополнительная (только для чтения; нужна, чтобы обеспечить отказоустойчивость и распределить нагрузку);
- зона-заглушка (хранит минимальный объем записей).
Кроме того, зоны могут быть:
- прямого просмотра (для преобразования имен в ip-адрес);
- обратного просмотра (противоположный предыдущему процесс).
Налаживаем работу DNS сервера и создаем зоны
Нам нужно создать DNS-зону. Для этого следует выполнить следующие действия:
- Открываем "Панель управления", выбираем пункт "Администрирование". После этого находим элемент DNS и щелкаем по нему. Откроется консоль управления системой доменных имен.
- Раскрываем наш сервер, нажав на знак плюса рядом с ним.
- Выполним раскрытие узла "Зоны прямого просмотра" (Forward Lookup Zones в англоязычной версии) в левой части окна управляющей консоли, нажав "+" или значок треугольника (в зависимости от версии).
- Щелкнем ПКМ по "Зонам прямого просмотра". Всплывает контекстное меню. Там нам нужно выбрать пункт "Новая зона". Запустится мастер, позволяющий создать новую зону. Жмем "далее".
- В разделе настройки динамических обновлений выбираем только безопасные обновления и идем дальше.
- Завершаем работу мастера, нажав на соответствующую кнопку.
- DNSCMD /info (выводит массу полезной информации о сервере).
- DNSCMD /statistics (подробная статистика).
- DNSCMD /zonepause (приостановка работы зоны).
- DNSCMD /zoneresume (возобновление работы зоны).
Мы создали зону прямого просмотра. Можно считать, что установка DNS выполнена успешно. С помощью оснастки теперь можно будет увидеть список сетевых компьютеров домена AD с соответствующими IP-адресами и DNS –именами.
Полезные команды для администрирования DNS
Если установка DNS сервера выполнена успешна, далее администратора ждет масса рутинных операций, связанных с его обслуживанием. Существуют определенные инструменты командной строки, которые позволяют автоматизировать многие процедуры, сделать процесс администрирования не таким рутинным и скучным. В первую очередь речь идет о DNSCMD.
Приведем некоторые примеры команды с параметрами.
Для эффективной работы сети должна быть также выполнена установка DHCP. Эта служба позволяет компьютерам в сети автоматически получать адреса. Но об этом будет рассказано в других статьях, посвященных настройке серверных служб.
Читайте также: