ipv6
20/01/2018pourquoi ipv6 ?
limites d’ipv4
- pénurie d’adresses
- croissance des tables de routage
- manque de connectivité bout en bout (NAT)
caractéristiques d’ipv6
- IPv6 : 128 bits, 16 octets, 8 groupes de 16 bits, en hexa
- espace d’adressage plus important
- plus de traduction d’adresse (NAT)
- traitement plus efficace, en-têtes simplifiées
simplification
- omettre les 0 en début de segment
- omettre les séquences composées uniquement de 0 (une seul fois)
2001:0db8:0000:23b0:0000:0000:069c:17
=> 2001:db8:0:23b0::69c:17
url
http://[2001:db8:0:23b0::69c:17]:8080/index.html
coexistence ipv4 et ipv6
- Double pile : les périphériques utilisent une pile IPv4 et une pile IPv6
- Tunneling : paquets IPv6 dans paquets IPv4 (encapsulation)
- Traduction : les périphériques IPv6 utilise NAT64 pour communiquer avec périphériques IPv4
en-tête ipv6
- 40 octets
-
deux fois plus qu’en IPv4
Version
: 4 bits, valeur 6 car IPv6Traffic Class
: 8 bits, priorité pour QoSFlow Label
: 20 bits, si même étiquette, alors paquets traités de la même manière par le routeurPayload length
: 16 bits, longueur des données utilesNext Header
: 8 bits, prochain header ou protocole (comme en v4)Hop Limit
: 8 bits, TTLSource Address
: 128 bits, champs protocole en v4Destination Address
: 128 bits, champs protocole en v4
Pas de fragmentation des paquets par les routeurs en IPv6. Ni d’options
types d’en-tête
Le champ Next Header
peut être examiné par chaque intermédiaire durant le routage, ou simplement par le destinataire (c’est une différence par rapport à IPv4).
- Hop-by-Hop Header: traité par chaque routeur
- Destination Options Header: examiné seulement par le destinataire
- Routing Header: routage choisi par la source, liste des routeurs à visiter, @src et @dst changent à chaque passage par un routeur
- Fragment Header: envoi de paquets plus grand que le MTU, en IPv6, fragmentation est réalisée que par la source et non plus les routeurs, traité par destinataire pour défragmentation
- Authentication Header: authentification et intégrité des données (signature)
- Privacy Header: chiffrement du contenu à protéger
Un paquet IPv6 peut contenir une suive d’en-têtes:
IPv6 Header
> Routing Header
> Fragment Header
> TCP Header
fragmentation
La source utilise path MTU discovery pour trouver le bon MTU pour tout le chemin.
De la elle peut créer plusieurs fragments:
IPv6 Header
> Data 1 + Data 2 + Data 3
devient:
IPv6 Header
> Fragment Header
> Data 1
IPv6 Header
> Fragment Header
> Data 2
IPv6 Header
> Fragment Header
> Data 3
qos
La QoS en IPv6 se base sur le Flow Label
:
- permet de classifier des datagrammes appartenant à un même flux
- flux: séquence de datagrammes qui doivent être traités de la même manière
types d’adresses ipv6
@ unicast
- Adresse globale
- portée globale
- unique
- routable
- publique
2000::/3
- Adresse Link-local
- portée locale
- communication dans le sous-réseau uniquement. Toute interface IPv6 doit avoir une adresse Link-local. Adresse automatique si pas de configuration statique, permet communication au sein du sous-réseau sans adresse de mono-diffusion globale.
- non routable
FE80::/10
::1/128
(=127.0.0.1
en IPv4)
@ multicast
ff00::/8
- Multidiffusion attribuée
- groupe de multidiffusion à tous les nœuds
FF02::1
(@diffusion en IPv4), pour message annonce du routeur (ICMPv6) - groupe de multidiffusion à tous les routeurs
FF02::2
permet de contacter un routeur par sollicitation
- groupe de multidiffusion à tous les nœuds
- Multidiffusion de nœud sollicité
- comme @ multidiffusion à tous les nœuds, avantage : est mappée à une adresse de multidiffusion Ethernet MAC spéciale, cela permet à la carte réseau de filtrer la trame en examinant l’adresse MAC de destination sans forcément passer la trame à IPv6
Global routing prefix (/48) | Subnet-id (/16) | Interface id |
Cette structure facilite la migration d’un FAI à un autre : il suffit de changer le préfixe.
Vrai découpage: Registry: /12 ISP prefix: /32 Site prefix: /48 Lan prefix: /64 Interface ID: /128
L’IANA alloue des préfixes IPv6 pour les 5 RIRs, qui les distribes derrière.
Adresses anycast
- choix du destinataire le plus proche parmi un groupe défini par plusieurs interfaces disposant de la mêmeadresse unicast
Configuration des hôtes en IPv6
Le message d’annonce du routeur indique à un hôte comment obtenir son adresse de diffusion globale, ce message varie selon le mode de configuration choisi. Il est envoyé toutes les 200 secondes, ou suite à une sollicitation d’un hôte. En IPv6 l’adresse de la passerelle par défaut (gateway) est l’adresse link-local de la source de ce message.
Mode SLAAC (par défaut)
Permet d’obtenir préfixe + longueur du préfixe du réseau dans lequel se trouve le périphérique. Généralement, toutes ces informations permettent d’obtenir les 64 premiers bits. C’est au périphérique de générer les 64 bits restant de son adresse de diffusion globale.
Mode SLAAC et DHCPv6 sans état
Mode précèdent (SLAAC) + informe le périphérique de contacter le serveur DHCPv6 afin de demander la configuration DNS ainsi que le nom de domaine. On parle de DHCPv6 « sans état » car celui-ci n’a pas de tableau de toutes les adresses distribuées (pool).
Mode DHCPv6 avec état
Similaire à IPv4 en DHCPv4, le message d’annonce invite le périphérique à contacter le serveur DHCPv6 du réseau afin d’obtenir une adresse de diffusion globale. Cette adresse est donc fournie par le serveur DHCPv6 et n’est plus généré de manière aléatoire sur l’hôte. On parle de DHCPv6 « avec état » car celui-ci tient à jour un tableau de toutes les adresses distribuées (pool).
Protocole ICMPv6
En IPv6, le protocole ICMPv6 à de nouvelles fonctionnalitées pour la configuration des hôtes sur un réseau.
Routeur <–> Périphérique
- utilisé par les hôtes afin de réaliser une sollicitation de message d’annonce de routeur (RS)
- utilisé par les routeurs pour envoyer des messages d’annonce de routeur (RA) dans tout le sous-réseau
Périphérique <–> Périphérique
- message de sollicitation de voisin
- message d’annonce de voisin
Pour éviter que 2 périphériques aient la même adresse de diffusion globale, le protocole DAD (Duplicate Address Detection) est utilisé. Celui-ci permet la détection d’adresses dupliquées. Pour cela, après qu’un hôte ait généré sont adresse de diffusion globale. Celui-ci envoie un message de sollicitation de voisin avec comme adresse de sollicitation, l’adresse qu’il vient de générer :
- Si une réponse est reçue, cela signifie qu’un autre hôte sur le réseau possède déjà cette adresse. Dans ce cas, il doit régénérer une autre adresse.
- Si par contre celui-ci ne reçoit aucune réponse, cela signifie qu’il n’y pas de duplication d’adresse dans le réseau et que l’hôte peut garder cette adresse pour lui.
Plutôt malin.