Vous êtes sur la page 1sur 8

Internet Protocol v6 ( IPv6 )

RFC 2460
I) Objectifs
IPv6 apporte

-> plus d'adresses publiques: 128 bits = 16 octets


( IPv4 en 32 bits puises )

->un routage plus simple

( En IPv4, les tailles des tables de routage augmentent trop malgr CIDR pour un gestion facile )

->des lments de gestion de la QoS: Qualit de service

( TOS de IPv4 mal exploit, Diffserv pas assez implment )

->la gestion du multicast intgre d'origine ct rseau et client (rplication de flux )


-> des moyens de reconnaitre un type de flux par l'adresse
unicast, multicast, anycast, il n'y a plus de broadcast.
-> une simplification de l'entte ( moiti des champs de IPv4 )
-> une possibilit d'volution: les options en fin d'entte ( plus limites 40 octets ).
II) Trame IPv6
La trame IPv6 est

Champs IPv6:

- plus longue cause des longueurs d'adresses


- plus simple avec moins de champs

- Version ( 4 bits ): 6
- Traffic Class ( 8 bits ): Qualit de service
- Flow Label ( 20 bits ): Marquage d'un flux pour traitement diffrenci par le rseau
- Payload Length ( 16 bits ): Longueur de la charge utile en octets.
- Next Header ( 8 bits ): Indique le contenu: Autre entte ou charge utile ( voir exemple suivant ).
- Hop Limit ( 8 bits ): Dcrment de 1 chaque routeur comme TTL en Ipv4.

L'en-tte IPv6 peut tre suivie d'extensions. Elles se succdent, chacune de leur en-tte indiquent la suivante ( valeurs
identiques IPv4 ). Voir RFC2460.
A ce jour, 6 types dextension dentte sont dfinies ( Hop by Hop = infos pour routeurs, Authentification de lmetteur,
Routage, Fragmentation, Paramtres de cryptage, Destination = infos sur le destinataire ).
Exemple :
Entte IPv6
Avec
Entte suivant = Routage

Entte Routage
Avec
Entte suivant = TCP

Niveau 4 = Entte TCP + Donnes TCP

Par comparaison: Enttes IPv4 / IPv6

III) Adresses IPv6 RFC 2373 (IPv6 Addressing Architecture)


Elles passent de 4 octets en IPv4 16 octets en IPv6 = 128 bits => 2128 valeurs 3,4 1038 .
Rgle d'criture:
- En IPv4, on a des valeurs en dcimal spares par un point: 192.168.1.1
- En IPv6, l'adresse IPv6 est en hexadcimal ( 1 caractre hexa = 4 bits ) avec sparateur ":" entre groupes de 2 octets
= 4 codes hexa par groupe = 16 bits par groupe.
=> 8 groupes de 4 codes hexa par adresse IPv6 Ex: FE80:0000:0000:0000:0209:6A5B:AC50:23FB
- Pour un rseau, on utilise la notation CIDR: adresse-ipv6-code hexa / longueur-du-prfixe-rseau-en-bits
Rgles de simplification:
- On limine les 0 de gauche dans chaque groupe de 4 codes hexa entre les ":".

:009B: ->

:9B:

- On supprime les groupes conscutifs de 0.


:0000:0000:0000: -> ::
Elle n'est applicable qu'une fois par adresse pour qu'il n'y ait pas d'ambigut -> Ecriture unique
=> On ne trouve :: qu'une fois par adresse.
Ex: 8000:0000:0000:0000:0123:4567:89AB:CDEF

-> 8000::123:4567:89AB:CDEF

Notation rseau CIDR (Classless Inter-Domain Routing )


