11.4. Informations générales sur la configuration du réseau

Vous devez connaître et bien comprendre les paragraphes suivants avant d'essayer de configurer votre réseau. Ce sont des principes de base qui s'appliquent, indépendamment de la nature du réseau que vous voulez mettre en place.

11.4.1. De quoi ai-je besoin pour démarrer

Avant de commencer à construire ou configurer votre réseau, vous aurez besoin de certaines choses. Les plus importantes sont :

11.4.1.1. Sources du noyau récentes (optionnel)

Note

Votre distribution Mandrake Linux est livrée avec l'option réseau activée, de sorte que vous n'avez pas besoin de recompiler le noyau. Si vous utilisez du matériel bien connu, tout ira bien. Par exemple : cartes 3COM, cartes NE2000 ou cartes Intel. Cependant si vous devez recompiler le noyau, voyez les informations qui suivent.

Si le noyau que vous utilisez actuellement ne reconnaît pas les types de réseau ou les cartes dont vous avez besoin, il vous faudra les sources du noyau pour pouvoir le recompiler avec les options adéquates.

Mais tant que vous conservez un matériel de grande diffusion, il n'est pas nécessaire de recompiler le noyau, à moins que vous n'ayez un besoin bien particulier

Vous pouvez toujours obtenir les sources du dernier noyau sur : sunsite.unc.edu. Ce n'est pas le site officiel mais ils ont BEAUCOUP de bande passante et BEAUCOUP d'utilisateurs peuvent se connecter en même temps. Le site officiel est kernel.org, mais dans la mesure du possible, il est recommandé d'utiliser ce dernier. Il faut en effet se rappeler que ftp.kernel.org est particulièrement surchargé. Utilisez un miroir. (NdT :et bien sûr ftp.lip6.fr).

Les sources du noyau doivent être décompactées dans le répertoire /usr/src/linux. Pour savoir comment appliquer les patches et compiler le noyau, lisez le Kernel-HOWTO. Pour savoir comment configurer les modules du noyau, lisez le Modules-mini-HOWTO. Enfin, le fichier README qui se trouve dans les sources du noyau ainsi que le répertoire Documentation fournissent d'amples renseignements au lecteur courageux.

Sauf indication contraire, il est recommandé de s'en tenir à une version stable du noyau (celle qui comporte un chiffre pair en seconde place dans le numéro de version). Il est possible que les versions de développement (chiffre impair dans cette seconde place du numéro de version) posent certains problèmes avec les logiciels de votre système (problèmes de structure ou autre). Si vous ne pensez pouvoir résoudre ce type de problèmes particulier ou ceux qui risqueraient également de se présenter sur d'autres logiciels, il vaut mieux ne pas les utiliser.

11.4.1.2. Adresses IP : explication

Les adresses de protocole Internet (IP) sont composées de quatre octets. La convention d'écriture est appelée « notation décimale pointée  ». Sous cette forme chaque octet est converti en un nombre décimal (0-255), les zéros de tête (à moins que ce nombre ne soit lui-même un zéro) étant omis et chaque octet séparé par le caractère .. Par convention, chaque interface d'un hôte ou routeur possède une adresse IP. Il est permis, dans certaines circonstances, d'utiliser la même adresse IP sur différentes interfaces d'une même machine, mais, en général, chaque interface possède sa propre adresse.

Les réseaux IP (protocole Internet) sont des séquences contiguës d'adresses IP. Toutes les adresses d'un même réseau ont des chiffres en commun. La partie de l'adresse commune à toutes les adresses d'un réseau s'appelle la « partie réseau  » de l'adresse. Les chiffres restants s'appellent « partie hôte  ». Le nombre de bits partagés par toutes les adresses d'un même réseau est appelé « masque de réseau  » (netmask) et c'est le rôle du masque de réseau de déterminer quelles adresses appartiennent ou non à « son  » réseau. Par exemple :

Si on effectue un ET logique sur une adresse avec son masque de réseau, on obtient l'adresse du réseau auquel elle appartient. L'adresse du réseau, par conséquent, sera l'adresse de plus petit nombre dans l'ensemble des adresses de la plage du réseau et aura toujours la partie hôte codée avec des zéros.

