• 30 heures
  • Facile

Mis à jour le 24/04/2020

Et IPv6 dans tout ça ?

Connectez-vous ou inscrivez-vous gratuitement pour bénéficier de toutes les fonctionnalités de ce cours !

Vous en avez bavé avec les adresses privées, le subnetting, les VLSM, ... ? Rassurez-vous, tout cela n'existera plus d'ici quelque temps ! :-°

QUOI ? On s'est pris la tête pour rien ?

En fait, non. Tout au long de cette partie, nous avons travaillé sur IPv4. Cela fait des années qu'on entend dire que ça va disparaitre au profit d'IPv6. Cela fait des années que tout le monde utilise encore IPv4. Pas de panique, donc. :D

Toutefois, il est inévitable qu'un jour, on délaisse IPv4 au profit d'IPv6. En pratique, cela ne devrait pas changer grand-chose pour les particuliers. Ce qui choquera le plus, ce sera de voir que nos sempiternels 192.168.1.1/24 seront remplacés par de monstrueux FE80::68AF:ADFF:3E80:B69D%11 (au hasard). C'est pourquoi dans ce chapitre, nous allons découvrir les adresses IPv6 qui, malgré leur apparence, ne sont pas plus compliquées que les adresses IPv4.

Un format particulier

Commençons par une bonne nouvelle : vous avez probablement déjà une adresse IPv6.

Ah bon ? o_O

Eh oui ! Tapez la commande ipconfig (Windows) ou ifconfig (Linux / Mac OS) dans une console. Dans les informations de votre carte réseau, vous devriez trouver quelque chose qui ressemble à ça :

Adresse IPv6 de liaison locale. . . . .: fe80::8c79:7ab:73ea:9943%11

Ou encore :

inet6addr: fe80::8c79:7ab:73ea:9943/64 Scope: link

Il se peut même que vous en ayez plusieurs, nous allons y revenir.

Bouh, je n'ai pas d'adresse IPv6, que vais-je faire ? :'(

Installer le support d'IPv6 serait une bonne idée ! Certains systèmes d'exploitation anciens ne supportent pas nativement IPv6, il faut l'installer manuellement. Demandez à Google comment faire, on ne peut pas donner la procédure pour chaque système. Pour Windows XP SP3, il suffit de taper la commande ipv6 install et, après redémarrage... Magie ! :magicien:

Ça y est ? Vous avez une adresse IPv6 ? Maintenant, nous allons apprendre à la lire !

Un point sur l'hexadécimal

Contrairement aux adresses IPv4, les adresses IPv6 s'écrivent en hexadécimal et non en décimal. Comme son nom l'indique, il s'agit de la base 16 (hexa : six, décimal : dix). Si vous connaissez déjà cette base mathématique, vous pouvez passer directement au titre suivant (« Lire une adresse IPv6 »).

Vous avez réussi à appréhender le binaire pour calculer les masques en IPv4 ? Nous allons donc partir du binaire pour expliquer l'hexadécimal.

En binaire, il y a 2 chiffres : le 0 et le 1. Pour représenter un nombre plus grand que 1, on rajoute un ou plusieurs chiffres. En décimal, c'est pareil : on écrit plusieurs chiffres pour représenter un nombre plus grand que 9. En hexadécimal, c'est pareil, mais on a 16 chiffres. Pour représenter un nombre plus grand que 15, on utilisera plus de chiffres.
Voici la correspondance entre nombres binaires, décimaux et hexadécimaux :

Décimal

Binaire

Hexadécimal

0

0

0

1

1

1

2

10

2

...

...

...

9

1001

9

10

1010

A

11

1011

B

12

1100

C

13

1101

D

14

1110

E

15

1111

F

16

10000

10

...

...

...

Les chiffres hexadécimaux vont donc de 0 à F : 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F. Nous ne nous intéresserons pas à la conversion hexadécimal - décimal, cela ne nous sera pas utile pour ce chapitre (mais rien ne vous empêche de chercher par vous-mêmes). Seule la conversion hexadécimal - binaire (et inversement) nous sera utile. Et c'est tout simple ! :)

Un chiffre hexadécimal se représente par 4 chiffres binaires. Complétons le tableau précédent en écrivant les zéros inutiles pour les nombres binaires.

