1

さて、私はこの質問がこの媒体にはあまりにも複雑である可能性があることを前もって述べます(複雑さではなく詳細の量)。しかし、私はこれが始めるのに最適な場所だと思いました。

概念実証プロジェクトをセットアップしようとしていますが、BIND構成が最初の大きなハードルです。3つの物理ボックスに3つのDNSサーバーをセットアップしたいと思います。 これらのボックスはいずれもパブリックアドレスを解決する必要はありません。これは内部専用です。(ほとんど)優れたDNS&BIND第5版の本で内部ルートを設定する方法を読みました。しかし、彼らの例の私の翻訳は機能していません。すべてのIPはRFC1918でルーティングできません。

ボックス1はbox1.bogusドメインのアドレスに対して権限があり、ボックス2はbox2.bogusドメインのアドレスに対して権限があります。ボックス3は、ドメイン偽の内部ルートとTLDサーバーの両方として機能します。

現在の未解決の問題:

  • ボックス1と2に、ルートゾーンのNS定義に対する単一のNSレコードを含むヒントファイルがあります。さらに、NSをルートのIPに変換するAレコードがあります。dig .ボックス1から取得した場合、回答と追加のレコードセクションではなく、NS名の権限セクション取得しますしたがって、ボックス1からルートサーバーのIPを実際に解決することはできません。

  • /etc/resolv.confボックス1から直接ルートサーバーをポイントして実行するdig box1.bogusと、ns.box1.bogusアンサーレコードと追加セクションの翻訳が表示されます。ただし、次の反復(いつAレコードを取得する必要があるか)で、dig: couldn't get address for ns.box1.bogus

明らかに私の設定は正しくありません。それらをこの投稿に添付する方法がわからないので、人々がこのステップバイステップをウォークスルーしたい場合は、この質問へのコメントにカットアンドペーストします。それ以外の場合は、「DNSガイ」と一緒にこの「オフライン」を使用して、「。」が欠落している場所を特定することができます。または1つが多すぎます!

個人的には、Movie-Uの例を使用しない別の内部ルートの例でWebを実行できると思います。

OK、これを行う場合は、具体的な例を使用する必要がありますか?これをテストするために、プライベートVLAN上に3台のマシンをセットアップしています。健全性チェックとして、関連するすべての構成をペアにし、可能な場合は要約し、2つのネームサーバーを再デプロイしました。私は今のところScratchyを省略しました。上記と同じ結果。設定と初期の発掘出力は次のとおりです。


偽物

Machine Name: Bogus (I just realized I should change this...)  
Role:         Internal Root and TLD Nameserver  
IP:           10.0.0.1  
BIND:         9.5.0-16.a6.fc8  

/etc/named.conf

// Controls who can make queries of this DNS server. Currently only the
// local test bed. When there is a standardized IP addr scheme, we can have
// those addr ranges enabled so that even if firewall rules get broken, the
// public internet can't query the internal DNS.
//
acl "authorized" {
        localhost;      // localhost
        10.0.0.0/24;          // Local Test
};

options {
    listen-on port 53 {
        127.0.0.1;
        10.0.0.1;
    };
    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";
    pid-file    "/var/run/named/named.pid";
    allow-query     { any; };
    recursion no;
};

logging {
        channel default_debug {
                file "data/named.run";
                severity dynamic;
        };
};

//
// The fake root.
//
zone "." {
    type master;
    file "master/root";
    allow-query { authorized; };
};

//
// The TLD for testing
//
zone "bogus" {
    type master;
    file "master/bogus";
    allow-query { authorized; };
    allow-transfer { authorized; };
};

/ var / named / master / root

$TTL    3600
.                   SOA ns.bogustld. hostmaster.internal.bogus. (
                        2008101601  ; serial
                        1H      ; refresh
                        2H      ; retry
                        14D     ; expire
                        5M )        ; minimum
;
; Fake root zone servers defined.
;
.                   NS  ns.bogustld.
ns.bogustld.        A   10.0.0.1
;
; Testing TLD
;
bogus           NS  ns1.bogus.
ns1.bogus.              A   10.0.0.1

/ var / named / master / bogus

$TTL 3600
@           SOA ns1.internal.bogus. hostmaster.internal.bogus. (
                2008102201  ; serial date +seq
                1H      ; refresh
                2H      ; retry
                14D     ; expire
                5M)     ; min TTL
