AtelierDNS2015 » Historique » Version 5
Version 4 (Matthieu Herrb, 08/04/2015 10:49) → Version 5/7 (Matthieu Herrb, 08/04/2015 10:51)
{{>toc}}
h1. Atelier DNS 2015
* Animé par Matthieu Herrb.
* Mardi 10 février 2015 à 19h30 au grand builder ekito 15 rue Gabriel Peri.
* TPs le mardi 7 avril 2015 même meme endroit
* Durée: 1h30 à 2h
Slides : http://homepages.laas.fr/matthieu/talks/ttnn-dns.pdf
h2. Sujets traités
* Le « Domain Name System » à quoi ça sert et comment ça marche
* Comment configurer un serveur pour gérer son propre domaine en auto-hébergement
* Atelier pratique de l'achat d'un nom de domaine à la configuration.
h2. Ateliers pratiques:
* achat et gestion d'un domaine DNS chez Gandi
* configuration d'un serveur cache (résolveur (resolveur recursif) local (ou comment échapper à la main rouge :)) :) avec bind ou unbound.
* configuration de bind ou de NSD pour héberger son domaine si on ne fait plus confiance à Gandi (ou à un autre hébergeur).
h2. Questions
* 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 ?)
* début de reponse: http://wiki.gandi.net/en/domains/dnssec
* 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?
* https://archive.icann.org/fr/topics/new-gtlds/rfp-clean-19sep11-fr.pdf
* http://www.zdnet.fr/actualites/bzh-ou-paris-a-quoi-servent-ces-nouveaux-tld-et-a-qui-rapportent-ils-39790215.htm
h2. Exemples
h3. Exemple de fichier named.conf (bind)
<pre>
acl clients {
localnets;
::1;
};
acl slaves {
217.70.177.40;
91.224.149.89;
2a01:6600:8081:5900::1;
};
options {
version ""; // remove this to allow version queries
listen-on { any; };
listen-on-v6 { any; };
};
view "recursive" {
match-clients { clients; };
match-recursive-only yes;
// Standard zones
//
zone "." {
type hint;
file "etc/root.hint";
};
zone "localhost" {
type master;
file "standard/localhost";
allow-transfer { localhost; };
};
zone "127.in-addr.arpa" {
type master;
file "standard/loopback";
allow-transfer { localhost; };
};
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" {
type master;
file "standard/loopback6.arpa";
allow-transfer { localhost; };
};
// Master zones
//
zone "herrb.net" {
type master;
file "master/herrb.net";
allow-transfer { slaves; };
};
zone "31.168.192.IN-ADDR.ARPA" {
type master;
file "master/herrb.net.rev";
allow-transfer { slaves; };
};
zone "1.6.1.8.0.8.0.0.6.6.1.0.a.2.ip6.arpa" {
type master;
file "master/ipv6.ttn.rev";
allow-transfer { slaves; };
};
zone "89/32.149.224.91.in-addr.arpa" IN {
type master;
file "master/tls00.rev";
allow-transfer { slaves; };
};
};
view "authoritative" {
recursion no;
additional-from-auth no;
additional-from-cache no;
// Master zones
//
zone "herrb.net" IN {
type master;
file "master/herrb.public.net";
allow-transfer { slaves; };
};
zone "8.b.0.7.8.a.7.0.1.0.0.2.ip6.arpa" {
type master;
file "master/ipv6.nerim.rev";
allow-transfer { slaves; };
};
zone "1.6.1.8.0.8.0.0.6.6.1.0.a.2.ip6.arpa" {
type master;
file "master/ipv6.ttn.rev";
allow-transfer { slaves; };
};
zone "89/32.149.224.91.in-addr.arpa" IN {
type master;
file "master/tls00.rev";
allow-transfer { slaves; };
};
zone "9.5.1.8.0.8.0.0.6.6.1.0.a.2.ip6.arpa" {
type master;
file "master/tls00.ipv6.rev";
allow-transfer { slaves; };
};
};
</pre>
h3. Exemple de fichier unbound.conf
<pre>
server:
interface: 140.93.5.46
interface: 2001:660:6602:4::52e
interface: 127.0.0.1
interface: ::1
access-control: 127.0.0.0/8 allow
access-control: ::1 allow
access-control: 2001:660:6602:4::/64 allow
access-control: 192.168.1.0/8 allow
private-domain: "laas.fr"
auto-trust-anchor-file: "/var/unbound/etc/autotrust/root.key"
local-zone: "168.192.in-addr.arpa." transparent
forward-zone:
name: "168.192.in-addr.arpa."
forward-addr: 2001:660:6602:4::2
forward-addr: 2001:660:6602:2::7
forward-addr: 140.93.0.15
forward-addr: 195.83.132.132
forward-zone:
name: "2.0.6.6.0.6.6.0.1.0.0.2.ip6.arpa."
forward-addr: 2001:660:6602:4::2
forward-addr: 2001:660:6602:2::7
forward-addr: 140.93.0.15
forward-addr: 195.83.132.132
forward-zone:
name: "laas.fr"
forward-addr: 2001:660:6602:4::2
forward-addr: 2001:660:6602:2::7
forward-addr: 140.93.0.15
forward-addr: 195.83.132.132
</pre>
* Injections de données locales (pour adresses privées par ex.):
<pre>
server:
....
local-zone: "herrb.net." typetransparent
private-address: 192.168.31.0/24
private-address: 172.31.31.0/24
private-domain: herrb.net.
local-data: "nowhere.herrb.net. IN A 91.224.149.89"
local-data: "bluenote.herrb.net. IN A 192.168.31.2"
local-data: "bluenote-em.herrb.net. IN A 192.168.31.3"
local-data: "television.herrb.net. IN A 192.168.31.4"
local-data: "southside.herrb.net. IN A 192.168.31.5"
local-data: "harvest.herrb.net. IN A 192.168.31.6"
local-data: "alabama.herrb.net. IN A 192.168.31.8"
local-data-ptr: "192.168.31.2 bluenote.herrb.net."
local-data-ptr: "192.168.31.3 bluenote-em.herrb.net."
local-data-ptr: "192.168.31.4 television.herrb.net."
local-data-ptr: "192.168.31.5 southside.herrb.net."
local-data-ptr: "192.168.31.6 harvest.herrb.net."
local-data-ptr: "192.168.31.8 alabama.herrb.net."
</pre>
h3. Exemple de fichier nsd.conf
<pre>
server:
hide-version: yes
remote-control:
control-enable: yes
# tsig key example
key:
name: "tsig1.example.com."
algorithm: hmac-sha256
secret: "bWVrbWl0YXNkaWdvYXQ="
# master zone example
zone:
name: "example.com"
zonefile: "example.com"
notify: 192.0.2.1 NOKEY
provide-xfr: 192.0.2.1 NOKEY
# slave zone example
zone:
name: "example.net"
zonefile: "example.net"
allow-notify: 192.0.2.2 tsig1.example.com.
request-xfr: 192.0.2.2 tsig1.example.com.
</pre>
h3. ipv6calc
* génération de fichier zone reverse IPv6 pour ttnn (/56):
<pre>
$ ipv6calc --in ipv6 --out revnibbles.arpa 2a01:6600:8081:6101::3f | cut -d. -f-18
f.3.0.0.0.0.0.0.0.0.0.0.0.0.0.0.1.0
</pre>
(Remplacer -f-18 par -f-20 pour une delegation de /48 ou par -f-16 pour un /64)
* génération d'une adresse IPv6 SLAAC a partir prefixe + adresse MAC:
<pre>
$ ipv6calc --in prefix+mac --out ipv6addr 2a01:6600:8081:6101:: 00:00:24:cd:7e:50
2a01:6600:8081:6101:200:24ff:fecd:7e50
</pre>
h3. Examples de zones
https://chiliproject.tetaneutral.net/projects/git-tetaneutral-net/repository/bind-zones/revisions/master/show/wan
h3. Fix serial number
http://www.zytrax.com/books/dns/ch9/serial.html
h1. Atelier DNS 2015
* Animé par Matthieu Herrb.
* Mardi 10 février 2015 à 19h30 au grand builder ekito 15 rue Gabriel Peri.
* TPs le mardi 7 avril 2015 même meme endroit
* Durée: 1h30 à 2h
Slides : http://homepages.laas.fr/matthieu/talks/ttnn-dns.pdf
h2. Sujets traités
* Le « Domain Name System » à quoi ça sert et comment ça marche
* Comment configurer un serveur pour gérer son propre domaine en auto-hébergement
* Atelier pratique de l'achat d'un nom de domaine à la configuration.
h2. Ateliers pratiques:
* achat et gestion d'un domaine DNS chez Gandi
* configuration d'un serveur cache (résolveur (resolveur recursif) local (ou comment échapper à la main rouge :)) :) avec bind ou unbound.
* configuration de bind ou de NSD pour héberger son domaine si on ne fait plus confiance à Gandi (ou à un autre hébergeur).
h2. Questions
* 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 ?)
* début de reponse: http://wiki.gandi.net/en/domains/dnssec
* 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?
* https://archive.icann.org/fr/topics/new-gtlds/rfp-clean-19sep11-fr.pdf
* http://www.zdnet.fr/actualites/bzh-ou-paris-a-quoi-servent-ces-nouveaux-tld-et-a-qui-rapportent-ils-39790215.htm
h2. Exemples
h3. Exemple de fichier named.conf (bind)
<pre>
acl clients {
localnets;
::1;
};
acl slaves {
217.70.177.40;
91.224.149.89;
2a01:6600:8081:5900::1;
};
options {
version ""; // remove this to allow version queries
listen-on { any; };
listen-on-v6 { any; };
};
view "recursive" {
match-clients { clients; };
match-recursive-only yes;
// Standard zones
//
zone "." {
type hint;
file "etc/root.hint";
};
zone "localhost" {
type master;
file "standard/localhost";
allow-transfer { localhost; };
};
zone "127.in-addr.arpa" {
type master;
file "standard/loopback";
allow-transfer { localhost; };
};
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" {
type master;
file "standard/loopback6.arpa";
allow-transfer { localhost; };
};
// Master zones
//
zone "herrb.net" {
type master;
file "master/herrb.net";
allow-transfer { slaves; };
};
zone "31.168.192.IN-ADDR.ARPA" {
type master;
file "master/herrb.net.rev";
allow-transfer { slaves; };
};
zone "1.6.1.8.0.8.0.0.6.6.1.0.a.2.ip6.arpa" {
type master;
file "master/ipv6.ttn.rev";
allow-transfer { slaves; };
};
zone "89/32.149.224.91.in-addr.arpa" IN {
type master;
file "master/tls00.rev";
allow-transfer { slaves; };
};
};
view "authoritative" {
recursion no;
additional-from-auth no;
additional-from-cache no;
// Master zones
//
zone "herrb.net" IN {
type master;
file "master/herrb.public.net";
allow-transfer { slaves; };
};
zone "8.b.0.7.8.a.7.0.1.0.0.2.ip6.arpa" {
type master;
file "master/ipv6.nerim.rev";
allow-transfer { slaves; };
};
zone "1.6.1.8.0.8.0.0.6.6.1.0.a.2.ip6.arpa" {
type master;
file "master/ipv6.ttn.rev";
allow-transfer { slaves; };
};
zone "89/32.149.224.91.in-addr.arpa" IN {
type master;
file "master/tls00.rev";
allow-transfer { slaves; };
};
zone "9.5.1.8.0.8.0.0.6.6.1.0.a.2.ip6.arpa" {
type master;
file "master/tls00.ipv6.rev";
allow-transfer { slaves; };
};
};
</pre>
h3. Exemple de fichier unbound.conf
<pre>
server:
interface: 140.93.5.46
interface: 2001:660:6602:4::52e
interface: 127.0.0.1
interface: ::1
access-control: 127.0.0.0/8 allow
access-control: ::1 allow
access-control: 2001:660:6602:4::/64 allow
access-control: 192.168.1.0/8 allow
private-domain: "laas.fr"
auto-trust-anchor-file: "/var/unbound/etc/autotrust/root.key"
local-zone: "168.192.in-addr.arpa." transparent
forward-zone:
name: "168.192.in-addr.arpa."
forward-addr: 2001:660:6602:4::2
forward-addr: 2001:660:6602:2::7
forward-addr: 140.93.0.15
forward-addr: 195.83.132.132
forward-zone:
name: "2.0.6.6.0.6.6.0.1.0.0.2.ip6.arpa."
forward-addr: 2001:660:6602:4::2
forward-addr: 2001:660:6602:2::7
forward-addr: 140.93.0.15
forward-addr: 195.83.132.132
forward-zone:
name: "laas.fr"
forward-addr: 2001:660:6602:4::2
forward-addr: 2001:660:6602:2::7
forward-addr: 140.93.0.15
forward-addr: 195.83.132.132
</pre>
* Injections de données locales (pour adresses privées par ex.):
<pre>
server:
....
local-zone: "herrb.net." typetransparent
private-address: 192.168.31.0/24
private-address: 172.31.31.0/24
private-domain: herrb.net.
local-data: "nowhere.herrb.net. IN A 91.224.149.89"
local-data: "bluenote.herrb.net. IN A 192.168.31.2"
local-data: "bluenote-em.herrb.net. IN A 192.168.31.3"
local-data: "television.herrb.net. IN A 192.168.31.4"
local-data: "southside.herrb.net. IN A 192.168.31.5"
local-data: "harvest.herrb.net. IN A 192.168.31.6"
local-data: "alabama.herrb.net. IN A 192.168.31.8"
local-data-ptr: "192.168.31.2 bluenote.herrb.net."
local-data-ptr: "192.168.31.3 bluenote-em.herrb.net."
local-data-ptr: "192.168.31.4 television.herrb.net."
local-data-ptr: "192.168.31.5 southside.herrb.net."
local-data-ptr: "192.168.31.6 harvest.herrb.net."
local-data-ptr: "192.168.31.8 alabama.herrb.net."
</pre>
h3. Exemple de fichier nsd.conf
<pre>
server:
hide-version: yes
remote-control:
control-enable: yes
# tsig key example
key:
name: "tsig1.example.com."
algorithm: hmac-sha256
secret: "bWVrbWl0YXNkaWdvYXQ="
# master zone example
zone:
name: "example.com"
zonefile: "example.com"
notify: 192.0.2.1 NOKEY
provide-xfr: 192.0.2.1 NOKEY
# slave zone example
zone:
name: "example.net"
zonefile: "example.net"
allow-notify: 192.0.2.2 tsig1.example.com.
request-xfr: 192.0.2.2 tsig1.example.com.
</pre>
h3. ipv6calc
* génération de fichier zone reverse IPv6 pour ttnn (/56):
<pre>
$ ipv6calc --in ipv6 --out revnibbles.arpa 2a01:6600:8081:6101::3f | cut -d. -f-18
f.3.0.0.0.0.0.0.0.0.0.0.0.0.0.0.1.0
</pre>
(Remplacer -f-18 par -f-20 pour une delegation de /48 ou par -f-16 pour un /64)
* génération d'une adresse IPv6 SLAAC a partir prefixe + adresse MAC:
<pre>
$ ipv6calc --in prefix+mac --out ipv6addr 2a01:6600:8081:6101:: 00:00:24:cd:7e:50
2a01:6600:8081:6101:200:24ff:fecd:7e50
</pre>
h3. Examples de zones
https://chiliproject.tetaneutral.net/projects/git-tetaneutral-net/repository/bind-zones/revisions/master/show/wan
h3. Fix serial number
http://www.zytrax.com/books/dns/ch9/serial.html