Anda di halaman 1dari 25

Tutoriel sur IPv6

JRES 2001,
10 décembre 2001

Jean-Luc.Richier@imag.fr Luc.Saccavini@inria.fr

Pourquoi une nouvelle


version du protocole IP ?

JLR/LS JRES01 / Tutoriel IPv6 2

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

Utilisation de l'espace d'adressage IPv4

250
e n f r a c t io n s d e 1 / 2 5 6

200

150

100

50

0
1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 2001
Années

JLR/LS JRES01 / Tutoriel IPv6 3

Mesures d’urgence

■ 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)

JLR/LS JRES01 / Tutoriel IPv6 4

2
Conséquence des mesures d’urgence

■ 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
JLR/LS JRES01 / Tutoriel IPv6 5

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

JLR/LS JRES01 / Tutoriel IPv6 6

3
En-tête IPv4
32 bits

Ver. IHL DiffServ Total Length

20 Bytes
Identifier flags fragment
TTL Protocol Checksum
Source Address
Destination Address

Options

JLR/LS JRES01 / Tutoriel IPv6 7

IPv6 : simplification de l’en-tête


32 bits

Ver. DiffServ Flow Label


Payload Length Next Header Hop Limit
40 Bytes
5 words

Source Address

Destination Address

JLR/LS JRES01 / Tutoriel IPv6 8

4
Structure des adresses IPv6

JLR/LS JRES01 / Tutoriel IPv6 9

Schéma d’adressage
■ Les adresses de 128 bits permettent
– une organisation hiérarchique
– la flexibilité lors des évolutions de réseau
■ 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 10

5
Adresses IPv6

■ Loopback ::1 ■ Unicast


■ Link local FE80::…. ■ Multicast
■ Site local FEC0::…. ■ Anycast
■ Global
– 6bone : 3FFE…
– Officielles : 200x…
– IPv4 ‘mappées’
Spécifiques à l’intégration
– IPv4 compatibles
IPv4/IPv6
– 6to4 : 2002::…
JLR/LS JRES01 / Tutoriel IPv6 11

Adresses IPv6 (2)


48 bits 80 bits

001 TLA NLA SLA Interface ID

3 bits 13 bits 32 bits 16bits 64 bits


EUI64
Topologie Publique Topologie Privée

TLA : Top Level Aggregator => (/16)


NLA : Next Level Aggregator => (/48)
SLA : Site Level Aggregator => (/64)
JLR/LS JRES01 / Tutoriel IPv6 12

6
Autres améliorations

■ Amélioration du support
– de la sécurité (IPsec)
– de la mobilité
■ Amélioration de la gestion des flots
■ Auto-configuration

JLR/LS JRES01 / Tutoriel IPv6 13

Options v4 vs. extensions v6

A
R1

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 14

7
IPv6 en-têtes optionnelles
IPv6 Header
Next Header TCP Header
= TCP + DATA

IPv6 Header Routing Header


Next Header
TCP Header
Next Header
= TCP + DATA
= Routing

IPv6 Header Routing Header Fragment Header


TCP Header
Next Header Next Header Next Header
+ DATA
= Routing = Fragment = TCP

JLR/LS JRES01 / Tutoriel IPv6 15

Auto-configuration : mécanisme
host Créer l’@ link local

Internet Exécuter DAD

Envoi d’un RS à une


adresse Multicast
Récupérer les préfixes

Routeur Définir le routeur défaut


RS

RA
(DNS Dynamic Update)
JLR/LS JRES01 / Tutoriel IPv6 16

8
Router Renumbering (prévu)

■ Permet de changer les adresses et les


préfixes annoncés par les routeurs
‘Neighbor discovery’ propage la
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

DNS

JLR/LS JRES01 / Tutoriel IPv6 18

9
Enregistrements IPv6

RR : nouveaux types d’enregistrement


■ A → AAAA
$ORIGIN mew.org.
ftp IN AAAA 3ffe:501:8:1234:260:97ff:fe40:efab
■ 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.

JLR/LS JRES01 / Tutoriel IPv6 19

Serveur DNS

■ bind > 8.2.3 (8.2.5 actuellement)


– AAAA & PTR support (contents)
– RR v6 mais transport v4 uniquement

■ bind v9 (9.1.3 actuellement)


– AAAA, A6, PTR, DNAME
– RR et transport v6 et v4

JLR/LS JRES01 / Tutoriel IPv6 20

10
APIs

■ getaddrinfo() recherche directe


– hostname → adresses (‘sockaddr_in*’)
– remplace gethostbyname()
– en utilisant la famille AF_UNSPEC, les
applications sont ‘protocole indépendant’
■ getnameinfo() recherche inverse
– adresse (‘sockaddr_in*’) → hostname
– remplace gethostbyaddr()

JLR/LS JRES01 / Tutoriel IPv6 21

Protocoles de routage

■ 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


JLR/LS JRES01 / Tutoriel IPv6 22

11
Aller vers IPv6

JLR/LS JRES01 / Tutoriel IPv6 23

Transition ou Intégration ?

■ Les conditions
– 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 24

12
Étapes de migration

■ ‘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

JLR/LS JRES01 / Tutoriel IPv6 25

L’existant : routage
■ Cisco : IOS 12.2(2)T
■ Ericsson
■ 6Wind : tout produit
■ Nortel
■ Telebit
■ Juniper
■ Logiciel Zebra : Ripng, Ospf v3, Bgp4+

