如何设置BIND DNS以从其他服务器检索所有非权威查询

时间:2013-09-26 14:26:30

标签: linux dns centos bind

背景: 我有一个带有一些PC /设备的家庭网络和一个廉价的网关路由器,可以进行DHCP,DNS互联网路由等。

我网络上设备的IP地址:
  - 便宜的华硕网关路由器192.168.1.1
  - 安装了BIND的centos主机192.168.1.101(我想命名    CVDEV.beraben.internal)

我在我的一个本地主机上安装了BIND(centos),因为我希望它能解析本地网络上设备的名称。

我想设置BIND DNS以便按以下方式运行。

  1. Bind将为我本地网络上的主机提供答案(在下面的区域文件中配置)
  2. 我的ASUS路由器应该为其他主机(即互联网)提供服务。 (就像我决定安装BIND之前那样)
  3. 这是named.conf和zone文件,我尝试了如何做到这一点。它适用于区域文件中的本地主机设置,但不适用于解析Internet主机。

    有人可以指出出了什么问题吗?

        options {
            listen-on port 53 { 127.0.0.1; 192.168.1.101; };
            listen-on-v6 port 53 { ::1; };
            directory       "/var/named";
            dump-file       "/var/named/data/cache_dump.db";
            statistics-file "/var/named/data/named_stats.txt";
            memstatistics-file "/var/named/data/named_mem_stats.txt";
            allow-query     { localhost; };
            recursion yes;
    
            dnssec-enable yes;
            dnssec-validation yes;
            dnssec-lookaside auto;
    
            /* Path to ISC DLV key */
            bindkeys-file "/etc/named.iscdlv.key";
    
            managed-keys-directory "/var/named/dynamic";
    };
    
    logging {
            channel default_debug {
                    file "data/named.run";
                    severity dynamic;
            };
    };
    
    
    view "external" {
            match-clients { none; };
    
            zone "." IN {
                    type hint;
                    file "named.ca";
            };
    };
    
    
    view "internal" {
            match-clients { 127.0.0.1; 192.168.1.0/24; };
    
            zone "." IN {
                    type forward;
                    forwarders {192.168.1.1; 8.8.8.8;};
            };
    
            zone "beraben.internal" IN{
                    type master;
                    file "beraben.internal.zone";
                    allow-query { any; };
                    allow-update { none;};
            };
    };
    //include "/etc/named.rfc1912.zones";
    //include "/etc/named.root.key";
    

    beraben.internal.zone文件

        $TTL 86400
    @   IN  SOA     ns1.beraben.internal. root.berabin.internal. (
            2013042201  ;Serial
            3600        ;Refresh
            1800        ;Retry
            604800      ;Expire
            86400       ;Minimum TTL
    )
    ; Specify our two nameservers
    @               IN      NS              ns1.beraben.internal.
    ; Resolve nameserver hostnames to IP, replace with your two droplet IP addresses.
    ns1             IN      A               192.168.1.101
    
    ; Define hostname -> IP pairs which you wish to resolve
    @               IN      A               192.168.1.101
    www             IN      A               192.168.1.101
    cvdev           IN      A               192.168.1.101
    

2 个答案:

答案 0 :(得分:1)

尝试将forwarders指令添加到options部分,并在ASUS路由器或其他外部DNS服务器上指定DNS服务器,如下所示:

forwarders { 192.168.0.1; };

使用此配置,除了本地服务的域之外的所有查询都应该路由到192.168.0.1

答案 1 :(得分:1)

首先添加

解决了问题
forwarders first;
forwarders { 192.168.1.1; };

并禁用dnssec

dnssec-enable no;
dnssec-validation no;
dnssec-lookaside auto;