Debian 9(ストレッチ)で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-checkconf
およびnamed-checkzone
コマンドを実行すると、エラーなしで正しい出力が得られます。
bind9
サービスも再開しました。しかし、Dig
コマンドを使用してDNSを確認しようとすると、答えは期待どおりではありません。
コマンド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
繰り返しになりますが、チュートリアルによると、ドメイン名が含まれている別の回答セクションが必要でした。
それで、それらのファイルのいずれかで構成が間違っている可能性があると思いますか?
では、ここで2つの質問をします。
その理由は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
この頂点にはNSおよびa SOAレコードがすでにありますが、これも参照するにはAレコードが必要です。
この回答を編集する必要があります。表示されるはずの内容ではありませんが、受け取った回答は私には正しいようです。
編集:ISPがサブドメインを指すCNAMEを作成し、そのサブドメインを制御できるようにする「CNAMEハック」について考えていました。しかし、ISPはPTRレコードを提供しているので、まずそれらに連絡し、そのIPアドレスのPTRレコードを設定する方法の詳細を尋ねます(許可されている場合でも)。