1 dns (domain name system). 2 dns sommaire –introduction –arborescence –architecture –base...

109
1 DNS (Domain Name System)

Upload: marcelline-wagner

Post on 03-Apr-2015

130 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 1 DNS (Domain Name System). 2 DNS Sommaire –introduction –arborescence –architecture –base de données –une implémentation du DNS : BIND –Outils / ZoneCheck

1

DNS (Domain Name System)

Page 2: 1 DNS (Domain Name System). 2 DNS Sommaire –introduction –arborescence –architecture –base de données –une implémentation du DNS : BIND –Outils / ZoneCheck

2

DNS

• Sommaire– introduction– arborescence– architecture– base de données– une implémentation du DNS : BIND– Outils / ZoneCheck

Page 3: 1 DNS (Domain Name System). 2 DNS Sommaire –introduction –arborescence –architecture –base de données –une implémentation du DNS : BIND –Outils / ZoneCheck

3

Introduction (1)

• Besoin– nommer une machine sur le réseau en effectuant

une correspondance entre le nom choisi et le numéro IP (résolution de nom)

– trouver le nom d ’une machine à partir de sonnuméro IP (résolution inverse)

– identifier un groupe de machines ayant des ressources réseau communes (relais de messagerie, …)

Page 4: 1 DNS (Domain Name System). 2 DNS Sommaire –introduction –arborescence –architecture –base de données –une implémentation du DNS : BIND –Outils / ZoneCheck

4

Introduction (2)

• Quelques exemples simples :– nom de domaine : afnic.asso.fr– nom de machine : ftp.afnic.asso.fr adresse ip 192.134.4.13

– nom de machine : relay1.afnic.asso.fr adresse ip 192.134.4.17

– nom de machine : www.afnic.asso.fr adresse ip 192.134.4.11

– nom de machine : www.nic.fr adresse ip 192.134.4.11

– adresse IP : 192.134.4.11 www.afnic.asso.fr www.nic.fr

• Une information dans le DNS indique vers quelle machine diriger le courrier électronique :– [email protected] relay1.afnic.asso.fr adresse ip 192.134.4.17

Page 5: 1 DNS (Domain Name System). 2 DNS Sommaire –introduction –arborescence –architecture –base de données –une implémentation du DNS : BIND –Outils / ZoneCheck

5

Introduction (3)

• Jusqu’en 1984 : fichier hosts.txt => /etc/hosts– inadapté à grande échelle

• temps de diffusion des infos (par ftp !)

• système centralisé

• quelques centaines de machines dans les années 70

• plusieurs millions aujourd’hui

– correspondance statique– ne contient que des infos réduites– noms enregistrés sous le domaine arpa

=> collision rapide de noms

Page 6: 1 DNS (Domain Name System). 2 DNS Sommaire –introduction –arborescence –architecture –base de données –une implémentation du DNS : BIND –Outils / ZoneCheck

6

Introduction (4)

• Après 1984 : Domain Name SystemPaul Mockapetris - RFC 882 883 puis 1034 1035– système hiérarchisé et distribué

• modèle en arborescence (similaire à l’arborescence d’un système de fichiers avec ses répertoires)

• gestion décentralisée des bases de données

=> chaque site est maître de ses données– informations complémentaires : relais de messagerie, …– correspondance dynamique– limite les risques de collisions de noms

Page 7: 1 DNS (Domain Name System). 2 DNS Sommaire –introduction –arborescence –architecture –base de données –une implémentation du DNS : BIND –Outils / ZoneCheck

7

Introduction (5) • RFC’s

– 1032, 1033, 1034, 1035, 1101, 1122, 1123, 1183, 1713, 1794, 1912, 1995, 1996, 2010, 2136, 2137, 2181, 2308, 2535-2541

• Documentation– http://www.dns.net/dnsrd/ (RFC, drafts, FAQ, …)– http://www.nic.fr/Guides/DNS.html– http://www.nic.fr/Formation/

• Livres– DNS and BIND (Paul Albitz & Cricket Liu)

Page 8: 1 DNS (Domain Name System). 2 DNS Sommaire –introduction –arborescence –architecture –base de données –une implémentation du DNS : BIND –Outils / ZoneCheck

8

Arborescence (1)

• Organisation générale– le système est organisé sous la forme d’une arborescence,

composée par• la racine (root), sommet de l’arbre, qui est notée par un point .• des nœuds, identifiés par un label (fr , com , …), dont les

informations sont stockées dans une base de données propre àchacun des nœuds

– base de données du système• une base de données par nœud

• l’ensemble de ces bases de données constitue le système d’information hiérarchique et distribué du DNS

Page 9: 1 DNS (Domain Name System). 2 DNS Sommaire –introduction –arborescence –architecture –base de données –une implémentation du DNS : BIND –Outils / ZoneCheck

9

Arborescence (2)

..

frfrnetnetarpaarpa

riperipe

whoiswhois

in-addrin-addr

193193

11

22

133133

comcom

00 255255......

apnicapnic nicnic

wwwwwwwhoiswhois

www.nic.fr.www.nic.fr.

193.1.2.133 133.2.1.193.in-addr.arpa.193.1.2.133 133.2.1.193.in-addr.arpa.

192

nom adresse IPadresse IP nom

192.134.4.11 192.134.4.11

193.1.2.133 193.1.2.133

whois.ripe.net whois.ripe.net

whois.ripe.net. whois.ripe.net. 192.134.4.11 192.134.4.11

193.1.2.133

Page 10: 1 DNS (Domain Name System). 2 DNS Sommaire –introduction –arborescence –architecture –base de données –une implémentation du DNS : BIND –Outils / ZoneCheck

10

Arborescence (3)

• Parcours de l’arbre et nom de domaine– la descente dans l’arbre est représentée de la droite vers la gauche

– chaque niveau de l’arborescence est séparé par un point

racineracine

1er niveau1er niveau2éme niveau2éme niveau

nic . fr .

séparateurséparateur

Page 11: 1 DNS (Domain Name System). 2 DNS Sommaire –introduction –arborescence –architecture –base de données –une implémentation du DNS : BIND –Outils / ZoneCheck

11

Arborescence (4)

..

frfrnetnetarpaarpa

riperipe

whois = whois.ripe.netwhois = whois.ripe.net

in-addrin-addr

193193

11

22

133 = 133.2.1.193.in-addr.arpa133 = 133.2.1.193.in-addr.arpa

nicnic

comcom tntn

fftiffti

00 255255......

apnicapnic

Page 12: 1 DNS (Domain Name System). 2 DNS Sommaire –introduction –arborescence –architecture –base de données –une implémentation du DNS : BIND –Outils / ZoneCheck

12

Arborescence (5)

• Délégation d’un nœud père vers un nœud fils– un nœud peut être père de plusieurs nœuds fils– le lien est effectué en précisant au niveau du nœud père

où trouver la base de donnée des nœuds fils– but

• distribuer la gestion de chaque nœud à des entités différentes=> une base de données pour chaque nœud, l’ensemble de ces bases étant géré de façon décentralisé

• pour définir des domaines de responsabilités différentes

Page 13: 1 DNS (Domain Name System). 2 DNS Sommaire –introduction –arborescence –architecture –base de données –une implémentation du DNS : BIND –Outils / ZoneCheck

13

Arborescence (6)

• Dénomination des domaines– caractères autorisés ‘A’ - ‘Z’ ‘a’ - ’z’ ‘0’ - ‘9’ ‘-’

pas de différences entre majuscule et minuscule– nom total limité à 255 caractères– label est unique au niveau d’un nœud– label au niveau d ’un nœud limité à 63 caractères

