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
, soit1
(deux valeurs). - En hexadécimal,
0x0
à0x9
,0xA
,0xB
,0xC
,0xD
,0xE
et0xF
(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\) |
---|---|---|---|---|---|---|---|---|
125 | 0 | 1 | 1 | 1 | 1 | 1 | 0 | 1 |
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\) |
---|---|---|---|---|---|---|---|---|
125 | 0 | 1 | 1 | 1 | 1 | 1 | 0 | 1 |
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écimale | Valeur binaire | Bits à 1 | Bits à 0 |
---|---|---|---|
0 | 00000000 | 0 | 8 |
128 | 10000000 | 1 | 7 |
192 | 11000000 | 2 | 6 |
224 | 11100000 | 3 | 5 |
240 | 11110000 | 4 | 4 |
248 | 11111000 | 5 | 3 |
252 | 11111100 | 6 | 2 |
254 | 11111110 | 7 | 1 |
255 | 11111111 | 8 | 0 |
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ération | Décimale | Binaire |
---|---|---|
- | 125 | 01111101 |
ET | ||
- | 252 | 11111100 |
donne | ||
- | 124 | 01111100 |
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 :
Bits | Binaire | Décimal |
---|---|---|
0 | 00000000 | 0 |
1 | 10000000 | 128 |
2 | 11000000 | 192 |
3 | 11100000 | 224 |
4 | 11110000 | 240 |
5 | 11111000 | 248 |
6 | 11111100 | 252 |
7 | 11111110 | 254 |
8 | 11111111 | 255 |
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écimal | Binaire | Décimal |
---|---|---|
0x0 | 0000 | 0 |
0x1 | 0001 | 1 |
0x2 | 0010 | 2 |
0x3 | 0011 | 3 |
0x4 | 0100 | 4 |
0x5 | 0101 | 5 |
0x6 | 0110 | 6 |
0x7 | 0111 | 7 |
0x8 | 1000 | 8 |
0x9 | 1001 | 9 |
0xA | 1010 | 10 |
0xB | 1011 | 11 |
0xC | 1100 | 12 |
0xD | 1101 | 13 |
0xE | 1110 | 14 |
0xF | 1111 | 15 |
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.