Hexadécimal

Binaire

0

0000

1

0001

2

0010

3

0011

4

0100

5

0101

6

0110

7

0111

8

1000

9

1001

A

1010

B

1011

C

1100

D

1101

E

1110

F

1111

Maintenant, pour convertir un nombre hexadécimal en binaire ou inversement, il vous suffira de vous reporter à ce tableau ! À vrai dire, on le retient par cœur assez rapidement, avec un peu d'entrainement.

Dans ce chapitre, nous allons souvent utiliser le nombre FE80(16). Qu'est-ce que ça donne en binaire ?
Il suffit de lire le tableau et de remplacer chaque chiffre hexadécimal par sa valeur décimale !
FE80(16) = 1111 1110 1000 0000(2)
On sépare généralement les blocs de 4 chiffres binaires pour y voir plus clair.

Vous avez compris ? Ça va venir tout seul avec la pratique !

Lire une adresse IPv6

Cela vous a sans doute frappé, nous avons affaire à quelque chose de difficilement lisible. En IPv4, il y a 4 nombres décimaux inférieurs à 255 séparés par des points. Une adresse prend donc 4 octets (32 bits). En IPv6, il y a 8 nombres hexadécimaux inférieurs à FFFF séparés par le symbole « : », cela prend 16 octets (128 bits).

8 nombres ? Dans l'exemple donné, je n'en compte que 5 !

Si déjà, vous n'en comptez que 5 et pas 6, c'est que vous avez deviné que les %11 et /64 étaient des masques de sous-réseau. Bravo !
Effectivement, on ne lit que 5 nombres. Si vous êtes attentifs, vous remarquerez qu'après fe80, il y a deux fois le symbole « : ». Retenez cette explication, c'est fondamental :
Dans une adresse IPv6, « :: » signifie « remplir avec autant de zéros qu'il faut pour avoir 128 bits ».

Reprenons l'adresse précédente et comptons le nombre de bits de chaque bloc.

FE80

::

8C79

7AB ( = 07AB)

73EA

9943

16 bits

?

16 bits

16 bits

16 bits

16 bits

L'ordinateur calcule tout seul le nombre de bits que représente le « :: ». Ici, il représente 128 - (16 + 16 + 16 + 16 + 16) = 48 bits. L'adresse fe80::8c79:7ab:73ea:9943 peut donc aussi s'écrire fe80:0:0:0:8c79:7ab:73ea:9943.

Vous remarquerez d'en hexadécimal comme en décimal, on n'écrit pas les zéros inutiles. On pourrait écrire l'adresse précédente sous la forme fe80:0000:0000:0000:8c79:07ab:73ea:9943, mais quel intérêt ? Ce serait comme écrire 010.000.050.188 au lieu de 10.0.50.188. Chaque bloc occupe toujours 16 bits, que l'on écrive les zéros inutiles ou pas. Regardez cet autre exemple : l'adresse FE80::1234:1.

FE80

::

1234

1

16 bits

80 bits

16 bits

16 bits

Le 1 à la fin occupe 16 bits. Ce nombre seul pourrait s'écrire avec un seul chiffre binaire, mais dans une adresse IPv6, il constitue un bloc de 16 bits à lui tout seul, au même titre que FE80 et 1234.

Voilà, vous savez lire une adresse IPv6 ! C'était pas si difficile que ça, si ? :) Une dernière chose : pour noter un masque de sous-réseau, on peut utiliser le slash (/) ou le pourcentage (%).

Vous avez peut-être noté que nous avons dit en début de chapitre que vous avez peut-être plusieurs adresses IPv6. Effectivement, une carte réseau peut avoir plusieurs adresses IPv6 simultanément. Chacune d'entre elles correspond à un usage précis. C'est l'objet du reste de ce chapitre.

L'adresse privée de sortie

Quelque chose a peut-être attiré votre attention tout à l'heure lorsque nous avons cherché si nous avions déjà une adresse IPv6 : l'expression "adresse de liaison locale". Ce genre d'adresse commence forcément par FE80::/10. Qu'est-ce que cela signifie ?

FE80(16) = 1111 1110 1000 0000(2)

