在 Debian 9 上配置 DNS 服务器

在 Debian 9 上配置 DNS 服务器

我需要一些帮助来配置 Debian 9 (Stretch) 中的 DNS 服务器。我正在关注本教程,但我认为我做错了一些事情......

在我的例子中,我们假设我拥有一个名为 example.com 的域名,我的服务器的 IP 是:203.0.113.141

首先,我在named.conf.local文件中创建了区域。现在,此文件如下所示:

zone "example.com" IN {                    // Domain name
     type master;                          // Primary DNS
     file "/etc/bind/fwd.example.com.db"; // Forward lookup file
     allow-update { none; };               // Since this is the primary DNS, it
};                                         // should be none.

zone "141.ip-203-0-113.net" IN { // Reverse lookup name, it was given from my server provider
     type master; // Primary DNS
     file "/etc/bind/rev.example.com.db"; //Reverse lookup file
     allow-update { none; }; //Since this is the primary DNS, it should be none.
};

之后,我创建了包含以下内容的两个文件:

fwd.example.com.db

$TTL    604800
@       IN      SOA     example.com. root.example.com. (
                             21         ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                         604800 )       ; Negative Cache TTL
;

;Name Server Information
       IN      NS      dns.example.com.
;IP address of Name Server
dns     IN      A       203.0.113.141

rev.example.com.db

$TTL    604800
@       IN      SOA     example.com. root.example.com. (
                             21         ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                         604800 )       ; Negative Cache TTL
;
;@      IN      NS      localhost.
;1.0.0  IN      PTR     localhost.

;Name Server Information
       IN      NS     dns.example.com.
;Reverse lookup for Name Server
141      IN      PTR    dns

配置这些文件后运行named-checkconfnamed-checkzone命令会给我正确的输出,没有任何错误。

我也重启了bind9服务。但是当我尝试使用命令验证 DNS 时dig,答案并不像预期的那样。

该命令dig example.com输出:

; <<>> DiG 9.10.3-P4-Debian <<>> example.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 53052
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;example.com.                   IN      A

;; AUTHORITY SECTION:
example.com.            604800  IN      SOA     example.com. root.example.com. 21 604800 86400 2419200 604800

;; Query time: 0 msec
;; SERVER: 203.0.113.141#53(203.0.113.141)
;; WHEN: Sat Sep 01 09:05:29 EDT 2018
;; MSG SIZE  rcvd: 81

根据我遵循的教程,我期望出现如下一行:

;; ANSWER SECTION:
www.example.com.      604800  IN      A       203.0.113.141

但它并不存在于该输出中。

此外,当我使用检查反向查找时dig -x 203.0.113.141,输出没有显示与我的域 example.com 相关的任何内容:

; <<>> DiG 9.10.3-P4-Debian <<>> -x 203.0.113.141
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 42358
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;141.113.0.203.in-addr.arpa.     IN      PTR

;; ANSWER SECTION:
141.113.0.203.in-addr.arpa. 86400 IN     PTR     141.ip-203-0-113.net.

;; AUTHORITY SECTION:
0.203.in-addr.arpa.     66624   IN      NS      ns10.ovh.ca.
0.203.in-addr.arpa.     66624   IN      NS      dns10.ovh.ca.

;; Query time: 893 msec
;; SERVER: 54.39.21.141#53(54.39.21.141)
;; WHEN: Sat Sep 01 09:12:51 EDT 2018
;; MSG SIZE  rcvd: 132

再次,根据教程,我期待一个不同的答案部分,其中包含我的域名。

那么,您认为这些文件中的任何一个都可能存在配置错误吗?

答案1

好的,这里有两个问题。

问题 1:为什么我没有看到“www.example.com”的 A 记录?

原因有两个。首先,您没有请求“www.example.com”的 A 记录;其次,您没有定义这样的 A 记录。在您的正向区域文件中添加以下行:

www            IN A   203.0.113.141

然后使用 查询该记录dig www.example.com

我假设您还希望“example.com”和“www.example.com”都指向同一个 Web 服务器,在这种情况下,您还需要为顶点(域)本身添加 A 记录。为此,您应该添加以下行:

example.com.   IN A   203.0.113.141

您已经有此顶点的 NS 和 SOA 记录,但是如果您也想浏览它,则需要 A 记录。

问题 2:为什么我没有看到 PTR 记录的预期输出?

我需要编辑这个答案。您收到的答复对我来说似乎是正确的,尽管它不是您期望看到的。

编辑:我考虑的是“CNAME 黑客攻击”,即您的 ISP 创建指向子域的 CNAME,并让您控制该子域。但由于 ISP 提供了 PTR 记录,我会先联系他们,询问他们希望您如何为该 IP 地址设置 PTR 记录的详细信息(如果您被允许这样做的话)。

相关内容