Initiation à la programmation réseau

Sous-titre

Alcatîz

- Titre : Initiation à la programmation réseau

- Auteur : Alcatîz

- Parution : 28 janvier 2018

- Licence : Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2018 Alcatîz. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.

Sommaire

- I. Introduction

- II. Installation de WireShark

- III. Procédure d'installation de lNet

- IV. Quelques notions de base sur le réseau

- IV-A. Qu'est-ce qu'un réseau ?

- IV-A-1. LAN, WLAN, WAN…

- IV-A-2. Topologies

- IV-A-2-a. Topologie linéaire

- IV-A-2-b. Topologie en bus

- IV-A-2-c. Topologie en anneau à jeton ou « token ring »

- IV-A-2-d. Topologie en étoile

- IV-A-2-e. Topologie maillée ou « fully connected »

- IV-A-2-f. Topologie en arbre ou hiérarchique

- IV-A-2-g. Topologie hybride

- IV-B. Le matériel

- IV-B-1. La carte réseau

- IV-B-2. Le concentrateur ou « hub »

- IV-B-3. Le commutateur ou « switch »

- IV-B-4. Le routeur

- IV-B-5. Le moyen de transport : câble ou... ondes

- IV-C. Les modèles OSI et TCP/IP

- IV-C-1. Au niveau de la couche physique

- IV-C-2. Au niveau de la couche de liaison de données

- IV-C-3. Au niveau de la couche réseau

- IV-C-3-a. Notion d'adresse IP

- IV-C-3-a-i. Masque de sous-réseau (« subnet mask »)

- IV-C-3-a-ii. Plages d'adresses IP

- IV-C-3-a-iii. NAT (« Network Address Translation »)

- IV-C-3-a-iv. IPv4 et IPv6

- IV-C-3-a-v. Comment déterminer les adresses IP d'une machine

- IV-C-3-a-v-I. Sur Windows

- IV-C-3-a-v-II. Sur UNIX, Linux, OSX

- IV-C-3-b. De l'adresse physique à l'adresse IP : ARP et RARP

I - Introduction

Ce tutoriel n'a d'autre prétention que de vous aider à faire vos premiers pas en programmation réseau avec Lazarus.

La bibliothèque de composants qui sera utilisée dans cet article est la « Lightweight Networking Library », mieux connue sous son acronyme lNet, développée par Aleš Katona et Micha Nelissen. Leur site web, soit dit en passant, est bien fourni en documentation.

II - Installation de WireShark

Afin de visualiser l'échange réseau généré par les exemples de ce tutoriel, il peut être intéressant d'installer un logiciel comme WireShark.

III - Procédure d'installation de lNet

Vous pouvez télécharger le paquetage d'installation sur SourceForge et l'enregistrer dans le répertoire de votre choix (par exemple, à la racine des codes sources de vos projets, ou des bibliothèques de composants que vous greffez à Lazarus) et le décompresser.

Vous pouvez aussi utiliser Subversion avec ce lien.

La version du paquetage est la 0.6.5, dernière version stable en date, tandis que celle du dépôt Subversion est la 0.6.6 - dont la stabilité ne semble toutefois pas faire de doute.

Certains utilisateurs ont des difficultés à reconstruire Lazarus avec la version 0.6.5, et n'ont d'autre choix que d'utiliser la 0.6.6 (qui ne provoque pas les problèmes de compilation de l'EDI).

Démarrez Lazarus. Cliquez sur le menu « Paquet »/ »Ouvrir un fichier de paquet (".lpk") » et allez sélectionner le fichier lnetvisual.lpk dans le sous-répertoire lazaruspackage du répertoire lnet (lnet/trunk avec Subversion) qui a été créé lors de la décompression de l'archive :

Dans ce dialogue, cliquez sur « Utiliser »/« Installer ». Lazarus vous informe que le second paquetage lnetbase sera automatiquement installé :

Pressez « OK ». Un nouveau dialogue vous informe que le paquetage a été marqué pour installation, et vous demande la permission de reconstruire Lazarus (en incluant la nouvelle bibliothèque) :

Comme c'est demandé gentiment, répondez « Oui ».

La reconstruction de l'IDE achevée, vous pouvez vérifier que la bibliothèque lNet est bien installée si l'onglet éponyme est apparu dans la barre :

IV - Quelques notions de base sur le réseau

