Я пытаюсь настроить свой собственный DNS-сервер на Ubuntu 18.04 с помощью bind9. Я установил необходимые пакеты и у меня есть следующие файлы в / etc / bind
named.conf
include "/etc/bind/named.conf.options";
include "/etc/bind/named.conf.local";
include "/etc/bind/named.conf.default-zones";
named.conf.options
acl "trusted" {
127.0.0.1;
192.168.1.0/24;
};
options {
directory "/var/cache/bind";
dnssec-validation auto;
auth-nxdomain no;
listen-on-v6 { any; };
//custom additions
recursion yes;
allow-recursion { trusted; };
listen-on { trusted; };
allow-query { trusted; };
allow-transfer { none; };
forwarders {
8.8.8.8;
8.8.4.4;
};
};
named.conf.default-зоны
...
zone "localhost" {
type master;
file "/etc/bind/db.local";
};
...
db.local
$TTL 604800
@ IN SOA localhost. root.localhost. (
3; Serial
604800; Refresh
86400; Retry
2419200; Expire
604800 ) ; Negative Cache TTL
;
@ IN NS localhost.
@ IN A 127.0.0.1
@ IN AAAA ::1
; custom additions
router IN A 192.168.1.1
теперь в моей настройке у меня есть маршрутизатор, который дает ips в диапазоне 192.168.1.10-200
. У меня есть компьютер D, на котором я пытаюсь настроить привязку к ip 192.168.1.8
, чтобы иметь возможность позже указать на него DNS-запись моего маршрутизатора, а не на сам маршрутизатор, который он настроен прямо сейчас. Теперь на компьютере D я вручную установил свой IP, маску сети и шлюз на 192.168.1.8, 255.255.255.0, 192.168.1.1
и DNS, которые я установил вручную на 127.0.0.1
. Я могу подтвердить это 127.0.0.1
используется компьютером, запустив systemd-resolve --status
что дает мне DNS Servers: 127.0.0.1 and DNS Domain: ~.
Теперь к моим вопросам: я прав, что @
в db.local относится к localhost.
и добавляется к каждой записи ресурса, которая не заканчивается точкой? Так router IN A 192.168.1.1
становится router.localhost. IN A 192.168.1.1
и, таким образом, полное доменное имя? Затем я перезапустил привязку с помощью sudo service bind9 restart
и проверил, что он работает с sudo service bind9 status
который показывает мне Active: active (running)
Вот тут я наверное чего-то не понимаю, но я бы сейчас ожидал ping router.localhost
попытаться пинговать 192.168.1.1
но вместо этого получаю странный ответ:
PING router.localhost(ip6-localhost (::1)) 56 data bytes
64 bytes from ip6-localhost (::1): icmp_sq=1 ttl=64 time=0.045 ms
64 bytes from ip6-localhost (::1): icmp_sq=2 ttl=64 time=0.062 ms
64 bytes from ip6-localhost (::1): icmp_sq=3 ttl=64 time=0.056 ms
Почему это происходит? И как я могу достичь своей цели - иметь возможность добавлять записи A в db.local, а затем иметь возможность пинговать, например, printer.localhost, и он пингует другой ip в моей сети, например. 192.168.1.5
?
РЕДАКТИРОВАТЬ: Бег dig router.localhost
возвращает:
;; ANSWER SECTION
router.localhost. 0 IN A 127.0.0.1
;; SERVER: 127.0.0.53#53(127.0.0.53)
что странно, и я уже заметил, что systemd-resolve --status
и файл /etc/resolve.conf не согласен, этот файл имеет:
nameserver 127.0.0.53
options edns0
Я не уверен, откуда этот 53 ip.
Ух, я ударил: https://github.com/systemd/systemd/issues/10298
Я исправил это по символической ссылке: sudo ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf