|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Internet - Le protocole IPv6Document écrit par Nico VanHaute Historique du protocole IPLes 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 IPv6Le 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). Les principales fonctions d'IPv6La nouveauté majeure d'IPv6 est l'utilisation d'adresses plus longues qu'IPv4.
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.
D'autre part IPv6 apporte une plus grande sécurité:
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. En-Tête de base des datagrammesVoici ce à quoi ressemble un datagramme IPv6 : <--------------------------- 32 bits --------------------------->
Voici la signification des différents champs :
Découpage géographique grâce aux préfixesL'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 broadcastLes 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 anycastEn 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. La notation IPv6Une 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 la fragmentation.
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. En-tête d'extensionCet 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.
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. En-tête pas après pasL'en-tête Pas-après-pas contient des informations destinées à tous les routeurs sur le chemin. En-tête routageL'en-tête Routage donne la liste d'un ou de plusieurs routeurs qui doivent être visités sur le trajet vers la destination. Deux formes de routage sont mises en oeuvre de façon combinée : le routage strict (la route intégrale est définie) et le routage lâche (seuls les routeurs obligatoires sont définis). Les 4 premiers champs de l'en-tête d'extension Routage contiennent 4 entiers d'un octet :
En-tête fragmentationL'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. AuthentificationL'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. Option de destinationL'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. Plus d'informationsPour 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 : Article écrit par Nico VanHaute. Discussions pertinentes trouvées dans le forum
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||