8

Click here to load reader

Internet Protocol v6 ( IPv6 ) I) Objectifs IPv6 apporte ...uv.utbm.free.fr/SM51/cours/IPv6.pdf · 1 Internet Protocol v6 ( IPv6 ) RFC 2460 I) Objectifs IPv6 apporte -> plus d'adresses

  • Upload
    duongtu

  • View
    212

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Internet Protocol v6 ( IPv6 ) I) Objectifs IPv6 apporte ...uv.utbm.free.fr/SM51/cours/IPv6.pdf · 1 Internet Protocol v6 ( IPv6 ) RFC 2460 I) Objectifs IPv6 apporte -> plus d'adresses

���������� 1

Internet Protocol v6 ( IPv6 ) RFC 2460

I) Objectifs IPv6 apporte -> plus d'adresses publiques: 128 bits = 16 octets ( IPv4 en 32 bits épuisées ) ->un routage plus simple ( En IPv4, les tailles des tables de routage augmentent trop malgré CIDR pour un gestion facile ) ->des éléments de gestion de la QoS: Qualité de service ( TOS de IPv4 mal exploité, Diffserv pas assez implémenté ) ->la gestion du multicast intégrée d'origine côté réseau et client (réplication de flux ) -> des moyens de reconnaitre un type de flux par l'adresse unicast, multicast, anycast, il n'y a plus de broadcast. -> une simplification de l'entête ( moitié des champs de IPv4 ) -> une possibilité d'évolution: les options en fin d'entête ( plus limitées à 40 octets ). II) Trame IPv6

La trame IPv6 est - plus longue à cause des longueurs d'adresses - plus simple avec moins de champs Champs IPv6: - Version ( 4 bits ): 6 - Traffic Class ( 8 bits ): Qualité de service - Flow Label ( 20 bits ): Marquage d'un flux pour traitement différencié par le réseau - Payload Length ( 16 bits ): Longueur de la charge utile en octets. - Next Header ( 8 bits ): Indique le contenu: Autre entête ou charge utile ( voir exemple suivant ). - Hop Limit ( 8 bits ): Décrémenté de 1 à chaque routeur comme TTL en Ipv4. L'en-tête IPv6 peut être suivie d'extensions. Elles se succèdent, chacune de leur en-tête indiquent la suivante ( valeurs identiques à IPv4 ). Voir RFC2460. A ce jour, 6 types d’extension d’entête sont définies ( Hop by Hop = infos pour routeurs, Authentification de l’émetteur, Routage, Fragmentation, Paramètres de cryptage, Destination = infos sur le destinataire ). Exemple :

Entête IPv6 Avec

Entête suivant = Routage

Entête Routage Avec

Entête suivant = TCP

Niveau 4 = Entête TCP + Données TCP

Page 2: Internet Protocol v6 ( IPv6 ) I) Objectifs IPv6 apporte ...uv.utbm.free.fr/SM51/cours/IPv6.pdf · 1 Internet Protocol v6 ( IPv6 ) RFC 2460 I) Objectifs IPv6 apporte -> plus d'adresses

���������� 2

�Par comparaison: Entêtes IPv4 / IPv6 III) Adresses IPv6 RFC 2373 (IPv6 Addressing Architecture) Elles passent de 4 octets en IPv4 à 16 octets en IPv6 = 128 bits => 2128 valeurs ≈ 3,4 × 1038 . Règle d'écriture:

- En IPv4, on a des valeurs en décimal séparées par un point: 192.168.1.1 - En IPv6, l'adresse IPv6 est en hexadécimal ( 1 caractère hexa = 4 bits ) avec séparateur ":" entre groupes de 2 octets = 4 codes hexa par groupe = 16 bits par groupe. => 8 groupes de 4 codes hexa par adresse IPv6 Ex: FE80:0000:0000:0000:0209:6A5B:AC50:23FB

