为什么我的 A 记录被忽略以及如何设置自己的 DNS 服务器?

为什么我的 A 记录被忽略以及如何设置自己的 DNS 服务器?

我正在尝试使用 bind9 在 Ubuntu 18.04 上设置自己的 dns 服务器。我安装了所需的软件包,并在 /etc/bind 下有以下文件

命名配置文件

include "/etc/bind/named.conf.options";
include "/etc/bind/named.conf.local";
include "/etc/bind/named.conf.default-zones";

命名的.conf.选项

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;
    };
};

命名的.conf.默认区域

...
zone "localhost" {
    type master;
    file "/etc/bind/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

现在在我的设置中,我有一个路由器,它提供 范围内的 ip 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.1dns 手动设置为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.1FQDN?然后我重新启动了 bindsudo service bind9 restart并检查它是否正在运行,sudo service bind9 status这表明Active: active (running) 现在我可能不明白一些事情,但我现在本以为ping router.localhost会尝试 ping 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

为什么会发生这种情况?我如何才能实现在 db.local 中添加 A 记录的目标,然后能够 ping 通(例如)printer.localhost,然后它又会 ping 通我网络中的另一个 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 来自哪里。

答案1

呃,我打的是:https://github.com/systemd/systemd/issues/10298

我通过符号链接修复了它:sudo ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf

相关内容