Page 14: 1 DNS (Domain Name System). 2 DNS Sommaire –introduction –arborescence –architecture –base de données –une implémentation du DNS : BIND –Outils / ZoneCheck

14

Arborescence (7)

• Notion de domaine et de zone– le domaine est l’ensemble d’une sous arborescence

exemple : le domaine fr. rassemble toute la sous arborescence à partir du nœud fr

– la zone est la partie descriptive pour un niveau donné : elle est restreinte à un nœud => une zone est constituée de la base de données décrivant un nœud

Page 15: 1 DNS (Domain Name System). 2 DNS Sommaire –introduction –arborescence –architecture –base de données –une implémentation du DNS : BIND –Outils / ZoneCheck

15

Arborescence (8)

Page 16: 1 DNS (Domain Name System). 2 DNS Sommaire –introduction –arborescence –architecture –base de données –une implémentation du DNS : BIND –Outils / ZoneCheck

16

Arborescence (9)

• Résolution nom => numéro IP– le nom de machine est formé en ajoutant le label

choisi suffixé avec ‘  . ‘ avec le domaine auquel cette machine appartient

racineracine

1er niveau1er niveau2éme niveau2éme niveau

ns1 . nic . fr .

séparateurséparateurlabellabel

Page 17: 1 DNS (Domain Name System). 2 DNS Sommaire –introduction –arborescence –architecture –base de données –une implémentation du DNS : BIND –Outils / ZoneCheck

17

Arborescence (10)

• Analogie

un nœud contient à la fois des noms de machines et des sous domaines, comme, pour un système de fichiers, un répertoire contient des fichiers et des sous répertoires

Page 18: 1 DNS (Domain Name System). 2 DNS Sommaire –introduction –arborescence –architecture –base de données –une implémentation du DNS : BIND –Outils / ZoneCheck

18

Arborescence (11)

• Résolution inverse– retrouver à partir d’un numéro IP le nom d’une

machine associée

– l’arborescence se trouve sous le domaine in-addr.arpa (sous ip6.int pour ipv6)

– l’arborescence est subdivisée à partir de la notation classique sur 4 octets des numéros IPv4

Page 19: 1 DNS (Domain Name System). 2 DNS Sommaire –introduction –arborescence –architecture –base de données –une implémentation du DNS : BIND –Outils / ZoneCheck

19

Arborescence (12)

• Parcours de l’arbre et résolution inverse– le nom de domaine est inversé par apport au numéro IP

domaine : 133.2.1.193.in-addr.arpa.

pour le numéro IP : 193.1.2.133

– la descente dans l’arbre est représentée de la droite vers la gauche

– chaque niveau de l’arborescence est séparé par un point

Page 20: 1 DNS (Domain Name System). 2 DNS Sommaire –introduction –arborescence –architecture –base de données –une implémentation du DNS : BIND –Outils / ZoneCheck

20

Arborescence (13)

..

frfrnetnetarpaarpa

riperipe

whois = whois.ripe.netwhois = whois.ripe.net

in-addrin-addr

193193

11

22

133 = 133.2.1.193.in-addr.arpa133 = 133.2.1.193.in-addr.arpa

nicnic

comcom tntn

fftiffti

00 255255......

Page 21: 1 DNS (Domain Name System). 2 DNS Sommaire –introduction –arborescence –architecture –base de données –une implémentation du DNS : BIND –Outils / ZoneCheck

21

Arborescence (14)

• Le même mécanisme s’applique pour la sous arborescence in-addr.arpa comme pour les domaines « classiques » (nic.fr) : par exemple le domaine 11.193.in-addr.arpa est un sous domaine du 193.in-addr.arpa, le nœud 11.193.in-addr.arpa étant défini par sa base de données

• Tout numéro officiellement attribué à une machine doit être déclaré dans cette arborescence

Page 22: 1 DNS (Domain Name System). 2 DNS Sommaire –introduction –arborescence –architecture –base de données –une implémentation du DNS : BIND –Outils / ZoneCheck

22

Arborescence (15)

• Racine : environ 15 bases de données (serveurs de nom) répartis dans le monde connaissant tous les serveurs des domaines de 1er niveau (.fr .arpa .com … )

• serveur origine géré par l ’IANA / ICANN A.ROOT-SERVERS.NET

• serveurs miroirs de B.ROOT-SERVERS.NET à M.ROOT-SERVERS.NET

Page 23: 1 DNS (Domain Name System). 2 DNS Sommaire –introduction –arborescence –architecture –base de données –une implémentation du DNS : BIND –Outils / ZoneCheck

23

Arborescence (16)

• Top-level domain (TLD) : Domaine de 1er niveau - RFC 1591– à 2 lettres : code ISO-3166 de chaque pays– à 3

lettres : .com, .net, .org, .edu, .gov, .mil,.int– à 4 lettres : .arpa

Page 24: 1 DNS (Domain Name System). 2 DNS Sommaire –introduction –arborescence –architecture –base de données –une implémentation du DNS : BIND –Outils / ZoneCheck

24

Arborescence (17)

• Enregistrer un nom de domaine• Network Solutions : .com, .net, .org

– http://www.networksolutions.com• APNIC : Asie Pacifique NIC

– http://www.apnic.net• IANA : .us (rfc 1480), .edu, .gouv (Etats-Unis),

– http://www.isi.edu/in-notes/usdnr/• Une liste des autres NIC européens et mondiaux :

– http://www.nic.fr/Guides/AutresNics/

Page 25: 1 DNS (Domain Name System). 2 DNS Sommaire –introduction –arborescence –architecture –base de données –une implémentation du DNS : BIND –Outils / ZoneCheck

25

Architecture (1)

• Système clients/serveurs– client

• resolver : interface cliente permettant d’interroger un serveur

• les machines clientes pointent généralement vers un serveur par défaut (/etc/resolv.conf sur Unix)

– serveur• chaque serveur gère sa propre base de données

• optimisation par des systèmes de cache et de réplication

Page 26: 1 DNS (Domain Name System). 2 DNS Sommaire –introduction –arborescence –architecture –base de données –une implémentation du DNS : BIND –Outils / ZoneCheck

26

Architecture (2)

• Au dessus d ’IP– service s’exécutant sur le port 53

=> droits de super utilisateur– UDP et TCP

(TCP n’est pas réservé qu’au transfert de zoneet est utilisé si la taille de la réponse est supérieure à la limite d ’un paquet UDP de 512 octets)

• RFC 1035

Page 27: 1 DNS (Domain Name System). 2 DNS Sommaire –introduction –arborescence –architecture –base de données –une implémentation du DNS : BIND –Outils / ZoneCheck

27

Architecture (3)

• Fonctionnement du client : le resolver– permet de communiquer avec les serveurs DNS– 2 modes d’interrogation

• récursif : le client envoie une requête à un serveur, ce dernier devant interroger tous les autres serveurs nécessaires pour renvoyer la réponse complète au client (mode utilisé par les machines clientes en général)

• itératif : le client envoie une requête à un serveur, ce dernier renvoyant la réponse si il la connaît, ou le nom d’un autre serveur qu’il suppose plus renseigné pour résoudre cette question (mode utilisé par le resolver des serveurs en général)

Page 28: 1 DNS (Domain Name System). 2 DNS Sommaire –introduction –arborescence –architecture –base de données –une implémentation du DNS : BIND –Outils / ZoneCheck

28

..

serveurserveur

www.inria.fr ?www.inria.fr ?

Architecture (4)

resolverresolver

Machine AMachine A

serveuserveurr

rreessoollvveerr

int. récursiveint. récursivewww.inria.fr ?www.inria.fr ?

128.93.3.29128.93.3.29

frfr dede

..

