Назад | Перейти на главную страницу

Почему моя запись A игнорируется и как настроить собственный DNS-сервер?

Я пытаюсь настроить свой собственный 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