Когда в домашней сети появляется большое количество устройств, то хочется обращаться к ним не по IP, а удобно запоминаемому названию.
Для этого нужно развернуть частный DNS. В качестве него можно использовать BIND9. Все ниже приведенные действия производились на компьютере с ОС ubuntu server 20.04.
Установка BIND9
apt update && apt-get install bind9 bind9utils
В качестве примера добавим зону home, это как аналог, например, зоны ru. В нее буду входить домены второго уровня - host.home, router.home и т.д.
Открываем на редактирование файл /etc/bind/named.conf.local и добавляем следующее содержимое
zone "home" { type master; file "/etc/bind/zones/db.home"; # путь к файлу с описанием зоны }; zone "192.168.0.in-addr.arpa" { type master; file "/etc/bind/zones/db.192.168.0"; };
У меня локальная сеть использует ip адреса 192.168.0.* если у вас другая, измените под сеть во втором блоке.
Далее настраиваем параметры DNS в файле /etc/bind/named.conf.options
acl "trusted" { 192.168.0.0/24; # Домашняя подсеть 127.0.0.1; }; options { directory "/var/cache/bind"; recursion yes; # разрешить рекурсивные запросы allow-recursion { trusted; }; # только от доверенных клиентов listen-on { 192.168.0.121; }; # ip адрес сервера с dns allow-transfer { none; }; # отключить передачу зон по умолчанию #перенаправлять запросы на DNS google если не найдено в домашней сети #можно заменить на yandex или другие forwarders { 8.8.8.8; 8.8.4.4; }; //======================================================================== // If BIND logs error messages about the root key being expired, // you will need to update your keys. See https://www.isc.org/bind-keys //======================================================================== dnssec-validation auto; listen-on-v6 { any; }; #если не нужен ipv6 поставить none };
Теперь создаем файл с описанием зоны home, в конфиге мы указали, что он лежит в папке zones, поэтому нужно предварительно создать папку zones.
Содержимое файла db.home
$TTL 604800 @ IN SOA ns.home. admin.home. ( 2 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 604800 ) ; Negative Cache TTL ; @ IN NS ns.home. ; название NS сервера @ IN A 192.168.0.121 ; ip сервера ns IN A 192.168.0.121 ; ip сервера router IN A 192.168.0.1 ; А это уже первая запись домена в зоне home, писать тут нужно без home, а в браузере будет router.home, последний столбец это ip куда будет перенаправлен браузер ; Другие доменные записи добавлять ниже по аналогии с router
Файлы зоны для обратного просмотра служат местом, где мы будем определять PTR записей DNS для обратного просмотра DNS. Т. е., когда DNS получает запрос для IP-адреса, например, “192.168.0.1”, она будет выполнять поиск по файлу (файлам) зоны для обратного просмотра, чтобы получить соответствующее полное доменное имя, в нашем случае это “router.home”.
Содержимое файла db.192.168.0
$TTL 604800 @ IN SOA ns.home. admin.home. ( 2 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 604800 ) ; Negative Cache TTL ; @ IN NS ns.home. ; Название NS сервера 41 IN PTR ns.home ; Название NS сервера 91 IN PTR router.home ; Домен router.home
Проверим созданную конфигурацию
named-checkconf
Должно вернуть в консоль без вывода ошибок
Теперь проверим зоны
named-checkzone home /etc/bind/zones/db.home
named-checkzone 192.168.0.in-addr.arpa /etc/bind/zones/db.192.168.0
Если ошибок нет, то перезапускаем bind
service bind9 restart
Готово! Сервер DNS настроен. Переходим в браузере на сайт http://router.home и видим ошибку что домен не найден. Чтобы компьютер начал использовать наш DNS можно использовать 2 варианта:
1. Добавить сервер DNS в файл /etc/resolv.conf (для ОС Linux)
На примере ubuntu 20.04 можно сделать через netplan. Заходим в папку /etc/netplan, там будет файлик с конфигурацией сетевых адаптеров. Нужно добавить определение сервера имен в конфигурацию сети
network: version: 2 ethernets: enp2s0: #название сети dhcp4: true #ниже то что нужно добавить nameservers: addresses: - 191.168.0.121 # ip NS сервера search: [ ns.home ] # DNS зона
При редактировании этого файла будьте очень внимательны - использовать ТОЛЬКО пробелы, ни каких табов!
После сохранения запустите команду
netplan try
В течении 2х минут будет действовать новая конфигурация, и если не нажать enter, то произойдет откат к предыдущей конфигурации. Это поможет избежать проблем если ошибка в конфигурации, так как может отвалиться сеть.
2. Прописать DNS сервер в роутере, это наиболее предпочтительный вариант, так как не нужно заходить на каждое устройство и менять там DNS.
На примере TP-LINK WR841N адрес DNS сервера заполняется в разделе DHCP - Настройка DHCP, поле Первичный DNS. Сохраняем и обязательно перезагружаем роутер.
После выполнения 1 или 2 ого пункта можно перейти в браузере по адресу router.home и увидеть главную страничку роутера!
Для DNS сервера обязательно нужно выдать статический ip внутри локальной сети, иначе придется каждый раз его менять в настройках сети или роутера.
Комментарии