• Aucun résultat trouvé

Domain Name System. AFNIC (12/12/07) DNS - 1

N/A
N/A
Protected

Academic year: 2022

Partager "Domain Name System. AFNIC (12/12/07) DNS - 1"

Copied!
115
0
0

Texte intégral

(1)(2)

Introduction

(3)

I NT ER N E T

• Un espace de communication, sans frontière, où des millions d 'ordinateurs sont connectés.

• Les services les plus courants :

- Le service Web

- La messagerie électronique

(4)

I NT ER N E T

• L'ordinateur qui est connecté à Internet est identifié par numéro l'  adresse IP .

exemple : 192.56.23.87

• Pour communiquer un programme doit connaître

l'adresse IP de son interlocuteur .

(5)

I NT ER N E T et le nommage

• Les adresses IP ce n'est pas facile a mémoriser .

• On a préféré nommer les machines .

• On a construit une base de donnée, pour associer un nom et une adresse IP .

 Système DNS

(6)

Le système DNS

(Domain Name System)

(7)

DNS

• Sommaire

• introduction

• arborescence

• architecture

• base de données

• une implémentation du DNS : BIND

(8)

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 son numéro IP (résolution inverse)

• identifier un groupe de machines ayant des ressources réseau communes (relais de

messagerie, ... )

(9)

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

(10)

Introduction (3)

DNS ≠ URL

Soit un nom de domaine : abcd.fr

Url de site web :

- http://www.abcd.fr - http://dom.abcd.fr/doc

- http://www.tot3.abcd.fr/doc

- http://abcd.fr/info/pub/prod.htm

Adresse de messagerie électronique : - [email protected]

- [email protected]

- [email protected]

(11)

Introduction (4)

• 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

(12)

Introduction (5)

• Après 1984 : Domain Name System

Paul 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

(13)

Introduction (6)

• RFC's

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

• Documentation

• http://www.dns.net/dnsrd/ (RFC, drafts, FAQ, ... )

• http://www.nic.fr/guides/

• http://www.nic.fr/formation/

• Livres

• DNS and BIND (Paul Albitz & Cricket Liu)

(14)

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 noeuds, identifiés par un label (fr , com , ... ), dont les informations sont stockées dans une base de données propre à chacun des noeuds

• base de données du système

une base de données par noeud

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

(15)

Arborescence (2)

fr arpa net

ripe whois in-addr

193 1 2

com

0 ... 255

apnic Nic

www whois

www.nic.fr.

192

nom adresse IP adresse IP nom

whois.ripe.net.

192.134.4.11

193.1.2.133 .

(16)

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

racine racine

nic . fr .

séparateur séparateur

(17)

Arborescence (4)

.

fr arpa net

ripe

whois = whois.ripe.net in-addr

193 1 2

nic

com tn

ffti

0 ... 255

apnic

(18)

Arborescence (5)

• Délégation d'un noeud père vers un noeud fils

• un noeud peut être père de plusieurs noeuds fils

• le lien est effectué en précisant au niveau du noeud père où trouver la base de donnée des noeuds fils

• but

distribuer la gestion de chaque noeud à des entités différentes

une base de données pour chaque noeud, l'ensemble de ces bases étant géré de façon décentralisé

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

(19)

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 noeud

• label au niveau d 'un noeud limité à 63 caractères

(20)

Arborescence (7)

• IDN - International Domain Name

• Prendre en compte les alphabets mondiaux

• Compatible avec le protocole DNS existant

• 4 RFC

• RFC 3454/RFC 3491/RFC 3490/RFC 3492

• Exemple:

http://france2.télévision-française.fr/

http://france2.xn-tlvision-franaise-msbzb.fr/

(21)

Arborescence (8)

• 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 noeud fr

• la zone est la partie descriptive pour un niveau donné : elle est restreinte à un noeud

➪ une zone est constituée de la base de données décrivant un noeud

(22)

Arborescence (9)

(23)

Arborescence (10)

• 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

racine racine

ns1 . nic . fr .

séparateur séparateur label

label

(24)

Arborescence (11)

• Analogie

un noeud 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

(25)

Arborescence (12)

• 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

(26)

Arborescence (13)

• 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

(27)

Arborescence (14)

.

fr arpa net

ripe

whois = whois.ripe.net in-addr

193 1 2

133 = 133.2.1.193.in-addr.arpa

nic

com tn

ffti

0 ... 255

(28)

Arborescence (15)

• 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 noeud 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

(29)

Arborescence (16)

• Racine : 13 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

(30)

Arborescence (17)

• 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

• Nouveaux TLD ( juin 2001 ) :

.biz, .info, .name, .aero, .coop, .info, .museum

(31)

Architecture (1)

• Système client/serveur

• 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

(32)

Architecture (2)

• Au-dessus d 'IP

