Projet

Général

Profil

AtelierDNS2015 » Historique » Version 1

Matthieu Herrb, 08/04/2015 10:42
Atelier DNS 2015

1 1 Matthieu Herrb
h1. Atelier DNS 2015
2 1 Matthieu Herrb
3 1 Matthieu Herrb
* Animé par Matthieu Herrb.
4 1 Matthieu Herrb
* Mardi 10 février 2015 à 19h30 au grand builder ekito 15 rue Gabriel Peri.
5 1 Matthieu Herrb
* TPs le mardi 7 avril 2015 meme endroit
6 1 Matthieu Herrb
7 1 Matthieu Herrb
 * Durée: 1h30 à 2h
8 1 Matthieu Herrb
9 1 Matthieu Herrb
Slides : http://homepages.laas.fr/matthieu/talks/ttnn-dns.pdf
10 1 Matthieu Herrb
11 1 Matthieu Herrb
h2. Sujets traités
12 1 Matthieu Herrb
13 1 Matthieu Herrb
* Le « Domain Name System » à quoi ça sert et comment ça marche
14 1 Matthieu Herrb
* Comment configurer un serveur pour gérer son propre domaine en auto-hébergement
15 1 Matthieu Herrb
* Atelier pratique de l'achat d'un nom de domaine à la configuration. 
16 1 Matthieu Herrb
17 1 Matthieu Herrb
18 1 Matthieu Herrb
h2. Ateliers pratiques:
19 1 Matthieu Herrb
20 1 Matthieu Herrb
* achat et gestion d'un domaine DNS chez Gandi
21 1 Matthieu Herrb
* configuration d'un serveur cache (resolveur recursif) local (ou comment échapper à la main rouge :) avec bind ou unbound.
22 1 Matthieu Herrb
* configuration de bind ou de NSD pour héberger son domaine si on ne fait plus confiance à Gandi (ou à un autre hébergeur).
23 1 Matthieu Herrb
24 1 Matthieu Herrb
25 1 Matthieu Herrb
h2. Questions 
26 1 Matthieu Herrb
27 1 Matthieu Herrb
* Comment gérer les clés DNSSEC à partir d'une prestation de type Gandi ? (qui génère la clé de zone et comment fonctionne la délégation ?) 
28 1 Matthieu Herrb
 * début de reponse: http://wiki.gandi.net/en/domains/dnssec
29 1 Matthieu Herrb
30 1 Matthieu Herrb
* Depuis quelques années, il est possible de créer des extensions personnalisés (.google, .perso, .blog, ...), quelles garanties faut-il apporter à l'ICANN pour que le dossier soit accepté?  Que représente la gestion d'une nouvelle extension en terme de charge de travail/frais/responsabilités juridiques?
31 1 Matthieu Herrb
 * https://archive.icann.org/fr/topics/new-gtlds/rfp-clean-19sep11-fr.pdf 
32 1 Matthieu Herrb
 * http://www.zdnet.fr/actualites/bzh-ou-paris-a-quoi-servent-ces-nouveaux-tld-et-a-qui-rapportent-ils-39790215.htm
