Pregunta

Muy bien, voy a declarar desde el principio que esta pregunta puede ser demasiado complicada (cantidad de detalle no complejidad) para este medio. Pero pensé que este era el mejor lugar para comenzar.

Estoy intentando configurar un proyecto de prueba de concepto y mi configuración BIND es mi primer gran obstáculo. Quiero configurar 3 servidores DNS en 3 cajas físicas. Ninguna de estas casillas debe resolver las direcciones públicas, esto es interno solamente . He leído cómo configurar las raíces internas en el excelente (en su mayoría) excelente DNS & amp; BIND 5º libro de ed. Pero mi traducción de su ejemplo no es funcional. Todas las IP son RFC 1918 no enrutables.

El Cuadro 1 tendrá autoridad para las direcciones en el dominio box1.bogus , y el Cuadro 2 tendrá autoridad para las direcciones en el dominio box2.bogus . El cuadro 3 actuará como una raíz interna y el servidor de TLD para el dominio falso .

Problemas actuales no resueltos:

  • Tengo un archivo de sugerencias en los cuadros 1 y 2 que contiene un solo registro NS en la definición de la zona raíz de NS. Además, hay un registro A que convierte el NS a la ip de la raíz. si escribo dig. del recuadro 1, obtengo una sección authority con el nombre del NS, no una respuesta y adicional sección de registro. Por lo tanto, no puedo resolver realmente la IP del servidor raíz del cuadro 1.

  • Si apunto mi /etc/resolv.conf desde el cuadro 1 directamente al servidor raíz y hago un dig box1.bogus , obtengo el ns. box1.bogus answer y la traducción en la sección adicional . Sin embargo, en la siguiente iteración (cuando debería obtener el registro A), obtengo dig: no se pudo obtener la dirección para ns.box1.bogus

Obviamente, mis configuraciones son no correctas. No veo una forma de adjuntarlos a esta publicación, por lo que si la gente quiere recorrer este paso a paso, los cortaré y pegaré en un comentario para esta pregunta. De lo contrario, estoy abierto a tomar este 'fuera de línea' con un " DNS guy " para averiguar dónde me falta un '.' o tener uno demasiado!

Personalmente, creo que la web podría hacerlo con otro ejemplo de raíz interna que no haga uso del ejemplo de Movie-U.

Bien, si vamos a hacer esto, entonces deberíamos usar un ejemplo concreto, ¿eh? Tengo 3 máquinas configuradas en una VLAN privada para probar esto. Como prueba de validez, emparejé todas mis configuraciones relevantes, las condensé cuando pude y reubicé 2 de los nombres de los usuarios. Dejé fuera a Scratchy por ahora. Los mismos resultados que arriba. Aquí están las configuraciones y las salidas iniciales de excavación.


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

Salida de la excavación.

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

Salida de 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

Que pica

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

Salida de la excavación.

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

Salida de 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
¿Fue útil?

Solución

Al usar @, estás definiendo itchy.bogus. No puedes redefinirlo más abajo en la zona con la línea itchy.bogus.

Prueba esto:

@       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

Ya que este es el archivo de zona para itchy.bogus, debería hacer lo correcto.

Otros consejos

Suponiendo que haya comprobado todas las cosas obvias, como asegurarse de que el archivo de configuración de enlace principal sea lo que cree que es. En primer lugar, compruebe que los que cree que están usando son los correctos; a veces es fácil editar un archivo que está en el directorio incorrecto y se pregunta por qué no se notan los cambios.

También has usado named-checkconf y named-checkzone

Ya es bastante difícil depurar el enlace, pero sin ver los archivos de configuración es casi imposible, así que agrégalos a la publicación original.

(He agregado esto como un comentario a la pregunta - He publicado como respuesta porque el OP es nuevo aquí).

Cada uno de los 3 servidores debe tener el mismo archivo de sugerencias. Debe tener un registro NS para ". & Quot; con el nombre del servidor raíz y un registro A para ese nombre.

