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

その後、次の内容のファイルを両方とも作成しました。

転送先::

$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-checkconfこれらのファイルを構成した後にコマンドを実行するnamed-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

さて、ここでは 2 つの質問があります。

Q1: 「www.example.com」の A レコードが表示されないのはなぜですか?

これには2つの理由があります。まず、'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

この Apex にはすでに NS レコードと SOA レコードがありますが、これを参照する場合は A レコードも必要です。

Q2: PTR レコードに必要な出力が表示されないのはなぜですか?

この回答を編集する必要があります。あなたが受け取った返信は、あなたが期待していたものとは異なりますが、私には正しいように思えます。

編集: 私は、ISP がサブドメインを指す CNAME を作成し、そのサブドメインを制御できるようにする「CNAME ハック」について考えていました。しかし、ISP は PTR レコードを提供しているので、まず ISP に連絡して、その IP アドレスの PTR レコードをどのように設定すればよいか (設定が許可されている場合) の詳細を尋ねます。

関連情報