33 1 Matthieu Herrb
34 1 Matthieu Herrb
35 1 Matthieu Herrb
h2. Exemples 
36 1 Matthieu Herrb
37 1 Matthieu Herrb
h3. Exemple de fichier named.conf (bind)
38 1 Matthieu Herrb
39 1 Matthieu Herrb
<pre>
40 1 Matthieu Herrb
acl clients {
41 1 Matthieu Herrb
        localnets;
42 1 Matthieu Herrb
        ::1;
43 1 Matthieu Herrb
};
44 1 Matthieu Herrb
45 1 Matthieu Herrb
acl slaves { 
46 1 Matthieu Herrb
        217.70.177.40;
47 1 Matthieu Herrb
        91.224.149.89;
48 1 Matthieu Herrb
        2a01:6600:8081:5900::1;
49 1 Matthieu Herrb
};
50 1 Matthieu Herrb
51 1 Matthieu Herrb
options {
52 1 Matthieu Herrb
        version "";     // remove this to allow version queries
53 1 Matthieu Herrb
        listen-on    { any; };
54 1 Matthieu Herrb
        listen-on-v6 { any; };
55 1 Matthieu Herrb
};
56 1 Matthieu Herrb
57 1 Matthieu Herrb
view "recursive" {
58 1 Matthieu Herrb
        match-clients { clients; };
59 1 Matthieu Herrb
        match-recursive-only yes;
60 1 Matthieu Herrb
        // Standard zones
61 1 Matthieu Herrb
        //
62 1 Matthieu Herrb
        zone "." {
63 1 Matthieu Herrb
                type hint;
64 1 Matthieu Herrb
                file "etc/root.hint";
65 1 Matthieu Herrb
        };
66 1 Matthieu Herrb
67 1 Matthieu Herrb
        zone "localhost" {
68 1 Matthieu Herrb
                type master;
69 1 Matthieu Herrb
                file "standard/localhost";
70 1 Matthieu Herrb
                allow-transfer { localhost; };
71 1 Matthieu Herrb
        };
72 1 Matthieu Herrb
73 1 Matthieu Herrb
        zone "127.in-addr.arpa" {
74 1 Matthieu Herrb
                type master;
75 1 Matthieu Herrb
                file "standard/loopback";
76 1 Matthieu Herrb
                allow-transfer { localhost; };
77 1 Matthieu Herrb
        };
78 1 Matthieu Herrb
79 1 Matthieu Herrb
        zone "0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa" {
80 1 Matthieu Herrb
                type master;
81 1 Matthieu Herrb
                file "standard/loopback6.arpa";
82 1 Matthieu Herrb
                allow-transfer { localhost; };
83 1 Matthieu Herrb
        };
84 1 Matthieu Herrb
85 1 Matthieu Herrb
        // Master zones
86 1 Matthieu Herrb
        //
87 1 Matthieu Herrb
        zone "herrb.net" {
88 1 Matthieu Herrb
                type master;
89 1 Matthieu Herrb
                file "master/herrb.net";
90 1 Matthieu Herrb
                allow-transfer { slaves; };
91 1 Matthieu Herrb
        };
92 1 Matthieu Herrb
93 1 Matthieu Herrb
        zone "31.168.192.IN-ADDR.ARPA" {
94 1 Matthieu Herrb
                type master;
95 1 Matthieu Herrb
                file "master/herrb.net.rev";
96 1 Matthieu Herrb
                allow-transfer { slaves; };
97 1 Matthieu Herrb
        };
98 1 Matthieu Herrb
        zone "1.6.1.8.0.8.0.0.6.6.1.0.a.2.ip6.arpa" {
99 1 Matthieu Herrb
                type master;
100 1 Matthieu Herrb
                file "master/ipv6.ttn.rev";
101 1 Matthieu Herrb
                allow-transfer { slaves; };
102 1 Matthieu Herrb
        };
103 1 Matthieu Herrb
        zone "89/32.149.224.91.in-addr.arpa" IN {
104 1 Matthieu Herrb
                type master;
105 1 Matthieu Herrb
                file "master/tls00.rev";
106 1 Matthieu Herrb
                allow-transfer { slaves; };
107 1 Matthieu Herrb
        };
108 1 Matthieu Herrb
};
109 1 Matthieu Herrb
view "authoritative" {
110 1 Matthieu Herrb
        recursion no;
111 1 Matthieu Herrb
        additional-from-auth no;
112 1 Matthieu Herrb
        additional-from-cache no;
113 1 Matthieu Herrb
114 1 Matthieu Herrb
        // Master zones
115 1 Matthieu Herrb
        //
116 1 Matthieu Herrb
        zone "herrb.net" IN {
117 1 Matthieu Herrb
                type master;
118 1 Matthieu Herrb
                file "master/herrb.public.net";
119 1 Matthieu Herrb
                allow-transfer { slaves; };
120 1 Matthieu Herrb
        };
121 1 Matthieu Herrb
122 1 Matthieu Herrb
        zone "8.b.0.7.8.a.7.0.1.0.0.2.ip6.arpa" {
123 1 Matthieu Herrb
                type master;
124 1 Matthieu Herrb
                file "master/ipv6.nerim.rev";
125 1 Matthieu Herrb
                allow-transfer { slaves; };
126 1 Matthieu Herrb
        };
127 1 Matthieu Herrb
        zone "1.6.1.8.0.8.0.0.6.6.1.0.a.2.ip6.arpa" {
128 1 Matthieu Herrb
                type master;
129 1 Matthieu Herrb
                file "master/ipv6.ttn.rev";
130 1 Matthieu Herrb
                allow-transfer { slaves; };
131 1 Matthieu Herrb
        };
132 1 Matthieu Herrb
        zone "89/32.149.224.91.in-addr.arpa" IN {
133 1 Matthieu Herrb
                type master;
134 1 Matthieu Herrb
                file "master/tls00.rev";
135 1 Matthieu Herrb
                allow-transfer { slaves; };
136 1 Matthieu Herrb
        };
137 1 Matthieu Herrb
        zone "9.5.1.8.0.8.0.0.6.6.1.0.a.2.ip6.arpa" {
138 1 Matthieu Herrb
                type master;
139 1 Matthieu Herrb
                file "master/tls00.ipv6.rev";
140 1 Matthieu Herrb
                allow-transfer { slaves; };
141 1 Matthieu Herrb
        };
142 1 Matthieu Herrb
};
143 1 Matthieu Herrb
</pre>
144 1 Matthieu Herrb
145 1 Matthieu Herrb
146 1 Matthieu Herrb
h3. Exemple de fichier unbound.conf
147 1 Matthieu Herrb
148 1 Matthieu Herrb
<pre>
149 1 Matthieu Herrb
server:
150 1 Matthieu Herrb
        interface: 140.93.5.46
