Mise en oeuvre d'un réseau mixte Linux/Windows dans un établissement scolaire

Michel Quercia, mars 1998 quercia@cal.enst.fr

Résumé : Description d'un réseau de PC dans un lycée avec serveurs de fichiers, d'impression et d'accès Internet tournant sous Linux et clients tournant sous Linux ou Windows-3.11 et Windows-95. Ce document est le support d'un exposé effectué lors de la fête d'Internet à la Mutualité. Il est téléchargeable en FTP anonyme. .

1. Présentation du lycée Carnot

Carnot est un établissement dijonnais regroupant un collège (700 élèves), un second cycle (1200 élèves) et un cycle préparatoire aux grandes écoles (800 élèves). L'informatique y est présente depuis une dizaine d'années aux titres suivants : L'équipement informatique est réparti entre un "laboratoire d'informatique" (70 postes dans 4 salles de cours), des laboratoires par discipline : et les centres administratifs (une trentaine de postes) soit environ 200 postes au total. Depuis 1995, le lycée relie progressivement tous ces centres informatique entre eux par un réseau local (appelé réseau administratif ou réseau pédagogique). Le laboratoire d'informatique dispose pour sa part d'un réseau indépendant relié au réseau administratif à travers une machine faisant office de passerelle entre les deux réseaux et vers Internet. On décrit ici essentiellement l'organisation du réseau du laboratoire d'informatique et la fourniture de l'accès Internet aux autres centres. L'organisation et la gestion du réseau administratif n'est pas du ressort du laboratoire d'informatique pour des raisons de sécurité et de confidentialité des informations qui y sont traitées.

[plan du Lycée]

2. Motivations pour une mise en réseau

2.1 Problèmes de fonctionnement

La mise en place d'un réseau au laboratoire d'informatique s'est imposée pour faire face aux difficultés de fonctionnement d'un grand nombre de machines "isolées" : Il a donc été décidé d'installer des serveurs de fichiers permettant à la fois de relâcher la contrainte d'espace disque sur les postes "élèves" et d'assurer une protection "absolue" sur les logiciels distribués par ces serveurs à la fois contre les virus, les erreurs de manipulation et les sabotages. En prime, on résolvait aussi les problèmes de gestion d'imprimante et de mise à jour des logiciels ou d'installation de nouveaux logiciels. L'introduction, après coup, d'Internet au lycée s'en est trouvée facilitée. Les principes directeurs de cette mise en réseau étaient de gommer au maximum les différences matérielles entre machines de façon à assurer leur interchangeabilité et de réduire au minimum la partie des systèmes d'exploitation stockée sur les disques locaux de façon à tolérer des petits disques et à réduire autant que possible le temps de reconfiguration d'une machine (ou de mise en service d'une nouvelle machine).

2.2 Choix techniques

On décrira plus loin dans le détail l'architecture générale du réseau, elle résulte de quelques choix fondamentaux :

[plan du réseau]

3. Architecture

Les machines utilisées au laboratoire comme postes "élèves" vont du 486DX2 au Pentium-166 avec 16 Mo de mémoire vive et un disque dur de taille comprise entre 250 et 1200 Mo. En pratique, on n'utilise jamais plus de 600 Mo d'espace disque et on ne sait pas quoi faire de la place restante, mais il est devenu impossible de trouver des disques de capacité inférieure au giga-octet. Les serveurs de fichiers sont des 486-33 équipés de 16 Mo de mémoire vive et de disques de 2 Go actuellement remplis à 75%. En raison de l'installation continuelle de nouveaux logiciels, tant sous Windows que sous Linux, les besoins en espace disque croissent à raison de 1 Go par an et par serveur, c'est à dire qu'il faut racheter trois ou quatre nouveaux disques chaque année, ce qui est autrement plus supportable que d'avoir à changer les disques des 70 clients.

[schéma d'installation des clients et serveurs]

3.1 Client Windows-3.11

La partition DOS-Windows d'un poste élève comporte essentiellement les répertoires [\dos], [\windows] et [\dmt] (logiciel de CAO ne fonctionnant pas en réseau) pour un total de 110 Mo (fichier d'échange compris). Le répertoire [\windows] contient entre autres tous les pilotes de cartes graphiques, cartes réseau et souris en usage dans le laboratoire indépendamment du matériel effectivement installé sur la machine, les bons pilotes étant sélectionnés dans le fichier [\windows\system.ini]. Ceci constitue une petite entorse au principe de moindre occupation des disques durs, mais permet de n'utiliser qu'un seul fichier de sauvegarde pour restaurer n'importe quelle machine (la restauration des fichiers [*.ini] est faite à part).

Au démarrage de Windows, la machine contacte le serveur de fichiers de la salle avec le protocole SMB et monte comme lecteur réseau [D:] le répertoire [/home/workgroup] exporté par le serveur sans mot de passe, ce qui lui donne accès à environ 700 Mo de logiciels. Ces logiciels ont été mis en place sur le serveur par les procédures d'installation normales à partir d'un poste client en spécifiant un répertoire sous [D:] comme répertoire d'installation (on autorise temporairement l'écriture sur le disque du serveur pour ce faire). En général, le logiciel d'installation dépose un plus ou moins grand nombre de pilotes [*.drv] et de bibliothèques [*.dll] dans le répertoire [C:\windows] du client, on repère ces fichiers par comparaison avec une machine "vierge" et on les déplace dans la mesure du possible vers le serveur (Windows les retrouve tout seul s'ils sont dans un répertoire faisant partie du PATH). Le but de ce transfert est de limiter au maximum la quantité de fichiers à recopier sur chaque poste client, l'idéal étant zéro (quelques fois atteint). Naturellement, la procédure d'installation n'est effectuée que sur un seul serveur, les autres sont alignés sur le premier par transferts sous NFS après vérification du bon fonctionnement.