voir serveur fr : ns1.nic.frvoir serveur fr : ns1.nic.fr

frfr

serveurserveur

www.inria.fr ?www.inria.fr ?

nic.frnic.fr inria.frinria.fr

voir serveur inria.fr : dns.inria.frvoir serveur inria.fr : dns.inria.fr

int. itérativeint. itérative

inria.frinria.fr

serveurserveur

www.inria.fr ?www.inria.fr ?

128.93.3.29128.93.3.29

Page 29: 1 DNS (Domain Name System). 2 DNS Sommaire –introduction –arborescence –architecture –base de données –une implémentation du DNS : BIND –Outils / ZoneCheck

29

Architecture (5)

• Serveurs– types de serveurs

• serveur cache• serveur

– « faisant suivre » (forwarder)

– « esclave » (slave - forwarder-only)

• serveur ayant autorité sur une (plusieurs) zone(s)– primaire (source des données)

– secondaire (miroir des données)

Page 30: 1 DNS (Domain Name System). 2 DNS Sommaire –introduction –arborescence –architecture –base de données –une implémentation du DNS : BIND –Outils / ZoneCheck

30

Architecture (6)

• Serveur cache– éviter la surcharge inutile du réseau– supprimer les délais du réseau– amoindrir la charge des autres serveurs

=> tout serveur possède en général au minimum un cache

Page 31: 1 DNS (Domain Name System). 2 DNS Sommaire –introduction –arborescence –architecture –base de données –une implémentation du DNS : BIND –Outils / ZoneCheck

31

Architecture (7)

• Serveur cache– configuration minimale

• base de données nécessaire – adresses des serveurs de la racine

– reverse du loopback 1.0.0.127.in-addr.arpa

• les données du cache possèdent une durée de vie limitée Time To Live - ttl) afin de permettre son rafraîchissement et la prise en compte des modifications

• il s’enrichit au fur et à mesure par les données récoltées pour résoudre les requêtes des clients=> une requête déjà demandée est résolue à partir du cache du serveur

Page 32: 1 DNS (Domain Name System). 2 DNS Sommaire –introduction –arborescence –architecture –base de données –une implémentation du DNS : BIND –Outils / ZoneCheck

32

Architecture (8)serveurserveur

rreessoollvveerr

frfr dede

nic.frnic.fr inria.frinria.fr

....

serveurserveur

frfr

serveurserveur

nic.frnic.fr

serveurserveur

int. récursiveint. récursiveint. itérativeint. itérative

resolverresolver

host Ahost Awww.inria.fr ?www.inria.fr ?

128.93.3.29128.93.3.29

cachecache

www.inria.frwww.inria.fr128.93.3.29128.93.3.29

Page 33: 1 DNS (Domain Name System). 2 DNS Sommaire –introduction –arborescence –architecture –base de données –une implémentation du DNS : BIND –Outils / ZoneCheck

33

Architecture (9)

resolverresolver

Machine AMachine A

serveuserveurr

rreessoollvveerr

ccaacchhee

int. itérativeint. itérative

inria.frinria.fr

serveurserveur

chronos.inria.fr ?chronos.inria.fr ? inria.frinria.fr

serveurserveur128.93.45.201128.93.45.201

int. récursiveint. récursive

chronos.inria.fr ?chronos.inria.fr ?

128.93.45.201128.93.45.201

Page 34: 1 DNS (Domain Name System). 2 DNS Sommaire –introduction –arborescence –architecture –base de données –une implémentation du DNS : BIND –Outils / ZoneCheck

34

Architecture (10)

• Serveur « faisant suivre » / esclave– ces types de serveurs possèdent une liste de serveurs à

interroger (le serveur fait suivre la requête reçue vers d’autres serveurs par une requête elle-même récursive)

– « faisant suivre »– vérifie si la réponse n ’est pas dans son cache– sinon fait suivre à un des serveurs la requête– en cas d’échec tente de résoudre lui même la demande

=> enrichissement rapide d’un cache partagé (au sein d ’un organisme pour ne pas surcharger la liaison vers l ’extérieur)

Page 35: 1 DNS (Domain Name System). 2 DNS Sommaire –introduction –arborescence –architecture –base de données –une implémentation du DNS : BIND –Outils / ZoneCheck

35

Architecture (11)

• Serveur « faisant suivre » / esclave• esclave

– vérifie si la réponse n ’est pas dans son cache

– sinon fait suivre à un des serveurs la requête

– en cas d ’échec avec tous les serveurs, il renvoie un code d’erreur

=> enrichissement rapide d ’un cache partagé pour un serveur n’ayant pas d’accès direct à tout l’Internet

Page 36: 1 DNS (Domain Name System). 2 DNS Sommaire –introduction –arborescence –architecture –base de données –une implémentation du DNS : BIND –Outils / ZoneCheck

36

Architecture (12)

• Serveur ayant autorité sur une (plusieurs) zone(s)– serveur primaire

• le serveur primaire d’une zone est la source des informations relatives à cette zone (il possède la base de donnée maître)

• il contient les informations à partir d’un fichier de données où l’on effectue les mises à jour.

• il a l’origine de l’autorité (Start Of Authority - SOA) sur cette zone

Page 37: 1 DNS (Domain Name System). 2 DNS Sommaire –introduction –arborescence –architecture –base de données –une implémentation du DNS : BIND –Outils / ZoneCheck

37

Architecture (13)

• Serveur ayant autorité sur une (plusieurs) zone(s)– serveur secondaire

• c ’est un miroir sauvegardé sur disque de la base de données maître

– fonction de sauvegarde

– de répartition de charge et d accessibilité

• le serveur secondaire d’une zone obtient les informations relatives à celle-ci automatiquement depuis un serveur primaire ou un autre secondaire

• il a également autorité sur cette zone

Page 38: 1 DNS (Domain Name System). 2 DNS Sommaire –introduction –arborescence –architecture –base de données –une implémentation du DNS : BIND –Outils / ZoneCheck

38

ccaacchhee

serveuserveurr

rreessoollvveerr

Architecture (14)

frfr dede

nic.frnic.fr inria.frinria.fr

....

serveurserveur

frfr

serveurserveur

nic.frnic.fr

serveurserveur

int. récursiveint. récursiveint. itérativeint. itérative

resolverresolver

host Ahost Awww.inria.fr ?www.inria.fr ?

128.93.3.29128.93.3.29

www.inria.fr ?www.inria.fr ?

=> fr : ns1.nic.fr=> fr : ns1.nic.fr

www.inria.fr ?www.inria.fr ?

=> inria.fr : dns.inria.fr=> inria.fr : dns.inria.fr

www.inria.fr ?www.inria.fr ?

128.93.3.29128.93.3.29

disqudisquee

authauth

Page 39: 1 DNS (Domain Name System). 2 DNS Sommaire –introduction –arborescence –architecture –base de données –une implémentation du DNS : BIND –Outils / ZoneCheck

39

Architecture (15)

• Rafraîchissement des données entres serveurs ayant autorités sur une zone– DNS Change Notification (RFC 1996)

• après la prise en compte de modifications de la part du serveur primaire, ce dernier notifie les serveurs secondaires qu’une nouvelle version de la zone a été générée

• ce système de mise à jour ne peut se faire qu’entre un primaire et un secondaire

• accélère le rafraîchissement des données par rapport au système classique

Page 40: 1 DNS (Domain Name System). 2 DNS Sommaire –introduction –arborescence –architecture –base de données –une implémentation du DNS : BIND –Outils / ZoneCheck

40

Architecture (16)

• Rafraîchissement des données entres serveurs autoritaires– système classique

