DNS (англ. Domain Name System — система доменных имён) — компьютерная распределённая система для получения информации о доменах. Чаще всего используется для получения IP-адреса по имени хоста (компьютера или устройства), получения информации о маршрутизации почты, обслуживающих узлах для протоколов в домене (SRV-запись).
Установка и настройка кеширующего DNS
Смотрим какие есть пакеты
pkg search bind9
Вывод:
bind9-devel-9.12
bind910-9.10.6
bind911-9.11.2
bind99-9.9.11
устанавливаем
pkg install bind911-9.11.2
Рабочий каталог /usr/local/etc/namedb. Приводим named к следующему виду. Оставляем все как есть, только добавляем два параметра и раскомментируем строку forwarders
nano /usr/local/etc/namedb/named.conf
listen-on { 127.0.0.1; 192.168.9.1; }; где 192.168.9.1 адрес нашего локального шлюза
allow-recursion { 127.0.0.1; 192.168.9.0/24; };
forwarders {
192.168.1.1; DNS адресa шлюза провайдера
};
Все остальное оставляем без изменений. Редактируем rc.conf и добавляем
nano /etc/rc.conf
named_enable="YES"
Запускаем службу
service named start
Этот способ подходит для организации своего интернет шлюза.
Второй способ похож на первый, только мы добавим свои Зоны. Этот способ подходит для организации локального или глобального DNS сервера
Исходные данные
- Имя компьютера: ub
- IP: 192.168.1.1 внешний (пример)
- IP: 192.168.9.1 внутренний
- Имя домена: mydom.loc
Подготовка
Проверяем какой IP адрес получил компьютер
ifconfig -a
мой ip 192.168.9.1 прописываем IP и имя нашего зарегистрированного домена в файлике /etc/hosts
sudo nano /etc/hosts
192.168.9.1 gate.mydom.loc gate
Далее настраиваем named.conf (Как и в первой части, только добавим ключи и 2 зоны: прямую и обратную)
Генерируем ключ для обновления DNS записей
dnssec-keygen -a HMAC-MD5 -b 128 -r /dev/urandom -n USER DHCP_UPDATER
выводим его на экран
cat Kdhcp_updater.*.private|grep Key
на экране вы должны увидеть ключ, что то подобно этому:
Key: vDo6/PVJ7sRm9bOJsBk9Zg==
Открываем файл конфигурации и добавляем
nano /usr/local/etc/namedb/named.conf
key "mydomlockey" {
algorithm hmac-md5;
secret "vDo6/PVJ7sRm9bOJsBk9Zg==";
};
zone "mydom.loc" {
type master;
allow-update {
key "mydomlockey";
};
file "/usr/local/etc/namedb/master/mydom.loc";
};
zone "9.168.192.in-addr.arpa" {
type master;
allow-update {
key "mydomlockey";
};
file "/usr/local/etc/namedb/master/9.168.192.in-addr.arpa.db";
};
Создаем прямую зону
nano /usr/local/etc/namedb/master/mydom.loc
$TTL 604800 ; 1 week
@ IN SOA mydom.loc. root.mydom.loc. (
1 ; serial
604800 ; refresh (1 week)
86400 ; retry (1 day)
2419200 ; expire (4 weeks)
604800 ) ; minimum (1 week)
IN A 192.168.9.1
;
@ IN NS gate.mydom.loc.
@ IN A 192.168.9.1
gate IN A 192.168.9.1
Настроим обратную зону
! Обратная зона нужна только для локального dns сервера, если Вы создаете публичный DNS сервер, то обратная запись прописывает у Вашего провайдера интернета.
nano /usr/local/etc/namedb/master/9.168.192.in-addr.arpa.db
$TTL 604800 ; 1 week
@ IN SOA gate.mydom.loc. mydom.loc. (
1 ; serial
604800 ; refresh (1 week)
86400 ; retry (1 day)
2419200 ; expire (4 weeks)
604800 ) ; minimum (1 week)
;
@ IN NS gate.
1 IN PTR gate.mydom.loc.
Теперь проверим наши конфиги
named-checkzone mydom.loc /usr/local/etc/namedb/master/mydom.loc
zone ub.ru/IN: loaded serial 1
OK
named-checkzone 9.168.192.in-addr.arpa /usr/local/etc/namedb/master/9.168.192.in-addr.arpa.db
zone 1.168.192.in-addr.arpa/IN: loaded serial 1
OK
Проверим права на папке /usr/localetc/namedb/master. Принадлежать папка должна bind. Вот так
drwxr-xr-x 2 bind bind 512 6 окт. 23:08 master
Если не стоят ставим (Иначе dhcp не сможет записать данные в прямую и обратную наши зоны клиентов)
chown -R bind:bind /usr/local/etc/namedb/master
Применяем изменения
rndc reload
Меняем в кон фале resolv.conf данные
nano /etc/resolv.conf
search mydom.loc
nameserver 192.168.9.1
Пропишем в rc.conf
echo 'named_enable="YES"' >> /etc/rc.conf
Логирование
nano /etc/syslog.conf
!named
*.* /var/log/named.log
Создаем файл
touch /var/log/named.log
Установим права
chown bind:bind /var/log/named.log
Перезапустим
service syslogd reload
Запустим службу
service named start
Если служба не запустилась, смотрите логи!
Таким же способ мы можем создать публичный DNS server, только вместо локального IP прописывает адреса полученные у интернет провайдера.
nslookup mydom.loc
Server 192.168.91
Server 192.168.9.1#53
Name: mydom.loc
Address: 192.168.9.1
nslookup 192.168.9.1
Server 192.168.9.1
Server 192.168.9.1#53
1.9.168.192.in-addr.arpa name=gate.mydom.loc.