;
            NS  ns1.internal.bogus.
;
; Auth servers
;
ns1.internal.bogus. A   10.0.0.1
;
; Customer delegations each customer 2nd level domain has it's
; own zone file.
;
;Modified to be unique nameservers in the bogus domain
itchy           NS  ns1-itchy.bogus.
ns1-itchy.bogus.    A   10.0.0.2
;
scratchy        NS  ns1-scratchy.bogus.
ns1-scratchy.bogus. A   10.0.0.3

digからの出力。

; <<>> DiG 9.5.0-P2 <<>> .
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 57175
;; flags: qr aa rd; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0
;; WARNING: recursion requested but not available

;; QUESTION SECTION:
;.                              IN      A

;; AUTHORITY SECTION:
.                       300     IN      SOA     ns.bogustld. hostmaster.internal
.bogus. 2008101601 3600 7200 1209600 300

;; Query time: 1 msec
;; SERVER: 10.0.0.1#53(10.0.0.1)
;; WHEN: Tue Oct 21 12:23:59 2008
;; MSG SIZE  rcvd: 88

dig +traceitchy.bogusからの出力

; <<>> DiG 9.5.0-P2 <<>> +trace itchy.bogus
;; global options:  printcmd
.                       3600    IN      NS      ns.bogustld.
;; Received 57 bytes from 10.0.0.1#53(10.0.0.1) in 1 ms

itchy.bogus.            3600    IN      NS      ns1-itchy.bogus.
;; Received 69 bytes from 10.0.0.1#53(ns.bogustld) in 0 ms

itchy.bogus.            3600    IN      A       10.0.0.2
itchy.bogus.            3600    IN      NS      ns1.itchy.bogus.
;; Received 79 bytes from 10.0.0.2#53(ns1-itchy.bogus) in 0 ms

かゆい

Machine Name: Itchy   
Role:         SLD Nameserver (supposed to be owner of itchy.bogus) 
IP:           10.0.0.2  
BIND:         9.5.0-16.a6.fc8  

/etc/named.conf

// Controls who can make queries of this DNS server. Currently only the
// local test bed. When there is a standardized IP addr scheme, we can have
// those addr ranges enabled so that even if firewall rules get broken, the
// public internet can't query the internal DNS.
//
acl "authorized" {
        localhost;      // localhost
        10.0.0.0/24;          // LAN Test
};

options {
    listen-on port 53 {
        127.0.0.1;
        10.0.0.2;
    };
    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";
    pid-file    "/var/run/named/named.pid";
    allow-query     { any; };
    recursion no;
};

logging {
        channel default_debug {
                file "data/named.run";
                severity dynamic;
        };
};

zone "." IN {
    type hint;
    file "master/root.hint";
 };

zone "itchy.bogus" {
    type master;
    file "master/itchy.bogus";
    allow-query { authorized; };
    allow-transfer { authorized; };
};

/var/named/master/itchy.bogus

$TTL    3600
@       SOA     ns1.itchy.bogus. hostmaster.itchy.bogus. (
                2008102202  ; serial
                1H      ; refresh
                2H      ; retry
                14D     ; expire
                5M )        ; minimum
;
        A   10.0.0.2
        NS      ns1.itchy.bogus.
ns1     A   10.0.0.2

/var/named/master/root.hint

.                        3600000      NS    ns.bogustld.
ns.bogustld.         3600000       A    10.0.0.1
; End of File

/etc/resolv.conf

nameserver 10.0.0.2

digからの出力。

; <<>> DiG 9.5.0-P2 <<>> .
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 31291
;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0
;; WARNING: recursion requested but not available

;; QUESTION SECTION:
;.                              IN      A

;; AUTHORITY SECTION:
.                       3600000 IN      NS      ns.bogustld.

;; Query time: 0 msec
;; SERVER: 10.0.0.2#53(10.0.0.2)
;; WHEN: Tue Oct 21 17:09:53 2008
;; MSG SIZE  rcvd: 41

dig +traceitchy.bogusからの出力

; <<>> DiG 9.5.0-P2 <<>> +trace itchy.bogus
;; global options:  printcmd
.                       3600000 IN      NS      ns.bogustld.
;; Received 41 bytes from 10.0.0.2#53(10.0.0.2) in 0 ms

