web-dev-qa-db-ja.com

LANにBIND9を使用するDNSサーバー[DEBIAN]

DEBIANでBIND9を使用してLANDNSサーバーを構成しようとしています。

コンテキスト:ネットワークマスク:255.255.0.0、ネットワークIP:10.1.xxx.xxx
私はパブリックドメインを所有していますexample.com、外部によって管理されていますNSそして私の目的はすべてのサブドメインを管理することですlan.example。 com、例:アドレスnode1.lan.example.comはIP10.1.1.1のコンピューターです

現在の構成
/etc/bind/named.conf:

include "/etc/bind/named.conf.options";
include "/etc/bind/named.conf.local";
include "/etc/bind/named.conf.default-zones";

/etc/bind/named.conf.options:

options {
    directory "/var/cache/bind";
    forwarders {
        EXTERNAL_DNS_NAMESERVERS;
    };
    dnssec-validation auto;
    recursion yes;
    allow-query { 10/24; 127.0.0.1; };
    allow-recursion { 10/24; 127.0.0.1; };
    auth-nxdomain no;    # conform to RFC1035
    listen-on-v6 { any; };
    listen-on port 53 { 127.0.0.1; 10.1.0.2; } ;
};

/etc/bind/named.conf.local:

zone "lan.example.com" {
    type master ;
    allow-query { 10/24; 127.0.0.1; };
    file "/etc/bind/zone.lan.example.com" ;
};
zone "0.1.10.in-addr-arpa" {
    type master ;
    notify no ;
    allow-query { 10/24; 127.0.0.1; };
    file "/etc/bind/zone.0.1.10.in-addr.arpa" ;
} ; 
zone "2.1.10.in-addr-arpa" {
    type master ;
    notify no ;
    allow-query { 10/24; 127.0.0.1; };
    file "/etc/bind/zone.2.1.10.in-addr.arpa" ;
} ; 

/etc/bind/named.conf.default-zones:

zone "." {
    type hint;
    file "/etc/bind/db.root";
};
zone "localhost" {
    type master;
    file "/etc/bind/db.local";
};

zone "127.in-addr.arpa" {
    type master;
    file "/etc/bind/db.127";
};

zone "0.in-addr.arpa" {
    type master;
    file "/etc/bind/db.0";
};

zone "255.in-addr.arpa" {
    type master;
    file "/etc/bind/db.255";
};

/etc/bind/zone.lan.example.com:

; zone.lan.example.com BIND9 configuration file.
;
$TTL 604800
@   IN  SOA ns.lan.example.com. root.localhost. (
    201212041   ; serial no. (increment by +1 after every edit!)
    604800      ; refresh
    86400       ; retry after failure
    2419200 ; expired
    604800); TTL negative cache
;
@   IN  NS  ns.lan.example.com.
@   IN  A   127.0.0.1
;
; A records - Local machines and addresses:
; Servers:
router  IN  A   10.1.0.1    ; Router
ns      IN  A   10.1.0.2    ; NS Server
server  IN  A   10.1.0.2    ; Server
media   IN  A   10.1.0.3    ; Media Server

;
; Workstations:
node1   IN  A   10.1.1.1    ; node1

問題:

client 10.1.0.1#50808: query (cache) 'a.root-servers.net/A/IN' denied
client 10.1.0.2#59641: query (cache) 'example.com/A/IN' denied
client MY_EXTERNAL_IP#37853: query 'server.lan.example.com/A/IN' denied
client MY_EXTERNAL_IP#56367: query (cache) 'superuser.com/A/IN' denied

ネームサーバーns.lan.example.comでserver.lan.example.comを掘ろうとすると、すべてが機能します。別のマシンからこれを行おうとすると、失敗します。

どうすればこれを解決できますか?

前もって感謝します

2
petlack

10/24からのクエリを許可するようにBINDを構成しました。 BINDがそれを有効なネットマスクとして受け入れるかどうかはわかりませんが、受け入れる場合は、10.0.0.0/24または10.0.0.0/255.255.255.0に展開されます。これは一致しません10.1.0.1。 (/2410.0.0.0/8を混同しましたか?)

メモネットワークマスク:255.255.0.0、ネットワークIP:10.1.xxx.xxxによると、正しいネットワークは10.1.0.0/16である必要があります。

2
user1686

前の回答は最初の送信者の問題を解決しましたが、これを行う別のより一般的な方法では、組み込みのACL「localnets」と「localhost」を使用できます。例:

allow-recursion { localnets; } ;

localhostはかなり自明です(127.0.0.1または:: 1に加えて、BINDが使用しているすべてのネットワークインターフェイスの構成済みアドレスが含まれていることを除きます(したがって、127.0.0.1とローカルホストに割り当てられたすべてのアドレス)。

localnetsは、ローカルインターフェイスの構成に基づいており、アドレスとネットマスクから派生しています。

サーバーのインターフェースがプライベートアドレス空間にnotであるが、インターネットでルーティング可能である場合は、おそらく「ローカルネット」を使用したくないでしょう。

0
Michael McNally