Le fait que vous puissiez lire ces mots signifie déjà que vous êtes actuellement connecté(e) à un réseau : internet. De manière très simpliste, on peut décrire internet comme une gigantesque toile d'araignée, dont les fils sont des câbles de cuivre ou de fibre optique reliés entre eux par des machines (l'intersection entre fils de la toile est couramment appelée noeud).

Prenons un cas très répandu : votre FAI (« Fournisseur d'Accès à Internet ») vous a fourni un modem/routeur équipé d'une antenne Wi-Fi et d'une ou plusieurs prises pour câble réseau. Vous êtes connecté(e) au modem/routeur par Wi-Fi sur votre ordinateur portable et sur votre téléphone ou tablette, et par câble sur votre ordinateur fixe. Le modem/routeur est, lui, relié par câble téléphonique à un « DSLAM », un multiplexeur qui sert de relai vers le routeur internet de votre opérateur, sans doute par fibre optique (tout est extrêmement simplifié ici).

Vous avez donc chez vous deux réseaux locaux : un réseau Wi-Fi et un réseau câblé. Si, sur votre tablette (donc sur votre réseau Wi-Fi), vous voulez télécharger un fichier qui se trouve sur votre ordinateur fixe, la tablette va transmettre son adresse au modem/routeur, qui va identifier sur base de cette adresse que le destinataire est sur votre réseau câblé, et va transmettre votre requête au PC. Par contre, si sur votre tablette vous voulez accéder à un site web, le modem/routeur n'identifiera l'adresse demandée ni sur votre réseau Wi-Fi ni sur votre réseau câblé, et il relaiera votre requête vers le nœud suivant, par le réseau téléphonique.

IV-A - Qu'est-ce qu'un réseau ?

Oui, commençons par le commencement, comment définir ce qu'est un réseau ? On peut s'en tenir à cette définition très intuitive : il s'agit d'une infrastructure permettant à des machines de communiquer. Une infrastructure à la fois matérielle et logicielle : le matériel véhicule les données entre les machines, et le logiciel fait en sorte qu'elles soient compréhensibles par toutes les machines, et qu'elles soient correctement acheminées vers leur destinataire.

IV-A-1 - LAN, WLAN, WAN…

Avant toute chose, essayez de répéter ces trois acronymes à toute vitesse, plusieurs fois d'affilée.

Ça y est ? Mouarf, vous faites vraiment tout ce qu'on vous demande, comme cela ?

Soyons sérieux. Un LAN est un réseau local, « Local Area Network », c'est-à-dire un réseau câblé de plusieurs ordinateurs basé sur une seule technologie, généralement dans un espace géographique limité (une petite entreprise, une école, chez vous).

Un WLAN (« Wireless LAN », LAN sans fil) est un réseau local qui utilise le Wi-Fi comme moyen de transport des données, tout simplement.

Un WAN (« Wide Area Network ») est un réseau beaucoup plus étendu, souvent composé de plusieurs LANs. Par exemple, deux implantations d'une entreprise géographiquement éloignées, disposant chacune d'un LAN, peuvent virtuellement posséder un seul réseau, un WAN, si les LANs des deux implantations peuvent échanger des données.

IV-A-2 - Topologies

Il existe de nombreuses formes de réseaux, que l'on nomme topologies :

IV-A-2-a - Topologie linéaire

Il s'agit de la plus simple des topologies de réseau : les machines sont reliées les unes à la suite des autres, à la queue-leu-leu.

La faiblesse du réseau linéaire est que la moindre défaillance d'une des machines coupe le réseau en deux.

IV-A-2-b - Topologie en bus

Cette forme de réseau est également simple : les données de toutes les machines transitent sur un seul câble ; tout le trafic réseau emprunte le même chemin. À chaque extrémité du bus se trouvent des bouchons terminaux, qui empêchent le « rebond » du signal électrique.

Cette topologie impose à chaque machine « d'écouter » le réseau afin d'attendre que la bande passante soit disponible pour envoyer ses données. Bonjour les embouteillages !

Ce n'est clairement pas la forme de réseau la plus performante.

Le mot « bus » vient d'une analogie avec une ligne d'autobus qui dessert différents arrêts, dans les deux sens.

IV-A-2-c - Topologie en anneau à jeton ou « token ring »

Il s'agit en fait d'un réseau en bus de forme circulaire. Le premier avantage par rapport au bus simple est qu'il n'y a pas de terminaison (forcément, un anneau n'a ni début ni fin !) et qu'il ne faut donc pas gérer le rebond des données à chaque bout.

Le principe du jeton est simple : chaque machine peut envoyer ses données si elle reçoit un jeton ; une fois qu'elle a envoyé ses données (ou si elle n'a pas de donnée à émettre), elle passe le jeton à la suivante, et cela à l'infini.

IV-A-2-d - Topologie en étoile

C'est la topologie la plus courante dans les réseaux domestiques et d'entreprises. Au centre de l'étoile se trouve un appareil (généralement un switch - voir un peu plus loin ce que c'est) qui va gérer le trafic des données entre les différentes machines connectées.