- Pour un réseau, on utilise la notation CIDR: adresse-ipv6-code hexa / longueur-du-préfixe-réseau-en-bits Règles de simplification: - On élimine les 0 de gauche dans chaque groupe de 4 codes hexa entre les ":". :009B: -> :9B:

- On supprime les groupes consécutifs de 0. :0000:0000:0000: -> ::

Elle n'est applicable qu'une fois par adresse pour qu'il n'y ait pas d'ambiguïté -> Ecriture unique => On ne trouve :: qu'une fois par adresse. Ex: 8000:0000:0000:0000:0123:4567:89AB:CDEF -> 8000::123:4567:89AB:CDEF Notation réseau CIDR (Classless Inter-Domain Routing ) adresse / nb de bits du préfixe Utilisation: La RFC2732 définit l'écriture d'une URL avec adresse IPv6: L'adresse est entre crochets [ ]

Cela évite de confondre ":" de l'adresse IPv6 avec le séparateur entre adresse IP et numéro de port. Adresse IPv6 = 2001:0:0:A1::1E2A via le port 8080 => URL https://[2001:0:0:A1::1E2A]:7878/webpage.html Cas particulier: Une adresse IPv4 s'écrit ::192.168.1.1 ou ::C0A8:101 en notation IPv6 Types d'adresses

- Il n'y a plus de broadcast car ces fonctions sont intégrées au multicast.

- On ne parle plus de publique/privée mais globale/locale. - La portée ( Scope ) des adresses locales change: Adresse de Lien ( Link Local ) ou adresse de Site ( Site Local ). Lien = interfaces directement connectées sans routeur. Pour usage limité temporaire. - Pour reconnaitre le type d'adresse, on analyse le préfixe = début de l'adresse.

Page 3: Internet Protocol v6 ( IPv6 ) I) Objectifs IPv6 apporte ...uv.utbm.free.fr/SM51/cours/IPv6.pdf · 1 Internet Protocol v6 ( IPv6 ) RFC 2460 I) Objectifs IPv6 apporte -> plus d'adresses

���������� 3

Globales

( préfixe lié à la géographie )

Un paquet envoyé à une adresse unicast va seulement à l'interface qui a cette adresse. 2000::/3

Mondial ( IANA ): 2001::/16, transition 6to4: 2002::/16 Europe ( Ripe.net ): 2003::/16, 2A00:0000::/21, 2A01:0000::/23 Asie ( Apnic ): 2400:0000::/19, 2400:2000::/19, 2400:4000::/21 ...

Adresse

