Vous êtes sur la page 1sur 56

Introduction IPv6

Olivier Togni Universit de Bourgogne


LE2I UMR CNRS 5158 www.u-bourgogne.fr/o.togni olivier.togni@u-bourgogne.fr

modifi le 02/09/2008

Plan

Historique Adressage Protocoles associs DNS Mobilit Scurit Dploiement

Ressources bibliographiques

IPv6 Thorie et pratique 4ed, G. Cizault, O'Reilly 2005 (version en ligne avec mises jour sur livre.point6.net) IPv6: Theory, Protocol, and Practice, 2 ed, P. Loshin, Elsevier, 2004
nd

www.urec.fr Tutoriel IPv6 de B. Tuy www.ietf.org RFC 2460, ...

Le 6bone
Rseau exprimental cr pour tester le dploiement de l'IPv6. Il s'tend en Asie, Amrique, Australie et en Europe. Juin 1998: ouverture du 6bone. adresses IPv6 utilises par ce rseau sont regroupes par leur prfixe commun 3ffe.

Janvier 2004: arrt d'attribution des adresses en 3ffe. Dsormais, on obtient des adresses dfinitives, commenant par 2001.

Juin 2006: fermeture du 6bone.

Historique

En 1992, constat de

Pnurie des adresses Augmentation des tables de routages

=> Projet IP new generation (IPng)

En 1995, RFC 1883: Internet Protocol version 6 Depuis, de nombreuses modifications et normes complmentaires

Objectifs

Remdier au problmes d'adresses Ajouter de nombreuses fonctionnalits optionnelles d'IPv4:


Autoconfiguration Mobilit Diffusion Multicast Scurit (Authentification et confidentialit)

Adresses
IANA (Internet Assigned Numbers Authority, voir iana.org) + 5 RIR (Regional Internet Registry)

AfriNIC (African Region) APNIC (Asia/Pacific Region) ARIN (North America and Sub-Sahara Africa) LACNIC (Latin America and some Caribbean Islands) RIPE NCC (Europe, the Middle East, Central Asia, and African countries located north of the equator)

+ NIR (National) + LIR/ISP (Local)

Adresses
Sur 128 bits: 8 mots de 16 bits spars par des : Ex: 3201:001A:12FF:0000:0000:0000:FFFE:8ABC :: pour abrger plusieurs mots nuls conscutifs Ex: 3201:1A:12FF::FFFE:8ABC 3 types d'adresses: unicast, anycast, multicast => plus de broadcast! Utilisent les principes de CIDR: adresse/longueur_prfixe Ex: 2001:660:3003::/48

Espace d'adressage (iana.org)


