Cours issu de : http://www.grm94.polymtl.ca/~lepage/IPv6/avril97/#caracteristique
De façon simple, IP est le protocole de communication entre les ordinateurs connectés sur l'Internet. Cela consiste à donner une adresse (IP) à chacune des machines s'y rattachant et ce de façon hiérarchique.
Tout comme les adresses de maison qui contiennent une valeur numérique, un nom de rue, une ville, une province, un pays, les adresses IP se divisent en réseau, sous réseau. Tout comme on affecte la maison avec le nom de son propriétaire, on nomme les interfaces avec des adresses IP, des noms et les catégorisent en pays ou regroupement.
ou type de réseau
Les adresses IPv4 sont sur 4 octets, soit 32 bits groupés par paquets de 8 bits. Les adresses se présentent sous la forme 255.255.255.255 et les valeurs par groupement peuvent varier de 1 à 255 sauf le dernier octet qui varie de 1 à 254.
Théoriquement le nombre d'adresses possibles est de 232 mais il faut tenir compte des adresses réservées de broadcast (xxx.xxx.xxx.255), local loopback (127.0.0.1) et certains cas particuliers... Les adresses IPv4 sont aussi classées par catégorie A, B et C selon la valeur du premier octet.
Les 2 premiers octets limitent le réseau. Les classes A et B ont été distribuées trop rapidement ou librement. Il devenait de plus en plus difficile d'obtenir une classe. L'expansion informatique des entreprises sur l'Internet, les poussait alors à demander une autre classe.
Par exemple, si une entreprise obtenait une classe A, elle avait le contrôle sur 224 adresses, plus de 16 millions. Pour une classe B c'est 216 adresses possibles, plus de 65 000. Ensuite la classe C, les 3 premiers octets imposés, une possibilité de 254 adresses IP.
Il est clair que ce système entraîne un gâchis énorme d'adresses, surtout avec la classe A puisqu'une entreprise avec plus de 16 millions de terminaux est assez rare !
Seulement 128 classes A, ensuite 214 classes B et 222 classes C, pour toute notre petite planète, et voilà il faut inventer IPv6.
Voici l'entête du paquet IPv4. (20 Octets)
Ensuite la trame continue avec les données encapsulées selon le protocole de transport utilisé TCP, UDP, ICMP, SMB,...
La nécessité d'un nouveau IP (IPv6)
Pourquoi v6 et pas v5 ? C'est que v5 existe aussi mais comme protocole expérimental le ST-II.
L'explosion de l'Internet, dont la taille double tous les 12 mois, a deux conséquences :
D'autres raisons pour IPv6 :
Les objectifs de IPv6
Deux types d'objectifs ont été fixés à cette nouvelle version :
Les caractéristiques de IPv6
Adressage
IPv6 a un adressage étendu et porte les limites de 32 bits à 128 bits, 16 octets, 4 fois plus long que IPv4.
Le nombre d'adresse possible est de 2128 ou 1040 quelque chose comme : 340 282 366 920 938 463 463 374 607 431 768 211 456 machines possibles.
En estimant la surface de la Terre à 511 263 971 197 990 mètres carrés, il est possible déterminer que le nombre d'adresses au mètre carré sur toute la surface de la Terre est de 1025 au mètre carré soit 665 570 793 348 866 943 898 599. Et environs 150 millions d'adresses par personne sur la planète.
15 % des adresses sont déjà prédéterminées. Dans celle-ci sont incluses les adresses avec un préfixe pour les adresses de type IPv4, IPX, ISO-NSAP, Multicast, Unicast et les adresses local. Le reste (85 %) est réservé pour usage futur et non déterminer.
Les adresses sont représentées en hexadécimal en bloc de 16 bits. Lorsqu'une série de 0 se suit, elles sont automatiquement enlever pour une meilleure compression. Par exemple l'adresse loopback FE00:0:0:0:0:0:0:1 deviendra FE00::1.
La façon de déterminer les adresses IPv6 qui ont la compatibilité IPv4 est ::192.9.5.7 et cette adresse sur le 6bone est 5f00:bd00:c009:500:0:800:2072:6fe5 !
Trame
L'entête du nouveau protocole n'est que 2 fois plus grande que celle de la version précédente. Ce qui est étonnant puisque les adresses sont 4 fois plus longues ! C'est à cause que plusieurs champs ont été enlevés puisqu'ils n'étaient pas utilisés dans IPv4. Sans ces champs le traitement de la trame sera accéléré dans le mode datagram (UDP).
Une autre chose importante au sujet de la trame IPv6, c'est qu'elle est chaînée. Séparée en module avec une entête et chaque module connaît le module suivant. Par exemple, l'entête de IP sait qu'une entête d'authentification suit qui sait que TCP suit...
Voici l'entête du paquet IPv6 (40 Octets)
Version : 4-bits pour la version du protocole = 6.
Priorité : 4-bits pour la priorité.
Flow Label : 24-bits pour la qualité de service.
Payload Length : 16-bits (entier non signé) le nombre d'octets après qui suit.
Next Hdr : 8-bits determine le type de paquet qui suit l'entête IP. Comme dans IPv4.
Hop Limit : 8-bits entier non-signé, réduit de 1 chaque fois que le paquet est relancé. Si 0 le paquet est ignoré.
Source Adresse : 128-bits, l'adresse de l'envoyeur.
Destination Adresse : 128-bits, l'interface de destination. Sauf si l'entête de route optionnelle est présente.
Les extensions de v6 qui suivent l'entête :
Routing: Route étendue (comme IPv4 loose source route).
Fragmentation: Fragmentation et rassemblage des paquets.
Authentification: Intégrité et authentification. Sécurité.
Encapsulation: Confidentialité.
Hop-by-Hop Option : Options spécial requis par chaques aiguilleurs.
Destination Option : Information optionnelle à être analysée par la destination.
Et voici la trame au complet :
Confidentialité & Authentification
Confidentialité, authentification et sécurité trois mots à ne pas confondre. Ils peuvent bien se compléter mais ce sont trois entités différentes. Les services de confidentialité et authentification sont offerts avec IPv6, (TCP ou UDP), tandis que la sécurité est un regroupement de la somme de ces méthodes. Une confusion est due à la traduction des mots et à leurs interprétations.
L'authentification est la première méthode. Faisant partie de "IPng Authentification Header" et associé avec l'adresse source, elle consiste à être certain de la personne avec qui ont établi la communication et assure l'intégrité des données en datagramme. (N'inclus aucune confidentialité.)
La confidentialité fait partie de "IPng Encapsulating Security Header", c'est le moyen pour encrypter les données à transmettre et d'assurer leurs intégrités en datagramme. Dans IPv6 l'algorithme d'encryption est flexible et peut être remplacé. Cependant l'algorithme DES CBC est la norme pour assurer la compatibilité dans l'Internet et au gouvernement américain de voir vos données s'ils en ont envie...
QoS
Une qualité de service est offerte avec IPv6 pour pouvoir supporter les applications multimédia ou en temps réels. Les champs "Flow Label" et "Priority" dans l'entête servirons comme indicateur à l'hôte pour identifier les paquets nécessitant une manutention spéciale des routeurs compatible V6. Les routeurs pourront ainsi procéder à un service en temps réel ou de qualité soutenue.
Le champ de priorité utilisé par l'émetteur pour indiquer l'ordre de traitement des paquets. La valeur de ce champ varie de 0 à 15. 0 à 7 pour la normalité et 8 à 15 pour le temps réel (audio vidéo).
La qualité de service avec réservation de bande passante sur l'internet est toujour en cours de développement et devrais être adopté sous peu comme un RFC.
Multicast/Anycast/Unicast
Ces 3 noms sont mélangeant pour tous. Voici simplement...
Multicast étais déjà utilisé dans IPv4. C'est la classe D de IP. C'est un identificateur pour un groupe d'interfaces. Une interface peut être associée à plusieurs groupes multicast. Il existe des groupes permanents et des groupes temporaires de multicast.
Anycast est un nouveau type d'adressage. Il identifie qu'un nœud, parmi un groupe de nœud, doit recevoir l'information. L'interface de destination doit spécifiquement être configuré pour savoir qu'elle est Anycast. C'est utiliser pour contrôler le ou les chemins à suivre.
Unicast est un genre d'adresse prédéterminé ou pré-typé. La partie haute de l'adresse est fixée tandis que la partie basse peut varier. Ex: Comme les adresses de IPv4 dans IPv6, les adresses IPv4 compatible IPv6, les adresses hiérarchique IPX, les adresses ISO-NSAP, l'adresse local "loopback" et les adresses de lien PPP, les adresses qui proviennent de l'autoconfiguration et d'autres adresses qui pourront être déterminées plus tard.
Autoconfiguration
Il y a trois types de conversion d'adresses, sans serveur, serveur sans état, serveur à état. Le processus d’auto-configuration utilise les 2 premiers états. Le procédé DHCP est utilisé avec le troisième, serveur à état.
La machine hôte envoie une requête sur le médium. Si aucune réponse n'est retournée l'hôte se prépare une adresse locale et fonctionne en mode local. Dans le cas inverse le serveur d'adresse retourne une adresse complète, sa durée de vie et si la durée de vie est conseiller ou obligatoire.
Le serveur tentera de renvoyer la même adresse à chaque hôte, simplement en combinant son adresse Ethernet et en obtenant d'un serveur les 80 bits manquant.
L’auto-configuration est utilisée pour avoir une adresse IPv6. La partie privée de notre adresse est obtenue à l'aide de DHCP, si on utilise un serveur à état et lorsque les adresses ne sont pas déjà déterminé. La partie partagée de notre adresse, le réseau, le sous réseau, peut-être obtenue du serveur qui est sur le routeur. RADVD (Router ADVertisement Daemon) qui recoit une requête de type RS (router sollicitations) et retourne le réponse RA (router advertisement). Cette réponse nous donnes les bits qui compléteront notre adresse IPv6.
Multi-homing
Il y a aussi la possibilité de se déplacer avec notre ordinateur portatif et de resté virtuellement à l'intérieur de notre réseau local. Cette façon de faire sera très utile dans le cas ou notre réseau local est protégé par un "Firewall". Notre système n'acceptera alors que les trames qui auront été vérifiées par notre mur de protection et ce même si on est physiquement à l'intérieur d'une autre compagnie.
Cette technique utilise au moins le "tunelling", l’auto-configuration et l'authentification.
Encapsulation
L'encapsulation de certains protocoles de communication est prévu avec IPv6. Comme IPX, IPv4 et NSAP. Ce sont des types unicast, ils ont donc un préfixe déterminé pour les reconnaître.
Transition vers IPv6
Le premier point dans cette transition est de permettre à IPv4 et IPv6 de fonctionner ensemble et sans problème. Le deuxième est de permettre aux machines et aiguilleurs d'être déployiez de façon incrémentale avec peu de dépendance. Un troisième objectif, c'est d'être facile pour tout le monde à comprendre et à faire.
La transition de IPv4 a IPv6 se fera de façon graduelle et transparente. La venu de IPv6 n'est pas de rendre IPv4 désuète mais de le compléter dans son adressage et ses failles. La décision se tiendra sur le besoin de IPv6 que les nouvelles applications créera.
Prérequis
Le seul vrai prérequis pour le passage à IPv6 est un serveur DNS pour la conversion des noms vers les adresses et vice-versa est nécessaire pour permettre l'envoie de paquets IPv6. C'est la première étape pour commencer la migration graduelle.
Ce nouveau DNS contiendra des entrées de type AAAA au lieu du simple A d'auparavant. Pourquoi 4 A ? Et bien se sont des adresses 4 fois plus longues.
Ensuite un remplacement des "drivers" de chacune des machines pour qu'elles comprennent la méthodologie des nouvelles adresses. Une mise à jour des aiguilleurs, pourra se faire en temps voulu.
Pour utiliser l’auto-configuration on peut avoir besoin de DHCP et RADVD (Router ADVertisement Daemon).
Quand ?
La prévision pour la migration complète devra se faire avant que les adresses soient complètement épuisées. Mais comme je l'ai laisser sous-entendre dans les paragraphes précédents, il n'y aura aucun jour J.