1 votes

Problèmes de configuration du DNS interne

D'accord, je vais dire d'emblée que cette question est peut-être trop complexe (quantité de détails, mais pas complexité) pour ce média. Mais je me suis dit que c'était le meilleur endroit pour commencer.

J'essaie de mettre en place un projet de validation de concept et ma configuration de BIND est mon premier gros obstacle. Je veux configurer 3 serveurs DNS sur 3 boîtes physiques. Aucun de ces boîtes doit résoudre des adresses publiques, il s'agit d'une adresse interne. sólo . J'ai lu comment configurer les racines internes dans le (presque) excellent livre DNS & BIND 5th ed. Mais ma traduction de leur exemple n'est pas fonctionnelle. Toutes les IP sont RFC 1918 non-routables.

La boîte 1 fera autorité pour les adresses sur le site de l box1.bogus et la boîte 2 fera autorité pour les adresses sur le domaine box2.bogus domaine. La boîte 3 servira à la fois de racine interne et de serveur TLD pour le domaine. faux .

Questions actuelles non résolues :

  • J'ai un fichier d'indices sur les boîtes 1 et 2 qui contient un seul fichier d'indices. NS à la définition NS de la zone Root. De plus, il existe un enregistrement A qui traduit le NS en l'IP de la racine. dig . à partir de la boîte 1, j'obtiens un autorité Section avec le nom du NS, pas un réponse y adicional section d'enregistrement. Par conséquent, je ne suis pas en mesure de résoudre l'adresse IP du serveur racine de la boîte 1.

  • Si je pointe mon /etc/resolv.conf de la boîte 1 directement au serveur Root et faire un dig box1.bogus Je reçois le ns.box1.bogus réponse et la traduction dans le adicional section. Cependant, à l'itération suivante (lorsque je devrais obtenir l'enregistrement A), j'obtiens les résultats suivants dig: couldn't get address for ns.box1.bogus

Mes configurations sont évidemment no correct. Je ne vois pas comment les joindre à ce message, donc si les gens veulent suivre cette procédure pas à pas, je les couperai et les collerai dans un commentaire pour cette question. Sinon, je suis ouvert à l'idée de prendre cette question "hors ligne" avec un "spécialiste des DNS" pour déterminer où il me manque un "." ou si j'en ai un de trop !

Personnellement, je pense que le web pourrait avoir besoin d'un autre exemple de racine interne qui ne fasse pas appel à l'exemple de Movie-U.

OK, si nous devons faire cela, alors nous devrions utiliser un exemple concret, non ? J'ai 3 machines installées sur un VLAN privé pour tester ceci. Pour vérifier que tout va bien, j'ai regroupé toutes mes configurations pertinentes, condensé quand c'était possible, et redéployé 2 des serveurs de noms. J'ai laissé de côté Scratchy pour le moment. Les résultats sont les mêmes que ci-dessus. Voici les configurations et les résultats de la recherche initiale.


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

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

Sortie 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

Démangeaisons

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

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

Sortie 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

1voto

nsayer Points 5594

En utilisant @, vous définissez itchy.bogus. Vous ne pouvez pas ensuite le redéfinir plus bas dans la zone avec la ligne itchy.bogus.

Essayez ça :

@       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

Comme c'est le fichier de zone pour itchy.bogus, ça devrait faire l'affaire.

0voto

Richard Harrison Points 14891

En supposant que vous avez vérifié toutes les choses évidentes - comme s'assurer que le fichier de configuration principal de bind est ce que vous pensez qu'il est. Vérifiez d'abord que les fichiers que vous pensez que named utilise sont les bons - il est parfois facile d'éditer un fichier qui se trouve dans le mauvais répertoire et de se demander pourquoi les changements ne sont pas remarqués.

Avez-vous utilisé named-checkconf et named-checkzone ?

Il est déjà assez difficile de déboguer bind, mais sans voir les fichiers de configuration, c'est presque impossible, alors veuillez les ajouter au message original.

(J'ai ajouté ceci comme commentaire à la question - j'ai posté comme réponse parce que le PO est nouveau ici).

0voto

nsayer Points 5594

Chacun des 3 serveurs doit avoir le même fichier hints. Il doit avoir un enregistrement NS pour "." avec le nom du serveur racine et un enregistrement A pour ce nom.

La zone "." doit être configurée sur le serveur racine. La zone "." doit avoir "bogus" avec un enregistrement ns pour lui-même. Il doit ensuite avoir des enregistrements A pour box1.bogus allant à box1 et box2.bogus allant à box2.

Notez que vous ne devez pas utiliser box1 et box2 à la fois comme noms d'hôtes et comme noms de domaines de deuxième niveau. Disons que les domaines sont plutôt zone1.bogus et zone2.bogus.

Ainsi, box1 et box2 devraient se trouver dans la zone fictive, avec des enregistrements A. zone1 et zone2 devraient être des enregistrements NS pointant vers box1 et box2.

Clair comme de l'eau de roche ? :)

0voto

nsayer Points 5594

Ok. Je vois que vous avez ajouté vos configurations. Excellent.

Je changerais la zone racine comme suit :

;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

Je pense que le problème est que vous déléguez itchy.bogus, donc vous ne pouvez pas y mettre de noms.

Les serveurs de noms "com", je crois, utilisent des indices pour pouvoir servir les enregistrements A des serveurs de noms pour les zones déléguées, mais dans votre cas, il est simplement plus propre de s'assurer que toute zone donnée servie n'a que des délégations pour les sous-zones ET les hôtes dans la zone actuelle.

0voto

ionick Points 13

Maintenant, mes problèmes de délégation semblent résolus, mais j'ai toujours des problèmes avec la recherche de la racine (que je pensais être si facile).

Je pense que le problème vient du fait que quand je dig de la machine à démanger, je reçois un enregistrement d'autorité au lieu d'un enregistrement de réponse. Je ne suis pas sûr de ce que j'ai fait (ou n'ai pas fait) pour provoquer cela.

Si vous "dig [no args]" à partir d'une machine utilisant le fichier d'indices typique pour l'internet, vous obtenez un bloc de réponses pour les serveurs de noms racine et la traduction dans la section supplémentaire.

si je fais cela à partir de la fausse machine (racine et serveur de noms TLD), j'obtiens

;; QUESTION SECTION:
;.                              IN      NS

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

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

Si je fais ça à partir de la machine qui me démange, j'obtiens

;; QUESTION SECTION:
;.                              IN      NS

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

;; Query time: 0 msec

C'est plus intéressant si vous essayez dig +trace .

Boîte 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

Ma boîte Root interne (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

Démangeaisons

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

Pourquoi ma machine connectée à Internet trouve-t-elle un SOA, mais aucune de mes machines internes ?

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X