INTERNET PROTOCOL VERSION 6 ADDRESS SPACE
(last updated 2008-05-13 IP!6 P"e#$% ----------0000))*8 0100))*8 0200))*2 0/00))*6 0800))*5 1000))*/ 2000))*3 /000))*3 6000))*3 8000))*3 A000))*3 C000))*3 E000))*/ -000))*5 -800))*6 -C00))*2 -E00))*0 -E80))*10 -EC0))*10 --00))*8 All&'at$&( ---------Rese"!ed +, IETRese"!ed +, IETRese"!ed +, IETRese"!ed +, IETRese"!ed +, IETRese"!ed +, IET3l&+al 4($'ast Rese"!ed +, IETRese"!ed +, IETRese"!ed +, IETRese"!ed +, IETRese"!ed +, IETRese"!ed +, IETRese"!ed +, IETRese"!ed +, IET4($5ue L&'al 4($'ast Rese"!ed +, IETL$(6 L&'al 4($'ast Rese"!ed +, IET7ult$'ast Re#e"e('e --------.R-C/2011 .R-C/2011 .R-C/0/81 .R-C/2011 .R-C/2011 .R-C/2011 .R-C/2011 .R-C/2011 .R-C/2011 .R-C/2011 .R-C/2011 .R-C/2011 .R-C/2011 .R-C/2011 .R-C/2011 .R-C/1031 .R-C/2011 .R-C/2011 .R-C38201 .R-C/2011

Plan d'adressage agrg


Adresse unicast globale construite ainsi (RFC 2374):
3 001 13 TLA 8 Reserv 24 NLA 16 SLA 64 Ident_interface

TLA (Top Level Agregator): grand oprateur international NLA (Next Level Agregator): oprateur intermdiaire SLA (Site Level Agregator): site => Plan abandonn au profit du plan d'adressage global utilis pour tests au sein du 6bone avec TLA=1FFE

Plan d'adressage global


RFC 3587 rend obsolte l'adressage agrg
n Prfixe global 64-n Ident_ss-rseau 64 Ident_interface

Par exemple:
3 001 45 prfixe 16 Sous-rseau 64 Ident_interface

Topologie publique Partie rseau

Topologie de site Partie hte

Identifiant d'interface
Identifiant sur 64 bits pour dsigner une interface connecte sur un lien Peut tre construit partir de l'adresse de niveau 2 de l'interface rseau: Pour les rseaux Ethernet/FDDI: partir d'une adresse MAC IEEE 802 (48bits), ajout de FFFE au milieu et inversion du 7ieme bit => identifiant unique au niveau mondial Si pas d'adresse de niveau 2=> nombre au hasard ou saisie manuelle

Adresses unicast globales


IPV6 3LO8AL 4NICAST ADDRESS ASSI3N7ENTS .last updated 2008-05-131 3l&+al 4($'ast P"e#$% --------------------2001)0000))*23 2001)0200))*23 2001)0/00))*23 2001)0600))*23 2001)0800))*23 2001)0A00))*23 2001)0C00))*23 2001)0E00))*23 2001)1200))*23 2001)1/00))*23 2001)1600))*23 2001)1800))*23 2001)1A00))*23 2001)1C00))*22 2001)2000))*20 2001)3000))*21 2001)3800))*22 2001)3C00))*22 2001)/000))*23 2001)/200))*23 2001)//00))*23 2001)/600))*23 Ass$9(:e(t ---------IANA APNIC ARIN RIPE NCC RIPE NCC RIPE NCC APNIC APNIC LACNIC RIPE NCC RIPE NCC ARIN RIPE NCC RIPE NCC RIPE NCC RIPE NCC RIPE NCC RESERVED RIPE NCC A#"$NIC APNIC RIPE NCC Date -----01 ;ul 00 01 ;ul 00 01 ;ul 00 01 ;ul 00 01 7a, 02 02 N&! 02 01 7a, 02 01 ;a( 03 01 N&! 02 01 -e+ 03 01 ;ul 03 01 Ap" 03 01 ;a( 0/ 01 7a, 0/ 01 7a, 0/ 01 7a, 0/ 01 7a, 0/ 11 ;u( 0/ 11 ;u( 0/ 01 ;u( 0/ 11 ;u( 0/ 12 Au9 0/ 2001)/800))*23 2001)/A00))*23 2001)/C00))*23 2001)5000))*20 2001)8000))*10 2001)A000))*20 2001)8000))*20 2002)0000))*16 2003)0000))*18 2/00)0000))*12 2600)0000))*12 2610)0000))*23 2620)0000))*23 2800)0000))*12 2A00)0000))*12 2C00)0000))*12 ARIN RIPE NCC RIPE NCC RIPE NCC APNIC APNIC APNIC 6t&/ RIPE NCC APNIC ARIN ARIN ARIN LACNIC RIPE NCC A#"$NIC 2/ 15 12 10 30 30 08 01 12 03 03 12 12 03 03 03 Au9 O't De' Sep N&! N&! 7a" -e+ ;a( O't O't N&! Sep O't O't O't 0/ 0/ 0/ 0/ 0/ 0/ 06 01 05 06 06 05 06 06 06 06

Adresses locales
Adresses lien local (link local): adresses dont la validit est restreinte un lien Forme: FE80::+ident_interface
1111111010 0..............0 ident_interface
Utilises par les protocoles de configuration d'adresse globale, de dcouverte de voisins (neighbor discovery) et de dcouverte de routeurs (router discovery). Le protocole de dtection de duplication d'adresse (DaD) permet de s'assurer de l'unicit au niveau du lien. Pas forwardes par les routeurs => usage local au lien 10 54 64

Adresses locales
Adresses site local (site local): adresses dont la validit tait restreinte un site => gnralisait la notion d'adresse prive d'IPv4 FEC0:+ident_sous_rseau+ident_interface
1111111011 ident_ss_rs ident_interface
10 54 64

Notion de site trop floue => ont t dprcies (RFC 3879)

Adresses locales
Adresses unique local (ULA: unique local address): Pour utilisation au sein d'une zone limite (site ou entre un nombre limit de sites) FC00::/7:+ident_global+ident_sous_rseau+ident_interface
11111101 ident_global ident_ss_rs ident_interface
8 40 16 64

Ident_global gnr pseudo-alatoirement

Adresses multicast
Commencent par FF....
11111111 flag scope ident_groupe
8 4 4 112

Scope (tendue):

0: rserv Flag bits: 0 R P T 1: noeud T=0 => adresse permanente (gre par IANA) 2: lien T=1 adr temporaire 4: administration P=1 => drive du prfixe unicast 5: site R=1 => point de rendez-vous 8: organisation E: global F: rserv

Adresses prdfinies
Adresses spciales adr indtermine: 0:0:0:0:0:0:0:0 ou bien :: adr de bouclage: ::1 Pour transition IPv4/v6: adr Ipv4 mappes: ::FFFF:a.b.c.d o a.b.c.d est une adr Ipv4 adr Ipv4 compatibles: ::a.b.c.d => dprcies (cf. RFC 4291) Adresses multicast prdfinies: FF02::1 => tous les noeuds Ipv6 sur le mme lien local FF05::2 => tous les routeurs Ipv6 du site FF0E::101 => tous les serveurs NTP sur l'Internet

Adresses anycast
Une adresse anycast identifie un ensemble d'interfaces: un paquet destination d'une adr anycast doit tre achemin par le systme vers l'une des interfaces (la plus proche) => implmentation dlicate, rserves pour les routeurs Ex: serveurs FTP avec adresse gnrique Ne peut tre distingue d'une adresse unicast (mme plage d'adresses) Adr anycast d'un sous-rseau: prfixe rseau+ 0...0 => un paquet transmis cette adresse doit tre trait par l'un des routeurs du rseau

Exemple sous Linux


eth0 Link encap:Ethernet HWaddr 00:0D:56:01:13:C9 inet addr:193.52.237.96 Bcast:193.52.237.255 Mask:255.255.255.0 inet6 addr: 2001:1111::20d:56ff:fe01:13c9/64 Scope:Global inet6 addr: fe80::20d:56ff:fe01:13c9/64 Scope:Link Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host Link encap:IPv6-in-IPv4 NOARP MTU:1480 Metric:1

lo

sit0

Rappel datagramme IPv4

Format des datagrammes IPv6

=> 40 octets d'en-tte sans les options (5 mots de 64 bits)

Format des datagrammes IPv6


Version=6 (mme champs que Ipv4) Classe de trafic = champs type de service d'IPv4 Identificateur de flux: pour qualit de service, rfrence le contexte de la communication Longueur des donnes: taille des donnes sans l'en-tte En-tte suivant = champs protocole d'IPv4=soit protocole de niveau suprieur, soit numro d'extension, les extensions contiennent ce champ pour chanage Nombre de sauts = TTL: dcrment chaque noeud travers. Si 0, rejet et mission d'un message ICMP vers la source

Remarques

Plus de champs Checksum car devait tre ajust par chaque routeur en raison du champ TTL modifi => les protocoles de niveau sup doivent mettre en place un ctrl d'erreur sur l'en-tte (tendue aux adr IP) Champs aligns sur mots de 64bits => optimis pour architecture 64bits Moins de champs que dans Ipv4 Entte de taille fixe => plus rapide Plus de souplesse dans les options

Extensions
Plus souples que les options d'IPv4, elles peuvent tre chanes entre elles et sont traites seulement par les noeuds concerns 5 types d'extensions: Proche en proche (hop-by-hop) - toujours la premire extension - remplace l'option Ipv4 - analyse par chaque routeur Destination (traite seulement par le destinataire) Routage Fragmentation Scurit

Chanage d'extensions
En-tte Ipv6 Entte Routage En-tte Fragment En-tte TCP Entte suivant = Entte suivant = En-tte suivant = + routage fragment TCP Donnes

Champ En-tte suivant: Proche en proche 0 Routage 43 Fragmentation 44 Confidentialit 50 Authentification 51 Fin des enttes 59 Destination 60

TCP UDP IPv6 ICMPv6

6 17 41 58

Proche en proche
4 options diffrencies par le champ type (1 octet) - Pad1 (bourrage 1 octet), utile pour aligner sur 64bits - Padn (bourrage n octets), idem - router alert: demande au routeur de prendre en compte les donnes (utile pour ICMPv6 ou RSVP) - Jumbogramme (paquet de taille > 64Ko) => taille prcise dans l'option Les 2 bits de poids fort du type indiquent le comportement du routeur s'il ne traite pas l'option

Destination
Options : - bourrage (Pad1, Padn), utile pour aligner sur 64bits - mobilit - tunnelage dans paquet Ipv6: limite du niveau d'encapsulation

Routage
Permet d'imposer une route diffrente de celle offerte Routage libral (Loose source routing): on indique une liste de routeurs traverser, les tables de routage peuvent tre utilises pour aller de routeur en routeur
A A->R1 Routage B R1 A->B

Fragmentation
En principe la taille du paquet est adapte l'mission par un algorithme de dcouverte du PMTU (MTU du chemin). En gnral il est prvu un MTU de 1280octets (pour tunnelage). Mais certains protocoles (NFS par ex.) supposent que la fragmentation existe et produisent des messages de grande taille Seule la source peut fragmenter un paquet (contrairement IPv4)

PMTU
Le protocole Path MTU Discovery permet de calculer le MTU maximum disponible vers une destination. Il utilise les messages ICMPv6 Paquet trop grand: Un routeur cr un tel message quand il reoit un paquet trop grand pour traverser le rseau sur le chemin Le nouveau MTU utiliser est spcifi dans le message ICMP L'hote envoi son paquet en utilisant le MTU du lien. S'il reoit un message ICMPv6 Paquet trop grand, il renvoie un paquet de la taille spcifie dans le message et ainsi de suite

Protocoles associs IPv6


ND (Neighbor Discovery): dcouverte des voisins MLD (Multicast Listener Discovery) - gestion des groupes multicast - bas sur IGMPv2 - MLDv2 quivalent de IGMPv3 d'IPv4 ICMPv6 (Internet Control Message Protocol) : super protocole qui - couvre les aspects d'ICMPv4 (ctrl erreurs, ...) - Transporte les messages ND et MLD

ICMPv6
Deux classes de messages (suivant le champs type): de 0 127 Messages d'erreur de 128 255 Messages d'information Messages d'erreur les plus courants: Destination inaccessible (1) Paquet trop grand (2) Temps dpass (3) Paramtre non reconnu (4)

Neighbor Discovery
Les noeuds Ipv6 sur un mme lien utilisent ND pour: - dcouvrir leur prsence mutuelle - dterminer l'adr de niveau liaison du voisin - trouver les routeurs - maintenir les infos sur l'accessibilit des voisins (NUD)

=> pas applicable aux rseaux NBMA (ATM, Frame Relay, ..) car ND utilise le multicast Synthse de ARP, R-Disc, ICMP redirect

Neighbor Discovery
5 types de paquets ICMP: Router Advertisement (RA): annonce priodique qui contient - liste des prfixes utiliss sur le lien - valeur possible du nombre de sauts - valeur du MTU

Router Solicitation (RS): l'hte veut un RA immdiatement Neighbor Solicitation (NS): - pour dterminer l'adr liaison d'un voisin - ou pour tester inaccessibilit - aussi pour tester duplication d'adr (DaD)

Neighbor Discovery

Neighbor Advertisement (NA): - rponse un paquet NS - avertir le changement d'une adresse physique

Redirect: utilis par un routeur pour informer un hte d'une meilleure route

Rsolution d'adresse
Au boot, l'hte doit adhrer 2 groupes multicast: ff02::1 <=> tous les noeuds sur le lien ff02::1:ffxx:xxxx adr de multicast sollicit (xxxxxx=24bits de poids faible de l'adr IPv6) Rsolution d'adresse: 1. Envoi paquet NS en multicast sollicit 2. L'hte concern rpond par un message NA

Multicast sollicit
Concatnation du prfixe ff02::1:ff00:0/104 avec les 24 derniers bits de l'adr IPv6 Ex: @DST Ipv6 Mult sol Ethernet

2001:0660:010A:4002:4421:21FF:FE24:87C1 FF02:0000:0000:0000:0000:0001:FF24:87C1 33-33-FF-24-87-C1

Auto-configuration
Seuls les routeurs doivent tre configurs manuellement, les htes peuvent obtenir leurs adresses automatiquement: - Configuration sans tat: la machine construit automatiquement ses adresses IPv6 en fonction d'informations qu'elle reoit des routeurs - Configuration avec tat (contrle de l'attribution des adresses): DHCPv6 (intrt?)

Protocoles de transport
Modifications mineures de TCP et UDP: Checksum obligatoire et porte sur pseudo en-tte incluant des champs de l'en-tte du paquet IPv6

Prise en compte des jumbogrammes: l'en-tte TCP ou UDP contient un champ longueur trop petit => =0 pour UDP mais problme avec TCP o plusieurs compteurs sont sur 16bits (longueurs des fentres)

DNS

Nommage direct : du nom vers les adresses Enregistrement AAAA


ns3.nic.fr. IN AAAA 2001:660:3006:1::1:1

Nommage inverse : de l'adresse vers les noms


enregistrement PTR, stock sous l'arbre DNS inverse ip6.arpa
1.0.0.0.1.0.0.0.0.0.0.0.0.0.0.0.1.0.0.0.6.0.0.3.0.6.6.0.1.0.0.2.ip6.arpa. IN PTR ns3.nic.fr.

Logiciels DNSv6: BIND9 de l'ISC


enregistrement AAAA, PTR sous ip6.arpa, transport IPv6

Enregistrement A6 dcoupant l'adresse en 2 parties t finalement cart de la standardisation

Intgration d'IPv6 dans le DNS

Les deux aspects du DNS: BDD et application client/serveur doivent supporter IPv6 Taille limite des messages DNS en UDP: transport des messages DNS par UDP et TCP (port 53).

requtes/rponses DNS en UDP sauf si taille > 512 transferts de zones en TCP et requtes trop longues

Adresses des serveurs racine publies dans le DNS sont en IPv4 => utiliser un serveur forwarder en double pile IPv4/IPv6. Adresses des TLD sont presque toutes en IPv4 (IANA autorise depuis 2004 les glues IPv6; .fr, .jp et .kr ont t les premiers)

Mobilit IPv6
Base sur MobileIPv4, mais tire partie des mcanismes d'IPv6 (configuration automatique, extensions destination,...):

Plusieurs adresses IPv6 pour le mobile Noeud agent mre dans chaque rseau qui relaie les donnes au mobile Mcanisme de table des associations pour permettre communication directe

Scurit
IPsec: mcanismes de scurit pour IP (v4 ou v6) optionnel pour IPv4, obligatoire pour IPv6
L'extension d'authentification (AH : Authentication Header): - s'assurer que l'metteur du msg est bien celui qu'il prtend tre - contrle d'intgrit pour garantir au rcepteur que personne n'a modifi le contenu d'un message lors de son transfert sur le rseau L'extension ESP (Encapsulating Security Payload): - chiffrer l'ensemble des paquets ou leur partie transport et de garantir l'authentification et l'intgrit de ces paquets - dtecter les rejeux - garantir (de faon limite) la confidentialit du flux.

Mcanismes de transition
A diffrents niveaux:

Sur les htes: double pile Sur le rseau: tunnels


Manuels Configurs: Tunnel Broker Automatiques: TEREDO, 6to4, ISATAP, 6over4

Par translation de protocoles


NAT-PT: traduire les en-ttes des paquets IPv6 en IPv4 Relais applicatifs: pour applications courantes

Hte avec Double Pile

L'hte inclue les deux protocoles (IPv4 et IPv6) et chaque interface possde la fois une adr IPv4 et une (ou plusieurs) adr IPv6 Les applications fonctionnant avec IPv4 seulement utilisent IPv4, Les applications supportant IPv6 interrogent le DNS pour savoir si la destination possde une adr IPv6: si oui, l'hte communique en IPv6; si non, IPv4 est utilis => Facile mettre en place mais ne rduit pas le besoin d'adresses et les deux types de rseaux sont compltement spars

Tunnel IPv6-dans-IPv4

Les paquets IPv6 encapsuls dans des paquets IPv4 l'entre du tunnel en ajoutant un en-tte IPv4 (avec champ PROTOCOLE=41) et dcapsuls et traits comme s'ils provenaient du rseau IPv6 la sortie du tunnel En-tte IPv4 Paquet IPv6

Les routeurs (ou htes) d'entre et sortie du tunnel doivent tre double pile Pour la couche v6: le tunnel est vu comme un une liaison v6 (un seul saut) et le rseau v4 comme une couche de niveau 2

Tunnel Broker

Service web en IPv4 qui aide l'utilisateur crer un tunnel v6/v4 avec un de ses routeurs:

L'utilisateur est identifi Le tunnel broker configure sa partie du tunnel et envoie les paramtres l'utilisateur pour qu'il configure l'autre partie du tunnel sur sa machine hte

Utilise le protocole TSP (Tunnel Setup Protocol): ngociation automatise des diffrents paramtres du tunnel

TEREDO (1/2)

Protocole de tunnelage permettant un hte derrire un NAT d'accder l'Internet IPv6 par le biais d'un serveur et de relais Teredo En-tte IPv4 En-t En-t te te En-tte Paquet IPv6 UDP IPv4UDP

Les paquets IPv6 sont encapsuls dans des paquets UDP (euxmme encapsuls dans des paquets IPv4) pour traverser le rseau IPv4 et les serveurs NAT

TEREDO (2/2)

Format des adresses: 32 bits 32 bits Prfixe teredo 2001:0::/32 Limitations:


16 bits 16 bits Flags Port

32 bits @v4 client

@v4 serveur

Complexe Ne fonctionne pas avec tous les types de NAT Nombre limit de relais Teredo dans l'Internet

6to4

Le mcanisme 6to4 permet d'interconnecter entre eux des sites IPv6 isols en crant des tunnels automatiques IPv6 dans IPv4 en fonction du destinataire des donnes. Utilise 2 entits:

le routeur de bordure, encapsule les paquets IPv6 dans des paquets IPv4, est connect IPv4 et IPv6 le relais 6to4: quipement rseau dont l'adresse est bien connue (adresse anycast). Il assure la connexion l'Internetv6. 16 bits 32 bits 16 bits @ IPv4 du routeur ss-rs de bordure 64 bits ident_interface

Format des adresses: 2002::/16

Dploiement: applications
Peu de modifications sont en gnral ncessaires (sauf si l'application utilise les adresses) - nouveau type de sockets en C: AF_INET6 au lieu de AF_INET - pas de modification en Java grce aux objets Une liste de serveurs web IPv6: http://www.ipv6.org/v6-www.html

Dploiement: systmes

Windows: support de base depuis XP


activation par ipv6 install sous DOS; activ par dfaut sous Vista

Linux: intgr depuis les noyaux 2.2


les noyaux 2.6 grent l'IPsec

BSD: IPv6 disponible depuis longtemps.


Les version rcentes proviennent de la souche KAME (japon)

Macintosh: standard en MacOS X (10.3)

Dploiement: Rseau

Routeurs (Cisco, juniper, 6wind ...): OK depuis plusieurs annes (aprs mise jour de l'IOS) Rseau: le coeur de l'Internet est compatible IPv6 SFINX: point d'change Internet franais gr par Renater intgre IPv6 depuis 2002

Dploiement: ISP
Les plus frileux pour l'instant!

Nerim: connexion ADSL IPv6 depuis 2003 Wanadoo: exprimentation depuis 2005 Free: propos depuis dcembre 2007 Google possde un bloc de 296 adresses IPv6 (2001:4860::/32)

Conclusion

Qu'est-ce qu'on attend?

Vous aimerez peut-être aussi