Aller au contenu

Introduction

I. Quelques rappels⚓︎

Modèle client-serveur⚓︎

Modèle client-serveur

Les clients Ă©changent des informations avec les serveurs. La notion de client recouvre aussi bien une machine, qu'une application.

De même le serveur désigne aussi bien l'ordinateur qui héberge un service que le logiciel qui fournit ce service.

Protocole⚓︎

Protocole

Les protocoles sont l'ensemble des règles utilisées par les clients et les serveurs pour communiquer.

Paquets⚓︎

Paquets

Les informations échangées sont découpées en paquets de petites tailles. Ces paquets sont envoyés séparément et transitent sur le réseaux indépendamment les uns des autres. Ils peuvent parvenir à destination dans le désordre, le protocole doit donc prévoir des fonctions pour reconstituer l'information.

II. Routeurs et topologie d'un réseau⚓︎

En plus des clients et des serveurs, le réseau est constitué de switchs (commutateurs) et de routeurs.
Ces machines reçoivent et transmettent l'information vers la destination.

Les clients et les serveurs communiquent avec les routeurs (Ethernet, wifi...)

Regarder la vidéo suivante

architecture des réseaux

Adresse IP⚓︎

Adresse IP

👉 Chaque machine sur le rĂ©seau est identifiĂ©e par une adresse IP. La norme actuelle est IPv4, la migration est en cours vers IPv6.

Dans la norme IPv4 l'adresse est codée sur 32 bits (4 octets), soit 4 entiers de 0 à 255 (car 255 en base 10 s'écrit 1111 1111 en base 2)

Exemple d'adresse IP : 168.1.2.10

1. Masque de sous réseau⚓︎

Masque de sous réseau

L'adresse IP est en réalité composée de 2 parties : l'adresse du réseau, et l'adresse de la machine sur le réseau.

👉 Le masque permet de connaitre la partie rĂ©servĂ©e Ă  l'adresse du rĂ©seau.

Masque de sous réseau : notations

Il existe deux façons de noter le masque.

Première notation possible avec l'adresse du masque

💡 Première notation possible : IP = 168.1.2.5 mask = 255.255.255.0

Dans cet exemple très simple, les valeurs 255 indiquent la partie réseau, les 0 indiquent la partie identifiant la machine sur le réseau.

Dans l'exemple ci-dessus 168.1.2.0 est l'adresse du réseau, seul le dernier nombre identifie une machine.

Dans ce cas-là, toute adresse 168.1.2.x identifiera une machine sur le réseau. x peut prendre 256 valeurs, ce sous réseau peut donc connecter 254 machines car il y a deux adresses réservées :

  • 👉 adresses rĂ©servĂ©es 168.1.2.0 celle du rĂ©seau, obtenue avec uniquement des 0 sur la plage d'adressage machines
  • 👉 168.1.2.255 celle du broadcast (adresse rĂ©servĂ©e pour une diffusion sur toutes les machines du rĂ©seau) obtenue avec uniquement des 1 sur la plage d'adressage machines.
Deuxième notation possible : notation CIDR

👉 On peut aussi noter le masque de la façon suivante : 168.1.2.0/24

/24 indique que 24 bits sont utilisés pour l'adresse réseau. Les 8 bits restant codent donc l'adresse machine.

😀 On peut avec cette notation plus simple, utiliser une très faible quantitĂ© d'information pour l'adresse machine. Cela est prĂ©conisĂ© pour un routeur, qui ne gère gĂ©nĂ©ralement pas un très grand nombre de machines.

10.1.2.5/30 indiquera par exemple que l'adresse réseau est codée sur 30 bits, seulement 2 bits (4 valeurs possibles) sont utilisables pour des machines. C'est très peu !

Un exemple détaillé :⚓︎

Un exemple détaillé

Considérons la machine dont la configuration réseau est : IP : 172.128.10.5 ; Masque : 255.255.192.0 .
On écrit de façon plus courante : 172.128.10.5/18
On obtient l'adresse du sous réseau avec l'opérateur AND.

Écrivons en binaire l'adresse IP et le masque :
\(172.128.10.5\) s'Ă©crit en binaire : \(10101100.10000000.00001010.00000101\)
\(255.255.192.0\) s'Ă©crit en binaire : \(11111111.11111111.11000000.00000000\)

