Dynamic Host Configuration Protocol - univ-reims.frlsteffenel/cours/Master1/...Dynamic Host...
Transcript of Dynamic Host Configuration Protocol - univ-reims.frlsteffenel/cours/Master1/...Dynamic Host...
L. Steffenel ©2009 1
Dynamic Host Configuration Protocol
L. Steffenel ©2009 2
Problèmes de gestion avec IP
● La Gestion des adresses IP● Les adresses IP doivent être unique● Nécessité d’une liste d’ordinateurs avec leurs adresses
IP respectives● La Gestion des principaux paramètres IP
● Masques de sous-réseaux● Adresses IP du gateway● Serveurs DNS
L. Steffenel ©2009 3
DHCP ? (1)
● Dynamic Host Configuration Protocol ● Extension du protocole BOOTP● Bâti sur un modèle client-serveur utilisant UDP● Composé de deux parties :
● Un protocole● Un mécanisme de création d’adresses
L. Steffenel ©2009 4
DHCP ? (2)
● Permet :● Allocation dynamique des adresses IP et des noms
d’hôte.● Utilisation automatique de la plupart des paramètres de
réseau.● Maintenance des adresses IP en cours grâce au
concept de « bail d’adresses IP».● Aide à la récupération de paramètres de réseau valides
sur un système déplacé d’un réseau géré par DHCP à un autre.
L. Steffenel ©2009 5
Dynamic Host Configuration Protocol
D'autres mécanismes
L. Steffenel ©2009 6
RARP
● Inverse de Adress Resolution Protocol● But : Obtenir une @IP à partir d’une @MAC● Nécessité d’une liste de couples : @MAC/@IP
Pour connaître son @IP, A diffuse sur le réseau, une requête RARPLes Serveurs RARP (B et C) répondent à la requête.
A CBX
L. Steffenel ©2009 7
Inconvénients de RARP
● Opère à un niveau très bas● Difficile de programmer un tel service
● Réponse RARP ne contient qu’une petite quantité d’informations (une adresse IP)● Impossible de faire de la configuration automatique
L. Steffenel ©2009 8
BootStrap Protocol (BOOTP)
● Protocole d’amorçage● Défini par les RFCs :
● RFC951 Bootpstrap Protocol ● RFC1542 Clarifications and Extensions for Bootp
● Basé sur IP/UDP.● Permet aux clients sans disque de démarrer et de se
configurer automatiquement
L. Steffenel ©2009 9
Caractéristiques de BOOTP
● Adresse IP attribuée jusqu'à la déconnection du client● Temps d'attribution non paramétrable
● Nécessité pour le serveur de connaître l'@MAC du client pour être autorisé à lui répondre et disposer de ses paramètres IP
● Renseignement manuel d’une table faisant correspondre à chaque client son @MAC et les paramètres IP associés
L. Steffenel ©2009 10
Fonctionnement de BOOTP
● Le client émet par broadcast une trame de requête Bootp, contenant son adresse MAC pour obtenir sa configuration IP
● Le serveur du réseau reçoit ce broadcast; si l'@MAC du client est présente dans sa table Bootp, il envoie alors une réponse contenant les paramètres de configuration IP du client
● Le client reçoit la trame et initialise sa configuration IP● Le client adresse ensuite au serveur une requête de
transfert TFTP afin d'obtenir un fichier de démarrage
L. Steffenel ©2009 11
Apport de DHCP par rapport à BOOTP
● BOOTP: ● Pré-allocation manuelle d’adresses IP uniques.
● DHCP:● Allocation automatique d’adresses IP permanentes● Allocation dynamique d’adresses uniques réutilisables● Possibilités de conserver les paramètres du client après
redémarrage de celui-ci
L. Steffenel ©2009 12
Dynamic Host Configuration Protocol
Le fonctionnement
L. Steffenel ©2009 13
Définition
● Dynamic Host Configuration Protocol
● Standard TCP/IP conçu pour simplifier la gestion de la configuration d’IP hôte
● Réduit la complexité et la quantité de travail de l'administrateur réseaux
● Méthode de gestion d’affectation dynamique d’adresses IP et d’autres paramètres de configuration
L. Steffenel ©2009 14
Schéma classique
L. Steffenel ©2009 15
Fonctionnement
● Modèle client-serveur ● Le client :
● Vient de démarrer et réclame sa configuration.● Le serveur :
● détient la politique d'attribution des configurations IP.● envoie une configuration donnée pour une durée donnée, appelé
bail à un client donné
L. Steffenel ©2009 16
Le Bail ?
● Définit par le serveur DHCP● C'est l'intervalle de temps pendant lequel un client peut
utiliser une adresse IP qui lui a été affectée● Demande de renouvellement de l'adresse IP à T1=1/2*Bail
● Si échec du renouvellement, nouvelle demande à T2=0.875*Bail
● Si nouvelle échec, à expiration du bail, le client libère l'adresse IP attribué
L. Steffenel ©2009 17
Différences entre DHCP et BOOTP (1)
● 1 – Affectation de paramètre réseau:● Fournir un espace de mémorisation des paramètres
réseau pour les clients du sous-réseau
● Basé sur la mémorisation (dans une base de données) d’une valeur clé pour chaque client => identifiant unique
● Possibilité de récupération des paramètres de configuration précédemment utilisés après le redémarrage du client ou du serveur
L. Steffenel ©2009 18
Différences entre DHCP et BOOTP (2)
● 2 - Allocation dynamique des adresses réseaux:● Utilise automatiquement une adresse qui n’est plus
utilisée.● Adresse allouée pour une durée déterminée (ou infinie):
le bail.● Utilité:
– Connexion temporaire au réseau.– Partage d’une liste limitée d’adresses IP.
L. Steffenel ©2009 19
Dynamic Host Configuration Protocol
Les messages échangés
L. Steffenel ©2009 20
Les messages transmis
● Plusieurs types de messages DHCP transmis via UDP● Spécifié dans l’option ‘type du message DHCP’ de la trame DHCP● Comme un seul « aller-retour » n'est pas suffisant pour une configuration
complète● Plusieurs messages sont nécessaires pour une configuration
● Le client utilise le port 68, le serveur le port 67
L. Steffenel ©2009 21
Mécanisme d'une allocation d'adresse
● Recherche d’un serveur DHCP:● Broadcast d’un message DHCPDISCOVER sur son
réseau local physique.● Peut utiliser les options 50 et 51 qui suggèrent des
valeurs pour son @IP et sa durée du bail.
L. Steffenel ©2009 22
Les différents messages
● DHCPDISCOVER (1)● Diffusion du client pour localiser les serveurs
disponibles.● Demande une première configuration.
L. Steffenel ©2009 23
Mécanisme d'une allocation d'adresse
Détermine la configuration
Détermine la configuration
Serveur(non sélectionné)
Serveur(sélectionné)
Client
DHCPDISCOVER DHCPDISCOVER
DHCPOFFERDHCPOFFER
Récupère les réponses
Début de l’initialisation
L. Steffenel ©2009 24
Mécanisme d'une allocation d'adresse
● Détermination de la configuration:● Envoie d’un message DHCPOFFER en réponse au
DHCPDISCOVER● Adresse réseau valide dans un champ appelé ‘yiaddr’● Réponse aux différentes options demandées
● Remarque: ● Si le client ne reçoit pas le DHCPOFFER au bout d’un
délai d’attente, il retransmet son DHCPDISCOVER
L. Steffenel ©2009 25
Mécanisme d'une allocation d'adresse
● Récupération et choix de la configuration:● Réception d’un ou plusieurs messages DHCPOFFER d’un ou plusieurs
serveurs.● Choix du serveur pour ses paramètres● Diffusion d’un message DHCPREQUEST avec:
– Option ‘identifiant serveur’,– Possibilité d’option spécifiant les valeurs de configuration désirées.
● Relayé grâce à l’agent de relais
L. Steffenel ©2009 26
Les différents messages
● DHCPREQUEST (3)● Message du client aux serveurs ● Qui demande les paramètres à un serveur et décline
implicitement les offres de tous les autres,● Qui confirme la validité des adresses précédemment
alloués● Qui étend le bail sur une adresse réseau en particulier
L. Steffenel ©2009 27
Mécanisme d'une allocation d'adresse
● Confirmation ou non de la configuration:● Serveurs non sélectionnés par le message
DHCPREQUEST: le client décline leur offre
● Serveur sélectionné renvoie un DHCPACK qui contient la configuration pour le client demandeur.
● Envoie de DHCPNAK si le serveur est indisponible (ex: @IP demandée déjà allouée)
L. Steffenel ©2009 28
Les différents messages
● DHCPACK (5)● Message du serveur au client ● Incluant les paramètres demandés dans le
DHCPREQUEST.● Incluant l’adresse IP déjà attribuée.
● DHCPNAK (6)● Message du serveur au client● La notion d’un client pour les adresses réseau est
incorrecte (il a changé de sous-réseau)● Ou le bail du client a expiré.
L. Steffenel ©2009 29
Mécanisme d'une allocation d'adresse
Serveur(non sélectionné)
Serveur(sélectionné)
Client
Choisit sa configuration
Confirme la configuration
DHCPREQUEST
DHCPACK
Initialisation terminéeRelâche l’adresse IP
Annule le bailDHCPRELEASE
DHCPREQUEST
L. Steffenel ©2009 30
Les différents messages
● DHCPDECLINE (4)● Message du client vers le serveur● Adresse réseau déjà utilisée.
● DHCPRELEASE (7)● Message du client vers le serveur● Libère l’adresse réseau● Annule le bail.
L. Steffenel ©2009 31
Mécanisme d'une allocation d'adresse
● Configuration ou relance:● Réception de DHCPACK avec les paramètres de
configuration
● Vérification de l’adresse IP:– Utilisation de ARP– S’il constate que l’adresse est déjà utilisée, il envoie un
message DHCPDECLINE au serveur
● Le client est alors configuré.
L. Steffenel ©2009 32
Mécanisme d'une allocation d'adresse
● Configuration ou relance (suite):● Réception d’un DHCPNAK,
– le client relance la configuration.
● Ni DHCPACK, ni DHCPNAK,– Il attend, – Il effectue un processus de retransmission de
DHCPREQUEST jusqu’à 4 fois en 60 secondes.– Au bout d’un certain temps sans réponse, il relance
l’initialisation
L. Steffenel ©2009 33
Mécanisme d'une allocation d'adresse
● Relâche de son adresse IP:● Peut choisir de renoncer à son bail sur une adresse
réseau => Envoi de DHCPRELEASE
● Bail identifié grâce à (‘identifiant client’ ou ‘chaddr’) et l’adresse réseau
● Mémorisation locale de son adresse réseau.
● Le client ne renonce pas à son bail lors d’un arrêt normal
L. Steffenel ©2009 34
Réutilisation d'une adresse
Serveur(non sélectionné)
Serveur(sélectionné)
Client
Initialisation
Retrouve la configuration
DHCPREQUEST
DHCPACK
Initialisation terminée
DHCPREQUESTRetrouve la configuration
DHCPACKDHCPACK ultérieurignoré
L. Steffenel ©2009 35
Réutilisation d'une adresse
● Demande de réutilisation d’une adresse:● Diffusion d’un message DHCPREQUEST sur le sous-
réseau du client avec son adresse réseau dans l'option 'adresse IP demandée'.
● Les agents de relais transmettent le message au serveur DHCP si celui-ci n'est pas sur le même sous réseau.
● Utilisation du même ‘identifiant client’.
L. Steffenel ©2009 36
Les différents messages
● Si le client possède déjà une adresse réseau attribuée de manière externe, il doit compléter sa configuration:
● DHCPINFORM(8)
– Message du client vers le serveur– Récupère les paramètres de configuration locaux
L. Steffenel ©2009 37
Réutilisation d'une adresse
● Localisation de la configuration:● Les serveurs qui connaissent les paramètres de
configuration du client lui répondent avec un DHCPACK.
● Pas de vérification de l’adresse IP du client.● Diffusion du DHCPACK par un broadcast. ● Si le client et le serveur ne sont pas sur même sous-
réseau => Envoi d’un message DHCPACK à l'adresse de l'agent de relais, comme enregistré dans le champ 'giaddr‘.
L. Steffenel ©2009 38
Réutilisation d'une adresse
● Vérification finale des paramètres:● Si OK, configuration terminée.
● Sinon doit relancer une nouvelle configuration:– Si @IP utilisée, le client envoie DHCPDECLINE.– Si réception d’un DHCPNAK
● Algorithme de retransmission si non réception de DHCPACK ou DHCPNAK.
L. Steffenel ©2009 39
Adresse configurée extérieurement
● Adresse réseau obtenue grâce à d’autres moyens (ex:config. manuelle)
● Utilisation d’une requête DHCPINFORM pour obtenir des paramètres de configuration locaux
● Le serveur répond:● Sans allouer l’adresse réseau● Sans inclure les durées de bail● Sans vérifier de lien
L. Steffenel ©2009 40
Dynamic Host Configuration Protocol
La sécurité
L. Steffenel ©2009 41
Sécurité
● Les failles de sécurité peuvent provenir des deux côtés du modèle client-serveur.
● Client pirate DHCP : ● capable d’accéder à des ressources protégées si la
protection ne repose que sur une identification de l’adresse IP, ce qu’il vaut donc mieux éviter.
● pourra paralyser le serveur en consommant les adresses IP rapidement sans les libérer.
L. Steffenel ©2009 42
Agent de relais● Une machine sur internet ou un routeur.
● Transmet des messages entre clients et serveurs DHCP.
● Incrémente le champ ‘hops’ de la trame DHCP.● Permet à un client d’interroger un serveur DHCP qui
n’est pas sur le même sous-réseaux
L. Steffenel ©2009 43
Sécurité
● Serveur parasite :● capable d’envoyer de fausses informations de
configuration aux clients dont il acquittera les requêtes.
● Existence de logiciels capables:● de surveiller les paquets DHCP sur un réseau ● de donner l’alerte s’ils en détectent qui ne proviennent
pas de serveurs autorisés.
L. Steffenel ©2009 44
Serveur DNS
L. Steffenel ©2009 45
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
L. Steffenel ©2009 46
Résolution de Noms sous ARPANetL’ARPANET des années 80 est constitué d’une centaines d'ordinateurs reliés
Structure suffisamment simple à gérer
Un unique fichier hosts.txt rassemble les correspondances entre nom d'hôte et adresse IP
Le fichier hosts.txt est stocké sur le SRI-NIC (Standford)
Régulièrement, les machines téléchargent par FTP la nouvelle version du fichier
NET : 10.0.0.0 : ARPANET :
NET : 128.10.0.0 : PURDUE-CS-NET :
GATEWAY : 10.0.0.77, 18.10.04 :
MIT-GW.ARPA,
MIT-GATEWAY : PDP-11 :
MOS : IP/GW, EGP :
HOST : 26.0.0.73, 10.0.0.51
SRI-NIC.ARPA, SRI-NIC, NIC :
DEC-2060 : TOPS-20 :
TCP/TELNET, TCP/SMTP
TCP/TIME, TCP/FTP
TCP/ECHO, ICMP :
HOST : 10.2.0.11 : SU-TAC.ARPA,
SU-TAC : C/30 : TAC : TCP :m
L. Steffenel ©2009 47
Inconvénients
La taille du fichier hosts.txt augmente avec le nombre d’hôtes
En 1983, le réseau amorce son expansion exponentielle
La fréquence des mises-à-jours des tables devient proportionnelle au nombre de machines
La consommation de bande passante est proportionnelle au carré du nombre d’hôtes
L. Steffenel ©2009 48
DNS : Domain Name System
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é
Système décentralisé de gestion de noms et d'adresses
Base de données distribuée, avec caches locaux
Organisation hiérarchique
L. Steffenel ©2009 49
Le protocole DNSLe protocole Domain Name System est un
ensemble de règles utilisées par les logiciels pour établir (entre autres choses) la correspondance entre des noms et des adresses
Il utilise un protocole de communication client/serveur udp/tcp sur le port 53
L. Steffenel ©2009 50
CaractéristiquesArbre de nommage globalement Unique
Distribution bijectiveun nom d’hôte peut désigner plusieurs adresses ip pour des interfaces différentes et vice-versa
Distribution très fortedes 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
L. Steffenel ©2009 51
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
L. Steffenel ©2009 52
Structure Arborescente des NomsLe 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
L. Steffenel ©2009 53
...
com org fr us arpa
apple google
www
univ-reims asso
www ebureau
in-addr
194
57
104
113
L. Steffenel ©2009 54
Composants d'un Domain NameLabel
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
L'absence de point final dans un nom s'interprète comme un nom relatif à un domaine courant
Un nom complet avec "." final s'appelle un FQDN (Fully Qualified Domain Name)
L. Steffenel ©2009 55
Top-Level DomainsLes TLDs sont les noeuds de premier niveau dans l'arbre DNS
"co-supervisés" de manière un peu floue par : l'IAB et l'IANA, l'INTERNIC et l'ICANN
Certains nœuds définissent une zone sous l’autorité d’un serveur de noms : SOA (Sphere Of Authority)
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, .CAT (Catalogne), .JOBS, .MOBI, .TRAVEL
En discussion : .ASIA, .MAIL, .POST, .TEL, XXX
L. Steffenel ©2009 56
TLDs nationaux (ccTLD)Ils suivent la liste des country codes normalisés par l'ISO sous la référence ISO3166 (environ 250 "pays").
.US Etats-Unis, .FR France, .TV Tuvalu, .VA Vatican ...
Quelques exceptions :
.SU Union Soviétique, 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. Mayotte
L. Steffenel ©2009 57
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).
L. Steffenel ©2009 58
Les Zones
Une zone est un sous arbre de l’arbre des noms de domaines sur lesquels un NS possède une information complète
Une zone est géré par une entité administrative particulière
L’autorité sur ce sous-arbre est déléguée
La délégation est totale :
libre organisation
changements sans préavis
délégation de sous-zones
L. Steffenel ©2009 59
Résolution des noms● Résolution par requête
● non récursive : le serveur communique au client quel serveur celui-ci doit contacter pour pouvoir faire la résolution
● récursive : le serveur communique la requête à un autre serveur. La récursivité se termine quand un serveur pouvant faire la résolution est trouvée
● Possibilité d'utiliser un cache pour éviter d’encombrer de réseau
rech.univ-reims.frens.univ-reims.fr
univ-reims.fr
banane.ens.univ-reims.fr
kiwi.ens. univ-reims.fr
Colibri. Rech.univ-reims.fr
Pelican. rech.univ-reims.fr
L. Steffenel ©2009 60
Les Registres DNS
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 n-uplet de la forme :
Nom-Domaine TYPE CLASSE TTL RLEN RDATA
L. Steffenel ©2009 61
Système Distribué DNS - Registre
Registre :
Nom-Domaine est un nom absolu de l'espace de nommage DNS (FQDN Fully Qualified Domain Name)
CLASSE vaut IN pour internet, CH pour chaos, ...
TYPE est le type de données du RR
TTL Time To Live définit la durée de vie de l'objet dans les caches, en secondesRLEN est la longueur des données de RDATA
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"
L. Steffenel ©2009 62
Système Distribué DNS - RegistreQuelques types de registre
A – traduction nom->adresseA6 – traduction nom-> adresse IPv6AAAA – traduction nom-> adresse Ipv6 (obsolète)PTR – traduction adresse->nom (traduction reverse)CNAME – nom canonique (nom officiel de l'hôte)TXT – information libreRP – personne responsableMX – Mail eXchange (serveur email associé à une adresse)
Commentaires (IMPORTANT)
les commentaires commencent avec un point-virgule « ; »
souvent source d'erreur
L. Steffenel ©2009 63
Initialisation du TTL standard de la zone● Le TTL (Time To Live) définit le temps pendant lequel les
informations en mémoire cache doivent être conservées● Avec les versions précédentes de BIND 8.2
● Le TTL standard de la zone est initialisée par le dernier champ de l'enregistrement SOA
● Depuis la version BIND 8.2, la signification du TTL a changé● Durée de vie en mémoire cache d'une réponse négative● Utilisation d'une nouvelle directive de contrôle, $TTL, pour
définir la durée de vie standard pour l'ensemble des enregistrements
● Ce TTL est transmis en même temps que ses réponses● En moyenne, un TTL de 3h est raisonnable
L. Steffenel ©2009 64
Le type MX● MX = Mail eXchanger● Permet l’adressage Email sur la base du nom de domaine
plutôt que sur l’adresse du (des) serveur(s) de mail :● [email protected] plutôt que [email protected]
● (nom du serveur de mail : mail )● permet à l’émetteur d’ignorer le nom du serveur de mail● permet le déplacement du serveur de mail vers une autre
machine● permet la gestion de plusieurs serveurs de mail avec priorité dans
l’ordre de consultation des serveurs● L’enregistrement MX est consulté par les mailer (client SMTP)● Tient compte des priorités (plusieurs serveurs en cas de panne)
L. Steffenel ©2009 65
Requête DNSUne 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
L. Steffenel ©2009 66
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)Commade hostcommande 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);
L. Steffenel ©2009 67
Installation d'un Serveur DNS
Pour l'installation d'un serveur DNS nous utilisons sous Unix l'application BIND (Berkeley Internet Name Daemon)
apt-get install bind9 bind9-doc dnsutilsÉditer/créer les fichiers
/etc/resolv.conf – indique l'adresse IP du serveur DNS
/etc/bind/named.conf – fichier de configuration qui liste les zones (fait le lien avec le fichier des zones)
/etc/bind/zones – répertoire avec les fichiers de zones définis
Fichier de votre zoneFichier avec la zone DNS reverse
L. Steffenel ©2009 68
Resolv.confLe fichier /etc/resolv.conf indique à Linux où chercher les informations de DNS
Exemple : domain mydomain.fr
search mydomain.fr
nameserver 127.0.0.1
nameserver x.x.x.x
Définit votre machine (127.0.0.1) comme le serveur pour le domaine mydomain.fr
Remplacez mydomain.fr par votre nom de domaine et x.x.x.x par le serveur de secours
L. Steffenel ©2009 69
Définition d'une Zone de NommageUne Zone DNS est formellement définie comme une partie connexe de l'arbre de nommage. Elle est donc constituée d'un domaine DNS (racine de la zone) et éventuellement de sous-domaines issus de ce domaine.
Afin d'enregistrer une zone, nous devons créer des entrées pour deux TYPES d'enregistrement
SOA – Désigne l'autorité pour le domaine
délimite la zone dont le Serveur de Noms est « autorité »permet de départager les réponses multiples fondées sur des caches
NS – Indique le Serveur de Noms pour ce domaine
L. Steffenel ©2009 70
Exemple de RéseauSupposons un réseau avec deux machines
un serveur DNS (102.253.253.1)
dns.mydomain.frun serveur pour WWW et MAIL (102.253.253.2)
www.mydomain.frmail.mydomain.fr
Ce réseau présente des « alias » pour le serveur www/mail
C'est de la responsabilité du serveur DNS, l'autorité pour la zone, de bien référencer les machines dans le domaine
L. Steffenel ©2009 71
Fichier /etc/bind/zones/mydomain.dbFichier contenant les registres SOA et NS pour votre zone
; fichier pour la zone « mydomain »
mydomain.fr. IN SOA dns.mydomain.fr. admin.mydomain.fr. ( 2006081401 ; numéro série pour mise à jour 10800 ; mise à jour dans 3 heures 3600 ; nouvelle tentative après 1h 604800 ; expire après 1 semaine 38400 ; minimum TTL 1 semaine)
mydomain.fr. IN NS dns.mydomain.fr.IN A 102.253.253.1mail.mydomain.fr. IN MX 10 mail.mydomain.fr.mydomain.fr. IN MX 10 mail.mydomain.fr.
mail IN A 102.253.253.2www IN CNAME maildns IN A 102.253.253.1
L. Steffenel ©2009 72
Fichier /etc/bind/zones/102.253.253.revCe fichier contient les registres de pointeur PTR qui permettent la résolution reverse de votre adresse IP
@ IN SOA mydomain.fr. admin.mydomain.fr. (
1 ; Serial604800 ; Refresh
86400 ; Retry 2419200 ; Expire 604800 ) ; Default TTL
IN NS dns.mydomain.fr.
1.253.253.102.in-addr.arpa. IN PTR dns.mydomain.fr.
2.253.253.102.in-addr.arpa. IN PTR www.mydomain.fr.
L. Steffenel ©2009 73
Fichier /etc/named.confMaintenant, nous allons faire la liaison du fichier de configuration named.conf aux fichiers de description des zones
Rajouter à la fin du fichier /etc/named.conf
zone "mydomain.fr" { type master; file "zones/mydomain.db"; };
zone "253.253.102.in-addr.arpa" { type master; file "zones/102.253.253.rev"; };
L. Steffenel ©2009 74
Vérification finale et Redémarrage du serveur DNS
S'assurer que le fichier /etc/nsswitch.conf a une ligne hosts de type
hosts: files dns
Redémarrer le serveur DNS par la commande
/etc/init.d/bind9 restart
ou son équivalent
/etc/init.d/bind9 stop
/etc/init.d/bind9 start
L. Steffenel ©2009 75
Sécurité – le DNS Spoofing● Attaque que vise rediriger l'utilisateur vers des sites pirates ● Utilisation de faiblesses du protocole DNS et/ou de son
implémentation● Deux principales attaques de type DNS Spoofing
● le DNS ID Spoofing – Recupère l'ID d'une requête pour répondre
● DNS Cache Poisoning– Insérer des fausses informations dans le cache d'un serveur
L. Steffenel ©2009 76
DNS ID Spoofing● Chaque requête a un ID qui sera indiqué dans la réponse● Le pirate capture la requête et répond avec le même ID
mac.naif.fr 10.1.0.2
ns.pirate.fr 10.1.0.13
ns.naif.fr
Any mac.naif.fr ? ID 0
ID 0mac ptr 10.1.0.13
L. Steffenel ©2009 77
DNS Cache Poisoning
comparse.fr ns.pirate.fr10.0.1.13
ns.naif.fr
ns.pirate.fr10.0.1.13
Q : IP www.pirate.fr ?
Q : IP www.pirate.fr ?
R : www.pirate.fr 10.0.1.13 www.google.fr 10.0.1.13 www.amazon.fr 10.0.1.13
L. Steffenel ©2009 78
Introduction à IPv6principes de base
L. Steffenel ©2009 79
Un peu d'HistoireDans les années 90 :
Augmentation exponentielle de l'Internet Augmentation du nombre d'entrées dans les tables de routage
Allocation des adresses - Janvier 1996
Classe A - 100.00% Classe B - 61.95% Classe C - 36.44%
Prévisions d'exhaustion du espace d'adressage
Première alerte - 1994 Maintenant on parle d'une échéance entre 2010 et 2018 http://penrose.uk6x.com/ - 1218 Days (3/2/2009)
L. Steffenel ©2009 80
Prévisions pour IPv4
L. Steffenel ©2009 81
Mesures d'Emergence● Adressage « classless »
● CIDR (Classless Internet Domain Routing) (RFC 1519) ● Adresse réseau = prefixe/longueur du prefixe ● Limite les pertes d'adresses ● Recommande l'agrégation (réduction des tables de routage) ● Réquisition d'adresses déjà alloués (RFC 1917) ● Réutilisation des adresses de classe C
● Permettre les plans d'adressage privés (RFC 1918 ) ● Utilisation de proxies ou NAT pour les communications avec
l'extérieur ● Structuré de manière similaire aux pare-feux
L. Steffenel ©2009 82
Est-cela suffisant ?● Ces mesures ont donné le temps de trouver une solution
meilleure que IPv4● Sans une solution, IPv4 devient de plus en plus complexe à
gérer ● Risque de se trouver avec plusieurs protocoles de niveau 3
● Les adresses IP sont devenus des ressources rares● 232 = seulement 4 294 967 296 adresses
● Les applications et le déploiement de nouveaux réseaux sont fortement limités par le NAT● Logique « firewall » contraire au paradigme « bout-à-bout »
d'Internet
L. Steffenel ©2009 83
IPv4 en chiffres
● Attribution des adresses IPv4 ● 3706.65 million vraiment utilisables ● 2^32 [4,294,967,296] - (classes D et E, réseaux 0 et 127
et RFC1918) ● 6,5 milliards d'habitants
● 40% des adresses sont allouées aux USA – 300 000 000 d’habitants
● 3% des adresses sont allouées à la Chine – 1 400 000 000 habitants
L. Steffenel ©2009 84
À la recherche d'une Solution● Des travaux ont été lancé au début des années 90
pour améliorer IP en général ● IPng (IP nouvelle génération)
● Milieu 90, IPv6 a été retenu comme nouvelle version de IP (RFC 1752) et adopté vers la fin des années 90
● Le nouveau protocole va aller au-delà du problème du nombre d’adresse et s’attaque aux lacunes de IPv4
L. Steffenel ©2009 85
IPv6 – Une nouvelle version de IP
● LA réponse pour le problème de la croissance de l'Internet● Nouveaux réseaux ● Nouvelles machines
● Augment le format des adresses à 128 bits (16 octets) ● Garde les bonnes choses de IPv4
● Format fixe et bien connu pour l'entête ● Taille d'adresses fixe
L. Steffenel ©2009 86
L'entête IPv4
L. Steffenel ©2009 87
L'entête IPv6
L. Steffenel ©2009 88
Est-ce que cela suffit ?● Longueur des adresses
● 2128 = 3.4×1038
– 340 282 366 920 938 463 463 374 607 431 770 000 000● Étoiles observables dans le ciel = 252 = 4.5x1015
● Approximativement 506 102 adresses par m2 sur terre● ou 5×1028 adresses pour chaque habitant de la planète
● Hop Limit ● Ne doit pas être un problème (sur Terre, au moins)
● Payload Length ● Compatible avec les systèmes courants (Ethernet, etc.)● Utilisation de Jumbogrammes (4Go) avec extensions
L. Steffenel ©2009 89
Les Extensions IPv6● Optionnelles, utilisées à la place des options Ipv4
● Insérées entre l'entête IPv6 et les données (TCP, etc.)
● Les extensions ne sont pas traitées par aucun noeud intermédiaire ● Exception: l'extension « hop by hop »
L. Steffenel ©2009 90
Les Extensions et leur Ordre
L. Steffenel ©2009 91
L'Adressage IPv6● Adresse sur 128 bits découpée en 8 mots de 16 bits. ● Exemple: FEDC:0000:0000:0210:EDBC:0000:6543:210F ● Format compressé
● compression des 0 d'entête - FEDC:0:0:210:EDBC:0:6543:210F
● Remplacer une séquence de 0 par :: (une seule fois)– FEDC::210:EDBC:0:6543:210F
● Exemple d’utilisation: ● http://[2001:1234:12::1]:8080
● Cohabitation v4/v6 ● 0:0:0:0:0:FFFF:192.168.16.1 ou ::FFFF:192.168.16.1
L. Steffenel ©2009 92
Représentation des Préfixes● Similaire aux préfixes CIDR
● adresse-ipv6/longueur du préfixe ● Exemple
– 2001:0DB8:0000:CD30:0000:0000:0000:0000/60 – 2001:0DB8::CD30:0:0:0:0/60 – 2001:0DB8:0:CD30::/60
● Représentations incorrectes – 2001:0DB8:0:CD3/60 – 2001:0DB8::CD30/60 – 2001:0DB8::CD3/60
L. Steffenel ©2009 93
Adresses Spécifiques
● loopback ● 0:0:0:0:0:0:0:1 => ::1
● unspecified ● Indique l'absence d'une adresse ● 0:0:0:0:0:0:0:0 => :: ● Ne doit pas être utilisée comme adresse de destination
● Autres Notations● Notation CIDR: 2001:db8::/64 ● URL: http://[2001:db8:4201:8::cafe:deca]:8080 ● RFC 1924: 9R}vSj}-&Xr<wS5fSm=
L. Steffenel ©2009 94
Comment est attribuée une IPv6 ?● Auto-configuration
● auto-configuration des adresses intégrée dans le protocole ● génération automatique des adresses à partir d’informations
reçues par le routeur et de l’adresse MAC (d’une interface Ethernet)
● L'auto-configuration est un processus à plusieurs étapes
L. Steffenel ©2009 95
Adressage IPv6● Espace d'adressage (IETF)
● 0000::/8 Reserved by IETF [RFC3513] ● 2000::/3 Global Unicast [RFC3513] ● FC00::/7 Unique Local Unicast [RFC4193] ● FE80::/10 Link Local Unicast [RFC3513] ● FEC0::/10 Reserved by IETF [RFC3879] ● FF00::/8 Multicast [RFC3513]
L. Steffenel ©2009 96
Adresses Lien Local
namabiiru ~ # ifconfig eth0 eth0 Link encap:Ethernet HWaddr 00:11:43:CD:3B:1C [..] inet6 addr: fe80::211:43ff:fecd:3b1c/64 Scope:Link [..]
namabiiru ~ # ifconfig eth1 eth1 Link encap:Ethernet HWaddr 00:11:43:CD:3B:1D [..] inet6 addr: fe80::211:43ff:fecd:3b1d/64 Scope:Link [..]
● Comment obtenir l'Interface ID ?
1111111010 0 Interface ID
10 bits 54 bits 64 bits
FE80::/64
L. Steffenel ©2009 97
Interface ID et Zone ID● Interface ID - Format EUI-64 obtenu en modifiant la
représentation d’une adresse MAC sur 48 bits
● Zone ID - adresse%interface● fe80::211:43ff:fecd:3b1c%eth0
– BSD - ping6 fe80::290:6900:decf:543e%eth0– Linux - ping6 -I eth0 fe80::290:6900:decf:543e
L. Steffenel ©2009 98
Unique Local Unicast Address (RFC4193)
● Les 40 bits du Global ID sont générés aléatoirement ● Ils sont différents sur chaque site ● Cela permet de réunir facilement deux sites/réseaux sans
changer leurs adressages respectifs● Si le Global ID est fourni par un Routeur, alors on a une
adresse globale
Prefx Global ID Interface ID
7 bits 40 bits 64 bits
FC00::/70
1
Subnet ID
16 bits
L. Steffenel ©2009 99
Adresses Globales
L. Steffenel ©2009 100
Résultatnamabiiru ~ # ifconfig eth0 Link encap:Ethernet HWaddr 00:11:43:CD:3B:1C inet addr:203.178.135.36 Bcast:203.178.135.128 Mask:255.255.255.128 inet6 addr: 2001:200:0:1cd7:211:43ff:fecd:3b1c/64 Scope:Global inet6 addr: 2001:200:0:1cd8:211:43ff:fecd:3b1c/64 Scope:Global inet6 addr: 2001:200:0:1cd1:211:43ff:fecd:3b1c/64 Scope:Global inet6 addr: fe80::211:43ff:fecd:3b1c/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:34307181 errors:0 dropped:0 overruns:0 frame:0 TX packets:7381660 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:3771786654 (3597.0 Mb) TX bytes:2291246660 (2185.1 Mb) Base address:0xece0 Memory:fe1e0000-fe200000
lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:8732 errors:0 dropped:0 overruns:0 frame:0 TX packets:8732 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:783223 (764.8 Kb) TX bytes:783223 (764.8 Kb)
L. Steffenel ©2009 101
Ok, mais comment contacter un routeur ?
● L'auto-configuration passe par la découverte des voisins● Découverte de voisins
● résolution IPv6 -> MAC (comme ARP avec IPv4)● Découverte des routeurs
● Obtention d'informations pour l'auto-configuration d’adresses ● Détection d’accessibilité des voisins ● Détection des adresses dupliquées ● Découverte des préfixes et paramètres du réseau
L. Steffenel ©2009 102
Les Quatre Messages● Router Solicitation (RS)
● utilisé par un noeud pour découvrir les routeurs sur le réseau ● Router Advertisement (RA)
● utilisé par un routeur pour annoncer le préfixe à utiliser et d’autres options (ex: MTU du lien)
● Neighbor Solicitation (NS)● permet à un noeud de demander l’adresse MAC
correspondante à une adresse IPv6 ● Neighbor Advertisement (NA)
● réponse au message NS
L. Steffenel ©2009 103
L'auto-configuration en résumé
Soit donné l’adresse MAC 00:17:f2:ea:59:46
1.création d’une adresse lien-local ● (fe80::217:f2ff:feea:5946)
2.vérification d’unicité de l’adresse lien-local ● message NS sans réponse
3.récupération du préfixe IPv6 du lien ● RS/RA (ex: 2001:db8:42::/64)
4.création de l’adresse globale● (2001:db8:42::217:f2ff:feea:5946)
5.vérification d’unicité de l’adresse globale
L. Steffenel ©2009 104
Interopérabilité & transition – Dual Stack
● Technique de la double pile● Communication IPv4 ↔ IPv4● Communication IPv6 ↔ IPv6
● Peut nécessiter l’utilisation de différentes applications pour chaque version
● Les routeurs doivent aussi pouvoir gérer les versions du protocole● Surcharge à cause des deux piles
● Stratégie couramment utilisée chez certains FAI (Free)
L. Steffenel ©2009 105
Interopérabilité & transition – Tunneling (encapsulation)
● Infrastructure de base IPv4● Tunneling manuel IPv6 dans IPv4
– communication avec des sites IPv6 en utilisant l’infrastructure IPv4 existante
● Tunneling automatique – utilisé par les noeuds IPv6 en utilisant des structures
d’adressage spécifique (IPv4 compatible (::I.P.v.4), 6to4).– Les adresses IPv6 compatibles IPv4 sont obsolètes
● Tunneling automatique avec les tunnels broker