adresse / nb de bits du prfixe
Utilisation:
La RFC2732 dfinit l'criture d'une URL avec adresse IPv6: L'adresse est entre crochets [ ]
Cela vite de confondre ":" de l'adresse IPv6 avec le sparateur entre adresse IP et numro de port.
Adresse IPv6 = 2001:0:0:A1::1E2A via le port 8080
=> URL https://[2001:0:0:A1::1E2A]:7878/webpage.html
Cas particulier: Une adresse IPv4 s'crit ::192.168.1.1 ou ::C0A8:101 en notation IPv6
Types d'adresses
- Il n'y a plus de broadcast car ces fonctions sont intgres au multicast.
- On ne parle plus de publique/prive mais globale/locale.
- La porte ( Scope ) des adresses locales change: Adresse de Lien ( Link Local ) ou adresse de Site ( Site Local ).
Lien = interfaces directement connectes sans routeur. Pour usage limit temporaire.
- Pour reconnaitre le type d'adresse, on analyse le prfixe = dbut de l'adresse.

Un paquet envoy une adresse unicast va seulement l'interface qui a cette adresse.
Adresse
Globales
UNICAST ( prfixe li la
( adresse
gographie ) 2000::/3
Mondial ( IANA ): 2001::/16, transition 6to4: 2002::/16
d'une
Europe ( Ripe.net ): 2003::/16, 2A00:0000::/21, 2A01:0000::/23
interface )
Asie ( Apnic ): 2400:0000::/19, 2400:2000::/19, 2400:4000::/21
...
Un paquet envoy une adresse unicast va seulement l'interface qui a cette adresse.

Locales

Adresse Link-Local: FE80::/10 commenant par les bits 1111 1110 10


Utilise pour un lien unique, pas pour l'ensemble d'un site.
=> pour usages limits: configuration d'adresse automatique, dcouverte de voisin ou
si on n'utilise aucun routeur.
=> Un routeur ne propage pas des paquets contenant une IP Link Local
Adresse Site-Local: appele ULA ( Unique Local Address ):
FC00::/7 adresse unique locale
cas particulier FD00::/8 adresse unique locale attribue manuellement

Adresse MULTICAST
( adresse de plusieurs
interfaces )

Un paquet envoy en anycast va TOUTES ces interfaces.


8 bits 1, 4 bits = flags, 4 bis = scope => Commencent par FF.
Adresse multicast du groupe de tous les noeuds
FF01::1 = scope 1 = Interface local
FF02::1 = scope 2 = Link local
Adresse multicast du groupe de tous les routeurs
FF01::2 = scope 1 = Interface local
FF02::2 = scope 2 = Link local
FF05::2 = scope 5 = Site local
Adresse multicast de sollicitation de noeud ( Solicited Node ) utilis en rsolution d'adresse
FF02::1:FFxx:xxxx o xxxxxx = 24 derniers bits de l'adresse unicast ou anycast recherche
Serveur DHCP ou agents relais DHCP: ( RFC 3315 )
FF02::1:2 Link local
FF05::1:3 Site Local

Adresse ANYCAST
( adresse de plusieurs
interfaces )

Un paquet envoy en anycast va UNE des interfaces du groupe,


celle qui rpond en premier pour le groupe.
Anycast sert introduire de la redondance ou du partage de charge ( comme pour serveur DNS,
serveur web,... )
Si on utilise plusieurs fois une adresse Unicast, elle devient une adresse Anycast ( RFC3513 ).

La RFC 2526 dfinit cependant des adresses rserves = adresse finissant par 0 7E.
En particulier une adresse finissant par 0 = adresse anycast de routeurs du sous rseau.

Adresses Unicast particulires


Type d'adresse particulire
Adresse non spcifie
Interface locale ( bouclage, loopback )
( quivalent du 127.0.0.1 d'IPv4 )

Adresse IPv4 compatible IPv6


Adresse IPv4 mappe IPv6

::
::1

Adresse IPv6
= 0000:0000:0000:0000: 0000:0000:0000:0000
= 0000:0000:0000:0000: 0000:0000:0000:0001

::A.B.C.D o A.B.C.D = adr IPv4 en dcimal


::FFFF:A.B.C.D o A.B.C.D = adr IPv4 en dcimal

Valeurs associes
IANA Mondial
RIR Regional Internet Registries
Afrique AfriNIC
Asie Pacifique APNIC
Amrique ARIN
Amrique latine et Carabes LACNIC
Europe: Rseaux IP Europens RIPE
NIR National
ISP Fournisseur d'accs internet
LIR Local

IV) Evolution de la pile protocolaire