Le client Windows a également accès dès le démarrage (c'est à dire sans intervention particulière) à deux imprimantes exportées par le serveur, une imprimante laser HP-4L et une imprimante jet d'encre couleur HP-870. Les pilotes pour ces imprimantes ont été installés sur le disque du serveur comme pour les autres logiciels. En pratique un serveur n'est pas forcément raccordé à ces deux modèles d'imprimante, il dispose effectivement d'une imprimante laser qui peut être une HP-4L ou HP-5L et un seul des trois serveurs est effectivement raccordé à une HP-870, les deux autres font suivre d'eux-mêmes par le réseau les fichiers à imprimer vers le premier serveur. L'ensemble fonctionne harmonieusement, les HP-5L sont d'assez bonne composition pour accepter les codes d'impressions en langage "4L".

Par ailleurs, un poste Windows peut, sur intervention manuelle, accéder à des ressources protégées par mot de passe : lecteur de CD-Rom exporté par le serveur, répertoires personnels des professeurs. Les CD sont protégés par mot de passe pour limiter les possibilités d'introduction par les élèves de logiciels (notamment de jeux, on a retrouvé alors que les CD étaient en accès libre 20 Mo de [Doom] soigneusement cachés dans quelques machines deux niveaux de répertoire au dessous de [\dmt] et exportés par le réseau vers les autres machines ...).

Enfin, toujours après intervention manuelle, un poste Windows peut accéder aux répertoires exportés par les autres clients aussi bien Windows que Linux, ce qui permet aux élèves de s'échanger des fichiers ou même de travailler avec plusieurs postes (créer un dessin par programme sur un poste et l'afficher sur un deuxième par exemple).

3.2 Client Windows-95