• service s'exécutant sur le port 53

➪ droits de super utilisateur ( unix )

• UDP et TCP

(TCP n'est pas réservé qu'au transfert de zone

et est utilisé si la taille de la réponse est supérieure à la limite d 'un paquet UDP de 512 octets)

• RFC 1035

(33)

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)

(34)

frfr dede ..

fr fr → ns1.nic.fr, ns2.nic.fr, ...ns1.nic.fr, ns2.nic.fr, ...

.. serveur serveur

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

Int. Récursive Int. Récursive www.inria.fr ?

www.inria.fr ?

Architecture (4)

resolver resolver

Machine A Machine A serveur

serveur

rr e e ss oo ll vv ee rr

128.93.3.29 128.93.3.29

frfr serveur serveur

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

nic.fr

nic.fr inria.frinria.fr inria.fr

inria.fr dns.inria.fr, ...dns.inria.fr, ...

Int. itérative Int. itérative

inria.fr inria.fr serveur serveur

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

www.inria.fr

www.inria.fr 128.93.3.29128.93.3.29

(35)

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)

(36)

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

(37)

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

(38)

.. serveur serveur

fr fr serveur serveur

inria.fr inria.fr serveur serveur

Architecture (8)

Int. Récursive Int. Récursive

resolver resolver

serveur serveur

rr ee ss oo ll vv ee rr

128.93.3.29 128.93.3.29

cc aa cc h h ee

www.inria.fr 128.93.3.29

(39)

rr ee ss oo ll vv ee rr

serveur serveur

c c aa cc h h ee

Architecture (9)

resolver resolver

inria.fr inria.fr serveur serveur

chronos.inria.fr ?

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

chronos.inria.fr

chronos.inria.fr → 128.93.45.201128.93.45.201

int. récursive int. récursive 128.93.45.201

128.93.45.201

fr fr serveur serveur

(40)

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)

(41)

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

(42)

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ées 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

(43)

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

(44)

cc aa cc hh ee

serveur serveur

rr ee ss o o ll vv ee rr

Architecture (14)

frfr dede

nic.fr

nic.fr inria.frinria.fr ..

.. serveur serveur

frfr serveur serveur

nic.fr nic.fr serveur serveur

int. récursive int. récursive int. itérative int. itérative

resolver resolver

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

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

fr : ns1.nic.frfr : ns1.nic.fr www.inria.fr ? www.inria.fr ?

inria.fr : dns.inria.frinria.fr : dns.inria.fr www.inria.fr ? www.inria.fr ? 128.93.3.29 128.93.3.29

disque disque

authauth

(45)

Architecture (15)

• 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 la valeur refresh défini dans le SOA

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

(46)

Architecture (16)

• Rafraîchissement des données entre 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é

• le transfert 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 (transfert total - AXFR) ou seules les nouvelles modifications entre les 2 versions sont transférées (transfert incrémental - IXFR - RFC 1995)

(47)

Architecture (17)

• Rafraîchissement des données entre 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

(48)

Architecture (18)

• 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

(49)

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

(50)

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

(51)

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 .

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é pour un grand nombre de zones

(52)

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

H

Army Resarch Lab USA

I

NORDU SUEDE

J

NSI USA

K

RIPE NCC LINX UK

L

ISI USA

M

Wide Project JAPON

http://www.root-servers.org/

(53)

F

M

E

D J

K I

B

A C G H

(54)

0 500 1000 1500 2000 2500

Sep-94 Nov-94

Jan-95 Mar-95

May-95 Jul-95

Sep-95 Nov-95

Jan-96 Mar-96

May-96 Jul-96

Sep-96 Nov-96

Jan-97 Mar-97

May-97 Jul-97

Sep-97 Nov-97

Jan-98 Mar-98

May-98 Jul-98

Sep-98 Nov-98

Jan-99 Mar-99

May-99 Jul-99

Sep-99 Nov-99

(55)

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

(56)

Base de données (2)

• Fichier de configuration

• localisation des données

fichier serveurs de la racine fichiers de zone

• déclaration de l'autorité sur des zones primaire / secondaire

• mode de fonctionnement général

récursif/itératif

« faisant suivre », esclave, ....

(57)

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 adresse IP

• primaire : A.ROOT-SERVERS.NET.

• une quinzaine de serveurs secondaires à travers le monde

• peut être généré de la façon suivante : dig @a.root-servers.net . ns > root.cache

(58)

Base de données (4)

• Fichier de zone

• contient les données propres à chaque zone

• consiste en une liste de Resource Records (RR)

• le premier RR doit être le SOA (Start of Authorithy) qui décrit l'autorité technique de la zone

• directives spéciales

(59)

Base de données (5)

• Directives spéciales

• $ORIGIN