Cela signifie que les 10 premiers bits d'une adresse de lien local valent obligatoirement 1111111010.
Voici donc quelques exemples d'adresses de lien local :

  • FE80::1 (1111 1110 1000 0000 [111 zéros] 1)

  • FE85::2:1:dada (1111 1110 1000 0101 [78 zéros] 10 0000 0000 0000 0001 1101 1010 1101 1010)

  • FE93::3 (1111 1110 1001 0011 [110 zéros] 11)

Par contre, ces exemples ci-dessous ne peuvent pas être des adresses de lien local :

  • FEC0::1 (1111 1110 1100 0000 [111 zéros] 1)

  • FF00::1 (1111 1111 0000 0000 [111 zéros] 1)

  • ABCD::EFAC (1010 1011 1100 1101 [96 zéros] 1110 1111 1010 1100)

La particularité de cette adresse est qu'elle ne peut être utilisée que pour contacter un hôte directement connecté. Les exemples suivants ont été réalisés avec le logiciel Packet Tracer.

Image utilisateur

2 ordinateurs sont connectés directement.
Depuis l'ordinateur 1 (FE80::1), on pingue le 2 (FE80::2). Résultat :

PC>ping fe80::2

Pinging fe80::2 with 32 bytes of data:

Reply from FE80::2: bytes=32 time=11ms TTL=128

Aucun souci. Maintenant, on relie les 2 ordinateurs au routeur, comme ceci :

Image utilisateur

2 ordinateurs reliés par un routeur.
Sachez que l'interface du routeur reliée au PC 1 a pour adresse FE80::3 et l'autre FE80::4.
On relance la même commande :

PC>ping fe80::2

Pinging fe80::2 with 32 bytes of data:

Request timed out.

Il n'y a pas d'histoire de masque de sous-réseau, la preuve :

PC>ping fe80::4

Pinging fe80::4 with 32 bytes of data:

Request timed out.

[...]

PC>ping fe80::3

Pinging fe80::3 with 32 bytes of data:

Reply from FE80::3: bytes=32 time=5ms TTL=255

Avec des adresses de lien local, on ne peut donc vraiment que contacter un hôte auquel on est directement connecté !