ICMP est plus important dans IPv6, c'est plus que le ping: Il y a de nombreux types de paquets ICMP
- Contrles comme en IPv4 dont Demande d'cho / rponse d'cho
- Sous-ensemble ND ( Neighbor Discovery ) = 5 types de paquets

RS: Sollicitation de routeur ( Router Sollicitation RS )


RA: Annonce de routeur ( Router Advertisement RA )
NS: Sollicitation du voisin ( Neighbor Sollicitation NS )
NA: Annonce du voisin ( Neighbor Advertisement NA )
--: Indication de redirection
...

DHCP volue en DHCPv6

V) ND Neighbour Discovery = Protocole de dtection de voisin IPv6


Trames ICMPv6, Application ND
IPv6 tend l'utilisation de ICMP ( Internet Control Message Protocol ).
On y retrouve les contrles de IPv4 mais on ajoute le protocole de dcouverte de voisin = Neighbor Discovery.
On reconnait un message ND avec le type ICMP dans l'entte ICMPv6:
133: RS Router Sollicitation: Requte pour recevoir des informations par message RA venant des routeurs du rseau.
134: RA Router Advertisement: Rponse d'un routeur un requte RS donnant des informations sur le rseau.
135: NS Neighbor Sollicitation: Requte pour recevoir un rponse d'un noeud destinataire.
136: NA Neighbor Advertisement: Rponse du noeud destinataire une requte RS.
137: Redirect: Redirection
La principale utilisation de NS, NA est la rsolution d'adresse:
Le protocole IP joint 2 adresses IP = niveau 3 modle OSI.
Pour envoyer le message, il faut un niveau 2, ethernet par exemple.
Pour associer une adresse de niveau 2 au niveau 3, Ipv4 utilise le mcanisme de rsolution d'adresse ARP.
( si IP dest dans le mme rseau, requte ARP en BROADCAST d'IP dest, sinon ARP d'IP passerelle )

Entte IPv6
Next Header=58
( ICMPv6 )

message ICMPv6

Entte ICMPv6

Type ICMP
1 oct

Code
1 oct

Donnes du message ICMPv6

Checksum
2oct

Type msg
ND 1 oct

Lg msg
1 oct

Valeurs msg ND

Exemples:
Si type = 128, 129, on a des messages ICMP d'cho ( Echo Request, Echo Reply ) = Ping.
Si type ICMP = 133 (RS), 134 (RA), 135 (NS), 136 (NA), 137 (Redirect), le message ICMP est un message ND.
Exemples msg ND:

Si type msg ND = 1, valeurs msg ND = adr Src niv 2


Si type msg ND = 2, valeurs msg ND = adr Dst niv 2 = Target
Si type msg ND = 3, valeurs msg ND = Prefix Information
...

Rsolution d'adresse = Sollicitation de Voisin ( Neighbor )


La rsolution d'adresse en IPv6 utilise 2 messages ICMPv6:
- NS Neighbor Sollicitation = Requte contenant l'IP cible, envoye vers le groupe multicast de sollicitation de noeud.
Ladresse IP dest multicast est FF02::1:stuv:wxyz = adr multicast termine par les 32 derniers bits de ladresse de la station recherche.

- NA Neighbor Advertisement = Rponse de la cible contenant l'adresse niveau 2 de l'IP demande.

Remarque: L'quivalent de arp a pour voir les voisins montre 2 adresses unicast pour une machine -> Adresse globale
-> Adresse locale de lien
( show ipv6 neighbor = cisco, netsh interface ipv6 show neighbors = Microsoft, ip -6 neigh show = linux )

Par comparaison: rsolution d'adresse v4

- L'metteur qui connait IP dest recherche l'adresse MAC correspondante par protocole ARP
= requte en broadcast ethernet ou proxy ARP
- Le destinataire qui reconnait son adresse IP dans la requte ARP rpond en indiquant son adresse MAC.

Sollicitation de Routeur ( Router )


La recherche d'information sur le rseau utilise 2 messages ICMPv6 vers le ou les routeurs:

- RS Router Sollicitation = Requte envoye vers le groupe multicast de sollicitation de routeur


