命名/绑定和转发区域的困境

命名/绑定和转发区域的困境

遗憾的是,我只能使用非常老版本的 bind (9.4.2)

这是我的想法。如果我使用 named.conf 设置绑定,并且只转发,它就可以完美运行。

acl  clients    {
    any  ;
};

options {
    listen-on { 10.245.46.11; };
    forward only ;
    forwarders { 8.8.8.8 ; } ; 
    allow-query { clients ; };
    max-cache-size 2097152 ; 
    empty-zones-enable no;
    querylog yes;
    directory "/usr/local/named/etc/zones";
    dump-file "/usr/local/named/cache_dump.db";
    statistics-file "/usr/local/named/named_stats.txt";
    version "not currently available";
    pid-file "/usr/local/named/var/run/named.pid";
};

一旦我添加欺骗根区域,它就会按预期工作。

zone "." IN {
        type master;
        file "all.zone";
    notify no;
};

其中 all.zone 仅包含一个带有通配符转发的 A 地址,因此所有 DNS 查询都通过该单个地址得到答复。

我面临的问题是,我想允许某些域转发到公共 DNS。以下示例

zone "cnn.com" {
        type forward;
        forwarders { 8.8.8.8; 8.8.4.4; };
};

/** Spoofed **/
zone "." IN {
        type master;
        file "all.zone";
        notify no;
};

对 *.cnn.com 的每个查询都得不到任何答复(而是收到欺骗性的地址)

nslookup www.cnn.com 10.245.46.11
Server:         10.245.46.11
Address:        10.245.46.11#53

*** Can't find www.cnn.com: No answer

# dig  @10.245.46.11 www.www.cnn.com

; <<>> DiG 9.2.4 <<>> @10.245.46.11 www.cnn.com
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 20722
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0

;; QUESTION SECTION:
;www.cnn.com.                   IN      A

;; AUTHORITY SECTION:
.                       3600    IN      SOA     ns.example.com. 357 86400 3600 86400 3600

;; Query time: 1 msec
;; SERVER: 10.245.46.11#53(10.245.46.11)
;; WHEN: Fri Feb  7 10:44:56 2014
;; MSG SIZE  rcvd: 86

但是,如果我向其中添加一个主区域(以及前向区域和欺骗根),它就可以正常请求查询。

zone "test.com" IN {
    type master;
    file "test.com.zone";
};

nslookup ns.test.com 10.245.46.11
Server:         10.245.46.11
Address:        10.245.46.11#53

Name:   ns.test.com
Address: 190.208.65.193

那么,任何人都可能知道为什么当存在根欺骗区域时,当存在主区域时它会回复查询,但是当存在转发区域时它不会转发?

提前致谢 !

相关内容