dig: couldn't get address for 'ns.bogustld': failure
4

8 に答える 8

1

これで委任の問題は解決したように見えますが、まだルート ルックアップに問題があります (これはとても簡単だと思いました)。

digこの問題は、かゆみのあるマシンから出たときに、アンサー レコードの代わりに典拠レコードを取得するという事実に起因していると思います。それを引き起こすために何をしたか(またはしなかったか)はわかりません。

インターネット用の典型的なヒント ファイルを使用してマシンから "dig [no args]" を実行すると、ルート ネームサーバーの回答ブロックと追加セクションの翻訳が得られます。

偽のマシン(ルートおよびTLDネームサーバー)からそれを行うと、

;; QUESTION SECTION:
;.                              IN      NS

;; ANSWER SECTION:
.                       3600    IN      NS      ns.bogustld.

;; ADDITIONAL SECTION:
ns.bogustld.            3600    IN      A       10.0.0.1

かゆいマシンからそれをすると、

;; QUESTION SECTION:
;.                              IN      NS

;; AUTHORITY SECTION:
.                       3600000 IN      NS      ns.bogustld.

;; Query time: 0 msec

やってみるともっと面白いdig +trace .

インターネットボックス

; <<>> DiG 9.5.0a6 <<>> +trace .
;; global options:  printcmd
.                       3005    IN      NS      C.ROOT-SERVERS.NET.
.                       3005    IN      NS      D.ROOT-SERVERS.NET.
.                       3005    IN      NS      E.ROOT-SERVERS.NET.
.                       3005    IN      NS      F.ROOT-SERVERS.NET.
.                       3005    IN      NS      G.ROOT-SERVERS.NET.
.                       3005    IN      NS      H.ROOT-SERVERS.NET.
.                       3005    IN      NS      I.ROOT-SERVERS.NET.
.                       3005    IN      NS      J.ROOT-SERVERS.NET.
.                       3005    IN      NS      K.ROOT-SERVERS.NET.
.                       3005    IN      NS      L.ROOT-SERVERS.NET.
.                       3005    IN      NS      M.ROOT-SERVERS.NET.
.                       3005    IN      NS      A.ROOT-SERVERS.NET.
.                       3005    IN      NS      B.ROOT-SERVERS.NET.
;; Received 500 bytes from 64.105.172.26#53(64.105.172.26) in 19 ms

.                       86400   IN      SOA     a.root-servers.net. nstld.verisi
gn-grs.com. 2008102201 1800 900 604800 86400
;; Received 92 bytes from 128.63.2.53#53(H.ROOT-SERVERS.NET) in 84 ms

私の内部ルート ボックス (偽物)

; <<>> DiG 9.5.0-P2 <<>> +trace .
;; global options:  printcmd
.                       3600    IN      NS      ns.bogustld.
;; Received 57 bytes from 10.0.0.1#53(10.0.0.1) in 1 ms

.                       3600    IN      NS      ns.bogustld.
;; Received 72 bytes from 10.0.0.1#53(ns.bogustld) in 0 ms

かゆい

; <<>> DiG 9.5.0-P2 <<>> +trace .
;; global options:  printcmd
.                       3600000 IN      NS      ns.bogustld.
;; Received 41 bytes from 10.0.0.2#53(10.0.0.2) in 0 ms

dig: couldn't get address for 'ns.bogustld': failure

インターネットに接続しているマシンで SOA が検出されるのに、内部マシンが検出されないのはなぜですか?

于 2008-10-22T19:41:50.307 に答える
1

@ を使用することで、itchy.bogus を定義しています。その後、itchy.bogus 行を使用してゾーンのさらに下に再定義することはできません。

これを試して:

@       SOA     ns1.itchy.bogus. hostmaster.itchy.bogus. (
                        2008102201      ; serial
                        1H              ; refresh
                        2H              ; retry
                        14D             ; expire
                        5M )            ; minimum
;
            NS      ns1
            A       10.0.0.2
    ns1     A       10.0.0.2

これは itchy.bogus のゾーン ファイルなので、正しいことを行う必要があります。

于 2008-10-22T18:50:14.390 に答える
0

Ok。私はあなたがあなたの設定を追加したのを見ます。素晴らしい。

したがって、ルートゾーンを変更します。

