Adressage IP

Une adresse IP (Protocole Internet) identifie de façon unique une interface dans un réseau. Elle est composée de 32 bits et est généralement représentée en 4 octets en base décimale pour être plus digeste.

Concepts mathématiques

Une compréhension de base du système numérique binaire est de mise pour bien comprendre le fonctionnement de l'adressage IPv4 et sa représentation décimale. La compréhension de l'hexadécimal est requise pour la compréhension de l'adressage IPv6

Concepts mathématiques

Bases numériques

Une base numérique décrit la quantité de valeurs uniques possibles pour chaque chiffre/caractère composant un nombre dans ce système. Chaque chiffre composant un nombre représente sa valeur indiquée multipliée par la base de son système à la puissance correspondant à sa position.

La partie entière d’un nombre pourrait donc être représentée sous la forme suivante où “b” représente la base numérique.

b5   b4   b3   b2   b¹   b0

Par conséquent, la valeur de 501 en base décimale pourrait être décrite par l’expression suivante :

(102 x 5) + (101 x 0) + (100 x 1)

La partie décimale (suite à la virgule ou au point) peut être représentée de la même façon en continuant la série.

b0 .  b-1   b-2   b-3   b-4   b-5

La valeur de 5.101 en base décimale pourrait donc être représentée par l’expression suivante :

(100 x 5) + (10-1 x 1) + (10-2 x 0) + (10-3 x 1)

Pour simplifier/résumer le tout, la base est décrite en valeur décimale et représente la quantité de valeurs possibles pour chaque chiffre composant un nombre donc ayant passé à travers toutes les valeurs possibles d’un chiffre, on retient un pour la position suivante et on recommence le compte sur la première valeur.

Pour plus de détails sur les bases numériques, l’article rédigé sur la plate-forme alloprof pourra vous éclairer davantage.

Concepts mathématiques

Décimal

Le système décimal est le système numérique le plus commun et procède par puissance de 10. Il y a donc 10 valeurs possibles par chiffre soit toutes les valeurs incluant de 0 à 9 composant un nombre dans ce système. L’origine de ce système ainsi que sa popularité peuvent être attribués à la quantité de doigts que l’on retrouve sur nos deux mains.

(n * 102) + (n * 101) + (n * 100) . + (n * 10-1) + (n * 10-2) + (n * 10-3)

La forme polynomiale du nombre 1024.5 serait alors l'exemple suivant.

(1 * 103) + (0 * 102) + (2 * 101) . + (4 * 100) + (5 * 10-1)

(1 * 103) + (2 * 101) . + (4 * 100) + (5 * 10-1)

1000 + 20 + 4 + 0.5 = 1024.510

Concepts mathématiques

Binaire

Comme le mentionne son nom, le système binaire procède plutôt par puissance de 2 et comporte donc seulement deux valeurs possibles, soit 0 et 1 par chiffre composant un nombre dans ce système. Ce système est surtout utilisé en informatique puisqu’un circuit électrique a seulement deux états, ouvert ou fermé.

(n * 22) + (n * 21) + (n * 20) . + (n * 2-1) + (n * 2-2) + (n * 2-3)

Pour convertir du système binaire au système décimal, il suffit de calculer sa forme développée. Convertissons par exemple le nombre binaire 1011012 en décimal.

(1 * 25) + (0 * 24) + (1 * 23) + (1 * 22) + (0 * 21) + (1 * 20)

32 + 0 + 8 + 4 + 0 + 1 = 45

Il existe une panoplie de méthodes pour convertir du système décimal au système binaire. Une des méthodes les plus répandues est la méthode de la division. À partir de la valeur décimale complète, on divise par 2 jusqu’à ce que le quotient de cette division soit 0. S’il y a un restant à cette division (que son résultat n’est pas un entier), on y note la valeur 1 et si le résultat est entier, on y note la valeur 0. On lit ensuite le nombre binaire de bas en haut.

Convertissons par exemple le nombre décimal 242 en binaire à l’aide de cette méthode.

242 / 2 = 121

0

121 / 2 = 60.5

1

60 / 2 = 30

0

30 / 2 = 15

0

15 / 2 = 7.5

1

7 / 2 = 3.5

1

3 / 2 = 1.5

1

1 / 2 = 0.5

1

24210 = 111100102

 

Concepts mathématiques

Hexadécimal

