Domanda

Va ??bene, dichiarerò in anticipo che questa domanda potrebbe essere troppo coinvolta (quantità di dettagli e non complessità) per questo mezzo. Ma ho pensato che questo fosse il posto migliore per iniziare.

Sto tentando di impostare un progetto di prova di concetto e la mia configurazione BIND è il mio primo grande ostacolo. Voglio installare 3 server DNS su 3 caselle fisiche. Nessuno di queste caselle deve risolvere gli indirizzi pubblici, questo è solo interno . Ho letto come impostare le radici interne nel (principalmente) eccellente DNS & amp; BIND 5 ° ed. Ma la mia traduzione del loro esempio non è funzionale. Tutti gli IP sono RFC 1918 non instradabili.

La casella 1 sarà autorevole per gli indirizzi nel dominio box1.bogus e la casella 2 sarà autorevole per gli indirizzi nel dominio box2.bogus . Il riquadro 3 fungerà sia da root interno sia da server TLD per il dominio fasullo .

Problemi attualmente irrisolti:

  • Ho un file di suggerimenti sulla casella 1 e 2 che contiene un singolo record NS per la definizione NS della zona radice. Inoltre, esiste un record A che traduce la NS nell'ip della radice. se scavo dalla casella 1 ottengo una autorità sezione con il nome NS, non una risposta e aggiuntiva sezione record. Pertanto non sono in grado di risolvere effettivamente l'IP del server principale dalla casella 1.

  • Se punto il mio /etc/resolv.conf dalla casella 1 direttamente al server principale e faccio un dig box1.bogus ottengo il ns. box1.bogus rispondi e la traduzione nella sezione aggiuntiva . Tuttavia alla prossima iterazione (quando dovrebbe ottenere il record A) ottengo dig: impossibile ottenere l'indirizzo per ns.box1.bogus

Ovviamente le mie configurazioni non sono non corrette. Non vedo un modo per collegarli a questo post, quindi se le persone vogliono seguire questo passaggio passo dopo passo, li taglierò e li inserirò in un commento per questa domanda. Altrimenti sono aperto a portare questo "offline" con un "DNS guy" per capire dove mi manca un '.' o ne hai uno in più!

Personalmente penso che il Web potrebbe fare con un altro esempio di root interno che non utilizza l'esempio Movie-U.

OK, se lo faremo, dovremmo usare un esempio concreto eh? Ho 3 macchine installate su una VLAN privata per testare questo. Come controllo di integrità ho abbinato tutte le mie configurazioni rilevanti, condensato quando possibile e ridistribuito 2 dei nameserver. Per il momento ho lasciato fuori Scratchy. Stessi risultati di cui sopra. Ecco le configurazioni e gli output di scavo iniziali.


Bogus

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

Output da 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

Output da dig + trace itchy.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

Itchy

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

Output da 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

Output da dig + trace itchy.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
È stato utile?

Soluzione

Usando @, stai definendo itchy.bogus. Non puoi quindi ridefinirlo più in basso nella zona con la linea itchy.bogus.

Prova questo:

@       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

Dato che questo è il file di zona per itchy.bogus, dovrebbe fare la cosa giusta.

Altri suggerimenti

Supponendo di aver verificato tutte le cose ovvie, come garantire che il file di configurazione di bind principale sia quello che pensi sia. Innanzitutto verifica che quelli che ritieni siano in uso siano quelli giusti - a volte è facile modificare un file che si trova nella directory sbagliata e chiediti perché le modifiche non vengono notate.

Hai anche usato named-checkconf e named-checkzone

È abbastanza difficile eseguire il debug di bind, ma senza vedere i file di configurazione è quasi impossibile, quindi per favore aggiungili al post originale.

(Ho aggiunto questo come commento alla domanda - l'ho pubblicato come risposta perché l'OP è nuovo qui).

Ognuno dei 3 server deve avere lo stesso file di suggerimenti. Dovrebbe avere un record NS per ". & Quot; con il nome del server principale e un record A per quel nome.

Il server root dovrebbe avere il ". " impostazione della zona. Il ". & Quot; la zona deve avere " fasullo " con un record ns per se stesso. Dovrebbe quindi avere un record per box1.bogus che va su box1 e box2.bogus che va su box2.

