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-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

좋습니다. 여기서는 두 가지 질문이 있습니다.

질문 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"이 모두 동일한 웹 서버를 가리키기를 원한다고 가정합니다. 이 경우 apex(도메인) 자체에 대한 A 레코드도 추가해야 합니다. 이를 위해서는 다음 줄을 추가해야 합니다:

example.com.   IN A   203.0.113.141

이 apex에 대한 NS 및 SOA 레코드가 이미 있지만 이를 탐색하려면 A 레코드도 필요합니다.

Q2: 내 PTR 레코드에 대해 원하는 출력이 표시되지 않는 이유는 무엇입니까?

이 답변을 편집해야 합니다. 귀하가 기대한 답변은 아니지만 귀하가 받은 답변이 제가 보기에는 올바른 것 같습니다.

편집: ISP가 하위 도메인을 가리키는 CNAME을 생성하고 해당 하위 도메인에 대한 제어권을 제공하는 "CNAME 해킹"을 생각하고 있었습니다. 그러나 ISP가 PTR 레코드를 제공하므로 먼저 연락하여 해당 IP 주소에 대한 PTR 레코드를 설정하는 방법에 대한 세부 정보를 요청합니다(허용된 경우).

관련 정보