;Should this be ns1.itchy.bogus or ns1.itchy.internal.bogus??
itchy                   NS      ns1-itchy.bogus.
ns1-itchy.bogus.    A   10.0.0.2
;
scratchy        NS      ns1-scratchy.bogus.
ns1-scratchy.bogus. A   10.0.0.3

問題は、itchy.bogusを委任しているため、そこに名前を入れることができないことだと思います。

「com」ネームサーバーは、委任されたゾーンのネームサーバーのAレコードを提供できるようにヒントを使用していると思いますが、あなたの場合、提供されている特定のゾーンにサブゾーンの委任のみがあることを保証する方がクリーンです。現在のゾーン内のホスト。

于 2008-10-22T16:58:16.283 に答える
0

メインのバインド構成ファイルがあなたが考えているものであることを確認するなど、明らかなことをすべて確認したと仮定します。最初に、named が使用していると思われる が正しいものであることを確認します。間違ったディレクトリにあるファイルを編集するのは簡単で、なぜ変更が認識されないのか不思議に思うことがあります。

また、named-checkconf と named-checkzone を使用しましたか

バインドをデバッグするのは十分に困難ですが、構成ファイルを見なければほとんど不可能なので、元の投稿に追加してください。

(これを質問へのコメントとして追加しました-OPがここで新しいため、回答として投稿しました)。

于 2008-10-21T22:22:49.670 に答える
0

3 つのサーバーのそれぞれに同じヒント ファイルが必要です。「.」の NS レコードが必要です。ルート サーバーの名前とその名前の A レコードを使用します。

ルート サーバーには「.」が必要です。ゾーン設定。「。」ゾーンには、それ自体の ns レコードを含む「偽物」が必要です。次に、box1.bogus が box1 に移動し、box2.bogus が box2 に移動するための A レコードが必要です。

ホスト名と第 2 レベル ドメインの名前の両方に box1 と box2 を使用しないでください。代わりに、ドメインが zone1.bogus と zone2.bogus であるとしましょう。

したがって、box1 と box2 は偽のゾーンにあり、A レコードが完備されている必要があります。zone1 と zone2 は、box1 と box2 を指す NS レコードである必要があります。

泥のように透明?:)

于 2008-10-21T22:24:15.177 に答える
0

ネーム サーバーは、ヒントを使用して、dig に回答を与えることはありません。つまり、答えとして掘り下げるヒントは返されません。bogustld に対して実際に 10.0.0.1 を照会することを主張します。bogustld がゾーンとして設定されているとは思いません。ただの偽物です。

おそらく、ns.bogustld を ns.bogus に変更する必要があります。10.0.0.1 に ns.bogus という名前を付けます。

または、NS および SOA レコードを に追加することもできます。bogustld用。

ns1.bogus を掘ると。@ 10.0.0.2、それはうまくいきますよね (上記の構成がまだ整っていると仮定して)?

于 2008-10-24T18:17:58.247 に答える
0

掘る。@10.0.0.1 (偽) は、ゾーンに対して実際に権限があるため、'.' に対して権限のあるレコードを返す必要があります。

掘る。@10.0.0.2 (かゆい) は、'.' の信頼できるレコードを返すべきではありません。権限のあるサーバーから権限のあるレコードを再帰的に取得する必要があるため、ルート ゾーンで名前を初めてクエリしたときに権限のあるレコードが返される場合があります。しかし、2 回目に実行すると、キャッシュされた結果が得られ、'aa' フラグがクリアされます。

于 2008-10-22T23:33:32.943 に答える
0

ハイランダーのように、1つしか存在できません。

通常のインターネット ルート ヒントを使用することにより、実際のインターネット ルート サーバーは「偽物」を認識していないため、多かれ少なかれ独自の内部ルートを使用できなくなります。

あなたの唯一の選択肢は、ルート「。」をミラーリングすることです。「.」内からゾーンを削除しますが、「偽」を追加します。これを行うには、ルート ゾーンを定期的にダンプし、何らかの処理を実行してカスタム ゾーンを追加します。

一部の代替 DNS ルート プロバイダはこれを行っていますが、「実際の」ルート サーバーをまったく参照しないルート ヒントを「顧客」が使用できるように提供しています。

... 質問を正しく理解していますか? わからない。

于 2008-10-22T21:51:03.590 に答える