L'adresse de diffusion est une adresse spéciale que chaque hôte du réseau écoute en même temps que son adresse personnelle. Cette adresse est celle à laquelle les datagrammes sont envoyés si tous les hôtes du réseau sont en mesure de les recevoir. Certains types de données telles que les informations de routage et les messages d'alerte sont transmis vers l'adresse de diffusion de telle sorte que tous les hôtes du réseau peuvent les recevoir en même temps. Il y a deux standards utilisés de manière courante pour définir ce que doit être l'adresse de diffusion. Ce qui est le plus courant est de prendre l'adresse la plus haute possible du réseau comme adresse de diffusion. Dans l'exemple ci-dessus ce serait 192.168.110.255. Pour d'autres raisons, certains sites ont adopté la convention suivante: utiliser l'adresse de réseau comme adresse de diffusion. En pratique cela n'a guère d'importance. Cependant, il faudra s'assurer que tous les hôtes du réseau possèdent la même adresse de diffusion dans leur configuration.

Pour faciliter la gestion, il a été décidé, il y a quelque temps, lors du développement du protocole IP, que les ensembles d'adresses seraient organisés en réseaux et ces réseaux regroupés en "classes" qui fournissent un certain nombre de réseaux de tailles standards auxquels on peut assigner des adresses. Ces classes sont les suivantes :

Le type d'adresse que vous devez utiliser dépend de ce que vous voulez faire exactement. On pourra combiner les actions suivantes pour obtenir l'ensemble des adresses dont on aura besoin:

11.4.2. Routage

La question du routage pourrait faire couler beaucoup d'encre. Mais il est fort probable que la plupart des lecteurs ne nécessitera qu'un routage simple, et les autres aucun! Il ne sera donc question ici que des principes même du routage. Pour plus amples informations, il est suggéré de se référer au début du présent document.

Commençons par proposer une définition du routage. Par exemple :

« Le routage IP est le processus par lequel un hôte, ayant des connexions réseau multiples, décide du chemin par lequel délivrer les datagrammes IP qu'il a reçus.  »

Donnons une petite illustration. Imaginons un routeur dans un bureau :il peut avoir un lien PPP sur Internet, un certain nombre de segments Ethernet alimentant les stations de travail et un second lien PPP vers un autre bureau. Lors de la réception par le routeur d'un datagramme de l'une de ses connexions, le routage est le mécanisme utilisé pour déterminer vers quelle interface, ce datagramme devra être renvoyé. De simples hôtes ont besoin aussi de routage, tous les hôtes Internet ayant deux périphériques réseau, l'un étant l'interface loopback décrite auparavant, et l'autre celui qui est utilisé pour parler avec le reste du monde, soit un lien Ethernet, soit une interface série PPP ou SLIP.

Comment fonctionne le routage ? Chaque hôte possède une liste spéciale de règles de routage, appelée une table de routage. Cette table est composée de colonnes qui contiennent au moins trois champs : le premier étant une adresse de destination, le deuxième le nom de l'interface vers lequel le datagramme doit être routé et le troisième, qui est optionnel, l'adresse IP d'une autre machine qui transportera le datagramme vers sa prochaine destination sur le réseau passerelle. Sur Linux, cette table apparaît à la commande suivante :

user% cat /proc/net/route

ou avec l'une des commandes suivantes :

user% /sbin/route -n
user% /sbin/netstat -r

Le processus de routage est plutôt simple : un datagramme entrant est reçu, l'adresse de destination est examinée et comparée avec chaque entrée de la table. L'entrée qui correspond le mieux à cette adresse est choisie, et le datagramme est renvoyé vers l'interface spécifiée. Si le champ passerelle est rempli, alors le datagramme est renvoyé vers cet hôte via l'interface spécifiée, sinon l'adresse de destination est présupposée comme étant sur le réseau supporté par l'interface.

11.4.2.1. Que fait le programme routé (routed program) ?

La configuration de routage décrite ci-dessus est bien adaptée aux réseaux simples où il n'existe que des chemins uniques pour parvenir à chaque destination. Plus le réseau est complexe, plus le reste se complique. Mais heureusement, cela ne concernera pas la plupart d'entre vous.

