Protocoles Auxiliaires TCP/IP Réseaux L3 (2007-2008) - Luiz Angelo STEFFENEL - Steffenel Réseaux 2007-2008 1
Plan de la Présentation Présentation des protocoles suivants ARP RARP BOOTP DHCP NAT DNS Steffenel Réseaux 2007-2008 2
Le protocole ARP RFC 826 Steffenel Réseaux 2007-2008 3
Pourquoi ARP? Dans le modèle à couches (OSI, TCP) chaque couche devrait être indépendante des autres couches en ce qui concerne l'adressage des paquets TCP adresse une porte d'application IP utilise une adresse IP Ethernet utilise une adresse MAC Résultat : un équipement de liaison (carte réseau) ne comprends pas l'adresse IP des messages, seulement des adresses physiques (MAC) Besoin d'associer @IP <--> @MAC Steffenel Réseaux 2007-2008 4
Exemple de Fonctionnement Steffenel Réseaux 2007-2008 5
Le Fonctionnement de ARP Si la machine source et destinataire sont sur le même réseau (par ex. de 1 vers 2) 1. requête ARP - la source fait un broadcast MAC (ff:ff:ff:ff:ff:ff) pour demander des informations 2. réponse ARP - le destinataire a reçu le broadcast et s'est reconnu, il envoie son @MAC 3. la source peut envoyer ses données vers le destinataire - adresse MAC destination connue Steffenel Réseaux 2007-2008 6
Exemple de Fonctionnement Steffenel Réseaux 2007-2008 7
Le Fonctionnement de ARP Si elles ne sont pas sur le même réseau (par exemple de 1 vers 4)!!!! La diffusion ne passe pas le routeur (équipement de couche 3) résolution de proche en proche : 1 envoie les données à 192.31.65.1 (ARP pour trouver E3), le routeur info envoie les données à 192.31.60.7 (ARP pour trouver F3), le routeur «élec» envoie les données à 4 (ARP pour E6) Steffenel Réseaux 2007-2008 8
Fonctionnement Optimisations Cache ARP : le résultat de chaque résolution est conservé localement pour les émissions suivantes la correspondance (@IP, @MAC) de l'émetteur sont inclus dans la requête ARP pour que le récepteur, voire toutes les machines qui reçoivent le broadcast, mettent à jour leur cache Proxy ARP : une machine qui répond à une requête à la place du destinataire (qui ne reçoit pas le broadcast) nécessaire si la route (adresse de la passerelle) pour atteindre le destinataire n'est pas connue Steffenel Réseaux 2007-2008 9
Format du pâquet ARP Bits 0-7 Bits 8-15 Bits 16-31 Hardware Type Protocol Type HW @ length Proto @ length Operation Sender Hardware Address Sender Protocol Address Destination Hardware Adress Destination Protocol Address Hardware Type 01 Ethernet 04 Token Ring 16 ATM Hardware Lenght 01 Token Ring 06 - Ethernet Steffenel Réseaux 2007-2008 10 Protocol Type 0x0800 IP Protocol Length 04 IPv4 16 IPv6
Le protocole RARP Reverse ARP RFC 903 Steffenel Réseaux 2007-2008 11
Reverse ARP Il se peut qu'un machine ne connaît pas son adresse IP au démarrage Fait une requête sur le réseau pour en démander "Mon @MAC est xx:xx:xx:xx:xx:xx. Quelqu'un connaît-il mon @IP?" Permet à un hôte de récupérer son @IP au démarrage par interrogation d'un serveur RARP stations sans disque imprimantes, Steffenel Réseaux 2007-2008 12
Fonctionnement Même fonctionnement que ARP, même format de paquet Seul les champs «à remplir» est qui changent Bits 0-7 Bits 8-15 Bits 16-31 Hardware Type Protocol Type HW @ length Proto @ length Operation Sender Hardware Address Sender Protocol Address Destination Hardware Adress Destination Protocol Address Obsolète car désormais remplacé par BOOTP ou DHCP qui peuvent rendre le même service et ne nécessite pas un serveur RARP sur chaque réseau (broadcast MAC limité) Steffenel Réseaux 2007-2008 13
BOOTP et DHCP Steffenel Réseaux 2007-2008 14
BOOTP (bootstrap) RFCs 951, 1048, 1084 Protocole d'amorçage du réseau au dessus de UDP (les diffusions passent les routeurs) le serveur informe à la machine qui démarre : son adresse IP; l'adresse IP du serveur de fichiers qui contient son image disque; l'adresse IP du routeur par défaut, masque de sous-réseau Inconvénient : les tables de correspondances sont statiques (configurées manuellement) Pour y remédier, BOOTP est devenu DHCP :Dynamic Host Configuration Protocol Steffenel Réseaux 2007-2008 15
DHCP RFCs 2131, 2132 Configuration manuelle ou assignation dynamique des adresses IP Un serveur spécifique s'occupe d'assigner des configurations réseaux aux hôtes qui en font la demande Le serveur n'est pas nécessairement sur le même réseau (passage par un relais DHCP) Steffenel Réseaux 2007-2008 16
DHCP - fonctionnement DHCP - économie d'adresses IP : quand un hôte quitte le réseau, il restitue son adresse Les messages DHCP (au dessus d'udp) DHCPDiscover : diffusion du client pour que les serveurs DHCP actifs répondent en fournissant une @IP DHCPOffer : offre des serveurs (réponse à DHCPDiscover) DHCPRequest : après avoir sélectionné une offre, le client émet une requête d'affectation d'@ au serveur élu DHCPAck : le serveur renvoie une config. Réseau et une durée de validité (lease time) DHCPNAck : refus d'un renouvellement par le serveur DHCPRelease : résiliation du bail avant échéance par le client Steffenel Réseaux 2007-2008 17
Obtention d'une adresse avec DHCP Steffenel Réseaux 2007-2008 18
NAT Network Address Translation Review sur les adresses IP Fonctionnement Steffenel Réseaux 2007-2008 19
Classes d'adresses IP Steffenel Réseaux 2007-2008 20
Les Adresses IP Particulières Diffusions locale et distante 255.255.255.255 : adresse de broadcast sur le réseau IP local (ne passe pas le routeur, traduit en broadcast ARP) <NET_ID><111 111> : adresse de broadcast dirigée vers le réseau de numéro NET_ID (exemple : 132.227.255.255 = diffusion dans le réseau 132.227.0.0) Rebouclage local (loopback) : 127.x.y.z généralement 127.0.0.1 (localhost) permet de tester la pile TCP/IP locale sans passer par une interface matérielle l'adresse 0.0.0.0 utilisée par le protocole RARP (@IP de démarrage) adresse de la route par défaut dans les routeurs Steffenel Réseaux 2007-2008 21
Les adresses privées et le NAT Adresses privées (RFC 1918) des adresses qui ne seront jamais attribuées (adresses illégales) et qui ne sont pas routables sur l'internet classe A : de 10.0.0.0 à 10.255.255.255 classe B : de 172.16.0.0 à 172.31.255.255 classe C : de 192.168.0.0 à 192.168.255.255 Si une entreprise qui utilise des adresses privées souhaitent tout de même disposer d'une connexion à l'internet, il faut demander une adresse publique faire des conversions adresse privée <--> adresse publique Steffenel Réseaux 2007-2008 22
Les adresses privées et le NAT (2) NAT (RFC 3022) - Network Address Translator Mise en correspondance d'une adresse privée et d'une adresse publique traduction statique ou dynamique (lors de la connexion) Une solution au manque d'adresses IP publiques : quelques adresses IP publiques pour beaucoup d'adresses IP privées ex : l'entreprise achète une adresse publique et tous les ordinateurs internes sont rattachés à l'aide de NAT le NAT peut être coûteux en performance augmente la latence des transmissions possibilité de surcharge dans le serveur NAT Steffenel Réseaux 2007-2008 23
Fonctionnement Fonctionnement du NAT une table stockée dans le NAT fait la correspondance entre {IP_src privée, port_src} et une adresse IP_publique quand le paquet part : l'adresse IP_src est remplacé par l'adresse IP_publique La port_src devient la référence de l'entrée dans la table auand la réponse revient : port_dest du paquet permet de retrouver dans la table l'adresse IP et port_src Steffenel Réseaux 2007-2008 24
Exemple 1 Steffenel Réseaux 2007-2008 25
IP Masquerading Steffenel Réseaux 2007-2008 26
DNS Principe Historique Steffenel Réseaux 2007-2008 27
Résolution de Noms Adresses dans un réseau IP composés de 32 bits Représentation «facilitée» avec le format décimal pointé 192.168.10.56 200.18.42.1 Ce format d'adresses est encore trop difficile pour les utilisateurs Solution : associer des noms aux adresses IP 194.57.105.10 www.univ-reims.fr Steffenel Réseaux 2007-2008 28
DNS : Domain Name System Système décentralisé de gestion de noms et d'adresses Avant le DNS, utilisation d'un fichier HOSTS par machine difficulté de mise à jour d'un réseau La croissance de l'internet dans les années 80 et le déploiement du protocole SMTP (e-mail) motivent la définition du DNS. Première spécification : RFC882, RFC883 (1983). DNS = Schéma de Nommage + Système de base de données Distribué Steffenel Réseaux 2007-2008 29
Caractéristiques Arbre de nommage globalement Unique. Distribution très forte : des données, de l'accès aux données, de la responsabilité de gestion. Motivations premières : [nom de machines -> adresse IP], [adresse de mail -> adresse des serveurs de mail], mais de nombreux autres types d'informations possibles. Steffenel Réseaux 2007-2008 30
Implications Elément vital du fonctionnement opérationnel de l'internet; De nombreuses extensions en expérimentation et en discussion à l'ietf; Des intérêts "stratégiques" et "politiques" pour les utilisateurs "commerciaux" (gouvernance de l'internet); Inquiétudes importantes sur l'évolution du DNS et le développement de mauvais usages. Steffenel Réseaux 2007-2008 31
Description Espace de Nommage Top-Level Domains Système Distribué DNS Steffenel Réseaux 2007-2008 32
Structure Arborescente des Noms Le schéma de nommage est comparable à celui d'un système de fichier comme UNIX, mais avec une notation inversée (racine en fin) Unix : /home/angelo/documents/presdns.odt DNS : www.cs.kuleuven.be Les Noms DNS vont servir d'indexation pour la base de données L'unicité de la racine va garantir un nommage global universel ("worldwide") pour le DNS LA QUESTION DE NOS JOURS : qui contrôle la racine? Steffenel Réseaux 2007-2008 33
... com org fr us arpa in-addr apple google univ-reims asso 194 www www ebureau 57 104 113 Steffenel Réseaux 2007-2008 34
Composants d'un Domain Name Label Un noeud est identifié par un label sur 1 à 63 octets Cas particulier : la racine "root" a un label vide (0 octet) Nom de domaine : chemin d'un noeud vers la racine Noté par la succession des labels séparés par un "." La taille maximum d'un nom est de 255 octets ("." compris) L'absence de point final dans un nom s'interprète comme un nom relatif à un domaine courant On pourra aussi abréger l'adresse en ebureau si le contexte désigne clairement univ-reims.fr. comme domaine courant. Un nom complet avec "." final s'appelle un FQDN (Fully Qualified Domain Name). Steffenel Réseaux 2007-2008 35
Top-Level Domains Les TLDs sont les noeuds de premier niveau dans l'arbre DNS. "co-supervisés" de manière un peu floue ou fluctuante par : l'iab et IANA, l'internic, et ICANN. TLDs génériques (gtld) Historiques :.COM,.EDU,.GOV,.INT,.MIL,.NET,.ORG Créés après 2000 par ICANN :.AERO,.BIZ,.COOP,.INFO,.MUSEUM,.NAME,.PRO Créés en 2005/2006 par ICANN :.CAT (Catalogne),.JOBS,.MOBI,.TRAVEL En discussion :.ASIA,.MAIL,.POST,.TEL, XXX. les domaines "aero, coop, museum, cat, jobs, mobi, travel" sont aussi appelés des stlds pour sponsored Top-Level Domains Steffenel Réseaux 2007-2008 36
TLDs nationaux (cctld) Ils suivent la liste des country codes normalisés par l'iso sous la référence ISO3166 (environ 250 "pays"). exemples :.US Etats-Unis,.FR France,.TV Tuvalu,.VA Vatican... Quelques exceptions :.SU Union Sovietique, n'existe plus dans ISO3166.UK Grande Bretagne, ISO3166 ne définit que GB..EU Union Européenne, pas officiel dans ISO3166 Les cctlds "Français" : FR. France, GF. Guyane, GP. Guadeloupe, MQ. Martinique, NC. Nouvelle calédonie, PF. Polynésie Française, PM. St. Pierre et Miquelon, RE. La Réunion, TF. Terres Australes Françaises, WF. Wallis et Futuna, YT. Steffenel Réseaux 2007-2008 37
Domaines Spéciaux ARPA : gtld "préhistorique" réutilisé pour des mécanismes spécifiques tels que le reverse DNS ou ENUM. l'adresse 113.104.57.194.in-addr.arpa est un pointeur (PTR) vers ebureau.univ-reims.fr EXAMPLE, TEST, INVALID : TLDs conventionnels pour expérimentation et documentation (RFC 2606). LOCALHOST : TLD conventionnel (mais non officiel) pour "localhost=127.0.0.1" (RFC 1912). Steffenel Réseaux 2007-2008 38
Système Distribué DNS - Motivation Système Distribué Coopération d'un très grand nombre de serveurs administrés de manière autonome Fiable Résistance aux pannes et redondance, réplication des bases. Efficace Traffic et réponses locales le plus possible, forte répartition des données, agglomération et mécanisme de cache. Extensible Différents types de mapping et d'informations; forte indépendance de chaque partie élémentaire (zone) de la base. Steffenel Réseaux 2007-2008 39
Système Distribué DNS - Registre Resource Record (RR) Les informations partagées par DNS sont typées. Un même nom du DNS peut être associé à plusieurs données de types différents (adresses IPv4, relais de messagerie, adresses IPv6, alias de machine,...) Un nom peut aussi avoir plusieurs valeurs différentes pour un même type (i.e. plusieurs adresses IP pour une même machine) L'ensemble des informations de la base de données DNS est structuré autour des Resource Records. Un RR est un quintuplet de la forme : { Nom-Domaine TTL CLASSE TYPE RDATA } Steffenel Réseaux 2007-2008 40
Système Distribué DNS - Registre Registre : Nom-Domaine est un nom absolu de l'espace de nommage DNS (FQDN Fully Qualified Domain Name) TTL Time To Live définit la durée de vie de l'objet dans les caches, en secondes CLASSE vaut IN pour internet, CH pour chaos,... TYPE est le type de données du RR RDATA est la valeur de l'objet (valeur associé au TYPE) www.univ-reims.fr. 172800 IN A 194.57.105.10 "www a pour Adresse INternet IPv4 194.57.105.10, cette info est valide pour les 172800 secondes (2 jours) à venir" Steffenel Réseaux 2007-2008 41
Système Distribué DNS - Registre Quelques types de registre A traduction nom->adresse PTR traduction adresse->nom (traduction reverse) CNAME nom canonique (nom officiel de l'hôte) TXT information libre RP personne responsable MX Mail exchange (serveur email associé à une adresse) Commentaires (IMPORTANT) les commentaires commencent avec un point-virgule «;» souvent source d'erreur Steffenel Réseaux 2007-2008 42
Requête DNS Une requête DNS est un triplet de la forme {Nom-Domaine CLASSE QTYPE} QTYPE comprend les valeurs de TYPE usuelles d'un RR La résolution d'une requête de base (QTYPE=TYPE) consiste à trouver l'ensemble des RRs du DNS qui correspondent. Par exemple : Question = { altavista.com. IN A }? Réponses = altavista.com. 389 IN A 209.73.164.91 altavista.com. 389 IN A 209.73.164.92 altavista.com. 389 IN A 209.73.164.93 Steffenel Réseaux 2007-2008 43
Utiliser DNS DNS est automatiquement utilisé par toute application sur l'internet utilisant des noms de domaines. Mais on peut aussi y accéder directement : au niveau du langage de commande (shell) commande dig (Domain Information Groper) - voir man dig www.google.com dig -x 194.199.25.39 # -x : adresse vers nom commande nslookup au niveau des appels systèmes Unix #include <netdb.h> struct hostent *gethostbyname(const char *name); struct hostent *gethostbyaddr(const char *addr, int len, 0); Steffenel Réseaux 2007-2008 44