Objectifs de certification

CCNA 200-301

  • 1.6 Configurer et vérifier l’adressage et le sous-réseautage (subnetting) IPv4

  • 1.8 Configurer et vérifier l’adressage et les préfixes IPv6


Mathématiques des réseaux

1. Introduction

Les conversions de valeurs en binaire, en décimal et en hexadécimal sont des fondamentaux utiles pour la manipulation des identifiants réseaux tels que des adresses IP ou des adresses MAC. Aussi, le trafic est codé sur le support en binaire mais les décodeurs et analyseurs de paquets offrent une vue du trafic en hexadécimal. Il s’agit ici de se familiariser avec ces méthodes de représentation.

1.1. Objectifs

  • Conversions et manipulations binaires, décimales et hexadécimales.
  • La manipulation des adresses MAC-48 MAC-EUI64.
  • IPv4 et IPv6 demandent que l’on s’intéresse aux différents systèmes de numération impliqués :
    • binaire,
    • décimal,
    • hexadécimal, voire octal.

1.2. Systèmes de numération

Pour coder des adresses, on peut utiliser plusieurs modes de numérations :

  • en base 10 (décimal) : un symbole à dix valeurs, notre habitude ;
  • en base 2 (binaire) : un symbole à deux valeurs, facile mais fastidieux ;
  • en base 16 (hexadécimal) : un symbole à seize valeurs, efficace compte tenu des besoins actuels.

1.3. Représentation

  • En décimal, on utilise 0 à 9 (10 valeurs).
  • En binaire, on utilise soit 0, soit 1 (deux valeurs).
  • En hexadécimal, 0x0 à 0x9, 0xA, 0xB, 0xC, 0xD, 0xE et 0xF (16 valeurs).

La simplification de la représentation des valeurs est intéressante ; par exemple : 63789 en décimal est représenté par 1111 1001 0010 1101 en binaire et par 0xF92D en hexadécimal.

1.4. Unités de mesure

Les ordinateurs ou les processeurs modernes utilisent généralement des blocs de données de 8, 16, 32 ou 64 bits bien que d’autres tailles soient aussi possibles. La nomenclature actuelle est comme suit :

  • donnée de 8 bits : “octet”, “byte” ;
  • donnée de 16 bits : “word” ou “mot” ;
  • donnée de 32 bits : “dword” ou “double mot” ;
  • donnée de 64 bits : “qword” ou “quadruple mot”.

1.5. Codage des adresses réseau

Adresses MAC : 48 bits représentés en douze hexas organisés en 6 octets ou en 3 mots. Par exemple :

00:d1:81:41:d2:00

Adresse IPv4 et son masque : 32 bits organisés en 4 octets représentés par des décimales séparées par des points. Par exemple :

192.168.3.1

Adresses IPv6 : 128 bits organisés en 8 mots de 16 bits représentés en hexas séparés par des deux-points. Par exemple :

fe80::2d1:81ff:fe41:d200

2. Adresse IPv4

2.1. codage et étendue

Une adresse IPv4 connaît \(2^{32}\) possibilités soit en décimal 4 294 967 296 possibilités.

Une adresse IPv4 est codée en quatre octets représentés en notation décimale (pointée), les valeurs de chaque octet pouvant varier entre 0 et 255 et sont séparées par un point ..

[0-255].[0-255].[0-255].[0-255]

En ce qui concerne nos besoins dans la compréhension des réseaux, si on se contente des valeurs à la limite des octets, il n’est pas nécessaire d’être capable de convertir du décimal vers le binaire, mais comme ce ne sera pas toujours le cas …

2.2. Conversion décimale/binaire

Pour réaliser une conversion décimale vers binaire, on crée un tableau de huit valeurs à la puissance deux.

Par exemple pour convertir 125 en un octet en binaire :

Combien de fois 128 dans 125 ?

  • → 0 fois

Combien de fois 64 dans 125 ?

  • → 1 fois, reste 125-64=61

Combien de fois 32 dans 61 ?

  • → 1 fois, reste 61-32=29 Combien de fois 16 dans 29 ?

  • → 1 fois, reste 29-16=13

Combien de fois 8 dans 13?

  • → 1 fois, reste 13-8=5

Combien de fois 4 dans 5 ?

  • → 1 fois, reste 5-4=1

Combien de fois 2 dans 1 ?

  • → 0 fois,

Combien de fois 1 dans 1 ?

  • → 1 fois, reste 1-1=0
.\(2^7 = 128\)\(2^6 = 64\)\(2^5 = 32\)\(2^4 = 16\)\(2^3 = 8\)\(2^2 = 4\)\(2^1 = 2\)\(2^0 = 1\)
12501111101

2.3. Conversion binaire vers décimal

L’octet codé 01111101 est porté dans un tableau de puissance de 2

.\(2^7 = 128\)\(2^6 = 64\)\(2^5 = 32\)\(2^4 = 16\)\(2^3 = 8\)\(2^2 = 4\)\(2^1 = 2\)\(2^0 = 1\)
12501111101

On additionne 64+32+16+8+4+1 = 125

2.4. Valeurs possibles d’un octet dans un masque

On trouvera ici les valeurs possibles de un octet dans un masque d’adresse IPv4.

Valeur décimaleValeur binaireBits à 1Bits à 0
00000000008
1281000000017
1921100000026
2241110000035
2401111000044
2481111100053
2521111110062
2541111111071
2551111111180

