内部DNSサーバーのBINDフォワードゾーンを適切に構成する方法


15

私が持っています:

  1. ns1.internalIPを備えた内部DNSサーバー192.168.0.4
  2. 外部TLD mydns.example.comおよび内部IPを備えた外部DNSサーバー192.168.0.5。インターネット(静的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

これらのコマンドがリモートインターネットホストと内部ホストで実行される場合、結果は同じです。

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サーバーが内部サーバーからレコードを取得し、ns1.internalがゾーンを担当しているという事実を上書きしないことです。そのため、クライアントのリゾルバーはその名前(ns1.internal)を解決しようとして失敗します。
vadipp

3
dig + traceを試して、正確に何が起こっているのかを確認してください。また、nscdを使用してクエリロギングを有効にし、エラーをチェックします。
コアダンプ

まず、外部バインドのログレベルを上げて、個々の要求を記録します。私の推測では、ゾーンsubzone.mydns.example.comのDNSサーバーmydns.example.com自体への委任が必要だということです。これをmydns.example.comゾーンファイルに追加してみてください:(ゾーンsubzone IN NS mydns.example.com.ファイルには@ = mydns.example.comのAレコードもあると仮定しますか?)
Nils Toedtmann 14

回答:


14

「前方のみ」を追加します 転送されたゾーンへのステートメント:

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

0

NS「subzone.mydns.example.com」のA RRを設定する必要があります。外部DNSで。「グルーレコード」という名前で、内部DNSのIPに対応します。現在、外部DNSは内部DNSのIPを知ることができません。よろしく


0

@ 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.

しかし、なぜそれが必要なのかわかりません...

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.