有人能明白为什么我的 DNS 不起作用吗?我遵循了教程中的所有内容,但不起作用

Ale*_*lex 2 domain-name-system linux unix troubleshooting bind

如果有人能帮我解决这个问题,我将不胜感激!!

测试工作。只是当我进行手动 ping/nslookup 测试时,没有任何效果。顺便说一句,我遵循了本教程中的所有内容。

这是我的/etc/bind/zones/master/main.com.db文件:

;
; BIND data file for main.com
;
$TTL    604800
@       IN      SOA     main.com. info.main.com. (
                            2007011501         ; Serial
                                  7200         ; Refresh
                                   120         ; Retry
                               2419200         ; Expire
                                604800)        ; Default TTL
;
@       IN      NS      ns1.main.com.
@       IN      NS      ns2.main.com.
main.com.    IN      MX      10      mail.main.com.
main.com.    IN      A       174.143.182.58
www                     IN      CNAME   main.com.
mail                    IN      A       174.143.182.58
ftp                     IN      CNAME   main.com.
main.com.            IN      TXT     "v=spf1 ip4:174.143.182.58 a mx ~all"
mail                    IN      TXT     "v=spf1 a -all"
Run Code Online (Sandbox Code Playgroud)

这是我的反向 DNS ( /etc/bind/zones/master/174.143.182.rev ) 文件:

$TTL 1d ;
$ORIGIN 182.143.174.IN-ADDR.ARPA.
@       IN      SOA     ns1.main.com.   info.main.com. (
                                       2007011501
                                       7200
                                       120
                                       2419200
                                       604800
)
        IN      NS      ns1.main.com.
        IN      NS      ns2.main.com.
1       IN      PTR     ns1.main.com.
2       IN      PTR     ns2.main.com.
Run Code Online (Sandbox Code Playgroud)

这是我用于 BIND 的named.conf.local文件:

zone "main.com" {
       type master;
       file "/etc/bind/zones/master/main.com.db";
};

zone "182.143.174.IN-ADDR.ARPA" {
       type master;
       file "/etc/bind/zones/master/174.143.182.58.rev";
};
Run Code Online (Sandbox Code Playgroud)

当我做我的命名检查区时,它起作用了。

named-checkzone main.com main.com.db
zone main.com/IN: NS 'ns1.main.com' has no address records (A or AAAA)
zone main.com/IN: NS 'ns2.main.com' has no address records (A or AAAA)
zone main.com/IN: loaded serial 2007011501
OK
Run Code Online (Sandbox Code Playgroud)

但是,当我重新启动 BIND9 时出了点问题

/etc/init.d/bind9 restart
Stopping domain name service...: bind9rndc: connect failed: 127.0.0.1#953: connection refused
.
Starting domain name service...: bind9.
Run Code Online (Sandbox Code Playgroud)

当我进行 ping 测试时,它不起作用:

ping ns1.main.com
PING ns1.main.com (72.16.146.146) 56(84) bytes of data.
64 bytes from ns1.main.com (72.16.146.146): icmp_seq=1 ttl=52 time=20.0 ms
Run Code Online (Sandbox Code Playgroud)

我希望 ping 测试显示我的 IP (174.143.182.58) 而不是 72.16.146.146。

我什至尝试将我的resolve.conf编辑为相同的 IP:

nameserver      174.143.182.58
Run Code Online (Sandbox Code Playgroud)

如果有人可以帮助弄清楚为什么在我 ping 时它没有检测到我自己的 IP...请帮助我!

Sim*_*Sim 5

您的名称服务器 ns1.main.com 和 ns2.main.com 没有 A 记录。named-checkzones 没有工作,因为它警告您您的名称服务器没有 A 记录:

zone main.com/IN:NS 'ns1.main.com'没有地址记录(A 或 AAAA)

zone main.com/IN:NS 'ns2.main.com'没有地址记录(A 或 AAAA)

因此,您需要将以下内容添加到 main.com.db 文件中:

ns1           IN    A    174.143.182.1
ns2           IN    A    174.143.182.2
Run Code Online (Sandbox Code Playgroud)

没有这些胶水记录,整件事都行不通。

您的 main.com 的 SOA 记录也是错误的。它应该是:

@       IN      SOA     ns1.main.com. info.main.com.
Run Code Online (Sandbox Code Playgroud)

它在命名检查区中没有失败,因为您有一个 main.com A 记录并且 BIND 假定那是名称服务器记录。