2.5. Opération binaire ET

Pour le protocole IPv4 il est utile de calculer rapidement le résultat de l’opération binaire ET :

    1 1 0 0
ET  1 0 1 0
    -------
    1 0 0 0

2.6. Exemple d’opérations binaires ET

Par exemple, 125 ET 252 en binaire :

OpérationDécimaleBinaire
-12501111101
ET  
-25211111100
donne  
-12401111100

2.7. Multiple

Un multiple de n est le produit de n par un nombre entier. En bref, c’est le résultat d’une multiplication de n.

Quel est multiple de 8 inférieur ou égal à 90 ? c’est 88.

2.8. Logarithme binaire (en base 2)

En mathématiques, le logarithme binaire (\(log_2 n\)) est le logarithme de base 2. C’est la fonction réciproque de la fonction puissance de deux : \(x \mapsto 2^x\) 1.

Quel est le logarithme binaire de 64 ? C’est 6 car \(2^6\) est égal à 64.

Quel est le logarithme binaire de 8 ? C’est 3 car \(2^3\) est égal à 8.

2.9. Conversion d’un masque de réseau

Pour convertir un masque de réseau IPv4 d’une notation décimale pointée vers une notation CIDR.

La notation décimale pointée exprime le masque de réseau en 8 bits décimaux séparés par des points.

La notation CIDR indique le nombre de bits à 1 dans le masque.

Si nous savons qu’un masque de réseau est nécessairement une suite de bits à 1 et puis seulement de zéro.

Si nous savons que huit bits à un correspondent à la valeur décimale 255 et si nous savons que huit bits à zéro correspondent à la valeur décimale 0.

Alors, il nous suffit de retenir le tableau des suites de bits à un et puis à zéro sur un seul octet (huit bits) pour maîtriser les valeurs d’un masque de réseau :

BitsBinaireDécimal
0000000000
110000000128
211000000192
311100000224
411110000240
511111000248
611111100252
711111110254
811111111255

3. Adresses MAC IEEE 802

3.1. Adresses MAC-48 IEEE 802

Il n’y a pas de calcul sur les adresses MAC IEEE 802.3 à maîtriser.

Les adresses MAC sont constituées de douze chiffres représentés en hexadécimal (12 x 4 bits = 48 bits), souvent groupées en octets (deux hexas) :

00:d1:81:41:d2:00

Où les 24 premiers bits identifient le constructeur de la carte (Organizationally Unique Identifier - OUI) et où les 24 derniers bits sont les laissé à la discrétion des fabricants de cartes réseau (NIC, Network Interface Card).

3.2. Adresses MAC EUI 64

On étend une adresse MAC-48 00:d1:81:41:d2:00 en MAC-EUI64 :

1) en découpant l’adresse MAC en deux parties égales de 24 bits en son milieu :

00:d1:81:--:--:41:d2:00

2) en y insérant 16 bits ff:fe :

00:d1:81:ff:fe:41:d2:00

3) Il est nécessaire d’inverser le bit “Universal/Local” (“U/L bit”) à la septième position du premier octet. Le bit “u” bit est fixé à 1 (Universal) et il est fixé à zéro (0) pour indiquer une portée locale.

02:d1:81:ff:fe:41:d2:00

La représentation donne ceci en trois groupes de 16 bits :

02d1:81ff:fe41:d200

4. Adresses IPv6

4.1. Blocs IPv6 /64

Les adresses IPv6 sont constituées de mots de 16 bits notés en hexadécimal.

Par exemple :

fd00:2001:0db8:0002:02d1:81ff:fe41:d200/64
---- ---- ---- ---- ---- ---- ---- ---- --
16b. 16b. 16b. 16b. 16b. 16b. 16b. 16b. masque

Les 64 premiers bits déterminent le préfixe IPv6, soit :

fd00:2001:0db8:0002::/64

Les 64 derniers bits déterminent l’identifiant d’interface, soit :

02d1:81ff:fe41:d200

4.2. Blocs IPv6 /48

Dans les découpages de blocs d’entreprise on trouvera un /48. Par exemple :

fd00:2001:0db8::/48

Il reste donc 16 bits pour créer \(2^{16}\) (65 536) sous-réseaux /64 :

  • fd00:2001:0db8:0000::/64, fd00:2001:0db8:0001::/64
  • fd00:2001:0db8:0002::/64, fd00:2001:0db8:0003::/64, …
  • fd00:2001:0db8:00fe::/64, fd00:2001:0db8:00ff::/64
  • fd00:2001:0db8:0010::/64, fd00:2001:0db8:0011::/64, …
  • fd00:2001:0db8:fffc::/64, fd00:2001:0db8:fffd::/64
  • fd00:2001:0db8:fffe::/64, fd00:2001:0db8:ffff::/64

4.3. Conversion binaire / hexadécimal / decimal

HexadécimalBinaireDécimal
0x000000
0x100011
0x200102
0x300113
0x401004
0x501015
0x601106
0x701117
0x810008
0x910019
0xA101010
0xB101111
0xC110012
0xD110113
0xE111014
0xF111115

5. Éléments clés à retenir

  • Il est utile de savoir convertir 8 bits en décimal, binaire et hexadécimal.
  • Il est utile de connaître les valeurs sur un octet d’une suite de bits à 1 et puis de bits à 0.
  • On manipule utilement des blocs de 128, 64, 48, 24 et 16 bits en hexadécimal.