spécifie le nom de domaine à ajouter à des enregistrements non pleinement qualifiés (non suffixés par un point)

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

(60)

Base de données (6)

• Directives spéciales

• $ORIGIN - exemple

$ORIGIN exemple.

$ORIGIN mon-domaine www IN CNAME serveur

équivalent à :

www. mon-domaine.exemple. IN CNAME serveur. mon-domaine.exemple.

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

(61)

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

(62)

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 spécifié dans leur déclaration

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

valeur [0 - 2147483647]

(63)

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

(64)

Base de données (10)

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

• t2 : date de la modification de la ressource elle-

secondaire

temps t1 t2

ttl

primaire

refresh ttl

primaire emis par le

Information dans les serveurs caches

(65)

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 valeur 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

(66)

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 )

(67)

Base de données (13)

• Principaux RR - SOA

email : contact technique de la zone

remplacer le @ par le premier point non protégé (\) l'email doit être suivi d 'un point

francis\.dupont.inria.fr.

pour

[email protected]

(68)

Base de données (14)

• Principaux RR - SOA

numéro de série : spécifie la version des données de la zone

incrémenter ce numéro à chaque modification (entier sur 32 bits)

format conseillé : YYYYMMDDxx 1997052702

(69)

Base de données (15)

• Principaux RR - SOA

refresh : intervalle, en secondes, entre 2 vérifications du numéro de série par les secondaires (24H - 86400s ; à 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 1ere vérification a échoué (6H - 21400s ; à ajuster en fonction de sa connectivité)

expire : durée d 'expiration de la zone sur un secondaire (41 jours -3600000s )

retry<<refresh<<expire

(70)

Base de données (16)

• Principaux RR - SOA

ttl (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ée 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é n'existe ; il existe d'autre enregistrements possédant ce nom, mais de type différent

(71)

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)

(72)

Base de données (18)

$ORIGIN nic.fr.

$TTL 86400

@ IN SOA ns1.nic.fr.

hostmaster.nic.fr. ( 1997052704 ;serial

86400 ;refresh

21600 ;retry

3600000 ;expire

3600 ; negative caching ttl )

IN NS ns1.nic.fr.

IN NS ns2.nic.fr.

www IN CNAME ns2.nic.fr.

ftp 21600 IN A 192.34.4.45

(73)

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 AAAA : Adresse IPv6

(74)

Base de données (20)

• Principaux RR - PTR (Pointeur)

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

10.20.30.192.in-addr.arpa. IN PTR machine.domaine.

(75)

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

(76)

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 xxxx. yyy. ( zzzz ... )

zone. IN CNAME www.zone.

(77)

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 xxxx. yyy. ( zzzz ... )

zone. IN A 193.2.3.4

Et l'enregistrement PTR correspondant dans les reverses

(78)

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 ;serial

86400 ;refresh

21600 ;retry

3600000 ;expire

3600 ;negative ttl )

IN NS ns1.nic.fr.

IN NS ns2.nic.fr.

; Suite

ns1 IN A 193.10.20.30

ns2 IN A 192.5.6.7

machine IN A 193.10.20.31

(79)

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

(80)

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 ;refresh

21600 ;retry

3600000 ;expire

3600 ;negative ttl

)

IN NS ns1.nic.fr.

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

(81)

DNS et SMTP (1)

• Principaux RR - MX (Mail eXchanger)

email à quelqu-un@nom

On 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.

(82)

DNS et SMTP (2)

• Principaux RR - MX (Mail eXchanger)

Envoi d 'un message à nom - RFC 974

- (1) tri les MX par ordre croissant et contacte 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)

(83)

DNS et SMTP (3)

• Principaux RR - MX (Mail eXchanger)

• wilcard MX

nic.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

(84)

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

(85)

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 86400

nic.fr. IN SOA ns1.nic.fr. hostmaster.nic.fr.

(

1997052704 ;serial

86400 ;refresh

21600 ;retry

3600000 ;expire

3600 ;negative ttl )

IN NS ns1.nic.fr.

IN NS ns2.nic.fr.

ns1.nic.fr. IN A 193.10.20.30

(86)

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 ;refresh

21600 ;retry

3600000 ;expire

3600 ;negative ttl )

(87)

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 que dans le cas où 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

(88)

Délégation et sous domaine (4)

• dans le fichier de zone nic.fr

fille.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.fr

fille.nic.fr. IN SOA ns1.inria.fr. hostmaster.inria.fr.

(

1997052704 ;serial

86400 ;refresh

21600 ;retry

3600000 ;expire

3600 ;negative ttl )

IN NS ns1.fille.nic.fr.

IN NS ns.urec.fr.

(89)

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

(90)

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 transferts 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

getaddrinfo(3) et getnameinfo(3) qui utilisent le DNS.

(91)

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

(92)

BIND (4)

• Versions

