Chapitre 22. Bases de la mise en réseau

Table des matières

22.1. Adresses IP et routage
22.2. IPv6 — L'Internet de nouvelle génération
22.3. Résolution de noms
22.4. L'intégration dans le réseau
22.5. Configurer une connexion réseau manuellement
22.6. Le démon smpppd en tant qu'assistant à la numérotation

Résumé

Linux, en véritable enfant de l'Internet, vous offre tous les outils et toutes les fonctionnalités pour s'intégrer à tous les types de structures réseau. Nous traiterons du protocole classique utilisé sous Linux, TCP/IP, qui propose de nombreux services et particularités. Vous pouvez configurer un accès au réseau avec une carte réseau, un modem ou un autre périphérique grâce à YaST. Vous pouvez également le configurer à la main. Nous ne traiterons dans ce chapitre que des mécanismes fondamentaux et les fichiers de configuration réseau correspondants.

Linux et les autres systèmes d'exploitation Unix utilisent le protocole TCP/IP. Ce n'est pas un protocole réseau unique mais plutôt une famille de protocoles réseau qui offrent différents services. Les protocoles énumérés dans Tableau 22.1, « Différents protocoles de la famille de protocoles TCP/IP » permettent d'échanger des données entre deux ordinateurs par TCP/IP. « L'Internet » fait référence à l'ensemble des réseaux combinés par TCP/IP, y compris un réseau mondial.

RFC signifie Request for Comments (Demande de Commentaires). Les documents RFC décrivent les différents protocoles Internet et les procédures d'implantation pour le système d'exploitation et ses applications. Les documents RFC décrivent la construction des protocoles Internet. Pour approfondir vos connaissances à propos d'un protocole particulier, référez-vous aux documents RFC correspondant. Ils sont disponibles en ligne à l'adresse http://www.ietf.org/rfc.html.

Tableau 22.1. Différents protocoles de la famille de protocoles TCP/IP

Protocole

Description

TCP/IP

(en anglais Transmission Control Protocol). Un protocole sûr, orienté connexion. Les données à transmettre sont, du point de vue de l'application, envoyées sous forme de flux de données et c'est le système d'exploitation lui-même qui les met au format de transport adapté. Les données arrivent dans l'application cible, sur l'ordinateur cible, exactement sous la forme du flux de données dans lequel elles ont été envoyées. Le protocole TCP permet de garantir qu'aucune donnée n'est perdue ou n'arrive dans le désordre. Ce protocole est utilisé quand l'ordre des données est important et que le terme 'connexion' a un sens.

DNS

(en anglais, User Datagram Protocol). Un protocole sans connexion, non sûr. Les données à transmettre sont envoyées par paquets, ces paquets de données étant générés, au préalable, par l'application. L'ordre d'arrivée des données chez le destinataire n'est pas garanti et il se peut aussi que certains paquets de données soient perdus. Le protocole UDP est particulièrement adapté pour les applications orientées trames et se caractérise par des temps morts inférieurs à ceux du protocole TCP.

ICMP

(en anglais, Internet Control Message Protocol) C'est un protocole qui n'est en général pas destiné à l'utilisateur, il s'agit plutôt d'un protocole de contrôle spécial qui transmet les états d'erreur et qui peut piloter le comportement de l'ordinateur en charge de la transmission de données TCP/IP. Il fournit en outre un mode écho spécial que vous pouvez tester avec le programme ping.

IGMP

(en anglais, Internet Group Management Protocol) Ce protocole contrôle le comportement des ordinateurs dans le cadre de la multidiffusion IP.

Comme décrit dans Figure 22.1, « Modèle en couches simplifié pour TCP/IP », l'échange de données a lieu au niveau de différentes couches. La couche de communication en soi est le transfert de données non sûre à travers le protocole IP (en anglais, Internet Protocol). Greffé sur IP, le protocole TCP (en anglais, Transmission Control Protocol) garantit, dans une certaine mesure, une transmission sûre des données. La couche IP est prise en charge par le protocole dépendant du matériel sous-jacent, par exemple ethernet.

Figure 22.1. Modèle en couches simplifié pour TCP/IP

Modèle en couches simplifié pour TCP/IP

L'illustration montre un ou deux exemples pour chaque couche. Comme vous pouvez le voir, les couches sont classées par niveau d'abstraction, la couche inférieure étant la plus proche du matériel. La couche supérieure, en revanche, fait pratiquement intégralement abstraction du matériel sous-jacent. Chacune des couches a une fonction bien particulière, déjà décrite en grande partie par son nom. C'est ainsi que le réseau utilisé (par exemple Ethernet) est représenté par la couche physique et par la couche liaison.

Presque tous les protocoles matériel sont orientés paquets. Les données à transmettre doivent être placées dans des paquets car elles ne peuvent pas être envoyées en une fois. La taille maximale d'un paquet TCP/IP est d'environ 64 Ko. En pratique, les paquets sont généralement plus petits, dans la mesure où le matériel réseau est le facteur limitatif. Ainsi la taille maximale autorisée d'un paquet de données sur Ethernet est de 1 500 octets. C'est donc pour cette raison que la taille des paquets TCP/IP est limitée lorsque les données sont envoyées sur un réseau Ethernet. Lorsque l'on souhaite transmettre davantage de données, le système d'exploitation doit envoyer davantage de paquets de données.