151 1 Matthieu Herrb
        interface: 2001:660:6602:4::52e
152 1 Matthieu Herrb
        interface: 127.0.0.1
153 1 Matthieu Herrb
        interface: ::1
154 1 Matthieu Herrb
        access-control: 127.0.0.0/8 allow
155 1 Matthieu Herrb
        access-control: ::1 allow
156 1 Matthieu Herrb
        access-control: 2001:660:6602:4::/64 allow
157 1 Matthieu Herrb
        access-control: 192.168.1.0/8 allow
158 1 Matthieu Herrb
        private-domain: "laas.fr"
159 1 Matthieu Herrb
        auto-trust-anchor-file: "/var/unbound/etc/autotrust/root.key"
160 1 Matthieu Herrb
        local-zone: "168.192.in-addr.arpa." transparent
161 1 Matthieu Herrb
162 1 Matthieu Herrb
forward-zone:
163 1 Matthieu Herrb
        name: "168.192.in-addr.arpa."
164 1 Matthieu Herrb
        forward-addr: 2001:660:6602:4::2
165 1 Matthieu Herrb
        forward-addr: 2001:660:6602:2::7
166 1 Matthieu Herrb
        forward-addr: 140.93.0.15
167 1 Matthieu Herrb
        forward-addr: 195.83.132.132
168 1 Matthieu Herrb
169 1 Matthieu Herrb
forward-zone:
170 1 Matthieu Herrb
        name: "2.0.6.6.0.6.6.0.1.0.0.2.ip6.arpa."
171 1 Matthieu Herrb
        forward-addr: 2001:660:6602:4::2
172 1 Matthieu Herrb
        forward-addr: 2001:660:6602:2::7
173 1 Matthieu Herrb
        forward-addr: 140.93.0.15
174 1 Matthieu Herrb
        forward-addr: 195.83.132.132
175 1 Matthieu Herrb
176 1 Matthieu Herrb
forward-zone:
177 1 Matthieu Herrb
        name: "laas.fr"
178 1 Matthieu Herrb
        forward-addr: 2001:660:6602:4::2
179 1 Matthieu Herrb
        forward-addr: 2001:660:6602:2::7
180 1 Matthieu Herrb
        forward-addr: 140.93.0.15
181 1 Matthieu Herrb
        forward-addr: 195.83.132.132
182 1 Matthieu Herrb
</pre>
183 1 Matthieu Herrb
184 1 Matthieu Herrb
* Injections de données locales (pour adresses privées par ex.):
185 1 Matthieu Herrb
186 1 Matthieu Herrb
</pre>
187 1 Matthieu Herrb
server:
188 1 Matthieu Herrb
        ....
189 1 Matthieu Herrb
190 1 Matthieu Herrb
        local-zone: "herrb.net." typetransparent
191 1 Matthieu Herrb
        private-address: 192.168.31.0/24
192 1 Matthieu Herrb
        private-address: 172.31.31.0/24
193 1 Matthieu Herrb
        private-domain: herrb.net.
194 1 Matthieu Herrb
195 1 Matthieu Herrb
        local-data: "nowhere.herrb.net.         IN A 91.224.149.89"
196 1 Matthieu Herrb
197 1 Matthieu Herrb
        local-data: "bluenote.herrb.net.        IN A 192.168.31.2"
198 1 Matthieu Herrb
        local-data: "bluenote-em.herrb.net.     IN A 192.168.31.3"
199 1 Matthieu Herrb
        local-data: "television.herrb.net.      IN A 192.168.31.4"
