Tutoriel sur IPv6

JRES 2001, 10 décembre 2001
Jean-Luc.Richier@imag.fr Luc.Saccavini@inria.fr
JLR/LS

Pourquoi une nouvelle version du protocole IP ?

JRES01 / Tutoriel IPv6

2

L’épuisement des adresses IPv4
(source www.iana.org en décembre 2001)

Mesures d’urgence
I

Utilisation de l'espace d'adressage IPv4
250 200 en fractions de 1/256 150 100 50 0 1990

I I I
1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 2001

Allocation exceptionnelle de réseaux de classe B Réutilisation des adresses de classe C CIDR (Classless Internet Domain Routing) NAT et adressage privé (RFC1918)

Années

JLR/LS

JRES01 / Tutoriel IPv6

3

JLR/LS

JRES01 / Tutoriel IPv6

4

Conséquence des mesures d’urgence
I I I

Force les plans d’adressage privés Les adresses sont utilisées en interne Ressemble à une architecture de sécurité avec ‘firewall’ Utilisation de ‘proxy’ ou NAT pour sortir RFC 1631, 2663 et 2993
JRES01 / Tutoriel IPv6 5

Aspects technologiques du protocole IPv6, et nouveautés par rapport à IPv4

I

JLR/LS

JLR/LS

JRES01 / Tutoriel IPv6

6

1

En-tête IPv4
32 bits

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

20 Bytes

Ver.

5 words

Source Address

Options Destination Address
JLR/LS

JRES01 / Tutoriel IPv6

7

JLR/LS

JRES01 / Tutoriel IPv6

40 Bytes
8 10 12

IHL DiffServ Total Length Identifier flags fragment TTL Protocol Checksum Source Address Destination Address

DiffServ Ver. Payload Length

Flow Label Next Header Hop Limit

Schéma d’adressage
I

Les adresses de 128 bits permettent
– une organisation hiérarchique – la flexibilité lors des évolutions de réseau

Structure des adresses IPv6

I

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
I I
JLR/LS

notation numérique hexadécimale une interface a plusieurs adresses IPv6
JRES01 / Tutoriel IPv6

JRES01 / Tutoriel IPv6

9

JLR/LS

Adresses IPv6
I I I I

Adresses IPv6 (2)
48 bits 80 bits SLA 16bits Interface ID 64 bits

Loopback ::1 Link local FE80::…. Site local FEC0::…. Global
– – – – – 6bone : 3FFE… Officielles : 200x… IPv4 ‘mappées’ IPv4 compatibles 6to4 : 2002::…

I I I

Unicast Multicast Anycast

001 TLA 3 bits 13 bits

NLA 32 bits

EUI64 Topologie Publique TLA NLA SLA
11
JLR/LS

Topologie Privée

Spécifiques à l’intégration IPv4/IPv6

: Top Level Aggregator => (/16) : Next Level Aggregator => (/48) : Site Level Aggregator => (/64)
JRES01 / Tutoriel IPv6

JLR/LS

JRES01 / Tutoriel IPv6

2

Autres améliorations
I

Options v4 vs. extensions v6
A R1

Amélioration du support
– de la sécurité (IPsec) – de la mobilité

I I

Amélioration de la gestion des flots Auto-configuration

options IPv4 : analysées par chaque routeur ralentit les paquets.

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
IPv6 Header Next Header = TCP

Auto-configuration : mécanisme
host
Créer l’@ link local Exécuter DAD Envoi d’un RS à une adresse Multicast

TCP Header + DATA

Internet
TCP Header + DATA

IPv6 Header Next Header = Routing

Routing Header Next Header = TCP

Récupérer les préfixes

Routeur
RS
TCP Header + DATA
15
JLR/LS

Définir le routeur défaut

IPv6 Header Next Header = Routing
JLR/LS

Routing Header Fragment Header Next Header Next Header = Fragment = TCP
JRES01 / Tutoriel IPv6

RA

(DNS Dynamic Update)
JRES01 / Tutoriel IPv6 16

Router Renumbering (prévu)
I

Permet de changer les adresses et les préfixes annoncés par les routeurs
‘Neighbor discovery’ propage la reconfiguration aux machines feuilles

DNS

I