Avec cette architecture, il n'y a plus d'embouteillage ni de collision de données !

IV-A-2-e - Topologie maillée ou « fully connected »

Dans cette configuration, toutes les machines du réseau sont reliées entre elles. Cela signifie que si une machine est reliée à trois autres, elle doit posséder trois cartes réseau. De plus, le nombre de câbles nécessaire peut vite devenir énorme !

Le seul avantage de cette topographie est sa quasi-insensibilité aux pannes (une machine en rade n'impacte pas le fonctionnement du reste du réseau).

IV-A-2-f - Topologie en arbre ou hiérarchique

Dans ce type de réseau, une machine fait office de racine, est reliée à un certain nombre de machines (nœuds de premier niveau) et règle le trafic de données entre ces différentes machines. Chaque nœud de premier niveau est lui-même relié à des nœuds de second niveau, et ainsi de suite, le tout constituant une arborescence.

La panne d'une machine impacte en cascade tous les nœuds de niveaux inférieurs qui dépendent d'elle.

IV-A-2-g - Topologie hybride

Prenez une pincée de topologie en étoile, un zeste de topologie maillée, ajoutez par-ci par-là un anneau, et vous obtenez une topologie hybride.

Internet en est le meilleur exemple : c'est un réseau de sous-réseaux de topologies disparates, que l'on peut dans l'ensemble virtuellement considérer comme un immense réseau maillé, dont les données peuvent emprunter une infinité de chemins pour atteindre leur destinataire.

IV-B - Le matériel

Nous allons énumérer quelques dispositifs souvent rencontrés dans les architectures de réseau.

IV-B-1 - La carte réseau

Pour qu'un ordinateur soit mis en réseau, il faut au minimum qu'il soit équipé d'une carte réseau. Les cartes-mères actuelles sont équipées de toute l'infrastructure réseau intégrée ; mais il peut être nécessaire d'ajouter une ou plusieurs cartes réseau d'extension. Vous en avez probablement déjà vu une :

Un ordinateur peut posséder plusieurs cartes réseau et gérer plusieurs interfaces réseau. Par exemple, une machine peut partager sa connexion internet avec les autres machines d'un réseau local : une carte réseau reliée au modem/routeur du FAI, une seconde carte reliée au réseau local.

La carte réseau intégrée à la carte-mère ou la carte d'extension illustrée ci-dessus sont prévues pour des câbles ; on peut considérer qu'un adaptateur Wi-Fi (intégré ou d'extension) est aussi une carte réseau, bien que d'un type un peu particulier.

IV-B-2 - Le concentrateur ou « hub »

Le hub est un appareil permettant de relier plusieurs machines en réseau : il reçoit des données sur un port et les renvoie tout simplement aux machines connectées aux autres ports.

Le hub génère beaucoup de trafic sur le réseau, puisqu'il envoie les données à absolument toutes les machines - celles-ci déterminant elles-mêmes si elles en sont destinataires ou pas.

L'appareil qui suit est, sur ce point, plus « intelligent ».

IV-B-3 - Le commutateur ou « switch »

Le switch est un hub amélioré : il envoie les données uniquement à la machine à laquelle elles sont destinées.

Le switch est beaucoup plus intéressant que le hub, surtout pour un réseau ayant un grand nombre de machines : il génère beaucoup moins de trafic sur le réseau.

IV-B-4 - Le routeur

Le routeur remplit le même rôle qu'un switch au sein d'un réseau, mais permet en plus de relier entre eux deux réseaux.

Il y a de bonnes chances que vous possédiez un routeur, fourni par votre FAI, qui sert de relai (câble ou Wi-Fi) entre internet et la ou les machine(s) connectées à internet chez vous (ou votre réseau local).

Vous pouvez par exemple recycler un ancien routeur en switch, pour monter votre réseau local en étoile.

IV-B-5 - Le moyen de transport : câble ou... ondes

Pour que l'ordinateur, au travers d'une carte réseau, puisse envoyer et recevoir des données du réseau, il faut un moyen de transport. La carte réseau classique possède un port dans lequel vient s'enficher un câble. Il s'agit généralement d'un câble Ethernet ; l'embout permettant de l'enficher dans la carte réseau s'appelle RJ-45 (celui d'un câble téléphonique, par exemple, est un RJ-11).

Pour relier deux appareils identiques, ce câble sera « croisé », c'est-à-dire que certains de ses fils seront intervertis. Sinon, en règle générale, il s'agira d'un câble « droit » tout-à-fait classique.

Un autre moyen de transport qui devient omniprésent est le Wi-Fi, nom que l'on attribue aux ondes radio qui transportent les données, bien qu'il s'agisse initialement d'un ensemble de normes et de protocoles de communication sans fil. Nous l'avons évoqué plus haut, un réseau local basé sur le Wi-Fi est souvent appelé WLAN.

Vous avez peut-être déjà entendu parler de la norme IEEE 802.11. L'IEEE désigne « l'Institute of Electrical and Electronic Engineers », un organisme international indépendant qui (entre autres activités) joue un rôle important dans l'élaboration des normes qui régissent les domaines électrique et électronique. La norme 802.11 établit une série de standards pour la communication sans fil ; le Wi-Fi s'y conforme.

IV-C - Les modèles OSI et TCP/IP

Si vous consultez des cours sur le réseau, vous rencontrerez différents standards, ou modèles, concurrents, avec différentes couches allant de la transmission pure des impulsions électriques sur le réseau à l'application de haut niveau.

Les deux standards les plus courants sont le modèle OSI et le modèle TCP/IP. Leur principe est similaire, bien que leur nombre de couches varie :

Les deux modèles ont été conçus plus ou moins en même temps ; TCP/IP l'a été spécifiquement pour internet (par la Défense étasunienne, rappelons qu'internet intéressait au départ les militaires, dans le contexte de la Guerre froide), tandis qu'OSI avait une vocation plus universelle.

En pratique, le modèle OSI permet d'expliquer plus simplement l'empilement des différentes fonctionnalités ; à chaque couche correspondent un ou plusieurs protocoles.

Un protocole est un ensemble de règles régissant un type de communication donné, une sorte de langage codifié.

Les couches 1 et 2 se situent clairement au niveau du matériel, les 3 et 4 sont gérées par le système d'exploitation, et les couches 5 à 7 (souvent imbriquées) le sont par des bibliothèques ou applications de plus haut niveau.

1. La couche physique est chargée de l'envoi et de la réception des signaux électriques sur le réseau.

2. La couche de liaisons de données gère le transfert des données (appelées trames - « frames ») entre deux nœuds du réseau ; elle s'adresse pour cela à la couche physique. Les protocoles couramment rencontrés au niveau de cette couche sont Ethernet, PPP, RNIS, Wi-Fi, Bluetooth, etc.

3. La couche réseau s'occupe du routage et de l'adressage des données. On ne parle plus ici de trames, mais de paquets de données (datagrammes, selon la terminologie du modèle TCP/IP). Le protocole le plus connu rencontré au niveau de cette couche est IP (« Internet Protocol »).

4. La couche de transport permet aux processus de communiquer, en gérant éventuellement la perte et le renvoi de données mal reçues. Les deux protocoles les plus connus à ce niveau sont TCP (« Transmission Control Protocol ») et UDP (« User Datagram Protocol ») ; il existe aussi ARP, RARP, BOOTP, ICMP, IPX, NetBEUI, etc. (je suis sûr que ces noms vous disent quelque chose). Les données sont, à ce niveau, compactées en segments.

5. La couche de session permet principalement de synchroniser les communications, au moyen de protocoles tels que RPC, NetBIOS...

6. La couche de présentation est chargée de donner un sens aux données reçues, c'est-à-dire de les organiser en chaînes de caractères pouvant être traitées par la couche supérieure.

7. La couche application, enfin, est à la disposition des... applications de l'utilisateur. Une kyrielle de protocoles sont utilisables à ce niveau : FTP, Samba, SMTP, POP, IMAP, NNTP, Telnet, SSH, HTTP, SNMP, DNS, etc.

Chaque couche offre à la couche supérieure certains services, et utilise les services de la couche inférieure.

Pour simplifier très fort, les données sont transférées d'une couche à l'autre (vers le bas ou vers le haut) ; à chaque étape, elles sont emballées dans un nouveau conteneur (vers le bas), ou déballées (vers le haut). C'est le principe dit de l'encapsulation :

Les données (couleur cyan) gérées par le niveau application reçoivent une en-tête (« header ») au niveau suivant (en jaune). Les données et l'en-tête constituent un tout qui sera transmis à la couche suivante, qui va l'affubler d'une nouvelle en-tête (en orange). Ce principe va s'appliquer à chaque couche jusqu'à la couche de liaison, qui va ajouter sa propre en-tête et un bloc terminal (« trailer »). En fait, chaque couche ignore la teneur des données qui lui sont transmises par la couche supérieure.

Lors du chemin inverse, la remontée des données, chaque couche se débarrasse de son en-tête avant de les transmettre à la couche supérieure. Ce processus s'appelle la désencapsulation (on rencontre également décapsulation, que vous pourrez d'ailleurs pratiquer avec une bonne bière, quand vous aurez terminé ce tutoriel).

Nous allons bien sûr clarifier tout cela.

IV-C-1 - Au niveau de la couche physique

Tout appareil connecté à un réseau possède obligatoirement une interface réseau. La carte réseau de votre ordinateur, l'adaptateur Wi-Fi de votre tablette ou de votre smart-TV, toutes les prises de votre modem/routeur, toutes celles du DSLAM qui dessert votre quartier, sont autant d'interfaces réseau.

Le rôle de ces interfaces est, sur le réseau, d'émettre et de recevoir un signal, c'est-à-dire convertir en flux de 0 et de 1 des impulsions électriques ou radioélectriques, et inversement.

IV-C-2 - Au niveau de la couche de liaison de données

Dans un réseau donné, chaque interface est dotée d'un identificateur unique, le « Media Access Control » (ou MAC), que l'on peut considérer comme son adresse physique.

Les adresses MAC sont définies lors de la fabrication des composants (c'est le cas des cartes réseau et des adaptateurs Wi-Fi), mais peuvent également être « surchargées » (redéfinies) par les systèmes d'exploitation.

Cette adresse est composée de six octets.

Le rôle de la couche de liaison de données est de permettre d'acheminer chaque paquet de données (que l'on appelle trame, rappelons-le) vers l'interface réseau correspondant à l'adresse physique spécifiée dans l'en-tête de la trame.

Au sein d'un réseau local, cette adresse physique est rapidement identifiée : le modem/routeur ou le switch connaissent les adresses MAC de toutes les interfaces qui leur sont connectées, et font suivre la trame vers la bonne interface ; le hub, lui, ne les connaît pas et transmet la trame vers toutes les interfaces réseau qui lui sont connectées, et l'interface destinataire de la trame déterminera elle-même que la trame lui est bien destinée.

Par contre, si l'adresse physique est inconnue sur le réseau local, la troisième couche du modèle OSI doit être mise à contribution.

Les protocoles de transmission de trames entre interfaces réseau les plus répandus sont Ethernet, PPP (« Point to Point Protocol »), Wi-Fi, Bluetooth...

IV-C-3 - Au niveau de la couche réseau

La couche réseau est chargée de trois tâches essentielles :

1. le routage, que l'on peut définir comme la recherche d'un chemin, d'une route, permettant de relier deux machines. Concrètement, si une adresse physique n'est pas connue au sein d'un réseau local, le paquet de données est transmis à une passerelle, qui est une machine reliée au réseau local, mais aussi à un ou plusieurs autre(s) réseau(x). La passerelle va essayer de déterminer à quel autre réseau appartient l'adresse physique mentionnée dans le paquet de données (appelé datagramme dans le modèle TCP/IP). Si elle n'y arrive pas, pas de panique, la passerelle interrogera à son tour une passerelle de plus haut niveau, et ainsi de suite. Vous commencez à entrevoir la complexité d'internet ?

2. le relai, qui consiste à transmettre les paquets d'un réseau à un autre ;

3. le contrôle des flux, qui permet de choisir les routes de manière à éviter toute congestion au niveau d'un nœud.

Pour illustrer le routage, revenons à l'infrastructure que nous avons décrite au début du chapitre, lorsque vous voulez télécharger depuis votre tablette un fichier partagé sur votre ordinateur fixe. L'adresse physique de votre PC est inconnue sur le réseau Wi-Fi. Le modem/routeur agit alors comme passerelle, et cherche à identifier sur quel réseau l'adresse physique est connue : bingo, c'est sur le réseau câblé. Les paquets sont alors transmis vers ce réseau.

LE protocole le plus répandu au niveau de la couche réseau est bien entendu IP, pour « Internet Protocol ». Il ne faut pas envisager le terme « internet » au sens de la toile mondiale, mais au sens « inter-net », « inter-réseaux » en français.

Le petit mot IP est lâché, il faut à présent définir certaines choses.

IV-C-3-a - Notion d'adresse IP

Nous avons vu qu'une adresse physique, ou adresse MAC, correspondait à une interface réseau. Hélas, cette adresse n'est connue qu'au sein d'un réseau donné. Pour pouvoir faire du routage, il faut utiliser un tout autre système d'adressage : c'est ici qu'apparaît la notion d'adresse IP. Deux machines situées sur deux réseaux différents utiliseront des adresses IP pour communiquer.

Chaque interface réseau se voit dotée d'une (parfois plusieurs) adresse(s) IP, soit par l'administrateur du réseau (IP fixe), soit automatiquement au moyen du protocole DHCP (« Dynamic Host Configuration Protocol »), par une machine du réseau qui joue le rôle de « serveur DHCP », c'est-à-dire de distributeur d'adresses IP.

Prenons l'exemple d'une infrastructure réseau telle que vous pourriez avoir chez vous (et qui est relativement facile à configurer) :

- un modem/routeur fourni par votre FAI, avec une interface Wi-Fi et plusieurs interfaces câblées possibles ;

- une machine reliée par câble au modem/routeur, qui partage sa connexion internet avec trois machines sur un réseau local câblé via un switch. La première machine fait office de passerelle ; elle a deux interfaces réseau : l'une reliée au modem/routeur, l'autre au switch.

Le modem/routeur possède l'adresse IP 87.65.132.165 sur son interface connectée à internet, 192.168.1.1 sur celle reliée par câble au réseau local. Sur son interface câblée, le modem/routeur fait office de serveur DHCP et a attribué à la première interface réseau de la première machine câblée (la passerelle) l'adresse IP 192.168.1.3. La seconde interface réseau de cette machine possède une adresse IP fixe 192.168.0.1 ; la machine fait office de serveur DHCP sur cette seconde interface et distribue à son tour des adresses IP aux trois autres machines du réseau câblé : 192.168.0.4, 192.168.0.5 et 192.168.0.202.

Un petit dessin valant mieux qu'une longue explication :

Par facilité, les explications données ici sont en « IPv4 » (adresses sur quatre octets). Nous allons voir plus loin que le protocole IP évolue progressivement vers la version « IPv6 » (adresses sur huit mots).

IV-C-3-a-i - Masque de sous-réseau (« subnet mask »)

Une adresse IP est en fait composée de deux parties :

- le sous-réseau ;

- l'hôte.

Un sous-réseau est une portion de réseau qui peut être desservie par un switch ou un hub ; l'hôte permet d'identifier l'interface réseau au sein de ce sous-réseau. Pour faire une analogie : dans une ville donnée, le sous-réseau sera la rue et l'hôte sera le numéro de maison.

Un masque de sous-réseau est un masque de bits que l'on peut appliquer à l'adresse IP pour obtenir l'adresse du sous-réseau. Par conséquent, il a la même taille que l'adresse IP, donc quatre octets.

Prenons un exemple : l'adresse 192.168.1.3 et le masque 255.255.255.0. Si nous appliquons une opération logique « Adresse AND Masque », nous obtenons la valeur suivante : 192.168.1.0, qui est l'adresse du sous-réseau ; la valeur de l'hôte, elle, est obtenue par l'opération logique « Adresse AND NOT Masque » (0.0.0.3 dans notre exemple).

Pour votre édification personnelle, vous avez peut-être déjà rencontré cette forme dans la définition d'un sous-réseau : « 87.65.132.165/16 ». On appelle cela la notation CIDR (pour « Classless Inter-Domain Routing »). Concrètement, le nombre 16 après le slash représente le nombre de bits à 1 du masque de sous-réseau. D'après-vous, quelle sera donc ici la valeur du masque ? Réponse en note(1).

IV-C-3-a-ii - Plages d'adresses IP

Dans le monde entier, les fournisseurs d'accès à internet, certaines autorités, des universités, des grandes entreprises, etc., se voient attribuer un certain nombre d'adresses IP (de quelques centaines à plusieurs millions). Par exemple, en Belgique, l'opérateur Mobistar (je peux le citer car il a récemment disparu en tant que tel) disposait des adresses IP allant de 62.88.0.0 à 62.88.127.255 (soit 32 768 adresses), de 85.10.64.0 à 85.10.127.255 (16 384 adresses), de 91.86.0.0 à 91.87.255.255 (131 072 adresses), de 94.104.0.0 à 94.111.255.255 (524 288 adresses), plus encore quatre ou cinq plages plus ou moins étendues.

Certaines plages d'adresses spéciales sont dites non routables sur internet, elles sont réservées aux réseaux locaux. Il s'agit des plages suivantes :

- de 10.0.0.0 à 10.255.255.255 (plage très étendue, pour de très grands réseaux) ;

- de 172.16.0.0 à 172.31.255.255 ;

- de 192.168.0.0 à 192.168.255.255 (plage la plus fréquemment utilisée pour les petits réseaux locaux).

Pour finir, la plage d'adresses IP allant de 127.0.0.0 à 127.255.255.255 est utilisée de manière interne par la machine. L'adresse 127.0.0.1 est celle d'une interface réseau virtuelle, appelée « localhost », ou « boucle locale », qui pointe vers la machine elle-même.

IV-C-3-a-iii - NAT (« Network Address Translation »)

Une adresse IP définie au sein d'un réseau local n'est donc pas routable à l'échelle d'internet. Comment une des machines de notre petit réseau local peut-elle alors accéder à internet ? Grâce à la traduction d'adresse réseau (« Network Address Translation » ou NAT) qu'effectue le modem/routeur : l'adresse IP 192.168.0.202 de notre machine est traduite en 87.65.132.165 ; notre machine est en quelque sorte cachée derrière le modem/routeur.

IV-C-3-a-iv - IPv4 et IPv6

IV-C-3-a-v - Comment déterminer les adresses IP d'une machine

Pour en terminer avec ce chapitre sur la notion d'adresse IP, voyons comment déterminer l'adresse IP de toutes les interfaces d'une machine.

IV-C-3-a-v-I - Sur Windows

Dans la console (cmd.exe), tapez la commande ipconfig /all :

IV-C-3-a-v-II - Sur UNIX, Linux, OSX

Dans un terminal, en superutilisateur, tapez la commande ifconfig :

enp1s4: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
inet 192.168.0.1  netmask 255.255.255.0  broadcast 192.168.0.255
inet6 fe80::205:5dff:fe83:e34e  prefixlen 64  scopeid 0x20<link>
ether 00:05:5d:83:e3:4e  txqueuelen 1000  (Ethernet)
RX packets 1352146  bytes 142440323 (135.8 MiB)
RX errors 0  dropped 0  overruns 0  frame 0
TX packets 2061099  bytes 2596245526 (2.4 GiB)
TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

enp5s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
inet 192.168.1.3  netmask 255.255.255.0  broadcast 192.168.1.255
inet6 fe80::225:11ff:fecb:4664  prefixlen 64  scopeid 0x20<link>
ether 00:25:11:cb:46:64  txqueuelen 1000  (Ethernet)
RX packets 2071856  bytes 2599625181 (2.4 GiB)
RX errors 0  dropped 0  overruns 0  frame 0
TX packets 1317051  bytes 132819605 (126.6 MiB)
TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
inet 127.0.0.1  netmask 255.0.0.0
inet6 ::1  prefixlen 128  scopeid 0x10<host>
loop  txqueuelen 1  (Boucle locale)
RX packets 221  bytes 28752 (28.0 KiB)
RX errors 0  dropped 0  overruns 0  frame 0
TX packets 221  bytes 28752 (28.0 KiB)
TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

Le résultat ci-dessus a été obtenu en tapant la commande dans le terminal de la passerelle de notre réseau local, sous Linux.

On distingue trois interfaces réseau :

- enp1s4, qui est reliée au réseau local ;

- enp5s0, qui est reliée au modem/routeur ;

- lo, qui est la boucle locale.

IV-C-3-b - De l'adresse physique à l'adresse IP : ARP et RARP

(1)Le masque vaudra 11111111 11111111 00000000 00000000 donc 255.255.0.0.
Retour à l'article