Posons l'opération du ET logique entre l'adresse IP de la machine et le masque :

calcul de masque

On met en décimal le résultat : \(172.128.0.0\) est l'adresse du réseau.

La seconde partie nous permet de savoir combien de machines peut contenir ce réseau.
On peut aller de \(000000.00000000\) Ă  \(111111.11111111\).
En décimal : de 0 à 16383. C'est à dire 16384 adresses possibles...

🌵 Enfin pas tout Ă  fait :

  • Il faut retirer l'adresse du rĂ©seau lui-mĂŞme : \(172.128.0.0\)
  • Il faut Ă©galement retirer (la dernière ) l'adresse de broadcast : \(10101100.10000000.00111111.11111111\) c'est Ă  dire l'adresse \(172.128.63.255\)

Donc en tout : on peut connecter 16382 machines dans ce réseau.

Exercice papier

On donne l'adresse IP d'un matériel suivante : Adresse IP : 192.168.1.100/20

DĂ©terminer :

  1. le masque de sous-réseau
  2. l'adresse du réseau
  3. le nombre de machines que l'on peut connecter à ce réseau
  4. l'adresse broadcast
  5. l'adresse IP de la première machine
  6. l'adresse IP de la dernière machine
Solution

Adresse IP : 192.168.1.100/20
En binaire : 11000000.10101000.00000001.01100100

  1. Le masque de sous-réseau est : 11111111.11111111.11110000.00000000
    c'est à dire en décimal :
    255.255.240.0

  2. L'adresse du réseau :
    11000000.10101000.00000001.01100100
    AND
    11111111.11111111.11110000.00000000
    👉
    L'adresse du réseau est donc :
    1100000.10101000.00000000.00000000
    c'est à dire en décimal :
    192.168.0.0

  3. Le nombre de machines que l'on peut connecter à ce réseau :
    La dernière adresse possible pour la plage réservée aux adresses machines est 1111 11111111 On peut donc connecter \(2^{12} -2 = 4094\) machines

  4. L'adresse broadcast est donc
    11000000.10101000.00001111.11111111
    C'est à dire en décimal : 192.168.15.255

  5. L'adresse IP de la première machine est
    11000000.10101000.00000000.00000001
    C'est à dire en décimal : 192.168.0.1

  6. L'adresse IP de la dernière machine est
    11000000.10101000.00001111.11111110
    C'est à dire en décimal : 192.168.15.254

Deux routeurs liés par un câble⚓︎

Attention

🌵 MĂŞme si entre deux routeurs, il n’y a rien d’autre qu’un câble, ce câble constitue un rĂ©seau.
En pratique ce réseau pourrait avoir pour masque 255.255.255.252 (en CIDR /30) .
Sur un tel réseau, il n’y a donc que quatre adresses possibles. Etant donné que deux sont prises pour le réseau et le broadcast, il n’en reste que deux pour connecter des matériels. Ce seront donc les deux adresses IP des routeurs, qui se termineront donc forcément par .1 et .2 (l’adresse se terminant par .0 étant celle du réseau, et celle se terminant par .3 celle du broadcast)

III. Tables de routages⚓︎

Table de routage