Il n'y a actuellement que trois machines dans le laboratoire d'informatique pouvant tourner sous Windows-95. Ce petit nombre n'est pas dû à une impossibilité matérielle ou juridique, mais seulement à la difficulté de constituer une sauvegarde unique pouvant servir à restaurer plusieurs machines matériellement différentes. On en est actuellement à une sauvegarde spécifique pour chaque machine, ce qui interdit une installation à grande échelle et complique les mises à jour de logiciels. Par contre, toutes les autres machines du lycée connectées au réseau administratif tournent sous Windows-95 et accèdent sans problème à la passerelle Internet ainsi qu'aux serveurs de fichiers, mais les responsables de ces machines ont fort à faire avec les modifications de configuration plus ou moins intentionnelles effectuées par les élèves. Pour l'instant, le passage des machines du laboratoire d'informatique à Windows-95 reste à l'étude pour le cas où il ne serait plus possible de trouver de logiciels en version 3.11.

3.3 Client Linux

Un système Linux-client est constitué de deux partitions : une partition racine contenant environ 50 Mo de fichiers et une partition d'échange de taille comprise entre 20 et 100 Mo. Au démarrage, la machine Linux contacte son serveur de fichiers et monte le répertoire [/usr] du serveur par NFS, ce qui lui donne accès à environ 500 Mo de logiciels et fichiers divers. Comme pour les clients Windows, un poste Linux transfère automatiquement les travaux d'impression à son serveur (avec le protocole LPR), mais la conversion en codes adaptés à l'imprimante est effectuée par le serveur et non le client, ce qui économise le temps de transfert des filtres de conversion, en particulier de [ghostscript] du serveur vers le client.

Les 50 Mo de la partition racine se décomposent en 5 Mo de noyau et code réseau, 10 Mo pour le serveur X les bibliothèques associées et l'exécutable [emacs], 30 Mo pour le fichier de sauvegarde de la partition DOS. Pratiquement, une machine Linux pourrait tourner avec les seuls 5 Mo de noyau et code réseau, on a installé X et [emacs] sur le disque local dans le seul but d'accélérer le démarrage sous X de la machine. De même, la sauvegarde du DOS n'est pas indispensable, elle ne sert qu'à gagner du temps lors d'une restauration de la partition DOS.

Les élèves peuvent utiliser un compte public accessible sans mot de passe. Les professeurs peuvent utiliser leur compte personnel, ils ont ainsi accès au même répertoire personnel que depuis un poste Windows à cette différence près que le montage est fait automatiquement au login grâce à l'auto-monteur AMD. L'identification des professeurs et la validation des mots de passe est effectuée par interrogation d'un serveur de fichiers particulier jouant le rôle de serveur NIS, mais compte tenu de notre inexpérience avec NIS, la modification des mots de passe est malaisée : il faut intervenir directement sur le serveur et avec l'autorité de [root] pour ce faire. Cette situation sera améliorée à l'occasion.

De même que sous Windows, l'accès au lecteur de CD du serveur est possible après vérification du mot de passe ; par contre l'accès aux répertoires publics des autres clients est géré de façon transparente par l'auto-monteur sans intervention explicite de l'utilisateur. La gestion des partages de répertoires est assurée selon les cas par NFS entre deux machines Linux (deux clients ou un client et un serveur) ou par SMB entre une machine Linux et une machine Windows (dans certains cas, notamment l'accès aux lecteurs de CD des serveurs, on utilise exclusivement SMB de façon à simplifier les contrôles d'accès et la tâche des auto-monteurs de CD sur les serveurs).

3.4 Serveur Linux

On dispose actuellement de quatre serveurs presque identiques : un serveur en activité dans chaque salle et un serveur de secours prêt à prendre le relais d'un serveur défaillant. Chaque serveur est physiquement situé dans la salle où il officie, à proximité de son imprimante ; il ne dispose pas d'écran à la fois pour éviter d'être confondu avec un poste client et parce que l'on contrôle le serveur uniquement par [telnet], par contre on n'a pas pu lui retirer son clavier : la présence de celui-ci est indispensable au BIOS de la machine lors du démarrage.

La partie commune de ces serveurs est constituée d'un système Linux "complet" construit sur un noyau 2.0.29 dont la partie [/usr] (500 Mo) est exportée vers les clients Linux et du répertoire [/home/workgroup] (700 Mo) contenant tous les logiciels nécessaires aux clients Windows. Normalement, ces répertoires [/usr] et [/home/workgroup] sont protégés contre les tentatives d'écriture de leurs clients, mais il est possible de donner un accès en écriture temporairement et pour un utilisateur précis à des fins d'installation de nouveaux logiciels.

