ipv6 - freepatrick.ducrot.free.fr/ipv6.pdf · 5 - ecole nationale supérieure d'ingénieurs de...
TRANSCRIPT
1
- Ecole Nationale Supérieure d'Ingénieurs de Caen -
1
PrésentationIPv6
Patrick Ducrot
- Ecole Nationale Supérieure d'Ingénieurs de Caen -
2
Plan du documentLes 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
2
- Ecole Nationale Supérieure d'Ingénieurs de Caen -
3
Les limitations d'IPv4
- Ecole Nationale Supérieure d'Ingénieurs de Caen -
4
Les limitations d'IPv4Adressage 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.
3
- Ecole Nationale Supérieure d'Ingénieurs de Caen -
5
Les différents RIR
afrinic|ipv4|994 afrinic|ipv6|10
chiffres mars 2006 (source: serveur ftp des RIR)
arin|ipv4|36571
arin|ipv6|240
ripencc|ipv4|20594 ripencc|ipv6|692
lacnic|ipv4|1633
lacnic|ipv6|54
apnic|ipv4|12208 apnic|ipv6|427
- Ecole Nationale Supérieure d'Ingénieurs de Caen -
6
Les limitations d'IPv4La 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".
4
- Ecole Nationale Supérieure d'Ingénieurs de Caen -
7
L'explosion des besoinsL'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 de Caen -
8
IPv6: un nouveau protocole
5
- Ecole Nationale Supérieure d'Ingénieurs de Caen -
9
L'apparition d'IPv6Dé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 de Caen -
10
Les apports d'IPv6Adresses 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é.
6
- Ecole Nationale Supérieure d'Ingénieurs de Caen -
11
Adressage hiérarchique et sécurité
- Ecole Nationale Supérieure d'Ingénieurs de Caen -
12
En tête et extensions IPv6
7
- Ecole Nationale Supérieure d'Ingénieurs de Caen -
13
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 de Caen -
14
En tête IPv6
Nouveau champ: valeur pouvant être attribuée par l'expéditeur. Le triplet (expéditeur, destinataire, étiquette de flux) peut faciliter le routage.
Flow label
Protocol IPv4 Next Header
Time to live IPv4Hop limit
Total length IPv4Payload length
Type of service IPv4Traffic class
8
- Ecole Nationale Supérieure d'Ingénieurs de Caen -
15
En têtes d'extensionexemples:
- Ecole Nationale Supérieure d'Ingénieurs de Caen -
16
Valeurs du champ "next header"
mobilité IPv6135
destination60
fin des en têtes59
authentification51
confidentialité50
fragmentation44
routage43
proche en proche0
ExtensionValeur
ICMPv658
IPv641
UDP17
TCP6
ProtocoleValeur
9
- Ecole Nationale Supérieure d'Ingénieurs de Caen -
17
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 de Caen -
18
Type Length ValueLes extensions "hop by hop" et "destination" transportent un nombre variable de valeurs (TLV).Format d'un TLV:
Option type: 8 bits, nature de l'option. Valeurs des 2 bits de poids fort:
00 saute cette option et continue à parcourir l'entête01 jette le paquet10 jette le paquet, et retourne un message ICMP d'erreur11 jette le paquet, et retourne un message ICMP d'erreur si
l'adresse destination n'était pas une adresse multicastLe 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.
Option type Option Data Length Option Data
10
- Ecole Nationale Supérieure d'Ingénieurs de Caen -
19
Padding (bourrage)Une option de bourrage peut être utilisée pour aligner une extension sur un multiple de 8 octets.
Deux options de padding:Pad1PadN
Exemple:"0x01 0x03 0x00 0x00 0x00".
0
1 length data
- Ecole Nationale Supérieure d'Ingénieurs de Caen -
20
Extension "hop by hop"
Options: 1 ou plusieurs TLV avec paddingPad1PadNJumbogramme (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 ListenerDiscovery"
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
next header length options
11
- Ecole Nationale Supérieure d'Ingénieurs de Caen -
21
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 de Caen -
22
Extension "routing"
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.
- 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.
12
- Ecole Nationale Supérieure d'Ingénieurs de Caen -
23
Extension "fragmentation"
En tête suivant: 8 bitsRéservé: 8 bitsOffset de fragmentation: 13 bitsRéservé: 2 bitsP: 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.
en tête suivant réservé offset de fragmentation Rés P
Identification
- Ecole Nationale Supérieure d'Ingénieurs de Caen -
24
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).
13
- Ecole Nationale Supérieure d'Ingénieurs de Caen -
25
IPSec mode transport ou tunnel
- Ecole Nationale Supérieure d'Ingénieurs de Caen -
26
IPSec mode tunnel
14
- Ecole Nationale Supérieure d'Ingénieurs de Caen -
27
IPSec mode intermédiaire
- Ecole Nationale Supérieure d'Ingénieurs de Caen -
28
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é.
15
- Ecole Nationale Supérieure d'Ingénieurs de Caen -
29
Extension "Authentification"Positionnement de l'extension AH:
Contenu de l'extension AH:
En tête IPv6 hop by hop routing destination AH destination données
En tête IPv6 + nouvelles extensions AH en tête IPv6 + extensions originales données
mode transport
mode tunnel
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 de Caen -
30
Extension "sécurité"Positionnement de l'extension ESP
Contenu de l'extension ESP
en tête IPv6 hop by hop destination ESP destination données queue ESP auth. ESP
en tête IPv6 + ESP en tête IPv6 + données queue ESP auth. ESP
nouvelles extensions extensions originales
mode transport
mode tunnel
chiffré
authentifié
16
- Ecole Nationale Supérieure d'Ingénieurs de Caen -
31
L'adressage IPv6
- Ecole Nationale Supérieure d'Ingénieurs de Caen -
32
Format des adresses IPv6Adresse sur 128 bits découpée en 8 mots de 16 bits.
Exemple :
FEDC :0000 :0000 :0210 :EDBC :0000 :6543 :210Fou
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
17
- Ecole Nationale Supérieure d'Ingénieurs de Caen -
33
Adressage IPv6Types 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 de Caen -
34
Plan d'adressage
FE80::/101111 1110 10Adresse lien local
FF00::/81111 1111Adresse multicast
FEC0::/101111 1110 11Adresse site local
2000::/3001Global Unicast
0200::/70000 001Réservé NSAP
::0/1280000 0000Réservé
Préfixe hexaPréfixe binaireAllocation
18
- Ecole Nationale Supérieure d'Ingénieurs de Caen -
35
Adresse IPv6Un équipement dispose en général de plusieurs adresses IPv6 (contrairement à IPv4).
# ifconfigeth1 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.0inet6 addr: 2001:660:7105::10/0 Scope:Globalinet6 addr: fe80::230:48ff:fe2e:3d7d/64 Scope:LinkUP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1RX packets:3684332 errors:0 dropped:0 overruns:0 frame:0TX packets:2395860 errors:0 dropped:0 overruns:0 carrier:0collisions: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 de Caen -
36
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
19
- Ecole Nationale Supérieure d'Ingénieurs de Caen -
37
Construction d'un identifiant d'interfaceUn identifiant d'interface est construit à partir de l'adresse physique
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:7Dadresse lien local: FE80::0230:48FF:FE2E:3D7D
u g constructeur FFFE numéro série24 bits 16 bits 24 bits
7 8
- Ecole Nationale Supérieure d'Ingénieurs de Caen -
38
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
20
- Ecole Nationale Supérieure d'Ingénieurs de Caen -
39
Adresse "Unique Local Address"Adresse ULA auto assignée (L=1):
FD00::/8Pré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::/8Préfixe global attribué par une autorité.Unicité de l'adresse garantie.
- Ecole Nationale Supérieure d'Ingénieurs de Caen -
40
Adresse Unicast
http://www.iana.org/assignments/ipv6-tla-assignmentsIPv6 Prefix FP TLA Binary Value TLA Hex Assignment----------- --- ---------------- ------- ------------------2000::/16 001 0 0000 0000 0000 0x0000 Reserved2001::/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/20063FFF::/16 001 1 1111 1111 1111 0x1FFF Reserved
TLA Réserve NLA SLA Interface ID
13 bits 8 bits 24 bits 16 bits 64 bits
topologie publique
FP
Format Prefix
Top Level Aggregator
Next Level Aggregator
Site Level Aggregator
3 bits
21
- Ecole Nationale Supérieure d'Ingénieurs de Caen -
41
Allocation adresse unicastle 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::/23RENATER TLA 2001:0660::/32ENSICAEN 2001:0660:7105::/48
- Ecole Nationale Supérieure d'Ingénieurs de Caen -
42
Adresses unicast particulièresAdresse 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 ::
22
- Ecole Nationale Supérieure d'Ingénieurs de Caen -
43
Adresses MulticastUne adresse multicast désigne un ensemble d'interfaces.
Le préfixe d'une adresse multicast est FF00::/8
Format d'une adresse multicast:
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: organisationE: global F: réservé
FF flags scope Identifiant de groupe
8 bits 4 bits 4 bits 112 bits
- Ecole Nationale Supérieure d'Ingénieurs de Caen -
44
Quelques préfixes multicastff02::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
23
- Ecole Nationale Supérieure d'Ingénieurs de Caen -
45
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:7b3aAdresse 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 multicastFF02::/1 et au groupe multicast sollicité FF02::1:FFxx:xxxx
- Ecole Nationale Supérieure d'Ingénieurs de Caen -
46
Adresse AnycastUne 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
Autre type d'adresses
préfixe du réseau 11111….1111 id. anycast
n bits 121 - n bits
préfixe du réseau 11111101…11 id. anycast
64 bits 57 bits 7 bits
7 bits
24
- Ecole Nationale Supérieure d'Ingénieurs de Caen -
47
Exemple adresse anycastRecherche 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 de Caen -
48
Quelques services de base
25
- Ecole Nationale Supérieure d'Ingénieurs de Caen -
49
Le protocole ICMPv6Protocole redéfini par la RFC 2463.Il permet:
gestion des erreurstest (ping)configuration automatique des équipementsdécouverte des voisins ("neighbour discovery")gestion de groupes multicast (MulticastListener Discovery)reprise des fonctionnalités de arp v4
- Ecole Nationale Supérieure d'Ingénieurs de Caen -
50
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
26
- Ecole Nationale Supérieure d'Ingénieurs de Caen -
51
Messages d'erreur ICMPv61 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 grand3 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 de Caen -
52
Messages d'information ICMPv6
128 Demande d'écho
129 Réponse d'écho
27
- Ecole Nationale Supérieure d'Ingénieurs de Caen -
53
Messages de gestion de groupe multicast130 Requête d'abonnement
131 Rapport d'abonnement
132 Fin d'abonnement
- Ecole Nationale Supérieure d'Ingénieurs de Caen -
54
Messages de découverte de voisins133 Sollicitation du routeur
134 Annonce du routeur
135 Sollicitation d'un voisin
136 Annonce d'un voisin
137 Redirection
28
- Ecole Nationale Supérieure d'Ingénieurs de Caen -
55
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 de Caen -
56
Quelques nouveaux protocolesAuto 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).
29
- Ecole Nationale Supérieure d'Ingénieurs de Caen -
57
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 de Caen -
58
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.
30
- Ecole Nationale Supérieure d'Ingénieurs de Caen -
59
Découverte du Path MTUProtocole 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 de Caen -
60
Fonctionnement DNS
31
- Ecole Nationale Supérieure d'Ingénieurs de Caen -
61
Serveur de nomsSupport 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 de Caen -
62
Configuration DNS acl permit-transfer {
::ffff:192.93.101.14 ;::ffff:193.49.200.16 ;
};options {
version "unknown"; // Pour eviter d'indiquer la version utiliseedirectory "/etc/dns"; // Emplacement des fichiers de zonelisten-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" ;
};
32
- Ecole Nationale Supérieure d'Ingénieurs de Caen -
63
Fichier db.ensicaen.fr$TTL 86400@ IN SOA ns.ensicaen.fr. dp.ensicaen.fr. (
2006032302 ; Serial21600 ; Refresh every 3 hours3600 ; Retry every hour604800 ; Expire after a week86400 ) ; 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.1IN AAAA ::1
ns IN A 193.49.200.14IN AAAA 2001:660:7105::2
;; serveur www de l'etablissement;serv2 IN A 193.49.200.59www IN CNAME serv2.ecole.ensicaen.fr.www6 IN AAAA 2001:660:7105::10
- Ecole Nationale Supérieure d'Ingénieurs de Caen -
64
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 ; Serial10800 ; Refresh every 3 hours3600 ; Retry every hour604800 ; Expire after a week86400 ) ; 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.
33
- Ecole Nationale Supérieure d'Ingénieurs de Caen -
65
Configuration et commandes
- Ecole Nationale Supérieure d'Ingénieurs de Caen -
66
Configuration sous LinuxAjout d'une adresse IPv6 sur l'interface eth0:
ifconfig eth0 add 2001:660:7105:1000::10/64
Ajout d'une routeroute add 2000::/3 dev eth0
Visualisation des routes:route -A inet6 (ou route -6)
34
- Ecole Nationale Supérieure d'Ingénieurs de Caen -
67
Commandes LinuxVisualisation des routes
route -A inet6 (ou route -6)
Visualiser les voisins (équivalent du cache arpIPv4):
ip -f inet6 neigh
Commandes de bon fonctionnement du réseau:ping6, traceroute6, tracepath6
filtrage de paquetsipv6tables
…
- Ecole Nationale Supérieure d'Ingénieurs de Caen -
68
Configurations sous WindowsAjout d'une adresse IPv6:
ipv6 adu 4/2001:660:7105:1000::11
Ajout d'une routeipv6 rtu 2000::/3 4/2001:660:7105:1000::1
Configuration "conviviale"netsh> interface ipv6
35
- Ecole Nationale Supérieure d'Ingénieurs de Caen -
69
Commandes WindowsVisualisation 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 de Caen -
70
La mobilité
36
- Ecole Nationale Supérieure d'Ingénieurs de Caen -
71
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 joignablepouvoir se déplacer sans interruption de la connexion.
Standard IETF: MIPv6 (Mobile IP)
- Ecole Nationale Supérieure d'Ingénieurs de Caen -
72
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.
37
- Ecole Nationale Supérieure d'Ingénieurs de Caen -
73
La mobilité
source de l'image: http://livre.point6.net
- Ecole Nationale Supérieure d'Ingénieurs de Caen -
74
Communication en double tunneling(1/2)
38
- Ecole Nationale Supérieure d'Ingénieurs de Caen -
75
Communication en double tunneling(2/2)
- Ecole Nationale Supérieure d'Ingénieurs de Caen -
76
Envoi d'un message d'association au correspondant
39
- Ecole Nationale Supérieure d'Ingénieurs de Caen -
77
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 de Caen -
78
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".
40
- Ecole Nationale Supérieure d'Ingénieurs de Caen -
79
Envoi de paquets à un mobileAvant d'envoyer un paquet, un nœud recherche une association dans son cache.
Si elle existe:Adresse destination = adresse temporaire du mobileEn tête de routage contenant l'adresse du mobile dans son réseaumè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 de Caen -
80
Extension "destination" pour la mobilité
Adresse temporaire alternative (Alternate Care of Address)3
Données d'authentification (Authentication Data)4
Identificateur Unique (Unique Identifier)2
PadN1
Pad10
Sous options:
Adresse principale (Home Address)201 (0xC9)
Demande de mise à jour de l'association (Binding Request)8
Acquittement de l'association (Binding Acknowledgement)7
Mise à jour de l'association (Binding Update)198 (0xC6)
Options:
41
- Ecole Nationale Supérieure d'Ingénieurs de Caen -
81
Transition IPv4 Ipv6
- Ecole Nationale Supérieure d'Ingénieurs de Caen -
82
Transition IPv4 Ipv6Excepté 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.frwanadoo (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).
42
- Ecole Nationale Supérieure d'Ingénieurs de Caen -
83
Double pile IPv4/IPv6Les 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 de Caen -
84
Renater: architecture IPv6
43
- Ecole Nationale Supérieure d'Ingénieurs de Caen -
85
Tunnels IPv6 dans IPv4UN 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 de Caen -
86
Tunnel 6over4Ce type de tunnel permet à des machines IPv6 qui ne sont pas directement connectées à un routeur IPv6 d'utiliser néanmoins ceprotocole.
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).
44
- Ecole Nationale Supérieure d'Ingénieurs de Caen -
87
Tunnel 6to4Le 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 de Caen -
88
Exemple de tunnel 6to4Machine Linux connectée à un tunnel 6to4 au réseau Vikman:
#!/bin/shmodprobe ipv6ifconfig eth0 add 2001:0660:7105::1/48ip tunnel add tunnelIPv6 mode sit ttl 64 remote 195.220.17.254 local 193.49.200.2ifconfig tunnelIPv6 add fec0:0:0:1::2/64ip link set dev tunnelIPv6 upip -6 route add 2000::/3 dev tunnelIPv6 metric 1
45
- Ecole Nationale Supérieure d'Ingénieurs de Caen -
89
ISATAPIntra-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 de Caen -
90
Schéma ISATAP
46
- Ecole Nationale Supérieure d'Ingénieurs de Caen -
91
TeredoTunnel 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 de Caen -
92
Composition de TEREDOTeredo 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.
47
- Ecole Nationale Supérieure d'Ingénieurs de Caen -
93
Architecture TEREDO
http://www.ipv6tf.org/using/connectivity/teredo.php
- Ecole Nationale Supérieure d'Ingénieurs de Caen -
94
Intérêt de TEREDOOn peut utiliser TEREDO si:
on souhaite un accès IPv6on ne dispose que d'un accès IPv4les 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).
48
- Ecole Nationale Supérieure d'Ingénieurs de Caen -
95
Tunnel BrokerCréation d'un tunnel chez un ISP.Exemple:
- Ecole Nationale Supérieure d'Ingénieurs de Caen -
96
Eléments de Programmation
49
- Ecole Nationale Supérieure d'Ingénieurs de Caen -
97
Programmation IPv6Pas 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_INET6bind () 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 de Caen -
98
Java et IPv6Support 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".
50
- Ecole Nationale Supérieure d'Ingénieurs de Caen -
99
Java: Client/Serveur IPv4/IPv6void client(String name) {
Socket s = new Socket(name, 8080);
InputStream in = s.getInputStream();
//…in.close () ;
}
ServerSocket server =new ServerSocket(8080);
Socket s;while (true) {
s = server.accept();doClientStuff(s)
}
-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 de Caen -
100
Java et la gestion des adresses
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) {}
java.net.InetAddress
java.net.Inet4Address java.net.Inet6Address
51
- Ecole Nationale Supérieure d'Ingénieurs de Caen -
101
Langage C et IPv6Les sockets BSD ont été étendues à l'IPv6 (RFC 2553):
Nouveau protocole: PF_INET6Nouvelle famille: AF_INET6Nouvelle structure d'adresse: (struct sockaddr_storage)
struct in6_addr{
union{
uint8_t u6_addr8[16];uint16_t u6_addr16[8];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};
struct sockaddr_in6{
__SOCKADDR_COMMON (sin6_);in_port_t sin6_port; /* Transport layer port */uint32_t sin6_flowinfo; /* IPv6 flow information */struct in6_addr sin6_addr; /* IPv6 address */uint32_t sin6_scope_id; /* IPv6 scope-id */
};
- Ecole Nationale Supérieure d'Ingénieurs de Caen -
102
ProgrammationL'adresse wildcard:
struct in6_addr any_addr = IN6ADDR_ANY_INIT;
L'adresse de bouclage:struct in6_addr loopback_addr = IN6ADDR_LOOPBACK_INIT;
52
- Ecole Nationale Supérieure d'Ingénieurs de Caen -
103
Conversion nom <-> adresseEquivalent 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 de Caen -
104
Résolution des nomsOn 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 (…)
53
- Ecole Nationale Supérieure d'Ingénieurs de Caen -
105
Exemplestruct 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 de Caen -
106
Conversion nom <-> adresseEquivalent 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… */
);
54
- Ecole Nationale Supérieure d'Ingénieurs de Caen -
107
Conversion numérique d'adressesEquivalent 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 de Caen -
108
Quelques référencesIPv6 théorie et pratique, Gisèle Cizault, O'Reilly
http://www.point6.nethttp://groupe.g6.asso.frhttp://www.6diss.orghttp://www.kame.nethttp://www.ipv6.orghttp://www.6bone.net