Question

D'accord, je vais déclarer d'emblée que cette question est peut-être trop complexe (quantité de détails et non de complexité) pour ce support. Mais j’ai pensé que c’était le meilleur endroit pour commencer.

Je tente de mettre en place un projet de validation technique et ma configuration BIND est mon premier grand obstacle. Je veux installer 3 serveurs DNS sur 3 boîtes physiques. Aucune de ces boîtes ne doit résoudre les adresses publiques, il s'agit uniquement interne. J'ai lu la procédure d'installation des racines internes dans l'excellent DNS & amp; BIND 5th book. Mais ma traduction de leur exemple n'est pas fonctionnelle. Toutes les adresses IP sont RFC 1918 non routables.

La case 1 fera autorité pour les adresses du domaine box1.bogus et la case 2 fera autorité pour les adresses du domaine box2.bogus . La case 3 servira à la fois de racine interne et de serveur TLD pour le domaine Faux .

Problèmes actuels non résolus:

  • J'ai un fichier d'indices sur les cases 1 et 2 qui contient un seul enregistrement NS dans la définition NS de la zone racine. De plus, un enregistrement A traduit le NS en ip de la racine. si je dig. de la case 1, je reçois une section autorité avec le nom NS, pas une réponse et supplémentaire section d'enregistrement. Par conséquent, je ne parviens pas à résoudre l'adresse IP du serveur racine à partir de la case 1.

  • Si je pointe mon /etc/resolv.conf de la case 1 directement sur le serveur racine et fais un dig box1.bogus , je reçois le ns. box1.bogus réponse et la traduction dans la section supplémentaire . Cependant, lors de la prochaine itération (quand doit-on obtenir l'enregistrement A), j'obtiens dig: impossible d'obtenir l'adresse pour ns.box1.bogus

Évidemment, mes configurations ne sont pas correctes. Je ne vois pas comment les joindre à ce message. Par conséquent, si les gens veulent suivre cette étape par étape, je les copierai dans un commentaire pour cette question. Sinon, je suis prêt à prendre ce "hors connexion" avec un "gars de DNS". pour savoir où il me manque un '.' ou en avoir un de trop!

Personnellement, je pense que le Web pourrait s’en servir avec un autre exemple de racine interne qui n’utilise pas l’exemple Movie-U.

OK, si nous allons faire cela, alors nous devrions utiliser un exemple concret, hein? J'ai 3 machines installées sur un VLAN privé pour tester ceci. Pour vérifier l’état de santé, j’ai associé toutes mes configurations pertinentes, condensé lorsque cela était possible, et redéployé 2 des noms de joueurs. J'ai laissé Scratchy pour le moment. Mêmes résultats que ci-dessus. Voici les configs et les sorties de fouille initiales.

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
Était-ce utile?

La solution

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

Essayez ceci:

@       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

Puisqu'il s'agit du fichier de zone pour itchy.bogus, cela devrait faire le bon choix.

Autres conseils

En supposant que vous ayez vérifié toutes les choses évidentes - par exemple, vous assurer que le fichier de configuration de liaison principal correspond à ce que vous pensez. Commencez par vérifier que les fichiers que vous pensez nommés utilisent sont les bons. Il est parfois facile de modifier un fichier qui se trouve dans le mauvais répertoire et vous vous demandez pourquoi les modifications ne sont pas remarquées.

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

Il est assez difficile de déboguer la liaison, mais sans voir les fichiers de configuration, il est presque impossible, alors ajoutez-les à la publication originale.

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

Chacun des 3 serveurs doit avoir le même fichier d'indices. Il devrait avoir un enregistrement NS pour ". & Quot; avec le nom du serveur racine et un enregistrement A pour ce nom.

Le serveur racine doit avoir le ". " zone mise en place. Le ". & Quot; la zone doit avoir " fausse " avec un enregistrement ns pour lui-même. Il devrait alors 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ôte et comme noms de domaine de second niveau. Disons que les domaines sont zone1.bogus et zone2.bogus à la place.

Donc box1 et box2 doivent être dans la zone fictive, complétée par A records. zone1 et zone2 doivent être des enregistrements NS pointant vers box1 et box2.

Clair comme de la boue? :)

