IPv6 et sécurité
Attribution des Adresses
Pour obtenir un préfixe sub Pour obtenir un préfixe sub-TLA TLAde 32 bits en Europe (délais 48h): de 32 bits en Europe (délais 48h): – Être membre du RIPE-NCC (Réseaux IP Européen-Network Coordination Centre) • Abonnement annuel : 2750-3750-5250 Euros (dépend du nbre @ utilisés) – Remplir le formulaire RIPE-195 sur www.ripe.net puis l’envoyer à hostmaster@ripe.net • France Telecom 2001:0688::/32 (depuis juin 2000) • Renater 2001:0660::/32 • Nerim 2001:07A8::/32 • Tiscali 2001:BC8::/32
• • 4 Conditions d’attribution à vérifier (Phase de 4 Conditions d’attribution à vérifier (Phase de BootStrap BootStrap): ): 1. Être un opérateur IPv4 avec au moins 3 peering actifs avec d’autres AS 2. Avoir au moins 40 clients IPv4 ou ou une expérience sur le réseau test 6bone (pTLA) 3. Envisager d’offrir des services IPv6 dans les 12 prochains mois 4. Maintenir un service DNS forward (AAAA) et reverse (ip6.int)
Auto configuration
3 procédures possibles d’autoconfiguration d’une interface : 1. Création d’une adresse Lien-locale • Combiner le préfixe FE80::/64 et l’adresse MAC de la machine, • Vérifier l’unicité de l’adresse au moyen des messages ICMPv6 « Sollicitation d’un voisin » et « Annonce d’un voisin » 2. Autoconfiguration sans Etat (adresse globale) • Combiner le prefixe du site reçu d’un routeur (message Router Advertisement) et l’adresse MAC de la machine • Vérifier l’unicité de l’adresse au moyen des messages ICMPv6 « Sollicitation d’un voisin » et « Annonce d’un voisin » 3. Autoconfiguration avec Etat (adresse globale) • Via un serveur DHCPv6
IPv6 et Programmation
Les applications IPv4 existantes doivent être mise à jour pour fonctionner sur un terminal IPv6-only,
• L’interface de programmation (API) sous Unix (Socket) et sous Windows (WinSock) s’est enrichie de :
1. Nouvelles structures de données adresses
2. Nouveaux types de données
3. Nouvelles fonctions de conversions d’adresses
4. Nouvelles primitives de conversion entre noms et adresses
Nouvelles déclarations de types et protocoles : # define PF_INET6 AF_INET6 sock = socket (PF_INET6, SOCK_DGRAM, 0);
• Nouvelles structures pour stocker les adresses IPv6 : Struct sockaddr_in6 { u_int8_t sin6_len; /* longueur de la structure */ sa_family_t sin6_family; /* AF_INET6 */ in_port_t sin6_port; /* numéro de port */ unint32_t sin6_flowinfo; /* identificateur de flux */ struct in6_addr sin6_addr; /* adresse IPv6 */ uint32_t sin6_scope_id; /* portée de l’adresse */
• Nouvelles primitives de conversion entre noms et adresses : gethostbyname(), gethostbyaddr(), getservbyname() et getservbyport(), remplacées par : getaddrinfo(), getnameinfo()
• Nouvelles primitives de conversion d’adresses (texte <-> numérique): inet_addr() et inet_ntoa() remplacées par : inet_pton() et inet_ntop()