UNICAST ( adresse

d'une interface )

Locales

Un paquet envoyé à une adresse unicast va seulement à l'interface qui a cette adresse. Adresse Link-Local: FE80::/10 commençant par les bits 1111 1110 10

Utilisée pour un lien unique, pas pour l'ensemble d'un site. => pour usages limités: configuration d'adresse automatique, découverte de voisin ou

si on n'utilise aucun routeur. => Un routeur ne propage pas des paquets contenant une IP Link Local

Adresse Site-Local: appelée ULA ( Unique Local Address ):

FC00::/7 adresse unique locale cas particulier FD00::/8 adresse unique locale attribuée manuellement

Adresse MULTICAST ( adresse de plusieurs

interfaces )

Un paquet envoyé en anycast va à TOUTES ces interfaces. 8 bits à 1, 4 bits = flags, 4 bis = scope => Commencent par FF. Adresse multicast du groupe de tous les noeuds FF01::1 = scope à 1 = Interface local FF02::1 = scope à 2 = Link local Adresse multicast du groupe de tous les routeurs FF01::2 = scope à 1 = Interface local FF02::2 = scope à 2 = Link local FF05::2 = scope à 5 = Site local Adresse multicast de sollicitation de noeud ( Solicited Node ) utilisé en résolution d'adresse FF02::1:FFxx:xxxx où xxxxxx = 24 derniers bits de l'adresse unicast ou anycast recherchée Serveur DHCP ou agents relais DHCP: ( RFC 3315 ) FF02::1:2 Link local FF05::1:3 Site Local

Adresse ANYCAST ( adresse de plusieurs

interfaces )

Un paquet envoyé en anycast va à UNE des interfaces du groupe, celle qui répond en premier pour le groupe. Anycast sert à introduire de la redondance ou du partage de charge ( comme pour serveur DNS, serveur web,... ) Si on utilise plusieurs fois une adresse Unicast, elle devient une adresse Anycast ( RFC3513 ). La RFC 2526 définit cependant des adresses réservées = adresse finissant par 0 à 7E. En particulier une adresse finissant par 0 = adresse anycast de routeurs du sous réseau.

Adresses Unicast particulières

Type d'adresse particulière Adresse IPv6 Adresse non spécifiée :: = 0000:0000:0000:0000: 0000:0000:0000:0000

Interface locale ( bouclage, loopback ) ( équivalent du 127.0.0.1 d'IPv4 )

::1 = 0000:0000:0000:0000: 0000:0000:0000:0001

Adresse IPv4 compatible IPv6 ::A.B.C.D où A.B.C.D = adr IPv4 en décimal Adresse IPv4 mappée IPv6 ::FFFF:A.B.C.D où A.B.C.D = adr IPv4 en décimal

Page 4: Internet Protocol v6 ( IPv6 ) I) Objectifs IPv6 apporte ...uv.utbm.free.fr/SM51/cours/IPv6.pdf · 1 Internet Protocol v6 ( IPv6 ) RFC 2460 I) Objectifs IPv6 apporte -> plus d'adresses

���������� 4

Valeurs associées IV) Evolution de la pile protocolaire

� ICMP est plus important dans IPv6, c'est plus que le ping: Il y a de nombreux types de paquets ICMP - Contrôles comme en IPv4 dont Demande d'écho / réponse d'écho - Sous-ensemble ND ( Neighbor Discovery ) = 5 types de paquets

RS: Sollicitation de routeur ( Router Sollicitation RS ) RA: Annonce de routeur ( Router Advertisement RA ) NS: Sollicitation du voisin ( Neighbor Sollicitation NS ) NA: Annonce du voisin ( Neighbor Advertisement NA ) --: Indication de redirection ...

� DHCP évolue en DHCPv6

V) ND Neighbour Discovery = Protocole de détection de voisin IPv6

� Trames ICMPv6, Application à ND IPv6 étend l'utilisation de ICMP ( Internet Control Message Protocol ). On y retrouve les contrôles de IPv4 mais on ajoute le protocole de découverte de voisin = Neighbor Discovery. On reconnait un message ND avec le type ICMP dans l'entête ICMPv6: 133: RS Router Sollicitation: Requête pour recevoir des informations par message RA venant des routeurs du réseau. 134: RA Router Advertisement: Réponse d'un routeur à un requête RS donnant des informations sur le réseau. 135: NS Neighbor Sollicitation: Requête pour recevoir un réponse d'un noeud destinataire. 136: NA Neighbor Advertisement: Réponse du noeud destinataire à une requête RS. 137: Redirect: Redirection La principale utilisation de NS, NA est la résolution d'adresse:

Le protocole IP joint 2 adresses IP = niveau 3 modèle OSI. Pour envoyer le message, il faut un niveau 2, ethernet par exemple. Pour associer une adresse de niveau 2 au niveau 3, Ipv4 utilise le mécanisme de résolution d'adresse ARP. ( si IP dest dans le même réseau, requête ARP en BROADCAST d'IP dest, sinon ARP d'IP passerelle )

IANA Mondial RIR Regional Internet Registries Afrique AfriNIC Asie Pacifique APNIC Amérique ARIN Amérique latine et Caraïbes LACNIC Europe: Réseaux IP Européens RIPE NIR National ISP Fournisseur d'accès à internet LIR Local