• un serveur secondaire d’une zone interroge à intervalles réguliers le serveur primaire de cette zone pour voir si une modification a eu lieu. La fréquence est indiquée par le refresh défini dans le SOA

• ce type de mise à jour peut se faire entre un primaire et un secondaire ou entres secondaires

Page 41: 1 DNS (Domain Name System). 2 DNS Sommaire –introduction –arborescence –architecture –base de données –une implémentation du DNS : BIND –Outils / ZoneCheck

41

Architecture (17)

• Rafraîchissement des données entres serveurs autoritaires– la version d ’une zone est identifiée par son numéro de

série (serial) ; à chaque modification celui-ci doit être augmenté

– transfère de zone• le serveur secondaire transfère d’abord le SOA de la zone et

vérifie si le numéro de série a augmenté

• si c’est le cas toute la zone est transférée (transfère total - AXFR) ou seul les nouvelles modifications entre les 2 versions sont transférées (transfert incrémental - IXFR - RFC 1995)

Page 42: 1 DNS (Domain Name System). 2 DNS Sommaire –introduction –arborescence –architecture –base de données –une implémentation du DNS : BIND –Outils / ZoneCheck

42

Architecture (18)

• Rafraîchissement des données entres serveurs autoritaires– reprise en cas d ’échec

• en cas d ’échec de cette interrogation, le secondaire recommence toutes les retry secondes jusqu’à atteindre le temps d’expiration (expire), ces valeurs étant fixés également dans le SOA

Page 43: 1 DNS (Domain Name System). 2 DNS Sommaire –introduction –arborescence –architecture –base de données –une implémentation du DNS : BIND –Outils / ZoneCheck

43

Architecture (19)

• Remarques– un serveur peut être à la fois serveur cache et

autoritaire pour des zones : le cache possède alors des informations locales et non locales

– un serveur peut être à la fois primaire pour des zones et secondaire pour d’autres zones

Page 44: 1 DNS (Domain Name System). 2 DNS Sommaire –introduction –arborescence –architecture –base de données –une implémentation du DNS : BIND –Outils / ZoneCheck

44

Architecture (20)

• Remarques– mode de fonctionnement d’un serveur

• récursif – le serveur résout les requêtes récursives des clients et garde

les informations obtenues dans son cache

=> le cache stocke des informations pour lesquelles le serveur n ’a pas autorité

– serveurs cache de campus par exemple

Page 45: 1 DNS (Domain Name System). 2 DNS Sommaire –introduction –arborescence –architecture –base de données –une implémentation du DNS : BIND –Outils / ZoneCheck

45

Architecture (21)

• Remarques– mode de fonctionnement d’un serveur

• itératif – il répond toujours en fonction des données qu’il possède

localement

=> ne construit pas de cache pour des données non locales (serveurs de la racine)

=> une machine cliente (d’utilisateur final) ne doit jamais pointer sur un serveur de ce type comme serveur par défaut

– mode permettant de limiter la charge d’un serveur (il ne résout pas toute la requête)=> serveurs de la racine, serveurs ayant autorités pour un grand nombre de zones

Page 46: 1 DNS (Domain Name System). 2 DNS Sommaire –introduction –arborescence –architecture –base de données –une implémentation du DNS : BIND –Outils / ZoneCheck

46

Architecture (22)

• A

– NSI USA

• B

• ISI USC USA

• C

• PSI USA

• D

• UNIV. MARYLAND

• E• NASA USA

• F• ISC USA

• G• DOD NIC USA

HArmy Resarch Lab USA

INORDU SUEDE

JNSI USA

KRIPE NCC LINX UK

LISI USA

MWide Project JAPON

Page 47: 1 DNS (Domain Name System). 2 DNS Sommaire –introduction –arborescence –architecture –base de données –une implémentation du DNS : BIND –Outils / ZoneCheck

47

FM E D J

K

I

L

B

A C G H

Page 48: 1 DNS (Domain Name System). 2 DNS Sommaire –introduction –arborescence –architecture –base de données –une implémentation du DNS : BIND –Outils / ZoneCheck

48

Page 49: 1 DNS (Domain Name System). 2 DNS Sommaire –introduction –arborescence –architecture –base de données –une implémentation du DNS : BIND –Outils / ZoneCheck

49

Base de données (1)

• Fichier de configuration du serveur

• Fichier des serveurs de la racine

• Un fichier par zone décrivant son contenu– au moins le fichier du reverse loopback

1.0.0.127.in-addr.arpa

Page 50: 1 DNS (Domain Name System). 2 DNS Sommaire –introduction –arborescence –architecture –base de données –une implémentation du DNS : BIND –Outils / ZoneCheck

50

Base de données (2)

• Fichier de configuration– localisation des données

fichier serveurs de la racinefichiers de zone

– déclaration de l’autorité sur des zonesprimaire / secondaire

– mode de fonctionnement général• récursif/itératif

• « faisant suivre », esclave, ....

Page 51: 1 DNS (Domain Name System). 2 DNS Sommaire –introduction –arborescence –architecture –base de données –une implémentation du DNS : BIND –Outils / ZoneCheck

51

Base de données (3)

• Fichier des serveurs de la racine– permet de démarrer la résolution d ’une requête si le

serveur n’a aucune information– contient la liste des serveurs de nom et leur numéro IP– primaire : A.ROOT-SERVERS.NET.– une quinzaine de serveurs secondaires à travers le

monde– peut être générer de la façon suivante :

dig @a.root-servers.net . ns > root.cache

Page 52: 1 DNS (Domain Name System). 2 DNS Sommaire –introduction –arborescence –architecture –base de données –une implémentation du DNS : BIND –Outils / ZoneCheck

52

Base de données (4)

• Fichier de zone– contient les données propre à chaque zone– consiste en une liste de Ressource Records

(RR)– le premier RR doit être le SOA (Start of Authorithy)

qui décrit l’autorité technique de la zone– directives spéciales

Page 53: 1 DNS (Domain Name System). 2 DNS Sommaire –introduction –arborescence –architecture –base de données –une implémentation du DNS : BIND –Outils / ZoneCheck

53

Base de données (5)

• Directives spéciales– $ORIGIN

spécifie le nom de domaine à jouter à des enregistrements non pleinement qualifies (non suffixé par un point)

syntaxe : $ORIGIN <domaine> [<commentaire>]

Page 54: 1 DNS (Domain Name System). 2 DNS Sommaire –introduction –arborescence –architecture –base de données –une implémentation du DNS : BIND –Outils / ZoneCheck

54

Base de données (6)

• Directives spéciales– $ORIGIN - exemple

$ORIGIN exemple. $ORIGIN mon-domainewww IN CNAME serveur=> équivalent à :www. mon-domaine.exemple. IN CNAME serveur. mon-domaine.exemple.

Par défaut $ORIGIN est positionné au nom du domaineque le fichier de zone décrit

Page 55: 1 DNS (Domain Name System). 2 DNS Sommaire –introduction –arborescence –architecture –base de données –une implémentation du DNS : BIND –Outils / ZoneCheck

55

Base de données (7)

• Directives spéciales– $INCLUDE

permet d’inclure un fichier dans le fichier de zone

syntaxe : $INCLUDE <fichier> [<origin>] [<comment>]

Si <origin> n’est pas spécifié la valeur courante est utilisée

Page 56: 1 DNS (Domain Name System). 2 DNS Sommaire –introduction –arborescence –architecture –base de données –une implémentation du DNS : BIND –Outils / ZoneCheck

56

Base de données (8)

• Directives spéciales– $TTL (RFC 2308 - bind 8.2)

spécifie le Time To Live par défaut à appliquer aux enregistrements qui n’ont pas ce paramètre de spécifié dans leur déclaration

