Tutoriel sur IPv6 -...
Embed Size (px)
Transcript of Tutoriel sur IPv6 -...

1
Tutoriel sur IPv6
JRES 2001,10 décembre 2001
[email protected] [email protected]
JRES01 / Tutoriel IPv6 2JLR/LS
Pourquoi une nouvelleversion du protocole IP ?

2
JRES01 / Tutoriel IPv6 3JLR/LS
L’épuisement des adresses IPv4(source www.iana.org en décembre 2001)
Utilisation de l'espace d'adressage IPv4
0
50
100
150
200
250
1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 2001
Années
en fr
actio
ns d
e 1/
256
JRES01 / Tutoriel IPv6 4JLR/LS
Mesures d’urgence
■ Allocation exceptionnelle de réseaux declasse B
■ Réutilisation des adresses de classe C■ CIDR (Classless Internet Domain Routing)■ NAT et adressage privé (RFC1918)

3
JRES01 / Tutoriel IPv6 5JLR/LS
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 sortirRFC 1631, 2663 et 2993
JRES01 / Tutoriel IPv6 6JLR/LS
Aspects technologiques duprotocole IPv6, et nouveautés
par rapport à IPv4

4
JRES01 / Tutoriel IPv6 7JLR/LS
En-tête IPv4
Ver.fragmentIdentifier
Total Lengthflags
20 B
ytes
32 bits
DiffServ
Options
IHL
TTL Protocol ChecksumSource Address
Destination Address
JRES01 / Tutoriel IPv6 8JLR/LS
IPv6 : simplification de l’en-tête
Ver.Hop LimitPayload Length
Flow LabelNext Header
Source Address
Destination Address
40 B
ytes
5 w
ords
32 bits
DiffServ

5
JRES01 / Tutoriel IPv6 9JLR/LS
Structure des adresses IPv6
JRES01 / Tutoriel IPv6 10JLR/LS
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

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

7
JRES01 / Tutoriel IPv6 13JLR/LS
Autres améliorations
■ Amélioration du support– de la sécurité (IPsec)– de la mobilité
■ Amélioration de la gestion des flots■ Auto-configuration
JRES01 / Tutoriel IPv6 14JLR/LS
Options v4 vs. extensions v6
R1
options IPv4 : analysées par chaque routeurralentit les paquets.
A
B
extensions IPv6 : (sauf Hop-by-Hop) sont traitées parle seul matériel concerné (la destination).

8
JRES01 / Tutoriel IPv6 15JLR/LS
IPv6 en-têtes optionnelles
IPv6 HeaderNext Header
= TCPTCP Header
+ DATA
IPv6 HeaderNext Header
= Routing
Routing HeaderNext Header= Fragment
TCP Header + DATA
Fragment HeaderNext Header
= TCP
IPv6 HeaderNext Header
= Routing
Routing HeaderNext Header
= TCPTCP Header
+ DATA
JRES01 / Tutoriel IPv6 16JLR/LS
Auto-configuration : mécanisme
Routeur
hostInternetInternet
Créer l’@ link local
RS
Envoi d’un RS à une adresse Multicast
(DNS Dynamic Update)
Exécuter DAD
RA
Récupérer les préfixes
Définir le routeur défaut

9
JRES01 / Tutoriel IPv6 17JLR/LS
Router Renumbering (prévu)
■ Permet de changer les adresses et lespré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)
JRES01 / Tutoriel IPv6 18JLR/LS
DNS

10
JRES01 / Tutoriel IPv6 19JLR/LS
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.
JRES01 / Tutoriel IPv6 20JLR/LS
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

11
JRES01 / Tutoriel IPv6 21JLR/LS
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()
JRES01 / Tutoriel IPv6 22JLR/LS
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

12
JRES01 / Tutoriel IPv6 23JLR/LS
Aller vers IPv6
JRES01 / Tutoriel IPv6 24JLR/LS
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

13
JRES01 / Tutoriel IPv6 25JLR/LS
É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
JRES01 / Tutoriel IPv6 26JLR/LS
L’existant : routage
■ Cisco : IOS 12.2(2)T■ Ericsson■ 6Wind : tout produit■ Nortel■ Telebit■ Juniper■ Logiciel Zebra : Ripng, Ospf v3, Bgp4+

14
JRES01 / Tutoriel IPv6 27JLR/LS
L’existant : accéder à IPv6
■ Réseaux IPv6 : 6bone/G6bone, RenaterIPv6, 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
JRES01 / Tutoriel IPv6 28JLR/LS
Paris
Rennes
NancyStrasbourg
Sophia
Lille
6Bon
e
Nantes
Montbonnot
Q2/2K
Brest
Colmar
Caen
Grenoble
Belfort
3ffe:303::/32
3ffe:306::/32
3ffe:302::/32
G6= 3FFE:0300::/24
3ffe:308::/32
Bordeaux
3ffe:305::/32
3ffe:307::/32
3ffe:304::/32
Réseau G6bone