Le système hexadécimal, comme le mentionne son nom, procède par puissance de 16. Comme il n’existe que 10 chiffres arabes, on emploie suite au chiffre 9 les lettres de A jusqu’à F. La conversion d’un nombre hexadécimal à un nombre décimal peut être fait de la même façon que la conversion d’un nombre binaire à un nombre décimal.

Convertissons à titre d’exemple le nombre hexadécimal 10AF en nombre décimal.

(1 * 163) + (0 * 162) + (A * 161) + (F * 160)

(1 * 163) + (0 * 162) + (10 * 161) + (15 * 160)

4096 + 160 + 15 = 427110

La conversion d’un nombre décimal à un nombre hexadécimal peut être effectuée d’une façon similaire à la conversion d’un nombre décimal à un nombre binaire. Il suffit de multiplier le restant de la division par 16 pour trouver quelle valeur se trouvera à la position correspondante.

Effectuons la conversion du nombre décimal 4271 en nombre hexadécimal.

Division par 16

Multiplication du restant

Valeur hexadécimale

4271 / 16 = 266.9375

0.9375 * 16 = 15

F

266 / 16 = 16.625

0.625 * 16 = 10

A

16 / 16 = 1

0 * 16 = 0

0

1 / 16 = 0.0625

0.0625 * 16 = 1

1

427110 = 10AF16

Tout autre base numérique fonctionne sous le même principe.

Adressage IPv4

Les adresses IPv4 sont les adresses identifiant les hôtes au sein d'un réseau et sont généralement utilisées à titre de destination lors de communication entre deux appareils.

Adressage IPv4

Introduction

Une adresse IP (Protocole Internet) identifie de façon unique une interface joignable dans un réseau. Elle est composée de 32 bits et est généralement représentée par 4 octets en base décimale pour être plus digeste.

ex. 01111111.00000000.00000000.00000001 = 127.0.0.1

Des regroupements de ces adresses contigues peuvent être représentés par un masque de sous-réseau étant lui aussi composé de 32 bits déterminant la taille du regroupement à représenter ainsi que l'adresse indiquant à partir de quelle adresse le regroupement débute. Tous les appareils se situant dans le même groupe nommé un réseau ou un sous-réseau IP peuvent communiquer directement ensemble. Il sera nécessaire de passer par un routeur pour rejoindre des appareils qui ont des adresses à l’extérieur de ce réseau. Ce masque identifie la partie réseau de l’adresse IP (les bits devant être identiques pour qu'une adresse observée appartienne à ce réseau) par ses bits ayant la valeur 1 et la partie hôte (la partie identifiant de façon unique un appareil) par ses bits ayant la valeur 0. Ces bits doivent par conséquent être contigus pour former un masque de sous-réseau valide.

ex. 11111111.11111111.11111111.00000000 = 255.255.255.0

Ce masque réservant 24 bits à la partie réseau est un des masques les plus communs. Pour que deux appareils appartiennent au même réseau avec ce masque, les 3 premiers octets de leurs adresses devront être les mêmes. Il englobe donc toutes les adresses ayant de .0 à .255 comme 4e octet. 

Prenons le réseau IP le plus commun à titre d’exemple.

192.168.0.0 : 11000000.10101000.00000000.00000000

255.255.255.0 : 11111111.11111111.11111111.00000000

Dans cette situation, les bits “actifs” du masque de sous-réseau identifient les bits qui appartiendront à la portion réseau de l’adresse. Les adresses appartenant à ce réseau seront toutes les valeurs possibles des autres bits. Celles-ci seraient donc de 192.168.0.0 à 192.168.0.255.

La première adresse d’un réseau IP est réservée à identifier le réseau en question et sa dernière adresse est réservée à la diffusion et représente par conséquent l’adresse de destination qui sert à acheminer des données simultanément à tous les hôtes présents dans le réseau IP.  Ces deux adresses ne peuvent donc pas être utilisées pour représenter un appareil unique dans un réseau.

Le masque 255.255.255.0 permet donc en réalité l’utilisation des adresses de .1 à .254 pour ses hôtes. Un masque réservant 24 bits (/24) permet donc l’utilisation de 254 àdresses (incluant 1 et 254).

Ces masques sont utilisés pour décrire une étendue ou un groupe d'adresses qui seront utilisés pour définir des règles dans des tables de routage sur tous les appareils possédant une adresse IP et des tables de filtrage de pares-feu. Le réseau 192.168.1.0/24 (255.255.255.0) décrirait donc les adresses IP de 192.168.1.0 jusqu'à 192.168.1.255 pour utilisation dans des règles de routage ou de filtrage de trafic réseau.