Lorsqu'un routeur reçoit un paquet, il doit l'analyser pour savoir où l'envoyer. Pour le savoir, il utilise une table de routage.
Les tables de routage sont des informations stockées dans le routeur permettant d'aiguiller intelligemment les données qui lui sont transmises.
Dans le réseau ci-dessous, si l'ordinateur d'adresse \(192.168.0.5\) veut interroger le serveur \(10.7.3.8\) :

  • l'adresse \(10.7.3.8\) n'Ă©tant pas dans le sous-rĂ©seau F (d'adresse \(192.168.0.0\) / \(24\)), la requĂŞte est confiĂ©e au routeur via son adresse passerelle dans le rĂ©seau F (ici \(192.168.0.254\)).
  • le routeur observe si l'IP recherchĂ©e appartient Ă  un autre des sous-rĂ©seaux auquel il est connectĂ©. Ici, l'IP recherchĂ©e \(10.7.3.8\) n'appartient ni au sous-rĂ©seau A ou E.
  • le routeur va donc regarder dans sa table de routage l'adresse passerelle d'un autre routeur vers qui il doit rediriger les donnĂ©es.
  • Si le sous-rĂ©seau C fait partie de sa table de routage, le routeur R1 saura alors que le meilleur chemin est (par exemple) de confier les donnĂ©es au routeur R3.
  • Si le sous-rĂ©seau C ne fait pas partie de la table de routage, le routeur R1 va alors le rediriger vers une route «par dĂ©faut» (que l'on peut assimiler au panneau «toutes directions» sur les panneaux de signalisation).
Note

👉A la place de "passerelle", vous trouverez souvent le mot anglais "gateway"

Plusieurs réseaux

Quelques réseaux

Il y a plusieurs possibilités. Par exemple, regardons la table de routage du routeur R1.

👉 A priori, on ne met pas de passerelle pour les rĂ©seaux auxquels le routeur R1 est directement connectĂ©.

Table de routage de R1

Destination Passerelle Interface
192.168.0.0 /24 192.168.0.254 ou i1
172.17.1.0 /24 172.17.1.254 ou i2
10.0.5.0 /24 10.0.5.152 ou i3
10.5.2.0 /24 172.17.1.1 172.17.1.254 ou i2
10.7.3.0 /24 10.0.5.135 10.0.5.152 ou i3

Résumé

L’interface c’est l’adresse de la carte réseau par où on sort, la passerelle (gateway) c’est le prochain endroit (adresse de la carte réseau du routeur) où on va.
Les interfaces ne sont pas identifiées par leur adresse IP mais par leur nom (qui peut être de la forme eth0, wlo1, i1, etc.). Dans les sujets d'exercices, on peut trouver les interfaces identifiées par leur adresse IP.

💡 Comment sont construites les tables de routage ?

  • Soit Ă  la main par l'administrateur rĂ©seau, quand le rĂ©seau est petit : on parle alors de table statique.
  • Soit de manière dynamique : les rĂ©seaux s'envoient eux-mĂŞmes des informations permettant de mettre Ă  jour leurs tables de routages respectives. Des algorithmes de dĂ©termination de meilleur chemin sont alors utilisĂ©s : nous allons en dĂ©couvrir deux, le protocole RIP (peu utilisĂ©) et le protocole OSPF.

Reprenons notre exemple :

l'ordinateur d'adresse \(192.168.0.5\) veut interroger le serveur \(10.7.3.8\) :
Le protocole RIP va permettre d'Ă©tablir la route avec le plus faible nombre de sauts. Cela signifie que la route choisie sera celle qui passe par le plus faible nombre de routeurs. Dans notre exemple, le chemin choisi sera donc R1 - R3

Le protocole OSPF tient compte des vitesses de transmission, et permet de déterminer la route la plus rapide en temps de transmission, qui n'est donc pas nécessairement celle avec le plus faible nombre de sauts.


Source : Gilles LASSUS

Pourquoi des protocoles ?

Il pourrait sembler simple de configurer les routeurs à la main. On indiquerait par exemple à R3 ou envoyer les paquets selon les destinations. En cas de changement du réseau (ajout d'un nouveau routeur, panne d'un routeur, etc...) il faudrait alors maintenir à la main la table de routage. Cela serait sans doute faisable dans un tout petit réseau, mais le nombre de routeurs d'un réseau est généralement beaucoup trop grand pour qu'on puisse envisager cela, même avec un nombre important d'humains passant leur temps à communiquer entre eux les changements pour mettre à jour les tables.

Il est donc nécessaire que les routeurs maintiennent leur tables à jour de façon automatique. C'est ce à quoi servent les protocoles de routage.

Les approches possibles

On pourrait imaginer plusieurs façons d'aborder le problème :

  • Le routage alĂ©atoire : Les routeurs pourraient très bien envoyer les paquets Ă  un de leurs voisins choisi de façon alĂ©atoire, en espĂ©rant que, tĂ´t ou tard, le paquet arrivera Ă  destination. Cela peut sembler idiot, mais mĂŞme un tel protocole peut dans certaines situations critiques se rĂ©vĂ©ler la meilleure option. C'est le cas si le rĂ©seau contient peu de machines, et que les connections sont très instables. Dans de telles conditions chercher Ă  conserver une carte du rĂ©seau efficace serait illusoire.
  • Le routage centralisĂ© : chaque routeur indique de façon pĂ©riodique l'Ă©tat de ses connexions avec ses voisins. Le routeur central dispose ainsi de toutes les informations et peut en retour indiquer aux routeurs les routes optimales.
    Ce système serait le plus efficace mais il a un gros défaut : il faut que tous les routeurs puissent communiquer avec le routeur central, et cela à tout moment. Une panne de liaison d'un ou plusieurs routeurs aboutira à une cartographie erronée. Pire encore, le routeur central lui même peut tomber en panne, paralysant alors le réseau.
  • Le routage par apprentissage de proche en proche : les routeurs ne communiquent qu'avec leurs voisins. Chacun donne Ă  tous ses voisins la liste de ses voisins, et reçoit en retour la mĂŞme liste. Il ajoute alors dans sa table la liste des voisins de ses voisins (en Ă©liminant ceux qu'il a dĂ©jĂ  en voisin lui mĂŞme). Pour chaque destination, il ajoute l'information sur la distance.
    Il pourra transmettre sa nouvelle table ainsi mise Ă  jour, et le processus continuera par Ă©tape jusqu'Ă  ce que tous les routeurs puissent calculer les routes vers tout les autres.
    Chaque routeur testera périodiquement les connexions avec ses voisins. Si une nouvelle connexion apparait, ou si une connexion existante disparait, il mettra à jour sa table, et il transmettra l'information à ses voisins. De proche en proche, la modification du réseau sera ainsi répercutée dans les tables de routages de tous les routeurs.

IV. La route par défaut : 0.0.0.0/0⚓︎

0.0.0.0

Dans le contexte de routage, 0.0.0.0 (ou 0.0.0.0/0 en notation CIDR) signifie généralement la route par défaut.

Wikipedia Table de routage :

La route par défaut indiquera comment acheminer le trafic qui ne correspond à aucune entrée dans la table de routage. En l’absence de route par défaut, le routeur éliminera un paquet dont la destination n’est pas connue. »

La destination 0.0.0.0/0 représente donc souvent "le reste d'internet", plutôt qu'une adresse du réseau local.

Exemple

Table de routage d'un ordinateur sous Windows 7 obtenue avec la commande route print

Capture d'écran table de routage IP v4 Windows

Cette table peut se décomposer de la manière suivante :

  • Destination : Plage d'adresse de destination déterminée par le couple Destination réseau / Masque réseau
  • Adresse passerelle : Adresse du routeur qui permet d'atteindre le réseau de destination.
  • Adresse interface : Carte réseau à utiliser pour contacter le routeur mentionné dans "Adresse passerelle".
  • Métrique : Indique le coût relatif de l'itinéraire pour atteindre la destination

Si on exclu les informations de broadcast, loopback et multicast, la table précédente peut se résumer à :

Capture d'écran table de routage IP v4 Windows simplifiĂ©e

L'ordre de traitement de la table de routage va des masques les plus longs aux plus petits. C'est à dire que le routeur va d'abord comparer les sous-réseaux avec le masque 255.255.255.255 pour finir par comparer les sous-réseaux avec le masque 0.0.0.0.

La table de routage simplifiée ci-dessus peut se traduire ainsi (dans l'ordre de traitement) :

  1. Route vers l'ordinateur lui-même, "Destination réseau" et "Adresse interface" ont la même valeur. On remarquera le masque entièrement à 255 (/32 en CIDR) qui permet de désigner un réseau (une plage) limitée à une seule adresse.
  2. Route vers le réseau local sur lequel est connecté l'ordinateur. "On-link" indique que l'ordinateur est directement connecté au réseau concerné, il n'y a donc pas besoin de routeur pou l'atteindre.
  3. Route par défaut 0.0.0.0/0.0.0.0 : c'est la route utilisée si aucune autre route possible n'a été trouvée dans la table de routage.

Source : https://www.electro-info.ovh/index.php?id=137

💻 A vous de jouer chez vous :

Sur votre ordinateur personnel, chez vous, dans la barre de recherche du bas, saisissez cmd, puis une fois l'invite de commande apparue, saisissez route print
Essayez de comprendre ce qui s'affiche.

Remarque
sous GNU/Linux, la commande route -n renvoie le mĂŞme style de tableaux.