PROFDINFO.COM

Votre enseignant d'informatique en ligne

Les serveurs courants

L'évolution de la notion de serveur

Au début de l'ère informatique, un serveur était un ordinateur central très puissant auquel on accédait à partir de terminaux (ce qu'on appellerait aujourd'hui des clients minces - les terminaux de cette époque ne savaient rien faire à part se connecter à un serveur et relayer de l'information entre l'utilisateur et le serveur). À cette époque, le serveur était le coeur du réseau.

Dans les années 1980, alors que l'informatique personnelle fait de grands bonds en avant, les terminaux sont progressivement remplacés par des PCs. Ils continuent de se connecter en réseau et d'accéder à certains serveurs, mais ils sont capables de traitement par eux-mêmes. De plus, on peut dorénavant faire rouler plusieurs programmes simultanément sur une même machine. Du coup, le serveur n'est plus une machine en soi: il devient un programme. Sur un même ordinateur, on peut faire rouler plusieurs serveurs, chacun avec des fonctions bien définies.

De la même façon, le client n'est plus un terminal physique destiné à l'unique fonction de client, mais un programme - plusieurs clients peuvent alors être exécutés en même temps sur un même PC.

La notion de client-serveur est maintenant logicielle plutôt que matérielle et le temps du serveur en temps que machine hyper-puissante est révolu! Toutefois, on continue d'appeler "serveur" un ordinateur qui est dédié à l'exécution de logiciels serveurs quelconques.

Au milieu des années 1990, le tout évolue de nouveau: les serveurs commencent à se parler entre eux (on parle alors de délégation, comme dans l'architecture trois tiers - chaque serveur s'occupe d'une partie de tâche bien délimitée). Une machine serveur n'a dorénavant pas besoin d'être extrêmement puissante puisqu'elle ne s'occupera que de quelques tâches.

Vers les années 2000 on remarque un début de retour du balancier: les "clients minces" refont soudainement surface. Maintenant que la technologie a progressé suffisamment, il est très possible d'avoir une machine serveur qui exécute des applications graphiques complexes pour tout un ensemble de clients (on pense au protocole Terminal Server, entre autres). Certaines entreprises aiment bien l'idée d'un serveur unique qui fait le traitement pour tout le monde: moins de maintenance (puisque tout est centralisé), moins de chance de problèmes causés par les usagers, plus facile de restreindre ce que les usagers peuvent faire...

Avec la virtualisation, une autre tendance bien à la mode, on crée plusieurs ordinateurs virtuels sur une même machine, permettant non seulement de faire exécuter plusieurs serveurs à la fois mais en plus de nous assurer que chacun de ces serveurs fonctionne sur son propre système d'exploitation, comme s'il était tout seul sur un ordinateur. Évidemment, les machines nécessaires pour ce genre d'opérations doivent être plus puissantes, mais elles permettent de réduire considérablement le parc informatique.

Les serveurs Microsoft - léger historique

Vers la fin des années 80, Microsoft et IBM étaient partenaires dans la création du système d'exploitation OS/2. En même temps, Microsoft continuait de développer ses versions de Windows (Windows 1, 2, 3, 3.1), basées sur MS-DOS. Le prochain "gros" système d'exploitation créé par Microsoft devait être OS/2 3.0.

Ce qui n'était pas prévu: Windows 3.1 a été tellement populaire que Microsoft a décidé que son prochain système d'exploitation ne serait pas une troisième version d'OS/2, mais une extension du modèle Windows, qui serait entièrement 32 bits et ne serait plus basé sur MS-DOS. Cette décision a créé des tensions entre Microsoft et IBM, qui décidèrent de laisser tomber leur alliance - IBM a continué seul à développer et maintenir OS/2.

Pour créer sa nouvelle version (nom de code Cairo), Microsoft a recruté Dave Cutler, un des créateurs du système d'exploitation VMS pour VAX (des grosses machines comparables à des mainframes). On voulait que ce nouvel OS puisse fonctionner sur différentes plateformes, avec différents processeurs et différentes composantes matérielles.

C'est en 1993 que sera mise sur le marché cet OS révolutionnaire: Windows NT 3.1. NT pour New Technology et 3.1 pour correspondre à Windows 3.1. NT 3.1 existe en deux saveurs: workstation (station de travail) et advanced server (serveur avancé).

Une légende existe quant au nom Windows NT, voulant que David Cutler ait voulu faire une blague en augmentant chaque lettre de VMS d'une position, obtenant WNT (un peu comme Arthur C. Clarke avait fait dans 2001: Odyssée de l'espace pour obtenir le nom de l'ordinateur (HAL-9000), en décrémentant chaque lettre d'IBM). Évidemment, cette légende reste une légende puisqu'elle n'a jamais été prouvée et que les gens impliqués ne l'ont jamais confirmée.

