Vous êtes sur la page 1sur 54

Présentation

IPv6

Patrick Ducrot

- Ecole Nationale Supérieure d'Ingénieurs 1


de Caen -

Plan du document
Les limitation d'IPv4……………………………………………………………………………………………………………………………… 3

IPv6: un nouveau protocole………………………………………………………………………………………………………………… 8

En tête et extensions IPv6………………………………………………………………………………………………………………… 12

L'adressage IPv6…………………………………………………………………………………………………………………………………………… 31

Quelques services de base…………………………………………………………………………………………………………………… 48

Configuration et commandes………………………………………………………………………………………………………………… 65

La mobilité………………………………………………………………………………………………………………………………………………………… 70

Transition IPv4-IPv6………………………………………………………………………………………………………………………………… 81

Eléments de programmation…………………………………………………………………………………………………………………… 96

- Ecole Nationale Supérieure d'Ingénieurs 2


de Caen -

1
Les limitations d'IPv4

- Ecole Nationale Supérieure d'Ingénieurs 3


de Caen -

Les limitations d'IPv4


‡ Adressage sur 32 bits (2^32 = 4,29 milliards
d'adresses).

‡ Stock d'adresses très entamé.

‡ Répartition très inégale:


„ la zone américaine est très favorisée (environ 74%) par
rapport à l'Europe (environ 17%) et l'Asie (environ 9%)
pourtant de plus en plus active (Chine, Inde, …).
„ Plus de 50% des adresses sont antérieures aux RIR
(Regional Internet Registry) et donc non contrôlées.

- Ecole Nationale Supérieure d'Ingénieurs 4


de Caen -

2
Les différents RIR

afrinic|ipv4|994 apnic|ipv4|12208 arin|ipv4|36571 lacnic|ipv4|1633 ripencc|ipv4|20594


afrinic|ipv6|10 apnic|ipv6|427 ripencc|ipv6|692
arin|ipv6|240 lacnic|ipv6|54

chiffres mars 2006 (source: serveur ftp des RIR)

- Ecole Nationale Supérieure d'Ingénieurs 5


de Caen -

Les limitations d'IPv4


‡ La pénurie d'adresses a été retardée par:
„ L'utilisation du NAT mais brise la philosophie de bout en
bout (end to end).
„ L'utilisation de DHCP.

‡ Explosion des tables de routage malgré le


routage CIDR.

‡ IPv4 n'est pas un protocole adapté pour:


„ l'auto configuration (plug and play).
„ la mobilité.
„ la gestion de la qualité de service (QoS).
„ la gestion de la sécurité en natif.
„ disposer d'un "always-on environment".
- Ecole Nationale Supérieure d'Ingénieurs 6
de Caen -

3
L'explosion des besoins
‡ L'arrivée des services mobiles (gprs, edge,
umts).

‡ L'électronique connectée.

‡ Les véhicules communicants.

‡ La domotique.

‡ …
- Ecole Nationale Supérieure d'Ingénieurs 7
de Caen -

IPv6: un nouveau
protocole

- Ecole Nationale Supérieure d'Ingénieurs 8


de Caen -

4
L'apparition d'IPv6
‡ Début des travaux au milieu des années
1980 pour améliorer IP: IPng.

‡ IPv6 retenu comme nouveau standard


(RFC 1752) et adopté vers la fin des
années 1990.

‡ Type Ethernet 86DD (IPv4 = 0800).

- Ecole Nationale Supérieure d'Ingénieurs 9


de Caen -

Les apports d'IPv6


‡ Adresses sur 128 bits (2^128 = 3,4x10^38).

‡ Adressage hiérarchique pour optimiser le routage.

‡ En tête plus simple (8 champs au lieu de 13 en IPv4) et de taille


fixe pour améliorer les performances et intégrer de nouvelles
fonctionnalités par un mécanisme de liste chaînée d'extensions.

‡ Mécanisme d'auto configuration.

‡ Couche IPSec intégrée au protocole.

‡ extension du multicast et abandon du broadcast.

‡ Gestion de la mobilité.

- Ecole Nationale Supérieure d'Ingénieurs 10


de Caen -

5
Adressage hiérarchique et sécurité

- Ecole Nationale Supérieure d'Ingénieurs 11


de Caen -

En tête et extensions
IPv6

- Ecole Nationale Supérieure d'Ingénieurs 12


de Caen -

6
Entêtes IPv4 vs IPv6

champs IPv4 supprimés en IPv6

champs IPv4 maintenus


(mais renommés) en IPv6

- Ecole Nationale Supérieure d'Ingénieurs 13


de Caen -

En tête IPv6
Traffic class Type of service IPv4

Payload length Total length IPv4

Hop limit Time to live IPv4

Next Header Protocol IPv4

Nouveau champ: valeur pouvant être


Flow label attribuée par l'expéditeur. Le triplet
(expéditeur, destinataire, étiquette de
flux) peut faciliter le routage.
- Ecole Nationale Supérieure d'Ingénieurs 14
de Caen -

7
En têtes d'extension
exemples:

- Ecole Nationale Supérieure d'Ingénieurs 15


de Caen -

Valeurs du champ "next header"


Valeur Extension
0 proche en proche
43 routage Valeur Protocole
44 fragmentation 6 TCP
50 confidentialité 17 UDP
51 authentification 41 IPv6
59 fin des en têtes 58 ICMPv6
60 destination
135 mobilité IPv6
- Ecole Nationale Supérieure d'Ingénieurs 16
de Caen -

8
Ordre des en têtes d'extension

traité par tous les routeurs

traité par les routeurs listés dans l'extension "routing"

liste de routeurs à traverser

exécuté par le destinataire

exécuté après le réassemblage du paquet

chiffrement/déchiffrement de l'information

exécuté uniquement par le destinataire

- Ecole Nationale Supérieure d'Ingénieurs 17


de Caen -

Type Length Value


‡ Les extensions "hop by hop" et "destination" transportent
un nombre variable de valeurs (TLV).
‡ Format d'un TLV:
Option type Option Data Length Option Data

„ Option type: 8 bits, nature de l'option.