Chaque serveur dispose d'une partition de secours d'environ 50 Mo contenant un deuxième système Linux indépendant du système principal, réduit mais suffisant pour pouvoir intervenir, y compris à distance par [telnet] sur le système principal en cas de problème ou pour effectuer une sauvegarde ou une restauration. Cette partition de secours est une survivance de la première installation du réseau et sera supprimée lors du prochain changement de disque car on a constitué depuis des jeux de disquettes de secours avec code réseau et utilitaires de restauration permettant de reconstituer n'importe quelle machine, client ou serveur, à partir d'une sauvegarde accessible indifféremment par réseau, par un disque monté temporairement, par disquettes ZIP ou bandes magnétiques.

Un serveur exporte son répertoire [/usr] par NFS et son répertoire [/home/workgroup] par SMB. En outre, il est équipé d'un lecteur de CD-Rom exporté par SMB et géré par l'auto-monteur AMD (ceci permet de monter et démonter les CD simplement en y accédant ou en cessant d'y accéder et sans avoir à fournir aux utilisateurs un accès en ligne de commande sur le serveur). Enfin, les serveurs de fichiers font aussi office de serveurs de noms aussi bien pour les clients Windows (protocole WINS) que pour les clients Linux (protocole DNS).

Un des serveur se distingue des autres en ce qu'il contient les tables DNS primaires, les tables NIS et les répertoires personnels des professeurs. Chacun de ces répertoires personnels contient un lien vers un sous-répertoire nommé [public] visible en lecture seule depuis n'importe quel poste client, sans mot de passe. Techniquement, tous les répertoires [public] sont regroupés sous [/home/workgroup/profs] et ce répertoire est exporté vers les autres serveurs puis réexporté par ceux-ci vers leurs clients Linux ou Windows. A terme, on envisage une solution plus symétrique avec un serveur supplémentaire ne gérant que les tables DNS, NIS et les comptes personnels.

3.5 Passerelle

La passerelle assure l'interconnexion entre le réseau administratif, le réseau du laboratoire et le réseau Internet (l'accès Internet est fourni par le rectorat de l'académie de Dijon via une ligne téléphonique mixte RNIS/RTC). C'est la machine la plus critique de l'ensemble dans le sens où elle constitue le point de passage obligé pour toute tentative de piratage, tant depuis Internet vers les machines du lycée (hypothèse peu vraisemblable) que depuis le laboratoire d'informatique vers les machines "sensibles" du réseau administratif.

Pratiquement, la passerelle ne laisse passer d'un réseau local à l'autre que les datagrammes à destination ou en provenance d'un serveur de fichiers, de façon à permettre aux machines connectées au réseau administratif d'utiliser les logiciels disponibles au laboratoire (cette possibilité est peu exploitée, ces machines disposent généralement de leurs propres versions des logiciels utilisés). En particulier aucun poste élève ne peut "sortir" du laboratoire (sauf à prendre le contrôle de la passerelle). De même, la protection vis à vis du réseau Internet est obtenue en bloquant tous les datagrammes ne provenant pas ou n'étant pas destinés à une machine "autorisée". Pour ces dernières, un mécanisme de traduction d'adresses (masquerading) est mis en oeuvre puisque les deux réseaux locaux utilisent des adresses IP privées.

L'accès au réseau Internet se réduit ainsi, pour les machines non privilégiées, uniquement aux consul\-ta\-tions HTTP et FTP par l'intermédiaire du serveur HTTP [apache] qui tourne sur la passerelle et fait office à la fois de mandataire et de cache. De plus, les transactions traitées par [apache] sont affichées en temps réel sur un écran de contrôle de façon à détecter les accès à des sites "subversifs" (la plupart des élèves sont mineurs).

Le contrôle de la ligne téléphonique est effectué de manière automatique grâce aux daemons [diald] et [pppd] : [diald] lance automatiquement la connexion lorsqu'un datagramme doit être acheminé vers Internet et la coupe automatiquement au bout d'un certain temps d'inactivité, [pppd] met en forme les datagrammes, surveille le bon état de la connexion et raccroche automatiquement en cas de blocage (ce qui arrive fréquemment, sans que l'on sache si c'est la ligne posée au lycée qui est de mauvaise qualité ou si c'est celle du rectorat).