syntaxe : $TTL <valeur> [<commentaire>]

valeur [0 - 2147483647]

Page 57: 1 DNS (Domain Name System). 2 DNS Sommaire –introduction –arborescence –architecture –base de données –une implémentation du DNS : BIND –Outils / ZoneCheck

57

Base de données (9)

• Directives spéciales– $TTL

en règle générale lors de modification d ’une ressource importante il faut abaisser cette valeur (à quelques minutes) ttl+refresh (spécifié dans le SOA) AVANT la modification pour que celle-ci se propage rapidement

Page 58: 1 DNS (Domain Name System). 2 DNS Sommaire –introduction –arborescence –architecture –base de données –une implémentation du DNS : BIND –Outils / ZoneCheck

58

Base de données (10)

• t1 : date de l’abaissement du ttl de la ressouce

• t2 : date de la modification de la ressource elle-même

temps

t1 t2

ttl + refresh

Page 59: 1 DNS (Domain Name System). 2 DNS Sommaire –introduction –arborescence –architecture –base de données –une implémentation du DNS : BIND –Outils / ZoneCheck

59

Base de données (11)

• Structure d ’un RR - RFC 1034< nom | @ > [<ttl>] [<classe>] <type> <données> [<commentaire>]

<nom> : nom de l ’enregistrement auquel vont s’appliquer les informations

@ : utilise la veleur courante de $ORIGIN comme nom

<ttl> : durée de vie, en secondes, de l’enregistrement dans les caches

<classe> : groupe d’appartenance - IN pour Internet

<type> : type de l’enregistrement

<données> : données associées au type

Page 60: 1 DNS (Domain Name System). 2 DNS Sommaire –introduction –arborescence –architecture –base de données –une implémentation du DNS : BIND –Outils / ZoneCheck

60

Base de données (12)

• Principaux RR - SOA (Start Of Autority) caractéristiques techniques de la zone :

zone IN SOA primaire. email. (

serial

refresh

retry

expire

ttl )

Page 61: 1 DNS (Domain Name System). 2 DNS Sommaire –introduction –arborescence –architecture –base de données –une implémentation du DNS : BIND –Outils / ZoneCheck

61

Base de données (13)

• Principaux RR - SOA

email : contact technique de la zoneremplacer le @ par le premier point non protégé (\)

l’email doit être suivi d ’un point

francis\.dupont.inria.fr.

pour

[email protected]

Page 62: 1 DNS (Domain Name System). 2 DNS Sommaire –introduction –arborescence –architecture –base de données –une implémentation du DNS : BIND –Outils / ZoneCheck

62

Base de données (14)

• Principaux RR - SOA

numéro de série : spécifie la version des données de la zoneincrémenter ce numéro à chaque modification (entier sur 32 bits)

format conseillé : YYYYMMDDxx

1997052702

Page 63: 1 DNS (Domain Name System). 2 DNS Sommaire –introduction –arborescence –architecture –base de données –une implémentation du DNS : BIND –Outils / ZoneCheck

63

Base de données (15)

• Principaux RR - SOArefresh : intervalle, en secondes, entre 2 vérifications du

numéro de série par les secondaires (24H - 86400-; à ajuster si la zone est souvent modifiée)

retry : intervalle en seconde entre 2 vérifications du numéro de série par les secondaires si la 1ére vérification a échouée (6H -21400-; à ajuster en fonction de sa connectivité)

expire : durée d ’expiration de la zone sur un secondaire (41 jours -360000-)

retry<<refresh<<expire

Page 64: 1 DNS (Domain Name System). 2 DNS Sommaire –introduction –arborescence –architecture –base de données –une implémentation du DNS : BIND –Outils / ZoneCheck

64

Base de données (16)

• Principaux RR - SOAttl (time to live) - RFC 2308 - Negative caching

spécifie le TTL pour le « negative caching », soit le temps que doit rester dans les caches une réponse négative suite à une question sur ce domaine (valeur recommandé de 1 à 3 heure).Il existe 2 types de réponses négatives :

• NXDOMAIN : aucun enregistrements ayant le nom demandé dans la classe (IN) n’existe dans cette zone

• NODATA : aucune donnée pour le triplet (nom, type, classe) demandé existe ; il existe d’autre enregistrements possédant ce nom, mais de type différent

Page 65: 1 DNS (Domain Name System). 2 DNS Sommaire –introduction –arborescence –architecture –base de données –une implémentation du DNS : BIND –Outils / ZoneCheck

65

Base de données (17)

•Principaux RR - NS (Name Server) indique un serveur de nom pour le nom spécifié (ce nom devient une zone dont la délégation est donnée au serveur en partie droite)

zone IN NS serveur-nom1.domaine.

IN NS serveur-nom2.domaine.

Il faut spécifier les serveurs de noms de la zone que l ’on décrit (associée au SOA)

Page 66: 1 DNS (Domain Name System). 2 DNS Sommaire –introduction –arborescence –architecture –base de données –une implémentation du DNS : BIND –Outils / ZoneCheck

66

Base de données (18)

$ORIGIN nic.fr.$TTL 86400@ IN SOA ns1.nic.fr. hostmaster.nic.fr. (

1997052704 ;serial86400 ;refresh21600 ;retry360000 ;expire3600 ; negative caching ttl )

IN NS ns1.nic.fr.IN NS ns2.nic.fr.

www IN CNAME ns2.nic.frftp 21600 IN A 192.34.4.45

Page 67: 1 DNS (Domain Name System). 2 DNS Sommaire –introduction –arborescence –architecture –base de données –une implémentation du DNS : BIND –Outils / ZoneCheck

67

Base de données (19)

• Principaux RR - A (Adresse IPv4)

indique l ’adresse IP associée à un nom

machine.domaine. IN A 193.10.20.30

A6 : Adresse IPv6

Page 68: 1 DNS (Domain Name System). 2 DNS Sommaire –introduction –arborescence –architecture –base de données –une implémentation du DNS : BIND –Outils / ZoneCheck

68

Base de données (20)

• Principaux RR - PTR (Pointeur)

indique le nom associé à un numéro IP dans l ’arborescence in-addr.arpa (ip6.int)

10.20.30.192.in-addr.arpa. IN PTRmachine.domaine.

Page 69: 1 DNS (Domain Name System). 2 DNS Sommaire –introduction –arborescence –architecture –base de données –une implémentation du DNS : BIND –Outils / ZoneCheck

69

Base de données (21)• Principaux RR - CNAME (Canonical Name)

indique que le nom est un alias vers un autre nom (le nom canonique)

alias IN CNAME nom.canonique.

Nota

– un nom en partie droite d’un enregistrement (<données>) ne doit pas pointer vers un alias

– quand un nom a déjà un CNAME il est interdit de faire figurer d’autres enregistrements pour ce nom

Page 70: 1 DNS (Domain Name System). 2 DNS Sommaire –introduction –arborescence –architecture –base de données –une implémentation du DNS : BIND –Outils / ZoneCheck

70

Base de données (22)

• Principaux RR - CNAME (Canonical Name) - faux

zone. IN MX 10 alias.zone.

alias.zone. IN CNAME relais.zone.

zone. IN NS alias.zone.

alias.zone. IN CNAME serveur.zone.

zone. IN SOA …….(…..)zone. IN CNAME www.zone.

Page 71: 1 DNS (Domain Name System). 2 DNS Sommaire –introduction –arborescence –architecture –base de données –une implémentation du DNS : BIND –Outils / ZoneCheck

71

Base de données (23)

• Principaux RR - CNAME (Canonical Name) - correct

zone. IN MX 10 relais.zone.

relais.zone. IN A 193.1.2.3

alias2.zone. IN CNAME alias1.zone.