‡ Valeurs des 2 bits de poids fort:
ƒ 00 saute cette option et continue à parcourir l'entête
ƒ 01 jette le paquet
ƒ 10 jette le paquet, et retourne un message ICMP d'erreur
ƒ 11 jette le paquet, et retourne un message ICMP d'erreur si
l'adresse destination n'était pas une adresse multicast
‡ Le 3ème bit indique que le routeur peut modifier le contenu de
l'option (si 1) ou non (si 0).
„ Option data length: 8 bits, longueur de la zone donnée.
„ Option data: longueur variable, données.
- Ecole Nationale Supérieure d'Ingénieurs 18
de Caen -

9
Padding (bourrage)
‡ Une option de bourrage peut être utilisée
pour aligner une extension sur un multiple
de 8 octets.

‡ Deux options de padding:


„ Pad1 0

„ PadN 1 length data

‡ Exemple:"0x01 0x03 0x00 0x00 0x00".

- Ecole Nationale Supérieure d'Ingénieurs 19


de Caen -

Extension "hop by hop"


next header length options

‡ Options: 1 ou plusieurs TLV avec padding


„ Pad1
„ PadN
„ Jumbogramme (194,0xc2) RFC 2675:
Option utilisée quand la taille du paquet IPv6 est supérieure à 65535. Dans ce cas, le
"payload length" de l'entête IPv6 est à 0, et la partie "option" de l'extension est la
longueur du paquet IPv6 codée sur 32 bits.
„ Router alert (5) RFC 2711:
Si cette option est utilisée, chaque routeur (mais pas la destination) va
analyser le paquet. Si la valeur de l'extension vaut:
0: le datagramme contient un message "Multicast Listener
Discovery"
1: le datagramme contient un message "ReSerVation Protocol"
2: le datagramme contient un message "Active Networks"
3-65535: réservé pour des usages futurs par le IANA

- Ecole Nationale Supérieure d'Ingénieurs 20


de Caen -

10
Extension "destination"
‡ Même format que l'extension "hop by hop".

‡ Cette extension est interprétée par tous les relais


traversés si elle suit l'option "hop by hop" ou
uniquement par la destination si elle est située
après l'extension de sécurité.

‡ Option utilisée pour Pad1 et PadN et la mobilité.

- Ecole Nationale Supérieure d'Ingénieurs 21


de Caen -

Extension "routing"
- longueur = nombre de mots de 64 bits composant
l'extension.
-Type = 0.
- segments restants: nombre d'équipements à
traverser.
-réservé: pour maintenir l'alignement.
- listes des adresses.

‡ Cette extension permet d'influer sur le choix de la route.

‡ Seul le routage par la source (type=0) est supporté.

‡ Seul le routage libéral (loose) est supporté: un routeur peut utiliser sa


table de routage pour atteindre le prochain relais spécifié.

‡ Fonctionnement:
„ Le champ destination dans l'entête IPv6 contient l'adresse du premier relais.
„ Lorsque le premier relais est atteint, il remplace l'adresse de destination par
l'adresse du prochain relais et son adresse est retirée de la liste des relais à
traverser.
- Ecole Nationale Supérieure d'Ingénieurs 22
de Caen -

11
Extension "fragmentation"
en tête suivant réservé offset de fragmentation Rés P
Identification

‡ En tête suivant: 8 bits


‡ Réservé: 8 bits
‡ Offset de fragmentation: 13 bits
‡ Réservé: 2 bits
‡ P: 1 bit (0 = dernier fragment, 1 sinon)
‡ Identification: repérage des fragments

‡ La fragmentation permet d'envoyer une


information plus grande que le MTU.

‡ Seul l'expéditeur est autorisé à fragmenter.

- Ecole Nationale Supérieure d'Ingénieurs 23


de Caen -

La sécurité
‡ La mise en œuvre de la sécurité permet de garantir:
„ la confidentialité des données.
„ L'intégrité des données.
„ L'authentification de l'origine des données.
„ La protection contre le rejeu.

‡ La sécurité permet de se prémunir du "sniffing", du


"spoofing", des attaques "man in the middle",...

‡ La couche IPSec est intégrée à IPv6 sous la forme de deux


extensions:
„ extension d'authentification (Authentification Header)
garantissant l'authentification et l'intégrité (RFC 2402).
„ extension de confidentialité (Encapsulating Security Payload)
garantissant la confidentialité, l'intégrité et l'authentification
(RFC 2406).

- Ecole Nationale Supérieure d'Ingénieurs 24


de Caen -

12
IPSec mode transport ou tunnel

- Ecole Nationale Supérieure d'Ingénieurs 25


de Caen -

IPSec mode tunnel

- Ecole Nationale Supérieure d'Ingénieurs 26


de Caen -

13
IPSec mode intermédiaire

- Ecole Nationale Supérieure d'Ingénieurs 27


de Caen -

Association de sécurité
‡ Négociation du type de sécurité à utiliser (algorithmes et
clés de chiffrement, de hachage, …).

‡ Une SA est identifiée par un indice de paramètre de


sécurité (Security Parameters Index), l'adresse IP du
destinataire et le protocole de sécurité (AH ou ESP).

‡ Une SA contient:
„ en fonction du type de sécurité: les algorithmes
d'authentification, de chiffrement, les clés de chiffrement.
„ la durée de vie de l'association.
„ Le mode IPSec utilisé (transport, tunnel).

‡ Le SPI doit toujours être mentionné dans les extensions de


sécurité.

- Ecole Nationale Supérieure d'Ingénieurs 28


de Caen -

14
Extension "Authentification"
‡ Positionnement de l'extension AH:
En tête IPv6 hop by hop routing destination AH destination données

mode transport

En tête IPv6 + nouvelles extensions AH en tête IPv6 + extensions originales données

mode tunnel

‡ Contenu de l'extension AH:


En tête suivant lg extension réservé
indice des paramètres de sécurité
numéro de séquence
données d'authentification
nombre variable de mots de 32 bits

- Ecole Nationale Supérieure d'Ingénieurs 29


de Caen -

Extension "sécurité"
‡ Positionnement de l'extension ESP authentifié
chiffré

en tête IPv6 hop by hop destination ESP destination données queue ESP auth. ESP

mode transport
en tête IPv6 + ESP en tête IPv6 + données queue ESP auth. ESP
nouvelles extensions extensions originales

mode tunnel

‡ Contenu de l'extension ESP

- Ecole Nationale Supérieure d'Ingénieurs 30


de Caen -

15
L'adressage IPv6