4. Maintenance

Un des grands bénéfices de la mise en réseau du laboratoire est la facilité de maintenance des machines élèves qui en a résulté.

Les images compressées des partitions DOS et Linux d'un poste élève type sont stockées sur chacun des serveurs : 30 Mo pour la partition DOS et 5 Mo pour la partition Linux. Pour restaurer ou installer pour la première fois une machine, il suffit de la bouter avec une disquette de secours contenant un système Linux autonome (la version allégée des partitions de secours sur les serveurs), de contacter un serveur de fichiers par NFS et d'installer par simple décompression les sauvegardes DOS et Linux. Ensuite, on adapte les fichiers de configuration, aussi bien sous DOS que sous Linux en fonction des particularités de la machine : nom et numéro IP, carte vidéo, carte réseau, souris. L'installation complète d'un poste élève de cette manière prend une dizaine de minutes et il est même possible d'en installer plusieurs en parallèle si l'on est pressé.

Par ailleurs, les parties DOS des machines n'étant pas protégées de leurs utilisateurs, il faut ré\-gu\-liè\-re\-ment les restaurer de façon à retrouver une configuration standard. Ceci est fait de la même manière que pour une première installation : effacement depuis Linux de la partition DOS, recopie du fichier de sauvegarde et personnalisation. L'ensemble de ces opérations est maintenant entièrement automatisé. Les informations spécifiques à une machine doivent être inscrites dans les fichiers [\windows\system.ini] (carte graphique, souris, carte réseau, nom et numéro IP), [\windows\win.ini] (carte graphique), [\windows\progman.ini] (carte graphique) et [\windows\connect.dat] (connexions à rétablir au démarrage) ; les trois premiers fichiers sont au format texte, et c'est un jeu d'enfant avec [sed] que d'y inscrire les informations appropriées ; seul le fichier [connect.dat], en format binaire, ne peut être synthétisé mais les informations qu'il contient sont identiques pour toutes les machines reliées à un même serveur, donc il suffit d'en conserver une copie par serveur.

Au total, une machine Linux est en mesure de restaurer sa partition DOS en quelques minutes et sans aucune autre intervention manuelle que le déclenchement de l'opération. On effectue actuellement une restauration chaque soir à la fermeture du laboratoire : les machines effectuent la restauration puis passent la nuit ou le week-end sous Linux à faire des calculs de factorisation de grands nombres pour le compte de l'Inria (projet ECM-Net). C'est à cause de cette facilité de restauration qu'on ne souhaite pas passer à Windows-95 : personne ne sait comment modifier automatiquement les informations spécifiques sur une machine 95.

5. Problèmes constatés

