Vous êtes ici : Accueil Protocole IPv6

Protocole IPv6

Voici un cours fondamental complet sur le protocole IPv6 : 1. Pourquoi IPv6 ? 2. Fondamentaux TCP/IPv6 , 3. Paquets IPv6 , 4. Représentation des adresses IPv6 , 5. Types d’adresses IPv6 , 6. ICMPv6 , 7. Découverte de voisinage (ND) , 8. Gestion du réseau IPv6 (IPAM), 9. Configuration du réseau par les routeurs , 10. Support DNS IPv6 , 11. Configuration automatique sans état (SLAAC) , 12. DHCPv6 , 13. Plan d’adressage IPv6, 14. Routage IPv6 sous Cisco IOS, 15. Pare-feu Cisco sous Cisco IOS, 16. Introduction à la sécurité IPv6, 17. Manipulation de paquets IPv6, 18. VPN IPSEC IPv6, 19. Méthodes de transition


Transcript :

Protocole IPv6
François-Emmanuel Goffinet
Formateur IT
Version 15.09
Collection Formation Réseau Cisco CCNA
Sommaire
Pourquoi IPv6 ?
Fondamentaux TCP/IPv6
Paquets IPv6
Représentation des adresses IPv6
Types d’adresses IPv6
ICMPv6
Découverte de voisinage (ND)
Gestion du réseau IPv6 (IPAM)
Configuration du réseau par les routeurs
Support DNS IPv6
Configuration automatique sans état (SLAAC)
DHCPv6
Plan d’adressage IPv6
Routage IPv6 sous Cisco IOS
Pare-feu Cisco sous Cisco IOS
Introduction à la sécurité IPv6
Manipulation de paquets IPv6
VPN IPSEC IPv6
Méthodes de transition
1. Pourquoi IPv6 ?
Introduction générale
Objectifs
Citer les avantages de la technologie IPv6
Identifier l’impact du nouveau protocole
Répondre à la question de l’urgence de la transition à IPv6
Reconnaître les organismes de standardisation et les RFCs IPv6
Commencer une veille technologique sur IPv6
Se former à IPv6
Période de transition IPv4/IPv6
Classes d'adresses (1981)
Masques de sous-réseaux (1985)
CIDR-VLSM  (1993)
NAT (1994)
Adressage privé (1996)
IPv6 (1995-1998)
Depuis quelques années, nous sommes entrés dans une longue période de transition de la double pile IPv4/IPv6
1985 : Usage du masque de sous-réseau (RFC 950).
1991 : L'internet devient public.
1993 : CIDR (Classless Interdomain Routing), transport des masques dans les informations de routage, la notion de classe ne se suffit plus.
1996 : Le RFC 1918 consacre l'adressage privé qui combiné au NAT (Network Address Translation) casse le principe de connectivité de bout en bout.
Épuisement des adresses IPv4
Lire l'article "IPv4 address exhaustion"
Avantages et nouveautés IPv6 (1/2)
Une espace d’adressage incommensurablement large pour l’accès global et l’évolutivité
Format d’en-tête simplifié pour une prise en charge efficiente des paquets
Une architecture hiérarchique du réseau pour un routage efficient
Le support des protocoles de routage les plus courants
Fonctionnalités d’autoconfiguration et plug-and-play
ICMPv6 supporte des fonctionnalités de découverte et de maintien de relations de voisinage
Avantages et nouveautés IPv6 (1/2)
Support amélioré de la mobilité IP
Usage accru du Multicast, disparition du broadcast
Le support par défaut sur la plupart des systèmes d’exploitation Serveurs et Poste de travail
Un support de la résolution de noms DNS
DHCPv6 en nouvelles versions Stateful, Stateless et Prefix-Delegation offrant des options de gestion
Différentes classes d’adresses pour différents usages.
L’obsolescence du NAT en tant que solution de connectivité globale
Un nouvel Internet
IP est au cœur du modèle de communication
IPv6 est incompatible avec IPv4
IPv6 est le 2ème Internet
Il s'agit d'une évolution technologique inéluctable
Elle touche tout objet communicant dans le réseau
Elle touche les applications et l’infrastructure.
Déploiement d’IPv6 global 2015Q3
https://labs.ripe.net/statistics/list-of-ripe-ncc-statistics
http://6lab.cisco.com/stats/
http://v6asns.ripe.net/v/6
http://www.worldipv6launch.org/measurements/
http://www.google.com/intl/en/ipv6/statistics.html
http://www.akamai.com/ipv6?WT.ac=hp_ipv6_banner
http://www.ams-ix.net/sflow-stats/ipv6/
http://www.de-cix.net/about/statistics/
http://www.worldipv6launch.org/participants/?q=1
Déploiement d’IPv6 Europe 2015Q3
https://labs.ripe.net/statistics/list-of-ripe-ncc-statistics
http://6lab.cisco.com/stats/
http://v6asns.ripe.net/v/6
http://www.worldipv6launch.org/measurements/
http://www.google.com/intl/en/ipv6/statistics.html
http://www.akamai.com/ipv6?WT.ac=hp_ipv6_banner
http://www.ams-ix.net/sflow-stats/ipv6/
http://www.de-cix.net/about/statistics/
http://www.worldipv6launch.org/participants/?q=1
Conseils en phase de transition
Phase de formation/information
Monter un lab, un bac à sable
Demander une connectivité IPv6 native
Déploiement à envisager : parallèle d'IPv6 (Dual Stack)
Déploiement planifié et géré, tout nouveau projet est une opportunité
A ne pas répéter :
Résistance au changement
Pansements fonctionnels
Traduction de protocoles
Vérifier la disponibilité applicative
Objectif : diminuer le coût de la transition
Transition IPv6
Phase d’information/formation
Phase de validation de l’infrastructure
Plan d’adressage
Plan de routage
Activation des services externes
Activation dans les LANs
Activation dans le WAN FAI
Activation dans les centres de données
A parcourir : Sur qui pèse le coût de la transition ?
Facteurs du déploiement
Utilisateurs
Périphériques
OS
Transport
Réseau
FAI, CPE
Contenus
Fournisseurs de services
Organismes de standardisation
IETF : Internet Engineering Task Force. L'organisme qui édicte les RFCs.
ITU : Organisme international des Télécommunications (WAN)
IEEE : Standardisation des technologies LAN/MAN 802
ISOC : Organisation soeur de l'IETF, elle agrée ses standard et fait la liaison avec les autres organismes
IANA : Organisme qui alloue globalement les blocs d'adresses IP. On ira lire l'article Wikipedia(en) sur l'épuisement des adresses IPv4 pour y trouver les définitions de RIRs et de LIRS. L'IANA gère aussi globalement les noms de domaines, les numéros de systèmes autonomes (AS) et les numéros de ports TCP et UDP.
RFCs IPv6
Les principes fondateurs d'IPv6 sont formalisés dans toute une série de RFCs (Requests For Comments) rédigés par l'IETF.
Les RFCs, littéralement “demandes de commentaires”, sont une série numérotée de documents officiels décrivant les aspects techniques d'Internet, ou de différents matériels informatique (routeurs, serveur DHCP).
Les RFCs font aussi des suggestions d'implémentation, d'architectures, de déploiement, visant à assurer l'inter-opérabilité avec les couches sous-jacentes.
Peu de RFCs sont des standards, mais tous les standards d'Internet publiés par l'IETF sont des RFCs. (Wikipedia)
Les industriels, les solutions GNU/Linux/BSD suivent de près les RFCs IPv6. Mais l’implémentation des fonctionnalités IPv6 dépend toujours de la volonté des constructeurs et des développeurs.
Les RFCs peuvent être traduits comme par exemple le démontre cette recherche. Aussi, elle peuvent l'objet de commentaires critiques comme le blog http://www.bortzmeyer.org/rfcs.html.
Bibliographie actualisée
O’Reilly, Cisco Press, Microsoft Press
en.wikipedia.org/wiki/IPv6
Programme ISOC IPV6 Deploy360
Activité
Discussion
Maintenir une veille technologique :
Quel est le matériel impacté par la transition ?
Quels sont les logiciels qui doivent être validés pour IPv6 ?
Quelle est ma politique de sécurité : comment est-elle mise en oeuvre en IPv4 ? Comment la mettre en oeuvre pour le trafic IPv6 ?
Prendre une connectivité globale :
native de préférence
Tunnels : Sixxs, HE, Gogo6, FAI
Mini-projet : Monter un prototype de test
Se remettre à niveau L1, L2, L3: marché, théorie, pratique.
2. Fondamentaux TCP/IPv6
Objectifs
Rappeler les principes et objectifs techniques fondamentaux d'IPv6
Placer IPv6 dans la hiérarchie protocolaire TCP/IP
Identifier IP comme une technologie de convergence
Identifier les types de noeuds IPv6 : hôtes et routeurs
Maîtriser la terminolgie protocolaire IPv6 fondamentale
TCP/IP
Un ensemble (pile) de protocoles de communication.
Ne se préoccupe pas du contenu.
Technologie planétaire qui interface directement n’importe quelle machine.
Technologie de l’Internet, en son coeur
Impact sociétal, économique, social : une révolution contemporaine.
Objectif de TCP/IP
Communiquer
à l’échelle du globe
de manière libérale
quel que soit
le contenu
le support
les hôtes
Convergence TCP/IP
Un grand nombre de tâches courantes (des services) sont réalisées en tant que données
A travers une seule technologie :
TCP/IP
Principes
Communication de bout en bout
Grâce aux routeurs, le réseau Internet se contente d’assurer le transfert rapide des paquets d’une extrémité à l’autre (où se situe l’intelligence). Les routeurs NAT, les pare-feux, bref la réalité, contredisent ce principe.
Robustesse
Être conservateur avec les messages envoyés et libéral avec les messages reçus.
Caractéristiques
IPv6 respecte des caractéristiques de la couche Internet (L3). En ce sens, il est similaire à IPv4.
Il est :
non fiable
non orienté connexion
respecte le modèle du meilleur effort (Best Effort)
unicité des adresses
une communication de bout en bout
Pour rappel, IPv6 respecte les principes fondateurs de l'Internet :
Il permet d'acheminer les paquets de bout à l'autre d'un inter-réseau.
Il fonctionne en mode non connecté.
Il est réputé non-fiable.
Modèle OSI et TCP/IPv4
Autour d'IPv6
Même si IPv6 est central, il reçoit du soutien d'autres protocoles et technologies :
Les commutateurs effectuent des filtrage haut niveau
Les routeurs interconnectent les réseaux entre eux.
Il est supporté par toutes les technologies sous-jacentes LAN/WAN de couche Accès Réseau.
Il est aidé par les protocoles de transport TCP et UDP.
ICMP se voit confier des tâches de résolution d'adresse et de gestion d'adresses en plus des messages habituels d'information et d'erreur.
Le broadcast est remplacé par l'usage plus fin du multicast.
L'adressage est amplement disponible, simplifié, automatique, rendant le NAT inutile (renforçant la sécurité).
Il est aidé par les protocoles de routage RIPng (RFC 2080), IS-IS for IPv6, OSPFv3 (RFC 2740), MP-BGP (RFC 2545/2858) et EIGRP for IPv6.
Basse couches Accès réseau
TCP/IPv6
Architecture IPv6
Bien qu'IPv6 et IPv4 répondent au même modèle de communication, ils sont incompatibles entre eux. On trouvera trois types d'objet sur l'Internet :
Ceux qui sont seulement activés en IPv4
Ceux qui sont seulement activés en IPv6
Ceux qui sont activés en IPv6 et IPv4 (dual-stack)
Un nœud (node) est un objet qui implémente IPv6. Parmi les nœuds, on trouve
des hôtes (hosts)
et des routeurs (router).
Routeurs et Hôtes
Les routeurs sont des nœuds qui se chargent de transférer le trafic qui ne leur est pas explicitement destiné. Ceux-ci tiennent des tables de routage qui connaissent toutes les destinations.
Les hôtes peuvent être n'importe quel objet communiquant (ordinateur de bureau, terminal léger, embarqué, smartphone, machine virtuelle, etc.) quel que soit son système d'exploitation.
Passerelles IPv6
Les hôtes connaissent leur routeur (ou leur passerelle par défaut) :
en IPv4 :
statiquement
par DHCP
en IPv6 :
statiquement,
via des RA/RS (Router Solicitation/Router Advertisement en Neighbor Discovery) ICMPv6 ND
En IPv6, le routeur s’annonce lui-même. Ne ne chercher plus l’option sur le serveur DHCPv6.
Terminologie protocolaire IPv6
Un lien (link) est le support physique (ou la facilité telle qu'un tunnel) de communication entre deux nœuds au niveau de la couche 2 liaison de données/accès réseau (technologies LAN/WAN).
Deux nœuds sur le même lien sont voisins (neighbors).
Une interface est l'attachement d'un nœud au lien.
Une adresse est un identifiant pour une interface (Unicast) ou pour un ensemble d'interfaces (Multicast). Une interface peut avoir plusieurs adresses IPv6 et être inscrite dans plusieurs groupes Multicast.
Un préfixe désigne l'appartenance à un domaine IPv6. Il se note après l'adresse et une barre oblique / (“slash”).
Terminologie protocolaire IPv6 (2/2)
Contraintes d’une connectivité TCP/IP
Bande passante Upload
Bande passante Download
Délais
MTU
Support des liaisons WAN (IP/MPLS)
Nouveautés IPv6
Le broadcast disparaît au profit du multicast
Plus besoin de NAT
ARP disparaît au profit de ND (ICMPv6)
Entrée DNS IPv6 AAAA
Le routeur configure le réseau
Adressage automatique local obligatoire
Autoconfiguration et/ou DHCPv6
Plug-and-Play
DHCPv6-PD, solutions IPAM
Reprise en main de la sécurité
Activité : analyse de protocoles
Analyse de protocoles IPv6 :
ICMPv6 echos
DNS AAAA en IPv6
Paquets ICMPv6 ND
Adjacence OSPFv3
Merci à http://packetlife.net/captures/protocol/ipv6/
3. Paquets IPv6
Objectifs
Identifier et comprendre les champs des en-têtes IPv6 de base.
Comparer les en-têtes IPv6 et IPv4
Identifier et comprendre le principe de l’enchaînement des en-têtes d’extension.
RFC 2460
Le RFC 2460 est un texte central qui spécifie des fonctionnalités telles :
l’en-tête de base IPv6
les en-têtes d'extension IPv6
la découverte du MTU (RFC 1981)
les labels relatifs aux flux d'information (RFC 6437)
les classes de trafic (RFC 2474)
les problèmes relatifs aux protocoles de couches supérieures
En-têtes IPv4 et IPv6
Un en-tête IPv6 fixe de 40 octets
Disparition du champs "Header Checksum", IHL
La fonction de fragmentation a été retirée des routeurs
Les "Options" remplacées par les "Extensions"
Les champs d'adresses sont des mots de 128 bits.
"Next Header" = "Protocol"
"Hop Limit" = "Time to Live"
"Flow Label" est nouveau
IPv6 vise à minimiser la surcharge à son niveau et à simplifier le processus de traitement des paquets sur les routeurs.
Objectifs de conception de l'en-tête IPv6 :
Minimiser la surcharge à son niveau
Simplifier le processus de traitement des paquets
Des informations moins importantes et les champs d'options ont été déplacés dans les en-têtes d'extension.
Bref, les en-têtes IPv6 et IPv4 ne sont pas compatibles.
1. Un en-tête IPv6 fixe de 40 octets
La longueur de l'en-tête IPv6 est fixée à 40 octets. Cette caractéristique soulage les routeurs qui traitent ces informations. La longueur de l'en-tête IPv4 peut varier de 20 à 60 octets. Cette variabilité de la longueur d'en-tête charge les routeurs.
2. Disparition du champs "Header Checksum"
Le champs "Header Checksum" disparaît de l'en-tête IPv6. Tous les protocoles de niveau supérieur doivent mettre en œuvre un mécanisme de checksum de bout en bout incluant un pseudo-en-tête qui prend en compte les adresses source et destination. Le checksum d'UDP, facultatif pour IPv4, devient ainsi obligatoire.
3. La fonction de fragmentation a été retirée des routeurs
La fonction de fragmentation est un rôle qui a été retirée aux routeurs. Les champs correspondant (identification, drapeau, place du fragment) ont été supprimés. La fragmentation est désormais prise en charge par les hôtes terminaux. Ces derniers découvre le MTU par un mécanisme tel que PathMTU qui utilise ICMPv6. Fixer le MTU à une taille minimale sur les hôtes est une pratique. Le RFC 2460 fixe la taille minimale du MTU à 1280 octets contre 68 octets pour IPv4 (RFC 791).
4. Les “Options” remplacées par les “Extensions”
Les "Options" ont été retirées de l'en-tête. Leur fonction est remplacées par une encapsulation supérieure avec de nouveaux en-têtes appelés "Extensions" qui peuvent être facilement ignorés par les routeurs intermédiaires. Les extensions d'IPv6 peuvent être vues comme un prolongement de l'encapsulation d'IP dans IP. À part l'extension de proche-en-proche traitée par tous les routeurs intermédiaires, les autres extensions ne sont prises en compte que par les équipements destinataires du paquet.
Champs d’en-tête IPv6
Le RFC 2460 définit huit champs dans l'en-tête de base IPv6 :
Version (4 bits) : indique le protocole utilisé. IPv6 prend nécessairement la valeur 6 ou 0X0110 sur 4 bits.
Traffic Class (8 bits) : permet de distinguer différentes classes ou priorité de trafic à traiter par les hôtes ou les routeurs.
Flow Label (20 bits) : peut être utilisé pour distinguer jusqu'à 2exp20 flux différents censé permettre de la gestion fine de bande passante. Mais cette option reste expérimentale. Pour l'instant la valeur de ce champ est placée à zéro ou est ignorée. L'appendice A de la RFC 2460 décrit la sémantique de ce champ.
Payload Length (16 bits) : est la longueur de la charge du paquet en octets.
Next Header (8 bits) : indique le type d'en-tête qui suit directement l'en-tête IPv6 de base selon une numérotation définit dans la RFC 1700, “Assigned Numbers”.
Hop Limit (8 bits) : est prévue pour éviter le bouclage infini du même paquet IP. A chaque passage de routeur, la valeur maximale (256) est désincrémentée de un (1). Quand la valeur atteint zéro (0), le paquet est abandonné par un nœud et, typiquement, renvoie un message ICMPv6 message (“time exceeded”) à la source du paquet. Ce mécanisme explique brièvement le fonctionnement du logiciel traceroute ou tracert.
Source Address (128 bits) : indique l'adresse du noeud d'origine.
Destination Address (128 bits) : indique l'adresse du nœud de destination.
En-tête de base et en-tête d'extensions
IPv6 encapsule tout le trafic dans un en-tête fixe de base constitué de huit champs.
Les extensions d'IPv6 peuvent être vues comme un prolongement de l'encapsulation d'IPv6 dans IPv6.
À part l'extension de proche-en-proche traitée par tous les routeurs intermédiaires, les autres extensions ne sont prises en compte que par les équipements destinataires du paquet.
Champs IPv6 "Next Header" et en-têtes d'extension
Une extension a une longueur multiple de 8 octets.
Elle commence par un champ Next Header d'un octet qui définit le type de données qui suit l'extension : une autre extension ou un protocole de niveau 4 (voir tableau Valeurs du champ Next Header).
Pour les extensions à longueur variable, l'octet suivant contient la longueur de l'extension en mots de 8 octets, le premier n'étant pas compté (une extension de 16 octets a un champ longueur de 1).
Valeurs du champ Next Header
Order
Header
NH
1
Basic IPv6 Header
-
2
Hop-by-Hop Options
0
3
Destination Options (with Routing Options)
60
4
Routing Header, type 0 deprécié par RFC5095
43
5
Fragment Header
44
6
Authentication Header
51
7
Encapsulation Security Payload Header
50
8
Destination Options
60
9
Mobility Header
60
-
No next header
59
Upper layer
TCP
6
Upper layer
UDP
17
Upper layer
ICMP
58
Enchaînement d’extensions
Les extensions peuvent s'enchaîner en suivant l'ordre défini par le RFC 2460. Cette possibilité rend les politiques de filtrage plus lourdes, nécessitant une bonne connaissance du protocole et de la charge sur le matériel filtrant.
Enchaînement : principe
Dans cet exemple (Cisco Systems), le paquet est envoyé du Mobile Node A au Mobile Node B à travers dialogue TCP (6), utilisant l'extension Routing (43) et l'extension Destination Options (60). Il est envoyé à travers un chemin ayant un Maximum Transmission Unit (MTU) plus petit que les liaisons physiques des Mobile Nodes (MNs) et utilise l'extension Fragmentation (44).
Cisco Systems ©
Comparatif IPv4/IPv6
Protocole
IPv4
IPv6
Similitude IPv4
Différence IPv6
En-tête variable embarquant des options
En-tête fixe  de 40 octets et simplifiée
Champs d’adresses
Version
Protocol/Next Header
TTL/Hop Limit
Performance
Les options sont reportées dans des en-têtes d’xtension
Fragmentation à partir des hôtes ou des routeurs
Fragmentation à partir des hôtes uniquement
via PathMTU
Fonctionnelle
PathMTU
Les routeurs ne fragementent pas le trafic
Les fragments sont embarqués dans des en-têtes d’extension
Le trafic ICMPv6 Packet Too Big ne doit pas être filtré
Activité : capture de paquets
Un exemple de paquets ICMPv6 echo request fragmentés.
Mise en place de la connectivité IPv6 par le formateur : Démonstration.
Lancer Wireshark.
Capturer des paquets IPv6.
Quels sont les protocoles embarqués par IPv6 sur votre connexion ?
Examiner les champs d’un paquet IPv6
4. Représentation des adresses IPv6
Objectifs
Se représenter mentalement l’espace d’adressage IPv6
Écrire correctement un bloc IPv6 avec son masque
Distinguer le préfixe et l’identifiant d’interface d’une adresse
Maîtriser les concepts de domaine IPv6
Représenter correctement des préfixes et des adresses IPv6 dans des URI/URL.
Suivre les bonnes pratiques en matière de représentation des adresses IPv6
Adresse IP
Une adresse IP est l’élément d’identification d’une interface qui est disponible sur l’inter-réseau.
Grâce à cet élément logique d’information, un noeud d’extrémité peut joindre un autre noeud d’extrémité.
En IPv6, ces adresses ne sont pas censées être modifiées tout au long de leur trajet.
Adresse physique
Les adresses physiques, comme les adresses IEEE 802 MAC, permettent la livraison sur le lien.
Une correspondance doit être établie entre chaque adresse IP à joindre est une adresse physique locale.
En IPv4 se mécanisme dépendait d’un autre protocole comme ARP et s’appelle la résolution d’adresse
En IPv6, la fonctionnalité est embarquée et améliorée. Elle est connue sous le nom de découverte de voisinage (ND).
Espace presque infini
Le plus grand avantage d'IPv6 est son espace presque infini selon notre point de vue. Il offre un espace de 128 bits. En effet que représentent 2128 adresses par rapport à notre Internet v4 opaque adressé sur 232 adresses ?
Ces adresses sont représentées en notation hexadécimale (chaque hexa ayant une valeur de 4 bits).
Elles sont organisées hiérarchiquement.
L'espace 2000::/3 est alloué aux adresses globales (L'Internet), soit seulement 12,5 % de l'espace disponible. Il offre déjà énormément plus d'espace que l'actuel Internet version 4.
Représentation des adresses IPv6
Une adresse IPv6 est un identifiant (pour une interface) de 128 bits représenté :
en hexadécimal (0 à F, base 16)
en 8 valeurs de 16 bits, appelés des mots (4 hexas)
séparé par des deux-points
L’adressage IPv6 fait l'objet de manipulations de blocs divisés en 16 bits, en 12 bits, en 8 bits, en 4 bits ...
Une adresse IPv6 supporte obligatoirement le routage sans classe (CIDR) : elle est donc toujours accompagnée de son masque.
Heureusement, cette notation peut être simplifiée.
Masque d’adresse
Le masque IPv6 respecte uniquement  la notation CIDR (Classles Inter Domain Routing).
Le nombre après la barre oblique représente le masque (en nombre de bits à 1).
Par exemple le /64 dans l'adresse
2001:0db8:00d6:3000:0000:0000:6700:00a5/64
Le /64 correspond aux 64 premiers bits de l'adresse qui identifie le réseau. Les 64 derniers bits restant identifient l’hôte dans ce réseau.
Préfixe et identifiant d’interface
Une adresse IPv6 est composée de deux parties :
Le préfixe : commun à toutes les interfaces qui partagent le même lien (support)
L’identifiant d’interface : qui identifie précisément l’interface sur le lien
2001:0db8:00d6:3000:0000:0000:6700:00a5/64
Préfixe:Identifiant d'interface masque de 64 bits
Domaine IPv6
Toutes les interfaces d’un domaine IPv6 ont le même préfixe.
Notation d'adresse
Dans un URL on l'encadrera de crochets. http://[2001:0db8:00d6:3000:0000:0000:6700:00a5] Mais aussi dans les URI SIP (voir http://edvina.net/sipv6/protocol/)
Le numéro de réseau est représenté par le préfixe suivi de :: et du masque 2001:0db8:00d6:3000::/64 NB : L’usage réservé de la première adresse et de la dernière a disparu (IPv4).
Notation simplifiée :
On peut omettre les 0 superflus en en-tête
On peut supprimer une seule fois une suite de mots consécutifs à 0.
Exemple de notation IPv6 (1/2)
2001:0db8:00d6:3000:0000:0000:6700:00a5/64
devient en première instance :
2001:0db8:00d6:3000:0000:0000:6700:00a5/64
soit,
2001:db8:d6:3000:0:0:6700:a5/64
devient en seconde instance :
2001:db8:d6:3000:0:0:6700:a5/64
soit,
2001:db8:d6:3000::6700:a5/64
Exemple de notation IPv6 (2/2)
2001:0db8:0000:0000:1000:0000:0000:0001/64
devient en première instance :
2001:0db8:0000:0000:1000:0000:0000:0001/64
soit,
2001:db8:0:0:1000:0:0:1/64
devient en seconde instance :
2001:db8:0:0:1000:0:0:1/64
ou au choix,
2001:db8:0:0:1000:0:0:1/64
soit, 2001:db8::1000:0:0:1/64
ou, 2001:db8:0:0:1000::1/64
Pratique des adresses IPv6 (1/2)
Une connectivité de type entreprise reçoit un bloc /48 ou /56, par exemple 2001:db8:1ab::/48 ou 2001:db8:1ab:cd00::/56
On divise et organise un bloc fixe /48 en 65536 réseaux /64 ou un bloc /56 en 265 réseaux /64
Les 64 premiers bits, les 3 ou 4 premiers mots sont ceux du réseau (des sous-réseaux) de l'entreprise, qui ne changent jamais.
Toutes les adresses Unicast doivent avoir un masque de 64 bits. Utiliser un autre masque peut rompre le bon fonctionnement de neighbor discovery, secure neighbor discovery (SEND), privacy extensions, mobile IPv6, embedded-RP (multicast).
donnée de 16 bits : « word » ou « mot », parfois « seizet » voire même « doublet » et pourquoi pas le « twoctet » (Wikipedia FR)
Pratique des adresses IPv6 (2/2)
Un service DNS dynamique combiné à DHCPv6 sera utile dans un LAN contrôlé.
Les adresses des routeurs et des serveurs doivent être fixes.
La politique de filtrage du trafic et de sécurité est un enjeu dans un déploiement d'IPv6.
Le dual-stack est toujours la méthode de transition préférée.
Conclusion
Un fonctionnement similaire à IPv4 (préfixe/hôtes).
Un changement culturel :
On manipule au maximum 16 bits en hexas c'est mieux que 32 bits en binaire
On peut dépenser des adresses tant qu'on veut On n'en manquera plus
On utilise les masques de manière extensive (fixée à maximum /64 sur les réseaux) Il ne faut plus manipuler des masques restrictifs et illisibles
Un changement inéluctable :
Il n'y a pas de protocole alternatif qui autorise la croissance de l’Internet
Quiz 4
Quiz de connaissances : Fondamentaux IPv6 et Représentations des adresses IPv6
5. Type d'adresses IPv6
Objectifs
Rappels sur les modes de livraison
Préfixes et identifiants d’interface MAC-EUI64
Identifier les types d'adresses IPv6 selon leur préfixe.
l'adressage unicast et multicast
Multicast Scope et Mulitcast Groups
Solicited-Node Multicast
l'adressage Global, Link-Local, ULA
Reconnaître et configurer un identifiant d'interface
Modes de livraison
Unicast : à destination d'une seule interface
Broadcast : à destination de toutes les interfaces
Multicast : à destination d'un ensemble (un groupe) d'interfaces
Anycast : à l’interface la plus proche (DNS p. ex.)
Comment les commutateurs LAN traitent-ils le trafic multicast ? Qu’en est-il au coeur du réseau Internet ?
X
Préfixes IPv6 alloués
L'espace IPv6 à allouer est énorme. C'est un masque qui définit l'étendue des réseaux. Des plages (préfixes) ont donc été réservées pour un usage spécifique.
Des plages pour l'adressage Unicast :
Link Local : fe80::/10 (obligatoire)
Global : 2000::/3
Unique Local : fc00::/7, fd00::/8
Des plages pour l'adressage Multicast :
par exemple, l'adresse ff02::2 identifie tous les routeurs sur le lien local
par exemple, un client DHCPv6 envoit un Solicit venant de [fe80::aabb:ccff:fedd:eeff]:546 à destination de [ff02::1:2]:547
Identifiant d'interface
Une adresse IPv6 attribuée à une interface est constituée d'un préfixe de 64 bits et d'un identifiant d'interface de 64 bits. Un identifiant d'interface peut être créé de différentes manières :
statiquement : 2001:db8:14d6:1::1/64, 2001:db8:14d6:1::254/64,
par autoconfiguration (SLAAC) en utilisant l'une de ces trois méthodes  :
MAC EUI-64, par défaut (RFC 4862)
tirage pseudo aléatoire, par défaut chez Microsoft, Ubuntu, Mac OSX (RFC 4941)
CGA, peu implémenté (RFC 3972)
dynamiquement : DHCPv6 (RFC 3315), si le client est installé et activé (par défaut sur Microsoft Windows et Mac OSX)
MAC EUI-64
MAC EUI-64 est une est des méthodes de configuration automatique des ID d'interface basé sur l'adresse MAC IEEE 802 (48 bits).
Classes d'adresses IPv6
Les adresses IPv6 sont organisées en classes reconnaissables par la valeur du premier mot :
Link-Local, à portée locale uniquement, non routé, obligatoire sur chaque interface en FE80::/64. Configuré automatiquement par défaut.
Unique Local Unicast, uniquement pour un usage privé, toutefois censé être unique (RFC4193)
Global Unicast, adresses routables sur l'Internet.
Multicast, à portée variable et convenue
Adressage Link-Local
L'adressage Link-Local (Unicast) se reconnaît par :
un préfixe FE80::/10
un identifiant d'interface de 64 bits autogénéré (MAC-EUI64 ou aléatoire) ou fixé (Cisco)
est obligatoire sur toutes les interfaces quand IPv6 est activé
Ces destinations ne sont jamais transférées par les routeurs !
Ces adresses sont utilisés dans le trafic de gestion comme ND, RA, dans les protocoles de routage.
Un adressage lien local automatique
Chaque interface est toujours automatiquement dotée d’une adresse Link-Local ayant pour préfixe FE80::/64 et ayant construit son identifiant d’interface (SLAAC) :
de manière aléatoire, par défaut sur les machines Microsoft, Mac OSX, certains Linux (RFC 4941)
avec la méthode MAC-EUI 64, par défaut (Unix/Linux, Cisco)
Un mécanisme de détection d’adresse dupliquée (DAD) utilise des messages ICMPv6 pour effectuer cette vérification ainsi que des messages de vérification de disponibilité (NUD)
Joindre une adresse Link-Local
Puisque toutes les interfaces d'une noeud IPv6 disposent d'une adresse dans la même plage Link-Local, il faudra spécifier l'interface de sortie quand on voudra joindre une autre destination Link-Local.
On fait alors suivre le sigle % (modulo) suivi du nom ou du numéro de l'interface dans une commande.
Par exemple sous Windows :
ping fe80::1%14
ou par exemple sous Linux :
ping6 fe80::1%eth0
Adressage Link-Local Cisco IOS
IPv6 est désactivé par défaut sous Cisco IOS :
(config-if)#ipv6 enable
Une adresse Link-Local est alors automatiquement autoconfigurée.
On peut la définir statiquement :
(config-if)#ipv6 add fe80::1 link-local
Adressage Global Unicast
L’espace d’IPv6 qui est alloué à l’Internet global est le bloc 2000::/3, soit un espace de 125 bits.
Si les 64 derniers bits d’une adresse identifient les interfaces et que 16 bits sont réservés aux sous-réseaux, il reste 45 bits pour l’allocation globale de réseaux contre les 32 bits théoriques d’IPv4.
| 3 |     45 bits         |  16 bits  |       64 bits              | +---+---------------------+-----------+----------------------------+ |001|global routing prefix| subnet ID |       interface ID         | +---+---------------------+-----------+----------------------------+
La dernière adresse de cette plage publique est 3FFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF
Allocation des adressses IPv6 Global Unicast
Adressage global (RFC3587)
FP
( Format Prefix ) 3
:  001   (binary)
TLA
( Top-Level Aggregation Identifier ) 13
:  0000000000001   (binary)
Sub-TLA
( Sub-TLA Aggregation Identifier ) 3
:  06F   (hexa)
NLA
( Next-Level Aggregation Identifier ) 29
:  814D6   (hexa)
SLA
( Site Level Aggregation Identifier ) 16
:  3000   (hexa)
Interface ID
( Interface Identifier ) 64
:  7256:81FF:FEBF:7C37   (hexa)
Adressage global sous Cisco IOS
Pour adresser une interface en auto-configuration
(config-if)# ipv6 address autoconfig
Pour adresser une interface statiquement :
(config-if)#
ipv6 address 2001:470:CBF7:200::1/64
Autres adresses Unicast
Adresses locales uniques (ULA)
FC00::/7 -  FD00::/8
Ces adresses sont utilisées pour les communications locales et ne sont routables que sur les sites qui le souhaitent. C'est l'équivalent des plages d'adresses privées RFC 1918.
Le 8e bit doit être actuellement fixé à 1 (mettre ce bit à 0 n'est pas encore défini), ce qui donne habituellement le préfixe fd00::/8 pour les adresses assignées localement. L'adresse comprend un préfixe pseudo-aléatoire de 40 bits pour éviter les conflits lors de l'interconnexion de réseaux privés.
Sixxs.net se propose d’enregistrer les préfixes ULA : https://www.sixxs.net/tools/grh/ula/
Adresse de bouclage
::1/128
Adresse loopback c'est-à-dire la machine elle-même, équivalent de 127.0.0.1 en IPv4.
Multicast généralisé
L’usage du multicast se généralise. Les adresses Multicast bien connues sont, entre autres :
FF02::1 Tous les noeuds sur le segment du réseau
FF02::2 Tous les routeurs sur le segment du réseau
FF02::1:2 Tous les serveurs DHCP sur le segment du réseau
Solicited-Node Multicast
Le 4ème hexa indique l’étendue et l'identifiant d'interface indique le type de noeud à joindre.
Le multicast intervient en lieu et place du broadcast dans le trafic de contrôle (voisinage, configuration IP, etc.).
Adressage Multicast
Les 4 derniers bits du préfixe FF0s identifient l'étendue (s) et les 112 derniers bits identifient le groupe.
Address
Group Description
Available Scopes
ff0s::1
All nodes address, identify the group of all IPv6 nodes
Available in scope 1 (interface-local) and 2 (link-local):
ff01::1 → All nodes in the interface-local
ff02::1 → All nodes in the link-local
ff0s::2
All routers
Available in scope 1 (interface-local), 2 (link-local) and 5 (site-local):
ff01::2 → All routers in the interface-local
ff02::2 → All routers in the link-local
ff05::2 → All routers in the site-local
ff02::5
OSPFIGP
2 (link-local)
ff02::6
OSPFIGP Designated Routers
2 (link-local)
ff02::9
RIP Routers
2 (link-local)
ff02::a
EIGRP Routers
2 (link-local)
ff02::d
All PIM Routers
2 (link-local)
ff0X::fb
mDNSv6
Available in all scopes
Adressage Multicast
Autres exemples d'adresses multicast :
Address
Description
Available Scopes
ff0s::101
All Network Time Protocol (NTP) servers
Available in all scopes
ff02::1:1
Link Name
2 (link-local)
ff02::1:2
All-dhcp-agents
2 (link-local)
ff02::1:3
Link-local Multicast Name Resolution
2 (link-local)
ff05::1:3
All-dhcp-servers
5 (site-local)
ff02::1:ff00:0/104
Solicited-node multicast address. see below.
2 (link-local)
ff02::2:ff00:0/104
Node Information Queries
2 (link-local)
Adresses multiples
Une interface pourrait disposer :
d’une adresse Link-local autoconfigurée aléatoirement
et par préfixe (ULA ou global) :
d’une adresse attribuée par DHCP
d’une adresse aléatoire dite “publique”, utilisée pour du trafic entrant
d’une adresse aléatoire dite “temporaire”, utilisée pour le trafic sortant
L’interface peut être inscrite dans plusieurs groupes Multicast bien connus ou sollicités.
ipconfig, ifconfig, netsh interface ipv6 sont des commandes utiles pour faire ces vérifications.
ipconfig
Microsoft Windows [Version 6.3.9600]
(c) 2013 Microsoft Corporation. All rights reserved.
C:\Users\User1>ipconfig
Windows IP Configuration
Ethernet adapter Ethernet0:
Connection-specific DNS Suffix  . : lan.org
IPv6 Address. . . . . . . . . . . : 2001:db8:acaf:fd00::2ae
IPv6 Address. . . . . . . . . . . : 2001:db8:acaf:fd00:b48a:c5e2:e5a3:1f3e
IPv6 Address. . . . . . . . . . . : fd26:44e1:8c70:fd00::2ae
IPv6 Address. . . . . . . . . . . : fd26:44e1:8c70:fd00:b48a:c5e2:e5a3:1f3e
Temporary IPv6 Address. . . . . . : 2001:db8:acaf:fd00:61a9:365c:2d95:898
Temporary IPv6 Address. . . . . . : fd26:44e1:8c70:fd00:61a9:365c:2d95:898
Link-local IPv6 Address . . . . . : fe80::b48a:c5e2:e5a3:1f3e%3
IPv4 Address. . . . . . . . . . . : 192.168.1.195
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Default Gateway . . . . . . . . . : fe80::12fe:edff:fee5:a266%3
192.168.1.1
netsh int ipv6 show add
Combien y a-t-il d’adresses IPv6 sur cette interface Windows 8.1 ?
C:\Users\user1>netsh int ipv6 show add
Interface 3: Ethernet0
Addr Type  DAD State   Valid Life Pref. Life Address
---------  ----------- ---------- ---------- ------------------------
Dhcp       Preferred    23h15m46s  23h15m46s 2001:db8:acaf:fd00::2ae
Temporary  Preferred     1h53m48s     23m48s 2001:db8:acaf:fd00:61a9:365c:2d95:898
Public     Preferred     1h53m48s     23m48s 2001:db8:acaf:fd00:b48a:c5e2:e5a3:1f3e
Dhcp       Preferred    23h15m46s  23h15m46s fd26:44e1:8c70:fd00::2ae
Temporary  Preferred     1h53m48s     23m48s fd26:44e1:8c70:fd00:61a9:365c:2d95:898
Public     Preferred     1h53m48s     23m48s fd26:44e1:8c70:fd00:b48a:c5e2:e5a3:1f3e
Other      Preferred     infinite   infinite fe80::b48a:c5e2:e5a3:1f3e%3
ifconfig
Combien y a-t-il d’adresses IPv6 sur cette interface Linux Debian ?
root@debian:~# ifconfig eth0
eth0      Link encap:Ethernet  HWaddr b8:27:eb:59:70:f3
inet adr:192.168.1.119  Bcast:192.168.1.255  Masque:255.255.255.0
adr inet6: fd26:44e1:8c70:fd00:ba27:ebff:fe59:70f3/64 Scope:Global
adr inet6: fe80::ba27:ebff:fe59:70f3/64 Scope:Lien
adr inet6: 2001:db8:acaf:fd00:ba27:ebff:fe59:70f3/64 Scope:Global
UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
RX packets:93310 errors:0 dropped:49 overruns:0 frame:0
TX packets:76990 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 lg file transmission:1000
RX bytes:11548535 (11.0 MiB)  TX bytes:14021689 (13.3 MiB)
netsh int ipv6 show joins
C:\Users\User1>netsh int ipv6 show joins
Interface 3: Ethernet0
Scope       References  Last  Address
----------  ----------  ----  ---------------------------------
0                    0  No    ff01::1
0                    0  No    ff02::1
0                    4  Yes   ff02::c
0                    1  Yes   ff02::1:3
0                    2  Yes   ff02::1:ff00:2ae
0                    0  No    ff02::1:ff3f:62e6
0                    2  Yes   ff02::1:ff95:898
0                    3  Yes   ff02::1:ffa3:1f3e
Commandes IPv6 générales (1/2)
OS
Display IPv6 routing table
ping6
traceroute6
Mac OS X
netstat -rnf inet6
ping6
traceroute6
Linux
netstat -rnA inet6
ping6
traceroute6
FreeBSD
netstat -rnf inet6
ping6
traceroute6
Windows
netstat -rn
or
netsh interface ipv6 show routes
ping -6
tracert -6
Vyata
show ipv6 route
ping6
traceroute6
Commandes IPv6 générales 2/2
OS
Display IPv6 Addresses
Display IPv6 connections
Flush DNS cache
Mac OS X
ifconfig -a inet6
netstat -f inet6
dscacheutil -flushcache
Linux
ip -6 address show
netstat -A inet6 / netstat --inet6
/etc/rc.d/init.d/nscd restart
FreeBSD
ifconfig -a inet6
netstat -f inet6
/etc/rc.d/named restart
Windows
ipconfig
netstat -p IPv6
ipconfig /flushdns
Comparatif IPv4/IPv6
Adressage
IPv4
IPv6
Similitude IPv4
Différence IPv6
32 bits
128 bits
Le principe de base
Une différence culturelle
NAT44
NAT64 ?
fonctionnelle
NAT 66 ou NAT46 innopportun
Adressage privé
ULA aléatoire
fonctionnelle
Vraiment privé
Adressage publique
UGA
fonctionnelle
Objectif : la popularité
APIPA
Adressage Link-Local
purement d'apparence
usage obligatoire
ARP
ND (ICMPv6)
fonctionnelle
protocolaire
/
SLAAC
Importance renforcée du filtrage L2/L3
Nouveauté technologique obligatoire sur tous les noeuds : Plug-and-Play
Broadcast
Multicast
/
Performance
Obligatoire
Labs 5
Vérification et interprétation des paramètres IPv6 sous Windows
ipconfig et ipconfig/all
Test de la connectivité dual-stack sous windows: ping, tracert, nslookup
Vérification et test IPv6 sous *NIX (ipv6-nix)
ifconfig, netstat -r et cat /etc/resolv.conf
ping6 et traceroute6
dig AAAA, dig @
Examen avancé de la configuration IPv6 sous Windows
netsh interface ipv6 show addresses
netsh interface ipv6 show interfaces
netsh interface ipv6 show neighbors
netsh interface ipv6 show route
netsh interface ipv6 show joins
Activité : Quiz
6. ICMPv6
Objectifs
Positionner et comprendre le rôle du protocole ICMPv6
Reconnaître les différents types de messages ICMPv6
Comprendre le mécanisme de découverte de voisinage (ND)
Comprendre le mécanisme d'autoconfiguration sans état (SLAAC), DAD et NUD.
Considérer la durée de vie des adresses et leur dépréciation
Considérer les mécanismes de sélection des adresses IPv6 et IPv4
Désactiver les extensions Privacy
ICMPv6 et IPv6
IPv6 et ICMPv6 sont inter-dépendants.
Leur fonctionnement permet leur autonomie en communication locale, sans état, et une communication indépendante de la nature de l'infrastructure.
IPv6 est par ailleurs supporté par un grand nombre de technologies de couche 2.
ICMPv6
ICMPv6 est un nouveau protocole formalisé par le RFC 4443.
Messages d’erreur : Destination Unreachable, Packet Too Big, Time Exceeded, et Parameters Problems.
Messages informatifs : messages de diagnostic (echos), messages pour la gestion des groupes multicast, et messages de découverte de voisinage ND (RFC 4861) et SEND (RFC 3971).
ICMP devient crucial
En IPv6, ICMPv6 devient une composante obligatoire.
Neighbor Discovery est un sous-protocole IPv6 (types 133 à 137). Il remplit notamment les fonctions de résolutions d’adresses (ARP en IPv4) qui sont désormais appelées fonction de découverte de voisins. On ne parle plus de table ARP mais de table de voisinage.
Les routeurs configurent automatiquement l’adressage global par des Router Advertisment autonomes ou sollicités par des Router Solicitation (Messages ND type 133/134).
Les routeurs ne fragmentant plus le trafic, cette fonction est laissée obligatoirement au hôtes. Ils utilisent des paquets ICMPv6 Packet Too Big (Type 2).
7. Découverte de voisinage (ND)
Objectifs
Neighbor Discovery
5 types de messages ND :
Type ICMPv6 133 : Router Solicitation (RA)
Type ICMPv6 134 : Router Advertisement (RS)
Type ICMPv6 135 : Neighbor Solicitation (NS)
Type ICMPv6 136 : Neighbor Advertisement (NA)
Type ICMPv6 137 : Redirect
On ne s’intéressera ici qu’aux messages NS/NA dans le cadre de la découverte et du maintien des relations de voisinages IPv6 et dans le mécanisme d’autoconfiguration.
Mécanismes ND
Address Autoconfiguration : assignation automatique d'adresse sans état,
Address Resolution : établissement de la correspondance entre adresse IP et adresse MAC,
Next-hop determination : détermination du routeur pour une destination déterminée,
Neighbor Unreachability Detection : détermine qu'un hôte n'est plus accessible,
Duplicate Address Detection : détermine si un autre hôte utilise la même adresse IP,
Router Discovery : les hôtes peuvent détecter les routeurs sur les liens auxquels ils sont connectés,
Prefix Discovery : les hôtes peuvent découvrir les préfixes sur les liens,
Parameter Discovery : découverte de paramètres comme le MTU, le serveur DNS, NTP, SIP, etc.
Redirect : information qu'un autre routeur sur le lien fournit un meilleur next hop.
Découverte et maintien de voisinage IPv6
De nouveaux messages ICMPv6 embarquent des fonctions de découverte de voisinage :
1. Neighbor Solicitation, NS : destination en Solicited-Node Multicast ou en Unicast
2. Neighbor Advertisment, NA : destination en Unicast ou All-nodes Multicast (FF02::1)
Les noeuds IPv6 maintiennent des tables de voisinage à l'instar de la table ARP en IPv4 grâce à de nouveaux mécanismes comme DAD et NUD .
Voici un exemple d’échange NA/NS.
Résolution d’adresse
Découverte de voisin sollicitée
Adresse Solicited-Node Multicast
Une adresse Solicited-Node Multicast est jointe en destination dans message NS de découverte de voisin.
Cette adresse est construite :
en prenant les 24 dernier bits de l'adresse IPv6 connue (unicast)
et en lui ajoutant le préfixe ff02:0:0:0:0:1:ff00::/104
Par exemple
fc00::1/64 sera joint par ff02::1:ff00:1.
fe80::2aa:ff:fe28:9c5a sera joint par ff02::1:ff28:9c5a.
Un hôte doit joindre une adresse Solicited-Node multicast pour chaque adresses unicast ou anycast configurée.
Ce mécanisme remplace le Broadcast d’ARP.
Commandes ND
OS
Display neighbor cache
Delete one entry
Flush neighbor cache
FreeBSD
ndp -a
ndp -d
ndp -c
IOS
show ipv6 neighbors
clear ipv6 neighbors
JunOS
show ipv6 neighbors
clear ipv6 neighbors
Linux
ip -6 neigh show
ip -6 neigh flush
Mac OS X
ndp -a
ndp -d
ndp -c
Vyatta
show ipv6 neighbors
clear ipv6 neighbors
Windows
netsh interface ipv6 show neighbors
netsh interface ipv6 delete neighbors
L'autoconfiguration sans état (SLAAC)
L’autoconfiguration sans état est formalisée dans le RFC 4862.
Autoconfiguration
Toute interface activée en IPv6 génère une adresse Lien Local.
Si un routeur est activé en IPv6, l'interface se configure automatiquement avec une adresse globale (publique) supplémentaire générée par EUI-64 ou avec deux adresses globales privées (aléatoires) dont l’une temporaire.
L'interface vérifie chaque adresse automatique avant de l'utiliser (DAD) et vérifie régulièrement l'existence de ses voisins (NUD).
Sans état
pas de maintien de relations (non fiable, non orienté-connexion).
La charge est placée sur les noeuds
Mode crédule
Importance du filtrage L2/L3
DAD (1/2)
DAD (Duplicate Address Detection) est un mécanisme qui permet vérifier l’unicité d’une adresse autoconfigurée sur un réseau.
Dans cette procédure, le noeud IPv6 va envoyer un NS à destination de l’adresse solicited-node muticast correspondant à son adresse de tentative. L’adresse source est non spécifiée, évidement (::/128)
En cas de réponse (NA), l’adresse n’est pas unique !
DAD (2/2)
Dans cet exemple, une interface Windows qui démarre génère trois NS. Veuillez examiner :
L’adresse IP source
L’adresse IP destination
L’adresse IP contenue dans la charge
Pourquoi trois paquets dans ce cas
No Source Destination        Info
1  ::     ff02::1:ff7e:4a1e  NS for fe80::1816:c126:507e:4a1e
2  ::     ff02::1:ff7e:4a1e  NS for 2001:470:cbf7:1ab:1816:c126:507e:4a1e
3  ::     ff02::1:ff0c:66ce  NS for 2001:470:cbf7:1ab:83c:9e7e:2f0c:66ce
NUD
NUD (Neighbor Unreachability Detection) est un algorithme défini dans le RFC4861 qui met en jeux des échanges NS/NA et leur délai. Il définit 5 états du cache de voisinage parmi lesquels :
Incomplete : la résolution d’adresse est en train de se dérouler. Un NS vers une adresse solicited-node multicast est envoyé mais le NA de retour correspondant n’est toujours pas arrivé.
Reachable : Une confirmation positive a été reçue. L’hôte de destination est joignable dans le délai “ReachableTime milliseconds”.
Stale : L’hôte de destination n’est pas joignable dans le délai “ReachableTime milliseconds”. Entre dans cet état lors d’un message NA non sollicité.
Delay et Probe.
Durée de vie des adresses
Les adresses IPv6 associées à une interface ont une durée de vie déterminée. La durée de vie est en général infinie, mais on peut configurer  :
une durée de vie préférée
et une durée de vie de validité.
Ces durées de vie sont configurées dans les routeurs qui fournissent les préfixes pour la configuration automatique.
En combinaison avec un changement DNS correspondant, ces durées de vie permettent une transition progressive vers une nouvelle adresse IPv6 (appartenant à un nouveau fournisseur de service par exemple) sans interruption de service.
Quand la durée d'utilisation d'une adresse dépasse la durée préférée, elle n'est plus utilisée pour les nouvelles connexions. Quand sa période de validité est atteinte, elle est supprimée de la configuration de l'interface.
Dépréciation d’une adresse
En effet, une interface pourrait recevoir du trafic entre sa durée préférée et son invalidité.
La sélection d’adresses
Le RFC 6274 fournit deux algorithmes à suivre pour que la sélection d'adresse source et destination par défaut soit prévisible.
C’est utile quand une interface (source) dispose de plus d’une adresse IPv6, ce qui ne sera pas rare.
Quid quand la destination dispose d’une adresse IPv4 et d’une IPv6 (AAAA) ? Ce RFC remplace le RFC 3484.
Une adresse IPv6 est préférée à une adresse IPv4.
“Si on veut résumer les deux algorithmes utilisés, on peut dire qu'ils préfèrent former des couples source/destination où les deux adresses ont
la même portée,
ont la portée la plus étroite possible,
sont des adresses préservant la vie privée (ULA),
et, en fin de compte, partagent le plus de bits de préfixe possibles.” (Bortzmeyer)
Désactiver les extensions Privacy sous Windows
netsh interface ipv6 show privacy
...
netsh interface ipv6 set global randomizeidentifiers=disabled store=active
netsh interface ipv6 set global randomizeidentifiers=disabled store=persistent
netsh interface ipv6 set privacy state=disabled store=active
netsh interface ipv6 set privacy state=disabled store=persistent
Disabling RFC 4941 IPv6 Privacy Extensions in Windows
8. Gestion d’adresses IPv6 (IPAM)
Objectifs
De nombreux messages de gestion sont disponibles par défaut ou configurés pour gérer l’adressage IPv6 :
DNS
ICMPv6, SLAAC, RA/RS, SLAAC, NUD, DAD
DHCPv6 Stateful
DHCPv6 Stateless
DHCP Relay
DHCPv6-PD
Adressage IPv6 global indépendant
Questions techniques
La gestion d’adresses IPv6 posent plusieurs questions techniques :
Comment distribuer un préfixe global ?
Comment distribuer des options telles que le résolveur de noms (DNS) IPv6 ?
Quand et comment utiliser l’adressage Unique Local (ULA) privé ?
Comment identifier le trafic de gestion et profiter du multicast ?
IPv6 pour renumérer de sites ?
Topologies et constructeurs
Les solutions de gestion d’adressage IPv6 se déploient selon les profils et les topologies :
SME/PME, SOHO ou accès public
Entreprise mono-site
Entreprise Multi-site, core, data-center, branch office
Core Internet, FAI, Gros fournisseurs de services
Et selon les constructeurs choisis :
Cisco, …
Microsoft, …
VMWare, …
Les services Cloud
9. Configuration du réseau par les routeurs
Objectifs
Router Advertisments
Router Solicitations
Paramètres RA
Méthodes de configuration IPv6
Option Prefix Information
Option Type 3
Le routeur configure le réseau
Une autre nouveauté d’IPv6 sont les échanges Neighbor Discovery (ND) “Router Solicitation” (RS 133) et “Router Advertisment” (RA 134).
Ils configurent le réseau en fournissant sur demande ou en annonce gratuite les paramètres de configuration des interfaces.
Paramètres RA (1/2)
Les Routeur Advertisment sont des messsages ICMPv6 type 134 disposant d’une en-tête IPv6 et de couche 2.
Un champ de drapeaux (Flags) indique l’usage de DHCP stateful et/ou stateless et une valeur de préférence de routeur ainsi que des options :
Le préfixe avec son masque
Le MTU que l’interface doit prendre
L’adresse source de couche 2 du message
Eventuellement, l’adresse d’un serveur DNS récursif, un cache (RDNSS). Cette option est peu supportée.
Router Advertisments
Type 134, code 0
Drapeux M, O, Prf
Options : MTU, adresse source L2 et préfixe
L’adresse source du message DOIT être l’adresse Link-Local de l’interface qui envoit le message.
L’adresse de destination est habituellement l’adresse source du routeur sollicité (Router Solicitation)  ou l’adresse All-Nodes Multicast (FF02::1)
0                   1                   2                   3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|     Type      |     Code      |          Checksum             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Cur Hop Limit |M|O|H|Prf|Resvd|       Router Lifetime         |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                         Reachable Time                        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                          Retrans Timer                        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|   Options ...
+-+-+-+-+-+-+-+-+-+-+-+-
RFC491 màj Neighbor Discovery [RFC4861] Section 4.2 et [RFC6275] Section 7.1
Options RA (2/2)
Ethernet II, Src: Globalsc_01:df:95 (f0:ad:4e:01:df:95), Dst: IPv6mcast_00:00:00:01 (33:33:00:00:00:01)
Internet Protocol Version 6, Src: fe80::f2ad:4eff:fe01:df95 (fe80::f2ad:4eff:fe01:df95), Dst: ff02::1 (ff02::1)
Internet Control Message Protocol v6
Type: Router Advertisement (134)
Code: 0
Checksum: 0x1bc0 [correct]
Cur hop limit: 64
Flags: 0xc0
Router lifetime (s): 1800
Reachable time (ms): 0
Retrans timer (ms): 0
ICMPv6 Option (Prefix information : 2001:db8:ffff::/64)
ICMPv6 Option (MTU : 1500)
ICMPv6 Option (Source link-layer address : f0:ad:4e:01:df:95)
ICMPv6 Option (Recursive DNS Server fe80::f2ad:4eff:fe01:df95)
4 méthodes de configuration IPv6
Ces quatre méthodes peuvent se combiner et servir à la gestion de l’adressage IPv6 ainsi qu’à la renumérotation IPv6. Elles sont indiquées dans le champs Flags :
Managed address configuration: M : DHCPv6 Stateful assignation d’adresse dynamique
Other configuration: DHCPv6 Stateless demande d’options supplémentaires
Home Agent: Mobilité IPv6
Prf (Default Router Preference): valorisation du RA par rapport à un autre (3 valeurs, 2 bits)
Reserved: Pour un usage futur
N
Configuration
M
O
1
Configuration statique
0
0
2
Stateless Automatic Autoconfiguration (SLAAC) seul
0
0
3
DHCPv6 (Stateful)
1
1
4
DHCPv6 Stateless
0
1
RA Flags
Champs O et M :
SLAAC
AdvAutonomous
(option Prefix Information)
Managed Configuration Address
AdvManagedFlag
Other Configuration
AdvOtherConfigFlag
Scénario
1 SLAAC
1
0
0
Assignation : sans état
Passerelle : sans état
DNS : RDNSS ou autre
2. Stateless DHCPv6
1
0
1
Assignation : sans état
Passerelle : sans état
DNS : DHCPv6
3 Statefull DHCPv6
0
1
1
Assignation : DHCPv6
Passerelle : sans état
DNS : DHCPv6
Le champs Prf donne une préférence au routeur codée sur 2 bits : 01(High), 00 (Medium par default), 11 (Low).
Option Prefix Information
L’option Prefix Information liste chaque préfixe IPv6 annoncé avec une série d’informations :
Le drapeau “L” "on-link" (AdvOnLinkFlag).
La valeur de durée de vie de validité
Le drapeau “A” "Autonomous address configuration" qui indique que l’interface utilise SLAAC avec ce préfixe.
La valeur de durée de vie de préférée
Exemple Option Type 3
Quel que soit la position du drapaux M ou O, ce sont les champs L et A qui indiquent l’usage de l’autoconfiguration automatique sans état (SLAAC) …
Cela signifie qu’une interface pourrait disposer pour chaque préfixe annoncé d’une adresse attribuée par DHCPv6 et une ou plusieurs adresses SLAAC.
ICMPv6 Option (Prefix information : 2001:db8:ffff::/64)
Type: Prefix information (3)
Length: 4 (32 bytes)
Prefix Length: 64
Flag: 0xc0
1... .... = On-link flag(L): Set
.1.. .... = Autonomous address-configuration flag(A): Set
..0. .... = Router address flag(R): Not set
...0 0000 = Reserved: 0
Valid Lifetime: 3600
Preferred Lifetime: 3600
Reserved
Prefix: 2001:db8:ffff:: (2001:db8:ffff::)
10. Support DNS IPv6
Objectifs
DNS IPv6
Hiérarchie DNS
Récursivité DNS
Enregistrements DNS IPv6
AAAA Record
Messages DNS
PTR Record
Serveurs DNS publics
Paramètres DNS
DNS IPv6
DNS est un service accessoire au sens protocolaire (IP fonctionne sans DNS). Dans la pratique il est devenu indispensable.
DNS est une base de donnée globale qui permet de résoudre le nom de ressources Internet en adresses IP.
Contrairement à DHCPv6, le fonctionnement de DNS en IPv6 a subi moins d'impacts.
Dans une topologie Dual Stack, le système d'exploitation ou l'application aura une préférence pour IPv6.
Hiérarchie DNS
Récursivité  DNS
Résolution itérative d'un nom dans le DNS par un serveur DNS (étapes 2 à 7) et réponse (étape 8) suite à l'interrogation récursive (étape 1) effectuée par un client (resolver) DNS. (remarque: Le serveur DNS récursif est dit récursif car il accepte ce type de requêtes mais il effectue des requêtes itératives)
Enregistrements DNS IPv6
A record ou address record qui fait correspondre un nom d'hôte à une adresse IPv4 de 32 bits distribués sur quatre octets ex: 123.234.1.2 ;
AAAA record ou IPv6 address record qui fait correspondre un nom d'hôte à une adresse IPv6 de 128 bits distribués sur seize octets ;
CNAME record ou canonical name record qui permet de faire d'un domaine un alias vers un autre. Cet alias hérite de tous les sous-domaines de l'original ;
MX record ou mail exchange record qui définit les serveurs de courriel pour ce domaine ;
PTR record ou pointer record qui associe une adresse IP à un enregistrement de nom de domaine, aussi dit « reverse » puisqu'il fait exactement le contraire du A record ;
NS record ou name server record qui définit les serveurs DNS de ce domaine ;
SOA record ou Start Of Authority record qui donne les informations générales de la zone : serveur principal, courriel de contact, différentes durées dont celle d'expiration, numéro de série de la zone ;
SRV record qui généralise la notion de MX record, mais qui propose aussi des fonctionnalités avancées comme le taux de répartition de charge pour un service donné, standardisé dans la RFC 2782 ;
AAAA Record
dig AAAA www.google.com
; <<>> DiG 9.8.3-P1 <<>> @2001:4860:4860::8888 AAAA www.google.com
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 43838
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;www.google.com. IN AAAA
;; ANSWER SECTION:
www.google.com. 299 IN AAAA 2a00:1450:4013:c00::63
;; Query time: 40 msec
;; SERVER: 2001:4860:4860::8888#53(2001:4860:4860::8888)
;; WHEN: Sun Oct 19 21:51:21 2014
;; MSG SIZE  rcvd: 60
Messages DNS (1/2)
1 0.000000000 2001:6f8:14e9:0:8972:1e9:5cf0:5c68 -> 2001:4860:4860::8888 DNS 94 Standard query 0xab3e  AAAA www.google.com
2 0.035248000 2001:4860:4860::8888 -> 2001:6f8:14e9:0:8972:1e9:5cf0:5c68 DNS 122 Standard query response 0xab3e  AAAA 2a00:1450:4013:c00::63
https://www.cloudshark.org/captures/eeee08990b96
Message DNS (2/2)
Domain Name System (response)
Transaction ID: 0xab3e
Flags: 0x8180 Standard query response, No error
Questions: 1
Answer RRs: 1
Authority RRs: 0
Additional RRs: 0
Queries
www.google.com: type AAAA, class IN
Name: www.google.com
Type: AAAA (IPv6 address)
Class: IN (0x0001)
Answers
www.google.com: type AAAA, class IN, addr 2a00:1450:4013:c00::63
Name: www.google.com
Type: AAAA (IPv6 address)
Class: IN (0x0001)
Time to live: 4 minutes, 59 seconds
Data length: 16
Addr: 2a00:1450:4013:c00::63
PTR Record
1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.8.b.d.0.1.0.0.2.ip6.arpa.  IN  PTR  host1.example.com.
pour
hots1.example.com    IN    A    2001:db8::1
Serveurs DNS IPv6 publics
Google :
2001:4860:4860::8888
2001:4860:4860::8844
OpenDNS :
2620:0:ccc::2
2620:0:ccd::2
Sixxs :
dig @nscache.eu.sixxs.net AAAA www.google.com
Paramètres DNS
Qui pousse les paramètres d’un serveur DNS dans le LAN ?
Soit le routeur directement via un RA avec option RDNSS accepté par le système d’exploitation (Ubuntu mais jamais Windows).
Soit via un message DHCPv6 INFORMATION-REQUEST envoyé au serveur et son REPLY (si le flag O des RA est positionné à 1).
11. Configuration automatique sans état (SLAAC)
Objectifs
L'autoconfiguration sans état (SLAAC) :
Méthode de configuration
Fonctionnement
Adresses
L'autoconfiguration sans état (SLAAC)
Méthode obligatoire dans un environnement routé.
Le routeur (RAs) donne toute une série de paramètres :
préfixe, mtu, préférence, passerelle (Flags RA M=0 et O=0)
et autres tels que les serveurs DNS, SIP, NTP, etc. (Flags RA M=0 et O=1) qui s’obtiennent en DHCPv6 Stateless
L'interface construit elle-même son identifiant d'interface selon différentes méthodes.
Fonctionnement de SLAAC
Toute interface activée en IPv6 génère une adresse Lien Local avec le préfixe FE80::/10 suivi d'un identifiant d'interface.
Elle vérifie l'existence de l'adresse générée via un mécanisme appelé DAD.
Sans réponse, elle peut utiliser cette adresse sur le lien local.
Elle sollicite un routeur en multicast .
S'il est présent sur le réseau, le routeur IPv6 répond avec des paramètres de configuration globale.
L'interface élabore son adresse globale selon ce qu'indique le routeur. Elle installe sa passerelle par défaut.
Régulièrement, l'interface va vérifier l'existence des noeuds voisins appris par processus ND (NUD).
SLAAC
Le processus SLAAC peut être examiné ici.
SLAAC : adresses
Avec des RA dont les drapeaux sont placés M=1, O=1, L=1 et A=1 (sur le préfixe), cette interface pourra prendre quatre adresses, soit une DHCPv6, deux SLAAC et une Link-Local :
C:\Users\francois>netsh interface ipv6 show address
...
Interface 11 : Connexion au réseau local
Addr Type  État DAD    Vie valide Pers. Fav. Adresse
---------  ----------- ---------- ---------- ------------------------
Dhcp       Préféré      23h58m17s  23h58m17s 2001:db8::4f3
Public     Préféré       1h58m16s     28m16s 2001:db8:0:1816:c126:507e:4a1e
Temporaire Préféré       1h58m16s     28m16s 2001:db8:0:f58e:e759:dbf2:7552
Autre      Préféré       infinite   infinite fe80::1816:c126:507e:4a1e%11
et ses trois groupes Multicast joints (netsh interface ipv6 show joins) :
ff02::1:ff00:4f3
ff02::1:fff2:7552
ff02::1:ff7e:4a1e
Activité : capture de trafic SLAAC
Veuillez capturer le trafic généré par une interface qui démarre et qui construit ses adresses.
Lancez la capture sur l’interface d’une machine virtuelle qui redémarre.
12. DHCPv6
Objectifs
Router Advertisments
DHCPv6 Stateful
DHCPv6 Stateless
Messages DHCPv6
Implémentation Microsoft
Implémentation Cisco IOS
DHCPv6
DHCPv6 est un nouveau protocole. Il utilise le port UDP numéro 546 sur les clients et le port UDP numéro 547 sur les serveurs. Une interface joint un un serveur DHCPv6 avec l’adresse Multicast FF02::1:2. DHCPv6 utilise les adresses Link-Local (FE80::/10) :
Le serveur assigne le préfixe et l'identifiant d'interface et des paramètres optionnels (DHCPv6 Stateful) : RFC 3315
Le serveur assigne seulement des paramètres optionnels (DHCPv6 Stateless) : RFC 3736
Le serveur délègue l’assignation d’un préfixe (DHCPv6 Prefix Delegation) : RFC 6603 (pas traité ici)
Fonctionnalité DHCP Relay (pas traité ici)
DHCPv6 et RA
Dans tous les cas c'est le routeur qui prend en charge le trafic vers l'internet, automatiquement grâce aux annonces de passerelles embarquées dans les RA.
Les flags Managed et Other et autres paramètres sont gérés et configurées à partir du routeur !
Il est inutile de chercher le paramètre de la passerelle par défaut dans rôles DHCPv6 de Windows Server.
Cisco Sytems, GNU Linux/BSD, Microsoft supportent bien ces services DHCPv6.
DHCPv6 Stateless
DHCPv6 Stateless est un mode DHCPv6 sans état :
utilise des messages Information-request/Reply
ne fournit que des informations optionnelles : serveur DNS, NTP, SIP, etc.
ne donne aucune adresse, elles sont générées par SLAAC ou attribuées
ne maintient aucun état dynamique des clients individuels
Le RA flags sont notés M=0/1 et O=1
Option DNS DHCPv6
Sur le routeur Cisco 0xX00 :
ipv6 dhcp pool IPv6_Option_pool
dns-server 2001:470:20::2
!
interface fastethernet0/0
ipv6 nd other-config-flag
ipv6 dhcp server IPv6_Option_pool rapid-commit
DHCPv6 mode Stateful
Le serveur assigne l’adresse complète et des paramètres optionnels (Flags RA M=1 et O=1)
Ce mode est appelé DHCPv6 Stateful. Il est similaire à ce que DHCP IPv4 peut utilement fournir sur un réseau administré.
Le serveur maintient une base de données des liens (des baux).
En quatre ou deux messages (rapid commit: Solicit/Reply)
Par exemple, en admettant que l'adresse lien-local du serveur est fe80::0011:22ff:fe33:5566/64 et que l'adresse lien-local du client est fe80::aabb:ccff:fedd:eeff/64,
1. le client DHCPv6 envoie un Solicit de [fe80::aabb:ccff:fedd:eeff]:546 à [ff02::1:2]:547.
2. le serveur DHCPv6 répond avec un Advertise (annonce) de [fe80::0011:22ff:fe33:5566]:547 à [fe80::aabb:ccff:fedd:eeff]:546.
3. le client DHCPv6 répond avec un Request de [fe80::aabb:ccff:fedd:eeff]:546 à [ff02::1:2]:547.
4. le serveur DHCPv6 termine avec un Reply de [fe80::0011:22ff:fe33:5566]:547 à [fe80::aabb:ccff:fedd:eeff]:546.
DUID (DHCPv6 Unique Identifier)
Selon la  section 9 du RFC3315, les serveurs DHCP utilisent les  DUIDs pour identifier les clients pour la sélection de paramètres et dans la sélection de son IA. Un IA (Identity Association) est une collection d’adresses assignés au client.
Le DUID doit être unique dans l’environnement et il est créé par le client. Parce que certains périphériques ne peuvent pas garder en mémoire cette information, il y a trois moyens de générer un DUID :
L’adresse de couche 2 + horodatage
“Vendor-assigned unique ID” basé sur un “Enterprise Number”
L’adresse de couche 2
Cette nouvelle fonctionnalité vise notamment à identifier autrement que par une adresse MAC un client DHCPv6.
Messages DHCPv6
1 SOLICIT
2 ADVERTISE
3 REQUEST
CONFIRM
RENEW
REBIND
4 REPLY
RELEASE
DECLINE
RECONFIGURE
1 INFORMATION-REQUEST
RELAY-FORW
RELAY-REPL
DHCPv6 MS-Windows
Adressez la machine,
suivez le guide en DHCPv6 Stateful,
adaptez les RA,
activez l’AD,
créez un compte,
enregistrez la machine
DHCPv6 Stateful Cisco
ipv6 dhcp pool test
address prefix 2010:AA01:10::/64 lifetime infinite infinite
dns-server AAAA:BBBB:10FE:100::15
dns-server 2010:AA01::15
domain-name example.com
!
interface F0/0
no ip address
duplex auto
speed auto
ipv6 address 2010:AA01:10::2/64
ipv6 dhcp server test rapid-commit
ipv6 nd other-config-flag
ipv6 nd managed-config-flag
DHCPv6 Conclusion
DHCPv6 est un outil puissant de configuration du réseau, conçu pour des topologies même très larges :
combiné au SLAAC
DHCP relay
Délégation de préfixe
Pour une discussion complémentaire sur DHCPv6 : http://ipv6friday.org/blog/2011/12/dhcpv6/
Outils de gestion
Microsoft Active Directory
Cisco IOS
OSS : bind9, wide-dhcpv6, radvd, dnsmasq, odhcpd
ndpmon
Activités partiques
1. Désactivation d’IPv4
2. Configuration DHCPv6 Stateless Cisco
3. Configuration DHCPv6 Stateful Cisco
4. Configuration DHCPv6 Stateful MS-AD
13. Plan d’adressage IPv6
Objectifs
Manipuler les bits, octets, mots en hexa
Concevoir des plans d’adressage simples
Concevoir des plans d’adressage hiérarchique et évolutif
Adresser une topologie de laboratoire
Avantages d’un plan d’adressage
Les tables de routage peuvent être réduites et plus efficientes
Les politiques de sécurité peuvent être déployées plus facilement
Des politiques basée sur les applications peuvent être déployées.
La gestion et l’approvisionnement du réseau peut être facilité
Le diagnostic est facilité, notamment par une meilleure identification
Mise à l’échelle facilité suite à l’ajout de périphériques ou de sites
But d’un plan d’adressage
Fournir une capacité d’approvisionnement : connecter une nombre indéterminé de périphériques
Activer (ou non) les capacités de communication des hôtes : à communiquer entre eux (BYOD), communication inter-réseau (VLANs)
Activer (ou non) la communication Internet : on peut orienter/filtrer le routage de certains préfixes ou de certains hôtes
Activer ou non le support d’applications : le filtrage par préfixe permettrait de faciliter le traitement de trafic multimédia ou vocal par exemple
Permettre de mieux identifier les hôtes par niveau, emplacement géographique ou organisationnel, par fonction
Principe
Le donné est toujours le même. On dispose d’un bloc d’adresses IP. On le découpe en sous-réseaux.
En IPv6 le masque le plus restrictif est un /64.
Il est probable que vous ayez à gérer des blocs /48.
Il reste un mot de 16 bits à découper 1, en 16, 256 ou 4096 sous réseaux.
Plan d'adressage Simple
On vous livre un bloc fdd4:478f:0611::/48
On peut conformer les adressages IPv4 privés, par exemple :
172.16.1.0/24 => fdd4:478f:0611:1::/64,
172.16.255.0/24 => fdd4:478f:0611:255::/64,
...
On peut utiliser un découpage plat, à la volée :
fdd4:478f:0611:0::/64,
fdd4:478f:0611:1::/64,
fdd4:478f:0611:2::/64,
fdd4:478f:0611:3::/64, ...
Plan d'adressage à 2 ou 4 niveaux égaux
On vous livre un bloc fdd4:478f:0611::/48
Il reste 16 bits de libres, soit 4 hexas pour plusieurs stratégies hiérarchiques avec des niveaux géographiques, organisationnels, fonctionnels :
Stratégie A : en deux niveaux égaux :
Niveau 1 : 256 réseaux (8 bits)/56
Niveau 2 : 256 réseaux (8 bits)/64
Stratégie B : en quatre  niveaux égaux :
Niveau 1 : 16 réseaux (4 bits) /52
Niveau 2 : 16 réseaux (4 bits) /56
Niveau 3 : 16 réseaux (4 bits) /60
Niveau 4 : 16 réseaux (4 bits) /64
Stratégie A en deux niveaux égaux
fdd4:478f:0611::/48 fournit 256 réseaux
fdd4:478f:0611:[0-f][0-f]00:/56 contenant eux-mêmes chacun 256 sous réseaux
fdd4:478f:0611:00[0-f][0-f]:/64 ,
fdd4:478f:0611:01[0-f][0-f]:/64 ,
fdd4:478f:0611:02[0-f][0-f]:/64 ,
fdd4:478f:0611:03[0-f][0-f]:/64 ,
...
fdd4:478f:0611:fd[0-f][0-f]:/64 ,
fdd4:478f:0611:fe[0-f][0-f]:/64 ,
fdd4:478f:0611:ff[0-f][0-f]:/64
Stratégie B en quatre niveaux égaux
fdd4:478f:0611::/48 fournit 16 réseaux
fdd4:478f:0611:[0-f]000:/52 contenant eux-mêmes chacun 16 sous réseaux fdd4:478f:0611:[0-f][0-f]00:/56 contenant eux-mêmes chacun 16 sous réseaux
fdd4:478f:0611:[0-f][0-f][0-f]0:/52 contenant eux-mêmes chacun 16 sous réseaux
fdd4:478f:0611:[0-f][0-f][0-f][0-f]:/64 ,
Plan d’adressage en niveaux inégaux
On vous livre un bloc fdd4:478f:0611::/48
Vous disposez d’un site de 4 bâtiments disposant de maximum 8 étages avec plusieurs dizaines de VLANs (/64) par étage.
4 bits pour les bâtiments et 4 bits pour les étages :
Bâtiment 1 : 0x0000 - 0x0FFF/52
Etage 1 : 0x0000 - 0x00FF/56
Etage 2 : 0x0100 - 0x01FF/56
Etage 3 : 0x0200 - 0x02FF/56
Bâtiment 2 : 0x1000 - 0x1FFF/52
Etage 1 : 0x1000 - 0x10FF/56
Etage 2 : 0x1100 - 0x11FF/56
Etage 3 : 0x1200 - 0x12FF/56
...
Plan d'adressage à plusieurs niveaux
en trois niveaux :
Niveau 1 : 16 (4 bits)/52
Niveau 2 : 256 (8 bits)/60
Niveau 3 : 16 (4 bits)/64
en ....  niveaux égaux :
Niveau 1 : 256 (8 bits) /52
Niveau 2 : 16 (4 bits) /56
Niveau 3 : 16 (4 bits) /60
On trouvera un exemple de plan d'adressage dans le document IPv6 Subnetting - Overview and Case Study
Attribution étalée
“Sparse” mode : attribution étalée
Comme on compte de manière séquentielle par la droite soit 0000, 0001, 0010, 0011,… ou 0, 1, 2, 3, on peut compter par la gauche soit
0000, 1000, 0100, 1100,… ou 0, 8, 4, c, ... par exemple sur le premier hexa pour fdd4:478f:0611:[0-f]000:/52 :
fdd4:478f:0611::/52
fdd4:478f:0611:8000:/52
fdd4:478f:0611:4000:/52
fdd4:478f:0611:c000:/52
fdd4:478f:0611:2000:/52
Plan d’adressage évolutif
http://www.internetsociety.org/deploy360/resources/ipv6-address-planning-guidelines-for-ipv6-address-allocation/
Applications
1er Hexa
Regions
2e Hexa
Unité d'organisation
3e Hexa
Sites
4e Hexa
Data
0
Est
0
Direction
0
Site 1
a
Voice
8
Nord
8
Marketing
1
Site 2
9
Video
4
Ouest
4
Finance
2
Site 3
e
Wireless
c
Sud
c
IT
3
Management
2
Support commercial
4
Activités
Exemple en ULA avec le bloc fdd4:478f:0611::/48
Exemple en UGA avec 2001:db8:14d6::/48
Hiérarchie à plusieurs niveaux, sur plusieurs sites :
Plusieurs LAN et DMZ
Ville, Bâtiments, niveau/service
Adressage de la topologie de lab de routage
14. Routage IPv6 sous Cisco IOS
Objectifs
Notions de routeur, de domaine de routage, de table de routage sous Cisco IOS
Table de routage IPv6
Plan d’adressage
Interfaces IPv6
Activation du routage
Routage statique
Routage OSPFv3
Diagnostic
Routeurs
Seuls les routeurs sont capables de transférer les paquets d'une interfaces à une autre.
Les routeurs limitent les domaines de broadcast sur chacune de leur interface.
Les routeurs échangent entre eux des informations concernant les différentes destinations (des réseaux à joindre) grâce à des protocoles de routage.
Détermination du chemin
Les routeurs examinent la destination d'un paquet IP et déterminent le meilleur chemin en fonction des entrées disponibles dans leur table de routage.
Domaine IP
Deux noeuds (hôtes, interfaces, cartes réseau, PC, smartphone, etc.) doivent appartenir au même réseau, au même domaine IP, pour communiquer directement entre eux.
Quand les noeuds sont distants, ils ont besoin de livrer leur trafic  à une passerelle, soit un routeur.
192.168.1.0/24
2001:6f8:14d6:1::/64
192.168.2.0/24
2001:6f8:14d6:2::/64
192.168.3.0/24
2001:6f8:14d6:3::/64
.1/24
1/64
.1/24
1/64
.1/24
1/64
.2/24
2/64
.10/24
10/64
.10/24
10/64
Route statique par défaut
Une route statique par défaut est celle qui prendra en charge tout trafic qui n'a pas de correspondance spécifique
Utile au routage Internet
S   ::/0 [1/0]
via FE80::1, FastEthernet0/1
Configuration d’une route statique
(config)#ipv6 route network/mask {address|interface} [AD]
où :
network : est l'adresse du réseau à joindre
mask : est le masque du réseau à joindre
address : est l'adresse du prochain routeur directement connecté pour atteindre le réseau
interface : est l'interface de sortie du routeur pour atteindre le réseau
AD : distance administrative optionelle (1, par défaut)
Topologie personnelle
Pour l’équipe 0x200
Topologie du lab
Plan d’adressage
Équipe
Réseau routé
Fa0/1 WAN
Fa0/0 LAN
0x100
0x100::/56 (Réservé)
-
fe80::1/64
2001:470:7b6d:1lab::1/64
0x200
0x200::/56
fe80::200/64
autoconfig
fe80::1/64
2001:470:7b6d:200::1/64
2001:470:7b6d:280::1/64 2001:470:7b6d:2ff::1/64
0x300
0x300::/56
fe80::300/64
autoconfig
fe80::1/64
2001:470:7b6d:300::1/64
2001:470:7b6d:380::1/64 2001:470:7b6d:3ff::1/64
0x400
0x400::/56
fe80::400/64
autoconfig
fe80::1/64
2001:470:7b6d:400::1/64
2001:470:7b6d:480::1/64 2001:470:7b6d:4ff::1/64
0x500
0x500::/56
fe80::500/64
autoconfig
fe80::1/64
2001:470:7b6d:500::1/64
2001:470:7b6d:580::1/64 2001:470:7b6d:5ff::1/64
0x600
0x600::/56
fe80::600/64
autoconfig
fe80::1/64
2001:470:7b6d:600::1/64
2001:470:7b6d:680::1/64 2001:470:7b6d:6ff::1/64
0x700
0x700::/56
fe80::700/64
autoconfig
fe80::1/64
2001:470:7b6d:700::1/64
2001:470:7b6d:780::1/64 2001:470:7b6d:7ff::1/64
Configuration IPv4
Configuration globale
Clé SSH
Configuration IPv4
LAN
WAN (DHCP)
IP Routing (DHCP)
NAT
DHCP LAN
Test de connectivité IPv4
Configuration IPv6
Interface WAN IPv6
Interface LAN IPv6
Routage IPv6
Interface WAN IPv6
interface FastEthernet0/1
ipv6 enable
do sh ipv6 int brie
!
ipv6 address FE80::X00 link-local
do sh ipv6 int brie
!
ipv6 address autoconfig
do sh ipv6 int brie
Interface LAN IPv6
interface FastEthernet0/0
ipv6 enable
ipv6 address 2001:470:7B6D:200::1/64
ipv6 address FE80::1 link-local
Routage IPv6
Il est nécessaire d’activer manuellement le routage IPv6 sur un routeur Cisco :
(config)#ipv6 unicast-routing
(config)#
ipv6 route ::/0 FastEthernet0/1 FE80::1
Table de routage IPv6
#show ipv6 route
IPv6 Routing Table - default - 10 entries
Codes: C - Connected, L - Local, S - Static,NDp - ND Prefix
S   ::/0 [1/0]
via FE80::1, FastEthernet0/1
NDp 2001:470:7B6D:1AB::/64 [2/0]
via FastEthernet0/1, directly connected
L   2001:470:7B6D:1AB::200/128 [0/0]
via FastEthernet0/1, receive
C   2001:470:7B6D:200::/64 [0/0]
via FastEthernet0/0, directly connected
L   2001:470:7B6D:200::1/128 [0/0]
via FastEthernet0/0, receive
C   2001:470:7B6D:201::/64 [0/0]
via Loopback0, directly connected
L   2001:470:7B6D:201::1/128 [0/0]
via Loopback0, receive
C   2001:470:7B6D:2FF::/64 [0/0]
via Loopback1, directly connected
L   2001:470:7B6D:2FF::1/128 [0/0]
via Loopback1, receive
L   FF00::/8 [0/0]
via Null0, receive
Vérification du routage
#ping
Protocol [ip]: ipv6
Target IPv6 address: www.google.com
Repeat count [5]: Datagram size [100]: Timeout in seconds [2]:
Extended commands? [no]: y
Source address or interface: fastethernet0/0
UDP protocol? [no]: Verbose? [no]: Precedence [0]: DSCP [0]: Include hop by hop option? [no]: Include destination option? [no]: Sweep range of sizes? [no]:
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 2A00:1450:4007:803::1014, timeout is 2 seconds:
Packet sent with a source address of 2001:470:7B6D:200::1
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 136/276/408 ms
Adresse IPv6 (1/2)
#show ipv6 interface f0/0
FastEthernet0/0 is up, line protocol is up
IPv6 is enabled, link-local address is FE80::C802:CFF:FE9D:8
No Virtual link-local address(es):
Global unicast address(es):
2001:470:CBF7:200::1, subnet is 2001:470:7B6D:200::/64
Joined group address(es):
FF02::1
FF02::2
FF02::1:FF00:1
FF02::1:FF9D:8
MTU is 1500 bytes
ICMP error messages limited to one every 100 milliseconds
ICMP redirects are enabled
ICMP unreachables are sent
ND DAD is enabled, number of DAD attempts: 1
ND reachable time is 30000 milliseconds (using 30000)
ND RAs are suppressed (periodic)
Hosts use stateless autoconfig for addresses.
Adresses IPv6
#sh ipv6 interface f0/0
FastEthernet0/0 is up, line protocol is up
IPv6 is enabled, link-local address is FE80::1
No Virtual link-local address(es):
Global unicast address(es):
2001:470:CBF7:200::1, subnet is 2001:470:7B6D:200::/64
Joined group address(es):
FF02::1
FF02::2
FF02::1:FF00:1
MTU is 1500 bytes
ICMP error messages limited to one every 100 milliseconds
ICMP redirects are enabled
ICMP unreachables are sent
ND DAD is enabled, number of DAD attempts: 1
ND reachable time is 30000 milliseconds (using 30000)
ND RAs are suppressed (periodic)
Hosts use stateless autoconfig for addresses.
Vérification terminale
Test de base IPv6 :
ipconfig, netsh interface ipv6 …, ping, tracert
Firefox, plugin show IP, google, http://test-ipv6.com/, youtube, lesoir
Test Dual-Stack
Fixez l’adresse IPv4 sans DNS IPv4
Désactivez IPv4
Routage OSPFv3
Configuration du routage global en spécifiant manuellement le router-id en format 32 bits décimal pointé.
(config)# router ospfv3 1
(config-router)# router-id 10.1.1.1
Ce n’est pas sans conséquences sur l’élection DR/BDR.
Activation à partir des interfaces
(config)# interface fa0/1
(config-if)# ipv6 ospf 1 area 0
Diagnostic
show ipv6 ospf
show ipv6 ospf interface
show ipv6 ospf neighbor
15. Pare-feux IPv6 sous Cisco IOS
Objectifs
Préfixes bogon
En-têtes et extension d’en-tête
Filtrage des tunnels (6in4, GRE, IPSEC, …)
Firewall L2
Logs et performances
Dans les diapositives suivantes :
ACL : filtrage sans état
IPv6 IOS Firewall : SPI + ACL
IPv6 Zone-Based Firewall (ZBF)
Cisco IPv6 ACLs
Les ACLs IPv6 sont très similaires aux ACLs IPv4. Il n’y a plus que des ACLs nommées étendues.
(config)#ipv6 access-list name
permit/deny protocol {source-ipv6-prefix/prefix-length | any | host source-ipv6-address | auth} [operator [port-number]] {destination-ipv6-prefix/prefix-length | any | host destination-ipv6-address | auth} [operator [port-number]] [dest-option-type[doh-number | doh-type]] [dscp value] [flow-label value] [fragments] [log] [log-input] [mobility] [mobility-type [mh-number | mh-type]] [reflect name [timeout value]] [routing] [routing-type routing-number] [sequence value] [time-range name]
Les ACLs IPv6 sont appliquées sur les interfaces en utilisant la commande ipv6 traffic-filter access-list-name {in | out}.
Entrées implicites ACLs
Toutes les ACLs IPv6 contiennent deux règles implicites qui autorisent le trafic IPv6 neighbor discovery (ND) à l’envoi et à la réception :
permit icmp any any nd-na
permit icmp any any nd-ns
Comme les ACLs IPv4, les ACLs IPv6 contiennent une règle imlicite qui refuse tout autre trafic.
deny ipv6 any any
Ces règles ne sont pas visibles dans la configuration? On conseillera de les encoder explicitement.
Entrer manuellement la règle implicite deny any any vous permettra de journaliser les paquets refuser sans concerner neighbor discovery (ND).
Exemple ACL
Exemple refuser tout trafic TCP80 pour une adresse en dehors du LAN :
interface f0/0
description interface LAN
ipv6 traffic-filter BLOCK_HOST_01 in
!
ipv6 access-list BLOCK_HOST_01
sequence 20 deny tcp host 2001:db8:1ab::1 any eq www
Trafic à bloquer
unspecified address ::
loopback address ::1
IPv4-compatible addresses ::/96
IPv4-mapped addresses (obsolete) ::ffff:0.0.0.0/96, ::/8
automatically tunneled packets using compatible addresses (deprecated RFC 4291) ::0.0.0.0/96
other compatible addresses ::224.0.0.0/100, ::127.0.0.0/104, ::0.0.0.0/104, ::255.0.0.0/104
false 6to4 packets 2002:e000::/20, 2002:7f00::/24, 2002:0000::/24, 2002:ff00::/24, 2002:0a00::/24, 2002:ac10::/28, 2002:c0a8::/32
link-local addresses (see specific section about ICMP) fe80::/10
site-local addresses (deprecated) fec0::/10
unique-local packets fc00::/7
multicast packets (only as a source address) ff00::/8
documentation address 2001:db8::/32
6Bone addresses (deprecated) 3ffe::/16
Messages ND à autoriser
Messages ND à autoriser :
IPv6 multicast packets (MAC addresses 3333.0000.0000 to 3333.FFFF.FFFF)
Neighbor Advertisement (NA), Neighbor Solicitation (NS) messages, et les paquets Duplicate Address Detection (DAD)
Router Advertisement (RA) and Router Solicitation (RS) pour SLAAC
Exemple d’ACL bloquante (1/4)
ipv6 access-list Internet-Inbound
remark Deny loopback address
deny ipv6 ::1/128 any
remark Deny IPv4-compatible addresses
deny ipv6 0::/96 any
remark Deny IPv4-mapped addresses (obsolete)
deny ipv6 ::ffff:0.0.0.0/96 any
remark Deny auto tunneled packets w/compatible addresses (RFC 4291)
deny ipv6 ::0.0.0.0/96 any
remark Deny other compatible addresses
deny ipv6 ::224.0.0.0/100 any log
deny ipv6 ::127.0.0.0/104 any log
deny ipv6 ::0.0.0.0/104 any log
deny ipv6 ::255.0.0.0/104 any log
remark Deny false 6to4 packets
deny ipv6 2002:e000::/20 any log
deny ipv6 2002:7f00::/24 any log
deny ipv6 2002:0000::/24 any log
deny ipv6 2002:ff00::/24 any log
Exemple d’ACL bloquante (2/4)
deny ipv6 2002:0a00::/24 any log
deny ipv6 2002:ac10::/28 any log
deny ipv6 2002:c0a8::/32 any log
remark Permit good NDP messages since we deny and log at the end
permit icmp fe80::/10 any nd-na
permit icmp fe80::/10 any nd-ns
remark Deny Link-Local communications
deny ipv6 fe80::/10 any
remark Deny Site-Local (deprecated)
deny ipv6 fec0::/10 any
remark Deny Unique-Local packets
deny ipv6 fc00::/7 any
remark Deny multicast packets
deny ipv6 ff00::/8 any
remark Deny Documentation Address
deny ipv6 2001:db8::/32 any
remark Deny 6Bone addresses (deprecated)
deny ipv6 3ffe::/16 any
remark Deny RH0 packets
deny ipv6 any any routing-type 0 log
Exemple d’ACL bloquante (3/4)
remark Deny our own addresses coming inbound
deny ipv6 2001:db8:11::/48 any log
remark permit BGP to and from our EBGP neighbor
permit tcp host 2001:db8:4::1 host 2001:db8:4::2 eq bgp
permit tcp host 2001:db8:4::1 eq bgp host 2001:db8:4::2
remark Permit traffic to our web server
permit tcp any host 2001:db8:11::100 eq www
remark Permit our returned traffic from internal clients
permit tcp any 2001:db8:11::/48 range 1024 65535
permit udp any 2001:db8:11::/48 range 1024 65535
remark Permit inbound DNS responses to our internal caching DNS server
permit udp any eq domain host 2001:db8:11:30:20c:29ff:fe5d:982a
remark Permit good ICMPv6 message types
permit icmp any 2001:db8:11::/48 destination-unreachable
permit icmp any 2001:db8:11::/48 packet-too-big
permit icmp any 2001:db8:11::/48 parameter-problem
permit icmp any 2001:db8:11::/48 echo-reply
Exemple d’ACL bloquante (4/4)
remark Permit our ISP to ping our external interface
permit icmp host 2001:db8:4::1 host 2001:db8:4::2 echo-request
remark Deny everything else and log it
deny ipv6 any any log
Firewall CBAC standard
Firewall Cisco IOS SPI et ACL. En 6 étapes :
Vérifier la connectivité et le routage
Configuration globale
Configuration des interfaces
Configuration des ACLs
Tester de l’extérieur et de l’intérieur
Ouvrez du trafic
Paramètres globaux
! paramètres globaux
enable
configure terminal
ipv6 unicast-routing
ipv6 inspect name ipv6_test icmp timeout 60
ipv6 inspect name ipv6_test tcp timeout 60
ipv6 inspect name ipv6_test udp timeout 60
Configuration des interfaces
interface FastEthernet0/0
description LAN (TRUST)
ipv6 enable
ipv6 traffic-filter INBOUND out
ipv6 inspect ipv6_test in
!
interface FastEthernet0/1
description WAN (UNTRUST)
ipv6 enable
ipv6 traffic-filter OUTBOUND in
ACLs bloquantes
ipv6 access-list INBOUND
permit icmp any any nd-na
permit icmp any any nd-ns
deny ipv6 any any log
!
ipv6 access-list OUTBOUND
permit icmp any any nd-na
permit icmp any any nd-ns
deny ipv6 any any log
Exemple de configuration ZBF
https://supportforums.cisco.com/docs/DOC-28403
The below topology brings a simple network containing two security zones. Host H1 (Client) and H2 (Admin) are connected to inside interface Gigabit Ethernet 0/1 accessing web server connected to outside interface Gigabit Ethernet 0/0.
We will have the goal of allowing
Only HTTP and HTTPS traffic for H1 (Client) from the inside to the outside
HTTP, HTTPS and ICMP for H2 (Admin) from the inside to the outside
All other traffic should drop from inside to outside.
Création du firewall
parameter-map type inspect v6-param-map
sessions maximum 10000
ipv6 routing-header-enforcement loose
!
class-map type inspect match-any v6-class
match protocol tcp
match protocol udp
match protocol icmp
match protocol ftp
!
policy-map type inspect v6-policy
class type inspect v6-class
inspect
!
zone security z1
zone security z2
!
zone-pair security zp source z1 destination z2
service-policy type inspect v6-policy
Configuration des interfaces
interface FastEthernet0/1
description LAN (TRUST)
ipv6 enable
zone-member z1
!
interface FastEthernet0/0
description Internet (UNTRUST)
ipv6 enable
zone-member z2
Diagnostic fondamental
Sous Cisco IOS :
show ipv6 access-list [access-list-name]
show ipv6 inspect {name inspection-name | config | interfaces | session [detail] | all}
show logging [slot slot-number | summary]
Pour les épreuves :
nmap -6
ping
thc-ipv6
16. Introduction à la sécurité IPv6
Introduction
IPv6 est la version d’IP normalisée en 1995-1998 (RFC 2460)
Principale motivation : un espace d'adressage étendu (128 bits c. 32 bits)
Réaffirme le principe d'une connectivité de bout en bout. Le NAT n'est pas une nécessité en IPv6.
Son déploiement est plutôt lent et laborieux. La limite est surtout culturelle, pas technique.
Ce retard permet d'adapter rapidement le protocole.
Les évolutions du protocole IP
Adressage étendu à 128 bits
L'en-tête IPv6 est simplifié et fixé à 40 octets.
Usage du multicast (en lieu et place du broadcast)
Sous-protocole ND (RFC 4861) encapsulé dans ICMPv6
Plug-and-Play :
Autoconfiguration automatique sans état (SLAAC)
Adresse Lien local (FE80::/10) créée automatiquement sur chaque interface IPv6
Annonce du préfixe réseau dans des RA (Router Advertisment)
Mécanismes DAD et NUD
Alternatives pour configuration DHCPv6 Stateful et DHCPv6 Stateless
IPv6 = Protocole Internet (IP)
IPv6 est le Protocole Internet de nouvelle génération.
Grosso modo, la plupart des considérations de sécurité sont les mêmes en IPv6 qu'en IPv4 car ils fonctionnent selon les mêmes principes.
Il reste quelques spécificités.
Faiblesses similaires IPv6/IPv4
Usurpation d’adresse IP source triviale
Pas d’authentification ou de chiffrement par défaut, au niveau IP
Attaques par déni de service volumétriques (force brute)
Attaques contre les protocoles de transport ou contre les applications
Protocoles de résolution d’adresses sur le réseau local différents (ARP vs. NDP) mais posant des problèmes similaires
Protocoles de routage
Spécificités sécuritaires
On peut classer les spécificités sécuritaires d'IPv6 en deux catégories :
Les différences contingentes (celles qui sont circonstancielles à l'époque, à l'état du déploiement et de la connaissance du protocole, etc.)
Les différences protocolaires
Spécificités contingentes
Déployer IPv6 c'est déployer un second réseau = double de travail
On pourrait constater des différences entre les protocoles co-existants :
dans les méthodes de gestion incohérentes (règles de filtrage, politiques de sécurité, etc.)
dans les implémentations logicielles (p. ex. dans les firewalls) limitées, incomplètes, boguées, pas testées
La méconnaissance des admin mais aussi des attaquants
Techniques de transition complexes et présentant des nouveaux risques
Qui attaque IPv6 ?
Qui attaque IPv6 ? Quasiment personne, car il n'est quasiment pas encore largement déployé.
Il serait donc plus sécurisé ? ;-)
Ces différences contingentes vont disparaître avec le temps.
On prédit encore 5 à 10 ans de popularisation d'IPv6 et la disparition d'IPv4 d'ici 15 ans (?)
Spécificités protocolaires
Les spécificités protocolaires vont subsister avec le temps.
RAcailles (Rogue RA)
Vie privée et adresses MAC
Analyse des en-têtes
Enumération d'adresses
Plus de NAT, moins de sécurité
et d'autres ...
Router Advertisment (RA)
IPv6 propose d'emblée un mécanisme d'annonce (sans état) du préfixe réseau dans des RA advertisments.
Le scénario le plus probable est le suivant :
un routeur envoie de RA régulièrement ou répond à des Router Solicitation (RS). Les noeuds IPv6 génèrent automatiquement leur identifiant d'interface
RAcailles (Rogue RA)
Les RA (annonces des routeurs), comme DHCP, ne sont pas sécurisées/authentifiées.
Comme avec DHCP, une machine peut jouer au routeur et émettre des RAcailles. Problème décrit dans le RFC 6104.
Comme avec DHCP, la meilleure protection semble être du filtrage par le commutateur (RA Guard, RFC 6105) : services appelés IPv6 First Hop Security chez Cisco, par exemple
Analyse des en-têtes
Des tas de logiciels de sécurité ont besoin de "sauter" l’en-tête du paquet, pour aller au contenu. En IPv4, c’est pénible (en-tête de taille variable) mais connu.
En IPv6, nombre quelconque d’en-têtes et, jusqu’à récemment, pas de gabarit commun ! impossible à analyser. Ajouter un seul en-tête suffit parfois pour échapper à la détection.
Depuis le RFC 6564, un algorithme fiable est possible.
Les commentaires dans le code source de Wireshark ou Net : :Pcap ne sont pas flatteurs pour IPv6. . .
Attention aussi à la fragmentation (RFCs en cours pour insister sur le risque).
Enumération d'adresses
En IPv4, balayer toutes les adresses est réaliste (un /16 en moins de 2 h, à 10 adr./s). Cela permet de trouver des machines discrètes.
En IPv6, une telle énumération naïve n’est pas envisageable (un /64 prendrait des milliards d’années).
Cela ne veut pas dire qu’on ne peut pas être trouvé : adresses prévisibles (...::1), connexions sortantes, attaques locales, attaques on-link, off-link, etc. Le RFC 5157 donne plein d’idées.
Plus de NAT
En IPv4, le NAT est quasiment indispensable vu la rareté des adresses. En transformant les champs d'adresses il rompt le principe de connectivité de bout en bout, duplique les réseaux en les cachant, duplique la gestion, bref, c'est une véritable plaie.
En IPv6, le NAT n'est plus nécessaire, mais autorisé. On pourrait le rencontrer pour connecter IPv6 à IPv4 (NAT64) voire même dans un usage similaire NAT66.
Plus de NAT, moins de sécurité ?
Le NAT n'a jamais été pas une mesure de sécurité. C'est valable en IPv6 comme en IPv4.
On ne se passera pas d'éléments de filtrage et de surveillance !
Et d'autres
IPV6_V6ONLY dans les applications
Attaque Neighbor cache
Filtrage d'ICMPv6 comme on filtre ICMP
Attaques sur les tunnels
...
Outils d'audit
Scapy
http://www.secdev.org/projects/scapy/
THC-IPv6
http://www.thc.org/thc-ipv6/
Metasploit
http://www.metasploit.com/
Mesures de sécurité
Ne pas déployer IPv6 n'est pas une mesure de sécurité.
Respect des politiques de sécurité.
Sécurité de bas niveau (RA_guard, SEND)
Firewalls, IDS, Surveillance (Netfilter, ndpmon, ramond, rafixd)
Le plus important : la connaissance.
Bibliographie
http://www.bortzmeyer.org/ipv6-securite.html
http://www.cisco.com/en/US/prod/collateral/iosswrel/ps6537/ps6553/white_paper_c11-678658.html
RFC 6092 et RFC 6204 : recommandations de filtrage sur les CPE end-user.
17. Manipulation de paquets IPv6
Objectifs
Manipulation de paquets avec des outils tels que THC-IPv6, scapy, nmap -6, tcpdump
Attaques, faiblesses, outils
Différentes types attaques : Reconnaissance, MitM, DoS, spoofing
Différentes portées : Routage extérieur, routage intérieur, LAN, Internet,
Différentes faibless protocolaires : SLAAC, ICMPv6, ND, NS, NA, RA, DNS, DHCPv6.
Installation des outils
Installation de THC-IPv6
apt-get install build-essential libpcap0.8-dev libssl-dev
wget http://www.thc.org/releases/thc-ipv6-2.3.tar.gz
tar xvfz thc-ipv6-2.3.tar.gz
cd thc-ipv6-2.3/
make
make install
Installation nmap, scapy, tcpdump
apt-get install python-scapy nmap tcpdump
Capture de paquets
tcpdump -w IPv6.pcap -i eth0 -vv ip6
Reconnaissance
nmap -6 : scans de ports
alive6 : Montre les adresses présentes sur le segment
passive_discovey6 : Sniff passif qui détecte toute adresse IP. Se combine avec parasite6 dans un environnment commuté
trace6 : Traceroute rapide avec résolution DNS et détection de tunnel (changement de MTU).
nmap -6
nmap -6 -v -sT fe80::1
Starting Nmap 6.00 ( http://nmap.org ) at 2013-12-10 21:42 CET
Initiating ND Ping Scan at 21:42
Scanning fe80::1 [1 port]
Completed ND Ping Scan at 21:42, 0.04s elapsed (1 total hosts)
Initiating System DNS resolution of 1 host. at 21:42
Completed System DNS resolution of 1 host. at 21:42, 0.34s elapsed
Initiating Connect Scan at 21:42
Scanning fe80::1 [1000 ports]
Strange error from connect (22):Invalid argument
Completed Connect Scan at 21:42, 0.01s elapsed (1000 total ports)
Nmap scan report for fe80::1
Host is up (0.0015s latency).
All 1000 scanned ports on fe80::1 are filtered
MAC Address: 00:0C:CE:D9:23:00 (Cisco Systems)
Read data files from: /usr/bin/../share/nmap
Nmap done: 1 IP address (1 host up) scanned in 0.47 seconds
Raw packets sent: 1 (72B) | Rcvd: 1 (72B)
alive6
alive6 eth0
Alive: 2001:470:cbf7:1ab:7ec3:a1ff:fe89:b96f [ICMP parameter problem]
Alive: 2001:470:cbf7:1ab:ba27:ebff:fe59:70f3 [ICMP echo-reply]
Alive: 2001:470:cbf7:1ab::1 [ICMP echo-reply]
Scanned 1 address and found 3 systems alive
http://www.cloudshark.org/captures/bed61f75bde3
passive_discovery6
passive_discovery6 eth0
Started IPv6 passive system detection (Press Control-C to end) ...
Detected: 2001:470:cbf7:1ab:829:6ff7:4b6a:2284
Detected: fe80::1
Detected: 2001:470:20::2
Detected: 2a00:1450:4007:803::1010
trace6
trace6 -dt eth0 cisco.goffinet.org
Trace6 for cisco.goffinet.org (2001:6f8:202:4db::2) with starting MTU 1500:
1: 2001:470:cbf7:1ab::1 () - new MTU 1480 - 6in4 tunnel endpoint
2: 2001:470:1f12:d02::1 (goffinet-2.tunnel.tserv10.par1.ipv6.he.net)
3: 2001:470:0:7b::1 (ge2-3.core1.par1.he.net)
4: 2001:7f8:54::149 (easynet.franceix.net)
5: 2001:6f8:1:1:87:86:76:19 ()
6: 2001:6f8:1:2:87:86:71:165 ()
7: 2001:6f8:200:1003::10 (bebru01.sixxs.net) - new MTU 1280
8: 2001:6f8:202:4db::1 (gw-1244.bru-01.be.sixxs.net)
9: 2001:6f8:202:4db::2 (cl-1244.bru-01.be.sixxs.net)  [ping reply received]
Autres outils de reconnaissance
Alive Scanning:
Alive scanning techniques: alive6
ICMPv6 Inverse Lookup: inverse_lookup6
ICMPv6 Node Query: node_query6
DNS enumeration:
Brute: dnsdict6
Reverse: dnsrevenum6
DNSSEC: dnssecwalk
Local Discovery:
NS: detect-new-ip6
Sniff: passive_discovery6
Router : dump_router6
Tracerouter: trace6
Helper tools: address6
Attaques MitM
ICMPv6 Redirects: redir6, redirsniff6
NDP: parasite6, fake_advertise6
RA: fake_router6, fake_router26
DHCPv6: fake_dhcps6
DNS: fake_dns6d
Mobility: fake_mipv6
Attaques DoS
flood_advertise6 flood_dhcpc6 flood_mld6
flood_mld26 flood_mldrouter6 flood_redirect6
flood_router6 flood_router26 flood_solicitate6
denial6 dos-new-ip6 exploit6
fake_advertise6 kill_router6 ndpexhaust6
ndpexhaust26 rsmurf6 sendpees6
sendpeesmp6 smurf6 thcsyn6
Empoisonnement de cache ND
Empoisonnement de cache de voisinage avec fake_advertise6. Lancer la capture. Vérifier le cache avant et après. parasite6 commute le trafic.
Rogue RA scapy
Assez trivial, en scapy; THC-IPv6 est plus simple.
scapy
Welcome to Scapy (2.2.0)
>>> q = IPv6()/ICMPv6ND_RA()/ICMPv6NDOptPrefixInfo(prefix='2001:db8:bad:bad::', prefixlen=64)/ICMPv6NDOptSrcLLAddr(lladdr='00:0c:29:b7:8e:eb')
>>> send(q)
Rogue RA RADVD
apt-get install radvd
Dans /etc/radvd.conf :
interface eth0
{
AdvSendAdvert on;
AdvLinkMTU 1280;
prefix 2001:6f8:14d6:1::/64
{
AdvOnLink on;
AdvAutonomous on;
#enables clients to autoconf
};
RDNSS 2001:6f8:14d6:1::1
{
AdvRDNSSPreference 8;
AdvRDNSSLifetime 3600;
};
};
radvd -C /etc/radvd.conf
fake_router6
En trois étapes :
1. Activation du routage
sysctl -w net.ipv6.conf.all.forwarding=1
2. Route par défaut
ip route add default via fe80::1 dev eth0
3. Empoisonnement par RA
fake_router6 eth0 2001:470:7B6D:bad::/64
Vérifier la table de routage et de voisinageavant et après l’attaque. Capturer les paquets entre la victime et la passerelle. On peut être plus précis avec fake_router26.
Attaque DAD
A titre d’exemple, dos-new-ipv6 répond à toutes les tentatives DAD de telle sorte que plus aucune nouvelle interface ne puisse monter une adresse IPv6. Efficace ...
ndpmon : surveillance L2
Installation de ndpmon :
http://ndpmon.sourceforge.net/index.php?n=Doc.Installation
Configuration :
http://ndpmon.sourceforge.net/index.php?n=Doc.Configuration
First Hop Security
Selon le document Cisco Implementing First Hop Security :
IPv6 First-Hop Security Binding Table
IPv6 Device Tracking
IPv6 Port-Based Access List Support
IPv6 Global Policies
IPv6 RA Guard
IPv6 ND Inspection
Secure Neighbor Discovery in IPv6
IPv6 Neighbor Discovery Trust Models and Threats
SeND Protocol
SeND Deployment Models
Single CA Model
Autres attaques et outils
http://www.scoop.it/t/ipv6-training/?tag=security
18. VPN IPv6 IPSEC
Objectifs (en préparation)
Authentification OSPFv3
VPN IPv6 IPSEC site-à-site
VPN IPv6 IPSEC site-à-site sur de l’IPv4
Microsoft Direct Access
19. Méthodes de transition
Période de transition, Méthode de transition
Objectifs
Période de transition
Méthodes de transition protocolaires
Dual-Stack
Tunnels 6in4, IP41, UDP
Traduction
Scénario de réseaux IPv6 d’entreprise
Période de transition
La transition est train de se réaliser du coeur du réseau des opérateurs jusqu'au client final. Cette transition pourrait prendre 5 à 10 ans selon les endroits du monde et le type de service à migrer.
En tout cas, la disponibilité de la connectivité IPv6 dépend du moment de son déploiement global.
Depuis le 6 juin 2012, les grands fournisseurs de l’Internet et l’ISOC ont lancé le “World IPv6 Launch Day” qui annonce le déploiement global d’IPv6.
Transition : IPv6RIPEness
Méthodes de transition protocolaires
Le RFC 4213 décrit trois méthodes de transition protocolaires.
Dual Stack, double pile IPv4/IPv6, de loin la préférée, la plus probable à moyen terme.
Tunnels : solution de transition pour transporter de l'IPv6 sur de l'IPv4 et, à terme, de transporter de l'IPv4 dans de l'IPv6 (plusieurs protocoles pour plusieurs scénarios).
Traduction, mécanismes peu recommandés en local. Plutôt exploité chez les ISP pour connecter IPv6 à IPv4 ou les GE. Exemple : NAT64/DNS64
Tunnels
Scénarios Tunnel Broker utilisant les protocoles 6in4, TSP, ayiya :
http://www.tunnelbroker.net/
http://www.sixxs.net/
http://www.gogo6.com/freenet6
Scénarios FAI réels utilisant GRE (privé), DS-Lite ou 6rd (Free)
Le tunnel reste toutefois une solution de transition intermédiaire, de phase de test.
On attend les offres IPv6 natives ou Dual/Stack seront toujours préférées
Principe de mise en tunnel
Le principe technique consiste à placer la charge IPv6 dans des paquets IPv4 au niveau de la couche Réseau ou dans des paquets TCP ou UDP au niveau de la couche Transport. En quelque sorte, ces protocoles agissent en tant que couche de Liaison de données (facilité L2) virtuelle pour connecter deux points d’extrémité IPv6.
Protocole 6in4
Quand le tunnel encapsule du trafic IPv6 dans IPv4, on parle de tunnel 6in4. Dans l’en-tête IPv4, le champ « Protocol » qui annonce le protocole de la charge prend la valeur 41 (soit celle qui identifie IPv6). Les adresses IPv4 utilisées dans les en-têtes doivent être globales pour assurer la connectivité IPv6. Les points d’extrémités sont définis de manière statique, ils sont alors configurés manuellement. En s’adjoignant les services d’un mécanisme Heartbeat, les points d’extrémité peuvent être définis de manière automatique comme c’est le cas avec 6in4 dit Heartbeat . Il est utile quand le FAI attribue des adresses IPv4 dynamiques. Notons enfin que le MTU du tunnel DOIT être compris entre 1280 octets et 1480 octets. Une capture de paquets 6in4 est disponible ici.
Protocoles IP41
Les protocoles qui se basent sur cette encapsulation IP41 traversent difficilement les pare-feux. Un tunnel IP 41 devrait être placé en bordure du réseau sur une passerelle d’accès à l’Internet, "pour connecter des îles IPv6 dans un océan IPv4" dans une première étape du déploiement global.
6to4, ISATAP et  6rd
En plus du protocole 6in4 déjà décrit, on peut aussi citer comme protocoles de mise en tunnel fondés sur l’encapsulation IP41 : 6to4, ISATAP et  6rd. Ces trois protocoles construisent l’identifiant d’interface du tunnel sur base de son adresse IPv4 globale. Ils sont donc incompatibles derrière un routeur NAT. Le protocole IP41 doit rester ouvert dans les pare-feu
6to4
6to4 permet de créer automatiquement un tunnel IPv6 sur IPv4 en construisant l’identifiant d’interface IPv6 sur base de l’adresse IPv4.  La plage 2002::/16 est réservée aux tunnels montés avec le protocole. Il permet d’interconnecter facilement deux îles IPv6. Par contre, il a besoin de passerelles relais pour s’interconnecter au monde global IPv6. Teredo est la version « NAT Traversal » personnelle de 6to4.
ISATAP
ISATAP, Intra-Site Automatic Tunnel Addressing Protocol, permet la transmission de paquets IPv6 entre des noeuds dual-stack au dessus d’un réseau IPv4. Une architecture ISATAP propose un réseau de type overlay sur IPv4 au sein d’un site. Il ne propose pas de solution de connectivité IPv6 globale.
6rd
6rd est une autre extension de 6to4 qui utilise le préfixe global d’un Fournisseur d’Accès à Internet plutôt que l’adressage 2002::/16 de 6to4. Cette variante supprime la nécessité de passerelle relais. Il est utilisé dans le déploiement IPV6 du FAI français Free. Il s’agit d’une solution de transition pour un FAI.
IP41 sous Cisco IOS
Ces solutions de mise en tunnel répondent aux besoins des Fournisseurs d’Accès Internet locaux qui gèrent eux-mêmes les POPs des clients finaux. Implementing Tunneling for IPv6 nous donne une liste des configurations possibles sous Cisco IOS :
Example: Configuring Manual IPv6 Tunnels
Example: Configuring GRE Tunnels
Example: Configuring 6to4 Tunnels
Example: Configuring 6RD Tunnels
Example: Configuring IPv4-Compatible IPv6 Tunnels
Example: Configuring ISATAP Tunnels
Pour plus d’information sur les solutions de transition pour les FAI, voyez l’article Transition to IPv6 at the Service Providers.
Modèle « Tunnel Broker »
Pour obtenir une connectivité IPv6 indépendante des FAI locaux, on peut faire appel à un fournisseur de tunnel IPv6. On peut voir en lui un FAI IPV6 virtuel. Un modèle typique de fournisseur de tunnel (RFC 3053) contrôle les sessions de tunnels établies entre le client en Dual-Stack et le serveur de tunnel qui est en fait un routeur.
Fournisseur Hurricane Electric
Le fournisseur de tunnel Hurricane Electric répond à ce modèle. Il supporte seulement les tunnels6in4.4
Une encapsulation au niveau de la couche transport apporte à ce modèle une série d’avantages en matière de  :
Sécurité, authentification
Facilité de gestion
Configuration automatique ou manuelle
Prise en charge d’adresses IPv4 dynamique
Supports des hôtes et des sites
Évolutivité du nombre de tunnels
Support du NAT Traversal
Découverte de services
Support de services spécifiques (Multicast)
On notera une surcharge au niveau des en-têtes que les encapsulations IP41 ne créent pas. Cette surcharge aura nécessairement un certain impact sur les performance du tunnel.
Tunnels UDP/TCP
Parmi les protocoles de mise en tunnel qui se basent sur une encapsulation de couche transport UDP/TCP (sur IPv4 protocoles 6 et 17) :
AYIYA (UDP 5072),
TSP (TCP 3653 ou UDP 3653) et
Teredo/Miredo (UDP 3544)
Ils sont plus souples avec les pare-feux à un point tel qu’ils peuvent devenir une menace pour la sécurité d’un réseau géré. Sans filtrage fin sur les passerelles, ces tunnels traversent aisément les pare-feux et les routeurs NAT. Ce qui est utile à un laboratoire devient dangereux sur un réseau d’entreprise en production.
AYIYA
Il est utile de préciser que la connectivité ICMP echo request / echo response doit être activée pour monter ces tunnels. On notera que AYIYA et 6in4 Heartbeat utilisent aussi le protocole TIC (TCP 3874) 5. Ces derniers sont proposés par le fournisseur de tunnels IPv6 Sixxs. On citera aussi le protocole TSP est supporté par plusieurs fournisseurs de tunnels IPv6 dont Gogo6/Freenet6. On peut trouver une perspective objective de l’offre sur la page de Wikipedia (en) List of IPv6 tunnel brokers.
Teredo
Teredo, « Tunneling IPv6 over UDP through Network Address Translations (NATs) », fondé sur 6to4, encapsule le trafic IPv6 dans des paquets UDP (port 3544) et utilise  une version simplifiée de STUN NAT Traversal. Il traverse certains pare-feux NAT. Les identifiants d’interface IPv6 sont attribués dans la plage 2001::/32, d’une dérivation des adresses IPv4 natives. L’identifiant d’interface IPv6 généré peut donc changer. Il ne permet pas de router des sous-réseau. Une offre publique de serveurs publics est disponible.
Si ces mécanismes offrent plus de souplesses, il génère plus de surcharge6 dans les en-têtes que les tunnels IP 41.
Tunnels : objectifs
Si la mise en tunnel est une solution de transition vers IPv6, elle consiste aussi en une menace pour les réseaux d’entreprise. En laboratoire, la solution est aisée à mettre en place. En entreprise, elle permet d’envisager la construction de pilotes ou la consolidation d’infrastructures réseaux de manière durable.
Fournisseurs de tunnels
Sixxs dispose d’un client multi-OS AICCU (bien supporté sur Linux ou sur BSD), les POPs sont nombreux, le service est sérieux.
Hurricane Electric opte pour la simplicité avec 6in4 mais supporte mal les infrastructures protégées. Hurricane Electric délivre une auto-certification IPv6 intéressante.
Gogo6/Freenet6 reste à tester.
Choisir un fournisseur de tunnel
Pour choisir un fournisseur de tunnel, on sera attentif aux éléments qui pourraient filtrer le trafic IPv6 transporté de bout en bout dans sa topologie.
Ensuite, on choisira sa méthode de transition soit
en fonction de l’encapsulation (couche 2, 3 et 4),
soit en fonction de l’usage ou du modèle à déployer (sénario FAI, Site-to-Site, connectivité virtuelle, IPv6-only site, etc.)
ainsi qu'en fonction du plan d'adressage (/64, /56/, /48 voire plus).
Traduction
Cette problématique concerne principalement les FAI :
NAT44
NAT444
CGN
NAT64/DNS64
Traduction NAT64/DNS64
Cisco propose du NAT64, Bind du DNS64 ...
http://upload.wikimedia.org/wikipedia/commons/thumb/0/05/NAT64.svg/2000px-NAT64.svg.png
Réseau d’entreprise IPv6
Répondre aux besoins d'une infrastructure IPv6 (cf. Point 4 RFC 4057) en :
Plannification de l'adressage
Service de résolution de nom DNS
Service de routage
Configuration des hôtes
Politiques de sécurité
Configuration des applications
Network Management
On prêtera une attention particulière au comportement des routeurs CPE et au support des différents OS.
Guide de déploiement : RFC7381
Pour le déploiement en entreprise, on peut s’inspirer du RFC7381 Enterprise IPv6 Deployment Guidelines :
Preparation and Assessment Phase
External Phase
Internal Phase
Other Phases
Considerations For Specific Enterprises (CDN, DC, Campus)
Preparation and Assessment (1)
1.  Preparation and Assessment Phase     1.1.  Inventory Phase       1.1.1.  Network infrastructure readiness assessment       1.1.2.  Applications readiness assessment       1.1.3.  Importance of readiness validation and testing     1.2.  Training     1.3.  Routing     1.4.  Security Policy       1.4.1.  Demystifying some IPv6 Security Myths       1.4.2.  Similarities between IPv6 and IPv4 security       1.4.3.  Specific Security Issues for IPv6     1.5.  Address Plan     1.6.  Program Planning     1.7.  Tools Assessment
External and Internal Phases (2-3)
2.  External Phase     2.1.  Connectivity     2.2.  Security     2.3.  Monitoring     2.4.  Servers and Applications
3.  Internal Phase     3.1.  Network Infrastructure
3.2.  End user devices     3.3.  Corporate Systems     3.4.  Security
Autres phases et considération
4.  Other Phases     4.1.  Guest network     4.2.  IPv6-only
5.  Considerations For Specific Enterprises     5.1.  Content Delivery Networks     5.2.  Data Center Virtualization     5.3.  Campus Networks
Droits
Cisco Systems est une marque réservée.
Protocole IPv6 de goffinet@goffinet.eu est mis à disposition selon les termes de la licence Creative Commons Attribution - Partage dans les Mêmes Conditions 4.0 International
Protocole IPv6François-Emmanuel GoffinetFormateur ITVersion 15.09Collection Formation Réseau Cisco CCNA
SommairePourquoi IPv6 ?Fondamentaux TCP/IPv6Paquets IPv6Représentation des adresses IPv6Types d’adresses IPv6ICMPv6Découverte de voisinage (ND)Gestion du réseau IPv6 (IPAM)Configuration du réseau par les routeursSupport DNS IPv6Configuration automatique sans état (SLAAC)DHCPv6Plan d’adressage IPv6Routage IPv6 sous Cisco IOSPare-feu Cisco sous Cisco IOSIntroduction à la sécurité IPv6Manipulation de paquets IPv6VPN IPSEC IPv6Méthodes de transition
1. Pourquoi IPv6 ?Introduction générale
ObjectifsCiter les avantages de la technologie IPv6Identifier l’impact du nouveau protocoleRépondre à la question de l’urgence de la transition à IPv6Reconnaître les organismes de standardisation et les RFCs IPv6Commencer une veille technologique sur IPv6Se former à IPv6
Période de transition IPv4/IPv6Classes d'adresses (1981)Masques de sous-réseaux (1985)CIDR-VLSM  (1993)NAT (1994)Adressage privé (1996)IPv6 (1995-1998)Depuis quelques années, nous sommes entrés dans une longue période de transition de la double pile IPv4/IPv61985 : Usage du masque de sous-réseau (RFC 950).1991 : L'internet devient public.1993 : CIDR (Classless Interdomain Routing), transport des masques dans les informations de routage, la notion de classe ne se suffit plus.1996 : Le RFC 1918 consacre l'adressage privé qui combiné au NAT (Network Address Translation) casse le principe de connectivité de bout en bout.
Épuisement des adresses IPv4Lire l'article "IPv4 address exhaustion"
Avantages et nouveautés IPv6 (1/2)Une espace d’adressage incommensurablement large pour l’accès global et l’évolutivitéFormat d’en-tête simplifié pour une prise en charge efficiente des paquetsUne architecture hiérarchique du réseau pour un routage efficientLe support des protocoles de routage les plus courantsFonctionnalités d’autoconfiguration et plug-and-playICMPv6 supporte des fonctionnalités de découverte et de maintien de relations de voisinage
Avantages et nouveautés IPv6 (1/2)Support amélioré de la mobilité IPUsage accru du Multicast, disparition du broadcastLe support par défaut sur la plupart des systèmes d’exploitation Serveurs et Poste de travailUn support de la résolution de noms DNSDHCPv6 en nouvelles versions Stateful, Stateless et Prefix-Delegation offrant des options de gestionDifférentes classes d’adresses pour différents usages.L’obsolescence du NAT en tant que solution de connectivité globale
Un nouvel InternetIP est au cœur du modèle de communicationIPv6 est incompatible avec IPv4IPv6 est le 2ème InternetIl s'agit d'une évolution technologique inéluctableElle touche tout objet communicant dans le réseauElle touche les applications et l’infrastructure.
Déploiement d’IPv6 global 2015Q3https://labs.ripe.net/statistics/list-of-ripe-ncc-statisticshttp://6lab.cisco.com/stats/http://v6asns.ripe.net/v/6http://www.worldipv6launch.org/measurements/http://www.google.com/intl/en/ipv6/statistics.htmlhttp://www.akamai.com/ipv6?WT.ac=hp_ipv6_bannerhttp://www.ams-ix.net/sflow-stats/ipv6/http://www.de-cix.net/about/statistics/http://www.worldipv6launch.org/participants/?q=1
Déploiement d’IPv6 Europe 2015Q3https://labs.ripe.net/statistics/list-of-ripe-ncc-statisticshttp://6lab.cisco.com/stats/http://v6asns.ripe.net/v/6http://www.worldipv6launch.org/measurements/http://www.google.com/intl/en/ipv6/statistics.htmlhttp://www.akamai.com/ipv6?WT.ac=hp_ipv6_bannerhttp://www.ams-ix.net/sflow-stats/ipv6/http://www.de-cix.net/about/statistics/http://www.worldipv6launch.org/participants/?q=1
Conseils en phase de transitionPhase de formation/informationMonter un lab, un bac à sableDemander une connectivité IPv6 nativeDéploiement à envisager : parallèle d'IPv6 (Dual Stack)Déploiement planifié et géré, tout nouveau projet est une opportunitéA ne pas répéter :Résistance au changementPansements fonctionnelsTraduction de protocolesVérifier la disponibilité applicativeObjectif : diminuer le coût de la transition
Transition IPv6Phase d’information/formationPhase de validation de l’infrastructurePlan d’adressagePlan de routageActivation des services externesActivation dans les LANsActivation dans le WAN FAIActivation dans les centres de données
A parcourir : Sur qui pèse le coût de la transition ?

Facteurs du déploiementUtilisateursPériphériquesOSTransportRéseauFAI, CPEContenusFournisseurs de services
Organismes de standardisationIETF : Internet Engineering Task Force. L'organisme qui édicte les RFCs.ITU : Organisme international des Télécommunications (WAN)IEEE : Standardisation des technologies LAN/MAN 802ISOC : Organisation soeur de l'IETF, elle agrée ses standard et fait la liaison avec les autres organismesIANA : Organisme qui alloue globalement les blocs d'adresses IP. On ira lire l'article Wikipedia(en) sur l'épuisement des adresses IPv4 pour y trouver les définitions de RIRs et de LIRS. L'IANA gère aussi globalement les noms de domaines, les numéros de systèmes autonomes (AS) et les numéros de ports TCP et UDP.

RFCs IPv6Les principes fondateurs d'IPv6 sont formalisés dans toute une série de RFCs (Requests For Comments) rédigés par l'IETF. Les RFCs, littéralement “demandes de commentaires”, sont une série numérotée de documents officiels décrivant les aspects techniques d'Internet, ou de différents matériels informatique (routeurs, serveur DHCP). Les RFCs font aussi des suggestions d'implémentation, d'architectures, de déploiement, visant à assurer l'inter-opérabilité avec les couches sous-jacentes. Peu de RFCs sont des standards, mais tous les standards d'Internet publiés par l'IETF sont des RFCs. (Wikipedia)Les industriels, les solutions GNU/Linux/BSD suivent de près les RFCs IPv6. Mais l’implémentation des fonctionnalités IPv6 dépend toujours de la volonté des constructeurs et des développeurs.Les RFCs peuvent être traduits comme par exemple le démontre cette recherche. Aussi, elle peuvent l'objet de commentaires critiques comme le blog http://www.bortzmeyer.org/rfcs.html.
Bibliographie actualiséeO’Reilly, Cisco Press, Microsoft Press
en.wikipedia.org/wiki/IPv6
Programme ISOC IPV6 Deploy360
ActivitéDiscussionMaintenir une veille technologique :Quel est le matériel impacté par la transition ?Quels sont les logiciels qui doivent être validés pour IPv6 ?Quelle est ma politique de sécurité : comment est-elle mise en oeuvre en IPv4 ? Comment la mettre en oeuvre pour le trafic IPv6 ?Prendre une connectivité globale :native de préférenceTunnels : Sixxs, HE, Gogo6, FAIMini-projet : Monter un prototype de testSe remettre à niveau L1, L2, L3: marché, théorie, pratique.
2. Fondamentaux TCP/IPv6
ObjectifsRappeler les principes et objectifs techniques fondamentaux d'IPv6 Placer IPv6 dans la hiérarchie protocolaire TCP/IPIdentifier IP comme une technologie de convergenceIdentifier les types de noeuds IPv6 : hôtes et routeursMaîtriser la terminolgie protocolaire IPv6 fondamentale
TCP/IPUn ensemble (pile) de protocoles de communication.Ne se préoccupe pas du contenu.Technologie planétaire qui interface directement n’importe quelle machine.Technologie de l’Internet, en son coeurImpact sociétal, économique, social : une révolution contemporaine.

Objectif de TCP/IPCommuniquerà l’échelle du globede manière libérale
quel que soitle contenule supportles hôtes
Convergence TCP/IPUn grand nombre de tâches courantes (des services) sont réalisées en tant que donnéesA travers une seule technologie :TCP/IP
PrincipesCommunication de bout en boutGrâce aux routeurs, le réseau Internet se contente d’assurer le transfert rapide des paquets d’une extrémité à l’autre (où se situe l’intelligence). Les routeurs NAT, les pare-feux, bref la réalité, contredisent ce principe. RobustesseÊtre conservateur avec les messages envoyés et libéral avec les messages reçus.
CaractéristiquesIPv6 respecte des caractéristiques de la couche Internet (L3). En ce sens, il est similaire à IPv4.Il est :non fiablenon orienté connexionrespecte le modèle du meilleur effort (Best Effort)unicité des adressesune communication de bout en boutPour rappel, IPv6 respecte les principes fondateurs de l'Internet :Il permet d'acheminer les paquets de bout à l'autre d'un inter-réseau.Il fonctionne en mode non connecté.Il est réputé non-fiable.

Modèle OSI et TCP/IPv4Autour d'IPv6Même si IPv6 est central, il reçoit du soutien d'autres protocoles et technologies :Les commutateurs effectuent des filtrage haut niveau Les routeurs interconnectent les réseaux entre eux.Il est supporté par toutes les technologies sous-jacentes LAN/WAN de couche Accès Réseau.Il est aidé par les protocoles de transport TCP et UDP.ICMP se voit confier des tâches de résolution d'adresse et de gestion d'adresses en plus des messages habituels d'information et d'erreur.Le broadcast est remplacé par l'usage plus fin du multicast.L'adressage est amplement disponible, simplifié, automatique, rendant le NAT inutile (renforçant la sécurité).Il est aidé par les protocoles de routage RIPng (RFC 2080), IS-IS for IPv6, OSPFv3 (RFC 2740), MP-BGP (RFC 2545/2858) et EIGRP for IPv6.

Basse couches Accès réseau
TCP/IPv6
Architecture IPv6Bien qu'IPv6 et IPv4 répondent au même modèle de communication, ils sont incompatibles entre eux. On trouvera trois types d'objet sur l'Internet :Ceux qui sont seulement activés en IPv4Ceux qui sont seulement activés en IPv6Ceux qui sont activés en IPv6 et IPv4 (dual-stack)






Un nœud (node) est un objet qui implémente IPv6. Parmi les nœuds, on trouvedes hôtes (hosts) et des routeurs (router).

Routeurs et HôtesLes routeurs sont des nœuds qui se chargent de transférer le trafic qui ne leur est pas explicitement destiné. Ceux-ci tiennent des tables de routage qui connaissent toutes les destinations.
Les hôtes peuvent être n'importe quel objet communiquant (ordinateur de bureau, terminal léger, embarqué, smartphone, machine virtuelle, etc.) quel que soit son système d'exploitation.
Passerelles IPv6Les hôtes connaissent leur routeur (ou leur passerelle par défaut) :en IPv4 : statiquementpar DHCPen IPv6 : statiquement,  via des RA/RS (Router Solicitation/Router Advertisement en Neighbor Discovery) ICMPv6 NDEn IPv6, le routeur s’annonce lui-même. Ne ne chercher plus l’option sur le serveur DHCPv6.
Terminologie protocolaire IPv6Un lien (link) est le support physique (ou la facilité telle qu'un tunnel) de communication entre deux nœuds au niveau de la couche 2 liaison de données/accès réseau (technologies LAN/WAN). Deux nœuds sur le même lien sont voisins (neighbors).Une interface est l'attachement d'un nœud au lien. Une adresse est un identifiant pour une interface (Unicast) ou pour un ensemble d'interfaces (Multicast). Une interface peut avoir plusieurs adresses IPv6 et être inscrite dans plusieurs groupes Multicast.Un préfixe désigne l'appartenance à un domaine IPv6. Il se note après l'adresse et une barre oblique / (“slash”).
Terminologie protocolaire IPv6 (2/2)
Contraintes d’une connectivité TCP/IPBande passante UploadBande passante DownloadDélaisMTUSupport des liaisons WAN (IP/MPLS)
Nouveautés IPv6Le broadcast disparaît au profit du multicastPlus besoin de NATARP disparaît au profit de ND (ICMPv6)Entrée DNS IPv6 AAAALe routeur configure le réseauAdressage automatique local obligatoireAutoconfiguration et/ou DHCPv6Plug-and-PlayDHCPv6-PD, solutions IPAMReprise en main de la sécurité
Activité : analyse de protocolesAnalyse de protocoles IPv6 :ICMPv6 echosDNS AAAA en IPv6Paquets ICMPv6 NDAdjacence OSPFv3
Merci à http://packetlife.net/captures/protocol/ipv6/

3. Paquets IPv6
ObjectifsIdentifier et comprendre les champs des en-têtes IPv6 de base.Comparer les en-têtes IPv6 et IPv4Identifier et comprendre le principe de l’enchaînement des en-têtes d’extension.
RFC 2460Le RFC 2460 est un texte central qui spécifie des fonctionnalités telles :l’en-tête de base IPv6les en-têtes d'extension IPv6la découverte du MTU (RFC 1981)les labels relatifs aux flux d'information (RFC 6437)les classes de trafic (RFC 2474)les problèmes relatifs aux protocoles de couches supérieures

En-têtes IPv4 et IPv6Un en-tête IPv6 fixe de 40 octetsDisparition du champs "Header Checksum", IHLLa fonction de fragmentation a été retirée des routeursLes "Options" remplacées par les "Extensions"Les champs d'adresses sont des mots de 128 bits."Next Header" = "Protocol""Hop Limit" = "Time to Live""Flow Label" est nouveauIPv6 vise à minimiser la surcharge à son niveau et à simplifier le processus de traitement des paquets sur les routeurs.Objectifs de conception de l'en-tête IPv6 :Minimiser la surcharge à son niveauSimplifier le processus de traitement des paquetsDes informations moins importantes et les champs d'options ont été déplacés dans les en-têtes d'extension.Bref, les en-têtes IPv6 et IPv4 ne sont pas compatibles.
1. Un en-tête IPv6 fixe de 40 octetsLa longueur de l'en-tête IPv6 est fixée à 40 octets. Cette caractéristique soulage les routeurs qui traitent ces informations. La longueur de l'en-tête IPv4 peut varier de 20 à 60 octets. Cette variabilité de la longueur d'en-tête charge les routeurs.2. Disparition du champs "Header Checksum"Le champs "Header Checksum" disparaît de l'en-tête IPv6. Tous les protocoles de niveau supérieur doivent mettre en œuvre un mécanisme de checksum de bout en bout incluant un pseudo-en-tête qui prend en compte les adresses source et destination. Le checksum d'UDP, facultatif pour IPv4, devient ainsi obligatoire.3. La fonction de fragmentation a été retirée des routeursLa fonction de fragmentation est un rôle qui a été retirée aux routeurs. Les champs correspondant (identification, drapeau, place du fragment) ont été supprimés. La fragmentation est désormais prise en charge par les hôtes terminaux. Ces derniers découvre le MTU par un mécanisme tel que PathMTU qui utilise ICMPv6. Fixer le MTU à une taille minimale sur les hôtes est une pratique. Le RFC 2460 fixe la taille minimale du MTU à 1280 octets contre 68 octets pour IPv4 (RFC 791).4. Les “Options” remplacées par les “Extensions”Les "Options" ont été retirées de l'en-tête. Leur fonction est remplacées par une encapsulation supérieure avec de nouveaux en-têtes appelés "Extensions" qui peuvent être facilement ignorés par les routeurs intermédiaires. Les extensions d'IPv6 peuvent être vues comme un prolongement de l'encapsulation d'IP dans IP. À part l'extension de proche-en-proche traitée par tous les routeurs intermédiaires, les autres extensions ne sont prises en compte que par les équipements destinataires du paquet.



Champs d’en-tête IPv6Le RFC 2460 définit huit champs dans l'en-tête de base IPv6 :Version (4 bits) : indique le protocole utilisé. IPv6 prend nécessairement la valeur 6 ou 0X0110 sur 4 bits.Traffic Class (8 bits) : permet de distinguer différentes classes ou priorité de trafic à traiter par les hôtes ou les routeurs.Flow Label (20 bits) : peut être utilisé pour distinguer jusqu'à 2exp20 flux différents censé permettre de la gestion fine de bande passante. Mais cette option reste expérimentale. Pour l'instant la valeur de ce champ est placée à zéro ou est ignorée. L'appendice A de la RFC 2460 décrit la sémantique de ce champ.Payload Length (16 bits) : est la longueur de la charge du paquet en octets.Next Header (8 bits) : indique le type d'en-tête qui suit directement l'en-tête IPv6 de base selon une numérotation définit dans la RFC 1700, “Assigned Numbers”.Hop Limit (8 bits) : est prévue pour éviter le bouclage infini du même paquet IP. A chaque passage de routeur, la valeur maximale (256) est désincrémentée de un (1). Quand la valeur atteint zéro (0), le paquet est abandonné par un nœud et, typiquement, renvoie un message ICMPv6 message (“time exceeded”) à la source du paquet. Ce mécanisme explique brièvement le fonctionnement du logiciel traceroute ou tracert.Source Address (128 bits) : indique l'adresse du noeud d'origine.Destination Address (128 bits) : indique l'adresse du nœud de destination.
En-tête de base et en-tête d'extensionsIPv6 encapsule tout le trafic dans un en-tête fixe de base constitué de huit champs.Les extensions d'IPv6 peuvent être vues comme un prolongement de l'encapsulation d'IPv6 dans IPv6. À part l'extension de proche-en-proche traitée par tous les routeurs intermédiaires, les autres extensions ne sont prises en compte que par les équipements destinataires du paquet.
Champs IPv6 "Next Header" et en-têtes d'extensionUne extension a une longueur multiple de 8 octets. Elle commence par un champ Next Header d'un octet qui définit le type de données qui suit l'extension : une autre extension ou un protocole de niveau 4 (voir tableau Valeurs du champ Next Header). Pour les extensions à longueur variable, l'octet suivant contient la longueur de l'extension en mots de 8 octets, le premier n'étant pas compté (une extension de 16 octets a un champ longueur de 1).
Valeurs du champ Next HeaderOrderHeaderNH1Basic IPv6 Header-2Hop-by-Hop Options03Destination Options (with Routing Options) 604Routing Header, type 0 deprécié par RFC5095435Fragment Header446Authentication Header517Encapsulation Security Payload Header508Destination Options609Mobility Header60-No next header59Upper layerTCP6Upper layerUDP17Upper layerICMP58
Enchaînement d’extensionsLes extensions peuvent s'enchaîner en suivant l'ordre défini par le RFC 2460. Cette possibilité rend les politiques de filtrage plus lourdes, nécessitant une bonne connaissance du protocole et de la charge sur le matériel filtrant.
Enchaînement : principeDans cet exemple (Cisco Systems), le paquet est envoyé du Mobile Node A au Mobile Node B à travers dialogue TCP (6), utilisant l'extension Routing (43) et l'extension Destination Options (60). Il est envoyé à travers un chemin ayant un Maximum Transmission Unit (MTU) plus petit que les liaisons physiques des Mobile Nodes (MNs) et utilise l'extension Fragmentation (44).Cisco Systems © 
Comparatif IPv4/IPv6ProtocoleIPv4IPv6Similitude IPv4Différence IPv6En-tête variable embarquant des optionsEn-tête fixe  de 40 octets et simplifiéeChamps d’adressesVersionProtocol/Next HeaderTTL/Hop LimitPerformanceLes options sont reportées dans des en-têtes d’xtensionFragmentation à partir des hôtes ou des routeursFragmentation à partir des hôtes uniquementvia PathMTUFonctionnellePathMTULes routeurs ne fragementent pas le traficLes fragments sont embarqués dans des en-têtes d’extensionLe trafic ICMPv6 Packet Too Big ne doit pas être filtré
Activité : capture de paquetsUn exemple de paquets ICMPv6 echo request fragmentés.Mise en place de la connectivité IPv6 par le formateur : Démonstration.
Lancer Wireshark.Capturer des paquets IPv6.Quels sont les protocoles embarqués par IPv6 sur votre connexion ?Examiner les champs d’un paquet IPv6
4. Représentation des adresses IPv6
ObjectifsSe représenter mentalement l’espace d’adressage IPv6Écrire correctement un bloc IPv6 avec son masqueDistinguer le préfixe et l’identifiant d’interface d’une adresseMaîtriser les concepts de domaine IPv6Représenter correctement des préfixes et des adresses IPv6 dans des URI/URL.Suivre les bonnes pratiques en matière de représentation des adresses IPv6
Adresse IPUne adresse IP est l’élément d’identification d’une interface qui est disponible sur l’inter-réseau.Grâce à cet élément logique d’information, un noeud d’extrémité peut joindre un autre noeud d’extrémité.En IPv6, ces adresses ne sont pas censées être modifiées tout au long de leur trajet.
Adresse physiqueLes adresses physiques, comme les adresses IEEE 802 MAC, permettent la livraison sur le lien. Une correspondance doit être établie entre chaque adresse IP à joindre est une adresse physique locale.En IPv4 se mécanisme dépendait d’un autre protocole comme ARP et s’appelle la résolution d’adresseEn IPv6, la fonctionnalité est embarquée et améliorée. Elle est connue sous le nom de découverte de voisinage (ND).
Espace presque infiniLe plus grand avantage d'IPv6 est son espace presque infini selon notre point de vue. Il offre un espace de 128 bits. En effet que représentent 2128 adresses par rapport à notre Internet v4 opaque adressé sur 232 adresses ?Ces adresses sont représentées en notation hexadécimale (chaque hexa ayant une valeur de 4 bits). Elles sont organisées hiérarchiquement.L'espace 2000::/3 est alloué aux adresses globales (L'Internet), soit seulement 12,5 % de l'espace disponible. Il offre déjà énormément plus d'espace que l'actuel Internet version 4.
Représentation des adresses IPv6Une adresse IPv6 est un identifiant (pour une interface) de 128 bits représenté :en hexadécimal (0 à F, base 16)en 8 valeurs de 16 bits, appelés des mots (4 hexas)séparé par des deux-pointsL’adressage IPv6 fait l'objet de manipulations de blocs divisés en 16 bits, en 12 bits, en 8 bits, en 4 bits ... Une adresse IPv6 supporte obligatoirement le routage sans classe (CIDR) : elle est donc toujours accompagnée de son masque.Heureusement, cette notation peut être simplifiée.
Masque d’adresseLe masque IPv6 respecte uniquement  la notation CIDR (Classles Inter Domain Routing).Le nombre après la barre oblique représente le masque (en nombre de bits à 1).
Par exemple le /64 dans l'adresse  2001:0db8:00d6:3000:0000:0000:6700:00a5/64   Le /64 correspond aux 64 premiers bits de l'adresse qui identifie le réseau. Les 64 derniers bits restant identifient l’hôte dans ce réseau.

Préfixe et identifiant d’interfaceUne adresse IPv6 est composée de deux parties :Le préfixe : commun à toutes les interfaces qui partagent le même lien (support)L’identifiant d’interface : qui identifie précisément l’interface sur le lien 2001:0db8:00d6:3000:0000:0000:6700:00a5/64Préfixe:Identifiant d'interface masque de 64 bits

Domaine IPv6Toutes les interfaces d’un domaine IPv6 ont le même préfixe.
Notation d'adresseDans un URL on l'encadrera de crochets. http://[2001:0db8:00d6:3000:0000:0000:6700:00a5] Mais aussi dans les URI SIP (voir http://edvina.net/sipv6/protocol/)Le numéro de réseau est représenté par le préfixe suivi de :: et du masque 2001:0db8:00d6:3000::/64 NB : L’usage réservé de la première adresse et de la dernière a disparu (IPv4).Notation simplifiée :On peut omettre les 0 superflus en en-tête On peut supprimer une seule fois une suite de mots consécutifs à 0.


Exemple de notation IPv6 (1/2)2001:0db8:00d6:3000:0000:0000:6700:00a5/64devient en première instance :2001:0db8:00d6:3000:0000:0000:6700:00a5/64soit, 2001:db8:d6:3000:0:0:6700:a5/64devient en seconde instance :2001:db8:d6:3000:0:0:6700:a5/64soit,2001:db8:d6:3000::6700:a5/64
Exemple de notation IPv6 (2/2)2001:0db8:0000:0000:1000:0000:0000:0001/64devient en première instance :2001:0db8:0000:0000:1000:0000:0000:0001/64soit, 2001:db8:0:0:1000:0:0:1/64devient en seconde instance :2001:db8:0:0:1000:0:0:1/64ou au choix,2001:db8:0:0:1000:0:0:1/64soit, 2001:db8::1000:0:0:1/64ou, 2001:db8:0:0:1000::1/64
Pratique des adresses IPv6 (1/2)Une connectivité de type entreprise reçoit un bloc /48 ou /56, par exemple 2001:db8:1ab::/48 ou 2001:db8:1ab:cd00::/56On divise et organise un bloc fixe /48 en 65536 réseaux /64 ou un bloc /56 en 265 réseaux /64Les 64 premiers bits, les 3 ou 4 premiers mots sont ceux du réseau (des sous-réseaux) de l'entreprise, qui ne changent jamais.Toutes les adresses Unicast doivent avoir un masque de 64 bits. Utiliser un autre masque peut rompre le bon fonctionnement de neighbor discovery, secure neighbor discovery (SEND), privacy extensions, mobile IPv6, embedded-RP (multicast).donnée de 16 bits : « word » ou « mot », parfois « seizet » voire même « doublet » et pourquoi pas le « twoctet » (Wikipedia FR)
Pratique des adresses IPv6 (2/2)Un service DNS dynamique combiné à DHCPv6 sera utile dans un LAN contrôlé.Les adresses des routeurs et des serveurs doivent être fixes.La politique de filtrage du trafic et de sécurité est un enjeu dans un déploiement d'IPv6.Le dual-stack est toujours la méthode de transition préférée.
ConclusionUn fonctionnement similaire à IPv4 (préfixe/hôtes).Un changement culturel :On manipule au maximum 16 bits en hexas c'est mieux que 32 bits en binaireOn peut dépenser des adresses tant qu'on veut On n'en manquera plusOn utilise les masques de manière extensive (fixée à maximum /64 sur les réseaux) Il ne faut plus manipuler des masques restrictifs et illisiblesUn changement inéluctable :Il n'y a pas de protocole alternatif qui autorise la croissance de l’Internet
Quiz 4Quiz de connaissances : Fondamentaux IPv6 et Représentations des adresses IPv6
5. Type d'adresses IPv6
ObjectifsRappels sur les modes de livraisonPréfixes et identifiants d’interface MAC-EUI64Identifier les types d'adresses IPv6 selon leur préfixe.l'adressage unicast et multicastMulticast Scope et Mulitcast GroupsSolicited-Node Multicastl'adressage Global, Link-Local, ULAReconnaître et configurer un identifiant d'interface

Modes de livraisonUnicast : à destination d'une seule interfaceBroadcast : à destination de toutes les interfacesMulticast : à destination d'un ensemble (un groupe) d'interfacesAnycast : à l’interface la plus proche (DNS p. ex.)
Comment les commutateurs LAN traitent-ils le trafic multicast ? Qu’en est-il au coeur du réseau Internet ?X
Préfixes IPv6 allouésL'espace IPv6 à allouer est énorme. C'est un masque qui définit l'étendue des réseaux. Des plages (préfixes) ont donc été réservées pour un usage spécifique.Des plages pour l'adressage Unicast :Link Local : fe80::/10 (obligatoire)Global : 2000::/3Unique Local : fc00::/7, fd00::/8Des plages pour l'adressage Multicast :par exemple, l'adresse ff02::2 identifie tous les routeurs sur le lien localpar exemple, un client DHCPv6 envoit un Solicit venant de [fe80::aabb:ccff:fedd:eeff]:546 à destination de [ff02::1:2]:547
Identifiant d'interfaceUne adresse IPv6 attribuée à une interface est constituée d'un préfixe de 64 bits et d'un identifiant d'interface de 64 bits. Un identifiant d'interface peut être créé de différentes manières :statiquement : 2001:db8:14d6:1::1/64, 2001:db8:14d6:1::254/64,  par autoconfiguration (SLAAC) en utilisant l'une de ces trois méthodes  :MAC EUI-64, par défaut (RFC 4862)tirage pseudo aléatoire, par défaut chez Microsoft, Ubuntu, Mac OSX (RFC 4941)CGA, peu implémenté (RFC 3972)dynamiquement : DHCPv6 (RFC 3315), si le client est installé et activé (par défaut sur Microsoft Windows et Mac OSX)
MAC EUI-64MAC EUI-64 est une est des méthodes de configuration automatique des ID d'interface basé sur l'adresse MAC IEEE 802 (48 bits).
Classes d'adresses IPv6Les adresses IPv6 sont organisées en classes reconnaissables par la valeur du premier mot :
Link-Local, à portée locale uniquement, non routé, obligatoire sur chaque interface en FE80::/64. Configuré automatiquement par défaut.Unique Local Unicast, uniquement pour un usage privé, toutefois censé être unique (RFC4193)Global Unicast, adresses routables sur l'Internet.Multicast, à portée variable et convenue

Adressage Link-LocalL'adressage Link-Local (Unicast) se reconnaît par :un préfixe FE80::/10un identifiant d'interface de 64 bits autogénéré (MAC-EUI64 ou aléatoire) ou fixé (Cisco)est obligatoire sur toutes les interfaces quand IPv6 est activéCes destinations ne sont jamais transférées par les routeurs !Ces adresses sont utilisés dans le trafic de gestion comme ND, RA, dans les protocoles de routage.
Un adressage lien local automatiqueChaque interface est toujours automatiquement dotée d’une adresse Link-Local ayant pour préfixe FE80::/64 et ayant construit son identifiant d’interface (SLAAC) :de manière aléatoire, par défaut sur les machines Microsoft, Mac OSX, certains Linux (RFC 4941)avec la méthode MAC-EUI 64, par défaut (Unix/Linux, Cisco)Un mécanisme de détection d’adresse dupliquée (DAD) utilise des messages ICMPv6 pour effectuer cette vérification ainsi que des messages de vérification de disponibilité (NUD)
Joindre une adresse Link-LocalPuisque toutes les interfaces d'une noeud IPv6 disposent d'une adresse dans la même plage Link-Local, il faudra spécifier l'interface de sortie quand on voudra joindre une autre destination Link-Local. On fait alors suivre le sigle % (modulo) suivi du nom ou du numéro de l'interface dans une commande. Par exemple sous Windows :ping fe80::1%14 ou par exemple sous Linux :ping6 fe80::1%eth0

Adressage Link-Local Cisco IOSIPv6 est désactivé par défaut sous Cisco IOS :(config-if)#ipv6 enableUne adresse Link-Local est alors automatiquement autoconfigurée.On peut la définir statiquement :(config-if)#ipv6 add fe80::1 link-local
Adressage Global UnicastL’espace d’IPv6 qui est alloué à l’Internet global est le bloc 2000::/3, soit un espace de 125 bits.Si les 64 derniers bits d’une adresse identifient les interfaces et que 16 bits sont réservés aux sous-réseaux, il reste 45 bits pour l’allocation globale de réseaux contre les 32 bits théoriques d’IPv4.
| 3 |     45 bits         |  16 bits  |       64 bits              | +---+---------------------+-----------+----------------------------+ |001|global routing prefix| subnet ID |       interface ID         | +---+---------------------+-----------+----------------------------+La dernière adresse de cette plage publique est 3FFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF
Allocation des adressses IPv6 Global Unicast
Adressage global (RFC3587)


FP( Format Prefix ) 3:  001   (binary)TLA( Top-Level Aggregation Identifier ) 13:  0000000000001   (binary)Sub-TLA( Sub-TLA Aggregation Identifier ) 3:  06F   (hexa)NLA( Next-Level Aggregation Identifier ) 29:  814D6   (hexa)SLA( Site Level Aggregation Identifier ) 16:  3000   (hexa)Interface ID( Interface Identifier ) 64:  7256:81FF:FEBF:7C37   (hexa)
Adressage global sous Cisco IOSPour adresser une interface en auto-configuration(config-if)# ipv6 address autoconfigPour adresser une interface statiquement :(config-if)#  ipv6 address 2001:470:CBF7:200::1/64


Autres adresses UnicastAdresses locales uniques (ULA)FC00::/7 -  FD00::/8Ces adresses sont utilisées pour les communications locales et ne sont routables que sur les sites qui le souhaitent. C'est l'équivalent des plages d'adresses privées RFC 1918.Le 8e bit doit être actuellement fixé à 1 (mettre ce bit à 0 n'est pas encore défini), ce qui donne habituellement le préfixe fd00::/8 pour les adresses assignées localement. L'adresse comprend un préfixe pseudo-aléatoire de 40 bits pour éviter les conflits lors de l'interconnexion de réseaux privés.Sixxs.net se propose d’enregistrer les préfixes ULA : https://www.sixxs.net/tools/grh/ula/Adresse de bouclage::1/128Adresse loopback c'est-à-dire la machine elle-même, équivalent de 127.0.0.1 en IPv4.

Multicast généraliséL’usage du multicast se généralise. Les adresses Multicast bien connues sont, entre autres :FF02::1 Tous les noeuds sur le segment du réseauFF02::2 Tous les routeurs sur le segment du réseauFF02::1:2 Tous les serveurs DHCP sur le segment du réseauSolicited-Node Multicast Le 4ème hexa indique l’étendue et l'identifiant d'interface indique le type de noeud à joindre.Le multicast intervient en lieu et place du broadcast dans le trafic de contrôle (voisinage, configuration IP, etc.). 
Adressage MulticastLes 4 derniers bits du préfixe FF0s identifient l'étendue (s) et les 112 derniers bits identifient le groupe.AddressGroup DescriptionAvailable Scopesff0s::1All nodes address, identify the group of all IPv6 nodesAvailable in scope 1 (interface-local) and 2 (link-local):ff01::1 → All nodes in the interface-localff02::1 → All nodes in the link-localff0s::2All routersAvailable in scope 1 (interface-local), 2 (link-local) and 5 (site-local):ff01::2 → All routers in the interface-localff02::2 → All routers in the link-localff05::2 → All routers in the site-localff02::5OSPFIGP2 (link-local)ff02::6OSPFIGP Designated Routers2 (link-local)ff02::9RIP Routers2 (link-local)ff02::aEIGRP Routers2 (link-local)ff02::dAll PIM Routers2 (link-local)ff0X::fbmDNSv6Available in all scopes
Adressage MulticastAutres exemples d'adresses multicast :AddressDescriptionAvailable Scopesff0s::101All Network Time Protocol (NTP) serversAvailable in all scopesff02::1:1Link Name2 (link-local)ff02::1:2All-dhcp-agents2 (link-local)ff02::1:3Link-local Multicast Name Resolution2 (link-local)ff05::1:3All-dhcp-servers5 (site-local)ff02::1:ff00:0/104Solicited-node multicast address. see below.2 (link-local)ff02::2:ff00:0/104Node Information Queries2 (link-local)
Adresses multiplesUne interface pourrait disposer :d’une adresse Link-local autoconfigurée aléatoirementet par préfixe (ULA ou global) :d’une adresse attribuée par DHCPd’une adresse aléatoire dite “publique”, utilisée pour du trafic entrantd’une adresse aléatoire dite “temporaire”, utilisée pour le trafic sortantL’interface peut être inscrite dans plusieurs groupes Multicast bien connus ou sollicités.ipconfig, ifconfig, netsh interface ipv6 sont des commandes utiles pour faire ces vérifications. 
ipconfigMicrosoft Windows [Version 6.3.9600](c) 2013 Microsoft Corporation. All rights reserved.C:\Users\User1>ipconfigWindows IP ConfigurationEthernet adapter Ethernet0:
Connection-specific DNS Suffix  . : lan.orgIPv6 Address. . . . . . . . . . . : 2001:db8:acaf:fd00::2aeIPv6 Address. . . . . . . . . . . : 2001:db8:acaf:fd00:b48a:c5e2:e5a3:1f3eIPv6 Address. . . . . . . . . . . : fd26:44e1:8c70:fd00::2aeIPv6 Address. . . . . . . . . . . : fd26:44e1:8c70:fd00:b48a:c5e2:e5a3:1f3eTemporary IPv6 Address. . . . . . : 2001:db8:acaf:fd00:61a9:365c:2d95:898Temporary IPv6 Address. . . . . . : fd26:44e1:8c70:fd00:61a9:365c:2d95:898Link-local IPv6 Address . . . . . : fe80::b48a:c5e2:e5a3:1f3e%3IPv4 Address. . . . . . . . . . . : 192.168.1.195Subnet Mask . . . . . . . . . . . : 255.255.255.0Default Gateway . . . . . . . . . : fe80::12fe:edff:fee5:a266%3                                    192.168.1.1

netsh int ipv6 show addCombien y a-t-il d’adresses IPv6 sur cette interface Windows 8.1 ?
C:\Users\user1>netsh int ipv6 show add Interface 3: Ethernet0Addr Type  DAD State   Valid Life Pref. Life Address---------  ----------- ---------- ---------- ------------------------Dhcp       Preferred    23h15m46s  23h15m46s 2001:db8:acaf:fd00::2aeTemporary  Preferred     1h53m48s     23m48s 2001:db8:acaf:fd00:61a9:365c:2d95:898Public     Preferred     1h53m48s     23m48s 2001:db8:acaf:fd00:b48a:c5e2:e5a3:1f3eDhcp       Preferred    23h15m46s  23h15m46s fd26:44e1:8c70:fd00::2aeTemporary  Preferred     1h53m48s     23m48s fd26:44e1:8c70:fd00:61a9:365c:2d95:898Public     Preferred     1h53m48s     23m48s fd26:44e1:8c70:fd00:b48a:c5e2:e5a3:1f3eOther      Preferred     infinite   infinite fe80::b48a:c5e2:e5a3:1f3e%3


ifconfigCombien y a-t-il d’adresses IPv6 sur cette interface Linux Debian ?root@debian:~# ifconfig eth0eth0      Link encap:Ethernet  HWaddr b8:27:eb:59:70:f3            inet adr:192.168.1.119  Bcast:192.168.1.255  Masque:255.255.255.0          adr inet6: fd26:44e1:8c70:fd00:ba27:ebff:fe59:70f3/64 Scope:Global          adr inet6: fe80::ba27:ebff:fe59:70f3/64 Scope:Lien          adr inet6: 2001:db8:acaf:fd00:ba27:ebff:fe59:70f3/64 Scope:Global          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1          RX packets:93310 errors:0 dropped:49 overruns:0 frame:0          TX packets:76990 errors:0 dropped:0 overruns:0 carrier:0          collisions:0 lg file transmission:1000           RX bytes:11548535 (11.0 MiB)  TX bytes:14021689 (13.3 MiB) 
netsh int ipv6 show joinsC:\Users\User1>netsh int ipv6 show joins Interface 3: Ethernet0 Scope       References  Last  Address----------  ----------  ----  ---------------------------------0                    0  No    ff01::10                    0  No    ff02::10                    4  Yes   ff02::c0                    1  Yes   ff02::1:30                    2  Yes   ff02::1:ff00:2ae0                    0  No    ff02::1:ff3f:62e60                    2  Yes   ff02::1:ff95:8980                    3  Yes   ff02::1:ffa3:1f3e

Commandes IPv6 générales (1/2)OSDisplay IPv6 routing table ping6traceroute6 Mac OS X netstat -rnf inet6ping6traceroute6Linuxnetstat -rnA inet6ping6traceroute6FreeBSD netstat -rnf inet6ping6 traceroute6Windowsnetstat -rn or netsh interface ipv6 show routesping -6 tracert -6 Vyata show ipv6 routeping6traceroute6
Commandes IPv6 générales 2/2OSDisplay IPv6 Addresses Display IPv6 connectionsFlush DNS cacheMac OS X ifconfig -a inet6netstat -f inet6dscacheutil -flushcacheLinuxip -6 address shownetstat -A inet6 / netstat --inet6/etc/rc.d/init.d/nscd restartFreeBSD ifconfig -a inet6netstat -f inet6/etc/rc.d/named restart Windowsipconfig netstat -p IPv6ipconfig /flushdns
Comparatif IPv4/IPv6AdressageIPv4IPv6Similitude IPv4Différence IPv632 bits128 bitsLe principe de baseUne différence culturelleNAT44NAT64 ?fonctionnelleNAT 66 ou NAT46 innopportunAdressage privéULA aléatoirefonctionnelleVraiment privéAdressage publiqueUGAfonctionnelleObjectif : la popularitéAPIPAAdressage Link-Localpurement d'apparenceusage obligatoireARPND (ICMPv6)fonctionnelleprotocolaire/SLAACImportance renforcée du filtrage L2/L3Nouveauté technologique obligatoire sur tous les noeuds : Plug-and-PlayBroadcastMulticast/PerformanceObligatoire
Labs 5Vérification et interprétation des paramètres IPv6 sous Windowsipconfig et ipconfig/allTest de la connectivité dual-stack sous windows: ping, tracert, nslookupVérification et test IPv6 sous *NIX (ipv6-nix)ifconfig, netstat -r et cat /etc/resolv.confping6 et traceroute6dig AAAA, dig @Examen avancé de la configuration IPv6 sous Windowsnetsh interface ipv6 show addressesnetsh interface ipv6 show interfacesnetsh interface ipv6 show neighborsnetsh interface ipv6 show routenetsh interface ipv6 show joins
Activité : Quiz
6. ICMPv6
ObjectifsPositionner et comprendre le rôle du protocole ICMPv6Reconnaître les différents types de messages ICMPv6Comprendre le mécanisme de découverte de voisinage (ND)Comprendre le mécanisme d'autoconfiguration sans état (SLAAC), DAD et NUD.Considérer la durée de vie des adresses et leur dépréciationConsidérer les mécanismes de sélection des adresses IPv6 et IPv4Désactiver les extensions Privacy
ICMPv6 et IPv6IPv6 et ICMPv6 sont inter-dépendants. Leur fonctionnement permet leur autonomie en communication locale, sans état, et une communication indépendante de la nature de l'infrastructure. IPv6 est par ailleurs supporté par un grand nombre de technologies de couche 2.
ICMPv6ICMPv6 est un nouveau protocole formalisé par le RFC 4443.Messages d’erreur : Destination Unreachable, Packet Too Big, Time Exceeded, et Parameters Problems.Messages informatifs : messages de diagnostic (echos), messages pour la gestion des groupes multicast, et messages de découverte de voisinage ND (RFC 4861) et SEND (RFC 3971).
ICMP devient crucialEn IPv6, ICMPv6 devient une composante obligatoire.Neighbor Discovery est un sous-protocole IPv6 (types 133 à 137). Il remplit notamment les fonctions de résolutions d’adresses (ARP en IPv4) qui sont désormais appelées fonction de découverte de voisins. On ne parle plus de table ARP mais de table de voisinage.Les routeurs configurent automatiquement l’adressage global par des Router Advertisment autonomes ou sollicités par des Router Solicitation (Messages ND type 133/134).Les routeurs ne fragmentant plus le trafic, cette fonction est laissée obligatoirement au hôtes. Ils utilisent des paquets ICMPv6 Packet Too Big (Type 2).
7. Découverte de voisinage (ND)
Objectifs
Neighbor Discovery5 types de messages ND :Type ICMPv6 133 : Router Solicitation (RA)Type ICMPv6 134 : Router Advertisement (RS)Type ICMPv6 135 : Neighbor Solicitation (NS)Type ICMPv6 136 : Neighbor Advertisement (NA)Type ICMPv6 137 : Redirect
On ne s’intéressera ici qu’aux messages NS/NA dans le cadre de la découverte et du maintien des relations de voisinages IPv6 et dans le mécanisme d’autoconfiguration.
Mécanismes NDAddress Autoconfiguration : assignation automatique d'adresse sans état,Address Resolution : établissement de la correspondance entre adresse IP et adresse MAC,Next-hop determination : détermination du routeur pour une destination déterminée,Neighbor Unreachability Detection : détermine qu'un hôte n'est plus accessible,Duplicate Address Detection : détermine si un autre hôte utilise la même adresse IP,Router Discovery : les hôtes peuvent détecter les routeurs sur les liens auxquels ils sont connectés,Prefix Discovery : les hôtes peuvent découvrir les préfixes sur les liens,Parameter Discovery : découverte de paramètres comme le MTU, le serveur DNS, NTP, SIP, etc.Redirect : information qu'un autre routeur sur le lien fournit un meilleur next hop.
Découverte et maintien de voisinage IPv6De nouveaux messages ICMPv6 embarquent des fonctions de découverte de voisinage :1. Neighbor Solicitation, NS : destination en Solicited-Node Multicast ou en Unicast2. Neighbor Advertisment, NA : destination en Unicast ou All-nodes Multicast (FF02::1)
Les noeuds IPv6 maintiennent des tables de voisinage à l'instar de la table ARP en IPv4 grâce à de nouveaux mécanismes comme DAD et NUD .
Voici un exemple d’échange NA/NS.

Résolution d’adresseDécouverte de voisin sollicitée
Adresse Solicited-Node MulticastUne adresse Solicited-Node Multicast est jointe en destination dans message NS de découverte de voisin. Cette adresse est construite :en prenant les 24 dernier bits de l'adresse IPv6 connue (unicast) et en lui ajoutant le préfixe ff02:0:0:0:0:1:ff00::/104Par exemplefc00::1/64 sera joint par ff02::1:ff00:1.fe80::2aa:ff:fe28:9c5a sera joint par ff02::1:ff28:9c5a.Un hôte doit joindre une adresse Solicited-Node multicast pour chaque adresses unicast ou anycast configurée.Ce mécanisme remplace le Broadcast d’ARP.

Commandes NDOSDisplay neighbor cache Delete one entry Flush neighbor cache FreeBSD ndp -andp -dndp -cIOS show ipv6 neighbors clear ipv6 neighborsJunOS show ipv6 neighbors clear ipv6 neighborsLinux ip -6 neigh show  ip -6 neigh flushMac OS X ndp -andp -dndp -cVyatta show ipv6 neighbors clear ipv6 neighborsWindows netsh interface ipv6 show neighbors  netsh interface ipv6 delete neighbors
L'autoconfiguration sans état (SLAAC)L’autoconfiguration sans état est formalisée dans le RFC 4862.AutoconfigurationToute interface activée en IPv6 génère une adresse Lien Local.Si un routeur est activé en IPv6, l'interface se configure automatiquement avec une adresse globale (publique) supplémentaire générée par EUI-64 ou avec deux adresses globales privées (aléatoires) dont l’une temporaire.L'interface vérifie chaque adresse automatique avant de l'utiliser (DAD) et vérifie régulièrement l'existence de ses voisins (NUD).Sans étatpas de maintien de relations (non fiable, non orienté-connexion).La charge est placée sur les noeudsMode créduleImportance du filtrage L2/L3

DAD (1/2)DAD (Duplicate Address Detection) est un mécanisme qui permet vérifier l’unicité d’une adresse autoconfigurée sur un réseau.Dans cette procédure, le noeud IPv6 va envoyer un NS à destination de l’adresse solicited-node muticast correspondant à son adresse de tentative. L’adresse source est non spécifiée, évidement (::/128)En cas de réponse (NA), l’adresse n’est pas unique !
DAD (2/2)Dans cet exemple, une interface Windows qui démarre génère trois NS. Veuillez examiner :L’adresse IP sourceL’adresse IP destinationL’adresse IP contenue dans la chargePourquoi trois paquets dans ce cas
No Source Destination        Info1  ::     ff02::1:ff7e:4a1e  NS for fe80::1816:c126:507e:4a1e2  ::     ff02::1:ff7e:4a1e  NS for 2001:470:cbf7:1ab:1816:c126:507e:4a1e3  ::     ff02::1:ff0c:66ce  NS for 2001:470:cbf7:1ab:83c:9e7e:2f0c:66ce


NUDNUD (Neighbor Unreachability Detection) est un algorithme défini dans le RFC4861 qui met en jeux des échanges NS/NA et leur délai. Il définit 5 états du cache de voisinage parmi lesquels :Incomplete : la résolution d’adresse est en train de se dérouler. Un NS vers une adresse solicited-node multicast est envoyé mais le NA de retour correspondant n’est toujours pas arrivé.Reachable : Une confirmation positive a été reçue. L’hôte de destination est joignable dans le délai “ReachableTime milliseconds”.Stale : L’hôte de destination n’est pas joignable dans le délai “ReachableTime milliseconds”. Entre dans cet état lors d’un message NA non sollicité. Delay et Probe.


Durée de vie des adressesLes adresses IPv6 associées à une interface ont une durée de vie déterminée. La durée de vie est en général infinie, mais on peut configurer  :une durée de vie préférée et une durée de vie de validité. Ces durées de vie sont configurées dans les routeurs qui fournissent les préfixes pour la configuration automatique. 
En combinaison avec un changement DNS correspondant, ces durées de vie permettent une transition progressive vers une nouvelle adresse IPv6 (appartenant à un nouveau fournisseur de service par exemple) sans interruption de service.
Quand la durée d'utilisation d'une adresse dépasse la durée préférée, elle n'est plus utilisée pour les nouvelles connexions. Quand sa période de validité est atteinte, elle est supprimée de la configuration de l'interface.

Dépréciation d’une adresseEn effet, une interface pourrait recevoir du trafic entre sa durée préférée et son invalidité.
La sélection d’adressesLe RFC 6274 fournit deux algorithmes à suivre pour que la sélection d'adresse source et destination par défaut soit prévisible. C’est utile quand une interface (source) dispose de plus d’une adresse IPv6, ce qui ne sera pas rare. Quid quand la destination dispose d’une adresse IPv4 et d’une IPv6 (AAAA) ? Ce RFC remplace le RFC 3484.Une adresse IPv6 est préférée à une adresse IPv4.“Si on veut résumer les deux algorithmes utilisés, on peut dire qu'ils préfèrent former des couples source/destination où les deux adresses ont la même portée, ont la portée la plus étroite possible, sont des adresses préservant la vie privée (ULA),et, en fin de compte, partagent le plus de bits de préfixe possibles.” (Bortzmeyer)

Désactiver les extensions Privacy sous Windowsnetsh interface ipv6 show privacy...netsh interface ipv6 set global randomizeidentifiers=disabled store=active
netsh interface ipv6 set global randomizeidentifiers=disabled store=persistent
netsh interface ipv6 set privacy state=disabled store=active
netsh interface ipv6 set privacy state=disabled store=persistent
Disabling RFC 4941 IPv6 Privacy Extensions in Windows

8. Gestion d’adresses IPv6 (IPAM)
ObjectifsDe nombreux messages de gestion sont disponibles par défaut ou configurés pour gérer l’adressage IPv6 :DNSICMPv6, SLAAC, RA/RS, SLAAC, NUD, DADDHCPv6 StatefulDHCPv6 StatelessDHCP RelayDHCPv6-PDAdressage IPv6 global indépendant
Questions techniquesLa gestion d’adresses IPv6 posent plusieurs questions techniques :Comment distribuer un préfixe global ?Comment distribuer des options telles que le résolveur de noms (DNS) IPv6 ?Quand et comment utiliser l’adressage Unique Local (ULA) privé ?Comment identifier le trafic de gestion et profiter du multicast ?IPv6 pour renumérer de sites ?

Topologies et constructeursLes solutions de gestion d’adressage IPv6 se déploient selon les profils et les topologies :SME/PME, SOHO ou accès publicEntreprise mono-siteEntreprise Multi-site, core, data-center, branch officeCore Internet, FAI, Gros fournisseurs de servicesEt selon les constructeurs choisis :Cisco, …Microsoft, …VMWare, …Les services Cloud


9. Configuration du réseau par les routeurs
ObjectifsRouter AdvertismentsRouter SolicitationsParamètres RAMéthodes de configuration IPv6Option Prefix InformationOption Type 3
Le routeur configure le réseauUne autre nouveauté d’IPv6 sont les échanges Neighbor Discovery (ND) “Router Solicitation” (RS 133) et “Router Advertisment” (RA 134).
Ils configurent le réseau en fournissant sur demande ou en annonce gratuite les paramètres de configuration des interfaces.
Paramètres RA (1/2)Les Routeur Advertisment sont des messsages ICMPv6 type 134 disposant d’une en-tête IPv6 et de couche 2.Un champ de drapeaux (Flags) indique l’usage de DHCP stateful et/ou stateless et une valeur de préférence de routeur ainsi que des options :Le préfixe avec son masqueLe MTU que l’interface doit prendreL’adresse source de couche 2 du messageEventuellement, l’adresse d’un serveur DNS récursif, un cache (RDNSS). Cette option est peu supportée.

Router AdvertismentsType 134, code 0Drapeux M, O, PrfOptions : MTU, adresse source L2 et préfixeL’adresse source du message DOIT être l’adresse Link-Local de l’interface qui envoit le message.L’adresse de destination est habituellement l’adresse source du routeur sollicité (Router Solicitation)  ou l’adresse All-Nodes Multicast (FF02::1)      0                   1                   2                   3      0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+      |     Type      |     Code      |          Checksum             |      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+      | Cur Hop Limit |M|O|H|Prf|Resvd|       Router Lifetime         |      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+      |                         Reachable Time                        |      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+      |                          Retrans Timer                        |      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+      |   Options ...      +-+-+-+-+-+-+-+-+-+-+-+-RFC491 màj Neighbor Discovery [RFC4861] Section 4.2 et [RFC6275] Section 7.1


Options RA (2/2)Ethernet II, Src: Globalsc_01:df:95 (f0:ad:4e:01:df:95), Dst: IPv6mcast_00:00:00:01 (33:33:00:00:00:01)Internet Protocol Version 6, Src: fe80::f2ad:4eff:fe01:df95 (fe80::f2ad:4eff:fe01:df95), Dst: ff02::1 (ff02::1)Internet Control Message Protocol v6    Type: Router Advertisement (134)    Code: 0    Checksum: 0x1bc0 [correct]    Cur hop limit: 64    Flags: 0xc0    Router lifetime (s): 1800    Reachable time (ms): 0    Retrans timer (ms): 0    ICMPv6 Option (Prefix information : 2001:db8:ffff::/64)    ICMPv6 Option (MTU : 1500)    ICMPv6 Option (Source link-layer address : f0:ad:4e:01:df:95)    ICMPv6 Option (Recursive DNS Server fe80::f2ad:4eff:fe01:df95)

4 méthodes de configuration IPv6Ces quatre méthodes peuvent se combiner et servir à la gestion de l’adressage IPv6 ainsi qu’à la renumérotation IPv6. Elles sont indiquées dans le champs Flags :Managed address configuration: M : DHCPv6 Stateful assignation d’adresse dynamique Other configuration: DHCPv6 Stateless demande d’options supplémentairesHome Agent: Mobilité IPv6Prf (Default Router Preference): valorisation du RA par rapport à un autre (3 valeurs, 2 bits) Reserved: Pour un usage futur


NConfigurationMO1Configuration statique002Stateless Automatic Autoconfiguration (SLAAC) seul003DHCPv6 (Stateful)114DHCPv6 Stateless01
RA FlagsChamps O et M :SLAACAdvAutonomous(option Prefix Information)Managed Configuration AddressAdvManagedFlagOther ConfigurationAdvOtherConfigFlagScénario1 SLAAC100Assignation : sans étatPasserelle : sans étatDNS : RDNSS ou autre2. Stateless DHCPv6101Assignation : sans étatPasserelle : sans étatDNS : DHCPv63 Statefull DHCPv6011Assignation : DHCPv6Passerelle : sans étatDNS : DHCPv6Le champs Prf donne une préférence au routeur codée sur 2 bits : 01(High), 00 (Medium par default), 11 (Low).
Option Prefix InformationL’option Prefix Information liste chaque préfixe IPv6 annoncé avec une série d’informations :Le drapeau “L” "on-link" (AdvOnLinkFlag).La valeur de durée de vie de validitéLe drapeau “A” "Autonomous address configuration" qui indique que l’interface utilise SLAAC avec ce préfixe.La valeur de durée de vie de préférée

Exemple Option Type 3Quel que soit la position du drapaux M ou O, ce sont les champs L et A qui indiquent l’usage de l’autoconfiguration automatique sans état (SLAAC) …Cela signifie qu’une interface pourrait disposer pour chaque préfixe annoncé d’une adresse attribuée par DHCPv6 et une ou plusieurs adresses SLAAC.
ICMPv6 Option (Prefix information : 2001:db8:ffff::/64)        Type: Prefix information (3)        Length: 4 (32 bytes)        Prefix Length: 64        Flag: 0xc0            1... .... = On-link flag(L): Set            .1.. .... = Autonomous address-configuration flag(A): Set            ..0. .... = Router address flag(R): Not set            ...0 0000 = Reserved: 0        Valid Lifetime: 3600        Preferred Lifetime: 3600        Reserved        Prefix: 2001:db8:ffff:: (2001:db8:ffff::)

10. Support DNS IPv6
ObjectifsDNS IPv6Hiérarchie DNSRécursivité DNSEnregistrements DNS IPv6AAAA RecordMessages DNSPTR RecordServeurs DNS publicsParamètres DNS
DNS IPv6DNS est un service accessoire au sens protocolaire (IP fonctionne sans DNS). Dans la pratique il est devenu indispensable.DNS est une base de donnée globale qui permet de résoudre le nom de ressources Internet en adresses IP.Contrairement à DHCPv6, le fonctionnement de DNS en IPv6 a subi moins d'impacts.Dans une topologie Dual Stack, le système d'exploitation ou l'application aura une préférence pour IPv6.

Hiérarchie DNS
Récursivité  DNSRésolution itérative d'un nom dans le DNS par un serveur DNS (étapes 2 à 7) et réponse (étape 8) suite à l'interrogation récursive (étape 1) effectuée par un client (resolver) DNS. (remarque: Le serveur DNS récursif est dit récursif car il accepte ce type de requêtes mais il effectue des requêtes itératives)
Enregistrements DNS IPv6A record ou address record qui fait correspondre un nom d'hôte à une adresse IPv4 de 32 bits distribués sur quatre octets ex: 123.234.1.2 ;AAAA record ou IPv6 address record qui fait correspondre un nom d'hôte à une adresse IPv6 de 128 bits distribués sur seize octets ;CNAME record ou canonical name record qui permet de faire d'un domaine un alias vers un autre. Cet alias hérite de tous les sous-domaines de l'original ;MX record ou mail exchange record qui définit les serveurs de courriel pour ce domaine ;PTR record ou pointer record qui associe une adresse IP à un enregistrement de nom de domaine, aussi dit « reverse » puisqu'il fait exactement le contraire du A record ;NS record ou name server record qui définit les serveurs DNS de ce domaine ;SOA record ou Start Of Authority record qui donne les informations générales de la zone : serveur principal, courriel de contact, différentes durées dont celle d'expiration, numéro de série de la zone ;SRV record qui généralise la notion de MX record, mais qui propose aussi des fonctionnalités avancées comme le taux de répartition de charge pour un service donné, standardisé dans la RFC 2782 ;

AAAA Recorddig AAAA www.google.com
; <<>> DiG 9.8.3-P1 <<>> @2001:4860:4860::8888 AAAA www.google.com; (1 server found);; global options: +cmd;; Got answer:;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 43838;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:;www.google.com. IN AAAA
;; ANSWER SECTION:www.google.com. 299 IN AAAA 2a00:1450:4013:c00::63
;; Query time: 40 msec;; SERVER: 2001:4860:4860::8888#53(2001:4860:4860::8888);; WHEN: Sun Oct 19 21:51:21 2014;; MSG SIZE  rcvd: 60


Messages DNS (1/2) 1 0.000000000 2001:6f8:14e9:0:8972:1e9:5cf0:5c68 -> 2001:4860:4860::8888 DNS 94 Standard query 0xab3e  AAAA www.google.com  2 0.035248000 2001:4860:4860::8888 -> 2001:6f8:14e9:0:8972:1e9:5cf0:5c68 DNS 122 Standard query response 0xab3e  AAAA 2a00:1450:4013:c00::63https://www.cloudshark.org/captures/eeee08990b96

Message DNS (2/2)Domain Name System (response)    Transaction ID: 0xab3e    Flags: 0x8180 Standard query response, No error    Questions: 1    Answer RRs: 1    Authority RRs: 0    Additional RRs: 0    Queries        www.google.com: type AAAA, class IN            Name: www.google.com            Type: AAAA (IPv6 address)            Class: IN (0x0001)    Answers        www.google.com: type AAAA, class IN, addr 2a00:1450:4013:c00::63            Name: www.google.com            Type: AAAA (IPv6 address)            Class: IN (0x0001)            Time to live: 4 minutes, 59 seconds            Data length: 16            Addr: 2a00:1450:4013:c00::63


PTR Record1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.8.b.d.0.1.0.0.2.ip6.arpa.  IN  PTR  host1.example.com.pourhots1.example.com    IN    A    2001:db8::1
Serveurs DNS IPv6 publicsGoogle :2001:4860:4860::88882001:4860:4860::8844OpenDNS :2620:0:ccc::22620:0:ccd::2Sixxs :dig @nscache.eu.sixxs.net AAAA www.google.com

Paramètres DNSQui pousse les paramètres d’un serveur DNS dans le LAN ?Soit le routeur directement via un RA avec option RDNSS accepté par le système d’exploitation (Ubuntu mais jamais Windows).Soit via un message DHCPv6 INFORMATION-REQUEST envoyé au serveur et son REPLY (si le flag O des RA est positionné à 1).
11. Configuration automatique sans état (SLAAC)
ObjectifsL'autoconfiguration sans état (SLAAC) :Méthode de configurationFonctionnementAdresses

L'autoconfiguration sans état (SLAAC)Méthode obligatoire dans un environnement routé. Le routeur (RAs) donne toute une série de paramètres :préfixe, mtu, préférence, passerelle (Flags RA M=0 et O=0)et autres tels que les serveurs DNS, SIP, NTP, etc. (Flags RA M=0 et O=1) qui s’obtiennent en DHCPv6 StatelessL'interface construit elle-même son identifiant d'interface selon différentes méthodes.
Fonctionnement de SLAACToute interface activée en IPv6 génère une adresse Lien Local avec le préfixe FE80::/10 suivi d'un identifiant d'interface.Elle vérifie l'existence de l'adresse générée via un mécanisme appelé DAD. Sans réponse, elle peut utiliser cette adresse sur le lien local.Elle sollicite un routeur en multicast .S'il est présent sur le réseau, le routeur IPv6 répond avec des paramètres de configuration globale.L'interface élabore son adresse globale selon ce qu'indique le routeur. Elle installe sa passerelle par défaut.Régulièrement, l'interface va vérifier l'existence des noeuds voisins appris par processus ND (NUD).  
SLAACLe processus SLAAC peut être examiné ici.
SLAAC : adressesAvec des RA dont les drapeaux sont placés M=1, O=1, L=1 et A=1 (sur le préfixe), cette interface pourra prendre quatre adresses, soit une DHCPv6, deux SLAAC et une Link-Local :
C:\Users\francois>netsh interface ipv6 show address...Interface 11 : Connexion au réseau localAddr Type  État DAD    Vie valide Pers. Fav. Adresse---------  ----------- ---------- ---------- ------------------------Dhcp       Préféré      23h58m17s  23h58m17s 2001:db8::4f3Public     Préféré       1h58m16s     28m16s 2001:db8:0:1816:c126:507e:4a1eTemporaire Préféré       1h58m16s     28m16s 2001:db8:0:f58e:e759:dbf2:7552Autre      Préféré       infinite   infinite fe80::1816:c126:507e:4a1e%11
et ses trois groupes Multicast joints (netsh interface ipv6 show joins) :ff02::1:ff00:4f3ff02::1:fff2:7552ff02::1:ff7e:4a1e

Activité : capture de trafic SLAACVeuillez capturer le trafic généré par une interface qui démarre et qui construit ses adresses.Lancez la capture sur l’interface d’une machine virtuelle qui redémarre.
12. DHCPv6
ObjectifsRouter AdvertismentsDHCPv6 StatefulDHCPv6 StatelessMessages DHCPv6Implémentation MicrosoftImplémentation Cisco IOS
DHCPv6DHCPv6 est un nouveau protocole. Il utilise le port UDP numéro 546 sur les clients et le port UDP numéro 547 sur les serveurs. Une interface joint un un serveur DHCPv6 avec l’adresse Multicast FF02::1:2. DHCPv6 utilise les adresses Link-Local (FE80::/10) : Le serveur assigne le préfixe et l'identifiant d'interface et des paramètres optionnels (DHCPv6 Stateful) : RFC 3315Le serveur assigne seulement des paramètres optionnels (DHCPv6 Stateless) : RFC 3736Le serveur délègue l’assignation d’un préfixe (DHCPv6 Prefix Delegation) : RFC 6603 (pas traité ici)Fonctionnalité DHCP Relay (pas traité ici)


DHCPv6 et RADans tous les cas c'est le routeur qui prend en charge le trafic vers l'internet, automatiquement grâce aux annonces de passerelles embarquées dans les RA.
Les flags Managed et Other et autres paramètres sont gérés et configurées à partir du routeur !Il est inutile de chercher le paramètre de la passerelle par défaut dans rôles DHCPv6 de Windows Server.
Cisco Sytems, GNU Linux/BSD, Microsoft supportent bien ces services DHCPv6.

DHCPv6 StatelessDHCPv6 Stateless est un mode DHCPv6 sans état :utilise des messages Information-request/Replyne fournit que des informations optionnelles : serveur DNS, NTP, SIP, etc.ne donne aucune adresse, elles sont générées par SLAAC ou attribuéesne maintient aucun état dynamique des clients individuelsLe RA flags sont notés M=0/1 et O=1
Option DNS DHCPv6Sur le routeur Cisco 0xX00 :
ipv6 dhcp pool IPv6_Option_pool dns-server 2001:470:20::2!interface fastethernet0/0 ipv6 nd other-config-flag ipv6 dhcp server IPv6_Option_pool rapid-commit


DHCPv6 mode StatefulLe serveur assigne l’adresse complète et des paramètres optionnels (Flags RA M=1 et O=1)Ce mode est appelé DHCPv6 Stateful. Il est similaire à ce que DHCP IPv4 peut utilement fournir sur un réseau administré.Le serveur maintient une base de données des liens (des baux).En quatre ou deux messages (rapid commit: Solicit/Reply)Par exemple, en admettant que l'adresse lien-local du serveur est fe80::0011:22ff:fe33:5566/64 et que l'adresse lien-local du client est fe80::aabb:ccff:fedd:eeff/64,1. le client DHCPv6 envoie un Solicit de [fe80::aabb:ccff:fedd:eeff]:546 à [ff02::1:2]:547.2. le serveur DHCPv6 répond avec un Advertise (annonce) de [fe80::0011:22ff:fe33:5566]:547 à [fe80::aabb:ccff:fedd:eeff]:546.
3. le client DHCPv6 répond avec un Request de [fe80::aabb:ccff:fedd:eeff]:546 à [ff02::1:2]:547.
4. le serveur DHCPv6 termine avec un Reply de [fe80::0011:22ff:fe33:5566]:547 à [fe80::aabb:ccff:fedd:eeff]:546.

DUID (DHCPv6 Unique Identifier)Selon la  section 9 du RFC3315, les serveurs DHCP utilisent les  DUIDs pour identifier les clients pour la sélection de paramètres et dans la sélection de son IA. Un IA (Identity Association) est une collection d’adresses assignés au client. Le DUID doit être unique dans l’environnement et il est créé par le client. Parce que certains périphériques ne peuvent pas garder en mémoire cette information, il y a trois moyens de générer un DUID :L’adresse de couche 2 + horodatage“Vendor-assigned unique ID” basé sur un “Enterprise Number”L’adresse de couche 2Cette nouvelle fonctionnalité vise notamment à identifier autrement que par une adresse MAC un client DHCPv6.

Messages DHCPv61 SOLICIT2 ADVERTISE3 REQUESTCONFIRMRENEWREBIND4 REPLYRELEASEDECLINERECONFIGURE1 INFORMATION-REQUESTRELAY-FORWRELAY-REPL

DHCPv6 MS-WindowsAdressez la machine,suivez le guide en DHCPv6 Stateful,adaptez les RA,activez l’AD, créez un compte,enregistrez la machine
DHCPv6 Stateful Ciscoipv6 dhcp pool testaddress prefix 2010:AA01:10::/64 lifetime infinite infinitedns-server AAAA:BBBB:10FE:100::15dns-server 2010:AA01::15domain-name example.com!interface F0/0no ip addressduplex autospeed autoipv6 address 2010:AA01:10::2/64ipv6 dhcp server test rapid-commitipv6 nd other-config-flagipv6 nd managed-config-flag
DHCPv6 ConclusionDHCPv6 est un outil puissant de configuration du réseau, conçu pour des topologies même très larges :combiné au SLAACDHCP relayDélégation de préfixePour une discussion complémentaire sur DHCPv6 : http://ipv6friday.org/blog/2011/12/dhcpv6/

Outils de gestionMicrosoft Active DirectoryCisco IOSOSS : bind9, wide-dhcpv6, radvd, dnsmasq, odhcpdndpmon

Activités partiques1. Désactivation d’IPv42. Configuration DHCPv6 Stateless Cisco3. Configuration DHCPv6 Stateful Cisco4. Configuration DHCPv6 Stateful MS-AD

13. Plan d’adressage IPv6
ObjectifsManipuler les bits, octets, mots en hexaConcevoir des plans d’adressage simplesConcevoir des plans d’adressage hiérarchique et évolutifAdresser une topologie de laboratoire

Avantages d’un plan d’adressageLes tables de routage peuvent être réduites et plus efficientesLes politiques de sécurité peuvent être déployées plus facilement Des politiques basée sur les applications peuvent être déployées.La gestion et l’approvisionnement du réseau peut être facilitéLe diagnostic est facilité, notamment par une meilleure identificationMise à l’échelle facilité suite à l’ajout de périphériques ou de sites
But d’un plan d’adressageFournir une capacité d’approvisionnement : connecter une nombre indéterminé de périphériquesActiver (ou non) les capacités de communication des hôtes : à communiquer entre eux (BYOD), communication inter-réseau (VLANs)Activer (ou non) la communication Internet : on peut orienter/filtrer le routage de certains préfixes ou de certains hôtes Activer ou non le support d’applications : le filtrage par préfixe permettrait de faciliter le traitement de trafic multimédia ou vocal par exemplePermettre de mieux identifier les hôtes par niveau, emplacement géographique ou organisationnel, par fonction
PrincipeLe donné est toujours le même. On dispose d’un bloc d’adresses IP. On le découpe en sous-réseaux.En IPv6 le masque le plus restrictif est un /64.Il est probable que vous ayez à gérer des blocs /48.Il reste un mot de 16 bits à découper 1, en 16, 256 ou 4096 sous réseaux.
Plan d'adressage SimpleOn vous livre un bloc fdd4:478f:0611::/48On peut conformer les adressages IPv4 privés, par exemple : 172.16.1.0/24 => fdd4:478f:0611:1::/64,172.16.255.0/24 => fdd4:478f:0611:255::/64, ...On peut utiliser un découpage plat, à la volée :fdd4:478f:0611:0::/64,fdd4:478f:0611:1::/64, fdd4:478f:0611:2::/64, fdd4:478f:0611:3::/64, ...
Plan d'adressage à 2 ou 4 niveaux égauxOn vous livre un bloc fdd4:478f:0611::/48Il reste 16 bits de libres, soit 4 hexas pour plusieurs stratégies hiérarchiques avec des niveaux géographiques, organisationnels, fonctionnels :Stratégie A : en deux niveaux égaux :Niveau 1 : 256 réseaux (8 bits)/56Niveau 2 : 256 réseaux (8 bits)/64Stratégie B : en quatre  niveaux égaux :Niveau 1 : 16 réseaux (4 bits) /52Niveau 2 : 16 réseaux (4 bits) /56Niveau 3 : 16 réseaux (4 bits) /60Niveau 4 : 16 réseaux (4 bits) /64
Stratégie A en deux niveaux égauxfdd4:478f:0611::/48 fournit 256 réseauxfdd4:478f:0611:[0-f][0-f]00:/56 contenant eux-mêmes chacun 256 sous réseauxfdd4:478f:0611:00[0-f][0-f]:/64 ,fdd4:478f:0611:01[0-f][0-f]:/64 ,fdd4:478f:0611:02[0-f][0-f]:/64 ,fdd4:478f:0611:03[0-f][0-f]:/64 ,...fdd4:478f:0611:fd[0-f][0-f]:/64 ,fdd4:478f:0611:fe[0-f][0-f]:/64 ,fdd4:478f:0611:ff[0-f][0-f]:/64

Stratégie B en quatre niveaux égauxfdd4:478f:0611::/48 fournit 16 réseauxfdd4:478f:0611:[0-f]000:/52 contenant eux-mêmes chacun 16 sous réseaux fdd4:478f:0611:[0-f][0-f]00:/56 contenant eux-mêmes chacun 16 sous réseaux fdd4:478f:0611:[0-f][0-f][0-f]0:/52 contenant eux-mêmes chacun 16 sous réseauxfdd4:478f:0611:[0-f][0-f][0-f][0-f]:/64 ,

Plan d’adressage en niveaux inégauxOn vous livre un bloc fdd4:478f:0611::/48Vous disposez d’un site de 4 bâtiments disposant de maximum 8 étages avec plusieurs dizaines de VLANs (/64) par étage.4 bits pour les bâtiments et 4 bits pour les étages :Bâtiment 1 : 0x0000 - 0x0FFF/52 Etage 1 : 0x0000 - 0x00FF/56 Etage 2 : 0x0100 - 0x01FF/56 Etage 3 : 0x0200 - 0x02FF/56Bâtiment 2 : 0x1000 - 0x1FFF/52 Etage 1 : 0x1000 - 0x10FF/56 Etage 2 : 0x1100 - 0x11FF/56 Etage 3 : 0x1200 - 0x12FF/56...

Plan d'adressage à plusieurs niveaux
en trois niveaux :Niveau 1 : 16 (4 bits)/52Niveau 2 : 256 (8 bits)/60Niveau 3 : 16 (4 bits)/64en ....  niveaux égaux :Niveau 1 : 256 (8 bits) /52Niveau 2 : 16 (4 bits) /56Niveau 3 : 16 (4 bits) /60
On trouvera un exemple de plan d'adressage dans le document IPv6 Subnetting - Overview and Case Study
Attribution étalée“Sparse” mode : attribution étaléeComme on compte de manière séquentielle par la droite soit 0000, 0001, 0010, 0011,… ou 0, 1, 2, 3, on peut compter par la gauche soit 0000, 1000, 0100, 1100,… ou 0, 8, 4, c, ... par exemple sur le premier hexa pour fdd4:478f:0611:[0-f]000:/52 :fdd4:478f:0611::/52fdd4:478f:0611:8000:/52fdd4:478f:0611:4000:/52fdd4:478f:0611:c000:/52fdd4:478f:0611:2000:/52

Plan d’adressage évolutifhttp://www.internetsociety.org/deploy360/resources/ipv6-address-planning-guidelines-for-ipv6-address-allocation/
Applications1er HexaRegions2e HexaUnité d'organisation3e HexaSites4e HexaData0Est0Direction0Site 1aVoice8Nord8Marketing1Site 29Video4Ouest4Finance2Site 3eWirelesscSudcIT3Management2Support commercial4
ActivitésExemple en ULA avec le bloc fdd4:478f:0611::/48Exemple en UGA avec 2001:db8:14d6::/48
Hiérarchie à plusieurs niveaux, sur plusieurs sites :Plusieurs LAN et DMZVille, Bâtiments, niveau/service
Adressage de la topologie de lab de routage
14. Routage IPv6 sous Cisco IOS
ObjectifsNotions de routeur, de domaine de routage, de table de routage sous Cisco IOSTable de routage IPv6Plan d’adressageInterfaces IPv6Activation du routageRoutage statiqueRoutage OSPFv3Diagnostic
RouteursSeuls les routeurs sont capables de transférer les paquets d'une interfaces à une autre. Les routeurs limitent les domaines de broadcast sur chacune de leur interface.Les routeurs échangent entre eux des informations concernant les différentes destinations (des réseaux à joindre) grâce à des protocoles de routage.
Détermination du cheminLes routeurs examinent la destination d'un paquet IP et déterminent le meilleur chemin en fonction des entrées disponibles dans leur table de routage.
Domaine IPDeux noeuds (hôtes, interfaces, cartes réseau, PC, smartphone, etc.) doivent appartenir au même réseau, au même domaine IP, pour communiquer directement entre eux. Quand les noeuds sont distants, ils ont besoin de livrer leur trafic  à une passerelle, soit un routeur.192.168.1.0/242001:6f8:14d6:1::/64192.168.2.0/242001:6f8:14d6:2::/64192.168.3.0/242001:6f8:14d6:3::/64.1/241/64.1/241/64.1/241/64.2/242/64.10/2410/64.10/2410/64
Route statique par défautUne route statique par défaut est celle qui prendra en charge tout trafic qui n'a pas de correspondance spécifiqueUtile au routage InternetS   ::/0 [1/0]     via FE80::1, FastEthernet0/1

Configuration d’une route statique(config)#ipv6 route network/mask {address|interface} [AD]
où :network : est l'adresse du réseau à joindremask : est le masque du réseau à joindreaddress : est l'adresse du prochain routeur directement connecté pour atteindre le réseauinterface : est l'interface de sortie du routeur pour atteindre le réseauAD : distance administrative optionelle (1, par défaut)


Topologie personnellePour l’équipe 0x200
Topologie du lab
Plan d’adressageÉquipeRéseau routéFa0/1 WANFa0/0 LAN0x1000x100::/56 (Réservé)-fe80::1/642001:470:7b6d:1lab::1/640x2000x200::/56fe80::200/64autoconfigfe80::1/642001:470:7b6d:200::1/642001:470:7b6d:280::1/64 2001:470:7b6d:2ff::1/640x3000x300::/56fe80::300/64autoconfigfe80::1/642001:470:7b6d:300::1/642001:470:7b6d:380::1/64 2001:470:7b6d:3ff::1/640x4000x400::/56fe80::400/64autoconfigfe80::1/642001:470:7b6d:400::1/642001:470:7b6d:480::1/64 2001:470:7b6d:4ff::1/640x5000x500::/56fe80::500/64autoconfigfe80::1/642001:470:7b6d:500::1/642001:470:7b6d:580::1/64 2001:470:7b6d:5ff::1/640x6000x600::/56fe80::600/64autoconfigfe80::1/642001:470:7b6d:600::1/642001:470:7b6d:680::1/64 2001:470:7b6d:6ff::1/640x7000x700::/56fe80::700/64autoconfigfe80::1/642001:470:7b6d:700::1/642001:470:7b6d:780::1/64 2001:470:7b6d:7ff::1/64
Configuration IPv4Configuration globaleClé SSHConfiguration IPv4 LANWAN (DHCP)IP Routing (DHCP)NATDHCP LANTest de connectivité IPv4
Configuration IPv6Interface WAN IPv6Interface LAN IPv6Routage IPv6
Interface WAN IPv6interface FastEthernet0/1 ipv6 enable do sh ipv6 int brie! ipv6 address FE80::X00 link-local do sh ipv6 int brie! ipv6 address autoconfig do sh ipv6 int brie 
Interface LAN IPv6interface FastEthernet0/0 ipv6 enable  ipv6 address 2001:470:7B6D:200::1/64 ipv6 address FE80::1 link-local

Routage IPv6Il est nécessaire d’activer manuellement le routage IPv6 sur un routeur Cisco :
(config)#ipv6 unicast-routing(config)# ipv6 route ::/0 FastEthernet0/1 FE80::1

Table de routage IPv6#show ipv6 routeIPv6 Routing Table - default - 10 entriesCodes: C - Connected, L - Local, S - Static,NDp - ND PrefixS   ::/0 [1/0]     via FE80::1, FastEthernet0/1NDp 2001:470:7B6D:1AB::/64 [2/0]     via FastEthernet0/1, directly connectedL   2001:470:7B6D:1AB::200/128 [0/0]     via FastEthernet0/1, receiveC   2001:470:7B6D:200::/64 [0/0]     via FastEthernet0/0, directly connectedL   2001:470:7B6D:200::1/128 [0/0]     via FastEthernet0/0, receive

C   2001:470:7B6D:201::/64 [0/0]     via Loopback0, directly connectedL   2001:470:7B6D:201::1/128 [0/0]     via Loopback0, receiveC   2001:470:7B6D:2FF::/64 [0/0]     via Loopback1, directly connectedL   2001:470:7B6D:2FF::1/128 [0/0]     via Loopback1, receiveL   FF00::/8 [0/0]     via Null0, receive

Vérification du routage#pingProtocol [ip]: ipv6Target IPv6 address: www.google.comRepeat count [5]: Datagram size [100]: Timeout in seconds [2]: Extended commands? [no]: ySource address or interface: fastethernet0/0UDP protocol? [no]: Verbose? [no]: Precedence [0]: DSCP [0]: Include hop by hop option? [no]: Include destination option? [no]: Sweep range of sizes? [no]: Type escape sequence to abort.Sending 5, 100-byte ICMP Echos to 2A00:1450:4007:803::1014, timeout is 2 seconds:Packet sent with a source address of 2001:470:7B6D:200::1!!!!!Success rate is 100 percent (5/5), round-trip min/avg/max = 136/276/408 ms


Adresse IPv6 (1/2)#show ipv6 interface f0/0FastEthernet0/0 is up, line protocol is up  IPv6 is enabled, link-local address is FE80::C802:CFF:FE9D:8   No Virtual link-local address(es):  Global unicast address(es):    2001:470:CBF7:200::1, subnet is 2001:470:7B6D:200::/64   Joined group address(es):    FF02::1    FF02::2    FF02::1:FF00:1    FF02::1:FF9D:8  MTU is 1500 bytes  ICMP error messages limited to one every 100 milliseconds  ICMP redirects are enabled  ICMP unreachables are sent  ND DAD is enabled, number of DAD attempts: 1  ND reachable time is 30000 milliseconds (using 30000)  ND RAs are suppressed (periodic)  Hosts use stateless autoconfig for addresses.

Adresses IPv6#sh ipv6 interface f0/0FastEthernet0/0 is up, line protocol is up  IPv6 is enabled, link-local address is FE80::1   No Virtual link-local address(es):  Global unicast address(es):    2001:470:CBF7:200::1, subnet is 2001:470:7B6D:200::/64   Joined group address(es):    FF02::1    FF02::2    FF02::1:FF00:1  MTU is 1500 bytes  ICMP error messages limited to one every 100 milliseconds  ICMP redirects are enabled  ICMP unreachables are sent  ND DAD is enabled, number of DAD attempts: 1  ND reachable time is 30000 milliseconds (using 30000)  ND RAs are suppressed (periodic)  Hosts use stateless autoconfig for addresses.

Vérification terminaleTest de base IPv6 : ipconfig, netsh interface ipv6 …, ping, tracertFirefox, plugin show IP, google, http://test-ipv6.com/, youtube, lesoir
Test Dual-StackFixez l’adresse IPv4 sans DNS IPv4Désactivez IPv4
Routage OSPFv3Configuration du routage global en spécifiant manuellement le router-id en format 32 bits décimal pointé.(config)# router ospfv3 1(config-router)# router-id 10.1.1.1Ce n’est pas sans conséquences sur l’élection DR/BDR.Activation à partir des interfaces(config)# interface fa0/1(config-if)# ipv6 ospf 1 area 0Diagnosticshow ipv6 ospfshow ipv6 ospf interfaceshow ipv6 ospf neighbor


15. Pare-feux IPv6 sous Cisco IOS
ObjectifsPréfixes bogonEn-têtes et extension d’en-têteFiltrage des tunnels (6in4, GRE, IPSEC, …)Firewall L2Logs et performancesDans les diapositives suivantes :ACL : filtrage sans étatIPv6 IOS Firewall : SPI + ACLIPv6 Zone-Based Firewall (ZBF) 
Cisco IPv6 ACLsLes ACLs IPv6 sont très similaires aux ACLs IPv4. Il n’y a plus que des ACLs nommées étendues.(config)#ipv6 access-list namepermit/deny protocol {source-ipv6-prefix/prefix-length | any | host source-ipv6-address | auth} [operator [port-number]] {destination-ipv6-prefix/prefix-length | any | host destination-ipv6-address | auth} [operator [port-number]] [dest-option-type[doh-number | doh-type]] [dscp value] [flow-label value] [fragments] [log] [log-input] [mobility] [mobility-type [mh-number | mh-type]] [reflect name [timeout value]] [routing] [routing-type routing-number] [sequence value] [time-range name]
Les ACLs IPv6 sont appliquées sur les interfaces en utilisant la commande ipv6 traffic-filter access-list-name {in | out}.

Entrées implicites ACLsToutes les ACLs IPv6 contiennent deux règles implicites qui autorisent le trafic IPv6 neighbor discovery (ND) à l’envoi et à la réception :permit icmp any any nd-napermit icmp any any nd-nsComme les ACLs IPv4, les ACLs IPv6 contiennent une règle imlicite qui refuse tout autre trafic.deny ipv6 any anyCes règles ne sont pas visibles dans la configuration? On conseillera de les encoder explicitement.Entrer manuellement la règle implicite deny any any vous permettra de journaliser les paquets refuser sans concerner neighbor discovery (ND).
Exemple ACLExemple refuser tout trafic TCP80 pour une adresse en dehors du LAN :interface f0/0 description interface LAN  ipv6 traffic-filter BLOCK_HOST_01 in!ipv6 access-list BLOCK_HOST_01 sequence 20 deny tcp host 2001:db8:1ab::1 any eq www


Trafic à bloquerunspecified address ::loopback address ::1IPv4-compatible addresses ::/96IPv4-mapped addresses (obsolete) ::ffff:0.0.0.0/96, ::/8automatically tunneled packets using compatible addresses (deprecated RFC 4291) ::0.0.0.0/96other compatible addresses ::224.0.0.0/100, ::127.0.0.0/104, ::0.0.0.0/104, ::255.0.0.0/104false 6to4 packets 2002:e000::/20, 2002:7f00::/24, 2002:0000::/24, 2002:ff00::/24, 2002:0a00::/24, 2002:ac10::/28, 2002:c0a8::/32link-local addresses (see specific section about ICMP) fe80::/10site-local addresses (deprecated) fec0::/10unique-local packets fc00::/7multicast packets (only as a source address) ff00::/8documentation address 2001:db8::/326Bone addresses (deprecated) 3ffe::/16

Messages ND à autoriserMessages ND à autoriser :IPv6 multicast packets (MAC addresses 3333.0000.0000 to 3333.FFFF.FFFF) Neighbor Advertisement (NA), Neighbor Solicitation (NS) messages, et les paquets Duplicate Address Detection (DAD) Router Advertisement (RA) and Router Solicitation (RS) pour SLAAC
Exemple d’ACL bloquante (1/4)ipv6 access-list Internet-Inbound remark Deny loopback address deny ipv6 ::1/128 any remark Deny IPv4-compatible addresses deny ipv6 0::/96 any remark Deny IPv4-mapped addresses (obsolete) deny ipv6 ::ffff:0.0.0.0/96 any remark Deny auto tunneled packets w/compatible addresses (RFC 4291) deny ipv6 ::0.0.0.0/96 any remark Deny other compatible addresses deny ipv6 ::224.0.0.0/100 any log deny ipv6 ::127.0.0.0/104 any log deny ipv6 ::0.0.0.0/104 any log deny ipv6 ::255.0.0.0/104 any log remark Deny false 6to4 packets deny ipv6 2002:e000::/20 any log deny ipv6 2002:7f00::/24 any log deny ipv6 2002:0000::/24 any log deny ipv6 2002:ff00::/24 any log 
Exemple d’ACL bloquante (2/4) deny ipv6 2002:0a00::/24 any log deny ipv6 2002:ac10::/28 any log deny ipv6 2002:c0a8::/32 any log remark Permit good NDP messages since we deny and log at the end permit icmp fe80::/10 any nd-na permit icmp fe80::/10 any nd-ns remark Deny Link-Local communications deny ipv6 fe80::/10 any remark Deny Site-Local (deprecated) deny ipv6 fec0::/10 any remark Deny Unique-Local packets deny ipv6 fc00::/7 any remark Deny multicast packets deny ipv6 ff00::/8 any remark Deny Documentation Address deny ipv6 2001:db8::/32 any remark Deny 6Bone addresses (deprecated) deny ipv6 3ffe::/16 any remark Deny RH0 packets deny ipv6 any any routing-type 0 log 
Exemple d’ACL bloquante (3/4)remark Deny our own addresses coming inbound deny ipv6 2001:db8:11::/48 any log remark permit BGP to and from our EBGP neighbor permit tcp host 2001:db8:4::1 host 2001:db8:4::2 eq bgp permit tcp host 2001:db8:4::1 eq bgp host 2001:db8:4::2 remark Permit traffic to our web server permit tcp any host 2001:db8:11::100 eq www remark Permit our returned traffic from internal clients permit tcp any 2001:db8:11::/48 range 1024 65535 permit udp any 2001:db8:11::/48 range 1024 65535 remark Permit inbound DNS responses to our internal caching DNS server permit udp any eq domain host 2001:db8:11:30:20c:29ff:fe5d:982a remark Permit good ICMPv6 message types permit icmp any 2001:db8:11::/48 destination-unreachable permit icmp any 2001:db8:11::/48 packet-too-big permit icmp any 2001:db8:11::/48 parameter-problem permit icmp any 2001:db8:11::/48 echo-reply

Exemple d’ACL bloquante (4/4) remark Permit our ISP to ping our external interface permit icmp host 2001:db8:4::1 host 2001:db8:4::2 echo-request remark Deny everything else and log it deny ipv6 any any log

Firewall CBAC standardFirewall Cisco IOS SPI et ACL. En 6 étapes :Vérifier la connectivité et le routageConfiguration globaleConfiguration des interfacesConfiguration des ACLsTester de l’extérieur et de l’intérieurOuvrez du trafic
Paramètres globaux! paramètres globauxenableconfigure terminal ipv6 unicast-routing ipv6 inspect name ipv6_test icmp timeout 60 ipv6 inspect name ipv6_test tcp timeout 60 ipv6 inspect name ipv6_test udp timeout 60


Configuration des interfacesinterface FastEthernet0/0 description LAN (TRUST) ipv6 enable ipv6 traffic-filter INBOUND out ipv6 inspect ipv6_test in!interface FastEthernet0/1 description WAN (UNTRUST) ipv6 enable ipv6 traffic-filter OUTBOUND in

ACLs bloquantesipv6 access-list INBOUNDpermit icmp any any nd-napermit icmp any any nd-nsdeny ipv6 any any log!ipv6 access-list OUTBOUND permit icmp any any nd-na permit icmp any any nd-ns deny ipv6 any any log

Exemple de configuration ZBFhttps://supportforums.cisco.com/docs/DOC-28403The below topology brings a simple network containing two security zones. Host H1 (Client) and H2 (Admin) are connected to inside interface Gigabit Ethernet 0/1 accessing web server connected to outside interface Gigabit Ethernet 0/0. 
We will have the goal of allowing Only HTTP and HTTPS traffic for H1 (Client) from the inside to the outsideHTTP, HTTPS and ICMP for H2 (Admin) from the inside to the outsideAll other traffic should drop from inside to outside.

Création du firewallparameter-map type inspect v6-param-map  sessions maximum 10000  ipv6 routing-header-enforcement loose !class-map type inspect match-any v6-class match protocol tcp match protocol udp match protocol icmp match protocol ftp! policy-map type inspect v6-policy class type inspect v6-class   inspect ! zone security z1 zone security z2 ! zone-pair security zp source z1 destination z2  service-policy type inspect v6-policy

Configuration des interfacesinterface FastEthernet0/1 description LAN (TRUST) ipv6 enable zone-member z1!interface FastEthernet0/0description Internet (UNTRUST) ipv6 enable zone-member z2
Diagnostic fondamentalSous Cisco IOS :show ipv6 access-list [access-list-name]
show ipv6 inspect {name inspection-name | config | interfaces | session [detail] | all}
show logging [slot slot-number | summary]Pour les épreuves :nmap -6pingthc-ipv6



16. Introduction à la sécurité IPv6
IntroductionIPv6 est la version d’IP normalisée en 1995-1998 (RFC 2460)Principale motivation : un espace d'adressage étendu (128 bits c. 32 bits)Réaffirme le principe d'une connectivité de bout en bout. Le NAT n'est pas une nécessité en IPv6.Son déploiement est plutôt lent et laborieux. La limite est surtout culturelle, pas technique.Ce retard permet d'adapter rapidement le protocole.
Les évolutions du protocole IPAdressage étendu à 128 bitsL'en-tête IPv6 est simplifié et fixé à 40 octets.Usage du multicast (en lieu et place du broadcast)Sous-protocole ND (RFC 4861) encapsulé dans ICMPv6Plug-and-Play :Autoconfiguration automatique sans état (SLAAC)Adresse Lien local (FE80::/10) créée automatiquement sur chaque interface IPv6Annonce du préfixe réseau dans des RA (Router Advertisment)Mécanismes DAD et NUDAlternatives pour configuration DHCPv6 Stateful et DHCPv6 Stateless
IPv6 = Protocole Internet (IP)IPv6 est le Protocole Internet de nouvelle génération.
Grosso modo, la plupart des considérations de sécurité sont les mêmes en IPv6 qu'en IPv4 car ils fonctionnent selon les mêmes principes.Il reste quelques spécificités.
Faiblesses similaires IPv6/IPv4Usurpation d’adresse IP source trivialePas d’authentification ou de chiffrement par défaut, au niveau IPAttaques par déni de service volumétriques (force brute)Attaques contre les protocoles de transport ou contre les applicationsProtocoles de résolution d’adresses sur le réseau local différents (ARP vs. NDP) mais posant des problèmes similairesProtocoles de routage
Spécificités sécuritaires On peut classer les spécificités sécuritaires d'IPv6 en deux catégories :Les différences contingentes (celles qui sont circonstancielles à l'époque, à l'état du déploiement et de la connaissance du protocole, etc.)Les différences protocolaires
Spécificités contingentesDéployer IPv6 c'est déployer un second réseau = double de travailOn pourrait constater des différences entre les protocoles co-existants :dans les méthodes de gestion incohérentes (règles de filtrage, politiques de sécurité, etc.)dans les implémentations logicielles (p. ex. dans les firewalls) limitées, incomplètes, boguées, pas testéesLa méconnaissance des admin mais aussi des attaquantsTechniques de transition complexes et présentant des nouveaux risques
Qui attaque IPv6 ?Qui attaque IPv6 ? Quasiment personne, car il n'est quasiment pas encore largement déployé. Il serait donc plus sécurisé ? ;-)
Ces différences contingentes vont disparaître avec le temps.
On prédit encore 5 à 10 ans de popularisation d'IPv6 et la disparition d'IPv4 d'ici 15 ans (?)
Spécificités protocolairesLes spécificités protocolaires vont subsister avec le temps.RAcailles (Rogue RA)Vie privée et adresses MACAnalyse des en-têtesEnumération d'adressesPlus de NAT, moins de sécuritéet d'autres ...
Router Advertisment (RA)IPv6 propose d'emblée un mécanisme d'annonce (sans état) du préfixe réseau dans des RA advertisments.Le scénario le plus probable est le suivant :un routeur envoie de RA régulièrement ou répond à des Router Solicitation (RS). Les noeuds IPv6 génèrent automatiquement leur identifiant d'interface
RAcailles (Rogue RA)Les RA (annonces des routeurs), comme DHCP, ne sont pas sécurisées/authentifiées.Comme avec DHCP, une machine peut jouer au routeur et émettre des RAcailles. Problème décrit dans le RFC 6104.Comme avec DHCP, la meilleure protection semble être du filtrage par le commutateur (RA Guard, RFC 6105) : services appelés IPv6 First Hop Security chez Cisco, par exemple

Analyse des en-têtesDes tas de logiciels de sécurité ont besoin de "sauter" l’en-tête du paquet, pour aller au contenu. En IPv4, c’est pénible (en-tête de taille variable) mais connu.En IPv6, nombre quelconque d’en-têtes et, jusqu’à récemment, pas de gabarit commun ! impossible à analyser. Ajouter un seul en-tête suffit parfois pour échapper à la détection.Depuis le RFC 6564, un algorithme fiable est possible.Les commentaires dans le code source de Wireshark ou Net : :Pcap ne sont pas flatteurs pour IPv6. . .Attention aussi à la fragmentation (RFCs en cours pour insister sur le risque).
Enumération d'adressesEn IPv4, balayer toutes les adresses est réaliste (un /16 en moins de 2 h, à 10 adr./s). Cela permet de trouver des machines discrètes.En IPv6, une telle énumération naïve n’est pas envisageable (un /64 prendrait des milliards d’années).Cela ne veut pas dire qu’on ne peut pas être trouvé : adresses prévisibles (...::1), connexions sortantes, attaques locales, attaques on-link, off-link, etc. Le RFC 5157 donne plein d’idées.

Plus de NATEn IPv4, le NAT est quasiment indispensable vu la rareté des adresses. En transformant les champs d'adresses il rompt le principe de connectivité de bout en bout, duplique les réseaux en les cachant, duplique la gestion, bref, c'est une véritable plaie.En IPv6, le NAT n'est plus nécessaire, mais autorisé. On pourrait le rencontrer pour connecter IPv6 à IPv4 (NAT64) voire même dans un usage similaire NAT66.
Plus de NAT, moins de sécurité ?Le NAT n'a jamais été pas une mesure de sécurité. C'est valable en IPv6 comme en IPv4.
On ne se passera pas d'éléments de filtrage et de surveillance !

Et d'autresIPV6_V6ONLY dans les applicationsAttaque Neighbor cacheFiltrage d'ICMPv6 comme on filtre ICMPAttaques sur les tunnels...
Outils d'auditScapyhttp://www.secdev.org/projects/scapy/THC-IPv6http://www.thc.org/thc-ipv6/Metasploithttp://www.metasploit.com/
Mesures de sécuritéNe pas déployer IPv6 n'est pas une mesure de sécurité.Respect des politiques de sécurité.Sécurité de bas niveau (RA_guard, SEND)Firewalls, IDS, Surveillance (Netfilter, ndpmon, ramond, rafixd)Le plus important : la connaissance.

Bibliographiehttp://www.bortzmeyer.org/ipv6-securite.html
http://www.cisco.com/en/US/prod/collateral/iosswrel/ps6537/ps6553/white_paper_c11-678658.html
RFC 6092 et RFC 6204 : recommandations de filtrage sur les CPE end-user.
17. Manipulation de paquets IPv6
ObjectifsManipulation de paquets avec des outils tels que THC-IPv6, scapy, nmap -6, tcpdump
Attaques, faiblesses, outilsDifférentes types attaques : Reconnaissance, MitM, DoS, spoofingDifférentes portées : Routage extérieur, routage intérieur, LAN, Internet, Différentes faibless protocolaires : SLAAC, ICMPv6, ND, NS, NA, RA, DNS, DHCPv6.

Installation des outilsInstallation de THC-IPv6apt-get install build-essential libpcap0.8-dev libssl-devwget http://www.thc.org/releases/thc-ipv6-2.3.tar.gz tar xvfz thc-ipv6-2.3.tar.gz cd thc-ipv6-2.3/makemake installInstallation nmap, scapy, tcpdumpapt-get install python-scapy nmap tcpdumpCapture de paquetstcpdump -w IPv6.pcap -i eth0 -vv ip6

Reconnaissancenmap -6 : scans de portsalive6 : Montre les adresses présentes sur le segmentpassive_discovey6 : Sniff passif qui détecte toute adresse IP. Se combine avec parasite6 dans un environnment commutétrace6 : Traceroute rapide avec résolution DNS et détection de tunnel (changement de MTU).

nmap -6 nmap -6 -v -sT fe80::1
Starting Nmap 6.00 ( http://nmap.org ) at 2013-12-10 21:42 CETInitiating ND Ping Scan at 21:42Scanning fe80::1 [1 port]Completed ND Ping Scan at 21:42, 0.04s elapsed (1 total hosts)Initiating System DNS resolution of 1 host. at 21:42Completed System DNS resolution of 1 host. at 21:42, 0.34s elapsedInitiating Connect Scan at 21:42Scanning fe80::1 [1000 ports]Strange error from connect (22):Invalid argumentCompleted Connect Scan at 21:42, 0.01s elapsed (1000 total ports)Nmap scan report for fe80::1Host is up (0.0015s latency).All 1000 scanned ports on fe80::1 are filteredMAC Address: 00:0C:CE:D9:23:00 (Cisco Systems)
Read data files from: /usr/bin/../share/nmapNmap done: 1 IP address (1 host up) scanned in 0.47 seconds           Raw packets sent: 1 (72B) | Rcvd: 1 (72B)


alive6alive6 eth0Alive: 2001:470:cbf7:1ab:7ec3:a1ff:fe89:b96f [ICMP parameter problem]Alive: 2001:470:cbf7:1ab:ba27:ebff:fe59:70f3 [ICMP echo-reply]Alive: 2001:470:cbf7:1ab::1 [ICMP echo-reply]Scanned 1 address and found 3 systems alive
http://www.cloudshark.org/captures/bed61f75bde3

passive_discovery6passive_discovery6 eth0Started IPv6 passive system detection (Press Control-C to end) ...Detected: 2001:470:cbf7:1ab:829:6ff7:4b6a:2284Detected: fe80::1Detected: 2001:470:20::2Detected: 2a00:1450:4007:803::1010

trace6trace6 -dt eth0 cisco.goffinet.orgTrace6 for cisco.goffinet.org (2001:6f8:202:4db::2) with starting MTU 1500:  1: 2001:470:cbf7:1ab::1 () - new MTU 1480 - 6in4 tunnel endpoint  2: 2001:470:1f12:d02::1 (goffinet-2.tunnel.tserv10.par1.ipv6.he.net)  3: 2001:470:0:7b::1 (ge2-3.core1.par1.he.net)  4: 2001:7f8:54::149 (easynet.franceix.net)  5: 2001:6f8:1:1:87:86:76:19 ()  6: 2001:6f8:1:2:87:86:71:165 ()  7: 2001:6f8:200:1003::10 (bebru01.sixxs.net) - new MTU 1280  8: 2001:6f8:202:4db::1 (gw-1244.bru-01.be.sixxs.net)  9: 2001:6f8:202:4db::2 (cl-1244.bru-01.be.sixxs.net)  [ping reply received]

Autres outils de reconnaissanceAlive Scanning:Alive scanning techniques: alive6ICMPv6 Inverse Lookup: inverse_lookup6ICMPv6 Node Query: node_query6DNS enumeration:Brute: dnsdict6Reverse: dnsrevenum6DNSSEC: dnssecwalkLocal Discovery:NS: detect-new-ip6Sniff: passive_discovery6Router : dump_router6Tracerouter: trace6Helper tools: address6

Attaques MitMICMPv6 Redirects: redir6, redirsniff6NDP: parasite6, fake_advertise6RA: fake_router6, fake_router26DHCPv6: fake_dhcps6DNS: fake_dns6dMobility: fake_mipv6

Attaques DoSflood_advertise6 flood_dhcpc6 flood_mld6flood_mld26 flood_mldrouter6 flood_redirect6flood_router6 flood_router26 flood_solicitate6denial6 dos-new-ip6 exploit6fake_advertise6 kill_router6 ndpexhaust6ndpexhaust26 rsmurf6 sendpees6sendpeesmp6 smurf6 thcsyn6

Empoisonnement de cache NDEmpoisonnement de cache de voisinage avec fake_advertise6. Lancer la capture. Vérifier le cache avant et après. parasite6 commute le trafic.
Rogue RA scapyAssez trivial, en scapy; THC-IPv6 est plus simple.scapyWelcome to Scapy (2.2.0)>>> q = IPv6()/ICMPv6ND_RA()/ICMPv6NDOptPrefixInfo(prefix='2001:db8:bad:bad::', prefixlen=64)/ICMPv6NDOptSrcLLAddr(lladdr='00:0c:29:b7:8e:eb')>>> send(q)

Rogue RA RADVDapt-get install radvd
Dans /etc/radvd.conf :interface eth0{AdvSendAdvert on;AdvLinkMTU 1280;prefix 2001:6f8:14d6:1::/64{AdvOnLink on;AdvAutonomous on;#enables clients to autoconf};RDNSS 2001:6f8:14d6:1::1{AdvRDNSSPreference 8;AdvRDNSSLifetime 3600;};};radvd -C /etc/radvd.conf


fake_router6En trois étapes :1. Activation du routagesysctl -w net.ipv6.conf.all.forwarding=12. Route par défautip route add default via fe80::1 dev eth03. Empoisonnement par RAfake_router6 eth0 2001:470:7B6D:bad::/64
Vérifier la table de routage et de voisinageavant et après l’attaque. Capturer les paquets entre la victime et la passerelle. On peut être plus précis avec fake_router26.
Attaque DADA titre d’exemple, dos-new-ipv6 répond à toutes les tentatives DAD de telle sorte que plus aucune nouvelle interface ne puisse monter une adresse IPv6. Efficace ...
ndpmon : surveillance L2Installation de ndpmon :http://ndpmon.sourceforge.net/index.php?n=Doc.InstallationConfiguration :http://ndpmon.sourceforge.net/index.php?n=Doc.Configuration

First Hop SecuritySelon le document Cisco Implementing First Hop Security :IPv6 First-Hop Security Binding TableIPv6 Device TrackingIPv6 Port-Based Access List SupportIPv6 Global PoliciesIPv6 RA GuardIPv6 ND InspectionSecure Neighbor Discovery in IPv6IPv6 Neighbor Discovery Trust Models and ThreatsSeND ProtocolSeND Deployment ModelsSingle CA Model

Autres attaques et outilshttp://www.scoop.it/t/ipv6-training/?tag=security
18. VPN IPv6 IPSEC


Objectifs (en préparation)Authentification OSPFv3VPN IPv6 IPSEC site-à-siteVPN IPv6 IPSEC site-à-site sur de l’IPv4Microsoft Direct Access
19. Méthodes de transitionPériode de transition, Méthode de transition
ObjectifsPériode de transitionMéthodes de transition protocolairesDual-StackTunnels 6in4, IP41, UDPTraductionScénario de réseaux IPv6 d’entreprise

Période de transitionLa transition est train de se réaliser du coeur du réseau des opérateurs jusqu'au client final. Cette transition pourrait prendre 5 à 10 ans selon les endroits du monde et le type de service à migrer. En tout cas, la disponibilité de la connectivité IPv6 dépend du moment de son déploiement global. Depuis le 6 juin 2012, les grands fournisseurs de l’Internet et l’ISOC ont lancé le “World IPv6 Launch Day” qui annonce le déploiement global d’IPv6.
Transition : IPv6RIPEness
Méthodes de transition protocolairesLe RFC 4213 décrit trois méthodes de transition protocolaires. Dual Stack, double pile IPv4/IPv6, de loin la préférée, la plus probable à moyen terme.Tunnels : solution de transition pour transporter de l'IPv6 sur de l'IPv4 et, à terme, de transporter de l'IPv4 dans de l'IPv6 (plusieurs protocoles pour plusieurs scénarios).Traduction, mécanismes peu recommandés en local. Plutôt exploité chez les ISP pour connecter IPv6 à IPv4 ou les GE. Exemple : NAT64/DNS64
TunnelsScénarios Tunnel Broker utilisant les protocoles 6in4, TSP, ayiya : http://www.tunnelbroker.net/http://www.sixxs.net/http://www.gogo6.com/freenet6Scénarios FAI réels utilisant GRE (privé), DS-Lite ou 6rd (Free)Le tunnel reste toutefois une solution de transition intermédiaire, de phase de test.On attend les offres IPv6 natives ou Dual/Stack seront toujours préférées
Principe de mise en tunnelLe principe technique consiste à placer la charge IPv6 dans des paquets IPv4 au niveau de la couche Réseau ou dans des paquets TCP ou UDP au niveau de la couche Transport. En quelque sorte, ces protocoles agissent en tant que couche de Liaison de données (facilité L2) virtuelle pour connecter deux points d’extrémité IPv6.
Protocole 6in4Quand le tunnel encapsule du trafic IPv6 dans IPv4, on parle de tunnel 6in4. Dans l’en-tête IPv4, le champ « Protocol » qui annonce le protocole de la charge prend la valeur 41 (soit celle qui identifie IPv6). Les adresses IPv4 utilisées dans les en-têtes doivent être globales pour assurer la connectivité IPv6. Les points d’extrémités sont définis de manière statique, ils sont alors configurés manuellement. En s’adjoignant les services d’un mécanisme Heartbeat, les points d’extrémité peuvent être définis de manière automatique comme c’est le cas avec 6in4 dit Heartbeat . Il est utile quand le FAI attribue des adresses IPv4 dynamiques. Notons enfin que le MTU du tunnel DOIT être compris entre 1280 octets et 1480 octets. Une capture de paquets 6in4 est disponible ici.
Protocoles IP41Les protocoles qui se basent sur cette encapsulation IP41 traversent difficilement les pare-feux. Un tunnel IP 41 devrait être placé en bordure du réseau sur une passerelle d’accès à l’Internet, "pour connecter des îles IPv6 dans un océan IPv4" dans une première étape du déploiement global.
6to4, ISATAP et  6rdEn plus du protocole 6in4 déjà décrit, on peut aussi citer comme protocoles de mise en tunnel fondés sur l’encapsulation IP41 : 6to4, ISATAP et  6rd. Ces trois protocoles construisent l’identifiant d’interface du tunnel sur base de son adresse IPv4 globale. Ils sont donc incompatibles derrière un routeur NAT. Le protocole IP41 doit rester ouvert dans les pare-feu
6to46to4 permet de créer automatiquement un tunnel IPv6 sur IPv4 en construisant l’identifiant d’interface IPv6 sur base de l’adresse IPv4.  La plage 2002::/16 est réservée aux tunnels montés avec le protocole. Il permet d’interconnecter facilement deux îles IPv6. Par contre, il a besoin de passerelles relais pour s’interconnecter au monde global IPv6. Teredo est la version « NAT Traversal » personnelle de 6to4.
ISATAPISATAP, Intra-Site Automatic Tunnel Addressing Protocol, permet la transmission de paquets IPv6 entre des noeuds dual-stack au dessus d’un réseau IPv4. Une architecture ISATAP propose un réseau de type overlay sur IPv4 au sein d’un site. Il ne propose pas de solution de connectivité IPv6 globale.
6rd6rd est une autre extension de 6to4 qui utilise le préfixe global d’un Fournisseur d’Accès à Internet plutôt que l’adressage 2002::/16 de 6to4. Cette variante supprime la nécessité de passerelle relais. Il est utilisé dans le déploiement IPV6 du FAI français Free. Il s’agit d’une solution de transition pour un FAI.
IP41 sous Cisco IOSCes solutions de mise en tunnel répondent aux besoins des Fournisseurs d’Accès Internet locaux qui gèrent eux-mêmes les POPs des clients finaux. Implementing Tunneling for IPv6 nous donne une liste des configurations possibles sous Cisco IOS :Example: Configuring Manual IPv6 TunnelsExample: Configuring GRE TunnelsExample: Configuring 6to4 TunnelsExample: Configuring 6RD TunnelsExample: Configuring IPv4-Compatible IPv6 TunnelsExample: Configuring ISATAP TunnelsPour plus d’information sur les solutions de transition pour les FAI, voyez l’article Transition to IPv6 at the Service Providers.

Modèle « Tunnel Broker »Pour obtenir une connectivité IPv6 indépendante des FAI locaux, on peut faire appel à un fournisseur de tunnel IPv6. On peut voir en lui un FAI IPV6 virtuel. Un modèle typique de fournisseur de tunnel (RFC 3053) contrôle les sessions de tunnels établies entre le client en Dual-Stack et le serveur de tunnel qui est en fait un routeur.
Fournisseur Hurricane Electric Le fournisseur de tunnel Hurricane Electric répond à ce modèle. Il supporte seulement les tunnels6in4.4Une encapsulation au niveau de la couche transport apporte à ce modèle une série d’avantages en matière de  :Sécurité, authentificationFacilité de gestionConfiguration automatique ou manuellePrise en charge d’adresses IPv4 dynamiqueSupports des hôtes et des sitesÉvolutivité du nombre de tunnelsSupport du NAT TraversalDécouverte de servicesSupport de services spécifiques (Multicast)On notera une surcharge au niveau des en-têtes que les encapsulations IP41 ne créent pas. Cette surcharge aura nécessairement un certain impact sur les performance du tunnel.

Tunnels UDP/TCPParmi les protocoles de mise en tunnel qui se basent sur une encapsulation de couche transport UDP/TCP (sur IPv4 protocoles 6 et 17) :AYIYA (UDP 5072),TSP (TCP 3653 ou UDP 3653) etTeredo/Miredo (UDP 3544)Ils sont plus souples avec les pare-feux à un point tel qu’ils peuvent devenir une menace pour la sécurité d’un réseau géré. Sans filtrage fin sur les passerelles, ces tunnels traversent aisément les pare-feux et les routeurs NAT. Ce qui est utile à un laboratoire devient dangereux sur un réseau d’entreprise en production.
AYIYAIl est utile de préciser que la connectivité ICMP echo request / echo response doit être activée pour monter ces tunnels. On notera que AYIYA et 6in4 Heartbeat utilisent aussi le protocole TIC (TCP 3874) 5. Ces derniers sont proposés par le fournisseur de tunnels IPv6 Sixxs. On citera aussi le protocole TSP est supporté par plusieurs fournisseurs de tunnels IPv6 dont Gogo6/Freenet6. On peut trouver une perspective objective de l’offre sur la page de Wikipedia (en) List of IPv6 tunnel brokers.
TeredoTeredo, « Tunneling IPv6 over UDP through Network Address Translations (NATs) », fondé sur 6to4, encapsule le trafic IPv6 dans des paquets UDP (port 3544) et utilise  une version simplifiée de STUN NAT Traversal. Il traverse certains pare-feux NAT. Les identifiants d’interface IPv6 sont attribués dans la plage 2001::/32, d’une dérivation des adresses IPv4 natives. L’identifiant d’interface IPv6 généré peut donc changer. Il ne permet pas de router des sous-réseau. Une offre publique de serveurs publics est disponible.Si ces mécanismes offrent plus de souplesses, il génère plus de surcharge6 dans les en-têtes que les tunnels IP 41.

Tunnels : objectifsSi la mise en tunnel est une solution de transition vers IPv6, elle consiste aussi en une menace pour les réseaux d’entreprise. En laboratoire, la solution est aisée à mettre en place. En entreprise, elle permet d’envisager la construction de pilotes ou la consolidation d’infrastructures réseaux de manière durable.
Fournisseurs de tunnelsSixxs dispose d’un client multi-OS AICCU (bien supporté sur Linux ou sur BSD), les POPs sont nombreux, le service est sérieux.Hurricane Electric opte pour la simplicité avec 6in4 mais supporte mal les infrastructures protégées. Hurricane Electric délivre une auto-certification IPv6 intéressante.Gogo6/Freenet6 reste à tester.

Choisir un fournisseur de tunnelPour choisir un fournisseur de tunnel, on sera attentif aux éléments qui pourraient filtrer le trafic IPv6 transporté de bout en bout dans sa topologie. Ensuite, on choisira sa méthode de transition soit en fonction de l’encapsulation (couche 2, 3 et 4), soit en fonction de l’usage ou du modèle à déployer (sénario FAI, Site-to-Site, connectivité virtuelle, IPv6-only site, etc.) ainsi qu'en fonction du plan d'adressage (/64, /56/, /48 voire plus).
TraductionCette problématique concerne principalement les FAI :NAT44NAT444CGNNAT64/DNS64
Traduction NAT64/DNS64Cisco propose du NAT64, Bind du DNS64 ...http://upload.wikimedia.org/wikipedia/commons/thumb/0/05/NAT64.svg/2000px-NAT64.svg.png
Réseau d’entreprise IPv6
Répondre aux besoins d'une infrastructure IPv6 (cf. Point 4 RFC 4057) en :Plannification de l'adressageService de résolution de nom DNSService de routageConfiguration des hôtesPolitiques de sécuritéConfiguration des applicationsNetwork ManagementOn prêtera une attention particulière au comportement des routeurs CPE et au support des différents OS.

Guide de déploiement : RFC7381Pour le déploiement en entreprise, on peut s’inspirer du RFC7381 Enterprise IPv6 Deployment Guidelines :Preparation and Assessment PhaseExternal PhaseInternal PhaseOther PhasesConsiderations For Specific Enterprises (CDN, DC, Campus)

Preparation and Assessment (1)1.  Preparation and Assessment Phase     1.1.  Inventory Phase       1.1.1.  Network infrastructure readiness assessment       1.1.2.  Applications readiness assessment       1.1.3.  Importance of readiness validation and testing     1.2.  Training     1.3.  Routing     1.4.  Security Policy       1.4.1.  Demystifying some IPv6 Security Myths       1.4.2.  Similarities between IPv6 and IPv4 security       1.4.3.  Specific Security Issues for IPv6     1.5.  Address Plan     1.6.  Program Planning     1.7.  Tools Assessment  
External and Internal Phases (2-3)2.  External Phase     2.1.  Connectivity     2.2.  Security     2.3.  Monitoring     2.4.  Servers and Applications 3.  Internal Phase     3.1.  Network Infrastructure      3.2.  End user devices     3.3.  Corporate Systems     3.4.  Security  
Autres phases et considération 4.  Other Phases     4.1.  Guest network     4.2.  IPv6-only 5.  Considerations For Specific Enterprises     5.1.  Content Delivery Networks     5.2.  Data Center Virtualization     5.3.  Campus Networks

DroitsCisco Systems est une marque réservée.
Protocole IPv6 de goffinet@goffinet.eu est mis à disposition selon les termes de la licence Creative Commons Attribution - Partage dans les Mêmes Conditions 4.0 International
Formations Cisco
Mailing List

Inscrivez-vous à la mailing-list du site

* indicates required