- Ecole Nationale Supérieure d'Ingénieurs 31


de Caen -

Format des adresses IPv6


‡ Adresse sur 128 bits découpée en 8 mots de 16 bits.

‡ Exemple :

FEDC :0000 :0000 :0210 :EDBC :0000 :6543 :210F


ou
FEDC:0:0:210:EDBC:0:6543:210F (compression des 0 d'en tête)
ou
FEDC::210:EDBC:0:6543:210F (suppression d'une succession de 0)
FEDC::210:EDBC::6543:210F est incorrect

‡ Exemple d’utilisation:

http://[2001:1234:12::1]:8080

‡ Cohabitation v4/v6

0:0:0:0:0:FFFF:192.168.16.1 ou ::FFFF:192.168.16.1

- Ecole Nationale Supérieure d'Ingénieurs 32


de Caen -

16
Adressage IPv6
‡ Types d'adresse:
„ Unicast (un à un)
„ Multicast (un à
plusieurs)
„ Anycast (un à un parmi
plusieurs)

‡ Plan d'adressage:
Préfixe de routage global ID Sous réseau ID Interface
n bits m bits 128-n-m bits

- Ecole Nationale Supérieure d'Ingénieurs 33


de Caen -

Plan d'adressage
Allocation Préfixe binaire Préfixe hexa

Réservé 0000 0000 ::0/128

Réservé NSAP 0000 001 0200::/7

Global Unicast 001 2000::/3

Adresse lien local 1111 1110 10 FE80::/10

Adresse site local 1111 1110 11 FEC0::/10

Adresse multicast 1111 1111 FF00::/8

- Ecole Nationale Supérieure d'Ingénieurs 34


de Caen -

17
Adresse IPv6
‡ Un équipement dispose en général de plusieurs adresses IPv6
(contrairement à IPv4).

# ifconfig
eth1 Link encap:Ethernet HWaddr 00:30:48:2E:3D:7D
inet addr:193.49.200.59 Bcast:193.49.200.255 Mask:255.255.255.0
inet6 addr: 2001:660:7105::10/0 Scope:Global
inet6 addr: fe80::230:48ff:fe2e:3d7d/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:3684332 errors:0 dropped:0 overruns:0 frame:0
TX packets:2395860 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:460322611 (438.9 Mb) TX bytes:2578239647 (2458.8 Mb)
Base address:0x3040 Memory:fc220000-fc240000

- Ecole Nationale Supérieure d'Ingénieurs 35


de Caen -

Adresse "lien local"


‡ Une adresse "lien local" n'est valide que sur un lien (elle ne
traverse pas les routeurs).

‡ Tout équipement dispose automatiquement d'une adresse


lien-local qui va permettre de découvrir les voisins.

‡ Ce type d'adresse permet à 2 machines sur le même lien


de communiquer et peut aussi être utilisée pour une
connexion PPP ou pour les extrémités d'un tunnel.

‡ Construction d'une adresse lien local (préfixe FE80::/64):


FE8 0 Identifiant d'Interface
10 bits 54 bits 64 bits

- Ecole Nationale Supérieure d'Ingénieurs 36


de Caen -

18
Construction d'un identifiant d'interface
‡ Un identifiant d'interface est construit à partir de
l'adresse physique
24 bits 16 bits 24 bits

ug constructeur FFFE numéro série


78
„ u (Universal) vaut 1 si l'identifiant est unique ou 0 si
l'adresse a été générée par un algorithme.
„ g (Groupe) vaut 0 si l'adresse est individuelle ou 1 si
c'est une adresse de groupe (multicast).
‡ Exemple:
„ adresse MAC ethernet = 00:30:48:2E:3D:7D
„ adresse lien local: FE80::0230:48FF:FE2E:3D7D

- Ecole Nationale Supérieure d'Ingénieurs 37


de Caen -

Adresse "Unique Local Address"


‡ Anciennement adresse de site local.

‡ Une adresse ULA est routée à l'intérieur d'un périmètre


donné (tel un site ou un ensemble de sites) mais pas à
l'extérieur.

‡ Préfixe d'une adresse ULA: FC00::/7

- Ecole Nationale Supérieure d'Ingénieurs 38


de Caen -

19
Adresse "Unique Local Address"
‡ Adresse ULA auto assignée (L=1):
„ FD00::/8
„ Préfixe global pseudo aléatoire généré localement:
trunc ( SHA-1 (local time, local EUI 64), 40 bits )
„ probablement unique mais pas de garantie.

‡ Adresse ULA assignée officiellement (L=0):


„ FC00::/8
„ Préfixe global attribué par une autorité.
„ Unicité de l'adresse garantie.

- Ecole Nationale Supérieure d'Ingénieurs 39


de Caen -

Adresse Unicast
topologie publique

13 bits 8 bits 24 bits 16 bits 64 bits


3 bits
Format Prefix
Top Level Aggregator
FP TLA Réserve NLA SLA Interface ID
Next Level Aggregator
Site Level Aggregator

‡ http://www.iana.org/assignments/ipv6-tla-assignments
IPv6 Prefix FP TLA Binary Value TLA Hex Assignment
----------- --- ---------------- ------- ------------------
2000::/16 001 0 0000 0000 0000 0x0000 Reserved
2001::/16 001 0 0000 0000 0001 0x0001 Sub-TLA Assignments [RFC2450]
2002::/16 001 0 0000 0000 0010 0x0002 "6to4" [RFC3056]
2003::/16 001 0 0000 0000 0011 0x0003 Global Unicast [RFC3513]
3FFE::/16 001 1 1111 1111 1110 0x1FFE 6bone Testing [RFC2471] To be phased out 06/06/2006
3FFF::/16 001 1 1111 1111 1111 0x1FFF Reserved

- Ecole Nationale Supérieure d'Ingénieurs 40


de Caen -

20
Allocation adresse unicast
‡ le IANA délègue des blocs d'adresses IPv6 aux
RIR en /23

‡ Les RIR délèguent aux LIR des blocs d'adresses


IPv6 en /32

‡ Les LIR assignent des préfixes aux utilisateurs en


/48

‡ Exemple:
‡ RIPE NCC 2001:0600::/23
‡ RENATER TLA 2001:0660::/32
‡ ENSICAEN 2001:0660:7105::/48
- Ecole Nationale Supérieure d'Ingénieurs 41
de Caen -

Adresses unicast particulières


‡ Adresse locale (localhost):
‡ 0:0:0:0:0:0:0:1 ou ::1

‡ Adresse non spécifiée (utilisée pendant


des processus d'initialisation):
‡ 0:0:0:0:0:0:0:0 ou ::

- Ecole Nationale Supérieure d'Ingénieurs 42


de Caen -

21
Adresses Multicast
‡ Une adresse multicast désigne un ensemble d'interfaces.

‡ Le préfixe d'une adresse multicast est FF00::/8

‡ Format d'une adresse multicast:


8 bits 4 bits 4 bits 112 bits

FF flags scope Identifiant de groupe

„ flags: 3 premiers bits à 0; dernier bit à 0 indique une


validité permanente (exemple: routeur) ou 1 pour une
validité temporaire (exemple: visioconférence).
„ scope: portée de la diffusion:
‡ 0: réservé 1: nœud 2: lien (FF02::/8)
‡ 3: sous-réseau 5: site 8: organisation
‡ E: global F: réservé
- Ecole Nationale Supérieure d'Ingénieurs 43
de Caen -

Quelques préfixes multicast


‡ ff02::1 Tous les nœuds du lien

‡ ff02::2 Tous les routeurs du lien

‡ ff02::3 Toutes les machines du lien

‡ ff05::2 Tous les routeurs du site

‡ Liste complète:
http://www.iana.org/assignments/ipv6-multicast-addresses

- Ecole Nationale Supérieure d'Ingénieurs 44


de Caen -

22
Adresses multicast sollicité
‡ Une adresse multicast sollicité est construite en
concaténant le préfixe FF02::1:FF00:0/104 aux derniers 24
bits de l'adresse IPv6 de la machine.

‡ Exemple:
„ Adresse IPv6:
‡ 2001:660:7105:1000:20e:cff:fe30:7b3a
„ Adresse multicast sollicité:
‡ FF02::1:FF30:7b3a

‡ Ces adresses peuvent être utilisées par les protocoles


d'adresses dupliquées (DAD) et de découverte de voisins.

‡ Au démarrage, un nœud IPv6 s'abonne au groupe multicast


FF02::/1 et au groupe multicast sollicité FF02::1:FFxx:xxxx

- Ecole Nationale Supérieure d'Ingénieurs 45


de Caen -

Adresse Anycast
‡ Une adresse destination de type anycast désigne une
interface parmi un ensemble de machines bien défini.

‡ Format d'une adresse anycast (RFC 2526):


„ Adresses de type EUI-64
64 bits 57 bits 7 bits

préfixe du réseau 11111101…11 id. anycast


„ Autre type d'adresses

n bits 121 - n bits 7 bits

préfixe du réseau 11111….1111 id. anycast

- Ecole Nationale Supérieure d'Ingénieurs 46


de Caen -

23
Exemple adresse anycast
‡ Recherche des machines "Home Agent"
(utilisées dans la mobilité) au sein du
réseau 2001:660:7105:1000::/64

‡ Identifiant anycast: 7e

‡ Adresse anycast:
2001:660:7105:1000:FDFF:FFFF:FFFF:FFFE

- Ecole Nationale Supérieure d'Ingénieurs 47


de Caen -

Quelques services de
base

- Ecole Nationale Supérieure d'Ingénieurs 48


de Caen -

24
Le protocole ICMPv6
‡ Protocole redéfini par la RFC 2463.
‡ Il permet:
„ gestion des erreurs
„ test (ping)
„ configuration automatique des équipements
„ découverte des voisins ("neighbour discovery")
„ gestion de groupes multicast (Multicast
Listener Discovery)
„ reprise des fonctionnalités de arp v4

- Ecole Nationale Supérieure d'Ingénieurs 49


de Caen -

Format ICMPv6

‡ type : nature du paquet ICMPv6


‡ <= 127 Æ message d'erreur
‡ > 127 Æ message d'information

‡ code: cause du message ICMPv6

‡ cheksum: somme de contrôle

- Ecole Nationale Supérieure d'Ingénieurs 50


de Caen -

25
Messages d'erreur ICMPv6
‡ 1 Destination inaccessible :
„ 0 * aucune route vers la destination
„ 1 * la communication avec la destination est
administrativement interdite
„ 2 * hors portée de l'adresse source
„ 3 * l'adresse est inaccessible
„ 4 * le numéro de port est inaccessible
‡ 2 Paquet trop grand
‡ 3 Temps dépassé :
„ 0 * limite du nombre de sauts atteinte
„ 1 * temps de réassemblage dépassé
‡ 4 Erreur de paramètre :
„ 0 * champ d'en-tête erroné
„ 1 * champ d'en-tête suivant non reconnu
„ 2 * option non reconnue

- Ecole Nationale Supérieure d'Ingénieurs 51


de Caen -

Messages d'information ICMPv6

‡ 128 Demande d'écho

‡ 129 Réponse d'écho

- Ecole Nationale Supérieure d'Ingénieurs 52


de Caen -

26
Messages de gestion de groupe multicast
‡ 130 Requête d'abonnement

‡ 131 Rapport d'abonnement

‡ 132 Fin d'abonnement

- Ecole Nationale Supérieure d'Ingénieurs 53


de Caen -

Messages de découverte de voisins


‡ 133 Sollicitation du routeur

‡ 134 Annonce du routeur

‡ 135 Sollicitation d'un voisin

‡ 136 Annonce d'un voisin

‡ 137 Redirection
- Ecole Nationale Supérieure d'Ingénieurs 54
de Caen -

27
Messages de gestion de mobilité

‡ 144 Découverte d'agent mère (requête)

‡ 145 Découverte d'agent mère (réponse)

‡ 146 Sollicitation de préfixe mobile

- Ecole Nationale Supérieure d'Ingénieurs 55


de Caen -

Quelques nouveaux protocoles


‡ Auto Configuration
„ mode "stateless": l'équipement va s'efforcer de
récupérer le préfixe du site pour construire son
adresse (RFC 2462).
„ mode "stateful": les informations sont
envoyées par un serveur DHCP (RFC 3315).
‡ Découverte du Maximum Transmission
Unit (RFC 1981).

‡ Découverte des voisins (RFC 2461).


- Ecole Nationale Supérieure d'Ingénieurs 56
de Caen -

28
Auto configuration "stateless"
‡ L'équipement s'attribue une adresse "lien local".

‡ Vérification de l'unicité de cette adresse:


„ Envoi d'une trame ICMPv6 "sollicitation d'un voisin" (type 135)
sur l'adresse multicast ff02::1
‡ Aucune réponse après un temps déterminé (1 seconde par
défaut), l'adresse est valide.
‡ Retour d'un message ICMPv6 "annonce d'un voisin en retour d'une
sollicitation (bit S)" (type 136), l'adresse est déjà utilisée.

‡ Envoi d'une trame ICMPv6 "sollicitation d'un routeur" (type


133) sur l'adresse multicast ff02::2

‡ Réception d'une trame ICMPv6 "annonce de routeur" (type


134), le préfixe du site est retourné.