alias1.zone. IN CNAME canonical.zone.

zone. IN SOA …….(…..)zone. IN A 193.2.3.4Et l ’enregistrement PTR correspondant dans les reverses

Page 72: 1 DNS (Domain Name System). 2 DNS Sommaire –introduction –arborescence –architecture –base de données –une implémentation du DNS : BIND –Outils / ZoneCheck

72

Base de données (24)Fichier de zone pour nic.fr

$ORIGIN nic.fr.

$TTL 86400@ IN SOA ns1.nic.fr. hostmaster.nic.fr. (

1997052704 ;serial86400 ;refresh21600 ;retry360000 ;expire3600 ;negative ttl )

IN NS ns1.nic.fr.IN NS ns2.nic.fr.

; Suitens1 IN A 193.10.20.30ns2 IN A 192.5.6.7machine IN A 193.10.20.31www IN CNAME machinelocalhost IN A 127.0.0.1

Page 73: 1 DNS (Domain Name System). 2 DNS Sommaire –introduction –arborescence –architecture –base de données –une implémentation du DNS : BIND –Outils / ZoneCheck

73

Base de données (25)

• Fichier du reverse 0.0.127.in-addr.arpa– personne n’a la responsabilité de ce reverse pour le

numéro 127.0.0.1dans la hiérarchie in-addr.arpa.– le système l’utilise pour la résolution de requête

vers lui-même => si on ne le configure pas sur le serveur cette requête peut échouer :

• root serveur contacté mal configuré => code erreur

• renvoie autre chose que localhost

Page 74: 1 DNS (Domain Name System). 2 DNS Sommaire –introduction –arborescence –architecture –base de données –une implémentation du DNS : BIND –Outils / ZoneCheck

74

Base de données (26)

Fichier de zone pour 0.0.127.in-addr.arpa.

0.0.127.in-addr.arpa IN SOA ns1.nic.fr. hostmaster.nic.fr. (1997052704 ;serial

86400 ;refresh21600 ;retry360000 ;expire3600 ;negative ttl )

IN NS ns1.nic.fr.

1.0.0.127.in-addr.arpa. IN PTR localhost.nic.fr.

Page 75: 1 DNS (Domain Name System). 2 DNS Sommaire –introduction –arborescence –architecture –base de données –une implémentation du DNS : BIND –Outils / ZoneCheck

75

DNS et SMTP (1)• Principaux RR - MX (Mail eXchanger)

email à quelqu-un@nomOn cherche dans le DNS un MX indiquant la machine sur laquelle il faut envoyer le courrier pour nom. Un paramètre précise le poids relatif de l ’enregistrement MX : si plusieurs MX existent, le courrier est envoyé en 1er à la machine ayant le poids le plus bas, puis dans l ’ordre croissant des poids en cas d'échec

nom IN MX 10 nom.relais1.

IN MX 20 nom.relais2.

IN MX 30 nom.relais3.

Page 76: 1 DNS (Domain Name System). 2 DNS Sommaire –introduction –arborescence –architecture –base de données –une implémentation du DNS : BIND –Outils / ZoneCheck

76

DNS et SMTP (2)

• Principaux RR - MX (Mail eXchanger)Envoi d ’un message à nom - RFC 974

- (1) trie les MX par ordre croissant et contact les machines dans cet ordre ; si une connexion est établie => transfert ; sinon mail mis en file d’attente

- (2) transfert sur nom.relais1 : le mail est traité localement

- (3) transfert sur l’une des autres machines: on trie de nouveau les MX en supprimant les entrées de préférence supérieure on égale à celle associée à cette machine ; si la liste est vide => erreur de configuration ; sinon on tente de contacter les machines de la même manière qu’en (1)

Page 77: 1 DNS (Domain Name System). 2 DNS Sommaire –introduction –arborescence –architecture –base de données –une implémentation du DNS : BIND –Outils / ZoneCheck

77

DNS et SMTP (3)• Principaux RR - MX (Mail eXchanger)

– wilcard MXnic.fr. IN MX 10 relais.nic.fr.*.nic.fr. IN MX 10 relais.nic.fr.=> associe le MX à tout nom inconnu dans le domaine, il n’est utilisé qu’en l’absence de tout autre RR associé à un nom.

Exemple :nom.nic.fr. IN A IP

=> pas de MX hérité des wilcards pour nom=> associer systématiquement un MX à chaque fois que l ’on définit un A RR et éviter les wilcards

Page 78: 1 DNS (Domain Name System). 2 DNS Sommaire –introduction –arborescence –architecture –base de données –une implémentation du DNS : BIND –Outils / ZoneCheck

78

DNS et SMTP (4)

• Principaux RR - MX (Mail eXchanger)Si il n ’y a pas de MX associé à nom :

• SMTP utilise l ’adresse IP associé à ce nom (A RR)nom IN A IP

• si il n ’y a pas de RR, SMTP utilise les enregistrement wildcard MX

• si il n ’y a pas de wildcard MX => erreur

Page 79: 1 DNS (Domain Name System). 2 DNS Sommaire –introduction –arborescence –architecture –base de données –une implémentation du DNS : BIND –Outils / ZoneCheck

79

Délégation et sous domaine (1)• faire figurer la délégation dans la zone parente => il

s’agit d’enregistrement NS

• zone parente $TTL 86400nic.fr. IN SOA ns1.nic.fr. hostmaster.nic.fr. (

1997052704 ;serial86400 ;refresh21600 ;retry360000 ;expire3600 ;negative ttl )

IN NS ns1.nic.fr.IN NS ns2.nic.fr.

ns1.nic.fr. IN A 193.10.20.30ns2.nic.fr. IN A 192.5.6.7fille.nic.fr. IN NS ns1.inria.fr.

IN NS ns.urec.fr.

Page 80: 1 DNS (Domain Name System). 2 DNS Sommaire –introduction –arborescence –architecture –base de données –une implémentation du DNS : BIND –Outils / ZoneCheck

80

Délégation et sous domaine (2)

• zone déléguée$ORIGIN fille.nic.fr.

$TTL 86400

@ IN SOA ns1.inria.fr. hostmaster.inria.fr. (1997052704 ;serial

86400 ;refresh21600 ;retry360000 ;expire3600 ;negative ttl )

IN NS ns1.inria.fr.

IN NS ns.urec.fr.

Page 81: 1 DNS (Domain Name System). 2 DNS Sommaire –introduction –arborescence –architecture –base de données –une implémentation du DNS : BIND –Outils / ZoneCheck

81

Délégation et sous domaine (3)

• Utilisation de la glue– permet d’établir des liens nom => IP avec les sous

zones pour la cohérence de l ’arbre DNS– elle n’est nécessaire dans le cas ou les serveurs de la

zone fille sont dans la même arborescence que le domaine fille.domaine.

– en cas de changement d ’adresse IP il faut modifier la zone fille et la zone parente

Page 82: 1 DNS (Domain Name System). 2 DNS Sommaire –introduction –arborescence –architecture –base de données –une implémentation du DNS : BIND –Outils / ZoneCheck

82

Délégation et sous domaine (4)

• dans le fichier de zone nic.frfille.nic.fr. IN NS ns1.fille.nic.fr.

IN NS ns.urec.fr.

ns1.fille.nic.fr. IN A 192.5.6.7

• dans le fichier de zone fille.nic.frfille.nic.fr. IN SOA ns1.inria.fr. hostmaster.inria.fr. (

1997052704 ;serial86400 ;refresh21600 ;retry360000 ;expire3600 ;negative ttl )

IN NS ns1.fille.nic.fr.IN NS ns.urec.fr.

ns1.fille.nic.fr. IN A 192.5.6.7

