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.conflisten-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
OKnamed-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.1nslookup 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.