- Ecole Nationale Supérieure d'Ingénieurs 57


de Caen -

Autoconfiguration "stateful"
‡ Un serveur DHCP peut proposer plus d'informations que par
l'autoconfiguration sans état (exemple: serveur DNS).

‡ Un serveur DHCP peut gérer plusieurs liens; un client DHCP converse soit
directement avec le serveur DHCP soit à travers un proxy DHCP.

‡ Un serveur DHCP maintient une liste d'associations entre un client et les


paramètres attribués.

‡ Un client est identifié par un DUID (DHCP Unique IDentifier) généré et


fonction de l'adresse de lien local (pas nécessairement unique sur 2 liens
distincts) et une variable (qui peut être fonction du temps).

‡ Les requêtes DHCP sont envoyées sur UDP/547, les réponses sont reçues
sur UDP/546.

‡ La découverte d'un serveur DHCP est réalisée par un envoi d'un message
multicast à l'adresse FF02::1:2.

- Ecole Nationale Supérieure d'Ingénieurs 58


de Caen -

29
Découverte du Path MTU
‡ Protocole TCP:
„ Envoi d'une demande connexion avec le MTU du lien.
„ Si le MTU est trop grand, réception d'un message
ICMPv6 "paquet trop grand" (type 2 contenant une
nouvelle valeur de MTU).
„ On essaye à nouveau jusqu'à établissement de la
connexion.