Pour que les couches puissent exécuter les tâches qui leur reviennent, des informations supplémentaires relatives à chaque couche doivent être enregistrées dans les paquets de données, au niveau de l'en-tête. Chacune des couches ajoute un petit bloc de données, appelé en-tête de protocole (en anglais, protocol header) au début du paquet en formation. Un paquet de données TCP/IP quelconque en route sur un câble Ethernet est illustré en Figure 22.2, « Paquet TCP/IP sur Ethernet ». La somme de contrôle se trouve à la fin du paquet et non au début. Cela simplifie les choses pour le matériel réseau.

Figure 22.2. Paquet TCP/IP sur Ethernet

Paquet TCP/IP sur Ethernet

Ainsi, si une application souhaite envoyer des données sur le réseau, les données passent au travers des différents niveaux de couches, tous mis en œuvre au sein du noyau Linux à l'exception de la couche 1 (la carte réseau). Chacune des couches est responsable de préparer les données de manière à ce qu'elles puissent être transmises à la couche suivante. La couche la plus basse est, au final, responsable de l'envoi des données à proprement parler. Le processus est inversé lorsque des données sont reçues. Un peu comme pour les différentes peaux d'un oignon, les en-têtes de protocole de chaque couche sont retirés, au fur et à mesure, des données utiles. La couche 4 est, au final, responsable de la préparation des données pour les applications sur l'ordinateur cible. Ainsi, une couche ne communique jamais qu'avec la couche directement au-dessus ou en dessous d'elle. Le fait que les données sont transmises par un réseau FDDI 100 Mbit/s ou une connexion 56 Kbit/s n'a pas d'importance pour les applications. De même, la nature des données envoyées importe peu pour la connexion de données tant qu'elles sont correctement empaquetées.

22.1. Adresses IP et routage

Les sections suivantes se limitent aux réseaux IPv4. Vous trouverez des informations sur son successeur, le protocole IPv6, à Section 22.2, « IPv6 — L'Internet de nouvelle génération ».

22.1.1. Adresses IP

Chaque ordinateur de l'Internet possède une adresse 32 bits unique. Ces 32 bits (soit 4 octets) se présentent normalement comme dans la seconde ligne de Exemple 22.1, « Structure d'une adresse IP ».

Exemple 22.1. Structure d'une adresse IP

Adresse IP (binaire):  11000000 10101000 00000000 00010100
Adresse IP (décimale):      192.     168.       0.      20
    

Les quatre octets sont séparés par un point lorsqu'ils sont écrits dans le système décimal. L'adresse IP est associée à un ordinateur ou à une interface réseau, elle ne peut donc être utilisée nulle part ailleurs dans le monde. Certes il existe des exceptions à cette règle, mais elles n'ont aucune influence sur les considérations suivantes.