- RA Router Advertisement = Rponse de la cible contenant l'adresse niveau 2 du routeur.

VI) Attribution d'adresse IPv6 = Identifiant d'interface


On distingue configuration manuelle et autoconfiguration ( 3 procds possibles selon prsence des lments et configuration des lments ).
Configuration manuelle
On entre la valeur d'adresse manuellement:

Adresse IP, Longueur du prfixe de sous-rseau, Passerelle par dfaut.

Stateless Address Autoconfiguration: SLAAC


La configuration Stateless se fait sans serveur centralis qui mmorise l'tat des clients contrairement au stateful = DHCP.
Il existe 2 mthodes d'autoconfiguration stateless: - Link Local drive EUI-64
- Link Local drive de prfixe
a) Autoconfiguration d'adresse Link Local drive EUI-64
Cette configuration automatique utilise l'adresse MAC pour dfinir une adresse link locale.
Elle sera utilise pour dbuter la configuration et on utilisera ensuite une autre mthode.

EUI-64 est un identifiant de 64 bits


utiliss en firewire ( IEEE 1394 ) ou en
domotique ( IEEE 802.15.4 ).
L'IEEE dcrit les rgles pour passer
des 48 bits de l'adresse MAC aux 64
bits de l'EUI-64.
( voir schma )
On ajoute ensuite le prfixe link local
64 bits = F800 0000 0000 0000

Exemple: Adr MAC 34:ED:48:A6:35:B4 => adresse IPv6 Link-locale FE80::36:ED:48:FF:FE: A6:35:B4

=> L'adresse multicast de sollicitation de noeud pour envoi de requte NS sera FF02:0:0:0:0:1FFA6:35B4
( prfixe multicast de sollicitation de noeud Link-Local FF02:0:0:0:0:1FF00:0/104 puis 24 bits poids faible adr source)

b) Autoconfiguration d'adresse Link Local utilisant un prfixe


Un routeur fournit un prfixe de rseau qui identifie le lien ou le site.
- Le client envoie une requte RS = ICMP type 133

avec adresse src=:: et destination = multicast de tous les routeurs FF02::2, query = demande de RA.

- Un routeur rpond RA = ICMP type 134

avec adr src = adr link locale du routeur, adr dest = adr multicast de tous les noeuds, contenu = infos sur le rseau dont le prfixe

- Le client ajoute au prfixe qu'on lui donne avec le message RA un identifiant d'interface.
L'identifiant d'interface est soit EUI-64 ( voir avant ),
soit un nombre alatoire.
Le client fera un test pour vrifier que l'adresse n'est pas dj utilise ( Sollicitation de noeud ).
DHCPv6 ( RFC3315 ) = Stateful Autoconfiguration

Un client sait s'il peut utiliser DHCPv6 si un routeur de rattachement le lui indique dans le message RA par les bits O et M.
Les bits O et M sont dans le message RA (Router Advertisement ):
bit O: 'O=1 => Le client utilise DHCPv6 pour rcuprer les autres paramtres de configuration ( Other ) comme
l'adresse de DNS.
bit M: M=1 => Le client utilise DHCPv6 pour rcuprer une adresse IPv6 ( Managed IPv6 address ) depuis un
serveur DHCPv6.
Si un routeur qui envoie RA avec O=1 et M=0 => Le client fabrique son IP avec la mthode "Stateless Address
Autoconfiguration": SLAAC) puis utilise DHCPv6 pour rcuprer les autres paramtres.
On parle de "Stateless DHCPv6" car le serveur DHCPv6 ne garde pas de trace des adresses de client.