Windows NT évolua dans les années suivantes pour devenir NT 3.5 en 1994, NT 3.51 en 1995 et NT 4.0 en 1996. C'est avec cette dernière version que Windows NT devient finalement populaire, particulièrement en entreprise. Son interface est très semblable à celle de Windows 95, mais est entièrement 32 bits, supporte les architectures multi-processeurs et est la première version à implémenter HAL (pas 9000): Hardware Abstraction Layer, une couche entre le noyau et les composantes matérielles. Ceci jumelé à une meilleure gestion de la mémoire en fait un système d'exploitation beaucoup plus stable que Windows 95.

Windows NT 4.0 est livré avec IIS 2.0 (Internet Information Services, un serveur Web), Windows Explorer et la plupart des applications livrées avec Windows 95. Toutefois il ne supporte pas DirectX (ce qui en fait donc un bon OS pour les entreprises mais pas pour les gamers), ni USB.

Il n'y eut pas de nouvelles versions de Windows NT après 4.0. Pendant les années suivantes, Microsoft continua de faire évoluer la série Windows 9x, toujours basée sur DOS, pour créer Windows 98, puis Windows Me).

Éventuellement, on décida d'unifier les deux "branches" de Windows: celle de 9x (faite surtout pour les particuliers, les jeux et le multimédia) et celle de NT (pensée pour les entreprises) afin de créer Windows NT 5.0, qui allierait la stabilité de NT et les capabilités des deux branches, éliminant MS-DOS une bonne fois pour toute.

Cette version vit effectivement le jour mais fut baptisée Windows 2000. De nombreuses fonctionnalités distinguent Windows 2000 de Windows NT: un service d'annuaire (Active Directory), la prise en charge de plus grandes capacités de mémoire vive et de processeurs multiples, la prise en charge de protocoles modernes et de normes de sécurité, facilité à s'intégrer aux autres composants réseaux Windows (notamment Exchange).

Windows 2000 est livrée en plusieurs saveurs: Professionnal (pour les clients), ServerAdvanced Server et Datacenter Server (censé concurrencer les gros serveurs Unix). Elle fut améliorée par la suite grâce à de nombreux service packs.

Notons au passage qu'une version spéciale faite pour les particuliers avait commencé à être développée en 1999: Windows Neptune. Des retards dans le développement retardèrent le projet et Windows Me fut commercialisé à sa place. Toutefois Neptune servit de base au développement de Windows XP (aussi appelé NT 5.1), qui vit le jour en 2001.

C'est évidemment en 2003 qu'arriva la nouvelle évolution de Windows 2000: Windows Server 2003 (NT 5.2). Par rapport à Windows 2000, la version 2003 propose:

Question que cet historique soit complet, mentionnons Windows Vista (NT 6.0), lancé en 2007 comme successeur à Windows XP, avec un succès incertain...

En 2008, la prochaine avancée dans le monde des serveurs Windows voit le jour: Windows Server 2008. Win2008 est basé sur le noyau NT 6.0, comme Vista. Par rapport à Windows 2003, Windows 2008 propose entre autres:

