Vous êtes sur la page 1sur 9

Tutoriel sur IPv6

Pourquoi une nouvelle


version du protocole IP ?
JRES 2001,
10 décembre 2001

Jean-Luc.Richier@imag.fr Luc.Saccavini@inria.fr
JLR/LS JRES01 / Tutoriel IPv6 2

L’épuisement des adresses IPv4


(source www.iana.org en décembre 2001) Mesures d’urgence
Utilisation de l'espace d'adressage IPv4

250 ■ Allocation exceptionnelle de réseaux de


200 classe B
150 ■ Réutilisation des adresses de classe C
en fractions de 1/256

100
■ CIDR (Classless Internet Domain Routing)
50
■ NAT et adressage privé (RFC1918)
0
1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 2001
Années

JLR/LS JRES01 / Tutoriel IPv6 3 JLR/LS JRES01 / Tutoriel IPv6 4

Conséquence des mesures d’urgence

■ Force les plans d’adressage privés


■ Les adresses sont utilisées en interne Aspects technologiques du
■ Ressemble à une architecture de protocole IPv6, et nouveautés
sécurité avec ‘firewall’
par rapport à IPv4
■ Utilisation de ‘proxy’ ou NAT pour sortir
RFC 1631, 2663 et 2993
JLR/LS JRES01 / Tutoriel IPv6 5 JLR/LS JRES01 / Tutoriel IPv6 6

1
En-tête IPv4 IPv6 : simplification de l’en-tête
32 bits 32 bits

Ver. IHL DiffServ Total Length Ver. DiffServ Flow Label

20 Bytes
Identifier flags fragment Payload Length Next Header Hop Limit
TTL Protocol Checksum

40 Bytes
Source Address

5 words
Source Address
Destination Address

Options
Destination Address

JLR/LS JRES01 / Tutoriel IPv6 7 JLR/LS JRES01 / Tutoriel IPv6 8

Schéma d’adressage
■ Les adresses de 128 bits permettent
– une organisation hiérarchique
– la flexibilité lors des évolutions de réseau

Structure des adresses IPv6 ■ adressage sans classe (idem CIDR)


– adresse réseau := <préfixe> / <longueur préfixe>
• 3FFE:302:12::/48
• 3FFE:302:12:2:a00:20ff:fe18:964c/64
– l’‘Aggrégation’ réduit la taille des tables de routage
■ notation numérique hexadécimale
■ une interface a plusieurs adresses IPv6
JLR/LS JRES01 / Tutoriel IPv6 9 JLR/LS JRES01 / Tutoriel IPv6 10

Adresses IPv6 Adresses IPv6 (2)


48 bits 80 bits
■ Loopback ::1 ■ Unicast
001 TLA NLA SLA Interface ID
■ Link local FE80::…. ■ Multicast
3 bits 13 bits 32 bits 16bits 64 bits
■ Site local FEC0::…. ■ Anycast
EUI64
■ Global
Topologie Publique Topologie Privée
– 6bone : 3FFE…
– Officielles : 200x…
TLA : Top Level Aggregator => (/16)
– IPv4 ‘mappées’
Spécifiques à l’intégration NLA : Next Level Aggregator => (/48)
– IPv4 compatibles
IPv4/IPv6 SLA : Site Level Aggregator => (/64)
– 6to4 : 2002::…
JLR/LS JRES01 / Tutoriel IPv6 11 JLR/LS JRES01 / Tutoriel IPv6 12

2
Autres améliorations Options v4 vs. extensions v6

■ Amélioration du support
A
– de la sécurité (IPsec) R1

– de la mobilité
■ Amélioration de la gestion des flots options IPv4 : analysées par chaque routeur
ralentit les paquets.
■ Auto-configuration
extensions IPv6 : (sauf Hop-by-Hop) sont traitées par
le seul matériel concerné (la destination).
B
JLR/LS JRES01 / Tutoriel IPv6 13 JLR/LS JRES01 / Tutoriel IPv6 14

IPv6 en-têtes optionnelles Auto-configuration : mécanisme