Page 83: 1 DNS (Domain Name System). 2 DNS Sommaire –introduction –arborescence –architecture –base de données –une implémentation du DNS : BIND –Outils / ZoneCheck

83

BIND (1)

• Historique– JEEVES : première implémentation du DNS par Paul

Mockapetris (1984)– BIND (The Berkeley Internet Name Domain)

implémentation suivante sur système 4.3BSD UNIX par Kevin Dunlap

• Aujourd’hui– BIND maintenu par Paul Vixie avec l ’Internet Software

Consortium

Page 84: 1 DNS (Domain Name System). 2 DNS Sommaire –introduction –arborescence –architecture –base de données –une implémentation du DNS : BIND –Outils / ZoneCheck

84

BIND (2)

• Deux parties– la partie serveur de noms : implémentée par la

commande named (ou in.named) et named-xfer (ou in.named-xfer) pour les transfert de zone

– la partie client : bibliothèque C (libresolv.a ou libresolv.so.x) avec laquelle sont liées toutes les applications utilisant le DNS. Cette bibliothèque contient notamment une version de gethostbyname(3) et gethostbyaddr(3) qui utilisent le DNS.

Page 85: 1 DNS (Domain Name System). 2 DNS Sommaire –introduction –arborescence –architecture –base de données –une implémentation du DNS : BIND –Outils / ZoneCheck

85

BIND (3)• Développé par l’Internet Software Consortium

– http://www.isc.org/– http://www.isc.org/bind.html

• Sources disponibles– ftp://ftp.isc.org/isc/src/cur (version courante)– ftp://ftp.isc.org/isc/src/testing (version en développement)– ftp://ftp.nic.fr/pub/programmes/DNS/

• News– comp.protocols.dns.bind– comp.protocols.dns.ops– comp.protocols.dns.std

Page 86: 1 DNS (Domain Name System). 2 DNS Sommaire –introduction –arborescence –architecture –base de données –une implémentation du DNS : BIND –Outils / ZoneCheck

86

BIND (4)• Versions

– 4.9.7• dernière version de la série 4.x

• fichier de configuration named.boot

– 8.2.2 P5• implémentation des derniers RFCs

– Dynamic Updates - RFC 2136– Change Notification par défaut - RFC 1996– IXFR - RFC 1995 (expérimental)– Secure DNS - RFC 2535 + dnskeygen– $TTL - RFC 2308

• nouveau format du fichier de configuration named.conf• transfert de zone plus performant (format many-answers)• pas de libresolv partagée ; la librairie statique s’appelle libbind.a

Page 87: 1 DNS (Domain Name System). 2 DNS Sommaire –introduction –arborescence –architecture –base de données –une implémentation du DNS : BIND –Outils / ZoneCheck

87

BIND - serveur cache (5)

• Version 4 - fichier de config named.boot

; répertoire des données

directory /usr/local/bind/data

cache . root.cache

; primaire zone fichier

primary 0.0.127.in-addr.arpa db.localrev

Page 88: 1 DNS (Domain Name System). 2 DNS Sommaire –introduction –arborescence –architecture –base de données –une implémentation du DNS : BIND –Outils / ZoneCheck

88

BIND - serveur cache (6)• Version 8 - fichier de config named.conf

// répertoire des données

options {

directory «/usr/local/bind/data»;

};

// cache des serveurs de la racinezone «.» in {

type hint;file «root.cache»;

};

// zone primaire du reverse loopback

zone «0.0.127.in-addr.arpa» {

type master;

file «db.localrev»;

};

Page 89: 1 DNS (Domain Name System). 2 DNS Sommaire –introduction –arborescence –architecture –base de données –une implémentation du DNS : BIND –Outils / ZoneCheck

89

BIND - serveur cache esclave (7)• Version 4 - fichier de config named.boot

; serveur cache esclave

; répertoire des données

directory /usr/local/bind/data

cache . root.cache

; primaire zone fichier

primary 0.0.127.in-addr.arpa db.localrev

; on fait tout suivre

forwarders 192.1.2.3 193.1.2.3

; ou slave pour version < 4.9.3

options forward-only

Page 90: 1 DNS (Domain Name System). 2 DNS Sommaire –introduction –arborescence –architecture –base de données –une implémentation du DNS : BIND –Outils / ZoneCheck

90

BIND - serveur cache esclave(8)• Version 8 - fichier de config named.conf

options {

directory «/usr/local/bind/data»; // répertoire des données

// on fait tout suivre

forwarders {192.1.2.3 ; 193.1.2.3 };

options forward-only ;

};

zone «.» { // cache des serveurs de la racinetype hint ;file «root.cache»;

};

zone «0.0.127.in-addr.arpa» {

type master;

file «db.localrev »;

};

Page 91: 1 DNS (Domain Name System). 2 DNS Sommaire –introduction –arborescence –architecture –base de données –une implémentation du DNS : BIND –Outils / ZoneCheck

91

BIND - serveur autoritaire et cache (9)

• Version 4 - fichier de config named.boot

; serveur ayant autorité et cache

directory /usr/local/bind/data

cache . root.cache

; primaire zone fichier

primary 0.0.127.in-addr.arpa db.localrev

primary nic.fr db.nic.fr

primary 30.20.192.in-addr.arpa db.nic-rev

; secondaire zone ip serv auth fichier

secondary inria.fr 192.1.1.1 db.inria.fr

Page 92: 1 DNS (Domain Name System). 2 DNS Sommaire –introduction –arborescence –architecture –base de données –une implémentation du DNS : BIND –Outils / ZoneCheck

92

BIND - serveur autoritaire et cache (10)

• Version 8 - fichier de config named.confoptions {

directory «/usr/local/bind/data»; // répertoire des données

};

zone «.» { // cache des serveurs de la racinetype hint;file «root.cache»;

};

zone «0.0.127.in-addr.arpa» { // zone primaire

type master;

file «db.localrev»;

};

Page 93: 1 DNS (Domain Name System). 2 DNS Sommaire –introduction –arborescence –architecture –base de données –une implémentation du DNS : BIND –Outils / ZoneCheck

93

BIND - serveur autoritaire et cache (11)• Version 8 - fichier de config named.conf - suite

zone «nic.fr» { // zone primaire

type master;

file «db.nic.fr»;

};

zone «30.20.192.in-addr.arpa» { // zone primaire

type master;

file «db.nic-rev»;

};

zone «inria.fr» { // zone secondaire

type slave;

file «db.inria.fr»;

masters {192.1.1.1 ; };

};

Page 94: 1 DNS (Domain Name System). 2 DNS Sommaire –introduction –arborescence –architecture –base de données –une implémentation du DNS : BIND –Outils / ZoneCheck

94

BIND - serveur autoritaire (12)

• Version 4 - fichier de config named.boot; serveur ayant autorité et iteratif

directory /usr/local/bind/data

cache . root.cache

; primairezone fichier

primary 0.0.127.in-addr.arpa db.localrev

primary nic.fr db.nic.fr

primary 30.20.10.in-addr.arpa db.nic-rev

; non recursif

options no-recursion

Page 95: 1 DNS (Domain Name System). 2 DNS Sommaire –introduction –arborescence –architecture –base de données –une implémentation du DNS : BIND –Outils / ZoneCheck

95

BIND - serveur autoritaire (13)• Version 8 - fichier de config named.conf

options {directory «/usr/local/bind/data»;recursion no; // non récursif

};

zone «.» {type hint;file «root.cache»;

};

zone «0.0.127.in-addr.arpa» {type  master;file «db.localrev»;

};

Page 96: 1 DNS (Domain Name System). 2 DNS Sommaire –introduction –arborescence –architecture –base de données –une implémentation du DNS : BIND –Outils / ZoneCheck