Ok. Je vois que vous avez ajouté vos configs. 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, vous ne pouvez donc pas y insérer de noms.

Le " com " Les serveurs de noms, je crois, utilisent des astuces pour pouvoir servir les enregistrements A pour les serveurs de noms des zones déléguées, mais dans votre cas, il est plus simple de s’assurer que chaque zone desservie ne comporte que des délégations pour les sous-zones ET les hôtes de la zone en cours. zone.

Maintenant, les problèmes de délégation semblent résolus, mais je continue à avoir des problèmes avec la recherche de racine (ce qui, à mon avis, serait trop facile.)

Je pense que le problème provient du fait que lorsque je creuse à partir de la machine qui démange, je reçois un enregistrement d’autorité au lieu d’un enregistrement de réponse. Je ne suis tout simplement pas sûr de ce que j'ai (ou n'a pas) provoqué.

Si vous "creusez [aucun argument]" " à partir d’une machine utilisant le fichier d’indices typique pour Internet, vous obtenez un bloc de réponses pour les serveurs de noms racine et la traduction dans la section complémentaire.

si je fais cela depuis la machine fictive (serveur de noms racine et TLD), je reçois

;; 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 cela depuis la machine qui pique, je reçois

;; QUESTION SECTION:
;.                              IN      NS

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

;; Query time: 0 msec

Cela devient 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 à racine 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 faisant face à Internet trouve-t-elle une SOA, mais aucune de mes machines internes?

Comme le highlander, il ne peut y avoir qu'un seul.

En utilisant les astuces de racine Internet habituelles, vous ne pouvez plus ou moins utiliser votre propre racine interne, car aucun des serveurs racine Internet ne connaît l'existence de "faux".

Votre seul choix serait de refléter la racine ". " zone à partir de votre ". " ;, puis ajoutez " fictif " à cela. Pour ce faire, effectuez régulièrement des vidages de la zone racine et exécutez-la au cours de certains traitements pour y ajouter votre zone personnalisée.

Certains des autres fournisseurs racine DNS le font, mais ils fournissent des indications de racine pour leurs "clients". à utiliser qui ne font pas référence à la "vraie" serveurs racine du tout.

... Est-ce que je comprends bien la question? Pas sûr.

creuser. @ 10.0.0.1 (faux) devrait renvoyer des enregistrements faisant autorité pour '.', Car ils font effectivement autorité pour la zone.

creuser. @ 10.0.0.2 (démangeaisons) ne doit pas renvoyer d'enregistrements faisant autorité pour '.', Car ce n'est pas le cas. Il peut renvoyer un enregistrement faisant autorité la première fois que vous interrogez un nom dans la zone racine, car il doit renvoyer et extraire un enregistrement faisant autorité du serveur faisant autorité. Mais si vous le faites une deuxième fois, vous obtiendrez un résultat en cache et l'indicateur "aa" sera dégagé.

Votre serveur de noms n'utilisera pas cet indice pour donner des réponses à dig. C'est-à-dire que cela ne donnera pas l'indice de creuser comme réponse. Il insistera pour interroger 10.0.0.1 pour bogustld. Je ne pense pas que vous ayez créé une zone, mais une fausse.

Vous devriez probablement changer ns.bogustld en ns.bogus. Attribuez à 10.0.0.1 le nom ns.bogus.

Vous pouvez également ajouter un enregistrement NS et SOA au format. pour bogustld.

Si vous creusez ns1.bogus. @ 10.0.0.2, ça marche, oui (en supposant que la configuration ci-dessus est toujours en place)?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top