RES240 / RES224 Domain Name System Dario ROSSI dario.rossi@enst.fr http://www.enst.fr/~drossi 1
PLAN Introduction et vocabulaire Les applications et leurs contraintes Les protocoles applicatifs Notion de programmation des sockets HTTP FTP Telnet/ssh SMTP / POP3/IMAP4 DHCP DNS P2P 2
Sommaire L annuaire Internet et le protocole DNS Introduction L espace de nommage DNS Résolution de noms Ressources et base d information du DNS Architecture et protocole DNS Exemples Conclusion 3
Introduction: organismes de l Internet ICCAN (Internet Corporation for Assigned Names and Numbers) assure la gestion des noms des adresses et des identifiants de ports etc. RIRs (Regional Internet Registries)(RFC1466 définit les règles d'allocation des adresses IP aux RIR et aux LIR) APNIC (Asia Pacific Network Information Centre) ARIN (American Registry for Internet Numbers) qui a en charge les Amériques et une partie de l'afrique subsaharienne; RIPE NCC (Réseaux IP Européens - Network Coordination Centre) qui a en charge l'europe, le Moyen-Orient, l'ex-urss et la partie de l'afrique non couverte par ARIN. AfriNIC (African Regional Network Information Centre) LACNIC (Latin American and Caribbean IP address Regional Registry). IETF (Internet Engineering Task Force) élabore les standards de l Internet ISOC (Internet Society) œuvre pour la coordination et promotion des réseaux Internet 4
Introduction Le niveau 2 relie physiquement les équipements sur la base d une adresse physique (MAC) Le niveau 3 relie les équipements logiquement entre eux sur la base d une adresse logique (IP) Le niveau 4 relie les applications entre elles sur la base d un identifiant (port) Le niveau 7, et donc les usagers références les équipements par un nom Nom symbolique «intuitif ou facile». Plus simple à retenir qu une adresse 5
Introduction Beaucoup d'adresses dans le réseau. Adresses dynamiques et adresses statiques On associe aux adresses IP un nom symbolique Un nom est plus «agréable» à mémoriser qu'un numéro Les noms doivent être uniques Structure d arbre (chemin unique entre deux points) Nécessité de tables de correspondance Exemple: /etc/host, HOST.TXT Table distribué (exemple: annuaire téléphonique) 6
Introduction Extension de l adresse à la notion de ressources Association de ressources à des adresses Un nom de domaine détermine la localisation de la ressource Chaque domaine a pour responsabilité de gérer ces correspondances Le nom de la ressource sera ainsi préfixé par un nom de domaine pour le localiser à l échelle de l Internet 7
Introduction Les composantes du DNS Un espace de nommage Une base de données (spécification des ressources) Un protocole pour interroger la base Une architecture: resolver (client) et serveur Configuration du client et server Plusieurs RFCs décrivent l annuaire Internet: RFC 883 et 884 ensuite 1034 et 1035 1984: Paul Mockapetris définis le DNS RFC 1032, 1033, 1034, 1035, 1101, 1122, 1123, 1183, 1713, 1794, 1912, 1995, 1996, 2010, 2136, 2137, 2181, 2308, 2317, 2535-2541, 2606 8
Espace de nommage Structure d arbre avec une racine La racine est représentée par un point «.» Un nœud représente un domaine À chaque nœud de l arbre est associé un label Les informations associées à chaque nœud du domaine sont contenus dans une base et gérées par ce nœud En fait, cela est simpliste plus de details dans la suite Label Désigné par des caracteres alphanumériques et «-» En fait, limitation de praticité, car 255 valeurs seraient possibles mais ne sont pas sur le clavier! La taille maximum d un label est de 63 caractères Pas de sensibilité à la casse (case insensitive) A nouveau, pratique courante et pas limitation technologique Un nœud donné peut avoir des «fils» dont le label ou nom doit etre différent Par contre, parmi les «cousains» cette limitation n est pas valable (pourquoi?) 9
Espace de nommage Domaine Concatenation de labels sur un chemin donné Séparé par des dots «.» du point de vue des etres humains Suite de pair (longueur, label) du point de vue des messages du reseau La taille d un nom de domaine est au maximum de 255 carac. La profondeur de l arbre est limitée par cette taille Le nom de domaine complet: doit etre unique dans le reseau est appelé FQDN (Fully Qualified Domain Name) est composé de l ensemble des labels d un feuille de l arbre à la racine Le choix des noms est laissé aux besoins des usages Exemple: www.enst.fr. (www est ici le nom d une machine) Le nom se termine par un point, mais ce dernier est souvent omis (on comprend du contexte) Le choix de ce nom est pour retrouver intuivement le nom de la machine de l ENST qui supporte une application WEB. 10
Espace de nommage. root tld edu mil gov com net int org ch fr ca ddn ibm hp enst nic www www infres tsi siav rms 11
Root: Serveurs DNS Racine Root server Par definition, au plus haut de la hierarchie points d entrée dans le système de résolution globale Ils ont un rôle de «reroutage» des résolutions Connaissent tous les autres root server Connaissent tous les TLDs [a-m].root-servers.net Essayez dig @a.root-servers.net b.root-server.net Site de référence http://www.root-servers.org/ http://www.publicroot.net/hint.txt e NASA Mt View, CA f Internet Software C. Palo Alto, CA b USC-ISI Marina del Rey, CA l ICANN Marina del Rey, CA a NSI Herndon, VA c PSInet Herndon, VA d U Maryland College Park, MD g DISA Vienna, VA h ARL Aberdeen, MD j NSI (TBD) Herndon, VA k RIPE London i NORDUnet Stockholm m WIDE Tokyo 12
Root: Serveurs DNS Racine Lettre ancien nom Organisation Ville / Etat Région (continent) A VeriSign Dulles(*), Virginie, États-Unis B ns1.isi.edu USC-ISI Marina del Rey, Californie États-Unis C Cogent Distribution par anycast D terp.umd.edu University of Maryland College Park, M aryland, États-Unis E NASA Mountain View, Santa Clara County, Californie États-Unis F ISC Nairobi, distribution par anycast Kenya G ns.nic.ddn.mil U.S. DoD NIC Colombus, Ohio États-Unis H U.S. Arm y Aberdeen Proving Ground, aos.arl.arm y.mil Research Lab Maryland États-Unis I nic.nordu.net Autonomica Stockholm, Suède, distribution par anycast J VeriSign Distribution par anycast K RIPE NCC Londres, Royaume-Uni, distribution par anycast Union européenne Union européenne L ICANN Los Angeles, Californie États-Unis M W IDE Project Tokyo, distribution par anycast Japon 13
Top-Level Domain Les Top-Level Domain (TLD): Domaines de premier niveau (RFC1591) Connaissent tous les root server cctld: country code TLD ex. fr, ca, ma, us, de, ) http://www.icann.org/cctld/cctld.html gtld: generic TLD ex. com, org, net, + 7 nouveaux biz, aero, name, pro, musuem, info et coop et encore récemment mobi http://www.icann.org/gtld/gtld.html Connaissent les serveur delegués de sous-domaine 14
Espace de nommage Domains et zones Un domaine identifie une sous arborescence (Domain = lieu topologique) Une zone contient une base avec l ensemble des informations associées à ce nœud (Zone = borne administrative) La délégation: Un nœud père délégue la gestion à un nœud fils le nœud fils devient une zone Ce qui confère la distribution des bases au DNS Le nœud du père doit être en possession des adresses où se trouvent la base d information de son fils Glue records pour eviter references circulaires 15
Espace de nommage: zones Zone sous arbre ( branche de l'arbre) qui est administré séparément. Une zone peut être subdivisée en plusieurs zones. L'autorité d'une zone est déléguée à une personne qui est chargée de créer des serveurs de domaine. À chaque fois qu'une zone est créé, l'administrateur alloue un nom à cette zone, une adresse IP pour reconnaître le serveur principal de cette zone et il entre les noms de machines dans sa zone. Pour une zone on a obligatoirement un serveur principal et un serveur secondaire. Le serveur secondaire prend copie de la base d information du principal (zone transfer). 16
Espace de nommage Domaine fr Zone fr fr Zone enst enst edf infres tsi siav rd prod rms 17
Espace de nommage fr Zone enst enst edf ses Zone infres infres tsi siav rd prod rms Domaine enst Domaine= sous-arbre, lieu topologique Zone= forme arbitraire, bornes administratives 18
Résolution de Nom Résolution de nom consiste à: Associer une adresse IP à un nom Associer un nom à une adresse IP (résolution inverse) Associer un nom à une ressource La résolution de nom est basé sur un modèle client/serveur Le serveur est celui qui détient les informations Chaque serveur a autorité sur une base d information associée à sa zone Notion de serveur autoritaire C est celui qui est responsable de cette information qui la communique (le secondaire est autoritaire aussi) Notion de serveur non autoritaire C est un serveur qui détient l information mais qui n est à l origine de celle ci 19
Ressources et base d information du DNS La base d information: Contient des enregistrements ou RR (Ressources Records) Un enregistrement représente une ressource de l annuaire et une association entre plusieurs objets Enregistrement de type SOA (Start Of Authority) : indique l'autorité sur la zone. contient toutes les informations sur le domaine: le délai de mise à jour des bases de données entre serveurs de noms primaires et secondaires, le nom du responsable du site Enregistrements de type NS (Name Server) : donne les adresses des serveurs de noms pour le domaine. Enregistrement de type A (Adresse) : définit les noeuds fixes du réseau ceux qui ont des adresses IP statiques 20
Ressources et base d information du DNS Enregistrements de type MX (Mail exchanger) : Identifie les serveurs de messagerie Enregistrements de type CNAME (Canonical Name) : définit des alias sur des noeuds existants. Enregistrement de type PTR (Pointeur) : permet la résolution de noms inverse dans le domaine inaddr.arpa. Pour chaque RR on a: Le nom, le type, la classe, la durée de vie, la valeur 21
Ressources et base d information du DNS enst.fr.in SOA ns1.enst.fr. hstr.enst.fr. ( 20001210011 ; numéro de série 10800 ; rafraîchissement (REFRESH) 3600 ; nouvel essai (RETRY) 604800 ; Obsolescence (EXPIRE) 86400 ) ; TTL minimal de 1 jour enst.fr. IN NS ns1.enst.fr. ; commentaire enst.fr. IN NS ns1.enst.fr. ; enst.fr peut être ;remplacé par @ @ IN NS ns1 IN NS ns2 22
Ressources et base d information du DNS ns1.enst.fr. IN A 137.194.192.1 ns2.enst.fr. IN A 137.194.160.1 smtp.enst.fr. IN A 137.194.200.1 localhost.enst.fr. IN A 127.0.0.1 www IN CNAME ns1.enst.fr. ftp IN CNAME ns2.enst.fr. enst.fr. IN MX smtp.enst.fr. 1.0.194.137.in-addr.arpa. IN PTR ns1.enst.fr. 23
Architecture/Protocole DNS Norme stable RFC 1034 : concepts et facilités du DNS RFC 1035 : spécification de l implémentation DNS est basé sur UDP et TCP La taille des messages est limité à 512 octets Protocole de type requête/réponse Format binaire Si la réponse est supérieure à 512 octets, elle est tronquée, la requête est retransmise une deuxième fois mais basée sur TCP 24
Transfer de zone Transfer de zone: AXFR Le serveur secondaire copie la base de données du server primaire avec TCP (fiabilité impérative) Debut et fin par le SOA Numero de serie incrementale pour confronter versions Policy Polling periodique effectué par le serveur secondaire Effectué chaque REFRESH secondes En cas de problemes, re-essaye chaque RETRY secondes Problemes persistent: la base est jetée après EXPIRE sec 25
Architecture/Protocole DNS Modalités de fonctionnement Mode iteratif Obligatoire Complexité sur le le client Mode récursif Optionnel Complexité sur le serveur Difficile pour les pannes Benefice pour le cache En pratique: mode hybride Recursif jusqu au serveur DNS locale Iteratif depuis le serveur DNS locale 26
Architecture/Protocole DNS User 1 8 Client resolver Name Resolver 2 3 4 Local server Name Server Cache DB Mode iteratif Cache 5 6 7 Name Server Cache DB Name Server Cache DB 27
Architecture/Protocole DNS User 1 8 Client resolver Name Resolver 2 7 Local server Name Server 6 3 Cache DB Cache Mode recursif Name Server 5 4 Cache DB Name Server Cache DB 28
Architecture/Protocole DNS User 1 8 Client resolver Name Resolver 2 7 Local server Name Server 4 3 Cache DB Cache Mode hybride Name Server Cache DB 5 6 Name Server Cache DB 29
Format des requêtes/réponses 1 32 IDENTIFICATION FLAGS NBR. DE QUESTIONS NBR. DE RRs AUTORITAIRES NBR. DE REPONSES NBR.de RRs SUPPLEMENTAIRES QUESTIONS REPONSES AUTORITAIRES INFORMATIONS SUPPLEMENTAIRES 30
Format des requêtes/réponses Identification (16 bits): pour associer une réponse à une requête Flags (16 bits): 1 QR : Question = 0, Réponse = 1 2 OPCODE (3 bits) 0 question standard / 1 question inverse / 2 requête de statuts du serveur 5 AA : = 1 Authorative Answer 6 TC : = 1 Truncated Response 7 RD: = 1 Recursion Desired sinon question itérative 8 RA : = 1 Recursion Allowed indique le support de la récursion 9 Reserved : = 0 10 AD Authentic Data 11 CD Checking Disabled 12 RCODE (4bits) Reponse Code 0 Pas d erreur. 1 Erreur de format, question non interprétable. 2 Problème sur le serveur. 3 Nom dans la question n existe pas 4 Type de la question n est pas supporté 5 Question refusée. 6-15 Réservées 31
Question Architecture/Protocole DNS Nom type Classe Nom 5 v e r d i 4 e n s t 2 f r 0 32
Type Architecture/Protocole DNS Symbole Valeur Description type type de demande A 1 Adresse IP x x NS 2 Nom du serveur de nom autoriaire x x CNAME 5 Nom canonique x x PTR 12 Pointeur x x HINFO 13 Information sur le host x x MX 15 Serveur de messagerie x x AXFR 252 Requête pour zone de transfert x ANY / * 255 Requête pour tous enregistrement x 33
Architecture/Protocole DNS CLASS Options = 1 (IN) internet address = 2 Non attribué ou non supportéd = 3 Réseau Chaos du MIT = 4 attribué au MIT pour Hesiod 34
Réponse Architecture/Protocole DNS type Nom du domaine classe Durée de vie de la réponse Longueur de la donnée Donnée 35
Architecture/Protocole DNS Démonstration et analyse de trafic Question: 00 07 cb 4c 40 e1 08 00 46 60 d6 42 08 00 45 00 00 38 46 32 00 00 80 11 28 b9 c0 a8 00 0a d4 1b 36 fc 04 18 00 35 00 24 35 ab a2 b3 01 00 00 01 00 00 00 00 00 00 03 77 77 77 03 6c 63 6c 02 66 72 00 00 01 00 01 36
Architecture/Protocole DNS Démonstration et analyse de trafic Question: 00 07 cb 4c 40 e1 08 00 46 60 d6 42 08 00 45 00 00 38 46 32 00 00 80 11 28 b9 c0 a8 00 0a d4 1b 36 fc 04 18 00 35 00 24 35 ab a2 b3 01 00 00 01 00 00 00 00 00 00 03 77 77 77 03 6c 63 6c 02 66 72 00 00 01 00 01 Ethernet / IP / UDP / DNS 37
Architecture/Protocole DNS Démonstration et analyse de trafic Question: 00 07 cb 4c 40 e1 08 00 46 60 d6 42 08 00 45 00 00 38 46 32 00 00 80 11 28 b9 c0 a8 00 0a d4 1b 36 fc 04 18 00 35 00 24 35 ab a2 b3 01 00 00 01 00 00 00 00 00 00 03 77 77 77 03 6c 63 6c 02 66 72 00 00 01 00 01 ID / QR OPCODE AA TC RD / RA Z RCODE 38
Architecture/Protocole DNS Démonstration et analyse de trafic Question: 00 07 cb 4c 40 e1 08 00 46 60 d6 42 08 00 45 00 00 38 46 32 00 00 80 11 28 b9 c0 a8 00 0a d4 1b 36 fc 04 18 00 35 00 24 35 ab a2 b3 01 00 00 01 00 00 00 00 00 00 03 77 77 77 03 6c 63 6c 02 66 72 00 00 01 00 01 QDCOUNT / ANCOUNT / NSCOUNT / ARCOUNT 39
Architecture/Protocole DNS Démonstration et analyse de trafic Question: 00 07 cb 4c 40 e1 08 00 46 60 d6 42 08 00 45 00 00 38 46 32 00 00 80 11 28 b9 c0 a8 00 0a d4 1b 36 fc 04 18 00 35 00 24 35 ab a2 b3 01 00 00 01 00 00 00 00 00 00 03 77 77 77 03 6c 63 6c 02 66 72 00 00 01 00 01 3 www 3 lcl 3 fr 0 / TYPE / CLASS 40
Architecture/Protocole DNS Démonstration et analyse de trafic Réponse: 08 00 46 60 d6 42 00 07 cb 4c 40 e1 08 00 45 00 00 56 00 00 40 00 38 11 76 cd d4 1b 36 fc c0 a8 00 0a 00 35 04 18 00 42 17 48 a2 b3 81 80 00 01 00 02 00 00 00 00 03 77 77 77 03 6c 63 6c 02 66 72 00 00 01 00 01 c0 0c 00 05 00 01 00 00 01 e1 00 02 c0 10 c0 10 00 01 00 01 00 00 01 e1 00 04 c1 6e 98 37 41
Architecture/Protocole DNS Démonstration et analyse de trafic Réponse: 08 00 46 60 d6 42 00 07 cb 4c 40 e1 08 00 45 00 00 56 00 00 40 00 38 11 76 cd d4 1b 36 fc c0 a8 00 0a 00 35 04 18 00 42 17 48 a2 b3 81 80 00 01 00 02 00 00 00 00 03 77 77 77 03 6c 63 6c 02 66 72 00 00 01 00 01 c0 0c 00 05 00 01 00 00 01 e1 00 02 c0 10 c0 10 00 01 00 01 00 00 01 e1 00 04 c1 6e 98 37 Ethernet / IP / UDP / DNS 42
Architecture/Protocole DNS Démonstration et analyse de trafic Réponse: 08 00 46 60 d6 42 00 07 cb 4c 40 e1 08 00 45 00 00 56 00 00 40 00 38 11 76 cd d4 1b 36 fc c0 a8 00 0a 00 35 04 18 00 42 17 48 a2 b3 81 80 00 01 00 02 00 00 00 00 03 77 77 77 03 6c 63 6c 02 66 72 00 00 01 00 01 c0 0c 00 05 00 01 00 00 01 e1 00 02 c0 10 c0 10 00 01 00 01 00 00 01 e1 00 04 c1 6e 98 37 ID / QR OPCODE AA TC RD / RA Z RCODE 43
Architecture/Protocole DNS Démonstration et analyse de trafic Réponse: 08 00 46 60 d6 42 00 07 cb 4c 40 e1 08 00 45 00 00 56 00 00 40 00 38 11 76 cd d4 1b 36 fc c0 a8 00 0a 00 35 04 18 00 42 17 48 a2 b3 81 80 00 01 00 02 00 00 00 00 03 77 77 77 03 6c 63 6c 02 66 72 00 00 01 00 01 c0 0c 00 05 00 01 00 00 01 e1 00 02 c0 10 c0 10 00 01 00 01 00 00 01 e1 00 04 c1 6e 98 37 QDCOUNT / ANCOUNT / NSCOUNT / ARCOUNT 44
Architecture/Protocole DNS Démonstration et analyse de trafic Réponse: 08 00 46 60 d6 42 00 07 cb 4c 40 e1 08 00 45 00 00 56 00 00 40 00 38 11 76 cd d4 1b 36 fc c0 a8 00 0a 00 35 04 18 00 42 17 48 a2 b3 81 80 00 01 00 02 00 00 00 00 03 77 77 77 03 6c 63 6c 02 66 72 00 00 01 00 01 c0 0c 00 05 00 01 00 00 01 e1 00 02 c0 10 c0 10 00 01 00 01 00 00 01 e1 00 04 c1 6e 98 37 3 www 3 lcl 3 fr 0 / TYPE / CLASS 45
Architecture/Protocole DNS Démonstration et analyse de trafic Réponse: 08 00 46 60 d6 42 00 07 cb 4c 40 e1 08 00 45 00 00 56 00 00 40 00 38 11 76 cd d4 1b 36 fc c0 a8 00 0a 00 35 04 18 00 42 17 48 a2 b3 81 80 00 01 00 02 00 00 00 00 03 77 77 77 03 6c 63 6c 02 66 72 00 00 01 00 01 c0 0c 00 05 00 01 00 00 01 e1 00 02 c0 10 c0 10 00 01 00 01 00 00 01 e1 00 04 c1 6e 98 37 C0 0C = 11000000 00001100 => Offset Ptr (to 03) 46
Architecture/Protocole DNS Démonstration et analyse de trafic Réponse: 08 00 46 60 d6 42 00 07 cb 4c 40 e1 08 00 45 00 00 56 00 00 40 00 38 11 76 cd d4 1b 36 fc c0 a8 00 0a 00 35 04 18 00 42 17 48 a2 b3 81 80 00 01 00 02 00 00 00 00 03 77 77 77 03 6c 63 6c 02 66 72 00 00 01 00 01 c0 0c 00 05 00 01 00 00 01 e1 00 02 c0 10 c0 10 00 01 00 01 00 00 01 e1 00 04 c1 6e 98 37 CNAME / Internet / TTL=8m / Size of Ptr Len / Ptr 47
Architecture/Protocole DNS Démonstration et analyse de trafic Réponse: 08 00 46 60 d6 42 00 07 cb 4c 40 e1 08 00 45 00 00 56 00 00 40 00 38 11 76 cd d4 1b 36 fc c0 a8 00 0a 00 35 04 18 00 42 17 48 a2 b3 81 80 00 01 00 02 00 00 00 00 03 77 77 77 03 6c 63 6c 02 66 72 00 00 01 00 01 c0 0c 00 05 00 01 00 00 01 e1 00 02 c0 10 c0 10 00 01 00 01 00 00 01 e1 00 04 c1 6e 98 37 C0 0C = 11000000 00010000 => Offset Ptr (to 03) 48
Architecture/Protocole DNS Démonstration et analyse de trafic Réponse: 08 00 46 60 d6 42 00 07 cb 4c 40 e1 08 00 45 00 00 56 00 00 40 00 38 11 76 cd d4 1b 36 fc c0 a8 00 0a 00 35 04 18 00 42 17 48 a2 b3 81 80 00 01 00 02 00 00 00 00 03 77 77 77 03 6c 63 6c 02 66 72 00 00 01 00 01 c0 0c 00 05 00 01 00 00 01 e1 00 02 c0 10 c0 10 00 01 00 01 00 00 01 e1 00 04 c1 6e 98 37 TYPE/ CLASS/ TTL / Data Len / 193.110.152.55 49
Architecture/Protocole DNS drossi@nonsns:~$ dig www.lcl.fr ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 23398 ;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 0 ;; QUESTION SECTION: ;www.lcl.fr. IN A ;; ANSWER SECTION: www.lcl.fr. 417 IN CNAME lcl.fr. lcl.fr. 417 IN A 193.110.152.55 ;; Query time: 50 msec ;; SERVER: 212.27.54.252#53(212.27.54.252) ;; WHEN: Thu Dec 20 22:21:20 2007 ;; MSG SIZE rcvd: 58 50
Résolution de nom inverse 51
Remarques Protocole «simple» Déploiement et mise en œuvre rapide Plusieurs attaques structurelles possibles Nécessité de laisser passer le trafic DNS (pas de filtrage) Exposé aux attaques mais suffisement robuste Talon d Achille de l Internet Ne supporte pas tous types de ressources Internet of things? Évolution RFC4423: Host Identity Protocol (HIP) 52