‡ Protocole UDP:
„ La segmentation doit être assurée par une couche
supérieure. Il y a souvent nécessité de fragmenter
(extension IPv6).

- Ecole Nationale Supérieure d'Ingénieurs 59


de Caen -

Fonctionnement DNS

- Ecole Nationale Supérieure d'Ingénieurs 60


de Caen -

30
Serveur de noms
‡ Support de IPv6 par les DNS (RFC1886)

‡ Enregistrement de type AAAA pour la résolution


nom Æ adresse (RFC 1886)

‡ Nouveau domaine ip6.arpa pour la résolution


adresse Æ nom (anciennement ip6.int).

- Ecole Nationale Supérieure d'Ingénieurs 61


de Caen -

Configuration DNS
acl permit-transfer {
::ffff:192.93.101.14 ;
::ffff:193.49.200.16 ;
};
options {
version "unknown"; // Pour eviter d'indiquer la version utilisee
directory "/etc/dns"; // Emplacement des fichiers de zone
listen-on-v6 { any; } ;
allow-transfer { permit-transfer ; } ;
………
};
zone "ensicaen.fr" {
type master;
file "db.ensicaen.fr";
};
zone "5.0.1.7.0.6.6.0.1.0.0.2.ip6.arpa" {
type master ;
file "db.ipv6.ensicaen.fr.reverse" ;
};

zone "0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa" {
type master ;
file "db.ipv6.localhost.reverse" ;
};

- Ecole Nationale Supérieure d'Ingénieurs 62


de Caen -

31
Fichier db.ensicaen.fr
$TTL 86400
@ IN SOA ns.ensicaen.fr. dp.ensicaen.fr. (
2006032302 ; Serial
21600 ; Refresh every 3 hours
3600 ; Retry every hour
604800 ; Expire after a week
86400 ) ; Minimum ttl of 1 day
IN NS ns.ensicaen.fr.
IN NS ns1.syrhano.net.
IN NS caeau2.in2p3.fr.

IN MX 3 debian-mx1.ensicaen.fr.

localhost IN A 127.0.0.1
IN AAAA ::1
ns IN A 193.49.200.14
IN AAAA 2001:660:7105::2
;
; serveur www de l'etablissement
;
serv2 IN A 193.49.200.59
www IN CNAME serv2.ecole.ensicaen.fr.
www6 IN AAAA 2001:660:7105::10

- Ecole Nationale Supérieure d'Ingénieurs 63


de Caen -

Fichier db.ipv6.ensicaen.fr.reverse
$TTL 86400
;$ORIGIN 0.0.0.0.5.0.1.7.0.6.6.0.1.0.0.2.IP6.ARPA.
@ IN SOA ns.ensicaen.fr. dp.ensicaen.fr. (
2005032901 ; Serial
10800 ; Refresh every 3 hours
3600 ; Retry every hour
604800 ; Expire after a week
86400 ) ; Minimum ttl of 1 day

IN NS ns.ensicaen.fr.

$ORIGIN 0.0.0.0.5.0.1.7.0.6.6.0.1.0.0.2.IP6.ARPA.

1.0.0.0.0.0.0.0.0.0.0.0.1.0.0.0 IN PTR routeuripv6.ecole.ensicaen.fr.


2.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0 IN PTR ns.ensicaen.fr.

- Ecole Nationale Supérieure d'Ingénieurs 64


de Caen -

32
Configuration et
commandes

- Ecole Nationale Supérieure d'Ingénieurs 65


de Caen -

Configuration sous Linux


‡ Ajout d'une adresse IPv6 sur l'interface eth0:
ifconfig eth0 add 2001:660:7105:1000::10/64

‡ Ajout d'une route


route add 2000::/3 dev eth0

‡ Visualisation des routes:


route -A inet6 (ou route -6)

- Ecole Nationale Supérieure d'Ingénieurs 66


de Caen -

33
Commandes Linux
‡ Visualisation des routes
route -A inet6 (ou route -6)

‡ Visualiser les voisins (équivalent du cache arp


IPv4):
ip -f inet6 neigh

‡ Commandes de bon fonctionnement du réseau:


ping6, traceroute6, tracepath6

‡ filtrage de paquets
ipv6tables

‡ …
- Ecole Nationale Supérieure d'Ingénieurs 67
de Caen -

Configurations sous Windows


‡ Ajout d'une adresse IPv6:
ipv6 adu 4/2001:660:7105:1000::11

‡ Ajout d'une route


ipv6 rtu 2000::/3 4/2001:660:7105:1000::1

‡ Configuration "conviviale"
netsh
> interface ipv6

- Ecole Nationale Supérieure d'Ingénieurs 68


de Caen -

34
Commandes Windows
‡ Visualisation des interfaces IPv6:
ipv6 if

‡ Visualisation des routes


ipv6 rt

‡ Commandes de bon fonctionnement du réseau:


ping6 tracert6

‡ …

- Ecole Nationale Supérieure d'Ingénieurs 69


de Caen -

La mobilité

- Ecole Nationale Supérieure d'Ingénieurs 70


de Caen -

35
La mobilité
‡ Concept important notamment avec le
développement des terminaux mobiles
(téléphone, pda, …).

‡ Un mobile doit conserver la même adresse IP


quel que soit le réseau auquel il est connecté afin
de:
„ pouvoir communiquer
„ être joignable
„ pouvoir se déplacer sans interruption de la connexion.

‡ Standard IETF: MIPv6 (Mobile IP)

- Ecole Nationale Supérieure d'Ingénieurs 71


de Caen -

Principe de la mobilité
‡ Un mobile connecté sur un réseau étranger dispose:
„ une adresse temporaire au sein du réseau étranger ("Care Of Address") obtenue
par auto configuration.
„ une adresse mère provenant de son réseau d'origine ("Home Address").

‡ Le mobile doit toujours pouvoir communiquer.

‡ Les connexions établies (au niveau 4) doivent être maintenues même si le


mobile change de réseau.

‡ L'association (adresse temporaire, adresse primaire) est envoyée à un


routeur du réseau d'origine (Home Agent).

‡ Le Home Agent doit être capable d'intercepter toutes les informations


destinées au mobile et de les retransmettre dans un tunnel sur l'adresse
temporaire (proxy).

‡ Le Home Agent doit être capable de faire du "reverse tunneling" du mobile


vers le correspondant.

- Ecole Nationale Supérieure d'Ingénieurs 72


de Caen -

36
La mobilité

source de l'image: http://livre.point6.net

- Ecole Nationale Supérieure d'Ingénieurs 73


de Caen -

Communication en double tunneling


(1/2)

- Ecole Nationale Supérieure d'Ingénieurs 74


de Caen -

37
Communication en double tunneling
(2/2)

- Ecole Nationale Supérieure d'Ingénieurs 75


de Caen -

Envoi d'un message d'association au


correspondant

- Ecole Nationale Supérieure d'Ingénieurs 76


de Caen -

38
Fonctionnalités nécessaires pour la
mobilité
‡ Chaque nœud IPv6 doit pouvoir mémoriser des associations
("binding cache").

‡ Un Home Agent doit être capable de:


„ maintenir une liste d'associations de mobiles.
„ Intercepter les paquets à destination d'un mobile distant.
„ Encapsuler et de transférer les paquets à destination d'un mobile
distant et de son correspondant.
„ Retourner des messages "Acquittement de l'association".

‡ Un mobile doit être capable de:


„ Décapsuler des paquets.
„ Envoyer des messages "Mise à jour de l'association" et réceptionner
des messages "Acquittement de l'association".
„ Maintenir une liste de messages "Mise à jour de l'association"
contenant l'adresse IPv6 du correspondant auquel ce message a été
envoyé.
„ Effectuer une découverte d'agent mère.

- Ecole Nationale Supérieure d'Ingénieurs 77


de Caen -

La mobilité
‡ Utilisation de:

„ L'extension "destination".

„ L'autoconfiguration "stateless"

„ Protocole "découverte des voisins"

„ Mécanismes de chiffrement et
d'authentification pour sécuriser les messages
"Binding Update".
- Ecole Nationale Supérieure d'Ingénieurs 78
de Caen -

39
Envoi de paquets à un mobile
‡ Avant d'envoyer un paquet, un nœud recherche une
association dans son cache.

„ Si elle existe:
‡ Adresse destination = adresse temporaire du mobile
‡ En tête de routage contenant l'adresse du mobile dans son réseau
mère.
‡ Le mobile échange l'adresse de destination et l'adresse de routage
puis délivre le paquet aux couches supérieures. Le paquet est ainsi
adressé à l'adresse du mobile dans son réseau mère.

„ Si elle n'existe pas:


‡ Adresse destination = adresse dans le réseau mère.
‡ Interception par l'agent mère et envoi au mobile dans un tunnel.
‡ Réception du paquet par le mobile et envoi d'un message "mise à
jour de l'association" vers le correspondant.

- Ecole Nationale Supérieure d'Ingénieurs 79


de Caen -

Extension "destination" pour la mobilité


Options:

198 (0xC6) Mise à jour de l'association (Binding Update)

7 Acquittement de l'association (Binding Acknowledgement)

8 Demande de mise à jour de l'association (Binding Request)

201 (0xC9) Adresse principale (Home Address)

Sous options:

0 Pad1

1 PadN

2 Identificateur Unique (Unique Identifier)

3 Adresse temporaire alternative (Alternate Care of Address)

4 Données d'authentification (Authentication Data)

- Ecole Nationale Supérieure d'Ingénieurs 80


de Caen -

40
Transition IPv4 Æ Ipv6

- Ecole Nationale Supérieure d'Ingénieurs 81


de Caen -

Transition IPv4 Æ Ipv6


‡ Excepté les limitations techniques d'IPv4,le passage à IPv6
n'est pas encore considéré comme indispensable.

‡ Cependant, tout investissement lourd doit être pensé avec


cette perspective afin d'être pérenne.

‡ Peu d'offres commerciales actuellement au niveau des


Fournisseurs d'Accès Internet:
„ nerim http://www.nerim.fr
„ wanadoo (en test) http://www.ipv6.wanadoo.fr

‡ Pendant la phase de transition, IPv6 doit cohabiter avec


IPv4 (pas de jour J pour basculer en IPv6).

- Ecole Nationale Supérieure d'Ingénieurs 82