Page 5: Internet Protocol v6 ( IPv6 ) I) Objectifs IPv6 apporte ...uv.utbm.free.fr/SM51/cours/IPv6.pdf · 1 Internet Protocol v6 ( IPv6 ) RFC 2460 I) Objectifs IPv6 apporte -> plus d'adresses

���������� 5

������������ Entête IPv6 Next Header=58

( ICMPv6 )�

message ICMPv6�

�������������� Entête ICMPv6� Données du message ICMPv6�

�� Type ICMP 1 oct

Code 1 oct

Checksum 2oct

Type msg ND 1 oct

Lg msg 1 oct

Valeurs msg ND

Exemples:

Si type = 128, 129, on a des messages ICMP d'écho ( Echo Request, Echo Reply ) = Ping. Si type ICMP = 133 (RS), 134 (RA), 135 (NS), 136 (NA), 137 (Redirect), le message ICMP est un message ND.

Exemples msg ND: Si type msg ND = 1, valeurs msg ND = adr Src niv 2 Si type msg ND = 2, valeurs msg ND = adr Dst niv 2 = Target

Si type msg ND = 3, valeurs msg ND = Prefix Information ...

� Résolution d'adresse = Sollicitation de Voisin ( Neighbor ) La résolution d'adresse en IPv6 utilise 2 messages ICMPv6: - NS Neighbor Sollicitation = Requête contenant l'IP cible, envoyée vers le groupe multicast de sollicitation de noeud.

L’adresse IP dest multicast est FF02::1:stuv:wxyz = adr multicast terminée par les 32 derniers bits de l’adresse de la station recherchée. - NA Neighbor Advertisement = Réponse de la cible contenant l'adresse niveau 2 de l'IP demandée. Remarque: L'équivalent de arp –a pour voir les voisins montre 2 adresses unicast pour une machine -> Adresse globale

-> Adresse locale de lien ( show ipv6 neighbor = cisco, netsh interface ipv6 show neighbors = Microsoft, ip -6 neigh show = linux )

Par comparaison: résolution d'adresse v4 - L'émetteur qui connait IP dest recherche l'adresse MAC correspondante par protocole ARP = requête en broadcast ethernet ou proxy ARP - Le destinataire qui reconnait son adresse IP dans la requête ARP répond en indiquant son adresse MAC.

� Sollicitation de Routeur ( Router )

La recherche d'information sur le réseau utilise 2 messages ICMPv6 vers le ou les routeurs:

Page 6: Internet Protocol v6 ( IPv6 ) I) Objectifs IPv6 apporte ...uv.utbm.free.fr/SM51/cours/IPv6.pdf · 1 Internet Protocol v6 ( IPv6 ) RFC 2460 I) Objectifs IPv6 apporte -> plus d'adresses

���������� 6

- RS Router Sollicitation = Requête envoyée vers le groupe multicast de sollicitation de routeur - RA Router Advertisement = Réponse de la cible contenant l'adresse niveau 2 du routeur.

VI) Attribution d'adresse IPv6 = Identifiant d'interface On distingue configuration manuelle et autoconfiguration ( 3 procédés possibles selon présence des éléments et configuration des éléments ).

� Configuration manuelle On entre la valeur d'adresse manuellement: Adresse IP, Longueur du préfixe de sous-réseau, Passerelle par défaut.

� Stateless Address Autoconfiguration: SLAAC La configuration Stateless se fait sans serveur centralisé qui mémorise l'état des clients contrairement au stateful = DHCP. Il existe 2 méthodes d'autoconfiguration stateless: - Link Local dérivée EUI-64

- Link Local dérivée de préfixe

a) Autoconfiguration d'adresse Link Local dérivée EUI-64 Cette configuration automatique utilise l'adresse MAC pour définir une adresse link locale. Elle sera utilisée pour débuter la configuration et on utilisera ensuite une autre méthode. EUI-64 est un identifiant de 64 bits utilisés en firewire ( IEEE 1394 ) ou en domotique ( IEEE 802.15.4 ). L'IEEE décrit les règles pour passer des 48 bits de l'adresse MAC aux 64 bits de l'EUI-64. ( voir schéma ) On ajoute ensuite le préfixe link local 64 bits = F800 0000 0000 0000