Nota che non dovresti usare box1 e box2 sia come nomi host che come nomi dei domini di secondo livello. Diciamo che invece i domini sono zone1.bogus e zone2.bogus.

Quindi box1 e box2 dovrebbero trovarsi nella zona fasulla, completi di record A. zone1 e zone2 devono essere record NS che puntano a box1 e box2.

Cancella come fango? :)

Ok. Vedo che hai annunciato le tue configurazioni. Eccellente.

Vorrei cambiare la zona radice in questo modo:

;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

Penso che il problema sia che stai delegando itchy.bogus, quindi non puoi inserire i nomi lì dentro

Il " com " i server dei nomi, credo, usano i suggerimenti in modo che possano servire record A per i server dei nomi per le zone delegate, ma nel tuo caso, è più semplice assicurare che ogni data zona servita abbia solo delegazioni per sotto-zone E host all'interno dell'attuale zona.

Ora i miei problemi di delega sembrano risolti, ma sto ancora riscontrando problemi con la ricerca root (che pensavo sarebbe stata semplicissima).

Penso che il problema derivi dal fatto che quando scavo dalla macchina pruriginosa ottengo un record di autorità anziché un record di risposta. Non sono sicuro di cosa ho fatto (o no) per causarlo.

Se " dig [no args] " da un computer che utilizza il tipico file di suggerimento per Internet si ottiene un blocco di risposte per i nameserver di root e la traduzione nella sezione aggiuntiva.

se lo faccio dalla macchina fasulla (root e TLD nameserver) ottengo

;; QUESTION SECTION:
;.                              IN      NS

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

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

Se lo faccio dalla macchina pruriginosa ottengo

;; QUESTION SECTION:
;.                              IN      NS

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

;; Query time: 0 msec

Diventa più interessante se provi dig + trace.

Internet box

; <<>> 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

La mia casella di root interna (Bogus)

; <<>> 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

Itchy

; <<>> 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

Perché la mia macchina con connessione a Internet trova una SOA, ma nessuna delle mie macchine interne?

Come l'altopiano, può essercene solo uno.

Usando i normali suggerimenti di root su Internet, ti viene più o meno precluso l'uso del tuo root interno, perché nessuno dei veri server di root su Internet conosce "fasullo".

La tua unica scelta sarebbe quella di eseguire il mirroring della radice ". " zona dall'interno di ". " ;, ma poi aggiungi " fasullo " ad esso. Lo faresti scaricando periodicamente la zona radice ed eseguendola attraverso l'elaborazione per aggiungere la tua zona personalizzata.

Alcuni dei provider di root DNS alternativi lo fanno, ma forniscono suggerimenti di root per i loro "clienti". da utilizzare che non fanno riferimento al "reale" server root affatto.

... Sto capendo correttamente la domanda? Non sono sicuro.

scavare @ 10.0.0.1 (fasullo) dovrebbe restituire record autorevoli per ".", Dal momento che è effettivamente autorevole per la zona.

scavare @ 10.0.0.2 (prurito) non dovrebbe restituire record autorevoli per ".", Poiché non lo è. può restituire un record autorevole la prima volta che si esegue una query per un nome nella zona radice, perché deve richiamare e recuperare un record autorevole dal server autorevole. Ma se lo fai una seconda volta, otterrai un risultato memorizzato nella cache e la bandiera "aa" sarà chiara.

Il tuo server dei nomi non utilizzerà il suggerimento per dare risposte per scavare. Cioè, non darà il suggerimento di scavare come risposta. Insisterà sul fatto di eseguire una query su 10.0.0.1 per bogustld. Non credo che tu abbia impostato bogustld come zona, solo fasullo.

Probabilmente dovresti cambiare ns.bogustld in ns.bogus. Dai a 10.0.0.1 il nome ns.bogus.

In alternativa, è possibile aggiungere un record NS e SOA in. per bogustld.

Se si scava ns1.bogus. @ 10.0.0.2, che funziona, giusto (supponendo che la configurazione sopra sia ancora in atto)?

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top