de Caen -

41
Double pile IPv4/IPv6
‡ Les systèmes d'exploitation modernes
supportent une double pile IPv4/IPv6
(dual stack).

‡ Les machines possèdent une adresse IPv6


et une adresse IPv4 mappée
(::FF:xx:xx:xx:xx).

- Ecole Nationale Supérieure d'Ingénieurs 83


de Caen -

Renater: architecture IPv6

- Ecole Nationale Supérieure d'Ingénieurs 84


de Caen -

42
Tunnels IPv6 dans IPv4
‡ UN tunnel est créé à la frontière de deux zones
IPv6 par des routeurs connectés entre eux par une
adresse IPv4:

- Ecole Nationale Supérieure d'Ingénieurs 85


de Caen -

Tunnel 6over4
‡ Ce type de tunnel permet à des machines IPv6 qui ne sont pas
directement connectées à un routeur IPv6 d'utiliser néanmoins ce
protocole.

‡ Les mécanismes d'auto configuration (voisins, routeurs) seront


encapsulés dans des messages multicast IPv4 (exemple:
239.XX.0.2 pour atteindre tous les routeurs IPv4 supportant ce
mécanisme).

- Ecole Nationale Supérieure d'Ingénieurs 86


de Caen -

43
Tunnel 6to4
‡ Le paquet IPv6 est encapsulé dans un paquet IPv4 (type
41).

‡ 6to4 attribue automatiquement une adresses IPv6 dans le


réseau 2002::/16 et qui est fabriquée directement à partir
de l'IPv4 publique.

- Ecole Nationale Supérieure d'Ingénieurs 87


de Caen -

Exemple de tunnel 6to4


‡ Machine Linux connectée à un tunnel
6to4 au réseau Vikman:

#!/bin/sh
modprobe ipv6
ifconfig eth0 add 2001:0660:7105::1/48
ip tunnel add tunnelIPv6 mode sit ttl 64 remote 195.220.17.254 local 193.49.200.2
ifconfig tunnelIPv6 add fec0:0:0:1::2/64
ip link set dev tunnelIPv6 up
ip -6 route add 2000::/3 dev tunnelIPv6 metric 1

- Ecole Nationale Supérieure d'Ingénieurs 88


de Caen -

44
ISATAP
‡ Intra-Site Automatic Tunnel Addressing Protocol.

‡ Fournit la connectivité IPv6 au dessus des intranets


IPv4.

‡ IPv6 est encapsulé dans IPv4.

‡ Les adresses ISATAP sont de la forme


XXXX::0:5EFE:xx.xx.xx.xx
„ où XXXX représente le préfixe (FE80 en local ou obtenu
auprès d'un routeur)
„ xx.xx.xx.xx représente l'adresse IPv4

- Ecole Nationale Supérieure d'Ingénieurs 89


de Caen -

Schéma ISATAP

- Ecole Nationale Supérieure d'Ingénieurs 90


de Caen -

45
Teredo
‡ Tunnel automatique de Microsoft (RFC 4380).

‡ Teredo permet à un hôte relié à un réseau IPv4 derrière un


nat IPv4 de communiquer en IPv6, sans routeur particulier
sur son LAN.

‡ Teredo est disponible dans Windows XP SP2, SP1 avec le


pack Advanced Server, Windows Server 2003, Windows
Vista et Windows Server Longhorn.

‡ Les paquets IPv6 sont envoyés dans des paquets UDP (port
3544) et possède le préfixe 2001::/32 (anciennement
3ffe:831f::/32).

- Ecole Nationale Supérieure d'Ingénieurs 91


de Caen -

Composition de TEREDO
‡ Teredo est composé de trois composants:

„ Client TEREDO: un nœud qui dispose d'un accès IPv4 et


souhaite obtenir un accès IPv6.

„ Serveur TEREDO: un nœud qui a un accès Internet à


travers une adresse IPv4 publique et qui va fournir une
connectivité IPv6 aux clients TEREDO.

„ Relais TEREDO: un routeur IPv6 qui reçoit et retransmet


le trafic IPv6 au client TEREDO.

- Ecole Nationale Supérieure d'Ingénieurs 92


de Caen -

46
Architecture TEREDO

http://www.ipv6tf.org/using/connectivity/teredo.php

- Ecole Nationale Supérieure d'Ingénieurs 93


de Caen -

Intérêt de TEREDO
‡ On peut utiliser TEREDO si:
„ on souhaite un accès IPv6
„ on ne dispose que d'un accès IPv4
„ les machines sont derrière un NAT

‡ On n'utilise pas TEREDO quand:


„ On dispose d'une connexion IPv6 native.
„ on dispose d'une adresse IPv4 publique (on
utilise plutôt 6to4).

- Ecole Nationale Supérieure d'Ingénieurs 94


de Caen -

47
Tunnel Broker
‡ Création d'un tunnel chez un ISP.
‡ Exemple:

- Ecole Nationale Supérieure d'Ingénieurs 95


de Caen -

Eléments de
Programmation

- Ecole Nationale Supérieure d'Ingénieurs 96


de Caen -

48
Programmation IPv6
‡ Pas de changement pour les langages qui utilisent des
couches d'abstraction et qui ne référencent pas des
adresses IPv4 directement (exemple: java).

‡ Pour les autres, les changements sont minimisés.

‡ Les API restent identiques:


„ socket () utilise PF_INET6
„ bind () connect () sendto ()
„ accept () recvfrom ()

‡ Il faut désormais programmer "compatible IPv6".