La protection en écriture de tous les fichiers exportés vers les clients Windows pose parfois problème : certains logiciels tentent sans succès de modifier leurs fichiers de configuration et produisent des messages d'erreur ou des blocages devant le refus du serveur. C'est le cas notamment de [pspice] (simulation de circuits électroniques), [pls] (recherche thématique d'articles publiés dans "Pour la Science") et [bcdi] (consultation de la base de données de la bibliothèque). Lorsque c'est possible, on contourne le problème en transférant sur le disque du client les fichiers en question avant de lancer le logiciel ([pspice] et [pls]) ; ce n'est pas possible pour [bcdi] car il faudrait transférer plus de 90 Mo pour ce faire, actuellement on a renoncé à faire fonctionner ce logiciel au laboratoire en attendant une nouvelle version n'ayant pas ce problème.

L'accès aux répertoires réseau n'est pas possible sous MS-DOS seul, il faut utiliser le support réseau fourni par Windows et donc lancer Windows puis ouvrir une session DOS pour utiliser des logiciels purement DOS. Cela fonctionne dans certains cas, par exemple pour [pls] ou [turbo-pascal] (environnement de programmation en Pascal) et pas dans d'autres, l'exception la plus gênante étant [dmt] qui entre en conflit avec Windows pour l'accès à la carte graphique et "plante" la machine. Il existe un pilote TCP/IP fonctionnant sous MS-DOS, librement téléchargeable sur le site Internet de Microsoft, mais on n'a pas réussi à le mettre oeuvre. Le problème a donc été résolu installant [dmt] sur chaque poste client, mais cette solution n'est pas conceptuellement satisfaisante.

Problèmes d'affichage de la souris ou du curseur : Sur une dizaine de machines, toutes du même modèle, l'affichage de la souris se bloque de manière aléatoire sous Windows. Aucune explication n'a pu être trouvée pour ce phénomène, mais on a découvert par hasard qu'il suffisait d'ouvrir une session DOS puis de la refermer pour retrouver un fonctionnement normal et définitif de la souris ; ceci est désormais fait automatiquement au démarrage de Windows sur ces machines. De même, sur certaines machines, toujours sous Windows, le curseur d'insertion disparaît parfois et ne revient que si l'on force un réaffichage de la fenêtre active (en l'iconifiant puis en la restaurant). Sur deux modèles de Pentium, avec le logiciel [word], cette manipulation ne suffit pas à faire réapparaître le curseur et on n'a pas encore trouvé quoi faire. Il s'agit peut-être d'une mauvaise configuration ou d'une bogue des pilotes d'affichage, en tous cas il n'empêche pas d'utiliser [word] : on n'a pas de curseur, c'est tout ...

La facilité d'impression en réseau et le développement du libre-service en particulier pour les consultations Internet conduisent à un gaspillage excessif d'encre et de papier : les élèves n'hésitent pas à imprimer les documents qu'ils téléchargent, même s'il y en a pour une centaine de pages, et parfois ne vont même pas chercher les documents qu'ils ont fait imprimer. Une plus grande surveillance des élèves et un peu d'éducation civique pourraient certainement résoudre ce problème mais pour l'instant, à titre provisoire, le papier a été rationné : il faut le demander au surveillant qui donne les feuilles à l'unité (mais certains élèves contournent cette mesure en apportant leur propre papier et on n'a pas encore trouvé le moyen de rationner l'encre).

6. Lexique

AMD
Auto-Mount Daemon, programme connectant et déconnectant automatiquement des répertoires en réseau
BIOS
Basic Input/Output System, programme présent au démarrage d'une machine
CAO
Conception Assistée par Ordinateur
CD
Compact Disk
daemon
Disk And Extension MONitor, programme résident sous Unix
DNS
Domain Name Server, protocole d'identification des machines sur Internet
DOS
Disk Operating System
ext2
système de fichiers utilisé sous Linux
FTP
File Transfert Protocol, protocole de transfert de fichiers
HTTP
HyperText Transfert Protocol, protocole de transfert de fichiers
IP
Internet Protocol, mécanisme d'identification des machines sur Internet
LPR
protocole d'impression en réseau
NASA
National Aeronautics and Space Administration
NFS
Network File System, protocole de transfert de fichiers
NIS
Network Information Service, protocole d'interrogation de bases de données
PAO
Publication Assistée par Ordinateur
PATH
liste des répertoires où chercher un programme exécutable
RJ45
modèle de prise pour câble réseau
RNIS
Réseau Numérique à Intégration de services (Numéris)
rsh
protocole de commande à distance d'une machine
RTC
Réseau Téléphonique Commuté
SMB
Server Message Buffer, protocole de transfert de fichiers et d'impression en réseau
telnet
protocole de commande à distance d'une machine
WINS
Windows Name Server, protocole d'identification des machines Windows
ZIP
modèle de disquette de grande capacité (100 Mo)
Ils furent heureux et eurent beaucoup d'enfants.