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 relire la sous-partie 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
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é.
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
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 :
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 :
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 :
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
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é
:
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é
Mode de fonctionnement
Prenons un exemple concret
pour illustrer le mode de fonctionnement d’une passerelle. Voici 2 ordinateurs
: Azur-PC et Safran-PC
Nom
|
Adresse IP
|
Masque de
sous-réseau
|
Azur-PC
|
192.0.1.5
|
255.255.255.0
|
Safran-PC
|
72.40.2.1
|
255.0.0.0
|
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 :
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
:
En réalité tout ce passe par
le modéle OSI et l'encapsulation
Bonne chance
mohameddouhaji7@gmail.com