Les jours du protocole IP
dans sa forme actuelle (IPv4) sont
comptés. Le réseau Internet était utilisé largement par les universités, les
industries de pointe, et le gouvernement dès le milieu des années 1990, mais
Internet intéresse de plus en plus les entreprises et les sociétés commerciales
- il sera utilisé par un grand nombre d'individus et de systèmes exprimant les
uns et les autres des besoins différents. Par exemple : avec la convergence
imminente de l'ordinateur, des réseaux, de l'audiovisuel et de l'industrie des
loisirs, chaque poste de télévision deviendra avant longtemps un équipement
d'accès à Internet permettant à des milliards d'individus de pratiquer, par
exemple, la vidéo à la demande, le télé-achat ou le commerce électronique. Dans
ces circonstances, le protocole IPv6 (appelé également IPng pour IP new generation)
doit offrir plus de flexibilité et d'efficacité, résoudre toute une variété de
problèmes nouveaux et ne devrait jamais être en rupture d'adresses.
Les objectifs principaux
de ce nouveau protocole furent de :
Le protocole IPv6
répond raisonnablement aux objectifs édictés. Il maintient les meilleures
fonctions d'IPv4,
en écarte ou minimise les mauvaises, et en ajoute de nouvelles quand elles sont
nécessaires.
En général, IPv6 n'est pas
compatible avec IPv4,
mais est compatible avec tous les autres protocoles Internet, dont TCP, UDP, ICMP, IGMP, OSPF, BGP
et DNS ; quelque fois, de légères modifications sont requises (notamment pour
fonctionner avec de longues adresses).
La nouveauté majeure
d'IPv6 est l'utilisation d'adresses plus longues qu'IPv4.
Elles sont codées sur 16 octets et permettent de résoudre le problème qui mit
IPv6 à l'ordre du jour : procurer un ensemble d'adresses Internet quasi
illimité.
IPv4 permet
d'adresser 2^32=4,29.10^9 adresses tandis que IPv6 permet d'en adresser 2^128=3,4.10^38
adresses.
L'amélioration majeure
d'IPv6 est la simplification de l'en-tête des datagrammes.
L'en-tête du datagramme de base IPv6 ne comprend que
7 champs (contre 14 pour IPv4). Ce
changement permet aux routeurs de traiter les datagrammes
plus rapidement et améliore globalement leur débit.
La troisième amélioration
consiste à offrir plus de souplesse aux options. Ce changement est essentiel
avec le nouvel en-tête, car les champs obligatoires de l'ancienne version sont
maintenant devenus optionnels.
De plus, la façon dont les options sont représentées est différente ; elle
permet aux routeurs d'ignorer plus simplement les
options qui ne leur sont pas destinées. Cette fonction accélère le temps de
traitement des datagrammes.
D'autre part IPv6 apporte
une plus grande sécurité:
L'authentification et la confidentialité constituent les fonctions de sécurité
majeures du protocole IPv6.
Finalement, une plus
grande attention que par le passé a été accordée aux types de services. Bien
que champ Type de services du datagramme IPv4 ne soit que
très rarement utilisé, la croissance attendue du trafic multimédia dans le
futur nécessite de s'y intéresser.
Voici ce à quoi ressemble
un datagramme IPv6:
<---------------------------
32 bits --------------------------->
|
|||
|
|||
|
|||
|
|||
|
Voici la signification des
différents champs:
L'utilisation de préfixes
séparés pour les adresses affectées à un fournisseur et les adresses affectées
à une zone géographique constitue un compromis entre deux différentes visions
du futur réseau Internet. Chacun de ces fournisseurs dispose d'une fraction
réservée de l'espace d'adressage (1/8 de cet espace). Les 5 premiers bits qui
suivent le préfixe 010 sont utilisés pour indiquer dans quel " registre
" se trouve le fournisseur d'accès. Actuellement, trois registres sont
opérationnels, pour l'Amérique du nord, l'Europe et l'Asie. Jusqu'à 29 nouveaux
registres pourront être ajoutés ultérieurement.
Chaque registre est libre
de diviser les 15 octets restants comme il l'entend. Une autre possibilité est
d'utiliser un octet pour indiquer la nationalité du fournisseur et de laisser
toute liberté aux octets suivant pour définir une structure d'adresses
spécifique.
Le modèle géographique est
le même que celui du réseau Internet actuel, dans lequel les fournisseurs
d'accès ne jouent pas un grand rôle. Dans ce cadre, IPv6 peut gérer 2 types
d'adresses.
Les adresses de liens et
de sites locaux n'ont qu'une spécification locale. Elles peuvent être
réutilisées par d'autres organisations sans qu'il y ait de conflit. Elles ne
peuvent pas être propagées hors des limites des organisations, ce qui les rend
bien adaptées à celles qui utilisent des gardes-barrières
pour protéger leur réseau privé du réseau Internet.
|
Adresse broadcast |
Les adresses de diffusion multidestinataire disposent d'un champ Drapeau (4 bits) et
d'un champ Envergure (4 bits) à la suite du préfixe, puis d'un champ
Identificateur de groupe (112 bits). L'un des bits du drapeau distingue les
groupes permanents des groupes transitoires.
Le champ Envergure permet
une diffusion limitée sur une zone
|
Adresse anycast |
En plus de supporter
l'adressage point à point classique (unicast) et
l'adressage de diffusion multidestinataire (multicast) IPv6 supporte un nouveau type d'adressage de
diffusion au premier vu (anycast).
Cette technique est
similaire à la diffusion multidestinataire dans le
sens ou l'adresse de destination est un groupe d'adresses, mais plutôt que
d'essayer de livrer le datagramme à tous les membres
du groupe, il essai de le livrer à un seul membre du groupe, celui le plus
proche ou le plus à même de le recevoir.
Une nouvelle notation a
été définie pour décrire les adresses IPv6 de 16 octets. Elle comprend 8
groupes de 4 chiffres hexadécimaux séparés avec le symbole deux-points. Par
exemple :
8000:0000:0000:0000:0123:4567:89AB:CDEF
Puisque plusieurs adresses
ont de nombreux zéros dans leur libellé, 3 optimisations ont été définies. Tout
d'abord, les 1° zéro d'un groupe peuvent être omis, comme par exemple 0123 qui
peut s'écrire 123. Ensuite, un ou plusieurs groupes de 4 zéros consécutifs
peuvent être remplacés par un double deux-points. C'est ainsi que l'adresse
ci-dessus devient :
8000::::123:4567:89AB:CDEF
Enfin, les adresses IPv4 peuvent
être écrites en utilisant la représentation de l'adresse en notation décimale
pointée précédée d'un double deux-points, comme par exemple :
::192.31.254.46
Il est nécessaire d'être
plus explicite sur cette notation d'adresses, mais il faut savoir qu'il y a un
nombre important d'adresses sur 16 octets. Précisément, il en a 2^128, soit
approximativement 3 x 10^38. Si la Terre entière (terre et eau confondues)
était couverte d'ordinateurs, IPv6 pourrait allouer 7 x 10^23 adresses IP par
m².
Le champ Protocole
est exclu parce que le champ En-tête suivant du dernier en-tête IP d'un datagramme précise le type de protocole (par exemple, UDP ou TCP).
Tous les champs relatifs à
la fragmentation ont été retirés, parce qu'IPv6 a une approche différente de
Pour
Enfin, le champ Total
de contrôle n'existe plus car son calcul est trop réducteur de performance.
En effet, la fiabilité des réseaux actuels, combinée avec le fait que les couches
liaisons de données et transport effectuent leur propre contrôle, le gain en
qualité d'un total d'un contrôle supplémentaire ne vaut pas le prix à payer
pour le calculer.
Cet en-tête fournit une
information complémentaire de façon efficace. Chacun d'eux est optionnel. Si
plus d'un en-tête est présent, ils doivent apparaître immédiatement après
l'en-tête fixe, de préférence dans l'ordre de la liste.
Certains en-têtes ont un
format fixe ; d'autres contiennent un nombre variable de champs variables. Pour
cela, chaque item est codé sous forme d'un triplet (Type, Longueur, Valeur). Le
Type est un champ d'un octet qui précise la nature de l'option. Les différents
types ont été choisis de façon à ce que les 2 premiers bits disent quoi faire
aux routeurs qui ne savent pas exécuter l'option.
Les choix sont :
La Longueur est un
champ d'un octet. Elle indique la taille du champ Valeur (de 0 255) qui
contient une information quelconque adressée au destinataire.
L'en-tête Pas-après-pas contient des informations destinées à
tous les routeurs sur le chemin.
L'en-tête Routage
donne la liste d'un ou de plusieurs routeurs qui doivent être visités sur le
trajet vers
Les 4 premiers champs de
l'en-tête d'extension Routage contiennent 4 entiers d'un octet :
Ce dernier
champ commence à la valeur 0, il est incrémenté à chaque adresse visitée.
L'en-tête Fragmentation
traite de la fragmentation de manière similaire à IPv4. L'en-tête
contient l'identifiant de datagramme, le numéro de
fragment et un bit précisant si d'autres fragments suivent. Dans IPv6,
contrairement à IPv4,
seul l'ordinateur source peut fragmenter le datagramme.
Les routeurs sur le trajet ne le peuvent pas. Cela permet à l'ordinateur source
de fragmenter le datagramme en morceaux et d'utiliser
l'en-tête Fragmentation pour transmettre les morceaux.
L'en-tête Authentification
fournit un mécanisme permettant au destinataire d'un datagramme
de s'assurer de l'identité de la source. Dans IPv4, aucune
garantie semblable n'est offerte.
L'utilisation du
chiffrement des données du datagramme (sa charge
utile) renforce sa sécurité ; seul le vrai destinataire peut les lire.
Quand un émetteur et un
récepteur veulent communiquer en toute sécurité, ils doivent tout d'abord se
mettre d'accord sur une ou plusieurs clés secrètes connues d'eux seuls. Il est
assigné un nombre clé de 32 bits à chacune des 2 clés.
Les nombres clés sont
globaux de façon que, par exemple, si A utilise la clé 4 pour communiquer avec
B, A ne peut pas utiliser cette clé pour communiquer avec C. D'autres
paramètres sont associés à chaque nombre clé, tel que sa durée de vie, etc...
Pour envoyer un message
authentifié, l'ordinateur source construit premièrement un datagramme
contenant tous les en-têtes IP et la charge utile, puis il remplace les champs
qui changent peut par des 0 (par exemple : le champ Nombre max. de sauts).
Le datagramme est complété avec des 0 pour devenir un
multiple de 16 octets. De façon similaire, la clé secrète utilisée est aussi
complétée avec des 0 pour être un multiple de 16 octets. Puis, un total de
contrôle chiffré est calculé après concaténation de la clé secrète complétée,
du datagramme complété et, à nouveau, de la clé
secrète complétée.
L'en-tête Authentification
contient 3 parties. La première compte 4 octets précisant le numéro d'en-tête
suivant, la longueur de l'en-tête d'authentification, et 16 bits à zéro. La
seconde définit le nombre clé sur 32 bits. La troisième contient le total de
contrôle chiffré (avec l'algorithme MD5 ou un autre).
Le destinataire utilise le
nombre clé pour trouver la clé secrète. La valeur complétée de la clé secrète
est ajoutée avant et après la charge utile elle-même complétée, les champs
variables de l'en-tête sont vidés de leurs zéros, puis le total de contrôle
chiffré est calculé. Si le résultat du calcul est égal au total de contrôle
chiffré contenu dans l'en-tête Authentification, le destinataire est sûr que le
datagramme vient bien de la source avec laquelle il
partage la clé secrète. Il est également sûr que le datagramme
n'a pas été falsifié à son insu en arrière plan.
Pour les datagrammes qui doivent être envoyés secrètement, il faut
utiliser l'en-tête d'extension Charge utile chiffrée. Cet en-tête
commence par un nombre clé de 32 bits, suivi par la charge utile chiffrée.
L'en-tête Option de
destination est utilisé pour des champs qui n'ont besoin d'être interprétés
et compris que par l'ordinateur destinataire. Dans la version originale d'IPv6,
la seule option de destination qui a été définie est l'option nulle. Elle
permet de compléter cet en-tête par des 0 pour obtenir un multiple de 8 octets.
Cet en-tête ne sera pas utilisé dans un premier temps. Il a été défini pour
s'assurer que les nouveaux logiciels de routage pourront le prendre en compte,
au cas où quelqu'un envisagerait un jour une option de destination.
Pour plus d'informations
sur le protocole IPv6, le mieux est de se reporter à la RFC 2460 expliquant
de manière détaillée le protocole :