我有:
- ns1.internal具有IP的内部DNS服务器- 192.168.0.4。
- 具有外部TLD mydns.example.com和内部IP的外部DNS服务器192.168.0.5。它可以从Internet(通过静态NAT规则)和本地网络进行访问。
我正在尝试设置我的外部DNS服务器以将区域转发subzone.mydns.example.com到内部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
在远程Internet主机和内部主机上执行这些命令时,结果是相同的。
如果尝试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区域按预期工作?
                  我怀疑(我不确定如何检查它)是外部DNS服务器从内部DNS服务器获取记录,并且没有覆盖ns1.internal负责该区域的事实。因此,客户端的解析器尝试解析该名称(ns1.internal)并失败。
                
                
                  
                    —
                    vadipp 
                    
                  
                
              
                  尝试挖掘+跟踪以查看到底发生了什么。还可以使用nscd启用查询日志记录并检查错误。
                
                
                  
                    —
                    coredump 
                    
                  
                
              
                  首先,增加外部绑定的日志级别以记录单个请求。我的猜测是,必须将区域subzone.mydns.example.com委派给DNS服务器mydns.example.com本身。尝试将其添加到mydns.example.com区域文件中:(
                
                  
                    —
                    Nils Toedtmann 2014年
                    
                  
                
              subzone IN NS mydns.example.com.我认为该区域文件在某处也有@ = mydns.example.com的A记录,对吗?)