Установка и настройка выполнялась по примеру.
sudo apt-get update
sudo apt-get install bind9 bind9utils bind9-doc
При запуске DNS садиться на 53 порт сервера, поэтому он должен быть свободен
cd /etc/bind
- переходи в папку для настройки DNS
mkdir zones
- создаем папку зон
cd zones
- входим в нее
sudo nano db.proxy
- создаем и открываем на редактирование (можно и vim'ом) файл прямой зоны (можно любое название)
$TTL 604800
@ IN SOA proxy. admin.proxy. (
2022103116 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
IN NS audi.proxy.
IN NS onvif.proxy.
IN NS studio.proxy.
audi.proxy. IN A 172.18.191.38
onvif.proxy. IN A 172.18.191.23
studio.proxy. IN A 172.18.191.23
Из этого файла и будут браться IP при запросе по доменному имени (пробелы на самом деле не так важны, но лучше их делать для удобной читаемости). Тут нам важно:
proxy
- домен верхнего уровня. Это значит, что все его поддомены будут с окончанием .proxy
admin.proxy
- просто добавьте admin. к домену верхнего уровня
Serial
- число, которое от домена верхнего уровня к домену должно отличаться
IN NS …
- обозначаем поддомен
… IN A …
- говорим, какому IP он соответствует
sudo nano db.40.130
- создаем файл обратной зоны (название может быть любое)
$TTL 604800
@ IN SOA proxy. admin.proxy. (
2022103116 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
IN NS audi.proxy.
IN NS onvif.proxy.
IN NS studio.proxy.
IN A 172.18.191.38
IN A 172.18.191.23
38.191. IN PTR audi.proxy.
23.191. IN PTR onvif.proxy.
23.191. IN PTR studio.proxy.
cd ../
- выходим из папки zones
sudo nano named.conf.options
- изменяем основные настройки DNS'a
options {
directory "/var/cache/bind";
// If there is a firewall between you and nameservers you want
// to talk to, you may need to fix the firewall to allow multiple
// ports to talk. See http://www.kb.cert.org/vuls/id/800113
// If your ISP provided one or more IP addresses for stable
// nameservers, you probably want to use them as forwarders.
// Uncomment the following block, and insert the addresses replacing
// the all-0's placeholder.
recursion yes;
allow-query { any; };
dnssec-validation auto;
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
//========================================================================
listen-on-v6 { any; };
};
Тут нам важны строчки от recursion
до forwarders
, в forwarders прописываются публичные DNS-сервера, которым будет переправляться запрос в случае, если ваш DNS не имеет данных об определенном домене.
sudo nano named.conf.local
- обозначаем зоны для нашего DNS-сервера
//
// Do any local configuration here
//
// Consider adding the 1918 zones here, if they are not used in your
// organization
//include "/etc/bind/zones.rfc1918";
zone "proxy" {
type master;
file "/etc/bind/zones/db.proxy.miem.tv"; # zone file path
};
zone "18.172.in-addr.arpa" {
type master;
file "/etc/bind/zones/db.40.130.18.172"; # zone file path
};
Прямая зона - домен верхнего уровня (zone "proxy" {
)
Обратная - первых два октета сервера, где запущен DNS + .in-addr.arpa
(zone "18.172.in-addr.arpa" {
)
После перезапускаем DNS:
sudo systemctl restart bind9
Обозначаем на хосте IP сервера, где запущен DNS, как основной. Для WIndows: Параметры сети и Интернет → Ethernet → Свойства → IP версии 4, для Debian → редактирование /etc/resolv.conf, для Ubuntu → через Netplan.
Проверяем наши поддомены:
ping audi.proxy
Сейчас DNS-сервер для Медиацентра запущен на сервере с IP 172.18.130.40