Avec DHCPv6:
Utilisation d'adresse multicast pour DHCPv6
- Le client envoie sur les adresses multicast DHCP link ou
site une requte = message DHCP Solicit
= recherche de serveur DHCPv6.
- Un serveur rpond par un message "DHCP Advertise
- Le client demande une adresse ce serveur
= message DHCP Request.
- Le serveur fournit l'adresse ce client
= message "DHCP Reply
DHCPv6 utilise les ports 546 and 547.
Par comparaison: DHCP v4
- Le client envoie en broadcast une requte cherchant un serveur DHCP: DHCPDISCOVER sur les ports UDP dst = 67 et src = 68
( adr MAC dest FF:FF:FF:FF:FF:FF, adr IP dest 255.255.255.255, adr IP src 0.0.0.0 ).
Si le serveur n'est pas sur le rseau, il faut un routeur avec un agent Relais DHCP.
- Le serveur rpond avec DHCPOFFER sur les ports UDP dst = 68 et src = 67
( adr MAC dst = FF:FF:FF:FF:FF:FF, IP dst = 255.255.255.255 )
- Le client envoie au serveur un requte demandant une adresse: DHCPREQUEST sur les ports UDP dst = 67 et src = 68
( adr MAC dest FF:FF:FF:FF:FF:FF, adr IP dest 255.255.255.255, adr IP src 0.0.0.0 ).
- Le serveur rpond avec DHCPACK qui contient l'adresse IP utiliser sur les ports UDP dst = 68 et src = 67
( adr MAC dst = FF:FF:FF:FF:FF:FF, IP dst = 255.255.255.255 )
- Le client peut vrifier qu'il est seul avoir cette adresse IP en envoyant un requte ARP avec sa propre adresse = ARP gratuit.

Processus de dtermination de la mthode


Assignation d'adresse Link-Locale
- Le client fabrique une adresse Link-Locale drive EUI-64: FE80::[interface ID niv 2]
- Il vrifie que l'adresse n'existe pas en envoyant NS Neighbor Sollicitation vers le Multicast des adresses
Link-Locale drives.
- Si une rponse NA ( Neighbor Advertisement ) reue:
Un autre client utilise l'adresse => Arrt de l'autoconfiguration, configuration manuelle.
Trouver un routeur
- Sans rponse NA, l'adresse Link-local drive est unique et valide:
+ Initialiser l'adresse Link-Local
+ Envoyer RS ( Router Sollicitation ) vers l'adresse multicast de routeur = ICMP Type 133
+ Sans rponse RA: Rseau isol, Utilisation de DHCP.
+ Avec rponse RA: Analyse des bits 'M' et 'O' de la rponse RA.
'M'=0 et 'O'=0 : Rseau sans DHCP
=> Les clients utilisent RA pour avoir dfinir une adresse autre que link-local.
La configuration des autres paramtres (DNS ) est manuelle.
'M'=1 et 'O'=1 : DHCP pour adresse et autres paramtres = DHCP Stateful

'M'=0 et 'O'=1 : DHCP dfinit les autres paramtres,


les routeurs voisins sont configurs pour fournir des prfixes pour adresses non link-local.
Le client en drivera une adresse ( mthode DHCPv6 stateless )
'M'=1 et 'O'=0 : DHCPv6 est utilis pour donner une adresse, pas pour les autres paramtres
=> Utilisation non prvue.
Remarque: Si le routeur dans sa rponse RA envoie des informations de prfixe, on utilisera une adresse Link-Locale drive de
prfixe avant de traiter les valeurs des bits 'M' et 'O' de RA.

VII) Outils de test IPv6


Les logiciels intgrant encore IPv4, on distingue les outils IPv4 et IPv6.
Linux
ping6 adr_Ipv6 ou nom_hte

Windows
ping 6 ou ping 6

traceroute6

tracert 6
pathping 6

Affiche les paramtres Ipv6:


#ip -6 addr show

Afficher la cache de voisinage ( arp a de IPv4 )


netsh interface ipv6 show neighbors

Configuration: "ifconfig" ou "ip -6"

l'invite de commandes, netsh, Entre,


? pour l'aide.
Netsh interface ipv6, Entre, ? pour l'aide.
Netsh interface ipv6 show interface
Netsh interface ipv6 show address

# ifconfig eth0 inet6 add 3ffe:ffff:0:f101::1/64


ou # ip -6 add 3ffe:ffff:0:f101::1/64 dev eth0

Voir les connexions prcdentes (voisins )


#ip -6 neigh show
lien:
http://www.linuxfrance.org/prj/edu/archinet/systeme/ch08.html

Pour tre sr que l'on est sur un rseau IPv6, on peut utiliser comme destinataire du test l'hte ipv6.google.com