15
JRES01 / Tutoriel IPv6 29JLR/LS
Réseau pilote IPv6 Renater
Rennes
NancyStrasbourg
Sophia
Lille
Brest
Belfort
Euro-IPv6
G6bone6bone
OtherIPv6
Networks
6TAP
SfinxFT R&D
Loria
INRIA
CaenParis
Grenoble
Nantes
Colmar
http://www.renater.fr/IPv6
JRES01 / Tutoriel IPv6 30JLR/LS
L’existant - piles et applications■ FreeBSD : 4.x■ NetBSD : 1.5■ Linux : 2.4■ Apple : MacOS X■ Microsoft :
Windows NT, 2000,XP developer
■ Solaris : 8■ AIX : 4.3■ Compaq : True 64
■ WebInternet Explorer, mozilla,
apache, squid
■ LangagesC(API libc), java, perl, python
■ Connectivitételnet, ftp, ssh, rlogin, lpd(Unix)
■ Mailsendmail, popper, clients (?)
■ ...

16
JRES01 / Tutoriel IPv6 31JLR/LS
Mécanismes de cohabitation■ Exemples de mécanismes en fonction
de leur positionnement
Applications
Noyau système
• Relais applicatifs, mandataires
• Dual Stack • Dual Stack Transition Mechanism
• Traducteurs d’adresses• SIIT• NAT-PT
• Relais TCP/UDP & SOCKv6• Bump in the API, Bump in the stack
Mécanismes de transition-intégration :
Étude d’un cas générique

17
JRES01 / Tutoriel IPv6 33JLR/LS
Situation initiale : site IPv4 seul
Site IPv4
NFS
Internet IPv4
Routeur de sortieNATv4+ALG
routeurs
routeurs
web
v4
v4
v4
v4
client
pop
client
JRES01 / Tutoriel IPv6 34JLR/LS
Situation cible: connexion au 6bone
Router v6v6
Routeursv4 / v6
v4/v6
v4/v6
v4/v6
Routeur de sortieNATv4ALGSite v4/v6
NFS
client
Internet IPv4
clienttunnel
tunnel configuré
“RéseauIPv6”
web pop
client

18
JRES01 / Tutoriel IPv6 35JLR/LS
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 leG6bone (+ route par défaut ou BGP4+)
JRES01 / Tutoriel IPv6 36JLR/LS
But final : intégration IPv4 / IPv6
Router v6v6
Routeursv4 / v6
v4/v6
v4/v6
v4/v6
Routeur de sortieNATv4ALGSite v4/v6
NFS
client
Internet IPv4
clienttunnel
tunnel configuré
“6bone”
web pop
client
Intégration v4/v6 :par exemple DSTM

19
JRES01 / Tutoriel IPv6 37JLR/LS
Méthodes d’intégration v4/v6:– Dual stack (IPv4 ET IPv6)– DSTM : Dual Stack Transition Mechanism– ...
Dialogue niveau machines
v4
v4/v6
v6
v4
v4 natif
v4 natif
Intégration
v4/v6
v4 natif
v6 natif
v6 natif
v6
v6 natif
v6 natif
ServeurClient
Intégration
JRES01 / Tutoriel IPv6 38JLR/LS
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

20
JRES01 / Tutoriel IPv6 39JLR/LS
Scénario 1: hôte v6 vers hôte v4
X Y Z
DNSDSTM
L’application sur X utilise l’adresse v4 de Z et remonte au noyau un paquet v4L’interface demande au serveur DSTM une adresse v4 src
Le serveur DSTM renvoie les adresses X4 et Y6
DNS
JRES01 / Tutoriel IPv6 40JLR/LS
Scénario 1: hôte v6 vers hôte v4
X Y Z
DNSDSTM
X encapsule le paquet v4 dans un paquet v6 pour Y
DNS
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

21
JRES01 / Tutoriel IPv6 41JLR/LS
Scénario 2: hôte v4 vers hôte v6
X Y Z
DNSDSTM
L’application sur Z demande l’adresse v4 de X
La demande échoue, le serveur DSTM alloue une adresse v4 temporaire à X
DNS
JRES01 / Tutoriel IPv6 42JLR/LS
Scénario 2: hôte v4 vers hôte v6
X Y Z
DNSDSTM
Le paquet v4 est routé vers Y
DNS
Y demande au serveur DSTM l’adresse X6 correspondant à X4Y encapsule le paquet v4 dans un paquet v6 et l’envoie à X

22
JRES01 / Tutoriel IPv6 43JLR/LS
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
JRES01 / Tutoriel IPv6 44JLR/LS
Relais applicatifs, mandataires
■ Peuvent être utilisés pour une grandevariété d’applications:– Mél (POP3, IMAP, SMTP)– Web (mandataires : proxy, squid)– Impression (serveurs d’impression)– DNS : relais (+changement du type de RR)– ….

23
JRES01 / Tutoriel IPv6 45JLR/LS
Exemple de relais applicatif
ClientClient SpoolerSpooler ImprimanteImprimante
IPv6IPv6 IPv4IPv4
■ Une vieille imprimante sans pile IPv6
JRES01 / Tutoriel IPv6 46JLR/LS
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,…)

24
JRES01 / Tutoriel IPv6 47JLR/LS
ConclusionComplexité
Temps
IPv4
IPv6
JRES01 / Tutoriel IPv6 48JLR/LS
Le G6G6
■ 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

25
JRES01 / Tutoriel IPv6 49JLR/LS
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)
JRES01 / Tutoriel IPv6 50JLR/LS
? ou