TRC 9 Supervision de réseau Guillaume Urvoy-Keller urvoy@unice.fr
Plan de cours SNMP DNS DHCP Authentification : LDAP PAM
SNMP 3
Inspiré du cours TRC9 de Pierre Mathieu et... A note on the use of these ppt slides: We re making these slides freely available to all (faculty, students, readers). They re in PowerPoint form so you can add, modify, and delete slides (including this one) and slide content to suit your needs. They obviously represent a lot of work on our part. In return for use, we only ask the following: If you use these slides (e.g., in a class) in substantially unaltered form, that you mention their source (after all, we d like people to use our book!) If you post any slides in substantially unaltered form on a www site, that you note that they are adapted from (or perhaps identical to) our slides, and note our copyright of this material. Thanks and enjoy! JFK/KWR Computer Networking: A Top Down Approach, 5 th edition. Jim Kurose, Keith Ross Addison-Wesley, April 2009. All material copyright 1996-2009 J.F Kurose and K.W. Ross, All Rights Reserved 4
Un exemple le réseau Unice Surveillance par MRTG Visualisation Dynamique Résultat qualitatif public Résultat de surveillance réservé au CRI http://nephi.unice.fr/router/ 5
Plan Qu'est-ce que la supervision de réseau? Le modèle Internet - SNMP Structure of Management Information: SMI Management Information Base: MIB Le protocole de transport SNMP La sécurité La couche présentation ASN.1 6
Le modèle SNMP Définitions: Entités : Manager Agents MIB : les données 7
v Source : A. Pras Université de Twente - The Simple Web 8
Les standards OSI CMIP Common Management Information Protocol Conçu dans les années 1980 Standardisation trop lente pas adopté par le marché SNMP: Simple Network Management Protocol Vient du monde Internet : successeur de SGMP (Simple Gateway Management Protocol) Objectif modeste ( usine à gaz CMIP) Déploiement et adoption rapide Standard actuel: SNMP V3 Standard de facto 9
SNMP : 4 parties clefs Management information base (MIB): Information distribuée stockée sur les équipements gérés Structure of Management Information (SMI): Langage de définition des objets de la MIB Le protocole SNMP communication gestionnaire objets gérés Sécurité Communautés en SNMPv1 et v2, les vues Ajout principal de SNMPv3 Remarque : SNMP est le nom du protocole pour le transfert de données et le nom global de la solution de gestion de réseau 10
SMI: langage de définition des données Objectif: syntaxe, sémantique non ambigüe des données Types de base: Voir colonne droite OBJECT-TYPE Type de données, statut, sémantique MODULE-IDENTITY Groupement d'objets en relation entre eux (par ex. liés à un appareil ou un protocole) dans un module de la MIB Types de base INTEGER Integer32 Unsigned32 OCTET STRING OBJECT IDENTIFIED Ipaddress/NetworkAddress Counter32 (ne peut que monter) Counter64 Gauge32 (monte/descend) Time Ticks (10ème de seconde) Opaque SEQUENCE OF SEQUENCE 11
SNMP MIB Module MIB spécifié via SMI MODULE-IDENTITY (100 MIBs standardisées, plus encore spécifiques aux fournisseurs de matériels/logiciels) MODULE OBJECT TYPE: OBJECT TYPE: OBJECT TYPE: Objets spécifiés via SMI et le constructeur OBJECT-TYPE 12
SMI: Exemple d' objets et de modules OBJECT-TYPE: ipindelivers ipindelivers OBJECT TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION The total number of input datagrams successfully delivered to IP userprotocols (including ICMP) ::= { ip 9} MODULE-IDENTITY: ipmib ipmib MODULE-IDENTITY LAST-UPDATED 941101000Z ORGANZATION IETF SNPv2 Working Group CONTACT-INFO Keith McCloghrie DESCRIPTION The MIB module for managing IP and ICMP implementations, but excluding their management of IP routes. REVISION 019331000Z ::= {mib-2 48} 13
Exemple de MIB : le module UDP Object ID Name Type Comments 1.3.6.1.2.1.7.1 UDPInDatagrams Counter32 total # datagrams delivered at this node 1.3.6.1.2.1.7.2 UDPNoPorts Counter32 # underliverable datagrams no app at portl 1.3.6.1.2.1.7.3 UDInErrors Counter32 # undeliverable datagrams all other reasons 1.3.6.1.2.1.7.4 UDPOutDatagrams Counter32 # datagrams sent 1.3.6.1.2.1.7.5 udptable SEQUENCE one entry for each port in use by app, gives port # and IP address 14
Nommage SNMP question: comment nommer tous les objets standards (protocoles, données, etc.) de tous les standards réseaux?? réponse: Arbre hiérarchique de l'iso : Chaque branchement à un nom et un numéro 1.3.6.1.2.1.7.1 ISO ISO-ident. Org. US DoD Internet udpindatagrams UDP MIB2 management 15
Arbre OSI (SMIv2) Ccitt(0) Iso (1) Iso-ccitt(2) standard Autorité enreg. Membre (2) Org.identifiée(3) Internet (1) Dod (6) Répertoire (1) Admin.(2) Expérimental (3) Privé (4) Sécurité (5) Snmpv2(6) Mib-2 (1) System (1) Interfaces (2) Addr.trans (3) IP (4) Icmp (5) TCP (6) Udp (7) Egp (8) Transmission (10) Exemple (11) IP IP = 1.3.6.1.2.1.4 http://www.alvestrand.no/objectid/ http://wwwsnmp.cs.utwente.nl/ietf/mibs/ 16
Les MIBs d'un agent Tout équipement doit implanter la MIB-2, i.e. gérer les objets de cette MIB (RFC 1213) : Statistiques sur les interfaces (vitesse, MTU, octets envoyés/reçus, etc.) Informations sur le système : localisation, contact En plus de la MIB-2, un agent implantera : Des MIBs standardisées supplémentaires Ex : BGP version 4 MIB (RFC 1657), RADIUS Authentication Server MIB (RFC 2619) Des MIBS propriétaires 17
Les MIBs d'un agent Une MIB importante, la MIB RMON RMON = Remote Monitoring Fournit des statistiques niveau réseau et application plus fines que dans MIB 2 Une partie de la MIB2 montrée à droite Source : SimpleWeb 18
Les MIBs propriétaires Dans l'arbre général, un sous arbre est dédié aux entreprises iso.org.dod.internet.private.entreprises (1.3.6.1.4.1) Dans ce sous arbre, les entreprises ont chacune un numéro (demandé à l'iana Internet Assigned Numbers Authority) Ex : CISCO a le numéro 9 iso.org.dod.internet.private.entreprises.cisco 1.3.6.1.4.1.9 19
Savoir lire une MIB Ex : objet interface MIB 2 Un objet fait d'une séquence de type IfEntry 20
Savoir lire une MIB Ex : objet interface MIB 2 Une liste = une structure, mais pas un objet. Une colonne... 21
Savoir lire une MIB Ex : objet interface MIB 2 IfTable : table dont les colonnes sont définies par IfEntry Attention aux majuscules/minuscules IFTable non accessible!!! et obligatoire (mandatory en anglais) IfEntry : définit une liste d'objets en colonne ifentry : définit les lignes effectives d'iftable non accessible On accède à une ligne par un index : ifindex 22
En pratique iftable avec un agent dans un PC Windows et manager en Mac OSx 23
Le protocole SNMP Deux façons de transférer l'information et les commandes Manager Manager requête réponse Msg trap agent data agent data Appareil géré Appareil géré Mode requête/réponse Mode trap 24
Le protocole SNMP : les types de message Type de message GetRequest GetNextRequest GetBulkRequest* Fonction Mgr agent: donne moi les données (instance unique,suivant dans la liste, bloc) InformRequest* Mgr Mgr: voici une valeur de la MIB SetRequest Mgr agent: assignation valeur Response Agent mgr: valeur, réponses aux requêtes * SNMP v2 et v3 seulement Trap Agent mgr: informe manager d'un événement exceptionnel 25
Le protocole SNMP : format des message 26
Communications Agent/Manager Ports UDPs 161 et 162 utilisés 27
Contrôle d accès SNMP Communauté SNMP (v1 et v2c) Sert de mot de passe, mais en clair sur le réseau (!) Est associée à des droits : read-only, read-write Chaque communauté snmp peut limiter les accès à des objets notion de vues Valeurs par défaut communément utilisées public : read-only private : read-write Valeurs à changer au plus vite... Il existe un «authentication trap» pour savoir si quelqu'un a essayé de se connecter avec un mauvais mot de passe Requetes 28
Contrôle d'accès Versions de SNMP V1 : tout en clair V2 : Seule version mise en œuvre v2c (c = communauté) Passage au SMIv2 Entiers 64bits Amélioration des requêtes Mode Bulk : récupération de tableau d'un coup Acquittement de INFORM TRAP non acquitté V3 : Authentification et cryptage Peu d'implémentations? HP Open View ne supporte pas Méthode lourde Très intéressant pour la modification (écriture) 29
Sécurité SNMP chiffrement: message SNMP chiffré avec DES authentification: calcule et envoie de MIC(m,k): calcul d'un hash (MIC) sur le message (m) avec une clef secrète partagée protection contre le playback: utilisation de nonce Contrôle d'accès par vues EntitéSNMP maintient une base de données des droits d'accès et des politiques pour différents utilisateurs Cette base de données est elle-même un objet géré (dans la MIB) 30
La pratique Pour une variable scalaire simple, on fait un get en ajoutant à la fin.0 Get next pour obtenir élément suivant : Commande snmpwalk (du package Net-SNMP) sous machines unix pour parcourir un sous arbre Ex : voir ex précédent sur table iftable 31
La pratique Obtenir la description d'un objet : snmptranslate IR : permet de ne pas donner le chemin absolu Td : détails 32
Les Traps Envoyés par l'agent Sans accusé de réception Trois types : Traps génériques 33
Les Traps Trap propriétaires Inclus dans la MIB propriétaire Ex : pour CISCO iso.org.dod.internet.private.enterprises.cisco.specifi c-trap-number Trap de MIB non propriétaires Ex : MIB RDBMS (bases de données relationnelles) RFC 1697 34
Les Traps Trap lié à une variable : 35
Les Traps Recevoir les traps avec net-snmp 36
Configuration d'un agent Important de configurer SysLocation SysContact SysName Communautés Read-write et Read-only Et limiter les adresses IP desquelles on (le manager) peut se connecter Destination trap 37
Les notifications Similaires aux trap mais avec un accusé de réception En v2, v3 seulement Les variables remplacées par OBJECTS OID : iso.org.dod.internet.snmpv2.snmpmodules.snmpmib.s nmpmibobjects.snmptraps.linkdown. 38
RMON RMON permet de spécifier des évènements et des alarmes Cela permet de dire à l'agent de surveiller des variables et de prendre les actions appropriées qui peuvent être : Copie dans un log Envoie d'un TRAP Les évènements sont stockés dans la MIB ellemême Cela décharge le manager du pooling continuel 39
RMON NMS = Network Manager Station 40
RMON Mise en oeuvre sur appareil CISCO 1 on définit les évènements Qui apparaissent dans la MIB 41
RMON 2 on crée des alarmes qui vont être associés aux évènements 42
ASN.1 Une couche présentation Question : comment transférer de l'information entre des entités très diverses : une machine, un point d'accès, un routeur de marques différentes, d'architecture matérielles différentes et avec des OS différents? Exemple : comment être sûr qu'un ensemble de bits interprétés comme un entier sur un agent le sera de la même manière sur un manager??? il faut une couche de présentation qui soit la même pour toutes les entités 43
Le problème de la présentation Q: est-ce qu'une copie de mémoire à mémoire (par ex. agent manager) resoudrait le problème?problem? A: pas toujours! struct { char code; int x; } test; test.x = 256; test.code= a test.code test.x a 00000001 00000011 test.code test.x a 00000011 00000001 Format machine 1 Format machine 2 problème: différents formats de donnés (par ex. 16, 32 bits) et différents conventions de stockage des données (par ex. bit de poids fort à droite ou à gauche) 44
ASN.1: Abstract Syntax Notation 1 Une représentation des données indépendante de l'architecture Standard ISO X.680 Utilisé par SNMP mais aussi H.323 et d'autres protocoles Définit des types d'objets comme SMI BER: Basic Encoding Rules Spécifie comment les objets définis en ASN.1 doivent être transmis Chaque objet transmis à : un Type, une Longueur et une Valeur (TLV) 45
Encodage TLV Idée: les données transmises se reconnaissent d'elles mêmes. T: type de données, l'un de ceux d'asn.1 L: longueur en octets V: valeur des données, encodées en ASN.1 Valeur Type 1 2 3 4 5 6 9 Boolean Integer Bitstring Octet string Null Object Identifier Real 46
Encodage TLV Exemple Value, 259 Length, 2 bytes Type=2, integer Value, 5 octets (chars) Length, 5 bytes Type=4, octet string 47
TRC 9 Supervision de réseau LDAP Guillaume Urvoy-Keller urvoy@unice.fr
Sources document Cours Pierre Mathieu TRC9 Tutoriel LDAP L. Mirtain 1999 UNIX AND LINUX SYSTEM ADMINISTRATION HANDBOOK Nemeth et al. Prentice Hall 2011 2
Introduction Entreprises utilisant Linux et Unix ont besoin de distribuer des données : Email Téléphone Comptes unix Solution incontournable : LDAP Lightweigth Directory Access Protocol Standardisé par IETF Dans le monde Windows, Active Directory, pour 3 gérer les machines et les comptes basé sur LDAP
Introduction Caractéristiques d'un annuaire et des données qu'on y stocke Les données sont petites en taille Les données sont souvent répliquées L'information se décrit sous forme d'attribut Les données sont fréquemment lues et rarement modifiées La recherche est l'opération la plus fréquente (par opposition aux bases de données classiques...) 4
Exemple d'annuaire Le DNS Correspondance nom/domaine distribuée LDAP pour maintenir des informations sur les utilisateurs dans une entreprise Souvent pour permettre le login Permet aussi aux clients mail de compléter les noms LDAP fait pour interfacer avec pleins d'applications 5
LDAP Applications clientes 6
Exemple d'informations stockées Un exemple typique d'une entrée dans /etc/passwd exprimée sous forme LDAP (Version simplifiée) 7
Exemple d'informations stockées Dans l'exemple précédent : Les données sont entrées sous un format qu'on appelle LDIF Les données sont stockées dans la base LDAP sous une forme différente Mais la possibilités de convertir dans les deux sens Base de données LDIF est une des clefs du succès de LDAP 8
Exemple d'informations stockées Les entrées LDAP sont organisées de manière hiérarchique avec un identifiant unique par entrée appelé dn Données organisées en arbre dn donne chemin dans l'arbre dc=navy, dc=mil : schéma typique où on utilise le domaine DNS pour définir la racine, ici 9 navy.mil
LDAP en détail Un service d'annuaire électronique, c'est en plus... un protocole qui permet l'accès au contenu une syntaxe qui permet d interroger la base Des techniques d'authentification, de chiffrement et de contrôle de l'accès aux données 10
Historique X.500 Standard conçu par les opérateurs télécom pour interconnecter leurs annuaires téléphoniques. Destiné à devenir LE service d annuaire GLOBAL distribué, normalisé et fédérateur. Mais conçu aussi pour répondre à tout type de besoin d annuaire grâce à un modèle de données de type objet et extensible. Echec du fait de la nécessité d utiliser les protocoles ISO et des logiciels très lourds, et du fait de l essor de TCP/IP... 11
12
Historique 13
Historique Voir site IETF pour RFC plus récentes 14
LDAP LDAP définit : le protocole -- comment accéder à l information contenue dans l annuaire, un modèle d information -- le type d information contenu dans l annuaire, un modèle de nommage -- comment l information est organisée et référencée, un modèle fonctionnel -- comment on accède à l information, un modèle de sécurité -- comment données et accès sont protégés, un modèle de duplication -- comment la base est répartie entre serveurs, LDIF -- un format d échange de données. back-up notamment 15
LDAP le protocole 16
LDAP le protocole 17
LDAP le protocole 18
LDAP le modèle d'information Définit le type de données pouvant être stockées dans l annuaire. L entrée (Entry) = élement de base de l annuaire = les informations sur un objet de l annuaire. Ces informations sont représentées sous la forme d attributs décrivant les caractéristiques de l objet. Les objets et les attributs appartiennent à des classes d'objets/attributs normalisées. Le schéma de l annuaire définit la liste des classes d objets qu il connaît. 19
Les attributs 20
Les classes d'objets 21
Les classes d'objets Une entrée va héritée d'une ou de plusieurs classes A la mode des langages objets. Les classes elles-mêmes sont organisées en une hiérachie 22
Les classes d'objets 23
Les classes d'objets 24
Les classes d'objets 25
Normalisation objets/attributs 26
Exemple objet/attribut 27
Attention!!! Vous ne modifiez pas les objets et les attributs Il y en suffisamment de normalisés pour répondre à vos besoins Par contre, vous créez votre hiérarchie des données où chaque entrée aura une ou plusieurs classes et donc plusieurs attributs! 28
Organisation des données dans la base 29
Organisation des données dans la base 30
Comment nommer une entrée 31
Choix du suffixe de la base 32
33
La base LDAP peut-être distribuée 34
Le modèle fonctionnel = comment interroger la base 35
Interrogation LDAP 36
Exemple Machine h sur port p (389 = port par défaut) On cherche tout ce qui a un cn commençant par ned Mot de passe sera demandé en interactif Mot de passe de l'utilisateur donné par D 37
Exemple 38
Mises à jour 39
Accès au serveur et aux données 40
Accès au serveur et aux données 41
Authentification 42
Authentification 43
Le contrôle d'accès 44
Le contrôle d'accès 45
Le chiffrement LDAPs ou LDAP avec TLS LDAPs SSL sur port dédié LDAP avec TLS SSL mais sur le même port On démarre SSL à la volée si le client le demande 46
Format d'échange des données 47
Format d'échange des données 48
Format de stockage dans LDIF 49
Les URLs LDAP 50
51
Slapd : LDAP daemon 52
53
54
55
PAM: Pluggable Authentication Module Spécifique à Unix De nombreuses commandes (ex: passwd) ou démons ont besoin d'authentifier l'utilisateur Au «bon vieux temps» Lecture du fichier /etc/passwd Problème : changement de format de ce fichier ou utilisation de NIS (base de données centralisée des mots de passe) demande de ré-écrire et recompiler tous ces programmes/démon 56
PAM Idée derrière PAM : une librairie dynamique pour les commandes/démons et un fichier de config par commande/démon. Délégation de l'authentification Seul le fichier de config (texte) doit être modifié plus de recompilation! Comment savoir si une commande est pamifiée : ldd cmd grep pamlib.so 57
Un programme par application 58
PAM : fichier de config Stockés dans le repertoire /etc/pam.d. Un fichier contient 3 parties en général : passwd, auth, session, account Chaque partie contient des lignes du type auth sufficient pamrootok.so En fin de ligne, on trouve un module PAM qui va retourner : succès ou erreur Le «control-flag» qui vaut sufficient, required,requisite, optional, etc A chaque invocation, retour d'une seule valeur : succès ou erreur 59
60
Architecture PAM : les modules Les modules implémentent les fonctions d'authentification, de vérification des droits d'accès. Il faut regarder leur documentation (Linux PAM Website) 61
PAM dans le système Unix 62
PAM : les règles Règles : si un sufficient Succès global Si aucun sufficient, tous les required doivent réussir Requisite : si on échoue échec global A retenir : PAM peut utiliser pam ou kerberos pour l'authentification Modules pam.ldap ou pam.krb 63
PAM : exemple Partie Auth ci-dessous Si utilisateur root c'est bon Timestamp si authentification gardée en cache, alors c'est bon aussi Sinon, doit remplir les conditions de system-auth 64
TRC 9 Supervision de réseaux Pare-feux Guillaume Urvoy-Keller urvoy@unice.fr
Qu'est-ce-qu'un pare-feu? Un point de contrôle du trafic Interconnecte des réseaux avec des niveaux de confiance différents Travaille au niveau IP ou au dessus Peut : (souvent) fournir la fonction NAT (parfois) implanter les VPNs IPSec 2
Pare-feu : objectifs en général Contrôle des services accédés Filtrage sur adresse IP, protocole, ou numéro de port Service de proxy pour certains services (Web, mail) Contrôle direction : vers l'extérieur ou depuis l'intérieur Un sous réseau peut accéder ou être interdit, etc. Contrôle utilisateur : ceux de l'entreprise sur le site ou hors site Contrôle comportementale : par ex, filtrage spam 3
Limitations des pare-feux en général Ne peut pas protéger des attaques qui le contournent Service sécurisés, ex. SSL/SSH : si service accepté, le pare-feu ne peut rien faire de plus Ne peut pas protéger le réseau interne des attaques venant de l'interne Ex: un employé connecte un portable vérolé, etc. Ne peut pas protéger des accès au réseau Wifi 4
Pare-feu niveau paquet Les plus simples, les plus rapides Examinent chaque paquet IP, indépendamment des autres, et laisse passer ou pas Restreignent accès aux services en tant que numéro de port Ex: on laisse passer tout le trafic sur le port 80, 8080, 443 en TCP. Skype peut utiliser le port 80 TCP... Politique par défaut : 1- Rejeter tout ce qui n'est pas autorisé 2- Accepter tout ce qui n'est pas interdit (attention...) 5
Firewalls Packet Filters 6
Firewalls Packet Filters 7
Attaques sur les pare-feu niveau paquet Spoofing adresse IP Adresse source du paquet est une adresse interne Le pare-feu laisse passer Pas de chance, le paquet était un exploit Fragmentation paquet Découpage paquet en plein de petits segments L'en-tête TCP n'est plus localisable car ne tient plus dans un paquet Suivant la politique du pare-feu, peut accepter paquet... 8
Pare-feux à états Analyse paquet par paquet mais en gardant un contexte, un état Par exemple, vérifie si un ack correspond à une connexion établie Ces pare-feux raisonnent au niveau connexion Ils peuvent même analyser le contenu des segments analyse de niveau applicatif 9
Pare-feux à états 10
Pare-feux - passerelles applicatives (proxy) Passerelle/proxy pour certaines applications Accès complet au protocole (car implémenté dans le pare-feu) Les utilisateurs font une demande d'accès au service proxy valide la requête comme légale (ou pas) Besoin d'un proxy par service Complexité/charge pare-feu augmente en fonction du nombre de services en mode proxy et du nombre d'utilisateur 11
Pare-feux passerelles applicatives (proxy) 12
Pare-feu passerelle de niveau circuit Même idée que passerelles applicatives : deux connexions TCP entre extérieur/pare-feu et pare-feu intérieur Sécurité consiste à décider quelles connexions peuvent être établies Une fois créée n'examine pas le trafic Utilisé souvent lorsque les utilisateurs internes accèdent à des services extérieurs Outil SOCKS est très utilisé pour ce besoin 13
Sock Un serveur tourne sur le pare-feu Port TCP 1080 Les clients utilisent des librairies pour «sockifier» les applications clients Par exemple, ftp saura qu'il devra interférer avec le serveur sock Le client sait qu'il doit s'authentifier au serveur sock 14
Firewalls - Circuit Level Gateway 15
Bastion Vocabulaire Système très sécurisé Offre services pare-feu circuit ou proxy pour toutes les applications Peut être vu comme un point de contrôle de niveau applicatif pour l'administrateur réseau Par exemple, on offre SMTP, HTTP, DNS et c'est tout 16
Pare-feu machine Module logiciel pour sécuriser une machine individuelle Tous les OS offrent des pare-feux nativement ou installables en tant que module Souvent utilisés sur serveurs (?) Avantages: Les règles de sécurité peuvent être personnalisées pour un service définit Niveau de protection complémentaire au pare-feux matériels 17
DMZ (De- Militerized Zone) 18
Virtual Private Networks 19
Les IDS IDS : Intrusion Detection System Ex: (voir TP) snort Les pare-feu ne peuvent pas tout contrôler Surveillance continuelle du réseau avec IDS Analyse du contenu applicatif des paquets Détecte Les paquets «bizarres» Ex : chaine de caractère correspondant à un virus Corrélation entre paquets Ex: port scanning (tests de ports des serveurs pour connaître les services offerts) Ne décide pas si les paquets rentrent ou pas mais lève des alertes 20
IDS En général, de multiples capteurs IDS qui font des vérifications différentes application gateway firewall Internet internal network IDS sensors Web server FTP server DNS server demilitarized zone 21
TRC 9 Supervision de réseaux Service DNS Guillaume Urvoy-Keller urvoy@unice.fr
DNS: Domain Name System Base de données distribuée implantée par une hiérarchie de serveurs de noms Protocole de niveau applicatif Protocole client/serveur Suite de requêtes/réponses Utilise UDP comme couche transport Port : 53 UDP est suffisant car requêtes/réponses tiennent dans un datagramme Avec TCP, il faudrait établir la cx perte de temps! Si requête (ou réponse perdue) le client réémet au bout d un certain temps Sur windows/unix, commande nslookup 2
Services DNS Traduction nom adresse IP www.truc.com 121.7.106.32 Alias de machines Noms canoniques, alias Ex: une entreprise achète un gros serveur qu elle nomme grosserveur.entreprise.com Grosserveur.entreprise.com est le nom canonique Ce serveur est le serveur de mail de l entreprise alias mail.entreprise.com pour grosserveur.entreprise.com Ce serveur est le serveur web aussi alias www.entreprise.com pour grosserveur.entreprise.com 3
Services DNS Alias des serveurs de mail Vous utilisez copain@truc.com quand vous écrivez un mail Truc.com est un nom de domaine Le DNS permet de trouvez le serveur de mail pour un domaine Par exemple truc.com aura pour serveur de mail mail.truc.com On résoud ensuite l adresse IP de mail.truc.com 4
Services DNS Distribution de charge Ex: serveurs Web repliqués : ensemble d adresse IP correspondant à un même nom canonique www.google.com correspond en fait à plusieurs serveurs physiques, donc plusieurs adresses IP 5
Services DNS Distribution de charges (suite) Si vous faites plusieurs requêtes à la suite sur google.com, l ordre des adresses change permet de répartir la charge car votre client prend la première adresse 6
Base de données hiérarchique, distribuée Serveur DNS racine (root) Serveurs DNS com Serveurs DNS org Serveurs DNS edu Serveurs DNS yahoo.com Serveurs DNS Amazon.com Serveurs DNS w3.org Serveurs DNS mit.edu Serveurs DNS stanford.edu Client DNS de votre machine veut obtenir l IP de amazon.com (1 ère approximation!) client interroge le serveur racine pour trouver un serveur pour com client interroge un serveur DNS pour com pour trouver un serveur pour amazon.com client interroge un serveur DNS amazon.com pour avoir l IP de www.amazon.com 7
3+1 classes de serveurs DNS Serveurs Racines: 13 dans le monde Le saint des saints! «Root servers» en anglais Serveurs de domaine de premier niveau «TLD (top level domain) servers» en anglais Serveurs ayant autorité sur un domaine «Authorized servers» en anglais Serveur local Géré par l entité qui vous fournit l accès Internet Adresse serveur local fournit à la configuration de la machine Ne font pas stricto sensu partie de la hiérarchie mais servent de point d entrée pour les clients DNS des machines Mais souvent, serveur local est un serveur ayant autorité 8
DNS: Les serveurs DNS racines Contactés par les serveurs DNS locaux lorsqu ils ne savent pas traduire un nom Serveur DNS racine: Le serveur racine connait la traduction ou connait un serveur ayant autorité! e NASA Mt View, CA f Internet Software C. Palo Alto, CA (and 36 other locations) a Verisign, Dulles, VA c Cogent, Herndon, VA (also LA) d U Maryland College Park, MD g US DoD Vienna, VA h ARL Aberdeen, MD j Verisign, ( 21 locations) k RIPE London (also 16 other locations) i Autonomica, Stockholm (plus 28 other locations) m WIDE Tokyo (also Seoul, Paris, SF) 13 serveurs racines dans le monde b USC-ISI Marina del Rey, CA l ICANN Los Angeles, CA 9
TLD and Authoritative Servers Top-level domain (TLD) servers: responsables de com, org, net, edu, int, etc, et de toutes les extensions de nom de pays Ex: l entreprise Network Solutions maintient des serveurs pour le TLD com Educause pour le TLD edu Authoritative DNS servers: Serveurs DNS d organisations qui fournissent la traduction nom/adresse IP pour les serveurs de ces organisations (ex: Web, mail). Les serveurs sont opérés par l organisation elle-même ou un fournisseur de service (entreprise privée) 10
Exemple de résolution de nom La machine cis.poly.edu veut l adresse IP de gaia.cs.umass.edu Requête itérative 9 Le serveur contacté répond avec un serveur plus bas dans la hiérarchie ( plus près ) à contacter 9 Cela veut dire qu il fournit l adresse IP du serveur à contacter et pas le nom de ce serveur local DNS server dns.poly.edu 1 2 8 Machine initiant la requête DNS cis.poly.edu root DNS server 3 4 5 7 TLD DNS server 6 authoritative DNS server dns.cs.umass.edu gaia.cs.umass.edu 11
Exemple de résolution de nom root DNS server Requête récursive : 2 3 9 On demande au serveur suivant de chercher luimême 7 6 TLD DNS server 9 Ce faisant, on augmente sa charge de travail! 9 En général, la requête est itérative 9 Sauf entre la machine qui initie et son serveur local (voir transparent précédent) local DNS server dns.poly.edu 1 8 Machine initiant la requête DNS cis.poly.edu 5 4 authoritative DNS server dns.cs.umass.edu gaia.cs.umass.edu 12
DNS: mise en cache des réponses A chaque fois qu un serveur apprend une traduction, il la stocke On dit qu il la cache Les entrées cachées ont une période d expiration après cette période, le serveur les détruit Les serveurs de noms locaux cachent les adresses IP des serveurs TLD Ainsi, les serveurs root sont moins souvent visités 13
Enregistrements DNS DNS: base de données distribuée Base de données : collection de données ayant une structure similaire Par exemple : (nom, numéro de téléphone) Ces données sont appelées enregistrements (records en anglais) Pour le cas du DNS, on parle de resource record ou RR Distribuée : les RR sont distribués sur un ensemble de machines physiques (les serveurs DNS) 14
Enregistrements DNS RR format: (nom, valeur, type, ttl) 9 Type=A nom = machine valeur = addresse IP 9 Type=NS 9 Type=CNAME nom =alias valeur = nom canonique (réel) www.lemonde.fr est réellement www.lemonde.edgesuite.net 4 nom = domain (e.g. unice.fr) 4 valeur = nom du serveur DNS ayant autorité sur le domaine 9 Type=MX valeur est le nom du serveurde mail associé au nom 15
Comment insérer des enregistrements dans le DNS? Exemple: une jeune pousse (startup) Network Utopia Etape 1: fait enregistrer le nom networkuptopia.com auprès d une entité accréditée appelée DNS registrar (e.g., Network Solutions) NetworkUtopia doit fournie les noms et les adresses IP de serveurs de nom (un primaire, un secondaire) ayant autorité pour son domaine registrar introduit les RRs correspondant dans le serveur TLD com : (networkutopia.com, dns1.networkutopia.com, NS) (dns1.networkutopia.com, 212.212.212.1, A) Etape 2: insertion par Network Utopia d un RR de Type A pour www.networkuptopia.com et de Type MX pour networkutopia.com dnas SON serveur ayant autorité 16
Mise en œuvre DNS Côté client Le «resolver» (résolveur) Son seul rôle est d'interroger le serveur DNS local Coté serveur démon «named» de la suite logicielle bind (la plus populaire plus de 60% des serveurs) Fichier contenant la base de données pour la ou les zones sur lesquels le serveur a autorité 17
Zones La racine est notée avec un ''.'' Important, comme le ''/'' dans un chemin de fichier!! 18
Zones vs domaines Le domaine est une partie de l'arbre global La zone est ce dont un serveur est responsable Ex : le serveur en charge de la zone ca connait les @ IP des serveurs qui gèrent les zones : ab.ca on.ca qc.ca 19
Zones et zones inverses Un être humain préfère voir des noms que des adresses IP on maintient une zone dite inverse Cette zone est attachée à la hiérarchie DNS La zone inverse est hiérarchique, comme la zone directe on doit inverser l'ordre des octets des adresses 20
Fichiers de zone On y trouve : Les enregistrements SOA (Start of Authority) movie.edu : nom du domaine IN : Internet (valeur par défaut) Terminator.movie.edu : nom du serveur al.robocop.movie.edu al@robocop.movie.edu : personne à contacter Autre infos pour le serveur esclave 21
Fichiers de zone TTL : valeur globale que les clients DNS devront utiliser pour tous les résultats obtenus depuis le serveur NS record: Serveur ayant autorité Celui du SOA puis au moins un autre... 22
Fichiers de zone Adresses IP et Alias 23
Fichiers de zone Serveurs de mail Enregistrements MX On peut en spécifier plusieurs et mettre des priorités 24
Fichiers de zone inverse 25
Zone inverse 26
Fichier de config global Indique pour quelles zones le serveur est primaire (ou secondaire) 27
Serveur esclave 28
Serveur secondaire Numéro de série donné par primaire pour le fichier de base Paramètre : quand le téléchargement se fait dans le primaire 29
Les autres fichiers d'un serveur Connaissance des @ IP des serveurs root (db.root) Fichiers pour loopback (db.127) etc. 30
Configuration client linux Fichier /etc/resolv.conf Mis à jour par DHCP ou manuellement Domaine domaine par défaut ajouté si nom n'est pas complet, ex : ftp kheops et non ftp kheops.unice.fr Nameserver : si plusieurs, essaie dans l'ordre avec des timeouts 31
Et pour finir... (côté serveur) Notion de forwarder : si vous voulez que les requêtes allant vers l'extérieur passe par un serveur spécifique Distribution de charge Fait automatiquement si plusieurs champs avec même nom et IP différentes 32
Et pour finir (côté client) Que se passe-t-il si un client reçoit plusieurs serveurs ayant autorité? Il les interrogent les uns après les autres Un par requête client Il choisit celui avec le temps d'aller-retour le plus petit Le plus proche 33