• 4.9.8 ( ne doit etre utilise que si on ne peut pas utiliser la v8 ou v9 )

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

fichier de configuration named.boot

• 8.2.4

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

(93)

BIND (5)

• 9.1.3

Support de DNSSEC,TSIG

Support de IP v6

Enregistrements Spécifiques

Requêtes

Extension du protocole DNS IXFR,...

Système de vue pour les zones

Support des systèmes multiprocesseur

(94)

BIND - serveur cache (6)

• fichier de config named.conf

// répertoire des données options {

directory "/usr/local/bind/data";

};

// cache des serveurs de la racine zone "." in {

type hint;

file "root.cache";

};

// zone primaire du reverse loopback zone "0.0.127.in-addr.arpa" {

type master;

file "db.localrev";

};

(95)

BIND - serveur cache esclave(7)

• fichier de config named.conf

options {

// répertoire des données

directory "/usr/local/bind/data";

// on fait tout suivre

forwarders {192.1.2.3 ; 193.1.2.3 };

options forward-only ; };

zone "." {

// cache des serveurs de la racine type hint ;

file "root.cache";

};

zone "0.0.127.in-addr.arpa" { type master;

file "db.localrev" ;

(96)

BIND - serveur autoritaire et cache (8)

• fichier de config named.conf

options {

// répertoire des données

directory "/usr/local/bind/data";

};

zone "." {

// cache des serveurs de la racine type hint;

file "root.cache";

};

zone "0.0.127.in-addr.arpa" { // zone primaire

type master;

file "db.localrev";

(97)

BIND - serveur autoritaire et cache (9)

• 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 ; };

};

(98)

BIND - serveur autoritaire (10)

• 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";

};

(99)

BIND - serveur autoritaire (11)

• 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";

};

(100)

BIND (12) - Migration V4 →V8

• 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

(101)

BIND (13)

• 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

(102)

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/

(103)

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érieure à 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

(104)

Pièges à éviter (2)

• Problème avec les Name Server

NS not reachable, NS not set up

• Domaine pas complètement nommé

(oubli 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.

(105)
(106)

ZoneCheck

Outil de validation

pour une zone DNS

(107)

Zone Check (1)

• Outil développé par l'AFNIC

• L'AFNIC l'utilise pour valider toute modification dans ces zones .

• Utilisable via l'URL suivante :

• http://www.nic.fr/zonecheck

• Les sources sont disponibles à l'URL suivante :

• ftp://ftp.nic.fr/pub/programmes/DNS/ZoneCheck/

(108)

Zone Check (2)

• Pour 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 concernant ce nom de domaine.

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

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

(109)

Zone Check (3)

• Le lancement de la vérification, plusieurs choix :

Inclure les messages d'aide,

Affichage des messages supplémentaires lors d'erreurs.

Vérifier la base RIPE,

Test de l'existence des enregistrements 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- whois.nic.fr

(110)

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

(111)

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

:

(112)

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

(113)

Zone Check (7)

• Vérification de l'enregistrement SOA.

• vérification des RR :

SERIAL

PRIMARY

CONTACT

REFRESH

RETRY

EXPIRE

TTL

(114)

Zone Check (8)

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

• Vérification des adresses de courrier électronique

• Si le relais de messagerie SMTP implémente la commande VRFY conformément aux RFC's

( 1123, .. ) alors ZonecCheck utilise la commande

• Sinon fait un debut de delivrance de message .

Références

Documents relatifs

Cette évolution reflète une combinaison de facteurs : (i) d’une part la récupération d’équipements livrés à Blade, pour un montant net au 31 août 2021 de 13,1 M€,

Vous l'aurez compris, ce n'est pas la solution la plus simple pour un réseau domestique, c'est cependant ce type d'architecture que l'on retrouve sur les réseaux

Ce réglage par défaut garantit que, en réponse à une requête de résolution d’un unique nom d’ordinateur correspondant à plusieurs enregistrements de ressource hôte (A),

Intéressons-nous maintenant au deuxième exemple, un peu plus intéressant en configurant l'accès au serveur apache qu'à partir d'une seule machine (salon) et en protégeant l'accès

Sous mandrake, vous pouvez suivre votre serveur dhcp avec la commande dhcpstatus. Configurez votre client windows pour qu'il obtienne une adresse IP

Jacques Guyot dénombre « dans les trois filières mainframe, Unix et Windows, environ 600 applications actives, soit à peu près le même nombre qu’auparavant : les

Création et utilisation d'un modèle de formulaire InfoPath. Publication d'un classeur Excel. Création d'une connexion à une base de données SQL Server externe... ORSYS, La Grande

•  Lorsque l'usager soumet le formulaire (en appuyant due le bouton submit) le navigateur contactera le serveur en lui passant la requête (POST /cgi-bin/programme) avec les