IPv6 Header
host Créer l’@ link local
TCP Header Exécuter DAD
Next Header
= TCP + DATA
Internet
Envoi d’un RS à une
adresse Multicast
IPv6 Header Routing Header Récupérer les préfixes
Next Header
TCP Header
Next Header
+ DATA
= Routing = TCP
Routeur Définir le routeur défaut
RS

IPv6 Header Routing Header Fragment Header


TCP Header RA
Next Header Next Header Next Header
+ DATA (DNS Dynamic Update)
= Routing = Fragment = TCP

JLR/LS JRES01 / Tutoriel IPv6 15 JLR/LS JRES01 / Tutoriel IPv6 16

Router Renumbering (prévu)

■ Permet de changer les adresses et les


préfixes annoncés par les routeurs
‘Neighbor discovery’ propage la DNS
reconfiguration aux machines feuilles
■ Plusieurs actions prévues (envoi de
multicast aux routeurs:
– Changer un (ou une famille de) préfixes
– ajouter des préfixes
■ Besoin de sécurité (IPSec, anti-rejeu)
JLR/LS JRES01 / Tutoriel IPv6 17 JLR/LS JRES01 / Tutoriel IPv6 18

3
Enregistrements IPv6 Serveur DNS

RR : nouveaux types d’enregistrement ■ bind > 8.2.3 (8.2.5 actuellement)


■ A → AAAA – AAAA & PTR support (contents)
$ORIGIN mew.org. – RR v6 mais transport v4 uniquement
ftp IN AAAA 3ffe:501:8:1234:260:97ff:fe40:efab
■ PTR → PTR ■ bind v9 (9.1.3 actuellement)
■ in-addr.arpa → ip6.int – AAAA, A6, PTR, DNAME
$ORIGIN 4.3.2.1.8.0.0.0.1.0.5.0.e.f.f.3.IP6.INT.
– RR et transport v6 et v4
b.a.f.e.0.4.e.f.f.f.7.9.0.6.2.0 IN PTR ftp.mew.org.

JLR/LS JRES01 / Tutoriel IPv6 19 JLR/LS JRES01 / Tutoriel IPv6 20

APIs Protocoles de routage

■ getaddrinfo() recherche directe ■ RFC 2080 (PS) : RIPng


– hostname → adresses (‘sockaddr_in*’) ■ RFC 2858 (PS) : BGP4+
– remplace gethostbyname() ■ RFC 2740 (PS) : OSPF v3
– en utilisant la famille AF_UNSPEC, les ■ draft-ietf-isis-ipv6-02.txt: IS-IS
applications sont ‘protocole indépendant’
■ RFC 2545 (PS) : basé sur MBGP
■ getnameinfo() recherche inverse – Extension multi-protocoles de BGP
– adresse (‘sockaddr_in*’) → hostname
– remplace gethostbyaddr() => Pas de différences majeures avec IPv4
JLR/LS JRES01 / Tutoriel IPv6 21 JLR/LS JRES01 / Tutoriel IPv6 22

Transition ou Intégration ?

■ Les conditions
Aller vers IPv6 – Pas de jour J
– Persistance longue d’IPv4
– Pas d’application « tueuse d’IPv4 »

⇒ Coexistence longue entre IPv4 et IPv6

JLR/LS JRES01 / Tutoriel IPv6 23 JLR/LS JRES01 / Tutoriel IPv6 24

4
Étapes de migration L’existant : routage

■ ‘v6fier’ le réseau ■ Cisco : IOS 12.2(2)T


■ ‘v6fier’ les systèmes ■ Ericsson
■ 6Wind : tout produit
■ ‘v6fier’ les applications
■ Nortel
■ Maintenir la communication entre les
■ Telebit
deux mondes
– au niveau client/serveur
■ Juniper
– au niveau IP pour tout l’Internet
■ Logiciel Zebra : Ripng, Ospf v3, Bgp4+

JLR/LS JRES01 / Tutoriel IPv6 25 JLR/LS JRES01 / Tutoriel IPv6 26

Réseau G6bone
L’existant : accéder à IPv6 Q2/2K Lille

3ffe:307::/32
Caen Strasbourg
■ Réseaux IPv6 : 6bone/G6bone, Renater Brest
Paris
3ffe:304::/32
Nancy
3ffe:303::/32

Rennes
IPv6, opérateurs (?), … 3ffe:305::/32 Belfort
Colmar

Accès natif, ATM, ou par tunnels sur IPv4 configurés Nantes


entre routeurs.
■ Connexion en utilisant infrastructure IPv4 3ffe:306::/32
3ffe:308::/32
– Tunnels à la demande : Tunnel broker Bordeaux
Montbonnot
6Bone

Grenoble
– 6to4 3ffe:302::/32

– 6over4 G6= 3FFE:0300::/24 Sophia

JLR/LS JRES01 / Tutoriel IPv6 27 JLR/LS JRES01 / Tutoriel IPv6 28

Réseau pilote IPv6 Renater


Lille
L’existant - piles et applications
FT R&D Sfinx
Caen Nancy
Strasbourg ■ FreeBSD : 4.x ■ Web
Paris
Loria ■ NetBSD : 1.5 Internet Explorer, mozilla,
Brest Rennes apache, squid
Colmar
INRIA
Belfort ■ Linux : 2.4 ■ Langages
Other
IPv6 Nantes
■ Apple : MacOS X C(API libc), java, perl, python
Networks Euro-IPv6 ■ Microsoft : ■ Connectivité
6TAP G6bone Windows NT, 2000, telnet, ftp, ssh, rlogin, lpd(Unix)
Grenoble XP developer
6bone ■ Mail
■ Solaris : 8 sendmail, popper, clients (?)
Sophia ■ AIX : 4.3 ■ ...
■ Compaq : True 64
http://www.renater.fr/IPv6
JLR/LS JRES01 / Tutoriel IPv6 29 JLR/LS JRES01 / Tutoriel IPv6 30

5
Mécanismes de cohabitation
■ Exemples de mécanismes en fonction
de leur positionnement
Mécanismes de transition-
intégration :
• Relais applicatifs, mandataires
Applications
• Relais TCP/UDP & SOCKv6
• Bump in the API, Bump in the stack Étude d’un cas générique
Noyau système • Dual Stack
• Dual Stack Transition Mechanism

• Traducteurs d’adresses
• SIIT
• NAT-PT
JLR/LS JRES01 / Tutoriel IPv6 31

Situation initiale : site IPv4 seul Situation cible: connexion au 6bone


Internet IPv4
v4 NFS NFS
v4/v6

Routeurs
routeurs web pop v4 / v6
v4 web pop v4/v6

Internet IPv4 client client


tunnel “Réseau
client v4 v4/v6
IPv6”
routeurs
client client Router Routeur de sortie
v4 Routeur de sortie v6
v6
NATv4+ NATv4
ALG ALG
Site IPv4 Site v4/v6 tunnel configuré

JLR/LS JRES01 / Tutoriel IPv6 33 JLR/LS JRES01 / Tutoriel IPv6 34

Niveau réseau But final : intégration IPv4 / IPv6


■ Demande de préfixe au G6bone
Internet IPv4
■ Installation des routeurs IPv6
NFS
v4/v6
■ Installation d’un DNS avec RR de type Routeurs
web pop v4 / v6
AAAA et PTR (Bind >4.9.4 ou v9) v4/v6

tunnel
client client “6bone”
■ Configuration d’un tunnel (IPv6 dans v4/v6

IPv4) du routeur de bord vers le client


v6
Router
v6
Routeur de sortie
NATv4
G6bone (+ route par défaut ou BGP4+) Site v4/v6 ALG
tunnel configuré
Intégration v4/v6 :
par exemple DSTM

JLR/LS JRES01 / Tutoriel IPv6 35 JLR/LS JRES01 / Tutoriel IPv6 36

6
Dialogue niveau machines Dual Stack Transition Mechanism
Serveur
v4 v4/v6 v6
Client ■ Piles IPv4 et IPv6
v4 v4 natif v4 natif Intégration ■ La pile IPv4 n’est configurée que si une ou
plusieurs applications le nécessitent
v4/v6 v4 natif v6 natif v6 natif
■ Pas de réseau interne IPv4 nécessaire
v6 Intégration v6 natif v6 natif ■ Trois cas
1/ Session sortante (v6 → v4)
Méthodes d’intégration v4/v6: 2/ Session entrante (v4 → v6)
– Dual stack (IPv4 ET IPv6) 3/ Applications v4 (dans un nuage v6)
– DSTM : Dual Stack Transition Mechanism • Combinaison des scénarios 1 & 2
– ... • Génère du trafic v6 depuis des applications v4
JLR/LS JRES01 / Tutoriel IPv6 37 JLR/LS JRES01 / Tutoriel IPv6 38

Scénario 1: hôte v6 vers hôte v4 Scénario 1: hôte v6 vers hôte v4


DSTM DNS DNS DSTM DNS DNS

X Y Z X Y Z

L’application sur X utilise l’adresse v4 de Z et remonte au X encapsule le paquet v4 dans un paquet v6 pour Y
noyau un paquet v4
Y décapsule le paquet v6 et envoie la paquet v4 à Z
L’interface demande au serveur DSTM une adresse v4 src
Y conserve la mémoire de l’association des adresses v4 et v6.
Le serveur DSTM renvoie les adresses X4 et Y6
En réponse Z envoie à Y qui retransmet à X
JLR/LS JRES01 / Tutoriel IPv6 39 JLR/LS JRES01 / Tutoriel IPv6 40

Scénario 2: hôte v4 vers hôte v6 Scénario 2: hôte v4 vers hôte v6


DSTM DNS DNS DSTM DNS DNS

X Y Z X Y Z

L’application sur Z demande l’adresse v4 de X Le paquet v4 est routé vers Y


Y demande au serveur DSTM l’adresse X6 correspondant à X4
La demande échoue, le serveur DSTM alloue une
adresse v4 temporaire à X Y encapsule le paquet v4 dans un paquet v6 et
l’envoie à X
JLR/LS JRES01 / Tutoriel IPv6 41 JLR/LS JRES01 / Tutoriel IPv6 42

7
DSTM Relais applicatifs, mandataires

■Invisible depuis les applications ■ Peuvent être utilisés pour une grande
– utilisant des adresses v4 dans les données variété d’applications:
■ Le réseau est configuré uniquement v6 – Mél (POP3, IMAP, SMTP)
■ L’allocation des adresses v4 est simple – Web (mandataires : proxy, squid)
– Impression (serveurs d’impression)
■ Nécessite suffisamment d’adresses v4
– DNS : relais (+changement du type de RR)
■ Sujet aux attaques en déni de service
– ….
– cas 2 & 3 doivent être limités à l’Intranet
JLR/LS JRES01 / Tutoriel IPv6 43 JLR/LS JRES01 / Tutoriel IPv6 44

Exemple de relais applicatif Conclusion


■ Une vieille imprimante sans pile IPv6
■ La complexité du monde IPv4 va croissant
– Nouvelles applications
– Nouveaux paradigmes (sécurité)
Client Spooler Imprimante – Fin du modèle de bout en bout (NAT)
■ On va vers un réseau de “niveau 7”
IPv6 IPv4 – Plus de coûts
– De plus en plus de difficultés à introduire de
nouvelles applications (tel/IP, multicast,…)

JLR/LS JRES01 / Tutoriel IPv6 45 JLR/LS JRES01 / Tutoriel IPv6 46

Conclusion Le G6
Complexité

■ Groupe français d’expérimentation IPv6


IPv6 ■ Créé fin 1995
■ Regroupe des académiques et des industriels :
CNRS, ENST, INRIA, Universités Grenoble,
Paris 7, Strasbourg, Bull, 6Wind, Eurocontrol ...
IPv4 ■ Partenariats avec des constructeurs
■ G6 Recherche
Temps

JLR/LS JRES01 / Tutoriel IPv6 47 JLR/LS JRES01 / Tutoriel IPv6 48

8
Ressources bibliographiques
■ http://playground.sun.com/
RFCs, IDs, implémentations, …



http://www.ipv6.org
http://www.6bone.net
http://www.ipv6forum.com
? ou

■ http://peirce.logique.jussieu.fr/G6
■ http://www.g6.asso.fr

■ IPv6 théorie et pratique (G. Cizault, ed. O’Reilly)


JLR/LS JRES01 / Tutoriel IPv6 49 JLR/LS JRES01 / Tutoriel IPv6 50