Adressage IPv4

Un peu d'histoire

Historiquement, les adresses IP étaient regroupées et distribuées par classe. Chaque classe était associée à un masque de sous-réseau.

Les adresses IP de 0.0.0.0 jusqu’à 127.255.255.255 appartenaient à la classe A et étaient distribuées par des masques /8 (255.0.0.0). On parle ici de blocs de 16.8 millions d’adresses par bloc. Comme indique la capture d’écran ci-dessous, Apple possède cette quantité phénoménale d’adresses entre 17.0.0.0 et 17.255.255.255. Le bloc 10.0.0.0 - 10.255.255.255 est réservé à l’utilisation dans des réseaux locaux, le bloc 127.0.0.0-127.255.255.255 est réservé aux adresses de “loopback” (qu’une machine utilise pour faire référence à elle-même) et toutes les autres sont des adresses publiques (Internet).

[arsenaultja ~]$ whois 17.0.0.1

NetRange:       17.0.0.0 - 17.255.255.255
CIDR:           17.0.0.0/8
NetName:        APPLE-WWNET

La classe B est distribuée par masques de /16 (255.255.0.0) et sont les adresses de 128.0.0.0 à 191.255.255.255. La plage réservée aux réseaux privés dans cette classe est 172.16.0.0/12 donc 172.16.0.0 jusqu’à 172.31.255.255.

La classe C est distribuée par masques de /24 (255.255.255.0) et sont les adresses de 192.0.0.0 jusqu’à 223.255.255.255.

Les classes D et E sont réservées à certains protocoles qui utilisent des adresses IP spécifiques de diffusion pour que les appareils se détectent automatiquement.

En rétrospective, les classes d’adresses IP étaient une très mauvaise idée considérant que toutes les plages d’adresses IPv4 existantes sont allouées. Nous sommes à court d’adresses IPv4 et devons nous tourner vers des solutions telles que des masques de sous-réseau à longueur variable, le NATing et IPv6.

Adressage IPv4

Masques de sous-réseau à longueur variable (VLSM)

Passons au prochain niveau pour notre maîtrise des masques de sous-réseau. Il n’est pas nécessaire de réserver un octet au complet pour décrire l’étendue d’un réseau IP. Les masques de sous-réseau sont souvent écrits par notation CIDR (Classless Inter-Domain Routing). Cette notation décrit le nombre de bits réservés à la partie réseau de l’adresse.

À titre d’exemple, prenons 255.255.255.0.

255.255.255.0 : 11111111.11111111.11111111.00000000

Dans ce masque, 24 bits sont réservés à la portion réseau de l’adresse et peut donc être notée par /24. 192.168.0.0/24 représenterait donc le réseau 192.168.0.0 portant le masque de sous-réseau 255.255.255.0 et donc les adresses IP de 192.168.0.0 jusqu'à 192.168.0.255.

Doublons maintenant le nombre d’adresses disponibles dans notre sous-réseau. En libérant un bit supplémentaire pour les adresses d’hôte, nous pouvons doubler l’étendue de notre réseau IP.

255.255.254.0 : 11111111.11111111.11111110.00000000

Prenons encore 192.168.0.0 à titre d’exemple mais cette fois-ci avec /23 comme masque. Le réseau engloberait donc maintenant les adresses de 192.168.0.0 jusqu’à 192.168.1.255 puisque le 24e bit peut être soit 0 ou 1 et quand même être représenté par ce groupe.

Faisons maintenant l’inverse et divisons un réseau /24 en deux.

255.255.255.128 : 11111111.11111111.11111111.10000000

Si nous utilisons encore 129.168.0.0 avec un masque /25, le réseau engloberait maintenant seulement les adresses IP de 192.168.0.0 à 192.168.0.127 puisque dorénavant, le 25e bit doit correspondre à celui de l'adresse réseau.

Un masque de sous-réseau /0 ne réserverait aucun bit à la portion réseau et engloberait donc toutes les adresses IPv4 existantes.

Une table VLSM est un outil indispensable permettant d’identifier les réseaux IP valides en fonction de leurs masques de sous réseau. Elles représentent généralement les masques de sous-réseau de /24 à /30 mais peuvent être transposées d'octet en octet pour représenter les réseaux de /16 à /22, de /8 à /14 ou encore de /0 à /6.

Table VLSM

Voici aussi un outil excel permettant de visualiser et convertir les valeurs binaires et décimales liées à l'adressage IPv4

Visualisation IP