El servidor raíz debe tener el ". " configuración de la zona. El ". & Quot; la zona debe tener " falsa " con un registro de ns por si mismo. Luego debería tener registros A para box1.bogus yendo a box1 y box2.bogus yendo a box2.

Tenga en cuenta que no debe usar box1 y box2 como los nombres de host y los nombres de los dominios de segundo nivel. Digamos que los dominios son zone1.bogus y zone2.bogus en su lugar.

Así que box1 y box2 deberían estar en la zona falsa, con los registros A. zone1 y zone2 deben ser registros NS que apuntan a box1 y box2.

¿Borrar como barro? :)

Ok. Veo que has hecho tus configuraciones. Excelente.

Cambiaría la zona raíz de este 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

Creo que el problema es que estás delegando itchy.bogus, por lo que no puedes poner nombres dentro.

El " com " Los servidores de nombres, creo, usan sugerencias para que puedan servir los registros A para servidores de nombres para zonas delegadas, pero en su caso, es más limpio asegurarse de que cualquier zona dada que se esté sirviendo solo tenga delegaciones para subzonas Y hosts dentro de la actual zona.

Ahora, los problemas de mi delegación parecen estar resueltos, pero todavía estoy teniendo problemas con la búsqueda de raíz (lo cual pensé que sería muy fácil)

Creo que el problema se debe al hecho de que cuando cavo de la máquina que pica, obtengo un registro de autoridad en lugar de un registro de respuesta. Simplemente no estoy seguro de lo que hice (o no hice) para causar eso.

Si " cava [no args] " desde una máquina que utiliza el archivo de pistas típico de Internet, obtiene un bloque de respuestas para los servidores de nombres raíz y la traducción en la sección adicional.

si hago eso desde la máquina falsa (servidor de nombres raíz y TLD) obtengo

;; QUESTION SECTION:
;.                              IN      NS

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

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

Si hago eso desde la máquina que pica, obtengo

;; QUESTION SECTION:
;.                              IN      NS

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

;; Query time: 0 msec

Se vuelve más interesante si prueba dig + trace.

caja de Internet

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

Mi caja raíz 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

que pica

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

¿Por qué mi máquina orientada a Internet encuentra una SOA, pero ninguna de mis máquinas internas?

Al igual que el highlander, solo puede haber uno.

Al usar las sugerencias de raíz de Internet normales, se le impide más o menos que use su propia raíz interna, porque ninguno de los servidores de raíz de Internet reales conoce el " bogus " ;.

Su única opción sería reflejar la raíz ". " dentro de su ". " ;, pero luego agregue " bogus " lo. Haría esto volcando periódicamente la zona raíz y ejecutándola a través de algún procesamiento para agregarle su zona personalizada.

Algunos de los proveedores de raíz DNS alternativos hacen esto, pero proporcionan sugerencias de raíz para sus " clientes " para utilizar que no hace referencia a la " real " servidores raíz en absoluto.

... ¿Estoy entendiendo la pregunta correctamente? No estoy seguro.

cavar. @ 10.0.0.1 (falso) debe devolver registros autoritativos para '.', Ya que de hecho es autoritario para la zona.

cavar. @ 10.0.0.2 (picazón) no debe devolver registros autorizados para '.', Ya que no lo es. puede devolver un registro autoritativo la primera vez que solicite un nombre en la zona raíz, ya que tiene que repetir y obtener un registro autoritativo del servidor autoritativo. Pero si lo haces por segunda vez, obtendrás un resultado en caché y la bandera 'aa' estará clara.

Su servidor de nombres no usará la sugerencia para dar respuestas para excavar. Es decir, no devolverá la pista a la excavación como respuesta. Insistirá en consultar 10.0.0.1 para bogustld. No creo que hayas configurado un bogustld como una zona, simplemente un bogus.

Probablemente debería cambiar ns.bogustld a ns.bogus. Dé a 10.0.0.1 el nombre ns.bogus.

Alternativamente, puede agregar un registro NS y SOA en. para bogustld.

Si cavas ns1.bogus. @ 10.0.0.2, eso funciona, ¿correcto (asumiendo que la configuración anterior todavía está en su lugar)?

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top