La passerelle : les bases du routage

Vous vous êtes remis de vos émotions, ou plutôt, des calculs du chapitre précédent ? Tant mieux ! Ou tant pis pour vous, en cas de réponse négative. Voici un chapitre expliquant le fonctionnement d’une passerelle, avec comme promis, des calculs ! Ne cherchez pas à vous enfuir, cette pièce vient d’être déconnectée du réseau, il n’y a plus de route derrière… Mwahahahaha ! :diable: (Qui a dit qu’on était des détraqués ? :-° )

Une petite révision

Deux hôtes ne se situant pas dans le même sous-réseau ne peuvent pas communiquer directement. Il faut que quelque chose intervienne entre les deux pour transmettre à l’un, les données au nom de l’autre. Ce « quelque chose » est la passerelle : un service qui connecte plusieurs sous-réseaux. Cette position fait donc que la passerelle se situe à califourchon entre plusieurs sous-réseaux, faisant ainsi office d’intermédiaire.

Ceci est une notion logique, c’est un service fourni par un matériel. En pratique, ce matériel est presque toujours un routeur.

À ce stade du cours, vous ne devriez plus avoir besoin d’analogie !

Dans un réseau comprenant plusieurs routeurs, on rencontre parfois une passerelle par défaut (default gateway, en anglais). Passerelle, car elle interconnecte des sous-réseaux, « par défaut » car c’est vers elle qu’on se tourne quand on ne sait pas à qui s’adresser. Chaque routeur a une table de routage. Nous avons défini précédemment que les paquets représentent des parties de vos données. D’un point de vue réseau, lorsque vous envoyez des données, celles-ci sont découpées en plusieurs portions et chaque portion est appelée un paquet. Quant à la table de routage, il s’agit d’une liste des différentes « routes » (chemins) vers d’autres sous-réseaux. Ces définitions sont très simplifiées pour vous permettre de comprendre le principe, nous reviendrons dessus plus tard. ;)

C’est bien beau tout ça, mais comment fonctionne cette fameuse passerelle ? La réponse vous attend sagement dans la sous-partie suivante. :)

Mode de fonctionnement

Prenons un exemple concret pour illustrer le mode de fonctionnement d’une passerelle. Voici 2 ordinateurs : Azur-PC et Safran-PC (on se demande bien d’où ces noms sont inspirés o_O ). Leurs cartes réseau sont configurées ainsi :

Nom Adresse IP
Azur-PC 192.0.1.5
Safran-PC 72.40.2.1

Ils n’appartiennent pas au même sous-réseau et ne peuvent donc pas communiquer : il leur faut une passerelle. Voyons comment elle fonctionne.

Le fonctionnement

Azur-PC a recours à un processus nommé ANDing, que nous allons voir juste après, pour déterminer si Safran-PC, avec qui il veut communiquer, est dans le même sous-réseau que lui. Il réalise que ce n’est pas le cas, il va donc transférer son message à la passerelle en lui indiquant l’adresse du destinataire. Supposons que ce soit un routeur qui offre ce service. Il a 2 interfaces. Pour que la communication puisse avoir lieu, une de ses interfaces doit être dans le même sous-réseau que Azur-PC et l’autre dans le même que Safran-PC. Voici une configuration possible pour ce routeur :

Interface Adresse IP Masque de sous-réseau
A 192.0.1.6 255.255.255.0
B 72.40.1.1 255.0.0.0

Avec une telle configuration, Azur-PC et Safran-PC peuvent à présent communiquer. Quand Azur-PC voudra parler à Safran-PC, il vérifiera grâce au ANDing si le destinataire est dans le même sous-réseau. Si oui, il enverra son message directement à son adresse IP, sinon, il l’envoie à la passerelle en lui demandant de transmettre à bon port. La passerelle étant entre les 2, cela ne pose pas de problème.

Voici un schéma récapitulatif :

C'est peut-être moche mais faîtes comme si ce n'était pas le cas. :-°
C’est peut-être moche mais faîtes comme si ce n’était pas le cas. :-°

Il est maintenant temps de voir ce qu’est le ANDing dont on a parlé sans expliquer ce que c’était.

ANDing (conjonction logique)

Dans la sous-partie précédente, nous avons évoqué un processus utilisé par Azur-PC pour déterminer dans quel sous-réseau se trouve le destinataire : le ANDing.

Le ANDing, approche théorique
Définition

Le ANDing ou conjonction logique (ET logique) en français, est utilisé pour le calcul des propositions. Nous n’allons pas entrer dans les détails de ce que c’est concrètement. Nous allons simplement voir en quoi cela peut nous servir dans les réseaux en général, mais surtout quelle est son application dans le cas du routage. Quand votre hôte veut communiquer, il fait un calcul logique pour déterminer si votre destinataire se trouve dans un même sous-réseau ou pas. Si le destinataire est dans un sous-réseau différent, les données seront envoyées à la passerelle qui se chargera de les router au destinataire.

Les règles du ANDing

C’est là que l’on voit l’intérêt d’être à l’aise avec la conversion des adresses IP du décimal au binaire. En effet, le ANDing se base sur la notation binaire des adresses IP. Si vous n’êtes pas à l’aise avec les conversions décimal/binaire, nous vous conseillons de lire l’annexe qui traite ce sujet. Le ANDing est relativement simple à comprendre, il faut juste assimiler les règles suivantes :

  • 0 AND 0 = 0 ;
  • 0 AND 1 = 0 ;
  • 1 AND 0 = 0 ;
  • 1 AND 1 = 1.

Facile non ? :D

Oui, mais concrètement, à quoi servent ces règles ?