La carte Ethernet aussi possède une adresse non équivoque, appelée adresse MAC (en anglais, Media Access Control, contrôle d'accès au support). Cette adresse se compose de 48 bits, est unique dans le monde entier et est enregistrée physiquement par le fabricant directement sur la carte réseau. L'attribution de l'adresse par le fabricant présente toutefois un inconvénient non négligeable — les adresses MAC ne constituent pas un système hiérarchique, mais sont au contraire réparties de manière plus ou moins aléatoire. Elles ne peuvent donc pas servir à adresser un ordinateur distant. L'adresse MAC joue en revanche un rôle décisif lors de la communication entre les ordinateurs d'un réseau local et il s'agit de l'élément principal de l'en-tête de protocole de la couche 2.

Revenons aux adresses IP : les points suggèrent que les adresses IP constituent un système hiérarchique. Jusque dans les années 90, les adresses IP étaient réparties en classes, de manière fixe. Ce système s'est toutefois révélé particulièrement rigide et c'est pour cette raison que l'on a abandonné cette répartition. On utilise désormais un « routage ne faisant pas appel à des classes » (CIDR, en anglais, Classless Inter Domain Routing).

22.1.2. Masques réseau et routage

Comme l'ordinateur avec l'adresse IP 192.168.0.1 ne peut tout simplement pas savoir où se trouve l'ordinateur avec l'adresse IP 192.168.0.20, il a fallu introduire les masques réseau. Pour simplifier, les masques de (sous)-réseau définissent, sur un ordinateur disposant d'une adresse IP, ce qui se trouve « à l'intérieur » et ce qui se trouve « à l'extérieur ». Les ordinateurs qui se trouvent « à l'intérieur » (les spécialistes disent : « sur le même sous-réseau »), peuvent être adressés directement. Les ordinateurs qui se trouvent « à l'extérieur » (« pas sur le même sous-réseau »), doivent être adressés par l'intermédiaire d'une passerelle ou d'un routeur. Comme chaque interface réseau est susceptible de posséder sa propre adresse IP, vous imaginez comme tout cela peut vite devenir compliqué.

Voilà ce qui se produit, avant l'envoi d'un paquet sur le réseau : on combine l'adresse cible et le masque réseau au moyen d'un ET binaire. On combine aussi l'adresse source et le masque réseau au moyen d'un ET binaire. Lorsque plusieurs interfaces réseau sont disponibles, toutes les adresses d'envoi possibles sont, en règle générale, vérifiées. Les résultats des combinaisons au moyen de ET binaires sont comparés. Si les résultats sont rigoureusement identiques, cela signifie que l'ordinateur cible se trouve dans le même sous-réseau. Dans le cas contraire, il faut y accéder par l'intermédiaire d'une passerelle. Plus il y a de bits à « 1 » dans le masque réseau, moins il est possible d'adresser de machines directement et plus il faudra passer par une passerelle pour accéder à des hôtes distants. Vous pouvez consulter les différents exemples illustrés dans Exemple 22.2, « Rattachements des adresses IP avec le masque réseau ».

Exemple 22.2. Rattachements des adresses IP avec le masque réseau

Adresse IP (192.168.0.20) :  11000000 10101000 00000000 00010100
Masque réseau   (255.255.255.0) :  11111111 11111111 11111111 00000000
---------------------------------------------------------------
Résultat du lien :         11000000 10101000 00000000 00000000
Dans le système décimal :           192.     168.       0.       0

Adresse IP (213.95.15.200) : 11010101 10111111 00001111 11001000
Masque réseau    (255.255.255.0) : 11111111 11111111 11111111 00000000
---------------------------------------------------------------
Résultat du lien :         11010101 10111111 00001111 00000000
Dans le système décimal :           213.      95.      15.       0

Les masques réseau, comme les adresses IP,s'écrivent sous forme de nombres décimaux, séparés par des points. Comme le masque réseau est également une valeur 32 bits, on l'exprime sous la forme d'une suite de quatre valeurs décimales. Il faut indiquer quelle passerelle et quel domaine d'adresses sont accessibles par l'intermédiaire de quelle interface réseau.

Un autre exemple : tous les ordinateurs raccordés au même câble Ethernet se trouvent, en règle générale, sur le même sous-réseau et sont directement accessibles. Même si le brin Ethernet est segmenté par des commutateurs ou des ponts, ces ordinateurs demeurent toujours directement accessibles.

Si vous souhaitez parcourir une plus longue distance, la technologie Ethernet économique n'est alors plus appropriée. Vous devez alors confier les paquets IP à d'autres types de matériels, comme FDDI ou RNIS. Des appareils de ce type s'appellent des routeurs ou des passerelles. Une machine Linux peut bien entendu aussi se charger de ce genre de tâches. L'option correspondante est intitulée ip_forwarding.

Lorsqu'au moins une passerelle est configurée, le paquet IP est envoyé à la passerelle appropriée. Cette dernière essaie alors de nouveau d'envoyer ce paquet selon le même schéma —d 'hôte en hôte — jusqu'à ce que le paquet ait atteint l'ordinateur cible ou que son TTL (en anglais, time to live, durée de vie) soit écoulé.

Tableau 22.2. Adresses spéciales

Type d'adresse

Description

Adresse de base du réseau

Il s'agit du masque réseau ET d'une adresse quelconque du réseau, comme illustré dans Exemple 22.2, « Rattachements des adresses IP avec le masque réseau » sous Résultat. Cette adresse ne peut être attribuée à aucun ordinateur.

Adresse de diffusion (broadcast)

Elle signifie : « s'adresser à tous les ordinateurs de ce sous réseau ». Pour la produire, le masque réseau est inversé binairement et combiné à l'adresse de base réseau avec un OU. L'exemple ci-dessus permet donc d'obtenir 192.168.0.255. Bien entendu, cette adresse ne peut non plus être attribuée à aucun ordinateur.

Hôte local

L'adresse 127.0.0.1 est attribuée, sur chaque ordinateur, de manière fixe, à ce que l'on appelle le « dispositif de bouclage ». Cette adresse peut permettre d'établir une connexion avec l'ordinateur lui-même.

Comme les adresses IP doivent être uniques à l'échelle mondiale, vous ne pouvez naturellement pas choisir des adresses quelconques. Mais pour que vous puissiez tout de même mettre au point un réseau IP, il existe trois domaines d'adresses que vous pouvez utiliser sans plus de formalités. Vous ne pouvez pas les utiliser telles quelles sur l'Internet, car ces adresses ne sont pas acheminées sur l'Internet. Ces domaines d'adresses sont spécifiés dans la RFC 1597 et sont énumérés dans Tableau 22.3, « Domaines d'adresses IP privés ».

Tableau 22.3. Domaines d'adresses IP privés

Réseau/Masque réseau

Domaine

10.0.0.0/255.0.0.0

10.x.x.x

172.16.0.0/255.240.0.0

172.16.x.x - 172.31.x.x

192.168.0.0/255.255.0.0

192.168.x.x


SUSE LINUX Guide de l'administrateur 9.2