내부 DNS 서버에 대한 BIND 전달 영역을 올바르게 구성하는 방법 대해 권한이 있습니다. 중요 : 내부

나는 가지고있다:

  1. ns1.internalIP가있는 내부 DNS 서버 192.168.0.4.
  2. 외부 TLD mydns.example.com및 내부 IP 가있는 외부 DNS 서버 192.168.0.5. 인터넷 (정적 NAT 규칙을 통해)과 로컬 네트워크에서 모두 액세스 할 수 있습니다.

영역 subzone.mydns.example.com을 내부 DNS 서버 로 전달하도록 외부 DNS 서버를 설정하려고 합니다. 내부 DNS 서버는이 영역에 대해 권한이 있습니다.

중요 : 내부 DNS 서버 구성을 수정할 수 없습니다. 그러나 문제를 진단하는 데 필요한 경우 읽을 수 있습니다.

/etc/named.conf외부 DNS 서버의 파일 :

options {
  directory "/var/named";
  version "get lost";

  recursion yes;
  allow-transfer {"none";};
  allow-query { any; };
  allow-recursion { any; };
};

logging{
  channel example_log{
   file "/var/log/named/named.log" versions 3 size 2m;
   severity info;
   print-severity yes;
   print-time yes;
   print-category yes;
 };
 category default{
  example_log;
 };
};

// Zones:

zone "mydns.example.com" {
  type master;
  file "mydns.example.com.zone";
  allow-update{none;};
};

zone "subzone.mydns.example.com" {
  type forward;
  forwarders { 192.168.0.4; };
};

/var/named/mydns.example.com.zone외부 DNS 서버의 파일 :

$TTL 1
$ORIGIN mydns.example.com.
@             IN      SOA   mydns.example.com. root.mydns.example.com. (
                        2003080800 ; se = serial number
                        60         ; ref = refresh
                        60         ; ret = update retry
                        60         ; ex = expiry
                        60         ; min = minimum
                        )

@             IN      NS      mydns.example.com.

이제 일부 DNS 레코드를 해결하려고합니다. 외부 서버 영역이 작동하는 것 같습니다.

workstation$ dig mydns.example.com NS +tcp +short
mydns.example.com.

그러나 전달 영역이 작동하지 않습니다.

workstation$ dig subzone.mydns.example.com NS +tcp

; <<>> DiG 9.8.1-P1 <<>> subzone.mydns.example.com NS +tcp
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 36887
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0

;; QUESTION SECTION:
;subzone.mydns.example.com.        IN      NS

;; AUTHORITY SECTION:
mydns.example.com.    1       IN      SOA     mydns.example.com. root.mydns.example.com. 2003080800 60 60 60 60

;; Query time: 3 msec
;; SERVER: 91.144.182.3#53(91.144.182.3)
;; WHEN: Thu Jul 19 17:27:54 2012
;; MSG SIZE  rcvd: 108

이러한 명령이 원격 인터넷 호스트와 내부 호스트에서 실행될 때 결과는 동일합니다.

subzone.mydns.example.com.외부 이름 서버에서 확인하고 내부 서버를 명시 적으로 지정 하려고하면 다음 과 같은 결과가 나타납니다.

mydns$ dig @192.168.0.4 subzone.mydns.example.com NS

; <<>> DiG 9.3.6-P1-RedHat-9.3.6-16.P1.el5 <<>> @192.168.0.4 subzone.mydns.example.com NS
; (1 server found)
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 87
;; flags: qr aa rd; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 3

;; QUESTION SECTION:
;subzone.mydns.example.com.        IN      NS

;; ANSWER SECTION:
subzone.mydns.example.com. 3600 IN NS      ns1.internal.

;; ADDITIONAL SECTION:
ns1.internal.      3600    IN      A       192.168.0.4

;; Query time: 613 msec
;; SERVER: 192.168.0.4#53(192.168.0.4)
;; WHEN: Thu Jul 19 18:20:55 2012
;; MSG SIZE  rcvd: 163

뭐가 문제 야? 전달 DNS 영역을 예상대로 작동하도록 구성하려면 어떻게합니까?



답변

‘앞으로 만’을 추가하십시오. 전달 영역에 대한 진술 :

zone "subzone.mydns.example.com" {
    type forward;
    forward only;
    forwarders { 192.168.0.4; };
};

답변

NS “subzone.mydns.example.com”에 대해 A RR을 구성해야합니다. 외부 DNS에서 이름은 “glue record”이며 내부 DNS의 IP에 해당합니다. 현재 외부 DNS는 내부 DNS의 IP를 알 수 없습니다. 문안 인사


답변

@ brandon-xavier가 언급 한 첫 번째 단계와 다른 단계를 더 수행했습니다.

zone "subzone.mydns.example.com" {
    type forward;
    forward only;
    forwarders { 192.168.0.4; };
};

그리고 새로운 것 :

$ORIGIN subzone.mydns.example.com.
@             IN      NS      ns1.subzone.mydns.example.com.

그러나 왜 그것이 필요한지 모르겠습니다 …