Nils Schaefer Théorie des réseaux (EC3a) Serveurs de noms Protocoles HTTP et FTP Théorie des réseaux (EC3a) Séance 7
Pourquoi DNS? Internet est une structure hiérarchique et arborescente de réseaux et d hôtes Chaque hôte a une adresse IP Impossible de mémoriser toutes les adresses IP DNS offre une solution simple et pratique URL : doc.champagneardenne.cnam.fr Une machine (doc) dans un organisme (champagneardenne) dans une institution (cnam) dans un pays (fr)
Fonctionnement Chaque hôte connaît un serveur DNS L hôte interroge le serveur DNS Quelle est l adresse de www.cnam.fr? (Résolution normale) Quel est le nom de 195.221.97.9? (Résolution inverse) Le serveur DNS interroge éventuellement d autres serveurs DNS et renvoie la réponse à l hôte L adresse est 194.199.8.10 Le nom est foad.univ-reims.fr
Schéma de fonctionnement
Optimisation du système Mise en cache Stockage des résolutions faites pour pouvoir les restituer plus vite Le cache se construit petit à petit Stockage temporaire Durée de vie (TTL) Prendre en compte les évolutions DNS est une base de données redondantes mondialement répartie
L espace des noms de domaine Racine en haut de l arbre Chaque nœud est une zone et porte un nom
Les domaines Un domaine est un sous-arbre de l espace des noms de domaine Un domaine est constitué de sous-domaines et d éléments terminaux, les hôtes Des machines d un même réseau IP peuvent appartenir à des domaines différents Des machines d un même domaine peuvent être sur des réseaux IP différents
Domaines de niveau supérieur Les domaines traditionnels.edu : organisations concernant l éducation.gov et.mil : organisations gouvernementales et militaires US.int : organisations internationales.com : organisations commerciales.org : organisations non commerciales.net : organisation sur le réseau Les domaines récemment créés.biz,.info,.name Les domaines nationaux.fr,.uk,.us,.it,.de,.es,.pt,.ru,.tw,.au,.nz Les domaines supranationaux.eu pour l Europe
Achat d un nom de domaine Libre pour les domaines.com,.net,.org,.info,.biz et.name Règles plus strictes pour les domaines.fr Pouvoir justifier du nom déposé Test des serveurs DNS Registrar conserve les noms www.bookmyname.com (5 HT / an) Chaque domaine a délégation pour gérer ses sousdomaines reims.cnam.fr, lille.cnam.fr, amiens.cnam.fr
La délégation de zones Le niveau supérieur délègue la responsabilité administrative de ses sous-domaines Le responsable d un domaine peut Découper son domaine en sous-domaines Déléguer ces sous-domaines à d autres organisations qui peuvent, à leur tour, les découper Nommer des hôtes Gérer son propre serveur DNS
Les serveurs DNS Les logiciels qui gèrent les données de l espace des noms de domaine s appellent des serveurs DNS (ou serveur de noms) Les serveurs DNS enregistrent les données propres à une partie de l espace dans une zone Le serveur DNS a autorité administrative sur cette zone Un serveur DNS peut avoir autorité administrative sur plusieurs zones
Types de serveurs DNS Serveur DNS primaire Maintient la base de données sur laquelle il a autorité administrative Serveur DNS secondaire Obtient les données du serveur de noms primaire par téléchargement périodique et maintient une copie identique de la base de données Pour une zone, il y a toujours un primaire et souvent plusieurs secondaires (il est préférable que ces derniers soient sur des réseaux IP différents) Un serveur de noms peut être primaire pour une zone et secondaire pour une autre Serveur DNS cache Interroge les serveurs hiérarchiquement supérieurs Constitue un cache en mémoire des informations obtenues
Les outils pour le DNS nslookup (en mode console) Serveur DNS par défaut Commande server [Nom ou IP] Test d un autre serveur DNS
Telnet Protocole d échange réseau simpliste Permet de connecter un client à un serveur qui va interpréteur les commandes Manipulation du serveur à distance Caractères ASCII + caractères de contrôle TCP Client Serveur
Telnet Fonctionne sur le port 23 Données et caractères de contrôle sur la même connexion TCP Network Virtual Terminal (NVT) Représentation virtuelle d un terminal générique (clavier standard, taille d écran standard ) Négociation des options entre le client et le serveur (jeu des caractères, mode ligne ou caractère...
Commandes TELNET Le caractère avec le code 255 signale une commande (IAC, Interpret As Command) Commandes 247 (EL, Erase Line) 246 (EC, Erase Character) 243 (IP, Interrupt Process)
Exemple Connexion au serveur ne.pleiad.net Demande d authentification
Utilisation du protocole Telnet Beuacoup de serveurs ne parlent pas Telnet Telnet peut toutefois être utilisé mais sans les commandes de contrôle Exemple telnet www.univ-reims.fr 80 Données envoyées en clair Nom d utilisateur et mot de passe
SSH Secure Shell Alternative à Telnet Protocole permettant une communication sécurisée entre le client et le serveur Cryptage des données Fonctionne sur le port 22
URL URL (Uniform Resource Locator) Identifier les ressources sur Internet Exemple Protocole (HTTP, FTP, News, Mailto ) Authentification (Login et mot de passe) Nom du serveur (nom de domaine ou IP) Numéro de port (port 80 par défaut) Chemin d'accès à la ressource (répertoires et nom du fichier) http://user17:pas17@www.cnam.fr:80/doc/url.html
Le Web Le protocole HTTP HyperText Transfer Protocol Couche applicative Web Modèle client/serveur Client Serveur Navigateur qui fait de demandes et reçoit des objets Web (pages, images ) Reçoit des demandes et envoi les objets Web HTTP 1.1 (RFC 2068) PC exécutant Internet Explorer Mac exécutant Netscape Requête HTTP Réponse HTTP Requête HTTP Réponse HTTP Serveur exécutant Apache server
Le protocole HTTP Le navigateur initie une connexion TCP au serveur sur le port 80 Le serveur accepte la connexion TCP du client Les messages HTTP sont échangés entre le navigateur et le serveur Web Envoi des pages, images La connexion TCP est close
Format des requêtes HTTP ASCII Exemple GET /doc/url.html HTTP/1.1 User-agent: Mozilla/4.0 Accept: text/html, image/gif,image/jpeg Accept-language: fr
Format de réponse HTTP ASCII Exemple HTTP/1.1 200 OK Date: Thu, 06 Aug 2008 12:00:15 GMT Server: Apache/1.3.0 (Unix) Last-Modified: Mon, 22 Jun 2008... Content-Length: 6821 Content-Type: text/html Données du document HTML
Codes de réponse HTTP Dans la première ligne de la réponse 200 : requête effectué avec succès 201 : document créé 204 : aucun contenu à renvoyer 300 : le serveur ne peut pas déterminer le code de retour 301 : document déplacé de façon permanente 302 : document déplacé de façon temporaire 400 : erreur de syntaxe dans l adresse du document 401 : pas d autorisation pour accéder au document 403 : pas d autorisation pour accéder au serveur 404 : la page demandée n existe pas 500 : erreur interne du serveur 503 : service non disponible 505 : version du protocole HTTP non supportée
Connexions persistantes Lorsqu il retourne la réponse au client, le serveur termine la connexion. Ce mécanisme est peu performant car il faut généralement réaliser plusieurs demandes de document pour pouvoir afficher une page Web. C est notamment le cas si la page comporte des images. Pour résoudre ce problème, il est possible d utiliser le champ Connection avec le paramètre Keep-Alive dans la requête pour indiquer au serveur Web qu il ne doit pas rompre la connexion après avoir envoyé la réponse. Sur réception d une requête comportant cette information, le serveur conserve donc la connexion mais sous certaines conditions. La réponse compte donc le champ Connection avec le paramètre Keep-Alive pour indiquer une persistance de la connexion mais également un champ Keep-Alive composé de deux paramètres time-out et max qui permettent d indiquer le délai, en secondes, de fin de connexion si le serveur ne reçoit pas de requête et le nombre maximum de requête autorisées par ce connexion. Lorsque le client veut terminer la connexion il peut utiliser le champ Connection avec le paramètre Close.
Le protocole FTP Le protocole FTP (File Transfer Protocol est un protocole de transfert fiable de fichiers entre un client et un serveur. Les transferts sont réalisés à l initiative du client mais ils peuvent concerner des fichiers que l on copie à partir du serveur (download) ou des fichiers que l on copie sur le serveur à partir du client (upload). La connexion est authentifiée par un nom d utilisateur est un mot de passe. Les droits d accès aux fichiers dépendent de l utilisateur et du système d exploitation utilisé sur le serveur.
Le protocole FTP
Le protocole FTP Trois types de commandes Commandes d accès USER, PASS Commandes de paramétrage PORT, PASV Commandes de service Réponse Code DELE, RMD Message
Différentes solutions Utiliser le protocole HTTP pour le transfert de fichiers Exemple : télécharger un fichier depuis le site http://www.univ-reims.fr/~dupond/ Utiliser le protocole FTP Protocole assez ancien mais bien connu Plus fiable que HTTP Meilleur contrôle de l intégrité du fichier reçu Peu consommateur de ressources réseau
FTP en mode console Commandes ftp nom-de-serveur : charge le logiciel et ouvre une session avec le serveur open nom-de-serveur : ouvre une nouvelle session dir ou ls : liste le contenu du répertoire distant ascii : transfert en mode «ascii» binary : transfert en mode «binaire» get nom-de-fichier : download un fichier depuis le serveur put nom-de-fichier : upload un fichier vers le serveur bye : quitte le programme
FTP avec un navigateur Les navigateurs acceptent en général le protocole FTP Uniquement en download Accès anonyme par défaut Exemple ftp://logiciels.univ-reims.fr/cours/web/
Logiciel FileZilla FTP anonyme et FTP authentifié Transfert de répertoires entiers ASCII ou binaire : gestion automatique