Suivront les versions Home Server 2011 (une solution pour les petites entreprises ou les bureaux à la maison, permettant de partager des fichiers, de contrôler les clients à distance, d'automatiser et de centraliser les backups, surtout pour de petits réseaux), puis Windows Server 2012, fraîchement disponible depuis septembre 2012, conçu pour être le serveur des clients Windows 8 (qui devrait être disponible en version commerciale vers la fin octobre 2012) et basé sur ce dernier.

Les serveurs les plus importants

DHCP

Un des serveurs de base qui est très souvent rencontré est le serveur DHCP (Dynamic Host Configuration Protocol). Dans le monde TCP/IP, on le sait, chaque appareil doit avoir une adresse qui l'identifie de façon unique sur le réseau (unique dans le monde si vous êtes directement rélié à Internet). Une possibilité est d'assigner des adresses à chaque ordinateur au préalable et de ne plus jamais les modifier. On appelle cette façon de faire l'adressage statique. C'est parfois ce qui est utilisé à l'interne dans un petit réseau, ou dans le cas de certains serveurs qui ont avantage à conserver toujours la même adresse.

La plupart du temps, toutefois, on fonctionnera avec un adressage dynamique. Ainsi, à chaque fois qu'un ordinateur est allumé, il obtiendra une adresse IP temporairement, prise dans une plage d'adresses possibles. D'une fois à l'autre, il est possible que son adresse IP change. Ceci permet entre autres la réutilisation d'adresses IP et évite de devoir configurer "à la main" toutes les machines d'un parc informatique à chaque changement au schéma d'adressage.

Lorsqu'un ordinateur arrive sur le réseau en mode dynamique, il doit contacter un serveur DHCP pour obtenir une adresse IP (avec le masque de sous-réseau qui vient avec), puis l'adresse des différents autres serveurs qu'il aura besoin de consulter régulièrement (plus à ce sujet plus loin). Le problème est qu'à ce moment, l'ordinateur ne connaît pas l'adresse du serveur DHCP; et même s'il la connaissait, le serveur DHCP ne pourrait pas aisément communiquer avec lui puisqu'il n'a pas encore d'adresse...

La façon de régler ce problème est simple: l'ordinateur en recherche d'adresse utilise le broadcast, c'est-à-dire qu'il envoie une demande d'adresse IP à tout le monde sur le réseau. Tous ceux qui reçoivent cette demande et qui ne sont pas concernés ne font que l'ignorer. Le serveur DHCP, quant à lui, génère une adresse IP et la retourne à l'ordinateur demandant, qui est identifié par son adresse MAC (puisqu'elle faisait partie de l'entête du paquet broadcasté initialement).

L'ordinateur peut possiblement recevoir plusieurs réponses, si plusieurs serveurs DHCP existent sur le réseau. Il choisit alors celle qu'il veut et retourne un message au DHCP pour l'en aviser.

Toute adresse dynamique vient avec un bail. L'ordinateur qui la reçoit pourra donc l'utiliser pendant une certaine durée, après quoi il redemandera une adresse IP au serveur.

Un ordinateur a toujours la possibilité de redemander la même adresse que la dernière fois et si elle est disponible, le serveur peut la lui redonner. Certains serveurs DHCP tentent d'ailleurs de le faire d'eux-mêmes, en gardant une trace des adresses IP associées aux adresses MAC.

DNS

Le serveur DNS (Domain Name System) n'est en fait rien d'autre qu'un immense bottin. En effet, le concept d'adressage IP est très bien pensé, mais fort peu pratique pour des mémoires humaines. Si on devait retenir les adresses IP de tous les serveurs avec lesquels on communique, ça serait plutôt difficile. C'est pourquoi on a inventé les noms de domaines, comme google.ca et radiococh.org.

Les noms de domaines sont vendus par des centaines de fournisseurs à travers le monde. Tout comme pour les adresses IP, c'est ICANN (Internet Corporation for Assigned Names and Numbers) qui supervise le système et qui gère le domaine .arpa. En plus, il existe un registry pour chaque TLD (Top-Level Domain, domaine de haut niveau), c'est-à-dire une organisation qui gère et maintient une base de données sur les noms donnés dans son domaine. Il y a un domaine de haut niveau pour chaque pays (plus de 240 ccTLD - country code Top-Level Domain), qui sont gérés par une organisation du pays correspondant. Il y a aussi les gTLD (generic Top-Level Domain), qui regroupent les domaines .com, .biz, .info, .net et .org, en plus de beaucoup d'autres moins populaires (voyez une liste complète ici).

Les registries des pays peuvent vendre ou louer tout nom de domaine à l'intérieur de leur domaine comme bon leur semble. La plupart confient le mandat à des revendeurs.

Lorsque vous demandez à votre fureteur d'aller sur www.google.ca, celui-ci va demander à un serveur DNS de lui traduire cette adresse en IP. L'adresse du serveur DNS lui aura été soit assignée manuellement, soit donnée par le serveur DHCP lors de son inscription. Le serveur DNS vérifie s'il connaît l'adresse, sinon il enverra une requête à un serveur DNS de plus haut niveau, se rendant éventuellement au serveur qui gère le suffixe ca.

google.ca est un sous-domaine du domaine ca. www.google.ca est un sous-domaine de google.ca, donc géré par le propriétaire de ce domaine.

Les serveurs DNS de bas-niveau maintiennent un cache de toutes les adresses qu'ils ont obtenues. Les serveurs de haut niveau maintiennent une base de données complète des domaines qu'ils contiennent.

Active Directory

Dans un domaine Microsoft, il y aura toujours un contrôleur de domaine qui hébergera la base de données Active Directory. Cette base de données contient des informations sur tous les objets du domaine (ordinateurs, usagers, dossiers partagés, imprimantes, stratégies, etc). En fait, Active Directory définit le domaine et c'est elle qui fait que le domaine existe.

Un domaine Microsoft est une entité de sécurité. Il permet la gestion centralisée de tous les ordinateurs et de tous les utilisateurs d'un parc informatique. Lorsque quelqu'un se branche à un domaine, sa demande est envoyée à un contrôleur de domaine, qui l'authentifie et lui retourne un jeton définissant ce qu'il aura le droit de faire sur le domaine (des stratégies), à quels groupes il appartient (ce qui aura un impact sur les permissions qui lui seront accordées sur les ressources partagées) et qui il est (ce qui aura aussi un impact sur les permissions).

En faisant une gestion centralisée du domaine, on peut ultimement permettre à tout usager de se loguer sur n'importe quel poste et d'avoir accès aux mêmes applications, partages, configurations et fichiers personnels, tout en ayant les mêmes droits et limites.

Notez qu'Active Directory est basé sur le protocole LDAP (Lightweight Directory Access Protocol), commun à tous les services d'annuaires, et qu'il a besoin d'un serveur DNS fonctionnel sur lequel s'appuyer.

Passerelle

La passerelle (ou gateway) n'est en fait rien d'autre qu'un routeur à qui un ordinateur enverra ses paquets IP. C'est la passerelle qui les acheminera, possiblement en les envoyant à sa propre passerelle. Un ordinateur qui n'a pas de passerelle de définie (ou qui ne peut pas la rejoindre) ne peut en fait rien faire du tout sur le réseau. L'adresse de notre passerelle nous aura été fournie par le serveur DHCP en même temps que notre adresse ou aura été configurée manuellement (si on fonctionne en mode statique).

Proxy

Un serveur proxy agit comme un intermédiaire entre un ordinateur et le reste du monde. Il sert généralement à filtrer certaines requêtes (afin d'empêcher les gens de faire ce qu'ils veulent - généralement pour censurer certaines pages Web) et surtout à atteindre Internet à la place d'un groupe de clients. Ainsi, seul le proxy a besoin d'une adresse IP unique dans le monde - tous les ordinateurs derrière pourront avoir une adresse privée, locale au réseau et invisible au reste du monde. Ceci implique toutefois que des demandes de connexion provenant de l'extérieur ne pourront pas atteindre un ordinateur précis du réseau interne, à moins qu'un routeur à l'entrée ait été configuré pour redirgier le trafic sur un certain port à une adresse locale prévue d'avance.

Certains virus modifient la configuration du proxy de leurs victimes afin de les rediriger vers leur serveur lorsqu'ils surfent le Web, et ainsi les envoyer où bon leur semble...

À l'inverse, certaines personnes qui se trouvent derrière un proxy trop limitant peuvent en utiliser un autre gratuitement qui leur permet d'atteindre des pages restreintes ou d'avoir l'air de provenir d'un pays particulier (pour afficher du contenu protégé par provenance, par exemple). Ces proxies gratuits ne sont souvent pas très fiables par contre et risquent d'être très lents ou d'avoir un fonctionnement erratique.

Pare-feu

Les pare-feu (ou coupe-feu ou mur de feu ou firewall) servent de poste de douane entre un réseau et un autre. Ils peuvent filtrer tout le trafic entrant ou sortant, selon des règles qui peuvent être très simples ou très complexes. Les pare-feu évolués peuvent examiner le contenu de tous les paquets qui y transitent afin de décider ce qui passe et ce qui est bloqué. Leur but est évidemment de protéger le réseau, mais parfois aussi d'empêcher les usagers d'utiliser certains protocoles jugés non productifs ou dangereux.

Il existe des logiciels de pare-feu tout simples pour les usagers, destinés à protéger leur poste de travail. Un logiciel de pare-feu plus élaboré peut être installé sur une machine qui servira de pare-feu du réseau. On peut également acheter un pare-feu physique, qui n'est en fait rien d'autre qu'un petit serveur spécialisé dans le domaine.