Page 7: Internet Protocol v6 ( IPv6 ) I) Objectifs IPv6 apporte ...uv.utbm.free.fr/SM51/cours/IPv6.pdf · 1 Internet Protocol v6 ( IPv6 ) RFC 2460 I) Objectifs IPv6 apporte -> plus d'adresses

���������� 7

Exemple: Adr MAC 34:ED:48:A6:35:B4 => adresse IPv6 Link-locale FE80::36:ED:48:FF:FE: A6:35:B4

=> L'adresse multicast de sollicitation de noeud pour envoi de requête NS sera FF02:0:0:0:0:1FFA6:35B4 ( préfixe multicast de sollicitation de noeud Link-Local FF02:0:0:0:0:1FF00:0/104 puis 24 bits poids faible adr source)

b) Autoconfiguration d'adresse Link Local utilisant un préfixe

Un routeur fournit un préfixe de réseau qui identifie le lien ou le site.

- Le client envoie une requête RS = ICMP type 133 avec adresse src=:: et destination = multicast de tous les routeurs FF02::2, query = demande de RA. - Un routeur répond RA = ICMP type 134 avec adr src = adr link locale du routeur, adr dest = adr multicast de tous les noeuds, contenu = infos sur le réseau dont le préfixe - Le client ajoute au préfixe qu'on lui donne avec le message RA un identifiant d'interface. L'identifiant d'interface est soit EUI-64 ( voir avant ),

soit un nombre aléatoire. Le client fera un test pour vérifier que l'adresse n'est pas déjà utilisée ( Sollicitation de noeud ). � DHCPv6 ( RFC3315 ) = Stateful Autoconfiguration

Un client sait s'il peut utiliser DHCPv6 si un routeur de rattachement le lui indique dans le message RA par les bits O et M. Les bits O et M sont dans le message RA (Router Advertisement ):

bit O: 'O’=1 => Le client utilise DHCPv6 pour récupérer les autres paramètres de configuration ( Other ) comme l'adresse de DNS.

bit M: ‘M’=1 => Le client utilise DHCPv6 pour récupérer une adresse IPv6 ( Managed IPv6 address ) depuis un serveur DHCPv6.

Si un routeur qui envoie RA avec ‘O’=1 et ‘M’=0 => Le client fabrique son IP avec la méthode "Stateless Address Autoconfiguration": SLAAC) puis utilise DHCPv6 pour récupérer les autres paramètres. On parle de "Stateless DHCPv6" car le serveur DHCPv6 ne garde pas de trace des adresses de client.

Avec DHCPv6: Utilisation d'adresse multicast pour DHCPv6 - Le client envoie sur les adresses multicast DHCP link ou site une requête = message “DHCP Solicit” = recherche de serveur DHCPv6. - Un serveur répond par un message "DHCP Advertise” - Le client demande une adresse à ce serveur = message “DHCP Request”. - Le serveur fournit l'adresse à ce client = message "DHCP Reply” DHCPv6 utilise les ports 546 and 547. Par comparaison: DHCP v4

- Le client envoie en broadcast une requête cherchant un serveur DHCP: DHCPDISCOVER sur les ports UDP dst = 67 et src = 68 ( adr MAC dest FF:FF:FF:FF:FF:FF, adr IP dest 255.255.255.255, adr IP src 0.0.0.0 ). Si le serveur n'est pas sur le réseau, il faut un routeur avec un agent Relais DHCP. - Le serveur répond avec DHCPOFFER sur les ports UDP dst = 68 et src = 67 ( adr MAC dst = FF:FF:FF:FF:FF:FF, IP dst = 255.255.255.255 ) - Le client envoie au serveur un requête demandant une adresse: DHCPREQUEST sur les ports UDP dst = 67 et src = 68 ( adr MAC dest FF:FF:FF:FF:FF:FF, adr IP dest 255.255.255.255, adr IP src 0.0.0.0 ).