Les adresses des exemples ci-dessus ont été attribuées manuellement (pour qu'elles soient courtes et donc plus faciles à taper). :-° Mais sur votre machine, vous n'avez pas choisi votre adresse IPv6 : elle a été attribuée automatiquement !
Pour obtenir une adresse IPv6, il y a plusieurs manières. Soit il y a un serveur DHCPv6 qui distribue des adresses à tour de bras sur le réseau et on prend ce qu'il donne. Soit il n'y en a pas et votre ordinateur la génère lui-même.

Pour générer une adresse IPv6, certains systèmes comme Windows 7 tirent des nombres au hasard et paf ! Ça fait des chocapics une adresse. D'autres, comme Windows XP, se basent sur l'adresse MAC de la carte réseau : ils changent d'état le 7ème bit, insèrent FFFE en plein milieu et collent le tout après FE80::.

On ne peut donc pas communiquer avec des hôtes éloignés en utilisant les adresses de lien local. Qu'à cela ne tienne ! Pour aller sur Internet, nous utiliserons des adresses globales.

Les adresses qui voyagent

Les adresses IPv6 utilisées sur Internet sont très structurées et hiérarchisées. Regardez le tableau ci-dessous :

IANA

RIR

LIR

Client

Sous-réseau

Hôte

3 bits

20 bits

9 bits

16 bits

16 bits

64 bits

L'IANA est l'organisme qui gère les adresses IP sur Internet. Il a décidé que les adresses IPv6 utilisables sur Internet commenceraient par 2000::/3, puis il donne au RIR des valeurs sur 20 bits pour différentes zones géographiques. Chaque RIR donne ensuite aux LIR des valeurs pour chacun d'entre eux, qui eux-mêmes vont distribuer des valeurs aux clients, qui vont... etc.

IANA ? RIR ? LIR ? Euh... ? o_O

L'IANA, c'est le chef. Il existe différents RIR pour différentes zones géographiques : l'ARIN pour l'Amérique du Nord, l'AfriNIC pour l'Afrique, l'APNIC pour l'extrême-orient et l'Océanie, etc. Le chef a dit : tel RIR prendra telle valeur pour son champ. Ainsi, toutes les adresses IPv6 japonaises commencent par 2001:0200::/23, car l'APNIC (qui couvre le Japon) a obtenu la valeur 00000000000010000001(2).

Les LIR, ce sont les fournisseurs d'accès à Internet et les très grosses entreprises. Par exemple, OVH détient tout le bloc 2001:41d0::/32 (si on fait le calcul, il a obtenu la valeur 111010000(2)). SFR détient le bloc 2001:4c18::/32. Ces informations peuvent être consultées sur cette page.

Ensuite, chacune de ces entreprises dispose en théorie de 65536 adresses pour ses clients. En réalité, elle peut empiéter sur le champ "sous-réseau" pour étendre ce nombre et laisser les clients faire des sous-réseaux en empruntant des bits du champ "hôte" (il y a de quoi faire !).

FE80::/10, 2000::/3... Cela fait quand même un paquet d'adresses inutilisées ! Que deviennent les autres ? Bonne question... De grands blocs sont réservés pour des usages privés. D'autres sont réservés pour des usages spécifiques. C'est ce que nous allons voir maintenant !

Les adresses particulières

En dehors des adresses de lien local et globales, il existe aussi quelques adresses particulières à connaitre.

Les adresses courtes

Celles-là sont appréciées pour leur facilité d'écriture. :-° On trouve 2 adresses particulièrement courtes :

  • ::1 : c'est l'adresse de la boucle locale (loopback). C'est l'équivalent de 127.0.0.1 en IPv4.

  • :: (ou ::0) : c'est l'adresse que prend votre carte réseau avant de s'attribuer une adresse. Quand votre machine envoie une demande d'adresse au démarrage, elle le fait sous l'adresse ::. Nous aurons l'occasion d'y revenir quand nous parlerons de la couche réseau du modèle OSI.

Les adresses de site local

Ces adresses sont attribuées au sein d'un site mais ne sont pas accessibles depuis le réseau public (comme les adresses privées en IPv4). Elles commencent par FEC0::/10 et sont structurées de la manière suivante :

10 bits

54 bits

64 bits

1111 1110 11

identifiant du sous-réseau

identifiant de l'hôte

Ces adresses peuvent être routées (elles peuvent passer des routeurs) dans le site local, mais pas au délà.

Les adresses multicast

Elles commencent par FF00::/8 et servent à désigner et gérer des groupes d'hôtes. Le multicast n'est pas l'objet de ce chapitre, il y a tellement de choses à dire à ce sujet que nous y reviendrons ultérieurement. Sachez juste, pour le moment, qu'une adresse IPv6 qui commence par FF ne désigne pas un hôte.

Les adresses d'encapsulation 4/6

IPv6 est compatible avec IPv4. On peut s'adresser à une adresse IPv4 même si on a juste une adresse IPv6. Comment faire alors pour désigner une adresse IPv4 en IPv6 ? En la représentant de cette manière :

10 octets

2 octets

4 octets

Que des zéros

FFFF(16)

L'adresse IPv4

Voici quelques exemples :

Adresse IPv4

Adresse IPv6 d'encapsulation

42.13.37.42

::FFFF:42.13.37.42

192.168.2.1

::FFFF:192.168.2.1

La notation peut surprendre au premier abord. Pourtant, elle est courante et est plus facile à comprendre que si on l'écrivait entièrement en hexadécimal. D'ailleurs, vous risquez d'avoir une question vicieuse à ce sujet ! :diable:

Vous savez maintenant différencier les différentes adresses IPv6 !

Voilà pour ce tour d'horizon des adresses IPv6. Nous n'avons parlé que du format des adresses mais pas de ses avantages : nous verrons cela quand nous traiterons la couche 3 du modèle OSI. Mais avant, il y a la couche 4 !

Maintenant que vous avez les connaissances nécessaires pour comprendre ce qui va suivre, plus rien ne vous empêche de foncer ! Néanmoins, comme vous avez pu le constater, les chapitres deviennent de plus en plus consistants. Aussi, il vaut mieux que vous alliez doucement et que vous preniez le temps de bien tout assimiler, sinon, vous risquez de vous perdre !

Exemple de certificat de réussite
Exemple de certificat de réussite