200 1 Matthieu Herrb
        local-data: "southside.herrb.net.       IN A 192.168.31.5"
201 1 Matthieu Herrb
        local-data: "harvest.herrb.net.         IN A 192.168.31.6"
202 1 Matthieu Herrb
        local-data: "alabama.herrb.net.         IN A 192.168.31.8" 
203 1 Matthieu Herrb
        
204 1 Matthieu Herrb
        local-data-ptr: "192.168.31.2   bluenote.herrb.net."
205 1 Matthieu Herrb
        local-data-ptr: "192.168.31.3   bluenote-em.herrb.net."
206 1 Matthieu Herrb
        local-data-ptr: "192.168.31.4   television.herrb.net."
207 1 Matthieu Herrb
        local-data-ptr: "192.168.31.5   southside.herrb.net."
208 1 Matthieu Herrb
        local-data-ptr: "192.168.31.6   harvest.herrb.net."
209 1 Matthieu Herrb
        local-data-ptr: "192.168.31.8   alabama.herrb.net."
210 1 Matthieu Herrb
</pre>   
211 1 Matthieu Herrb
        
212 1 Matthieu Herrb
 
213 1 Matthieu Herrb
h3. Exemple de fichier nsd.conf
214 1 Matthieu Herrb
215 1 Matthieu Herrb
<pre>
216 1 Matthieu Herrb
server:
217 1 Matthieu Herrb
        hide-version: yes
218 1 Matthieu Herrb
219 1 Matthieu Herrb
remote-control:
220 1 Matthieu Herrb
        control-enable: yes
221 1 Matthieu Herrb
222 1 Matthieu Herrb
# tsig key example
223 1 Matthieu Herrb
key:
224 1 Matthieu Herrb
       name: "tsig1.example.com."
225 1 Matthieu Herrb
       algorithm: hmac-sha256
226 1 Matthieu Herrb
       secret: "bWVrbWl0YXNkaWdvYXQ="
227 1 Matthieu Herrb
228 1 Matthieu Herrb
# master zone example
229 1 Matthieu Herrb
zone:
230 1 Matthieu Herrb
       name: "example.com"
231 1 Matthieu Herrb
       zonefile: "example.com"
232 1 Matthieu Herrb
       notify: 192.0.2.1 NOKEY
233 1 Matthieu Herrb
       provide-xfr: 192.0.2.1 NOKEY
234 1 Matthieu Herrb
235 1 Matthieu Herrb
# slave zone example
236 1 Matthieu Herrb
zone:
237 1 Matthieu Herrb
       name: "example.net"
238 1 Matthieu Herrb
       zonefile: "example.net"
239 1 Matthieu Herrb
       allow-notify: 192.0.2.2 tsig1.example.com.
240 1 Matthieu Herrb
       request-xfr: 192.0.2.2 tsig1.example.com.
241 1 Matthieu Herrb
242 1 Matthieu Herrb
</pre>
243 1 Matthieu Herrb
244 1 Matthieu Herrb
h3. ipv6calc
245 1 Matthieu Herrb
246 1 Matthieu Herrb
* génération de fichier zone reverse IPv6 pour ttnn (/56):
247 1 Matthieu Herrb
248 1 Matthieu Herrb
<pre>
249 1 Matthieu Herrb
     ipv6calc --in ipv6 --out revnibbles.arpa 2a01:6600:8081:6101::3f | cut -d. -f-18 
250 1 Matthieu Herrb
</pre>
251 1 Matthieu Herrb
(Remplacer -f-18 par -f-20 pour une delegation de /48 ou par -f-16 pour un /64)
252 1 Matthieu Herrb
253 1 Matthieu Herrb
* génération d'une adresse IPv6 SLAAC a partir prefixe + adresse MAC:
254 1 Matthieu Herrb
<pre>
255 1 Matthieu Herrb
      ipv6calc --in prefix+mac --out ipv6addr 2a01:6600:8081:6101:: 00:00:24:cd:7e:50
256 1 Matthieu Herrb
</pre>
257 1 Matthieu Herrb
258 1 Matthieu Herrb
h3. Examples de zones
259 1 Matthieu Herrb
https://chiliproject.tetaneutral.net/projects/git-tetaneutral-net/repository/bind-zones/revisions/master/show/wan
260 1 Matthieu Herrb
261 1 Matthieu Herrb
h3. Fix serial number
262 1 Matthieu Herrb
http://www.zytrax.com/books/dns/ch9/serial.html