Время на прочтение
4 мин
Количество просмотров 14K
Если вы впервые столкнулись с необходимостью поднять DNS-сервер для локальной сети под Linux, то эта статья – для вас. Преимущество предлагаемого способа – простота: сервер можно настроить буквально за несколько минут. Но этот способ, скорее всего, не подойдёт для продакшн серверов.
Автор статьи провёл несколько часов в борьбе с ошибками, багами и непонятным поведением системы прежде чем получил стабильный результат.
Далее будем считать, что имеется локальная сеть, состоящая из нескольких хостов. Локальная сеть настроена, сетевой доступ между хостами имеется. На хостах установлен Ubuntu 18.04.4 LTS (для других версий не проверялось).
Шаг 1. Установка необходимых пакетов
Следующие шаги выполняются на хосте, на котором будет устанавливаться DNS-сервер.
-
Установите Dnsmasq:
sudo apt-get install dnsmasq
При установке выведутся следующие ошибки:
failed to create listening socket for port 53: Address already in use
FAILED to start up
Failed to start dnsmasq — A lightweight DHCP and caching DNS server.Это нормально! Мы ещё не настроили сервер – ошибка происходит из-за этого.
-
Установите resolvconf:
sudo apt-get install resolvconf
При установке ошибки о невозможности запуска Dnsmasq отобразятся ещё раз. Это нормально.
Пакет resolvconf устанавливается для того, чтобы в файл
/etc/resolv.conf
при перезапуске компьютера автоматически записывалась строчкаnameserver 127.0.0.1
. Эта строчка показывает, по какому адресу необходимо выполнить DNS-запросы для определения IP адресов доменов.Почему просто не прописать нужный адрес вручную
При рестарте системы файл
/etc/resolv.conf
автоматически пересоздаётся. Поэтому если прописать в него нужный адрес вручную, то изменения окажутся стёртыми после перезапуска.По умолчанию после перезапуска в этот файл прописывается адрес
127.0.0.53
, который используется сервисомsystemd-resolve
. Этот сервис осуществляет определение IP-адресов доменов для приложений, работающих на том же хосте, на котором запущен сервис. Но мы планируем перестать использовать этот сервис и начать использоватьdnsmasq
. -
Необязательный шаг. Установите net-tools:
sudo apt-get install net-tools
Эта команда устанавливает набор инструментов, которые пригодятся при тестировании.
Шаг 2. Настройка пакетов
-
Отредактируйте файл
/etc/dnsmasq.conf
:sudo nano /etc/dnsmasq.conf
По умолчанию все настройки в этом файле закомментированы. Если какие-то настройки в этом файле у вас заданы, то закомментируйте их обратно и оставьте только те, которые перечислены ниже. Добавлять и менять настройки рекомендуется после проверки исправной работы DNS-сервера.
-
no-resolv
Эта настройка выключает загрузку настроек из
/etc/resolv.conf
. Все настройки будут браться из редактируемого файла/etc/dnsmasq.conf
. Это сильно упрощает конфигурацию Dnsmasq’а, поскольку файл/etc/resolv.conf
автоматически пересоздаётся при рестарте системы. -
server=8.8.8.8
8.8.8.8
— это адрес DNS-сервера Гугл. Этот адрес можно заменить на любой другой адрес публичного DNS-сервера. Например, на адрес DNS-сервера вашего провайдера или ранее используемого DNS-сервера.Запросы, которые не сможет обработать Dnsmasq будут направлены на этот сервер.
-
listen-address=0.0.0.0
Эта настройка позволит осуществлять запросы к Dnsmasq’у с других хостов.
-
bind-interfaces
Задаёт режим, при котором Dnsmasq не осуществляет привязку к интерфейсам, по которым не должна осуществляться обработка запросов. Без этой настройки в предлагаемом варианте конфигурации сервер не работает.
-
-
Добавьте в файл
/etc/hosts
необходимые домены и их IP адреса.sudo nano /etc/hosts
Например:
1.2.3.4 myserver.tst
Обратите внимание, что доменные имена, состоящие из одного имени без точки (например,
myserver
), по умолчанию не передаются в DNS-сервер. Запросы по таким именам по умолчанию обрабатываются только через локальный файл/etc/hosts
. Поэтому если в файле/etc/hosts
на хосте с сервисом Dnsmasq прописать следующую строку:2.3.4.5 myserver
, то IP-адрес доменаmyserver
будет определяться только на хосте с сервисом Dnsmasq. На других хостах IP-адрес данного домена определяться не будет, поскольку запросы на хост с Dnsmasq’ом отправляться не будут. -
Опциональный шаг. Если вы не хотите, чтобы
systemd-resolve
слушал адрес127.0.0.53:53
, то выполните команду:sudo nano /etc/systemd/resolved.conf
В открывшемся файле пропишите строчку:
DNSStubListener=no
Адрес
127.0.0.53:53
в предлагаемом варианте конфигурации не используется и его можно выключить. -
Перезапустите машину:
shutdown -r now
Шаг 3. Настройка используемых DNS-серверов
Данная настройка выполняется на всех хостах-клиентах, с которых будут отправляться запросы на хост с сервисом Dnsmasq.
Проще всего настроить используемые DNS-сервера в графическом интерфейсе. Укажите адрес хоста, на котором установлен Dnsmasq, первым в списке:
Шаг 4. Локальное тестирование DNS-сервера
Проверку настроек можно и не делать. Но если вам интересно узнать, всё ли работает правильно, то выполните следующие команды на хосте с сервисом Dnsmasq.
-
Проверьте, что в файле
/etc/resolve.conf
прописан адрес127.0.0.1
:cat /etc/resolve.conf
-
Выполните команду:
sudo netstat -tulpen
Вы должны увидеть, что адрес
0.0.0.0:53
занят Dnsmasq’ом, а адрес127.0.0.53:53
не фигурирует в списке. -
Выполните команду:
dig ya.ru
Вы должны получить вывод, в котором присутствует примерно такая строчка. В начале строки не должно быть символов
;
.ya.ru. 220 IN A 87.250.250.242
-
Выполните команду:
dig myserver.tst
Вы должны получить вывод, в котором присутствует примерно такая строчка:
myserver.tst. 0 IN A 1.2.3.4
Шаг 5. Тестирование DNS-сервера с других хостов
Теперь можно проверить работу DNS-сервера с других хостов.
Выполните пункты 3 и 4 из предыдущего раздела. Вывод в консоль должен быть аналогичен результатам, указанным в предыдущем разделе.
Дополнительная информация
Открыть, если что-то пошло не так
-
Следующая команда в режиме реального времени выводит в консоль все запросы, выполняемые на порт 53. Это помогает определить факт выполнения запросов.
sudo tcpdump -l port 53
Данную команду логично выполнять в другом терминале – не в том, в который вводятся команды, подлежащие проверке.
-
Обратите внимание, что DNS-запросы кэшируются и сервисом systemd-resolved, и сервисом dnsmasq. Для сброса кэша проще всего перезапустить используемый сервис:
sudo systemctl restart dnsmasq
(на серверном хосте)sudo systemctl restart systemd-resolved
(на клиентских хостах)
Заключение
В этой статье мы рассмотрели, как можно сравнительно быстро настроить DNS-сервер для локальной сети под Linux. Если вы знаете какие-то другие фишки по настройке DNS-сервера, напишите об этом в комментариях.
DNS (Domain Name System, система доменных имён) — система, в которой все доменные имена серверов находятся в определённой иерархии. Для чего она нужна?
Представим, что нам нужно обратиться к устройству с IP-адресом 92.53.116.191. Чтобы это сделать мы можем ввести адрес в командной строке и получить нужную информацию. Но запомнить много таких комбинаций цифр очень трудно. Поэтому были придуманы специальные серверы, которые позволяют преобразовывать доменные имена в IP-адреса. Так, когда вы вводите в поисковой строке браузера cloud.timeweb.com, данные запроса отправляются на DNS-сервер, который ищет совпадения в своей базе. Затем DNS-сервер посылает на устройство нужный IP-адрес и только тогда браузер обращается непосредственно к ресурсу.
Настройка собственной DNS позволяет более гибко и точно конфигурировать систему и не зависеть от третьих лиц. В этой статье мы рассмотрим, как настроить DNS с помощью сервера имён BIND на Ubuntu.
Термины
Зона — часть иерархии доменных имён, которая размещается на DNS-сервере. Она нужна для того, чтобы установить рамки, в пределах которых распространяется ответственность конкретного сервера или группы серверов.
Корневые серверы — это DNS-серверы, которые содержат информацию о доменах первого уровня (.ru, .com и так далее).
Доменом называют именованную часть в иерархии DNS. Это определённый узел, который включает в себя другие узлы. DNS-адреса читаются справа налево и начинаются с точки, точкой также отделяются домены.То есть домен cloud.timeweb.com правильно читать так: .com.timeweb.cloud. Чаще всего доменное имя отражает структуру иерархии DNS, но последняя точка опускается.
FQDN — это имя полное имя домена, которое включает в себя имена всех родительских доменов.
Ресурсная запись — это единица хранения информации. Проще говоря, это запись, которая содержит связь имени с какой-либо служебной информацией. Ресурсная запись состоит из следующих элементов:
- Имя (NAME) — имя или IP-адрес, которому принадлежит зона.
- Время жизни (Time to Live, TTL) — время хранения записи в кэше DNS, по прошествии которого запись удаляется.
- Класс (CLASS) — тип сети, чаще всего IN — Internet.
- Тип (TYPE) — назначение записи
- Различная информация (DATA)
Самые частые ресурсные записи
A-запись. Имя хоста на адрес IPv4. Для каждого сетевого интерфейса можно сделать только одну A-запись.
timeweb.com. 86400 IN A 185.114.246.105
AAAA-запись. Это то же самое, что А-запись, только справедливо для IPv6.
CNAME. Каноническая запись. Содержит псевдоним реального имени для перенаправления.
ftp 86400 IN CNAME store.cloud.timweb.com.
MX. Указывает хосты для доставки почты, адресованной домену. Поле NAME содержит домен назначения, а поле DATA — приоритет и хост для приёма почты.
website.ru. 17790 IN MX 10 mx.website.ru.
website.ru. 17790 IN MX 20 mx2.website.ru.
NS. Указывает на DNS-сервер, которым обслуживается домен.
PTR. IP-адрес в доменное имя. Необходимо для обратного преобразования имён.
SOA. Описывает основные настройки зоны.
SRV. Содержит адреса серверов, которые обеспечивают работу внутренних служб домена. Например, Jabber.
Инфраструктура
Для того, чтобы следовать всем инструкциям в статье, вам необходимо иметь как минимум два сервера Ubuntu в одном ЦОД. Любой из этих серверов вы можете заказать на cloud.timeweb.com.
Нам понадобится два сервера на Ubuntu 18.04, они будут использоваться в качестве первичного и вторичного DNS-серверов — ns1 и ns2 соответственно. А также дополнительные серверы, которые будут использовать наши настроенные серверы.
Вы должны иметь права суперпользователя на каждом из серверов. Чтобы узнать, как это получить административные доступ, воспользуйтесь статьёй в нашем блоге — Редактирование файла sudoers.
В этой статье мы будем использовать bind в качестве DNS-сервера. Установим пакет bind9 из репозитория Linux:
sudo apt update && sudo apt upgrade -y
sudo apt install bind9
Кроме этого рекомендуем установить сразу инструменты мониторинга сети:
sudo apt install dnsutils
После установки запускаем службу bind9:
sudo service bind9 start
Основной конфигурационный файл сервера — /etc/bind/named.conf. Он описывает общие настройки и обычно разбивается на несколько других для удобства. С работы с параметрами внутри этого файла начинается настройка DNS.
named.conf.options. Этот файл содержит общие параметры сервера. В нём укажем данные для конфигурации DNS.
options {
dnssec-validation auto;
auth-nxdomain no;
directory "/var/cache/bind";
recursion no; # запрещаем рекурсивные запросы на сервер имён listen-on {
172.16.0.0/16;
127.0.0.0/8; };
forwarders {
172.16.0.1;
8.8.8.8;
};
};
Чтобы проверить, что всё внесено верно, нужно воспользоваться одной из утилит демона named
— named-checkconf
.
sudo named-checkconf
Если всё написано верно, bind-сервер начал работать.
Первичный DNS-сервер
Первичный DNS-сервер — сервер, который хранит главную копию файла данных зоны. Все зоны будем хранить в каталоге /etc/bind/master-zones основного DNS-сервера. Создадим директорию:
sudo mkdir /etc/bind/master-zones
В ней создадим файл для описания зоны:
sudo touch /etc/bind/master-zones/test.example.com.loсal.zone
… и добавим в него SOA-, NS- и A-записи:
$ttl 3600
$ORIGIN test.example.com.
test.example.com. IN SOA (
ns.test.example.com.
abuse.test.example.com.
2022041201
10800
1200
604800
3600 ) @ IN NS ns.test.example.com.
@ IN NS ns2.test.example.com.
@ IN A 172.16.101.3
ns IN A 172.16.0.5
ns2 IN A 172.16.0.6
После этого необходимо запустить проверку утилитой named-checkzone
.
sudo named-checkzone test.example.com. /etc/bind/master-zones/test.example.com.loсal.zone
named.conf.local. Это ещё один файл, который включается в общий конфиг сервера. В нём мы укажем локальные зоны:
zone "test.example.com." {
type master;
file "/etc/bind/master-zones/test.example.com.local.zone";
};
После того, как пропишем нужные данные, проверим конфиг и перезагрузим bind9 (флаг -z проверяет файлы зон):
sudo named-checkconf
sudo named-checkconf -z
sudo service bind9 restart
sudo service bind9 status
Настройка представлений
Настройка представлений позволяет гибко управлять разрешением имён из разных подсетей. В файле /etc/bind/named.conf укажем:
include "/etc/bind/named.conf.options";acl "local" { 172.16.0.0/16; };
view "local" {
include "/etc/bind/named.conf.local";
match-clients { local; };
};
В этом же файле можно прописать директивы для указания тех узлов и адресов сетей, от которых нужно принимать или отклонять запросы.
Затем нужно заново перезагрузить bind9:
sudo service bind9 restart
После перезагрузки сервера с другого компьютера локальной сети можно запросить наличие у сервера 172.16.0.5 SOA-записи:
dig @172.16.0.5 -t SOA test.example.com
На этом этапе настройка основного DNS-сервера завершена. Далее в статье — вторичный сервер, настройка почтового сервера и обратная зона.
Вторичный сервер
Первые шаги абсолютно такие же, что и в случае с первичным сервером — установка bind9 и сетевых утилит.
sudo apt update && sudo apt upgrade -y
sudo apt install bind9
sudo apt install dnsutils
sudo service bind9 start
Далее для того, чтобы хранить файлы зон, создадим каталог /etc/bind/slave
и снабдим его необходимыми правами:
sudo mkdir slave
sudo chmod g+w slave
Приступаем к настройке зоны на вторичном сервере. В файл /etc/bind/named.conf.local добавляем зону
zone "test.example.com." {
type slave;
file "/etc/bind/slave/test.example.com.local.zone";
masters { 172.16.0.5; };
};
… и в основном конфигурационном файле named.conf настраиваем представления
include "/etc/bind/named.conf.options";
acl "local" { 172.16.0.0/16; };
view "local" {
match-clients { local; };
include "/etc/bind/named.conf.local";
};
После добавления настроек нужно проверить синтаксис, а затем перезагрузить bind9:
sudo named-checkconf
sudo named-checkconf -z
sudo service bind9 restart
Если нет ошибок, нужно выполнить трансфер зоны:
sudo rndc retransfer test.example.com
Команда rndc retransfer
позволяет выполнить трансфер зоны без проверки серийных номеров. Вкратце, первичный (ns1) и вторичный (ns2) DNS-серверы работают следующим образом. ns2 «смотрит» только на серийный номер зоны, игнорируя содержание всего файла.
Если номер уменьшился, то трансфер этой зоны будет прекращён. Поэтому каждый раз при редактировании зоны критически важно увеличивать серийный номер. В качестве номера рекомендуем использовать текущую дату и некий инкремент.
Как только настроили сервер и выполнили трансфер зоны, в конфиге named.conf
на первичном сервере нужно ограничить передачу адресом вторичного сервера. Для этого в named.conf
нужно добавить директиву allow-transfer
с указанием IP-адреса вторичного DNS-сервера.
И перезагружаем сервер:
sudo service bind9 restart
Далее все операции будем проводить на первичном сервере.
Добавление MX-записи
В этом примере мы используем mx в качестве имени хоста, поскольку это общепринятое обозначение. Тогда FQDN — mx.test.example.com.
В файл зоны /etc/bind/master-zones/test.example.com.loсal.zone
добавляем ресурсные записи почты и обновляем серийный номер.
Проверим синтаксис и перезапустим bind9:
sudo named-checkzone test.example.com. /etc/bind/master-zones/test.example.com.local.zone
sudo service bind9 reload
Обратная зона
Обратная зона DNS — это особая доменная зона, которая предназначена для того, чтобы определять имя узла по его IP адресу. Например, адрес узла 192.168.1.10 в обратной нотации превращается в 10.1.168.192.in-addr.arpa. Благодаря тому, что используется иерархическая модель, можно делегировать управление зоной владельцу диапазона IP-адресов.
По своей сути, PTR-запись определяет домен по адресу, а значит это практически то же самое, что и A-запись. Она используется в основном для проверки почтовых серверов.
Для настройки зоны обратного просмотра создадим новый файл зоны:
sudo nano /etc/bind/master-zones/16.172/in-addr.arpa.zone
и поместим в него следующее содержимое:
$TTL 3600
16.172.in-addr.arpa. IN SOA (
ns.test.example.com.
admin.test.example.com.
2022041202
10800
1200
604800
3600 )
IN NS ns.test.example.com.
IN NS ns2.test.example.com. 3.101.16.172.in-addr.arpa. IN PTR test.example.com.
5.0.16.172.in-addr.arpa. IN PTR ns.test.example.com.
6.0.16.172.in-addr.arpa. IN PTR ns2.test.example.com.
2.101.16.172.in-addr.arpa. IN PTR mail.test.example.com.
Проверим зону и убедимся в корректности конфигурации:
sudo named-checkzone 16.172.in-addr.arpa /etc/bind/master-zones/16.172.in-addr.arpa.zone
Теперь эту зону нужно добавить в конфигурационный файл named.conf
:
sudo nano /etc/bind/named.conf.local
zone "16.172.in-addr.arpa." {
type master;
file "/etc/bind/master-zones/16.172.in-addr.arpa.zone";
allow-transfer { 172.16.0.6; };
};
После этого проверяем синтаксис и перезагружаем bind9.
Можно приступать к аналогичной настройке на вторичном сервере. В named.conf.local добавьте следующую конфигурацию:
zone "16.172.in-addr.arpa." {
type slave;
file "/etc/bind/slave/16.172.in-addr.arpa.zone";
masters { 172.16.0.5; };
};
На этом этапе мы завершили работу с локальными доменными зонами. Можно приступать к конфигурации внешней доменной зоны.
Внешняя доменная зона
Во-первых, для того, чтобы запросы из внешней сети обрабатывались нашим сервером нужно в файле конфигурации named.conf.options
добавить внешний адрес в директиву listen-on
:
...listen-on {
aaa.bbb.ccc.ddd/32; # наш внешний IP
172.16.0.0;
127.0.0.0/8
}
…
Далее создадим файл зоны (не забудьте изменить серийный номер!) и добавим в него внешние IP-адреса.
sudo nano /etc/bind/master-zones/test.example.com.zone
$ttl 3600
$ORIGIN test.example.com.
test.example.com. IN SOA (
ns.test.example.com.
admin.test.example.com.
2022041205
10800
1200
604800
3600 )
@ IN NS ns.test.example.com.
@ IN NS ns2.test.example.com.
@ IN A aaa.bbb.ccc.ddd # первый внешний адрес
ns IN A aaa.bbb.ccc.ddd
ns2 IN A eee.fff.ggg.hhh # второй внешний адрес
Затем создадим для зон внешнего просмотра отдельный файл, чтобы раздавать разные доменные зоны клиентам из разных подсетей.
sudo nano /etc/bind/named.conf.external
И добавим в него следующее содержимое:
zone "test.example.com." {
type master;
file "/etc/bind/master-zones/test.example.com.zone";
allow-transfer { 172.16.0.6; };
};
После этого подключим файл в named.conf
, добавив такой блок:
acl "external-view" { aaa.bbb.ccc.ddd; };
view "external-view" {
recursion no;
match-clients { external-view; };
include "/etc/bind/named.conf.external";
};
Осталось проверить эту зону и перезагрузить bind9:
sudo named-checkconf -z
sudo named-checkzone test.example.com. /etc/bind/master-zones/test.example.com.zone
sudo service bind9 restart
sudo service bind9 status
На вторичном DNS-сервере в named.conf.options нам нужно указать внешний адрес сервера:
sudo nano /etc/bind/named.conf.options
options {
dnssec-validation auto;
auth-nxdomain no;
recursion no;
directory "/var/cache/bind";
listen-on {
eee.fff.ggg.hhh/24;
172.16.0.0/16;
127.0.0.0/8;
};
};
И точно так же, как на первой машине, создаём новый файл named.conf.external:
sudo nano /etc/bind/named.conf.external
Со следующим содержимым:
zone "test.example.com." {
type slave;
file "/etc/bind/slave/test.example.com.zone";
masters { 172.16.0.5; };
};
Далее в named.conf добавляем следующий блок:
acl "external-view" { eee.fff.ggg.hhh; };
view "external-view" {
recursion no;
match-clients { external-view; };
include "/etc/bind/named.conf.external";
};
И выполняем трансфер:
sudo rndc retransfer test.example.com IN external-view
Отладка
При настройке DNS-сервера очень важно внимательно отнестись к журналированию запросов. Это поможет при отладке на начальных стадиях, а во время полноценной работы сервера вы сможете в полной мере контролировать работу служб.
Bind9 позволяет полноценно настраивать правила журналирования — писать в один файл, разные категории помещать в разные журнал и так далее.
Для того, чтобы записать отладочную информацию в один файл, нужно создать правила журналирования и подключить их в основной конфиг. Для этого создадим файл log.conf
:
sudo nano /etc/bind/log.conf
И поместим в него содержимое:
logging {
channel bind.log {
file "/var/lib/bind/bind.log" versions 10 size 20m;
severity debug;
print-category yes;
print-severity yes;
print-time yes;
};
category queries { bind.log; };
category default { bind.log; };
category config { bind.log; };
};
После этого подключим файл в основной конфиг:
include "/etc/bind/log.conf"
И перезагрузим bind9:
sudo service bind9 restart
Можно создать несколько таких файлов с разными настройками и подключать их в зависимости от стадии разработки или нагрузки на сервер.
Заключение
Теперь вы сможете самостоятельно сконфигурировать систему так, чтобы обращаться к реусрсам по имени, а не по IP-адресу. Для этого в качестве примера мы настроили на сервере с OS Ubuntu dns с помощью пакета bind9.
Однако теперь вы должны внимательно следить за основным и вторичным серверами, поскольку они обрабатывают DNS-запросы внутри системы.
DNS (Domain Name System, Система Доменных имен) – система, позволяющая преобразовать доменное имя в IP-адрес сервера и наоборот.
DNS-сервер – это сетевая служба, которая обеспечивает и поддерживает работу DNS. Служба DNS-сервера не требовательна к ресурсам машины. Если не подразумевается настройка иных ролей и служб на целевой машине, то минимальной конфигурации будет вполне достаточно.
Как настроить DNS-сервер:
- Настройка сетевого адаптера для DNS-сервера
- Установка роли DNS-сервера
- Создание зоны прямого просмотра
- Создание зоны обратного просмотра
- Создание A-записи
- Описание функции Domain Name System (DNS), которые являются новыми или измененными в Windows Server 2016.
Настройка сетевого адаптера для DNS-сервера
Установка DNS-сервера предполагает наличие доменной зоны, поэтому необходимо создать частную сеть в личном кабинете и подключить к ней виртуальные машины.
После того, как машина будет присоединена к двум сетям, важно не перепутать, какое из подключений требует настройки. Первичный сетевой адаптер настроен автоматически с самого начала, через него открыт доступ к интернету, в то время как на дополнительно подключенных сетевых адаптерах доступа в интернет нет, пока не будет произведена ручная настройка:
Наведя курсор на значок сети в системном трее, можно вызвать всплывающую подсказку с краткими сведениями о сетях. Из примера выше видно, что присоединённая сеть это Network 3.
Далее предстоит проделать цепочку действий:
- Нажать правой клавишей мыши Пуск, в выпадающем меню выбрать пункт Сетевые подключения;
- Правой кнопкой мыши нажать на необходимый сетевой адаптер, в меню выбрать Свойства;
- В окне свойств выбрать IPv4 и нажать на кнопку Свойства;
- Заполнить соответствующие поля необходимыми данными:
Здесь в качестве предпочитаемого DNS-сервера машина назначена сама себе, альтернативным назначен dns.google [8.8.8.8].
Установка роли DNS-сервера
Для установки дополнительных ролей на сервер используется Мастер Добавления Ролей и Компонентов, который можно найти в Диспетчере Сервера.
На верхней навигационной панели Диспетчера сервера справа откройте меню Управление, выберите опцию Добавить Роли и Компоненты:
Откроется окно Мастера, в котором рекомендуют убедиться что:
1. Учётная запись администратора защищена надёжным паролем.
2. Настроены сетевые параметры, такие как статические IP-адреса.
3. Установлены новейшие обновления безопасности из центра обновления Windows.
Убедившись, что все условия выполнены, нажимайте Далее;
Выберите Установку ролей и компонентов и нажмите Далее:
Выберите необходимы сервер из пула серверов и нажмите Далее:
Отметьте чек-боксом роль DNS-сервер и перейдите Далее:
Проверьте список компонентов для установки, подтвердите нажатием кнопки Добавить компоненты:
Оставьте список компонентов без изменений, нажмите Далее:
Прочитайте информацию и нажмите Далее:
В последний раз проверьте конфигурацию установки и подтвердите решение нажатием кнопки Установить:
Финальное окно Мастера сообщит, что установка прошла успешно, Мастер установки можно закрыть:
Создание зон прямого и обратного просмотра
Доменная зона — совокупность доменных имён в пределах конкретного домена.
Зоны прямого просмотра предназначены для сопоставления доменного имени с IP-адресом.
Зоны обратного просмотра работают в противоположную сторону и сопоставляют IP-адрес с доменным именем.
Создание зон и управление ими осуществляется при помощи Диспетчера DNS.
Перейти к нему можно в правой части верхней навигационной панели, выбрав меню Средства и в выпадающем списке пункт DNS:
Создание зоны прямого просмотра
- Выделите каталог Зоны Прямого Просмотра, запустите Мастер Создания Новой Зоны с помощью кнопки Новая зона на панели инструментов сверху:
- Откроется окно Мастера с приветствием, нажмите Далее:
- Из предложенных вариантов выберите Основная зона и перейдите Далее:
- Укажите имя зоны и нажмите Далее:
- При необходимости поменяйте название будущего файла зоны и перейдите Далее:
- Выберите, разрешить динамические обновления или нет. Разрешать не рекомендуется в силу значимой уязвимости. Перейдите Далее:
- Проверьте правильность выбранной конфигурации и завершите настройку, нажав кнопку Готово:
Создание зоны обратного просмотра
- Выделите в Диспетчере DNS каталог Зоны Обратного Просмотра и нажатием кнопки Новая зона на панели инструментов сверху запустите Мастер Создания Новой Зоны:
- Выберите тип Основная Зона, перейдите Далее:
- Выберите назначение для адресов IPv4, нажмите Далее:
- Укажите идентификатор сети (первые три октета сетевого адреса) и следуйте Далее:
- При необходимости поменяйте название будущего файла зоны и перейдите Далее:
- Выберите, разрешить динамические обновления или нет. Разрешать не рекомендуется в силу значимой уязвимости. Перейдите Далее:
- Проверьте правильность выбранной конфигурации и завершите настройку, нажав кнопку Готово:
Создание A-записи
Данный раздел инструкции в большей степени предназначен для проверки ранее проделанных шагов.
Ресурсная запись — единица хранения и передачи информации в DNS, заключает в себе сведения о соответствии какого-либо имени с определёнными служебными данными.
Запись A — запись, позволяющая по доменному имени узнать IP-адрес.
Запись PTR — запись, обратная A записи.
- В Диспетчере DNS выберите каталог созданной ранее зоны внутри каталога Зон Прямого Просмотра. В правой части Диспетчера, где отображается содержимое каталогов, правой кнопки мыши вызовите выпадающее меню и запустите команду «Создать узел (A или AAAA)…»:
- Откроется окно создания Нового Узла, где понадобится вписать в соответствующие поля имя узла (без доменной части, в качестве доменной части используется название настраиваемой зоны) и IP-адрес. Здесь же имеется чек-бокс Создать соответствующую PTR-запись — чтобы проверить работу обеих зон (прямой и обратной), чек-бокс должен быть активирован:
Если поле имени остается пустым, указанный адрес будет связан с именем доменной зоны.
- Также можно добавить записи для других серверов:
- Добавив все необходимые узлы, нажмите Готово.
Проверка
- Проверьте изменения в каталогах обеих зон (на примере ниже в обеих зонах появилось по 2 новых записи):
- Откройте командную строку (cmd) или PowerShell и запустите команду nslookup:
Из вывода команды видно, что по умолчанию используется DNS-сервер example-2012.com с адресом 10.0.1.6.
Чтобы окончательно убедиться, что прямая и обратная зоны работают как положено, можно отправить два запроса:
- Запрос по домену;
- Запрос по IP-адресу:
В примере получены подходящие ответы по обоим запросам.
- Можно попробовать отправить запрос на какой-нибудь внешний ресурс:
В дополнение к имени домена и адресам появилась строчка «Non-authoritative answer», это значит, что наш DNS-сервер не обладает необходимой полнотой информации по запрашиваемой зоне, а информация выведенная ниже, хоть и получена от авторитетного сервера, но сама в таком случае не является авторитетной.
Для сравнения все те же запросы выполнены на сервере, где не были настроены прямая и обратная зоны:
Здесь машина сама себе назначена предпочитаемым DNS-сервером. Доменное имя DNS-сервера отображается как неопознанное, поскольку нигде нет ресурсных записей для IP-адреса (10.0.1.7). По этой же причине запрос 2 возвращает ошибку (Non-existent domain).
Описание функции Domain Name System (DNS), которые являются новыми или измененными в Windows Server 2016.
В Windows Server 2016 DNS-сервер предлагает обновления в следующих областях:
- Политики DNS-серверов
- Ограничение скорости отклика (RRL)
- Аутентификация именованных объектов на основе DNS (DANE)
- Поддержка неизвестных записей
- Корневые подсказки IPv6
- Доработка поддержки Windows PowerShell
Политики DNS-серверов
Теперь вы сможете использовать:
- DNS-политики для управления трафиком на основе геолокации
- Интеллектуальные ответы DNS в зависимости от времени суток, для управления одним DNS-сервером, настроенным для развертывания с разделением
- Применять фильтры к DNS-запросам и многое другое.
Конкретное описание данных возможностей:
Балансировка нагрузки приложений.
Когда вы развернули несколько экземпляров приложения в разных местах, вы можете использовать политику DNS для балансировки нагрузки трафика между разными экземплярами приложения, динамически распределяя нагрузку трафика для приложения.
Управление трафиком на основе геолокации.
Вы можете использовать DNS-политику, чтобы разрешить первичным и вторичным DNS-серверам отвечать на запросы DNS-клиентов на основе географического положения как клиента, так и ресурса, к которому клиент пытается подключиться, предоставляя клиенту IP-адрес ближайшего ресурса. .
Разделенный Brain-DNS.
При разделенном DNS записи DNS распределяются по разным областям зоны на одном и том же DNS-сервере, а DNS-клиенты получают ответ в зависимости от того, являются ли клиенты внутренними или внешними. Вы можете настроить разделенный DNS для зон, интегрированных с Active Directory, или для зон на автономных DNS-серверах.
Фильтрация.
Вы можете настроить политику DNS для создания фильтров запросов на основе предоставленных вами критериев. Фильтры запросов в DNS-политике позволяют настроить DNS-сервер для ответа настраиваемым образом на основе DNS-запроса и DNS-клиента, отправляющего DNS-запрос.
Forensics.
Вы можете использовать политику DNS для перенаправления вредоносных DNS-клиентов на несуществующий IP-адрес вместо того, чтобы направлять их на компьютер, к которому они пытаются подключиться.
Перенаправление по времени суток.
Политику DNS можно использовать для распределения трафика приложения между различными географически распределенными экземплярами приложения с помощью политик DNS, основанных на времени суток.
Вы также можете использовать политики DNS для зон DNS, интегрированных с Active Directory.
Ограничение скорости отклика (RRL)
Теперь вы cможете настроить параметры RRL, чтобы контролировать, как отвечать на запросы к DNS-клиенту, когда ваш сервер получает несколько запросов, направленных на одного и того же клиента. Сделав это, вы можете предотвратить отправку атаки типа «Отказ в обслуживании» (Dos) с использованием ваших DNS-серверов.
Например, бот-сеть может отправлять запросы на ваш DNS-сервер, используя в качестве отправителя IP-адрес третьего компьютера. Без RRL ваши DNS-серверы могут отвечать на все запросы, переполняя третий компьютер. При использовании RRL вы можете настроить следующие параметры:
Количество ответов в секунду. Это максимальное количество раз, когда один и тот же ответ дается клиенту в течение одной секунды.
Количество ошибок в секунду. Это максимальное количество раз, когда ответ об ошибке отправляется одному и тому же клиенту в течение одной секунды.
Окно между запросами. Это количество секунд, на которое приостанавливаются ответы клиенту, если сделано слишком много запросов.
Скорость утечки. Это то, как часто DNS-сервер отвечает на запрос во время приостановки ответов. Например, если сервер приостанавливает ответы клиенту на 10 секунд, а уровень утечки равен 5, сервер по-прежнему отвечает на один запрос на каждые 5 отправленных запросов. Это позволяет обычным клиентам получать ответы, даже если DNS-сервер применяет ограничение скорости ответов в их подсети или полном доменном имени.
TC rate. Эта функция используется, чтобы сообщить клиенту о попытке соединения с TCP, когда ответы клиенту приостановлены. Например, если скорость TC равна 3, и сервер приостанавливает ответы данному клиенту, сервер выдает запрос на TCP-соединение для каждых 3 полученных запросов. Убедитесь, что значение скорости TC ниже, чем скорость утечки, чтобы дать клиенту возможность подключиться через TCP перед утечкой ответов.
Максимум откликов. Это максимальное количество ответов, которые сервер выдает клиенту, пока ответы приостановлены.
Белые домены. Это список доменов, которые нужно исключить из настроек RRL.
Белые подсети. Это список подсетей, которые необходимо исключить из настроек RRL.
Интерфейсы серверов белого списка. Это список интерфейсов DNS-серверов, которые необходимо исключить из настроек RRL.
Аутентификация именованных объектов на основе DNS (DANE)
Теперь вы сможете использовать поддержку DANE (RFC 6394 и 6698), чтобы указать своим DNS-клиентам, от какого CA они должны ожидать выдачи сертификатов для доменных имен, размещенных на вашем DNS-сервере.
Это предотвращает форму атаки «main in the middle», когда кто-то может повредить кэш DNS и указать DNS-имя на свой собственный IP-адрес.
Поддержка неизвестных записей
«Неизвестная запись» — это RR, формат RDATA которой неизвестен DNS-серверу. Недавно добавленная поддержка неизвестных типов записей (RFC 3597) означает, что вы cvожете добавлять неподдерживаемые типы записей в зоны DNS-сервера Windows в двоичном формате по сети.
Распознаватель кэширования Windows уже имеет возможность обрабатывать неизвестные типы записей. DNS-сервер Windows не выполняет никакой конкретной обработки неизвестных записей, но отправляет их обратно в ответах, если для них получены запросы.
Корневые подсказки IPv6
Корневые подсказки IPV6, опубликованные IANA, были добавлены на DNS-сервер Windows. Запросы имен в Интернете теперь могут использовать корневые серверы IPv6 для разрешения имен.
Доработка поддержки Windows PowerShell
В Windows Server 2016 представлены следующие новые командлеты (cmdlets) и параметры Windows PowerShell:
Add-DnsServerRecursionScope — Этот командлет создает новую область рекурсии на DNS-сервере. Области рекурсии используются политиками DNS для указания списка серверов пересылки, которые будут использоваться в запросе DNS.
Remove-DnsServerRecursionScope — Этот командлет удаляет существующие области рекурсии.
Set-DnsServerRecursionScope — Этот командлет изменяет параметры существующей области рекурсии.
Get-DnsServerRecursionScope — Этот командлет извлекает информацию о существующих областях рекурсии.
Add-DnsServerClientSubnet — Этот командлет удаляет существующие подсети DNS-клиентов.
Set-DnsServerClientSubnet — Этот командлет изменяет параметры существующей подсети DNS-клиента.
Get-DnsServerClientSubnet — Этот командлет извлекает информацию о существующих подсетях DNS-клиентов.
Add-DnsServerQueryResolutionPolicy — Этот командлет создает новую политику разрешения запросов DNS. Политики разрешения запросов DNS используются для указания того, как и следует ли отвечать на запрос на основе различных критериев.
Remove-DnsServerQueryResolutionPolicy — Этот командлет удаляет существующие политики DNS.
Set-DnsServerQueryResolutionPolicy — Этот командлет изменяет параметры существующей политики DNS.
Get-DnsServerQueryResolutionPolicy — Этот командлет извлекает информацию о существующих политиках DNS.
Enable-DnsServerPolicy — Этот командлет включает существующие политики DNS.
Disable-DnsServerPolicy — Этот командлет отключает существующие политики DNS.
Add-DnsServerZoneTransferPolicy — Этот командлет создает новую политику передачи зоны DNS-сервера. Политики передачи зоны DNS определяют, следует ли отклонять или игнорировать передачу зоны на основе различных критериев.
Remove-DnsServerZoneTransferPolicy — Этот командлет удаляет существующие политики передачи зон DNS-сервера.
Set-DnsServerZoneTransferPolicy. — Этот командлет изменяет параметры существующей политики переноса зоны DNS-сервера.
Get-DnsServerResponseRateLimiting — Этот командлет извлекает параметры RRL.
Set-DnsServerResponseRateLimiting — Этот командлет изменяет настройки RRL.
Add-DnsServerResponseRateLimitingExceptionlist — Этот командлет создает список исключений RRL на DNS-сервере.
Get-DnsServerResponseRateLimitingExceptionlist — Этот командлет извлекает списки исключений RRL.
Remove-DnsServerResponseRateLimitingExceptionlist — Этот командлет удаляет существующий список исключений RRL.
Set-DnsServerResponseRateLimitingExceptionlist — Этот командлет изменяет списки исключений RRL.
Add-DnsServerResourceRecord — Этот командлет был обновлен для поддержки неизвестного типа записи.
Get-DnsServerResourceRecord — Этот командлет был обновлен для поддержки неизвестного типа записи.
Remove-DnsServerResourceRecord — Этот командлет был обновлен для поддержки неизвестного типа записи.
Set-DnsServerResourceRecord — Этот командлет был обновлен для поддержки неизвестного типа записи.
С дополнительными сведениями вы можете ознакомится в следующих разделах справочника по командам Windows PowerShell для Windows Server 2016 от Microsoft:
Powershell DNS Server
Powershell DNS Client
На чтение 7 мин Просмотров 10.7к.
Виталий Леонидович Черкасов
Системный администратор, инженер компьютерных систем.
Задать вопрос
Каждый сайт в интернете физически расположен на сервере, который по сути является компьютером и имеет свой IP-адрес. Пользователю неудобно запоминать набор цифр, чтобы попасть на нужный сайт. Поэтому придумали доменные имена, например, такие как google.com, которые проще запоминать. Теперь не нужно знать набор цифр, который указывает на тот или иной сайт. Для того, чтобы перевести строку символов, которые пользователь набирает в строке браузера, в IP-адрес, существуют DNS. Рассмотрим, что такое DNS-сервер, принцип его работы и настройку.
Содержание
- Определение
- Принцип работы и применение
- Где находятся
- Преимущества публичных DNS
- Топ 10 публичных DNS
- OpenDNS
- Norton ConnectSafe
- Comodo Secure DNS
- Level3
- DNS Advantage
- Dyn
- SafeDNS
- DNS.Watch
- Настройка в Windows
Определение
DNS сервер нужен для сопоставления имен интернет-доменов, вводимых пользователем (например, mail.ru или rambler.ru), с их реальными IP-адресами. Это база данных, в которой содержатся IP-адреса и соответствующие им доменные имена, и используется для преобразования доменного имени в IP-адрес.
Принцип работы и применение
Работа DNS похожа на работу со списком контактов смартфона. Вы находите требуемый контакт по имени, нажимаете на значок «позвонить», телефон набирает нужный номер и соединяет с соответствующим абонентом.
То же самое происходит, когда вы набираете адрес сайта в браузере. Так как компьютер не знает реального IP-адреса, он отсылает запрос на DNS-сервер, на котором храниться база адресов. После получения ответа браузер загружает данные с нужного сайта и показывает их пользователю.
Рассмотрим подробнее, как работает dns сервер:
- Пользователь в адресной строке браузера вводит доменное имя сайта, на который хочет перейти.
- Браузер ищет нужный IP-адрес на локальном компьютере, в файле hosts. Если нужной информации там не находит, то отправляет свой запрос на сервер более высокого уровня. Например, это может быть локальный сервер провайдера.
- Если и на этом сервере нет данных об IP-адресе сайта, то запрос переправляется на сервис более высокого уровня. Такая переадресация будет длиться, пока нужный адрес не будет найден или корневой DNS-сервер не ответит, что сайта с таким именем не существует.
- После этого начнётся обратное движение запроса, от высшего уровня до низшего, пока данные не придут на компьютер пользователя.
С помощью DNS можно не только найти адрес сайта по IP-адресу, но и выполнить обратную операцию: зная адрес, узнать его доменное имя.
Где находятся
Самые важные DNS-серверы — корневые, которые содержат информацию о нахождении других серверов, более низкого уровня. Впервые они появились в Северной Америке, но потом их стали разворачивать и в других странах. Сейчас корневых серверов всего 13. Однако для увеличения надёжности работы интернет были созданы их копии, и их общее количество возросло до 123.
Наибольшее из количество расположено в Северной Америке, где их 40, что составляет 32,5% от общей численности. На втором месте по числу серверов находится Европа — 35 серверов (28,5%). 6 (4,9%) серверов имеется в Южной Америке и 3 (2,4%) в Африке. Также есть свои DNS-серверы есть в Австралии, Китае и даже Исландии. Общая закономерность расположения серверов такая: чем интенсивнее используется интернет, тем больше серверов.
В России есть несколько корневых серверов:
- F.root – расположен в Москве;
- I.root – находиться в Санкт-Петербурге;
- J.root – распределённый, расположен в Москве, Санкт-Петербурге;
- K.root – еще один распределённый, находится в трёх городах: Москва, Санкт-Петербург и Новосибирск;
- L.root – присутствует сразу в трёх городах: Москва, Ростов-на-Дону и Екатеринбург.
Преимущества публичных DNS
Иногда лучше использовать не те ДНС серверы, которые по умолчанию предоставляет провайдер, а воспользоваться публичными. Для этого существуют следующие причины:
- использование быстрых публичных DNS увеличит скорость работы интернета;
- иногда используемые по умолчанию серверы работают нестабильно, в этом случае использование публичных серверов повысит надёжность;
- некоторые публичные DNS включают дополнительные функции по фильтрации данных, которые увеличивают безопасность компьютера;
- публичные DNS помогут обойти ограничения по расположению, например, можно будет смотреть видео в ютубе, на котором раньше было написано: «Это видео недоступно в вашей стране».
Топ 10 публичных DNS
Теперь вы знаете, чем могут быть полезны публичные DNS-серверы. Рассмотрим список из 10 наиболее популярных.
Публичный DNS от компании Google является одним из самых быстрых и безопасных. Чтобы его настроить, нужно ввести IP-адрес «8.8.8.8» в качестве первичного DNS, а «8.8.4.4» в качестве дополнительного.
OpenDNS
OpenDNS предлагает один из лучших облачных серверов, который защитит ваш компьютер. Он имеет два бесплатных решения: OpenDNS Home и OpenDNS Family Shield.
OpenDNS Home идёт вместе с защитой от фишинга. Для его настройки нужно ввести два адреса DNS: предпочитаемый 208.67.222.222 и альтернативный 208.67.222.220.
В решении OpenDNS Shield имеется блокировка контента только для взрослых. Чтобы воспользоваться, введите следующие DNS адреса: основной 208.67.222.123, дополнительный 208.67.220.123.
Norton ConnectSafe
Компания Norton разрабатывает не только антивирусные программы, но и предлагает воспользоваться их сервером доменных имен. Данный облачный сервис защищает ПК от фишинговых сайтов. Он поставляется в трёх версиях, с разными предварительно настроенными фильтрами:
- безопасность;
- безопасность и порнография;
- безопасность, порнография и другое.
Comodo Secure DNS
Благодаря тому, что Comodo Secure DNS рассылает ваш запрос на большое количество глобальных серверов, она способна обеспечить высокую скорость работы в интернете. Чтобы воспользоваться этим сервисом, введите основной адрес «8.26.56.26» и дополнительный «8.20.247.20».
Level3
Level3 – это ещё один бесплатный качественный сервис. Он работает на следующих IP-адресах: предпочитаемый 209.244.0.3, альтернативный 208.244.0.4.
DNS Advantage
DNS Advantage – это очень быстрый сервер, который поможет работать в интернете быстрее и безопаснее. Его основной адрес: «156.154.70.1», а дополнительный «156.154.71.1».
Dyn
Бесплатный сервис Dyn в основном предназначен для защиты вашего ПК от фишинговых атак. Для того, чтобы начать работать с этим сервисом, настройте следующие параметры: адрес основного DNS-сервера «216.146.53.35», альтернативного «216.146.36.36».
SafeDNS
Служба SafeDNS основана на облачной технологии, что помогает защитит ПК. Для работы с ней нужно задать следующие адреса: предпочитаемый «195.46.39.39», дополнительный «195.46.39.40».
DNS.Watch
DNS.Watch – это бесплатный, быстрый и незаметно работающий сервис DNS. Для его настройки введите на своём компьютере следующие IP-адреса: предпочитаемый DNS-сервер «84.200.69.80», альтернативный «84.200.70.40».
Настройка в Windows
Чтобы настроить DNS-сервер в операционной системе Windows любой из версий, начиная с ХР и заканчивая 10, нужно:
jivacore / Shutterstock.com
Запуск собственного DNS-сервера — отличный способ повысить быстродействие вашей сети, снизить зависимость от общедоступной инфраструктуры и воспользоваться дополнительными функциями, такими как маршрутизация имени хоста. Вот как настроить DNS-сервер на Linux-машине с помощью Dnsmasq.
DNS — это система, которая переводит доменное имя, например example.com, в числовой IP-адрес своего сервера. Это может выглядеть как 127.0.0.1. Всякий раз, когда вы делаете сетевой запрос с использованием доменного имени, ваша система будет выполнять поиск в DNS, чтобы определить адрес сервера, с которым она должна связаться.
Это увеличивает накладные расходы на каждый ваш запрос. Несмотря на то, что ваше устройство будет кэшировать ответы DNS, при посещении новых доменов DNS будет возвращаться до начала фактического запроса. Это происходит на уровне сетевого стека ОС, невидимым для вас как пользователя.
Интернет-провайдеры обычно используют DNS-серверы. Вы, вероятно, полагаетесь на сервер вашего интернет-провайдера, если используете настройки по умолчанию на вашем маршрутизаторе и устройствах. Другие общедоступные DNS-серверы доступны у таких поставщиков, как Cloudflare а также Google.
Зачем нужен собственный DNS?
Использование собственного DNS-сервера дает вам больший контроль над вашей сетью. Одна из распространенных мотиваций — это возможность настроить сопоставление доменов на уровне сети, например, веб-сервер на 192.168.0.101. Настройка маршрутизатора для использования DNS приведет к тому, что любое из ваших подключенных устройств сможет получить доступ к 192.168.0.101 через http: // веб-сервер.
Наличие собственного DNS-сервера позволяет централизовать настройки в одном месте вместо того, чтобы применять их индивидуально в / etc / hosts на каждом устройстве. Они будут применяться ко всему, что вы подключаетесь к своей сети, включая встроенное оборудование, которое не предоставляет другого способа настроить свой стек маршрутизации.
Собственный DNS-сервер также может повысить производительность и обеспечить дополнительный уровень устойчивости. Широкомасштабные сбои DNS не являются чем-то неслыханным; Использование настраиваемого сервера с долговечным кешем для критически важных служб, с которыми вы взаимодействуете, может помочь вам избежать простоев у выбранного вышестоящего провайдера.
DNS с Dnsmasq
Dnsmasq — это легкий DNS-сервер, входящий в состав большинства дистрибутивов Linux. Кроме того, его очень просто настроить.
Перед тем, как начать, стоит подумать о том, какие функции вам нужен ваш DNS-сервер. В этом руководстве мы рассмотрим настройку Dnsmasq с локальным кэшированием, некоторыми маршрутами пользовательских доменов и Google 8.8.8.8 в качестве нашего восходящего DNS-провайдера.
Схема маршрутизации будет выглядеть так:
- Сетевой маршрутизатор получает запрос от одного из ваших подключенных устройств. Маршрутизатор будет настроен на использование хоста Dnsmasq в качестве DNS-сервера.
- Dnsmasq проверит, есть ли у него определенный маршрут для доменного имени, например, от веб-сервера до 192.168.0.101. Если запрос был для http: // web-server / example-page, он отправит 192.168.0.101 обратно на маршрутизатор.
- Когда Dnsmasq не имеет подходящего маршрута, он пересылает DNS-запрос в Google 8.8.8.8, обеспечивая разрешение в общедоступном Интернете. Это гарантирует, что вы по-прежнему можете выходить в более широкую сеть при использовании собственного DNS.
Вам не нужно будет вносить какие-либо изменения в конфигурацию на ваших клиентских устройствах. Все, что находится за вашим маршрутизатором, в конечном итоге будет делать DNS-запросы через Dnsmasq. Однако стоит отметить, что все популярные настольные и мобильные операционные системы поддерживают настройку DNS-сервера, поэтому вы можете настроить отдельные устройства для использования Dnsmasq, не включая его на уровне маршрутизатора.
Начиная
Мы предполагаем, что у вас уже есть работающая машина Linux, готовая для размещения Dnsmasq. Dnsmasq не особо ресурсоемкий — если у вас мало клиентских устройств, он легко будет работать на Raspberry Pi.
У вашего хозяина должен быть Статический IP назначенный. С этого момента IP 192.168.0.1 относится к серверу Dnsmasq.
Убедитесь, что Dnsmasq установлен:
# Предполагая, что система Debian apt update apt install dnsmasq
Файл конфигурации Dnsmasq обычно находится в /etc/dnsmasq.conf. Это предварительно заполнено начальными настройками. Для эффективной работы Dnsmasq в сценарии локальной сети необходимо внести некоторые изменения. Запустите sudo nano /etc/dnsmasq.conf, чтобы открыть файл, затем используйте сочетание клавиш Ctrl + W, чтобы найти и раскомментировать следующие строки:
# домен-необходим # фиктивный-приват
Удалите символ # в начале каждой строки. Вот что позволяют эти настройки:
- требуется домен — это не позволяет Dnsmasq перенаправлять локальные имена без доменной части на вышестоящий DNS-сервер. В нашей установке это означает, что example.com может быть разрешен через Google, а example или веб-сервер — нет. Он резервирует имена без точки для вашей локальной сети.
- bogus-priv — предотвращает пересылку DNS-запросов обратного просмотра вышестоящему DNS-серверу. Это означает, что внутренние IP-адреса, такие как 192.168.0.101, никогда не будут доступны Google. Если этого не сделать, это может непреднамеренно передать архитектуру вашей внутренней сети вашему вышестоящему провайдеру.
Чтобы настроить исходящий DNS-сервер, добавьте новую строку в файл конфигурации:
сервер = 8.8.8.8 сервер = 4.4.4.4
Это указывает Dnsmasq пересылать неразрешенные запросы в 8.8.8.8. Если этот сервер недоступен, вместо него будет использоваться 4.4.4.4. Эти адреса являются первичными и вторичными преобразователями для службы DNS Google.
Затем настройте размер кеша. По умолчанию это относительно низкое значение — 150 кэшированных запросов. Увеличение этого параметра позволит Dnsmasq обрабатывать больше запросов из кеша, уменьшая задержку в сети. Найдите строку размера кеша, раскомментируйте ее и измените ее значение:
размер кеша = 1000
Сохраните и закройте файл сейчас.
Сопоставление имен хостов IP-адресам
Есть несколько разных способов сопоставить имена хостов с их IP-адресами. Самый простой — добавить записи в существующий файл вашего сервера / etc / hosts. Dnsmasq автоматически загружает правила из этого файла как часть своей конфигурации по умолчанию.
Откройте / etc / hosts и добавьте свои маршруты в конец файла. Сначала идет IP-адрес, а затем имя, которое нужно назначить:
192.168.0.101 веб-сервер 192.168.0.105 gateway.lan
Эти строки означают, что любой запрос к веб-серверу http: // будет направлен на адрес 192.168.0.101, а адрес http: //gateway.lan — на адрес 192.168.0.5. Сохраните и закройте файл, когда закончите сопоставление устройств.
Тестирование вашего сервера
Перезапустите Dnsmasq, чтобы применить все ваши изменения:
перезапуск службы sudo dnsmasq
Убедитесь, что сервер работает правильно:
статус службы sudo dnsmasq
Вы должны увидеть, что активный (работает) отображается зеленым цветом. Если вы этого не сделаете, проверьте строки журнала в нижней части информации о состоянии, чтобы выяснить, что не так.
Теперь вы готовы протестировать свой сервер. Вы можете делать попытки поиска DNS вручную с помощью инструмента dig. Возможно, вам сначала потребуется установить пакет dnsutils.
вы google.com @localhost вы gateway.lan @localhost
Обе эти команды должны отображать IP-адрес в РАЗДЕЛЕ ОТВЕТОВ. В случае gateway.lan результат должен быть 192.168.0.5 в соответствии с правилом маршрутизации, установленным в / etc / hosts. Часть команд @localhost инструктирует dig запросить ваш локальный DNS-сервер.
Настройка вашей сети
Последний шаг — настроить сетевой маршрутизатор для поиска DNS через сервер Dnsmasq. В шаги для этого будет варьироваться в зависимости от используемого вами оборудования маршрутизации.
Как только вы найдете страницу с правильными настройками, установите IP-адрес вашего сервера (192.168.0.1 в этом руководстве) в качестве основного DNS-сервера маршрутизатора. Рекомендуется настроить общедоступного поставщика DNS, например Google 8.8.8.8, в качестве вторичного сервера. Это гарантирует, что у вас по-прежнему будет доступ в Интернет, если ваш DNS-сервер выйдет из строя и отключится.
Теперь все устройства, подключенные к вашему маршрутизатору, будут делать DNS-запросы через ваш экземпляр Dnsmasq. Они смогут подключаться к вашим устройствам по назначенным им именам, таким как веб-сервер и gateway.lan, и смогут воспользоваться преимуществами кэширования DNS на сетевом уровне.
Заключение
DNS — сложная тема, но Dnsmasq упрощает запуск базового сервера. Здесь очень много больше настроек который вы можете изучить, когда у вас заработает основная функциональность. Они позволяют фильтровать запросы, управлять ретрансляторами и прокси, запускать сценарии при возникновении событий и настраивать другие типы записей DNS, такие как результаты MX для почтовых серверов.
После запуска Dnsmasq обычно не требует большого ручного вмешательства. Вы можете отслеживать журналы с помощью службы dnsmasq status или systemctl status dnsmasq. Теперь вы готовы использовать свой собственный DNS-сервер, максимизируя производительность и позволяя использовать внутренние доменные имена для доступа к устройствам в локальной сети.
Что такое ДНС (DNS)?
Интернет — это совокупность локальных сетей компьютеров, расположенных по всему миру,
которые связываются между собой по единым правилам, называемым протоколами.
Для того, чтобы не запоминать числовой адрес компьютера, была создана система DNS.
Система Доменных Имен или DNS (Domain Names System),
связывает имена, подобные www.htmlweb.ru c цифровыми адресами(185.12.92.137),
которые используют компьютеры, чтобы связываться друг с другом.
Для того, чтобы Ваш сайт с Вашим доменным именем заработал — необходимо указать DNS-сервера,
на которых будет «записано», на каком именно сервере(хостинге) находится Ваш сайт.
DNS сервера имеют вид:
ns1.yourhosting.ru
ns2.yourhosting.ru
Есть три пути настроки DNS:
- DNS регистратора. В этом случае, Вам нужно будет полностью настроить зону DNS как в третьем варианте.
- DNS хостинг-провайдера.
В этом случае всю предварительную настройку DNS, достаточную для нормальной работы Вашего сайта
сделает хостинг-провайдер. - Сторонний DNS. Вы можете указать хостинг DNS вообще на стороннем сервере DNS, например, Яндекс-DNS.
Как указать (изменить) DNS-сервера для домена?
Для указания/изменения DNS-сервера у домена, то Вам необходимо:
- зарегистрироваться у регистратора домменых имен;
- Найти нужный домен и выбрать там «Управление DNS-серверами / Делегирование»
- В открывшейся форме укажите нужные DNS-сервера (IP можно не указывать).
или установите галочку «Использовать DNS-сервера регистратора». - Нажмите на кнопку «Сохранить».
Информация о Ваших изменениях будет доступна за период от нескольких минут до 72 часов.
Поэтому в первое время возможно, что DNS-сервера будут старые.
Это не зависит не от регистратора не от хостиг-провайдера. Вам остается только ждать.
Настройка DNS-записей.
Для внесения/изменения записей на DNS сервере Вам необходимо сделать следующее:
- Авторизуйтесь в панели управления Вашего хостинга DNS
Найдите нужный домен и выберите там «Управление зоной DNS» - В открывшейся форме Вы можете вносить записи типа A, CNAME и другие в зоны DNS.
- После внесения записей нажмите на кнопку «Сохранить/Добавить».
Пример внесения записей в DNS:
Предположим, вы зарегистрировали домен mydomain.ru и IP-адрес web-сервера,
на котором будет расположен сайт — 195.128.128.26. В этом случае Вам потребуется создать
минимум две записи типа «A» для Вашего домена (чтобы связать mydomain.ru и www.mydomain.ru
с адресом 195.128.128.26). Для этого в форме добавления записей «A» в поле «Имя поддомена»
укажите «@» для первой записи и «www» для второй записи, а в поле «Данные» укажите 195.128.128.26
(для обоих записей).
Чтобы сделать пересылку всех поддоменов на IP адрес, нужно в качестве «Имени поддомена» указать *
Пример 2: Вы хотите, чтобы адрес mail.mydomain.ru указывал на тот же хост, что и адрес relay.highway.ru.
Для этого необходимо в поле ‘Имя поддомена’ указать «mail», выбрать ‘Тип записи’ CNAME,
а в поле ‘Данные’ указать «relay.highway.ru.».
Пример DNS-записей для зоны mydomain.ru:
@ A 195.161.114.80 @ MX 10 relay.highway.ru. www A 195.161.114.80 ctrl CNAME ctrl.muse.highway.ru. ftp CNAME ftp.muse.highway.ru. mail CNAME relay.highway.ru. ssh CNAME ssh.muse.highway.ru.
Смотрите также: настрока Яндекс-почты для домена.
Инструкции по смене DNS-серверов
- Если вы указываете у домена RU, SU, РФ DNS-сервера, которые расположены в этом же домене (т.е. «свои» DNS),
например, для домена testsite.ru вы указываете DNS-сервера ns1.testsite.ru и ns2.testsite.ru,
то обязательно необходимо указать для каждого DNS-сервера его IP адрес. - Если вы указываете у любого домена DNS-сервера, которые расположены в другом домене, например,
для домена testsite.ru вы указываете DNS-сервера ns1.abrakadabra.ru и ns2.abrakadabra.ru,
то указывать для каждого DNS-сервера IP адреса не нужно. - IP адреса у DNS-серверов (в случае необходимости их указания, см. выше)
для доменов RU, SU, РФ должны отличаться хотя бы на одну цифру! Одинаковые IP для всех DNS не допустимы. - Для международных доменов (com, net, org, info и т.п.) DNS-сервера, которые вы указываете у домена,
должны быть обязательно зарегистрированы в международной базе NSI Registry.
Если они там не зарегистрированы, то указать их нельзя.
Для международных доменов IP адреса у DNS-серверов указывать не нужно. Они указываются при регистрации DNS в базе NSI Registry
Как прикрепить домен к IP адресу?
Для того, чтобы прикрепить домен к IP адресу, Вам необходимо:
- зайти в настроку dns-записей и внести в зону DNS три записи:
- Для первой в качестве поддомена укажите www, выберите тип записи А, в качестве данных укажите IP адрес, к которому нужно прикрепить домен.
- Для второй записи укажите знак @ (собака) в качестве поддомена и так же выберите тип А и укажите тот же IP.
- Для третьей записи в качестве поддомена укажите знак * (звёздочку) и так же выберите тип А и укажите тот же IP.
- Нажмите «Добавить/Сохранить»
Теперь Вам нужно подождать, пока изменения вступят в силу и Ваш сайт будет открываться с этого IP адреса.
Это может занять до 72 часов.
Как долго происходит изменение DNS?
Сами изменения в DNS вносятся моментально. Но в связи с тем, что провайдеры кэшируют DNS, то процесс изменения DNS по всему миру может занять время от нескольких минут до 72 часов.
Какие DNS сервера можно использовать для доступа в интернет?
Для получения IP адреса по имени домена можно использовать следующие DNS сервера:
Google:
8.8.8.8 4.4.4.4
Yandex:
77.88.8.8 77.88.8.1
Подробности о яндекс DNS и о том, как с помощью DNS защититься от вредоносных сайтов читайте на dns.yandex.ru
- Читать по теме:
- Посмотреть DNS-записи домена
- Как зарегистрировать доменое имя?
- Как правильно выбрать хостинг?
- Что такое доменное имя?
- Яндекс-почта для своего домена
- Как вывести сайт на первые позиции в поисковых системах?
- Ошибки при поисковом продвижении.
- Разработка и продвижение сайта командой, разработавшей данный сайт.
- Получить данные DNS через google DNS сервис в формате json:
https://dns.google.com/resolve?type=TXT&name=ДОМЕН