NSD » Historique » Version 8
alarig alarig, 27/09/2015 19:44
1 | 1 | alarig alarig | h1. NSD |
---|---|---|---|
2 | 1 | alarig alarig | |
3 | 1 | alarig alarig | "NSD":https://www.nlnetlabs.nl/projects/nsd/ est une alternative à bind pour la gestion d’une zone DNS |
4 | 1 | alarig alarig | |
5 | 1 | alarig alarig | h2. Principe général |
6 | 1 | alarig alarig | |
7 | 1 | alarig alarig | Un serveur de nom *primaire* pour une zone est un serveur hébergeant la zone déclarée en type « *master* » et étant déclaré en tant que « NS » pour cette zone. |
8 | 1 | alarig alarig | |
9 | 1 | alarig alarig | Un serveur de nom *secondaire* pour une zone est un serveur hébergeant la zone déclarée en type « *slave* » et étant déclaré en tant que « NS » pour cette zone. |
10 | 1 | alarig alarig | |
11 | 1 | alarig alarig | Du point de vue du client DNS, celui qui interroge le serveur pour résoudre un nom, il n'y a pas de notion de primaire ou secondaire. Tous les serveurs déclarés sur une zone seront interrogés tour à tout avec du round-robin pour répartir la charge. |
12 | 1 | alarig alarig | |
13 | 1 | alarig alarig | <pre> |
14 | 1 | alarig alarig | temps primaire secondaire |
15 | 1 | alarig alarig | | | | |
16 | 1 | alarig alarig | | [modification d'une zone] | |
17 | 1 | alarig alarig | | | | |
18 | 1 | alarig alarig | | |-----notificaiton---->| |
19 | 1 | alarig alarig | | | NOTIFY | |
20 | 1 | alarig alarig | | | | |
21 | 1 | alarig alarig | | |<---téléchargement----| |
22 | 1 | alarig alarig | | | AXFR/IXFR | |
23 | 1 | alarig alarig | | | | |
24 | 1 | alarig alarig | | | | |
25 | 1 | alarig alarig | | | | |
26 | 1 | alarig alarig | | | [expiration du TTL] |
27 | 1 | alarig alarig | | | | |
28 | 1 | alarig alarig | | |<---téléchargement----| |
29 | 1 | alarig alarig | | | AXFR/IXFR | |
30 | 1 | alarig alarig | | | | |
31 | 1 | alarig alarig | v v v |
32 | 1 | alarig alarig | </pre> |
33 | 1 | alarig alarig | |
34 | 1 | alarig alarig | Le serveur secondaire télécharge la zone depuis le primaire dans deux cas : |
35 | 1 | alarig alarig | |
36 | 1 | alarig alarig | * La zone a été modifiée sur le primaire. Celui-ci notifie alors le secondaire de la présence d'une nouvelle version de la zone. Le secondaire initie le téléchargement par une requête AXFR (transfert de la zone complète) ou IXFR (transfert incrémental). |
37 | 1 | alarig alarig | * Le TTL (Time To Live) expire sur le serveur secondaire. Celui-ci récupère une version fraîche de la zone depuis le primaire (idem, AXFR ou IXFR). |
38 | 1 | alarig alarig | |
39 | 1 | alarig alarig | Il est possible de forcer l'envoi d'une notification depuis le primaire afin de mettre à jour les zones sur tous les secondaires configurés. Cela est utile dans le cas où le(s) secondaire(s) étaient inaccessibles au moment de la mise à jour d'une zone. Cela permet de ne pas avoir à attendre l'expiration du TTL sur les secondaires. |
40 | 1 | alarig alarig | |
41 | 1 | alarig alarig | Dans le cas d'un transfert incrémental (IXFR), le serveur secondaire indique au primaire le numéro de série de la zone qu'il connaît et le serveur primaire retourne uniquement les différences avec la zone active. |
42 | 1 | alarig alarig | |
43 | 1 | alarig alarig | h2. Installation de NSD |
44 | 2 | alarig alarig | |
45 | 1 | alarig alarig | Ce guide est écrit pour nsd4 et debian jessie, mais ça ne change pas grand chose avec nsd3 et debian wheezy (ou même gentoo ou arch) |
46 | 1 | alarig alarig | <pre> |
47 | 1 | alarig alarig | root@debianjessie:~ # apt-get install nsd |
48 | 1 | alarig alarig | </pre> |
49 | 1 | alarig alarig | |
50 | 1 | alarig alarig | h3. Configuration de NSD |
51 | 2 | alarig alarig | |
52 | 1 | alarig alarig | <pre> |
53 | 1 | alarig alarig | root@debianjessie:~# vim /etc/nsd/nsd.conf |
54 | 1 | alarig alarig | </pre> |
55 | 1 | alarig alarig | |
56 | 1 | alarig alarig | Votre fichier de configuration doit ressembler à un truc du genre : |
57 | 3 | alarig alarig | <pre> |
58 | 1 | alarig alarig | server: |
59 | 1 | alarig alarig | ip-address: 192.0.2.1 |
60 | 1 | alarig alarig | ip-address: 198.51.100.1 |
61 | 1 | alarig alarig | ip-address: 2001:db8:1::192 |
62 | 1 | alarig alarig | ip-address: 2001:db8:3::198 |
63 | 1 | alarig alarig | port: 53 |
64 | 1 | alarig alarig | |
65 | 1 | alarig alarig | # ici ça va jouer sur ce qu’un nmap verra |
66 | 1 | alarig alarig | hide-version: no |
67 | 1 | alarig alarig | identity: "Mon cher petit poney, voilà qui va éclairer ton nmap" |
68 | 1 | alarig alarig | |
69 | 1 | alarig alarig | # Si l’on veut logguer les requêtes et faire des statistiques |
70 | 1 | alarig alarig | logfile: "/var/log/nsd.log" |
71 | 1 | alarig alarig | statistics: 3600 |
72 | 1 | alarig alarig | |
73 | 1 | alarig alarig | pidfile: "/var/run/nsd/nsd.pid" |
74 | 1 | alarig alarig | |
75 | 1 | alarig alarig | # nombre de serveurs démarrés |
76 | 1 | alarig alarig | server-count: 1 |
77 | 1 | alarig alarig | |
78 | 1 | alarig alarig | username: nsd |
79 | 1 | alarig alarig | |
80 | 1 | alarig alarig | zonesdir: "/etc/nsd/" |
81 | 1 | alarig alarig | xfrdfile: "/var/lib/nsd/xfrd.state" |
82 | 1 | alarig alarig | verbosity: 0 |
83 | 5 | alarig alarig | |
84 | 5 | alarig alarig | # Nombre de requêtes par seconde et par IP, voir https://www.nlnetlabs.nl/blog/2012/10/11/nsd-ratelimit/ |
85 | 1 | alarig alarig | rrl-ratelimit: 20 |
86 | 1 | alarig alarig | |
87 | 1 | alarig alarig | remote-control: |
88 | 1 | alarig alarig | # Enable remote control with nsd-control(8) here. |
89 | 1 | alarig alarig | # set up the keys and certificates with nsd-control-setup. |
90 | 1 | alarig alarig | control-enable: yes |
91 | 1 | alarig alarig | |
92 | 1 | alarig alarig | # what interfaces are listened to for control, default is on localhost. |
93 | 1 | alarig alarig | control-interface: 127.0.0.1 |
94 | 1 | alarig alarig | control-interface: ::1 |
95 | 1 | alarig alarig | |
96 | 1 | alarig alarig | # port number for remote control operations (uses TLS over TCP). |
97 | 1 | alarig alarig | control-port: 8952 |
98 | 1 | alarig alarig | |
99 | 1 | alarig alarig | # nsd server key file for remote control. |
100 | 1 | alarig alarig | server-key-file: "/etc/nsd/nsd_server.key" |
101 | 1 | alarig alarig | |
102 | 1 | alarig alarig | # nsd server certificate file for remote control. |
103 | 1 | alarig alarig | server-cert-file: "/etc/nsd/nsd_server.pem" |
104 | 1 | alarig alarig | |
105 | 1 | alarig alarig | # nsd-control key file. |
106 | 1 | alarig alarig | control-key-file: "/etc/nsd/nsd_control.key" |
107 | 1 | alarig alarig | |
108 | 1 | alarig alarig | # nsd-control certificate file. |
109 | 1 | alarig alarig | control-cert-file: "/etc/nsd/nsd_control.pem" |
110 | 1 | alarig alarig | |
111 | 1 | alarig alarig | key: |
112 | 1 | alarig alarig | name: tsig-name |
113 | 1 | alarig alarig | algorithm: hmac-sha256 |
114 | 1 | alarig alarig | secret: "secret" |
115 | 1 | alarig alarig | |
116 | 1 | alarig alarig | ### masters ### |
117 | 1 | alarig alarig | |
118 | 1 | alarig alarig | zone: |
119 | 4 | alarig alarig | name: "swordarmor.fr" |
120 | 4 | alarig alarig | zonefile: "swordarmor.fr.zone" |
121 | 1 | alarig alarig | |
122 | 1 | alarig alarig | notify: 2a01:6600:8081:c600::1 NOKEY |
123 | 1 | alarig alarig | provide-xfr: 2a01:6600:8081:c600::1 NOKEY |
124 | 1 | alarig alarig | notify: 217.70.177.40 NOKEY |
125 | 1 | alarig alarig | provide-xfr: 217.70.177.40 NOKEY |
126 | 1 | alarig alarig | notify: 2001:910:1318::1 tsig-name |
127 | 1 | alarig alarig | provide-xfr: 2001:910:1318::1 tsig-name |
128 | 1 | alarig alarig | |
129 | 1 | alarig alarig | |
130 | 1 | alarig alarig | ### reverses ### |
131 | 1 | alarig alarig | |
132 | 1 | alarig alarig | # ttn.swordarmor.fr v4 (délégation sur CNAME) |
133 | 1 | alarig alarig | zone: |
134 | 1 | alarig alarig | name: "198/32.149.224.91.in-addr.arpa" |
135 | 1 | alarig alarig | zonefile: "ttn.swordarmor.fr.reversev4" |
136 | 1 | alarig alarig | |
137 | 1 | alarig alarig | notify: 2a01:6600:8081:c600::1 NOKEY |
138 | 1 | alarig alarig | provide-xfr: 2a01:6600:8081:c600::1 NOKEY |
139 | 1 | alarig alarig | |
140 | 1 | alarig alarig | # ttn.swordarmor.fr v6 |
141 | 1 | alarig alarig | zone: |
142 | 1 | alarig alarig | name: "6.c.1.8.0.8.0.0.6.6.1.0.a.2.ip6.arpa" |
143 | 1 | alarig alarig | zonefile: "ttn.swordarmor.fr.reversev6" |
144 | 1 | alarig alarig | |
145 | 1 | alarig alarig | notify: 2a01:6600:8081:c600::1 NOKEY |
146 | 1 | alarig alarig | provide-xfr: 2a01:6600:8081:c600::1 NOKEY |
147 | 1 | alarig alarig | |
148 | 1 | alarig alarig | |
149 | 1 | alarig alarig | |
150 | 1 | alarig alarig | ### slaves ### |
151 | 1 | alarig alarig | zone: |
152 | 1 | alarig alarig | name: "gozmail.net" |
153 | 1 | alarig alarig | zonefile: "gozmail.net.zone" |
154 | 1 | alarig alarig | |
155 | 1 | alarig alarig | allow-notify: 2a02:a80:0:2216::2 NOKEY |
156 | 1 | alarig alarig | request-xfr: 2a02:a80:0:2216::2 NOKEY |
157 | 1 | alarig alarig | |
158 | 1 | alarig alarig | notify-retry: 5 |
159 | 1 | alarig alarig | </pre> |
160 | 4 | alarig alarig | |
161 | 6 | alarig alarig | h3. Redémarrage |
162 | 6 | alarig alarig | |
163 | 4 | alarig alarig | Une fois les modifications faites, il faut redémarrer NSD pour qu’elles soient prises en compte : |
164 | 4 | alarig alarig | <pre> |
165 | 4 | alarig alarig | root@debianjessie:~# service nsd restart |
166 | 4 | alarig alarig | </pre> |
167 | 4 | alarig alarig | |
168 | 4 | alarig alarig | h2. Exemples de zones |
169 | 6 | alarig alarig | |
170 | 4 | alarig alarig | h3. Zone principale (master) |
171 | 4 | alarig alarig | |
172 | 6 | alarig alarig | Pour savoir comment remplir le SOA, je vous conseille de jeter un œil à "l’artcile wikipédia":https://fr.wikipedia.org/wiki/DNS#SOA_record |
173 | 8 | alarig alarig | Le format des zones est le même qu’avec [[Bind]] |
174 | 6 | alarig alarig | <pre> |
175 | 6 | alarig alarig | $TTL 10800 |
176 | 6 | alarig alarig | @ IN SOA pokedex.swordarmor.fr. hostmaster.swordarmor.fr. ( |
177 | 6 | alarig alarig | 148 ; Serial |
178 | 6 | alarig alarig | 3600 ; Refresh [1h] |
179 | 6 | alarig alarig | 900 ; Retry [15m] |
180 | 6 | alarig alarig | 604800 ; Expire [1w] |
181 | 6 | alarig alarig | 600 ; Negative Cache TTL [10m] |
182 | 6 | alarig alarig | ) |
183 | 6 | alarig alarig | IN NS pokedex.swordarmor.fr. |
184 | 6 | alarig alarig | IN NS alarig.tetaneutral.net. |
185 | 6 | alarig alarig | IN NS pokedex.glucas.fr. |
186 | 6 | alarig alarig | IN MX 1 pokedex.swordarmor.fr. |
187 | 6 | alarig alarig | IN MX 5 ttn.swordarmor.fr. |
188 | 6 | alarig alarig | IN SPF "v=spf1 mx -all" |
189 | 6 | alarig alarig | |
190 | 6 | alarig alarig | pokedex 10800 IN A 89.234.140.133 |
191 | 6 | alarig alarig | 10800 IN AAAA 2001:470:1f13:138:715d:2fa0:b591:532f |
192 | 6 | alarig alarig | 10800 IN AAAA 2a00:5881:4008:400::1 |
193 | 6 | alarig alarig | 10800 IN AAAA 2a01:240:fe00:82af:764f:b47e:d131:85e4 |
194 | 6 | alarig alarig | |
195 | 6 | alarig alarig | courriel IN A 91.224.149.198 |
196 | 6 | alarig alarig | A 89.234.140.133 |
197 | 6 | alarig alarig | AAAA 2a01:6600:8081:c600::1 |
198 | 6 | alarig alarig | AAAA 2001:470:1f13:138:715d:2fa0:b591:532f |
199 | 6 | alarig alarig | AAAA 2a00:5881:4008:400::1 |
200 | 6 | alarig alarig | AAAA 2a01:240:fe00:82af:764f:b47e:d131:85e4 |
201 | 6 | alarig alarig | |
202 | 6 | alarig alarig | vote 10800 IN CNAME pokedex |
203 | 6 | alarig alarig | |
204 | 6 | alarig alarig | $ORIGIN _domainkey.swordarmor.fr. |
205 | 6 | alarig alarig | _adsp 10800 IN TXT "all" |
206 | 6 | alarig alarig | default 10800 IN TXT "v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCfU42VmyfgW7S2Oui8ksSfJwQCfz0jWupl/cJI1Z7wV5o3FNo+DPOz/tpeGtsbYX11xK5AXjzaV4xnI5jGajQvxAYsER0Qbg8LPS9ShPIYrrJHeE30ktWdHr8dQKgrJVw4ZIx2kUpfnLwZkm+MqnVDTzDDhHBEc9vo3P29fQC2RwIDAQAB" |
207 | 6 | alarig alarig | |
208 | 6 | alarig alarig | ; reste de la zone |
209 | 6 | alarig alarig | |
210 | 6 | alarig alarig | </pre> |
211 | 6 | alarig alarig | |
212 | 4 | alarig alarig | h3. Zone secondaire (slave) |
213 | 4 | alarig alarig | |
214 | 4 | alarig alarig | Dans le cas d’une zone secondaire, c’est le serveur principal et qui envoie la zone, et votre serveur l’écrit tout seul où on lui a demandé |
215 | 1 | alarig alarig | |
216 | 6 | alarig alarig | h3. Zone reverse v4 |
217 | 1 | alarig alarig | |
218 | 6 | alarig alarig | Reverse pour 91.224.149.198 (ancien modèle) |
219 | 6 | alarig alarig | <pre> |
220 | 6 | alarig alarig | $ORIGIN 149.224.91.in-addr.arpa. |
221 | 6 | alarig alarig | 198\04732 864000 IN SOA ns0.swordarmor.fr. hostmaster.swordarmor.fr. ( |
222 | 6 | alarig alarig | 2 3600 900 1209600 43200 ) |
223 | 6 | alarig alarig | 864000 IN NS ns1.pennvad.eu. |
224 | 6 | alarig alarig | 864000 IN NS alarig.tetaneutral.net. |
225 | 6 | alarig alarig | $ORIGIN 198\04732.149.224.91.in-addr.arpa. |
226 | 6 | alarig alarig | 198 864000 IN PTR ttn.swordarmor.fr. |
227 | 6 | alarig alarig | </pre> |
228 | 6 | alarig alarig | |
229 | 6 | alarig alarig | h3. Zone reverse v6 |
230 | 6 | alarig alarig | |
231 | 6 | alarig alarig | <pre> |
232 | 6 | alarig alarig | $ORIGIN 5.c.3.8.c.b.0.1.0.0.2.ip6.arpa. |
233 | 6 | alarig alarig | 6 864000 IN SOA ns1.pennvad.eu. hostmaster.swordarmor.fr. ( |
234 | 6 | alarig alarig | 5 3600 900 1209600 43200 ) |
235 | 6 | alarig alarig | 864000 IN NS ns1.pennvad.eu. |
236 | 6 | alarig alarig | 864000 IN NS ttn.swordarmor.fr. |
237 | 6 | alarig alarig | $ORIGIN 0.1.0.6.5.c.3.8.c.b.0.1.0.0.2.ip6.arpa. |
238 | 6 | alarig alarig | 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0 864000 IN PTR ginette.swordarmor.fr. |
239 | 6 | alarig alarig | 2.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.1 864000 IN PTR rodolphe.swordarmor.fr. |
240 | 6 | alarig alarig | 3.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.1 864000 IN PTR robert.swordarmor.fr. |
241 | 6 | alarig alarig | </pre> |
242 | 6 | alarig alarig | |
243 | 4 | alarig alarig | h2. Commandes principales |
244 | 1 | alarig alarig | |
245 | 6 | alarig alarig | * nsd-control reload : recharger une zone après modification, bien penser à incrémenter le SOA avant |
246 | 6 | alarig alarig | Exemples : |
247 | 6 | alarig alarig | <pre> |
248 | 6 | alarig alarig | nsd-control reload swordarmor.fr |
249 | 6 | alarig alarig | nsd-control reload 6.5.c.3.8.c.b.0.1.0.0.2.ip6.arpa |
250 | 6 | alarig alarig | </pre> |
251 | 6 | alarig alarig | * nsd-control force_transfer : Forcer la mise à jour d’une zone vers les escalves |
252 | 6 | alarig alarig | Exemples : |
253 | 7 | alarig alarig | <pre> |
254 | 6 | alarig alarig | nsd-control force_transfer swordarmor.fr # pour swordarmor.fr |
255 | 6 | alarig alarig | nsd-control force_transfer # pour toutes les zones |
256 | 6 | alarig alarig | </pre> |
257 | 6 | alarig alarig | |
258 | 4 | alarig alarig | h2. Notes complémentaires |
259 | 1 | alarig alarig | |
260 | 6 | alarig alarig | NSD a l’avantage d’être plus léger que bind, en grande partie car il n’est pas récursif, il ne fait que autorité. Si vous voulez installer un serveur récursif, son frère est unbound. |
261 | 5 | alarig alarig | Voir aussi "le blog Bortz":https://www.bortzmeyer.org/nsd4.html |