Le problème majeur est le suivant :dans le cas d'un « routage manuel  » ou « routage statique  », tel que décrit ci-dessus, si une machine ou un lien tombe en panne dans le réseau, la seule façon de diriger les datagrammes vers un autre chemin, s'il existe, sera d'intervenir manuellement en exécutant une série de commandes adéquates. Ceci est peu pratique et risqué, impliquant une lourdeur certaine et une certaine lenteur. Dans le cas d'incidents sur un réseau où plusieurs routes co-existent, diverses techniques ont été mises au point pour que se règlent automatiquement les tables de routage – ces techniques étant regroupées sous le nom de « protocoles de routage dynamique  ».

Les plus courants sont peut-être déjà connus du lecteur : RIP (Routing Information Protocol) et OSPF (Open Shortest Path First Protocol). RIP est très souvent utilisé sur réseaux d'entreprise petits et moyens. L'OPSF est plus moderne, plus apte à gérer de grands réseaux et mieux adapté lorsqu'un grand nombre de chemins sont possibles à travers le réseau. Les implémentations usuelles de ces protocoles sont : routed – RIP, et gated – RIP, OSPF et autres. Le programme routé est normalement fourni avec la distribution Linux ou se trouve inclus dans le paquetage « NetKit  » décrit ci-dessus.

Un exemple d'utilisation d'un protocole de routage dynamique ressemblerait à la figure 11-1.

Nous avons trois routeurs A, B et C. Chacun supporte un segment Ethernet avec un réseau IP de classe C (masque de réseau 255.255.255.0). Chaque routeur a également une liaison PPP vers chacun des autres routeurs. Ce réseau forme un triangle.

La table de routage sur le routeur A ressemblera évidemment à ceci :

root# route add -net 192.168.1.0 netmask 255.255.255.0 eth0
root# route add -net 192.168.2.0 netmask 255.255.255.0 ppp0
root# route add -net 192.168.3.0 netmask 255.255.255.0 ppp1

Tout fonctionnera à merveille jusqu'à ce que le lien entre A et B tombe en panne. Si cette liaison défaille, alors l'entrée de routage montre que, sur le segment A, les hôtes ne peuvent en atteindre d'autres sur le segment B car leurs datagrammes seront dirigés sur le lien ppp0 du routeur A qui est rompu. Ils pourront continuer à communiquer avec les hôtes du segment C, et ces derniers avec ceux du segment B car la liaison restera intacte.

Mais, si A peut parler à C et si C peut toujours parler à B, pourquoi A ne routerait-il pas ses datagrammes pour B via C, et laisserait ensuite C les envoyer à B ? C'est exactement le type de problèmes que les protocoles de routage dynamique comme RIP sont en mesure de résoudre. Si chacun des routeurs A, B et C utilisent un Démon de routage (NdT7nbsp;: « démon  » est la francisation courante du vocable informatique anglais daemon, sigle du Disk And Extension MONitor, ce qui signifie « qui n'est pas invoqué manuellement mais attend en tâche de fond que quelque chose se passe, qu'un quelconque pré-requis soit rempli  ». Ce terme fut introduit au départ sous CTSS (Compatible Time Sharing System), un ancêtre du système MULTICS, lui-même parent d'UNIX – voir la traduction de René Cougnenc de Le système Linux de M. Welsh et L. Kaufman chez O'Reilly International Thomson), alors leurs tables de routage seront automatiquement réglées pour refléter le nouvel état du réseau même si l'une des liaisons est défectueuse. Configurer un tel réseau est simple, il s'agira d'accomplir deux choses sur chaque routeur. Pour le routeur A :

root# route add -net 192.168.1.0 netmask 255.255.255.0 eth0
root# /usr/sbin/routed

Le démon de routage routed trouve automatiquement tous les ports actifs vers le réseau quand il démarre et écoute tous les messages sur chacun des périphériques réseau. Ceci lui permet de déterminer et de mettre à jour sa table de routage.

Ce qui précède explique brièvement ce qu'est le routage dynamique et la façon de s'en servir. Pour de plus amples explications, on se reportera à la liste de références du début du présent document.

Récapitulons les points importants relatifs au routage dynamique :

  1. Un démon de routage dynamique n'est nécessaire que lorsque votre machine Linux est capable, de choisir entre plusieurs routes, pour une destination donnée, par exemple lorsque vous envisagez d'utiliser la mascarade IP.

  2. Le démon de routage dynamique modifiera automatiquement votre table de routage pour tenir compte des changements survenus dans votre réseau.

  3. RIP est adapté aux réseaux de petite et moyenne taille.