无法让权威 DNS 服务器运行 (BIND9)

无法让权威 DNS 服务器运行 (BIND9)

我正在尝试让 BIND9 DNS 服务器在 Debian 服务器上工作,以完成学校作业。问题是,当我尝试使用 测试我的 DNS 服务器时dig -t soa my.domain.com @ns.my.domain.com,我只是得到dig: couldn't get address for 'ns.my.domain.com': failure.老师正在运行自动检查,它只告诉我“SOA 记录不匹配”。我完全蒙在鼓里。

以下是 IP 地址和名称的概述(出于隐私考虑而编造):

My server: my.domain.com 123.123.123.100
Name server 1: ns1.school.com 123.123.123.101
Name server 2: ns2.school.com 123.123.123.102
Test server: 123.123.123.103

这些IP地址是老师给我的。测试服务器每2小时运行一次自动检查,以检查模块是否正常工作。

当我运行时systemctl status bind9,我多次收到以下消息:

client 123.123.123.103#51478 (my.domain.com): zone transfer 'my.domain.com/AXFR/IN' denied

我不知道可能出了什么问题。有人能引导我走向正确的方向吗?

配置

命名.conf.选项

options {
        directory "/var/cache/bind";
        recursion no;
        allow-transfer { none; };

        dnssec-validation auto;

        auth-nxdomain no;    # conform to RFC1035
        listen-on-v6 { any; };
};

命名.conf.local

zone my.domain.com {
        type master;
        file "/etc/bind/zones/db.my.domain.com";
        allow-transfer { 123.123.123.101; 123.123.123.102; };
};

区域/db.my.domain.com

@       IN      SOA     ns.my.domain.com. [email protected]. (
                     2018082501         ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                         604800 )       ; Negative Cache TTL
;

; Name servers
my.domain.com.   IN      NS      ns.my.domain.com.
my.domain.com.   IN      NS      ns1.school.com.
my.domain.com.   IN      NS      ns2.school.com.

; A records for name servers
ns      IN      A       123.123.123.100
ns1     IN      A       123.123.123.101
ns2     IN      A       123.123.123.102
www     IN      A       123.123.123.100
test    IN      A       123.123.123.103

答案1

从您向我们展示的配置来看,有几点需要修复:

  • 域名文件应该是zones/db.mydomain,com而不是zones/db.mydomaon.com
  • 至于您向我们提供的错误,它表示向测试机 123.123.123.103 的域传输被拒绝;因此,您可以允许它,将其添加到允许 DNS 传输的服务器,如下所示:

    允许传输{123.123.123.101; 123.123.123.102;123.123.123.103;};

进行此更改后,您将需要重新启动 BIND。

有理由相信测试服务器正在对应该传输的实际文件运行脚本/测试,因此会出现错误。

  • 如果 ns1 和 ns2 已经在 school.com 域中注册,我不认为有必要在该mydomain.com域中再次注册它们(实际上已经看到许多专业人士犯了同样的错误);

  • 至于机器测试,目前尚不完全清楚它是属于 school.com 还是 mydomain.com。

至于你的 dig 命令失败,我会直接输入 IP 地址,如下所示:

如果在您的服务器内:

dig -t soa my.domain.com @127.0.0.1

或者实际上更好:

dig -t soa my.domain.com @123.123.123.100

作为最后的评论,负缓存 TTL 的 1 周太高了。我会用30分钟或1小时。

相关内容