96

BIND - serveur autoritaire (14)

• Version 8 - fichier de config named.conf - suite

zone «nic.fr» {type  master;file «db.nic.fr»;

};

zone «30.20.10.in-addr.arpa» {type master;file « db.nic-rev»;

};

Page 97: 1 DNS (Domain Name System). 2 DNS Sommaire –introduction –arborescence –architecture –base de données –une implémentation du DNS : BIND –Outils / ZoneCheck

97

BIND (15) - Version 8

• générer named.conf à partir de named.boot– outil de conversion

bin/named/named-bootconf.pl– exemple de fichier named.conf

bin/named/named.conf

Page 98: 1 DNS (Domain Name System). 2 DNS Sommaire –introduction –arborescence –architecture –base de données –une implémentation du DNS : BIND –Outils / ZoneCheck

98

BIND (16)

• Relancer le serveur– kill -HUP pid

• Debugger– Dump du contenu du cache => kill -INT pid

• le résultat est dans un fichier named_dump.db

– Passage en mode debug avec trace dans le fichier named.run => kill -USR1 pid

• chaque nouvelle utilisation de cette commande augmente le niveau de début

• arrêt de ce mode => kill -USR2 pid

Page 99: 1 DNS (Domain Name System). 2 DNS Sommaire –introduction –arborescence –architecture –base de données –une implémentation du DNS : BIND –Outils / ZoneCheck

99

Outils• Dans le package BIND

– nslookup– dig (domain information groper)– host– h2n (convertit un fichier /etc/hosts en fichiers de zone)– checksoa

• Ripe– ftp://ftp.ripe.net/tools/dns/host.tar.Z

• A. Romão : Tools for DNS debugging– ftp://ftp.ripe.net/rfc/rfc1713.txt

• NIC France – http://www.nic.fr/ZoneCheck/

Page 100: 1 DNS (Domain Name System). 2 DNS Sommaire –introduction –arborescence –architecture –base de données –une implémentation du DNS : BIND –Outils / ZoneCheck

100

Pièges à éviter (1)

– La durée refresh est d’au moins une heure,– La durée retry est d’au moins une heure,– la durée expire est d’au moins une semaine et est très

supérieur à la durée refresh,– la durée TTL est d’au moins une heure pour les

enregistrements SOA et NS pour une zone stable– la durée du negative TTL doit être inférieure à 7 jours– Le numéro de série de la zone est cohérent sur chacun des

Name Server .

Page 101: 1 DNS (Domain Name System). 2 DNS Sommaire –introduction –arborescence –architecture –base de données –une implémentation du DNS : BIND –Outils / ZoneCheck

101

Pièges à éviter (2)

– Problème avec les Name Server • NS not reachable, NS not set up

– Domaine pas complètement nommé(oublie du point final)

$ORIGIN 0.0.193.in-addr.arpa.

1 PTR ns1.nic.fr

est résolue comme :

1 PTR ns1.nic.fr.0.0.193.in-addr.arpa

– La zone n’est pas installée sur les Name Server annoncés dans la zone parente.

Page 102: 1 DNS (Domain Name System). 2 DNS Sommaire –introduction –arborescence –architecture –base de données –une implémentation du DNS : BIND –Outils / ZoneCheck

102

Zone Check (1)

• Disponible à l’URL suivant : – http://www.nic.fr/ZoneCheck

• Les sources sont disponibles à l’URL suivant :– http://www.nic.fr/ZoneCheck/sources.html

Page 103: 1 DNS (Domain Name System). 2 DNS Sommaire –introduction –arborescence –architecture –base de données –une implémentation du DNS : BIND –Outils / ZoneCheck

103

Zone Check (2)

• Utilisation de cet outil qui vérifie la validité de l’installation d’un nom de domaine.

– renseigner le nom de la zone ou directement le n° du ticket attribué au nom de domaine.

– renseigner la méthode pour obtenir les infos concernants ce nom de domaine.

• Formulaire libre : remplir à la main les différents noms des serveurs de noms et les adresse IP si nécessaire.

• DNS pour zone existante (dns) : récupère automatiquement les noms des serveurs de noms pour la zone.

Page 104: 1 DNS (Domain Name System). 2 DNS Sommaire –introduction –arborescence –architecture –base de données –une implémentation du DNS : BIND –Outils / ZoneCheck

104

Zone Check (3)• Le lancement de la vérification, plusieurs choix :

– Inclure les messages d’aide,• Affiche des messages supplémentaires lors d’erreurs.

– Vérifier la base RIPE,• Test l’existence des enregistrement inetnum et route dans la base

RIPE.– Vérifier l’envoi de courrier électronique au zone-contact,

• Vérifie l’existence des adresses électroniques des responsables de la zone.

– Vérifier le contenu de la zone,• Vérifie la validité de la zone sur les Name Server .

– avec des icônes,– le nom du serveur whois.

• Permet de changer le nom du serveur whois, par défaut est whois-ripe.nic.fr

Page 105: 1 DNS (Domain Name System). 2 DNS Sommaire –introduction –arborescence –architecture –base de données –une implémentation du DNS : BIND –Outils / ZoneCheck

105

Zone Check (4)

• Vérification de la connexion TCP :– ping sur le port 53 du serveur de nom.

• Vérification de la zone sur le serveur :• Vérification de la liste de NS présente sur ce serveur • Vérification de la liste des serveurs de noms de la

racine connus de ce serveur :• Vérification de l’enregistrement SOA de in-addr.arpa :• Vérification de l’enregistrement SOA de fr

Page 106: 1 DNS (Domain Name System). 2 DNS Sommaire –introduction –arborescence –architecture –base de données –une implémentation du DNS : BIND –Outils / ZoneCheck

106

Zone Check (5)• Vérification des mappings inverses du n° IP de chaque Name

Server :• Vérification des mappings inverses de 127.0.0.1 de chaque

Name Server :• Test des checksums UDP :

– Validité des paquets UDP– Recompiler le noyau pour SUN/OS après avoir modifié le

fichier : /usr/kvm/sys/netinet/in_proto.c, et changer la ligne :int udp_cksum = 0; /* turn off to check & generate udp checksums */

enint udp_cksum = 1; /* turn on to check & generate udp checksums */

Page 107: 1 DNS (Domain Name System). 2 DNS Sommaire –introduction –arborescence –architecture –base de données –une implémentation du DNS : BIND –Outils / ZoneCheck

107

Zone Check (6)

• Vérification de l’enregistrement inetnum dans la base RIPE :

• Vérification de l’enregistrement route dans la base RIPE :

• Vérification de l’adresse IP des autres serveurs de la zone :

Page 108: 1 DNS (Domain Name System). 2 DNS Sommaire –introduction –arborescence –architecture –base de données –une implémentation du DNS : BIND –Outils / ZoneCheck

108

Zone Check (7)

• Vérification de l’enregistrement SOA.– vérification des RR :

• SERIAL

• PRIMARY

• CONTACT

• REFRESH

• RETRY

• EXPIRE

• TTL

Page 109: 1 DNS (Domain Name System). 2 DNS Sommaire –introduction –arborescence –architecture –base de données –une implémentation du DNS : BIND –Outils / ZoneCheck

109

Zone Check (8)

• Vérification des MX Record pour le nom de domaine.

• Vérification des adresses de courrier électronique– Tout relais de messagerie SMTP doit implémenter la

commande VRFY conformément aux RFC’s aujourd’hui en vigueur; voir entre autre le RFC 1123 paragraphe 5.2.3 (VRFY and EXPN commands) et les rappels dans les RFC’s 1425, 1651, 1869.