如何解析域名

如何解析域名

我最初将此发布到 stack-overflow 是因为我认为他们可以给我一些见解,但结果我被否决了,他们不明白我从标题中说了什么。我正在尝试让 bind9 将我的域名解析为 IPv4 地址,但 bind9 无法检测到我设置的名为/etc/bind/db.Domain.zone甚至是默认的本地文件 本地数据库

我真的很困惑如何解决这个问题,大约一个月前我向 bind9 支持发送了帮助请求,但我从未收到回复。所有者将我发送到社区论坛,但我从未被接受。我已经安装了bind9 bind9utils bind9-doc bind9-host我还设置了我的 hosts 文件,如下所示,以便 O 可以链接我的主机名也对它

echo -e "192.168.1.101  cheese.com  chewy" >> /etc/hosts

hostnamectl set-hostname chewy

然后我就能跑了ping -c cheese.com在我启用 ICMP 请求后,在同一主机上收到响应,但是我无法 ping Evil.com从网络中的另一台计算机或网络外的计算机,我的下一步是配置命名的.conf.选项根据我的喜好归档

acl TrustedPPL { 192.168.1.0/24; 192.168.1.101; };

acl NoAccess { 192.168.1.111; };

options {
           directory "/var/cache/bind";

           allow-query { TrustedPPL; };
           blackhole { NoAccess; };

           recursion yes;

           allow-recursion { localnets; 192.168.1.0/24; };
           listen-on port 53 { 192.168.1.101; 127.0.0.1; };
           forwarders { 192.168.1.1; 8.8.8.8; 8.8.4.4; };

           dnssec-validation auto;
           dnssec-lookaside auto;
           dnssec-enable yes;
           auth-nxdomain no; 

           tcp-listen-queue 25;
           transfers-in 25;
           transfers-out 25;
           tcp-clients 200;
           };

此时我已重新启动 bind9,因此我会收到任何错误的通知,没有错误,因此我继续创建区域名称和区域文件,我还将包括区域文件内容

echo -e 'zone "cheese.com" IN { type master; file "/etc/bind/db.Domain.zone"; };' > /etc/bind/named.conf.local


区域文件/etc/bind/db.Domain.zone

 $TTL 3h

@  IN   SOA  cheese.com. root. (
                                            15   ; Serial
                                            3h   ; Refresh
                                            1h   ; Retry
                                            1w   ; Expire
                                            1h ) ; Negative Cache TTL

@   IN    NS  cheese.com.
@   IN    A   192.168.1.101

然后我用dig cheese.com我收到的响应显示 IPv4 是 192.168.1.101,然后我确认了nslookup并且结果也是准确的。

所以我决定测试一下分辨率部分,然后我改变了@ IN A 192.168.1.101 至 192.168.1.111然后我更改了序列号并重新启动了 bind9,没有任何错误,我做了一个dig cheese.com然后它又返回了 192.168.1.101。所以此时我很好奇文件 db.Domain.zone 是否被检测到,所以我将文件 db.Domain.zone 和 db.local 一起完全删除,dig 和 nslookup 显示 bind9 甚至没有检测到它自己的解析文件,因为它仍然返回 192.168.1.101 和 127.0.0.1 有什么想法吗?


这是我的/etc/nsswitch.conf文件

passwd:         compat systemd
group:          compat systemd
shadow:         compat
gshadow:        files

hosts:          dns 
networks:       files

protocols:      db files
services:       db files
ethers:         db files
rpc:            db files

netgroup:       nis

我也尝试过用原版/etc/bind/named.conf.options文件,并且没有任何变化。

也没有 dnsmasq 或 nscd 缓存守护进程

默认的 localhost 文件 /etc/bind/db.local 在被删除之前也从 127.0.0.1 更改为 127.0.1.1,以查看这是否只是我的配置,dig 仍然返回 127.0.0.1,有人可以确认这是一个 bind9 问题还是这是我的设置问题

答案1

您正在尝试在本地主机上设置公共域。因此,无法从其他位置解析。如果您只需要 LAN,请配置绑定,并让所有 LAN PC(或路由器)使用该绑定作为 DNS 服务器。
在其他情况下,如果您尝试设置公共域,请在 Google 上搜索域名停放。可以将域名停放在您自己的服务器上,但它必须有公共 IP,这是最糟糕的主意。

编辑(根据评论):我认为它运行良好,环回接口对许多地址都有响应:

 leonid  JabbaDesktop  ~  $  ifconfig lo
lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 27078  bytes 2265065 (2.2 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 27078  bytes 2265065 (2.2 MB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

 leonid  JabbaDesktop  ~  $  ping -c 1 127.0.123.1
PING 127.0.123.1 (127.0.123.1) 56(84) bytes of data.
64 bytes from 127.0.123.1: icmp_seq=1 ttl=64 time=0.060 ms
 leonid  JabbaDesktop  ~  $  ping -c 1 127.0.123.2
PING 127.0.123.2 (127.0.123.2) 56(84) bytes of data.
64 bytes from 127.0.123.2: icmp_seq=1 ttl=64 time=0.060 ms

相关内容