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 undig 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 suivantsdig: 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