Déterminer si l’adresse IP du destinataire est dans le même sous-réseau que celle de l’émetteur est assez simple. La carte réseau de l’émetteur connaît son adresse IP, son masque de sous-réseau et l’adresse IP du destinataire. On va alors faire un ET logique (AND) entre l’adresse IP de l’émetteur et son masque de sous-réseau pour trouver son network ID. Ensuite, on va faire un ET logique entre l’adresse IP du destinataire et le masque de sous-réseau de l’émetteur et comparer le résultat avec le network ID obtenu précédemment. Si les deux valeurs sont identiques, alors l’émetteur et le destinataire sont dans le même sous-réseau. Sinon, ils sont dans des sous-réseaux différents. Pas de panique, un exemple vaut mieux que tout ce pavé. ;)

Le ANDing par l’exemple

Paul veut communiquer avec Éric. L’ordinateur de Paul (Paul-PC) a pour adresse IP 142.20.1.15 et pour masque de sous-réseau 255.255.0.0. Celui d’Éric (Éric-PC) a pour adresse IP 92.40.1.14.

Étape 1 : déterminons le network ID de l’émetteur

Convertissons l’adresse IP de Paul-PC en binaire, ce que vous savez normalement faire. ;) Voici ce que vous devez obtenir :

10001110.00010100.00000001.00001111

Convertissons à présent le masque de sous-réseau de l’adresse IP de Paul-PC en binaire :

11111111.11111111.00000000.00000000

Nous allons à présent faire un AND entre ces deux groupes de nombres binaires en appliquant les règles précédentes :

Opération AND 1
Opération AND 1

Le network ID de Paul-PC est donc 10001110.00010100.00000000.00000000.

Étape 2 : AND entre l’adresse IP du destinataire et le masque de sous-réseau de l’émetteur

Convertissons l’adresse IP d’Éric-PC en binaire :

01011100.00101000.00000001.00001110

Le masque de sous-réseau de Paul-PC ayant déjà été converti en binaire, il ne nous reste plus qu’à faire un ET logique :

Opération AND 2
Opération AND 2

On obtient donc 01011100.00101000.00000000.00000000.

Étape finale : comparaison des résultats

Au cours des deux étapes précédentes, nous avons obtenu :

Émetteur

10001110.00010100.00000000.00000000

Destinataire

01011100.00101000.00000000.00000000

Nous n’obtenons pas les mêmes valeurs. Par conséquent, ces deux adresses IP (142.20.1.15 et 92.40.1.14) ne sont pas dans le même sous-réseau.

Toujours à titre d’exemple, nous allons cette fois-ci choisir l’adresse IP du destinataire dans le même sous-réseau que celle de l’émetteur pour prouver que cette technique fonctionne bel et bien.

Si l’adresse IP d’Éric-PC est 142.20.20.10, sa notation en binaire sera 10001110.00010100.00010100.00001010.

Nous avons déjà converti le masque de sous-réseau de l’émetteur en binaire donc nous pouvons passer directement au ET logique :

Opération AND 3
Opération AND 3

Faisons une comparaison entre ce résultat et celui obtenu à l’étape 1 :

Émetteur

10001110.00010100.00000000.00000000

Destinataire

10001110.00010100.00000000.00000000

Comme vous pouvez le constater, le résultat est bien le même, donc ces deux adresses IP (142.20.1.15 et 142.20.20.10) sont dans le même sous-réseau. ;)

Voilà, vous comprenez maintenant comment ça se passe. Chaque fois que vous communiquez, ce calcul logique est effectué. Si le destinataire est dans le même sous-réseau, l’hôte lui transmet directement les paquets, sinon, il les envoie au routeur (la passerelle) qui se charge de les router au destinataire.

Un raccourci

La conversion du masque et de l’adresse IP en binaire n’est pas obligatoire, nous vous l’avons fait faire exprès pour vous faire pratiquer. ;) En fait, il est tout à fait possible de faire un ET logique directement en décimal. L’astuce c’est de se servir d’une analogie : une adresse IP représente de l’eau qui coule en direction du masque de sous-réseau. Chaque 255 du masque représente une membrane perméable qui laisse couler l’eau et chaque 0 représente un barrage qui bloque l’eau. Ainsi seuls les octets d’une adresse IP au-dessus d’un 255 se retrouveront dans le résultat du ANDing.

Ce raccourci ne marche que si on utilise les masques de sous-réseaux par défaut, c’est-à-dire composé uniquement de 255 et de 0 (ce qui est le cas dans notre exemple). Mais, si vous devez faire un ET logique qui implique des masques de sous-réseau personnalisés, souvent représentés par une notation CIDR, cette technique ne marchera pas. ;)

Un schéma étant plus parlant qu’un discours, voici une illustration d’un ET logique entre l’adresse 192.168.30.4 et le masque 255.255.255.0 en utilisant le raccourci évoqué :

Les bits allumés du masque forment une membrane perméable, les bits éteints, un barrage
Les bits allumés du masque forment une membrane perméable, les bits éteints, un barrage

Remarquez que chaque octet de l’adresse IP au-dessus d’un 255 « coule », c’est-à-dire se retrouve dans le résultat de la conjonction logique. Par contre, l’octet qui se trouve au-dessus d’un zéro est bloqué. ;)


Dans ce chapitre, nous avons fait un zoom sur la passerelle : nous avons étudié comment elle fonctionne, vu à quoi ça sert, et nous avons même étudié les opérations logiques qui s’effectuent au niveau de vote carte réseau. Tout ceci va vous servir de base pour l’étude de la fonction principale de la passerelle : le routage, que nous étudierons lorsque nous arriverons à la couche 3 du modèle OSI. Mais pour l’instant, nous sommes toujours coincés devant la couche 4 ! Courage, il ne nous reste plus que l’adressage par classes et l’adressage CIDR à voir… :)