‡ et "V6ifier" les applications existantes (sous Windows, on


peut s'aider de checkv4.exe).

- Ecole Nationale Supérieure d'Ingénieurs 97


de Caen -

Java et IPv6
‡ Support de l'IPv6 par java depuis la
version 1.4 sous Linux et Solaris et depuis
la version 1.5.0 pour Windows.

‡ Programmation "transparente".

- Ecole Nationale Supérieure d'Ingénieurs 98


de Caen -

49
Java: Client/Serveur IPv4/IPv6
ServerSocket server = void client(String name)
new ServerSocket(8080); {
Socket s; Socket s = new Socket(name,
while (true) 8080);
{ InputStream in =
s = server.accept(); s.getInputStream();
doClientStuff(s) //…
} in.close () ;
}

-En cas d'adresses multiples, IPv4 est privilégié.


-On peut choisir le protocole grâce aux propriétés:
java.net.preferIPv4Stack=true (false par défaut)

java.net.preferIPv6Addresses=true (false par défaut)


- Ecole Nationale Supérieure d'Ingénieurs 99
de Caen -

Java et la gestion des adresses


java.net.InetAddress

java.net.Inet4Address java.net.Inet6Address

try {
InetAddress www = InetAddress.getByName ("www.ensicaen.fr") ;
InetAddress www6 = InetAddress.getByName ("www6.ensicaen.fr") ;
System.out.println (www + " " + www6) ;
if (www6 instanceof Inet6Address)
{
Inet6Address addr = (Inet6Address) www6 ;
System.out.println (addr.isLinkLocalAddress ()) ;
}
} catch (UnknownHostException e) {}

- Ecole Nationale Supérieure d'Ingénieurs 100


de Caen -

50
Langage C et IPv6
‡ Les sockets BSD ont été étendues à l'IPv6 (RFC 2553):
„ Nouveau protocole: PF_INET6
„ Nouvelle famille: AF_INET6
„ Nouvelle structure d'adresse: (struct sockaddr_storage)

struct sockaddr_in6 struct in6_addr


{ {
__SOCKADDR_COMMON (sin6_); union
in_port_t sin6_port; /* Transport layer port */ {
uint32_t sin6_flowinfo; /* IPv6 flow information */ uint8_t u6_addr8[16];
struct in6_addr sin6_addr; /* IPv6 address */ uint16_t u6_addr16[8];
uint32_t sin6_scope_id; /* IPv6 scope-id */ uint32_t u6_addr32[4];
}; } in6_u;
#define s6_addr in6_u.u6_addr8
#define s6_addr16 in6_u.u6_addr16
#define s6_addr32 in6_u.u6_addr32
};

- Ecole Nationale Supérieure d'Ingénieurs 101


de Caen -

Programmation
‡ L'adresse wildcard:
„ struct in6_addr any_addr = IN6ADDR_ANY_INIT;

‡ L'adresse de bouclage:
„ struct in6_addr loopback_addr = IN6ADDR_LOOPBACK_INIT;

- Ecole Nationale Supérieure d'Ingénieurs 102


de Caen -

51
Conversion nom <-> adresse
‡ Equivalent de gethostbyname (), gethostbyaddr (), getservbyname (), getservbyport ():

#include <sys/socket.h>
#include <netdb.h>

int getaddrinfo (
const char *nodename,
const char *servname,
const struct addrinfo *hints,
struct addrinfo **res /* Liste chainee d'adresses IPv4 & IPv6 */
);
void freeaddrinfo(struct addrinfo *res);
const char *gai_strerror(int errcode);

struct addrinfo {
int ai_flags; /* AI_PASSIVE, AI_CANONNAME,AI_NUMERICHOST ... */
int ai_family; /* PF_xxx ou PF_UNSPEC*/
int ai_socktype; /* SOCK_xxx */
int ai_protocol; /* 0 ou IPPROTO_xxx pour IPv4 et IPv6 */
size_t ai_addrlen; /* la taille de l'adresse binaire ai_addr */
char *ai_canonname; /* le nom complètement qualifié */
struct sockaddr *ai_addr; /* l'adresse binaire */
struct addrinfo *ai_next; /* structure suivante de la liste chaînée */
};

- Ecole Nationale Supérieure d'Ingénieurs 103


de Caen -

Résolution des noms


‡ On résout le nom avant la création de la
socket:
getaddrinfo (…)
socket (res->ai_family,res->ai_socktype,res->ai_protocol)
connect (…)

‡ et non plus
socket (AF_INET,SOCK_XXXX,0)
gethostbyname (…)
connect (…)

- Ecole Nationale Supérieure d'Ingénieurs 104


de Caen -

52
Exemple
struct addrinfo *res ;
struct addrinfo hints = {
0,
PF_UNSPEC,
SOCK_STREAM,
0,
0,
NULL,
NULL,
NULL
};

if ( (status = getaddrinfo ("www6.ensicaen.fr","http",&hints,&res)) != 0)


{
fprintf (stderr,"getaddrinfo: %s\n",gai_strerror (status)) ;
return -1 ;
}

sock = socket (res->ai_family,res->ai_socktype,res->ai_protocol) ;


if (sock == -1)
{
freeaddrinfo (res) ;
perror ("socket") ;
return -1 ;
}
- Ecole Nationale Supérieure d'Ingénieurs 105
de Caen -

Conversion nom <-> adresse


‡ Equivalent de gethostbyaddr () et getservbyport ():

#include <sys/socket.h>
#include <netdb.h>
int getnameinfo (
const struct sockaddr *sa,
socklen_t salen,
char *host,
size_t hostlen, /* Taille réservée (NI_MAXHOST = 1025) */
char *serv,
size_t servlen, /* Taille réservée (NI_MAXSERV = 32) */
int flags /* NI_NUMERICHOST, NI_NUMERICSERV, NI_NDGRAM… */
);

- Ecole Nationale Supérieure d'Ingénieurs 106


de Caen -

53
Conversion numérique d'adresses
‡ Equivalent de inet_addr() et inet_ntoa ():

#include <sys/socket.h>
#include <arpa/inet.h>
int inet_pton(
int af, /* AF_INET ou AF_INET6 */
const char *src, /* l'adresse (chaine de caract.) à traiter */
void *dst /* le tampon où est rangé le résultat */
);
char * inet_ntop(
int af, /* AF_INET ou AF_INET6 */
const void *src, /* l'adresse binaire à traiter */
char *dst, /* le tampon où est rangé le résultat */
size_t size /* INET_ADDRSTRLEN=16 ou
INET6_ADDRSTRLEN=46 */
);

- Ecole Nationale Supérieure d'Ingénieurs 107


de Caen -

Quelques références
‡ IPv6 théorie et pratique,
Gisèle Cizault, O'Reilly

‡ http://www.point6.net
‡ http://groupe.g6.asso.fr
‡ http://www.6diss.org
‡ http://www.kame.net
‡ http://www.ipv6.org
‡ http://www.6bone.net

- Ecole Nationale Supérieure d'Ingénieurs 108


de Caen -

54

Vous aimerez peut-être aussi