Plusieurs actions prévues (envoi de multicast aux routeurs:
– Changer un (ou une famille de) préfixes – ajouter des préfixes

I

Besoin de sécurité (IPSec, anti-rejeu)
JRES01 / Tutoriel IPv6 17
JLR/LS

JLR/LS

JRES01 / Tutoriel IPv6

18

3

Enregistrements IPv6
RR : nouveaux types d’enregistrement I A → AAAA
$ORIGIN mew.org. ftp IN AAAA 3ffe:501:8:1234:260:97ff:fe40:efab
I I

Serveur DNS
I

bind > 8.2.3 (8.2.5 actuellement)
– AAAA & PTR support (contents) – RR v6 mais transport v4 uniquement

PTR → PTR in-addr.arpa → ip6.int
$ORIGIN 4.3.2.1.8.0.0.0.1.0.5.0.e.f.f.3.IP6.INT. b.a.f.e.0.4.e.f.f.f.7.9.0.6.2.0 IN PTR ftp.mew.org.

I

bind v9 (9.1.3 actuellement)
– AAAA, A6, PTR, DNAME – RR et transport v6 et v4

JLR/LS

JRES01 / Tutoriel IPv6

19

JLR/LS

JRES01 / Tutoriel IPv6

20

APIs
I

Protocoles de routage
I I I I I

getaddrinfo() recherche directe
– hostname → adresses (‘sockaddr_in*’) – remplace gethostbyname() – en utilisant la famille AF_UNSPEC, les applications sont ‘protocole indépendant’

I

getnameinfo() recherche inverse
– adresse (‘sockaddr_in*’) → hostname – remplace gethostbyaddr()

RFC 2080 (PS) : RIPng RFC 2858 (PS) : BGP4+ RFC 2740 (PS) : OSPF v3 draft-ietf-isis-ipv6-02.txt: IS-IS RFC 2545 (PS) : basé sur MBGP
– Extension multi-protocoles de BGP

=> Pas de différences majeures avec IPv4
21
JLR/LS

JLR/LS

JRES01 / Tutoriel IPv6

JRES01 / Tutoriel IPv6

22

Transition ou Intégration ?
I

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

Aller vers IPv6

⇒ Coexistence longue entre IPv4 et IPv6

JLR/LS

JRES01 / Tutoriel IPv6

23

JLR/LS

JRES01 / Tutoriel IPv6

24

4

Étapes de migration
I I I I

L’existant : routage
I I I I I I I

‘v6fier’ le réseau ‘v6fier’ les systèmes ‘v6fier’ les applications Maintenir la communication entre les deux mondes
– au niveau client/serveur – au niveau IP pour tout l’Internet

Cisco : IOS 12.2(2)T Ericsson 6Wind : tout produit Nortel Telebit Juniper Logiciel Zebra : Ripng, Ospf v3, Bgp4+
JRES01 / Tutoriel IPv6 26

JLR/LS

JRES01 / Tutoriel IPv6

25

JLR/LS

Réseau G6bone L’existant : accéder à IPv6
I
Q2/2K
Lille 3ffe:307::/32

Réseaux IPv6 : 6bone/G6bone, Renater IPv6, opérateurs (?), …
Accès natif, ATM, ou par tunnels sur IPv4 configurés entre routeurs.

Caen
Brest

Paris

Nancy 3ffe:304::/32

Strasbourg
3ffe:303::/32 Colmar

Rennes
Belfort Nantes

3ffe:305::/32

I

Connexion en utilisant infrastructure IPv4 6Bone
– Tunnels à la demande : Tunnel broker – 6to4 – 6over4
JLR/LS 3ffe:308::/32

3ffe:306::/32

Bordeaux

Montbonnot Grenoble
3ffe:302::/32

G6= 3FFE:0300::/24

Sophia

JRES01 / Tutoriel IPv6

27

JLR/LS

JRES01 / Tutoriel IPv6

28

Réseau pilote IPv6 Renater
Lille

L’existant - piles et applications
Nancy Strasbourg

FT R&D
Caen

Sfinx
I I I I Euro-IPv6 I
Paris Loria
Colmar INRIA Belfort

Brest

Rennes

Other IPv6 Networks

Nantes

FreeBSD : 4.x NetBSD : 1.5 Linux : 2.4 Apple : MacOS X Microsoft :
Windows NT, 2000, XP developer

I

Web
Internet Explorer, mozilla, apache, squid

I I I I

Langages
C(API libc), java, perl, python

Connectivité
telnet, ftp, ssh, rlogin, lpd(Unix)

6TAP 6bone

G6bone

Grenoble

I
Sophia

I I

Solaris : 8 AIX : 4.3 Compaq : True 64
JLR/LS

Mail
sendmail, popper, clients (?)

...
30

http://www.renater.fr/IPv6 JLR/LS

JRES01 / Tutoriel IPv6

29

JRES01 / Tutoriel IPv6

5

Mécanismes de cohabitation
I

Exemples de mécanismes en fonction de leur positionnement
• Relais applicatifs, mandataires

Mécanismes de transitionintégration : Étude d’un cas générique

Applications • Relais TCP/UDP & SOCKv6 • Bump in the API, Bump in the stack 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
NFS

Situation cible: connexion au 6bone
Internet IPv4
NFS pop
Routeurs v4 / v6

v4

v4/v6

v4

web

pop

routeurs
v4/v6

web

client

v4

Internet IPv4
routeurs Routeur de sortie NATv4+ ALG

tunnel
client
v4/v6

client

“Réseau IPv6”

client

v4

client

v6

Router v6

Site IPv4

Site v4/v6

Routeur de sortie NATv4 ALG tunnel configuré

JLR/LS

JRES01 / Tutoriel IPv6

33

JLR/LS

JRES01 / Tutoriel IPv6

34

Niveau réseau
I I I

But final : intégration IPv4 / IPv6
Internet IPv4
v4/v6

I

Demande de préfixe au G6bone Installation des routeurs IPv6 Installation d’un DNS avec RR de type AAAA et PTR (Bind >4.9.4 ou v9) Configuration d’un tunnel (IPv6 dans IPv4) du routeur de bord vers le G6bone (+ route par défaut ou BGP4+)

NFS pop
Routeurs v4 / v6

v4/v6

web

tunnel
client
v4/v6

client

“6bone”

client

v6

Router v6

Site v4/v6

Routeur de sortie NATv4 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
Serveur Client v4 v4/v6 v6 v4 v4 natif v4 natif Intégration v4/v6 v4 natif v6 natif v6 natif v6 Intégration v6 natif v6 natif

Dual Stack Transition Mechanism
I I I I

Piles IPv4 et IPv6 La pile IPv4 n’est configurée que si une ou plusieurs applications le nécessitent Pas de réseau interne IPv4 nécessaire Trois cas
1/ Session sortante (v6 → v4) 2/ Session entrante (v4 → v6) 3/ Applications v4 (dans un nuage v6)
• Combinaison des scénarios 1 & 2 • Génère du trafic v6 depuis des applications v4

Méthodes d’intégration v4/v6:
– Dual stack (IPv4 ET IPv6) – DSTM : Dual Stack Transition Mechanism – ...
JLR/LS

JRES01 / Tutoriel IPv6

37

JLR/LS

JRES01 / Tutoriel IPv6

38

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

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

X

Y

Z

X

Y

Z

L’application sur X utilise l’adresse v4 de Z et remonte au noyau un paquet v4 L’interface demande au serveur DSTM une adresse v4 src Le serveur DSTM renvoie les adresses X4 et Y6
JLR/LS

X encapsule le paquet v4 dans un paquet v6 pour Y Y décapsule le paquet v6 et envoie la paquet v4 à Z Y conserve la mémoire de l’association des adresses v4 et v6. En réponse Z envoie à Y qui retransmet à X
39
JLR/LS

JRES01 / Tutoriel IPv6

JRES01 / Tutoriel IPv6

40

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

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

X

Y

Z

X

Y

Z

L’application sur Z demande l’adresse v4 de X La demande échoue, le serveur DSTM alloue une adresse v4 temporaire à X
JLR/LS

Le paquet v4 est routé vers Y Y demande au serveur DSTM l’adresse X6 correspondant à X4 Y encapsule le paquet v4 dans un paquet v6 et l’envoie à X
41
JLR/LS

JRES01 / Tutoriel IPv6

JRES01 / Tutoriel IPv6

42

7

DSTM
IInvisible depuis les applications
– utilisant des adresses v4 dans les données
I I I I

Relais applicatifs, mandataires
I

Peuvent être utilisés pour une grande variété d’applications:
– Mél (POP3, IMAP, SMTP) – Web (mandataires : proxy, squid) – Impression (serveurs d’impression) – DNS : relais (+changement du type de RR) – ….

Le réseau est configuré uniquement v6 L’allocation des adresses v4 est simple Nécessite suffisamment d’adresses v4 Sujet aux attaques en déni de service
– cas 2 & 3 doivent être limités à l’Intranet
JRES01 / Tutoriel IPv6 43

JLR/LS

JLR/LS

JRES01 / Tutoriel IPv6

44

Exemple de relais applicatif
I

Conclusion
I

Une vieille imprimante sans pile IPv6

La complexité du monde IPv4 va croissant
– Nouvelles applications – Nouveaux paradigmes (sécurité) – Fin du modèle de bout en bout (NAT)

Client

Spooler

Imprimante

I
IPv6 IPv4

On va vers un réseau de “niveau 7”
– 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
Complexité

Le G6
I I
I

IPv6

Groupe français d’expérimentation IPv6 Créé fin 1995
Regroupe des académiques et des industriels : CNRS, ENST, INRIA, Universités Grenoble, Paris 7, Strasbourg, Bull, 6Wind, Eurocontrol ...

IPv4 Temps
JLR/LS

I I

Partenariats avec des constructeurs G6 Recherche
JLR/LS

JRES01 / Tutoriel IPv6

47

JRES01 / Tutoriel IPv6

48

8

Ressources bibliographiques
I I I I I I I

http://playground.sun.com/
RFCs, IDs, implémentations, …

http://www.ipv6.org http://www.6bone.net http://www.ipv6forum.com http://peirce.logique.jussieu.fr/G6 http://www.g6.asso.fr IPv6 théorie et pratique (G. Cizault, ed. O’Reilly)
JLR/LS

?
49
JLR/LS

ou

JRES01 / Tutoriel IPv6

JRES01 / Tutoriel IPv6

50

9

Sign up to vote on this title
UsefulNot useful