JLR/LS JRES01 / Tutoriel IPv6 26

13
L’existant : accéder à IPv6

■ Réseaux IPv6 : 6bone/G6bone, Renater


IPv6, opérateurs (?), …
Accès natif, ATM, ou par tunnels sur IPv4 configurés
entre routeurs.
■ Connexion en utilisant infrastructure IPv4
– Tunnels à la demande : Tunnel broker
– 6to4
– 6over4

JLR/LS JRES01 / Tutoriel IPv6 27

Réseau G6bone
Q2/2K Lille

3ffe:307::/32
Caen Strasbourg
Nancy
Paris 3ffe:303::/32
3ffe:304::/32
Brest
Rennes
Colmar
3ffe:305::/32 Belfort

Nantes

3ffe:306::/32
3ffe:308::/32
Montbonnot
Bordeaux
6Bone

Grenoble
3ffe:302::/32

G6= 3FFE:0300::/24 Sophia

JLR/LS JRES01 / Tutoriel IPv6 28

14
Réseau pilote IPv6 Renater
Lille

FT R&D Sfinx
Caen Nancy
Strasbourg
Paris
Loria
Brest Rennes
Colmar
INRIA
Belfort
Other
IPv6 Nantes
Networks Euro-IPv6
6TAP G6bone Grenoble
6bone

Sophia

http://www.renater.fr/IPv6
JLR/LS JRES01 / Tutoriel IPv6 29

L’existant - piles et applications


■ FreeBSD : 4.x ■ Web
■ NetBSD : 1.5 Internet Explorer, mozilla,
apache, squid
■ Linux : 2.4 ■ Langages
■ Apple : MacOS X C(API libc), java, perl, python
■ Microsoft : ■ Connectivité
Windows NT, 2000, telnet, ftp, ssh, rlogin, lpd(Unix)
XP developer
■ Mail
■ Solaris : 8 sendmail, popper, clients (?)
■ AIX : 4.3 ■ ...
■ Compaq : True 64
JLR/LS JRES01 / Tutoriel IPv6 30

15
Mécanismes de cohabitation
■ Exemples de mécanismes en fonction
de leur positionnement
• Relais applicatifs, mandataires
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

Mécanismes de transition-
intégration :

Étude d’un cas générique

16
Situation initiale : site IPv4 seul

v4 NFS

routeurs
v4 web pop

client v4
Internet IPv4
routeurs
client Routeur de sortie
v4
NATv4+
ALG
Site IPv4

JLR/LS JRES01 / Tutoriel IPv6 33

Situation cible: connexion au 6bone

Internet IPv4
NFS
v4/v6

Routeurs
web pop v4 / v6
v4/v6

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

JLR/LS JRES01 / Tutoriel IPv6 34

17
Niveau réseau
■ 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+)

JLR/LS JRES01 / Tutoriel IPv6 35

But final : intégration IPv4 / IPv6

Internet IPv4
NFS
v4/v6

Routeurs
web pop v4 / v6
v4/v6

tunnel
client
v4/v6
client “6bone”

client Router Routeur de sortie


v6
v6
NATv4
ALG
Site v4/v6 tunnel configuré
Intégration v4/v6 :
par exemple DSTM

JLR/LS JRES01 / Tutoriel IPv6 36

18
Dialogue niveau machines
Serveur
v4 v4/v6 v6
Client
v4 v4 natif v4 natif Intégration

v4/v6 v4 natif v6 natif v6 natif

v6 Intégration v6 natif v6 natif

Méthodes d’intégration v4/v6:


– Dual stack (IPv4 ET IPv6)
– DSTM : Dual Stack Transition Mechanism
– ...
JLR/LS JRES01 / Tutoriel IPv6 37

Dual Stack Transition Mechanism


■ 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
JLR/LS JRES01 / Tutoriel IPv6 38

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

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 JRES01 / Tutoriel IPv6 39

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


DSTM DNS DNS

X Y Z

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
JLR/LS JRES01 / Tutoriel IPv6 40

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

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 JRES01 / Tutoriel IPv6 41

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


DSTM DNS DNS

X Y Z

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
JLR/LS JRES01 / Tutoriel IPv6 42

21
DSTM

■Invisible depuis les applications


– utilisant des adresses v4 dans les données
■ 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
JLR/LS JRES01 / Tutoriel IPv6 43

Relais applicatifs, mandataires

■ 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)
– ….

JLR/LS JRES01 / Tutoriel IPv6 44

22
Exemple de relais applicatif
■ Une vieille imprimante sans pile IPv6

Client Spooler Imprimante

IPv6 IPv4

JLR/LS JRES01 / Tutoriel IPv6 45

Conclusion

■ La complexité du monde IPv4 va croissant


– Nouvelles applications
– Nouveaux paradigmes (sécurité)
– Fin du modèle de bout en bout (NAT)
■ 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 46

23
Conclusion
Complexité

IPv6

IPv4

Temps

JLR/LS JRES01 / Tutoriel IPv6 47

Le G6
■ 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 ...
■ Partenariats avec des constructeurs
■ G6 Recherche

JLR/LS JRES01 / Tutoriel IPv6 48

24
Ressources bibliographiques
■ 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 JRES01 / Tutoriel IPv6 49

? ou

JLR/LS JRES01 / Tutoriel IPv6 50

25

Anda mungkin juga menyukai