Pourquoi une nouvelle version du protocole IP ? - Jean-Luc ...

heatanklesSoftware and s/w Development

Jul 2, 2012 (5 years and 2 months ago)

331 views

1
Tutoriel sur IPv6
JRES 2001,
10 décembre 2001
Jean-Luc.Richier@imag.fr Luc.Saccavini@inria.fr
JRES01 / Tutoriel IPv6 2
JLR/LS
Pourquoi une nouvelle
version du protocole IP ?
2
JRES01 / Tutoriel IPv6 3
JLR/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 fractions de 1/256
JRES01 / Tutoriel IPv6 4
JLR/LS
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)
3
JRES01 / Tutoriel IPv6 5
JLR/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 sortir
RFC 1631, 2663 et 2993
JRES01 / Tutoriel IPv6 6
JLR/LS
Aspects technologiques du
protocole IPv6, et nouveautés
par rapport à IPv4
4
JRES01 / Tutoriel IPv6 7
JLR/LS
En-tête IPv4
Ver.
fragment
Identifier
Total Length
flags
20 Bytes
32 bits
DiffServ
Options
IHL
TTL
Protocol
Checksum
Source Address
Destination Address
JRES01 / Tutoriel IPv6 8
JLR/LS
IPv6 : simplification de l’en-tête
Ver.
Hop Limit
Payload Length
Flow Label
Next Header
Source Address
Destination Address
40 Bytes
5 words
32 bits
DiffServ
5
JRES01 / Tutoriel IPv6 9
JLR/LS
Structure des adresses IPv6
JRES01 / Tutoriel IPv6 10
JLR/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 11
JLR/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 12
JLR/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 13
JLR/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 14
JLR/LS
Options v4 vs. extensions v6
R1
options IPv4 : analysées par chaque routeur
ralentit les paquets.
A
B
extensions IPv6 : (sauf Hop-by-Hop) sont traitées par
le seul matériel concerné (la destination).
8
JRES01 / Tutoriel IPv6 15
JLR/LS
IPv6 en-têtes optionnelles
IPv6 Header
Next Header
= TCP
TCP Header
+ DATA
IPv6 Header
Next Header
= Routing
Routing Header
Next Header
= Fragment
TCP Header
+ DATA
Fragment Header
Next Header
= TCP
IPv6 Header
Next Header
= Routing
Routing Header
Next Header
= TCP
TCP Header
+ DATA
JRES01 / Tutoriel IPv6 16
JLR/LS
Auto-configuration : mécanisme
Routeur
host
Internet
Internet
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 17
JLR/LS
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)
JRES01 / Tutoriel IPv6 18
JLR/LS
DNS
10
JRES01 / Tutoriel IPv6 19
JLR/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 20
JLR/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 21
JLR/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 22
JLR/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 23
JLR/LS
Aller vers IPv6
JRES01 / Tutoriel IPv6 24
JLR/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 25
JLR/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 26
JLR/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 27
JLR/LS
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
JRES01 / Tutoriel IPv6 28
JLR/LS
Paris
Rennes
Nancy
Strasbourg
Sophia
Lille
6Bone
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 29
JLR/LS
Réseau pilote IPv6 Renater
Rennes
Nancy
Strasbourg
Sophia
Lille
Brest
Belfort
Euro-IPv6
G6bone
6bone
Other
IPv6
Networks
6TAP
Sfinx
FT R&D
Loria
INRIA
Caen
Paris
Grenoble
Nantes
Colmar
http://www.renater.fr/IPv6
JRES01 / Tutoriel IPv6 30
JLR/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

Web
Internet Explorer, mozilla,
apache, squid

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

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

Mail
sendmail, popper, clients (?)

...
16
JRES01 / Tutoriel IPv6 31
JLR/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 33
JLR/LS
Situation initiale : site IPv4 seul
Site IPv4
NFS
Internet IPv4
Routeur de sortie
NATv4+
ALG
routeurs
routeurs
web
v4
v4
v4
v4
client
pop
client
JRES01 / Tutoriel IPv6 34
JLR/LS
Situation cible: connexion au 6bone
Router
v6
v6
Routeurs
v4 / v6
v4/v6
v4/v6
v4/v6
Routeur de sortie
NATv4
ALG
Site v4/v6
NFS
client
Internet IPv4
client
tunnel
tunnel configuré
“Réseau
IPv6”
web
pop
client
18
JRES01 / Tutoriel IPv6 35
JLR/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 le
G6bone (+ route par défaut ou BGP4+)
JRES01 / Tutoriel IPv6 36
JLR/LS
But final : intégration IPv4 / IPv6
Router
v6
v6
Routeurs
v4 / v6
v4/v6
v4/v6
v4/v6
Routeur de sortie
NATv4
ALG
Site v4/v6
NFS
client
Internet IPv4
client
tunnel
tunnel configuré
“6bone”
web
pop
client
Intégration v4/v6 :
par exemple DSTM
19
JRES01 / Tutoriel IPv6 37
JLR/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
Serveur
Client
Intégration
JRES01 / Tutoriel IPv6 38
JLR/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 39
JLR/LS
Scénario 1: hôte v6 vers hôte v4
X Y Z
DNS
DSTM
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
DNS
JRES01 / Tutoriel IPv6 40
JLR/LS
Scénario 1: hôte v6 vers hôte v4
X Y Z
DNS
DSTM
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 41
JLR/LS
Scénario 2: hôte v4 vers hôte v6
X Y Z
DNS
DSTM
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 42
JLR/LS
Scénario 2: hôte v4 vers hôte v6
X Y Z
DNS
DSTM
Le paquet v4 est routé vers Y
DNS
Y demande au serveur DSTM l’adresse X6 correspondant à X4
Y encapsule le paquet v4 dans un paquet v6 et
l’envoie à X
22
JRES01 / Tutoriel IPv6 43
JLR/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 44
JLR/LS
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)
– ….
23
JRES01 / Tutoriel IPv6 45
JLR/LS
Exemple de relais applicatif
Client
Client
Spooler
Spooler
Imprimante
Imprimante
IPv6
IPv6
IPv4
IPv4

Une vieille imprimante sans pile IPv6
JRES01 / Tutoriel IPv6 46
JLR/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 47
JLR/LS
Conclusion
Complexité
Temps
IPv4
IPv6
JRES01 / Tutoriel IPv6 48
JLR/LS
Le
G6
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
25
JRES01 / Tutoriel IPv6 49
JLR/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 50
JLR/LS
?

ou