- Le serveur répond avec DHCPACK qui contient l'adresse IP à utiliser sur les ports UDP dst = 68 et src = 67 ( adr MAC dst = FF:FF:FF:FF:FF:FF, IP dst = 255.255.255.255 ) - Le client peut vérifier qu'il est seul à avoir cette adresse IP en envoyant un requête ARP avec sa propre adresse = ARP gratuit.

Page 8: Internet Protocol v6 ( IPv6 ) I) Objectifs IPv6 apporte ...uv.utbm.free.fr/SM51/cours/IPv6.pdf · 1 Internet Protocol v6 ( IPv6 ) RFC 2460 I) Objectifs IPv6 apporte -> plus d'adresses

���������� 8

� Processus de détermination de la méthode

VII) Outils de test IPv6 Les logiciels intégrant encore IPv4, on distingue les outils IPv4 et IPv6.

Linux Windows ping6 adr_Ipv6 ou nom_hôte ping 6 ou ping –6

traceroute6 tracert –6

pathping –6

Affiche les paramètres Ipv6: #ip -6 addr show

Configuration: "ifconfig" ou "ip -6"

# ifconfig eth0 inet6 add 3ffe:ffff:0:f101::1/64 ou # ip -6 add 3ffe:ffff:0:f101::1/64 dev eth0 Voir les connexions précédentes (voisins ) #ip -6 neigh show

Afficher la cache de voisinage ( arp –a de IPv4 ) netsh interface ipv6 show neighbors • À l'invite de commandes, netsh, Entrée, ? pour l'aide. • Netsh interface ipv6, Entrée, ? pour l'aide. • Netsh interface ipv6 show interface • �Netsh interface ipv6 show address

lien: http://www.linux-france.org/prj/edu/archinet/systeme/ch08.html

Pour être sûr que l'on est sur un réseau IPv6, on peut utiliser comme destinataire du test l'hôte ipv6.google.com

Assignation d'adresse Link-Locale - Le client fabrique une adresse Link-Locale dérivée EUI-64: FE80::[interface ID niv 2] - Il vérifie que l'adresse n'existe pas en envoyant NS Neighbor Sollicitation vers le Multicast des adresses Link-Locale dérivées. - Si une réponse NA ( Neighbor Advertisement ) reçue: Un autre client utilise l'adresse => Arrêt de l'autoconfiguration, configuration manuelle. Trouver un routeur - Sans réponse NA, l'adresse Link-local dérivée est unique et validée:

+ Initialiser l'adresse Link-Local + Envoyer RS ( Router Sollicitation ) vers l'adresse multicast de routeur = ICMP Type 133

+ Sans réponse RA: Réseau isolé, Utilisation de DHCP. + Avec réponse RA: Analyse des bits 'M' et 'O' de la réponse RA.

'M'=0 et 'O'=0 : Réseau sans DHCP => Les clients utilisent RA pour avoir définir une adresse autre que link-local.

La configuration des autres paramètres (DNS ) est manuelle. 'M'=1 et 'O'=1 : DHCP pour adresse et autres paramètres = DHCP Stateful 'M'=0 et 'O'=1 : DHCP définit les autres paramètres, les routeurs voisins sont configurés pour fournir des préfixes pour adresses non link-local. Le client en dérivera une adresse ( méthode DHCPv6 stateless ) 'M'=1 et 'O'=0 : DHCPv6 est utilisé pour donner une adresse, pas pour les autres paramètres

=> Utilisation non prévue.

Remarque: Si le routeur dans sa réponse RA envoie des informations de préfixe, on utilisera une adresse Link-Locale dérivée de préfixe avant de traiter les valeurs des bits 'M' et 'O' de RA.