Projet

Général

Profil

AdminDNS » Historique » Version 4

Fabien Dupont, 11/11/2012 17:52

1 1 Fabien Dupont
h1. Administration des DNS
2 1 Fabien Dupont
3 1 Fabien Dupont
{{>toc}}
4 1 Fabien Dupont
5 1 Fabien Dupont
h2. Architecture générale des DNS de Tetaneutral.net
6 1 Fabien Dupont
7 1 Fabien Dupont
Les NS de l'association gèrent les 8 domaines suivants :
8 1 Fabien Dupont
9 1 Fabien Dupont
* as197422.net
10 1 Fabien Dupont
* tetaneutral.biz
11 1 Fabien Dupont
* tetaneutral.com
12 1 Fabien Dupont
* tetaneutral.eu
13 1 Fabien Dupont
* tetaneutral.fr
14 1 Fabien Dupont
* tetaneutral.info
15 1 Fabien Dupont
* tetaneutral.net + ipv6.tetaneutral.net
16 1 Fabien Dupont
* tetaneutral.org
17 1 Fabien Dupont
18 1 Fabien Dupont
Tous ces domaines sont hébergés sur ns1.nomdudomaine.tld (ex: ns1.tetaneutral.net) qui, physiquement est gw.
19 1 Fabien Dupont
20 1 Fabien Dupont
De plus, ces zones ont pour NS secondaire : ns2.nomdudomaine.tld, qui est aussi gw temporairement, ns3.nomdudomaine.tld qui est la VM que l'on a chez grenode et ns6.gandi.net (sauf pour ipv6.tetaneutral.net), le secondaire de gandi.
21 1 Fabien Dupont
22 1 Fabien Dupont
De plus, les NS gère les zones reverse suivantes :
23 1 Fabien Dupont
24 1 Fabien Dupont
* 0.0.0.8.0.0.6.6.1.0.a.2.ip6.arpa
25 1 Fabien Dupont
* 0.8.0.0.6.6.1.0.a.2.ip6.arpa
26 1 Fabien Dupont
* 0.8.0.8.0.0.6.6.1.0.a.2.ip6.arpa
27 1 Fabien Dupont
* 1.8.0.8.0.0.6.6.1.0.a.2.ip6.arpa
28 1 Fabien Dupont
* 148.224.91.in-addr.arpa
29 1 Fabien Dupont
* 149.224.91.in-addr.arpa
30 1 Fabien Dupont
* 236.213.91.in-addr.arpa
31 4 Fabien Dupont
* 40/32.110.216.91.in-addr.arpa. ("délégation classless":http://chiliproject.tetaneutral.net/projects/tetaneutral/wiki/Bind#D%C3%A9l%C3%A9gation-dun-reverse-%C2%AB-classless-%C2%BB du reverse de la VM Grenode)
32 1 Fabien Dupont
33 1 Fabien Dupont
Elles sont toutes sur ns1.tetaneutral.net (gw), ns2.tetaneutral.net (gw aussi) et ns3.tetaneutral.net (grenode) mais pas gandi.
34 1 Fabien Dupont
35 1 Fabien Dupont
<pre>
36 1 Fabien Dupont
                                                   .-------------------------------------.
37 1 Fabien Dupont
                                                   |         Serveur secondaire          |
38 1 Fabien Dupont
                                                   |          ns2.tetaneutral.*          |
39 1 Fabien Dupont
                                                   |                (gw)                 |
40 1 Fabien Dupont
                                                   | S: as197422.net                     |
41 1 Fabien Dupont
                                                   | S: ipv6.tetaneutral.net             |
42 1 Fabien Dupont
                                                   | S: tetaneutral.biz                  |
43 1 Fabien Dupont
                                                   | S: tetaneutral.com                  |
44 1 Fabien Dupont
                                                   | S: tetaneutral.eu                   |
45 1 Fabien Dupont
                                                   | S: tetaneutral.fr                   |
46 1 Fabien Dupont
                     .---------------------------->| S: tetaneutral.info                 |
47 1 Fabien Dupont
                     |                             | S: tetaneutral.net                  |
48 1 Fabien Dupont
                     |                             | S: tetaneutral.org                  |
49 1 Fabien Dupont
                     |                             | S: 0.0.0.8.0.0.6.6.1.0.a.2.ip6.arpa |
50 1 Fabien Dupont
                     |                             | S: 0.8.0.0.6.6.1.0.a.2.ip6.arpa     |
51 1 Fabien Dupont
                     |                             | S: 0.8.0.8.0.0.6.6.1.0.a.2.ip6.arpa |
52 1 Fabien Dupont
                     |                             | S: 1.8.0.8.0.0.6.6.1.0.a.2.ip6.arpa |
53 1 Fabien Dupont
                     |                             | S: 148.224.91.in-addr.arpa          |
54 1 Fabien Dupont
                     |                             | S: 149.224.91.in-addr.arpa          |
55 1 Fabien Dupont
                     |                             | S: 236.213.91.in-addr.arpa          |
56 4 Fabien Dupont
                     |                             | S: 40/32.110.216.91.in-addr.arpa    |
57 1 Fabien Dupont
                     |                             '-------------------------------------'
58 1 Fabien Dupont
                     |
59 1 Fabien Dupont
  .-------------------------------------.          .-------------------------------------.
60 1 Fabien Dupont
  |          Serveur primaire           |          |         Serveur secondaire          |
61 1 Fabien Dupont
  |          ns1.tetaneutral.*          |          |          ns3.tetaneutral.*          |
62 1 Fabien Dupont
  |                (gw)                 |          |              (grenode)              |
63 1 Fabien Dupont
  | P: as197422.net                     |          | S: as197422.net                     |
64 1 Fabien Dupont
  | P: ipv6.tetaneutral.net             |          | S: ipv6.tetaneutral.net             |
65 1 Fabien Dupont
  | P: tetaneutral.biz                  |          | S: tetaneutral.biz                  |
66 1 Fabien Dupont
  | P: tetaneutral.com                  |          | S: tetaneutral.com                  |
67 1 Fabien Dupont
  | P: tetaneutral.eu                   |          | S: tetaneutral.eu                   |
68 1 Fabien Dupont
  | P: tetaneutral.fr                   |          | S: tetaneutral.fr                   |
69 1 Fabien Dupont
  | P: tetaneutral.info                 |--------->| S: tetaneutral.info                 |
70 1 Fabien Dupont
  | P: tetaneutral.net                  |          | S: tetaneutral.net                  |
71 1 Fabien Dupont
  | P: tetaneutral.org                  |          | S: tetaneutral.org                  |
72 1 Fabien Dupont
  | P: 0.0.0.8.0.0.6.6.1.0.a.2.ip6.arpa |          | S: 0.0.0.8.0.0.6.6.1.0.a.2.ip6.arpa |
73 1 Fabien Dupont
  | P: 0.8.0.0.6.6.1.0.a.2.ip6.arpa     |          | S: 0.8.0.0.6.6.1.0.a.2.ip6.arpa     |
74 1 Fabien Dupont
  | P: 0.8.0.8.0.0.6.6.1.0.a.2.ip6.arpa |          | S: 0.8.0.8.0.0.6.6.1.0.a.2.ip6.arpa |
75 1 Fabien Dupont
  | P: 1.8.0.8.0.0.6.6.1.0.a.2.ip6.arpa |          | S: 1.8.0.8.0.0.6.6.1.0.a.2.ip6.arpa |
76 1 Fabien Dupont
  | P: 148.224.91.in-addr.arpa          |          | S: 148.224.91.in-addr.arpa          |
77 1 Fabien Dupont
  | P: 149.224.91.in-addr.arpa          |          | S: 149.224.91.in-addr.arpa          |
78 1 Fabien Dupont
  | P: 236.213.91.in-addr.arpa          |          | S: 236.213.91.in-addr.arpa          |
79 4 Fabien Dupont
  | P: 40/32.110.216.91.in-addr.arpa    |          | S: 40/32.110.216.91.in-addr.arpa    |
80 1 Fabien Dupont
  '-------------------------------------'          '-------------------------------------'
81 1 Fabien Dupont
                     |
82 1 Fabien Dupont
                     |                             .-------------------------------------.
83 1 Fabien Dupont
                     |                             |         Serveur secondaire          |
84 1 Fabien Dupont
                     |                             |            ns6.gandi.net            |
85 1 Fabien Dupont
                     |                             |               (gandi)               |
86 1 Fabien Dupont
                     |                             | S: as197422.net                     |
87 1 Fabien Dupont
                     |                             | S: tetaneutral.biz                  |
88 1 Fabien Dupont
                     '---------------------------->| S: tetaneutral.com                  |
89 1 Fabien Dupont
                                                   | S: tetaneutral.eu                   |
90 1 Fabien Dupont
                                                   | S: tetaneutral.fr                   |
91 1 Fabien Dupont
                                                   | S: tetaneutral.info                 |
92 1 Fabien Dupont
                                                   | S: tetaneutral.net                  |
93 1 Fabien Dupont
                                                   | S: tetaneutral.org                  |
94 1 Fabien Dupont
                                                   '-------------------------------------'
95 1 Fabien Dupont
</pre>
96 1 Fabien Dupont
97 1 Fabien Dupont
h2. Modification d'une zone
98 1 Fabien Dupont
99 1 Fabien Dupont
Concrètement les zones sont stockée dans le "repository GIT bind-zones":http://git.tetaneutral.net/bind-zones.git/.
100 1 Fabien Dupont
101 1 Fabien Dupont
Pour modifier une zone, il faut donc cloner le repository, modifier la zone (penser à incrémenter le serial), commiter/pusher la modification puis lancer l'agent puppet sur gw.
102 1 Fabien Dupont
103 1 Fabien Dupont
h3. Clonage du repository
104 1 Fabien Dupont
105 1 Fabien Dupont
<pre>
106 1 Fabien Dupont
$ git clone ssh://git@git.tetaneutral.net/bind-zones
107 1 Fabien Dupont
</pre>
108 1 Fabien Dupont
109 1 Fabien Dupont
Les zones sont rangées et nommées de la façon suivante : [nom de la vue bind]/[nom de la zone].zone.
110 1 Fabien Dupont
111 1 Fabien Dupont
Ici, il n'y a qu'une vue bind appelée « wan ».
112 1 Fabien Dupont
113 1 Fabien Dupont
h3. Modification d'un zone
114 1 Fabien Dupont
115 1 Fabien Dupont
Avant de modifier une zone, il faut bien s'assurer qu'on est sur la dernier commit du repository (sinon, c'est la fête au conflit) :
116 1 Fabien Dupont
117 1 Fabien Dupont
<pre>
118 1 Fabien Dupont
$ git pull
119 1 Fabien Dupont
Already up-to-date.
120 1 Fabien Dupont
</pre>
121 1 Fabien Dupont
122 2 Fabien Dupont
Ensuite, il suffit de modifier le fichier wan/nomdelazone.zone (ici, pour ajouter zorglub.tetaneutral.net) :
123 1 Fabien Dupont
<pre>
124 1 Fabien Dupont
$ vi wan/tetaneutral.net.zone
125 1 Fabien Dupont
$ git diff
126 1 Fabien Dupont
diff --git a/wan/tetaneutral.net.zone b/wan/tetaneutral.net.zone
127 1 Fabien Dupont
index de147a8..5c6cb01 100644
128 1 Fabien Dupont
--- a/wan/tetaneutral.net.zone
129 1 Fabien Dupont
+++ b/wan/tetaneutral.net.zone
130 1 Fabien Dupont
@@ -2,7 +2,7 @@
131 1 Fabien Dupont
 ; 
132 1 Fabien Dupont
 $TTL 86400
133 1 Fabien Dupont
 @    IN SOA ns1.tetaneutral.net. root.tetaneutral.net. (
134 1 Fabien Dupont
-               2012082202      ; serial
135 1 Fabien Dupont
+               2012082203      ; serial
136 1 Fabien Dupont
                86400      ; Refresh
137 1 Fabien Dupont
                3600       ; Retry
138 1 Fabien Dupont
                3600000    ; expire
139 1 Fabien Dupont
@@ -67,6 +67,8 @@ stg-free-nb6                IN  AAAA   2a01:e34:edc8:94d0:221:85ff:fe48:708f
140 1 Fabien Dupont
 grenode                     IN  A      91.216.110.40
141 1 Fabien Dupont
 mx2                         IN  A      91.216.110.40
142 1 Fabien Dupont
 
143 1 Fabien Dupont
+zorglub                     IN  A      91.224.149.142
144 1 Fabien Dupont
+
145 1 Fabien Dupont
 rps2                        IN  A      87.98.151.166
146 1 Fabien Dupont
 rps2-6                      IN  AAAA   2001:41d0:2:39a8::1
147 1 Fabien Dupont
 equinix-paris               IN  A      195.42.144.120 
148 1 Fabien Dupont
</pre>
149 1 Fabien Dupont
150 1 Fabien Dupont
+Important :+ Il faut bien penser à incrémenter le serial de la zone (voir en haut des fichiers) pour que les modifications soient prise en compte. Pour s'assurer que le serial est toujours augmenté, il est écrit dans la forme yyyymmddrr où :
151 1 Fabien Dupont
152 1 Fabien Dupont
* yyyy est l'année en cours sur 4 chiffres (ex: 2012),
153 1 Fabien Dupont
* mm est le mois en cours sur 2 chiffres (ex: 08),
154 1 Fabien Dupont
* dd est le jour du mois en cours sur 2 chiffres (ex: 22) et
155 1 Fabien Dupont
* rr est le numéro de révision de la zone pour le jour en cours (ex: 00 pour la première, puis 01, 02, etc.).
156 1 Fabien Dupont
157 1 Fabien Dupont
Une fois la modification effectuée elle doit être commitée et pushée dans le repository git :
158 1 Fabien Dupont
159 1 Fabien Dupont
<pre>
160 1 Fabien Dupont
$ git commit wan/tetaneutral.net.zone -m 'New host : zorglub.tetaneutral.net'
161 1 Fabien Dupont
[master 107104b] New host : zorglub.tetaneutral.net
162 1 Fabien Dupont
 1 file changed, 3 insertions(+), 1 deletion(-)
163 1 Fabien Dupont
$ git push
164 1 Fabien Dupont
Counting objects: 7, done.
165 1 Fabien Dupont
Delta compression using up to 4 threads.
166 1 Fabien Dupont
Compressing objects: 100% (3/3), done.
167 1 Fabien Dupont
Writing objects: 100% (4/4), 390 bytes, done.
168 1 Fabien Dupont
Total 4 (delta 2), reused 0 (delta 0)
169 1 Fabien Dupont
To ssh://git@git.tetaneutral.net/bind-zones.git
170 1 Fabien Dupont
   4fe0629..107104b  master -> master
171 1 Fabien Dupont
</pre>
172 1 Fabien Dupont
173 1 Fabien Dupont
h3. Prise en compte des modifications sur le primaire
174 1 Fabien Dupont
175 1 Fabien Dupont
Pour que les modifications effectuées dans le repository git soient prise en compte sur le serveur primaire (ns1.tetaneutral.net AKA gw), il suffit de lancer l'agent puppet dessus.
176 1 Fabien Dupont
177 1 Fabien Dupont
<pre>
178 1 Fabien Dupont
# puppet agent -vt
179 1 Fabien Dupont
info: Retrieving plugin
180 1 Fabien Dupont
info: Caching catalog for gw.tetaneutral.net
181 1 Fabien Dupont
info: Applying configuration version '1345644614'
182 1 Fabien Dupont
*snip*
183 3 Fabien Dupont
notice: /Stage[main]/Bind/Repo[/var/bind/chroot/var/named]/ensure: ensure changed 'present' to 'latest'
184 3 Fabien Dupont
info: /Stage[main]/Bind/Repo[/var/bind/chroot/var/named]: Scheduling refresh of Service[bind9]
185 3 Fabien Dupont
notice: /Stage[main]/Bind/Service[bind9]: Triggered 'refresh' from 1 events
186 1 Fabien Dupont
*snip*
187 1 Fabien Dupont
notice: Finished catalog run in 5.94 seconds
188 1 Fabien Dupont
</pre>
189 1 Fabien Dupont
190 1 Fabien Dupont
L'agent puppet effectue un « git pull » s'il y a des nouveaux commits dans le repository. Si c'est le cas, il recharge les zones dans bind pour prise en compte.
191 1 Fabien Dupont
192 1 Fabien Dupont
h3. Vérifications
193 1 Fabien Dupont
194 1 Fabien Dupont
La première vérification à effectuer est de contrôler que bind a bien pris en compte la modification de la zone +avec le nouveau serial+ :
195 1 Fabien Dupont
196 1 Fabien Dupont
<pre>
197 1 Fabien Dupont
# tail /var/log/named/general.log
198 1 Fabien Dupont
22-Aug-2012 14:50:16.596 reloading zones succeeded
199 1 Fabien Dupont
22-Aug-2012 14:50:16.603 zone tetaneutral.net/IN/wan: loaded serial 2012082203
200 1 Fabien Dupont
</pre>
201 1 Fabien Dupont
202 1 Fabien Dupont
Exemple de rechargement de zone sans augmentation du serial :
203 1 Fabien Dupont
204 1 Fabien Dupont
<pre>
205 1 Fabien Dupont
# tail /var/log/named/general.log
206 1 Fabien Dupont
*snip*
207 1 Fabien Dupont
22-Aug-2012 14:45:08.890 zone tetaneutral.net/IN/wan: zone serial (2012082101) unchanged. zone may fail to transfer to slaves.
208 1 Fabien Dupont
</pre>
209 1 Fabien Dupont
210 1 Fabien Dupont
Ensuite, il faut vérifier que la nouvelle zone a bien été transférée aux serveurs secondaires :
211 1 Fabien Dupont
212 1 Fabien Dupont
<pre>
213 1 Fabien Dupont
# tail /var/log/named/xfer-out.log
214 1 Fabien Dupont
*snip*
215 1 Fabien Dupont
22-Aug-2012 14:50:16.680 client 91.216.110.40#51301: view wan: transfer of 'tetaneutral.net/IN': AXFR-style IXFR started
216 1 Fabien Dupont
22-Aug-2012 14:50:16.682 client 91.216.110.40#51301: view wan: transfer of 'tetaneutral.net/IN': AXFR-style IXFR ended
217 1 Fabien Dupont
22-Aug-2012 14:53:37.118 client 217.70.177.40#44443: view wan: transfer of 'tetaneutral.net/IN': AXFR-style IXFR started
218 1 Fabien Dupont
22-Aug-2012 14:53:37.121 client 217.70.177.40#44443: view wan: transfer of 'tetaneutral.net/IN': AXFR-style IXFR ended
219 1 Fabien Dupont
</pre>
220 1 Fabien Dupont
221 1 Fabien Dupont
On ne voit que deux transferts, un vers 91.216.110.40 (grenode) et un vers 217.70.177.40 (ns6.gandi.net) alors qu'il y a trois secondaires. Mais ns1 et ns2 sont la même machine, ce n'est pas la peine de mettre à jour le cache du serveur primaire d'une zone alors qu'il connaît déjà la zone.
222 1 Fabien Dupont
223 1 Fabien Dupont
Dernière vérification : contrôler que la modification effectuée est bien prise en compte :
224 1 Fabien Dupont
225 1 Fabien Dupont
<pre>
226 1 Fabien Dupont
$ dig +short zorglub.tetaneutral.net @ns1.tetaneutral.net
227 1 Fabien Dupont
91.224.149.142
228 1 Fabien Dupont
$ dig +short zorglub.tetaneutral.net @ns2.tetaneutral.net
229 1 Fabien Dupont
91.224.149.142
230 1 Fabien Dupont
$ dig +short zorglub.tetaneutral.net @ns3.tetaneutral.net
231 1 Fabien Dupont
91.224.149.142
232 1 Fabien Dupont
$ dig +short zorglub.tetaneutral.net @ns6.gandi.net.
233 1 Fabien Dupont
91.224.149.142
234 1 Fabien Dupont
</pre>