Les Réseaux Informatiques DEUST AMMILoR Les Réseaux Informatiques Serveurs réseau principaux NIS - NFS Questions sur les cours précédents ? Laurent JEANPIERRE 2002 - 2003
Les bases : RPC Remote Procedure Call RFC 1050, 1057 Le serveur fait toutes les opérations Le client envoie un ordre (ex. : copie de fichier) Le serveur identifie le client (autorisation ?) Le serveur exécute l’ordre entièrement Le serveur envoie le résultat Se base sur XDR eXternal Data Representation RFC 1014
Well-known ports Les ports 0-1023 sont réservés Combien de services potentiels ? Bien trop ! Impossible d’assigner 1 (ou +) port à chacun Utilisation de ports éphémères 64512 ports disponibles A chaque fois différents ! Comment faire ?
Le Port-Mapper « Annuaire » de services disponibles Service hébergé par le serveur Port TCP 111 / UDP 111 Reçoit des requêtes N° de service demandé N° de version demandée N° de sous-version demandée Fournit en réponse : N° de port du service demandé Protocole utilisé (UDP / TCP)
Lancement d’un service Le serveur portmapd DOIT tourner Le Port-Mapper de RPC Ouverture passive des ports TCP 111 & UDP 111 Le serveur se lance Ouverture passive d’un port éphémère Enregistrement dans le port-mapper Vers port 111 Envoie ID du service, numéro de Version, … Envoie N° de port en attente de client Attente des clients sur son port
Principe des RPC Requête Service Identification Version Port-Mapper Sous-Version Port-Mapper Serveur Protocole N° de port
Les Serveurs NIS Base de données Accès au service : Inventé par Sun Microsystems en 1985 Commune à un réseau Dépendant d’un domaine NIS ( ≠ domaine DNS ) Organisée en « cartes » ( maps ) Ensembles thématiques 1 ligne 1 entrée 1 clé Accès au service : Utilise les RPC Principalement sous Unix
Configuration du NIS Les démons nécessaires : Le fichier /etc/yp.conf ypbind yptools Le fichier /etc/yp.conf # Valid entries are # #domain NISDOMAIN server HOSTNAME # Use server HOSTNAME for the domain NISDOMAIN. #domain NISDOMAIN broadcast # Use broadcast on the local net for domain NISDOMAIN #ypserver HOSTNAME # Use server HOSTNAME for the local domain. The # IP-address of server must be listed in /etc/hosts. domain loria broadcast
Configuration du serveur Les démons nécessaires : ypserv : le serveur NIS ypxfrd : transfère les infos à un serveur miroir (ypxfr) yppush : transfère les infos à tous les serveurs miroirs Lecture de fichiers du serveur Au format DBM Dans un répertoire spécial /var/yp/nom_de_domaine/ /etc/yp/nom_de_domaine/ … 1 carte Plusieurs fichiers créés par makedbm Carte.dbm : l’index de la carte (binaire) Carte.dir : les clés contenues dans la carte Carte.pag : les endroits où sont stockés les données
Cartes disponibles En général hosts : Liste de machines IP nom_long nom_court aliases : Liste de publipostage Format dépend du logiciel de courrier passwd : Liste d’informations utilisateurs login:mot_de_passe:UID:GID:nom_complet:home_directory:shell login : identifiant UNIX mot_de_passe : sous forme criptée UID,GID : Numéros d’utilisateur et de groupe nom_complet : ex « Laurent Jeanpierre » home_directory : chemin UNIX du répertoire personnel shell : chemin UNIX du shell utilisé par défaut
Les commandes NIS ypwhich ypcat ypmatch Affiche le nom du domaine NIS -x : Affiche la liste des cartes disponibles <nom> : Affiche le contenu de la carte <nom> ypmatch <clé> <carte> : Affiche l’entrée <clé> de la carte <carte>
Exemple : au LORIA ypcat –x Use "ethers" for map "ethers.byname" Use "aliases" for map "mail.aliases" Use "services" for map "services.byname" Use "protocols" for map "protocols.bynumber" Use "hosts" for map "hosts.byname" Use "networks" for map "networks.byaddr" Use "group" for map "group.byname" Use "passwd" for map "passwd.byname"
Exemple 2 : au LORIA ypcat protocols ypcat services udp 17 UDP pup 12 PUP igp 9 IGP egp 8 EFG tcp 6 TCP ipinip 4 IPinIP ggp 3 GGP igmp 2 IGMP icmp 1 ICMP ip 0 IP ypcat services rqlaser 15000/tcp compost 6604/tcp minitel 4147/tcp sbatchd 3882/tcp pop3s 995/udp pop3 imaps 993/tcp DAServer 987/tcp remotefs 556/tcp rfs_server new-rwho 550/udp new-who talk 517/udp netbios-ns 137/udp nntp 119/tcp usenet pop3 110/tcp postoffice hostnames 101/tcp hostname http 80/tcp ftp 21/tcp …
Exemple 3 : Au loria ypcat ethers ypcat passwd | grep jeanpier 08:00:20:21:a2:02 silvestre.loria.fr 00:02:a5:fc:cf:e7 sarralbe.loria.fr 00:b0:d0:15:26:2d gremecey.loria.fr 00:02:a5:a9:8f:95 skinner.loria.fr 00:80:c8:4c:90:f1 regnier.loria.fr … ypcat passwd | grep jeanpier jeanpier:ErkrA6BpYm1OU:32817:129:Laurent Jeanpierre:/users/maia/jeanpier:/bin/tcsh
Les autres serveurs de données Contrôleurs de domaine NT Identifie les utilisateurs +/- équivalent à la carte NIS « passwd » Serveurs WINS Windows Internet Naming Service +/- équivalent à : carte NIS « services » DNS ( résolution de noms ) NBNS ( résolution de noms pour NETBios ) Peu utilisés
Serveurs NFS Network File System Système de fichiers partagé Le serveur héberge les fichiers Les clients : « Montent » un répertoire partagé L’utilise de façon transparente Lecture Ecriture Modification Selon les droits de l’utilisateur ( utilisation du NIS )
Les bases du NFS Inventé par Sun Microsystems en 1989 RFCs : 1094, 1813 (V3), 3010 (V4) Utilise les RPC Un client NFS Envoie des commandes Reçoit des réponses
Configuration du serveur Fichier /etc/exports 1 ligne 1 répertoire partagé Répertoire machine (droits) machine (droits) … Exemple : /usr/doc pcs[1-3] (rw) /users/maia/jeanpier pcs1 (ro) pcs2 (rw)
Configuration du client Le client NFS est dans le Noyau Le démon « nfsd » doit tourner Rien à configurer ! Montage du système de fichiers : mount –t nfs serveur:dossier dossier2 monte le répertoire « dossier » de la machine « serveur » sous le nom « dossier2 » Accès transparent Le noyau gère les appels réseau
Exemple de montage Client Serveur mount –t nfs Serveur:/users/equipes/A /users/A
Exemple de montage Client Serveur mount –t nfs Serveur:/users/equipes/D /users/DD
Exemple de montage Client Serveur mv /users/DD/archive /users/DD/archives
Exemple de montage Client Serveur mv /users/DD/archive /users/DD/archives
Exemple de montage Client Serveur mv /users/DD/archive /users/DD/archives
Connaître les montages Comment savoir si un dossier est local ? mount Affiche l’ensemble des dossiers montés Exemple : none on /mnt/cdrom type supermount (ro,dev=/dev/hdc,fs=auto,--, iocharset=iso8859-15,codepage=850,umask=0) /dev/hda7 on /mnt/windows type vfat (rw, iocharset=iso8859-15,codepage=850,umask=0) ebling:/u3/maia on /users/maia type nfs (rw,vers=3,rsize=32768,wsize=32768,proto=tcp,noquota, addr=152.81.1.15)