Для чего нужна локальная доменная зона и DNS-сервер? Чтобы расшарить (сделать доступными) свои локальные сайты для всех пользователей сети. Я создам сеть, где все устройства моей локальной сети смогут пользоваться ресурсами формата site.lan. В моем случае устройства локальной сети подключаются к интернету через роутер.
Серверная машина — на Linux Debian 9 (desktop), клиенты: ПК под управлением Windows, Linux, телевизор со Smart TV, а также смартфоны и планшет. Для начала убедитесь, что в роутере для сервера (машины, на которой будет установлен DNS сервер) зарезервирован статический внутренний IP адрес. Это очень важно, чтобы потом указать всем сетевым устройствам, где именно находится наш DNS сервер.
Установка DNS неймсервера:
Для начала необходимо установить пакет Bind:
sudo apt-get install bind
Кроме того, для нормальной работы веб-сайтов нам потребуется LAMP (Linux Apache MySQL PHP). Единственное, что не прописывайте в /etc/hosts адрес сайта, т.к. этими вопросами будет заниматься неймсервер. На этом этап подготовки окончен.
Настройка Bind
Входим в директорию Bind и делаем резервные копии конфигурируемых файлов:
cd /etc/bind/ cp named.conf.local named.conf.local.back cp named.conf.options named.conf.options.back
Создаём локальную доменную зону .lan:
nano named.conf.local
И дописываем в конец файла следующие строки:
zone "lan" { type master; file "/etc/bind/db.lan"; };
Теперь создаем соответствующий файл для доменной зоны .lan и открываем его на редактирование:
touch db.lan nano db.lan
Наполняем его содержимым:
@ IN SOA lan. root.lan. ( 201605019 ;Serial 4h 1h 1w 1d @ IN NS ns1.lan. @ IN A 192.168.0.100 ns1 IN A 192.168.0.100 it-admin IN A 192.168.0.100 site IN A 192.168.0.100 * IN CNAME @
Обратите внимание на Serial 201605019. Это значение нужно увеличивать каждый раз при редактировании файла доменной зоны. Я пишу YY-MM-DD + наращиваю порядковый номер на 1. 192.168.0.100 — IP адрес сервера. Запись формата «it-admin IN A» означает, что в зоне .lan существует доменное имя it-admin и что этот сайт расположен по IP адресу 192.168.0.100. В apache2 создан, соответственно веб-сайт с ServerName it-admin.lan. Если бы сайт располагался на ином IP, чем DNS сервер, то запись бы имела вид it-admin IN A _IP-ПК-с-сайтом_ Редактируем named.conf.options:
nano named.conf.options
В него нужно дописать выделенные строки:
acl "home" {192.168.0.0/24; 127.0.0.1;}; options { directory "/var/cache/bind"; dnssec-validation auto; allow-recursion {127.0.0.1/32; 192.168.0.0/24; 192.168.1.0/24; }; allow-transfer { none; }; auth-nxdomain no; # conform to RFC1035 listen-on-v6 { none; }; allow-query {"home";}; };
Первая строка создаёт локальную DNS группу home, с диапазоном IP адресов от 192.168.0.0 до 192.168.0.255, а также 127.0.0.1. Вторая добавляемая строка содержит параметр allow-query (разрешить запросы) и мы указываем, что нужно разрешить запросы от группы home. С конфигурацией закончили, можем перезапустить сервер
sudo /etc/init.d/bind9 restart
Проверка работоспособности
Запускаю Запускаю виртуалку под управлением Windows Xp в которой уже вбил данный днс и тестирую подключение. Первым делом нужно очистить DNS кеш. Заходим в командндую строку виндовс и пишем:
ipconfig /flushdns
1. Теперь уже проверяю видимость в сети сервера DNS, ping 192.168.0.100:
C:\\Documents and Settings\\www>ping 192.168.0.100 Обмен пакетами с 192.168.0.100 по 32 байт: Ответ от 192.168.0.100: число байт=32 время<1мс TTL=64 Ответ от 192.168.0.100: число байт=32 время<1мс TTL=64 Ответ от 192.168.0.100: число байт=32 время<1мс TTL=64 Ответ от 192.168.0.100: число байт=32 время<1мс TTL=64 Статистика Ping для 192.168.0.100: Пакетов: отправлено = 4, получено = 4, потеряно = 0 (0% потерь), Приблизительное время приема-передачи в мс: Минимальное = 0мсек, Максимальное = 0 мсек, Среднее = 0 мсек
Проверяю локальный сайт: nslookup it-admin.lan:
C:\\Documents and Settings\\www>nslookup it-admin.lan *** Can't find server name for address 192.168.0.1: Non-existent domain *** Default servers are not available Server: UnKnown Address: 192.168.0.1 Name: slicks.lan Address: 192.168.0.100
ping it-admin.lan:
C:\\Documents and Settings\\www>ping it-admin.lan Обмен пакетами с it-admin.lan [192.168.0.100] по 32 байт: Ответ от 192.168.0.100: число байт=32 время<1мс TTL=64 Ответ от 192.168.0.100: число байт=32 время<1мс TTL=64 Ответ от 192.168.0.100: число байт=32 время<1мс TTL=64 Ответ от 192.168.0.100: число байт=32 время<1мс TTL=64 Статистика Ping для 192.168.0.100: Пакетов: отправлено = 4, получено = 4, потеряно = 0 (0% потерь), Приблизительное время приема-передачи в мс: Минимальное = 0мсек, Максимальное = 0 мсек, Среднее = 0 мсек
Наслаждаемся результатами!