Particularités

Auto-configuration

Il y a de nombreuses nouveautés dans IPv6, dont une qui n'est certes pas économe elle non plus, mais qui permet une configuration assez simple des nœuds du réseau.

Avec IPv4, nous ne connaissons que deux moyens vraiment exploitables pour disposer d'une configuration IP valide :

  • la configuration entièrement manuelle ;
  • la configuration automatique via DHCP.

Certes, il existe un ersatz d'auto-configuration, mais qui n'est utilisable que sur un petit réseau, sans passerelle vers l'extérieur.

IPv6 propose un moyen d'auto-configuration efficace, mais gourmand, encore appelé « configuration sans état ». Le « jeton » va être créé automatiquement, le plus souvent à partir de l'adresse MAC de l'interface à configurer. Cette méthode nécessite d'absorber 64 bits sur les 128 disponibles (encore un gaspillage).

L'IEEE a défini un identificateur global à 64 bits (format EUI-64). Les adaptateurs Ethernet disposent d'une adresse MAC codée sur 48 bits. L'IETF a fourni un algorithme de conversion qui permet de passer d'un identifiant MAC à un identifiant EUI-64

Format EUI-64

Exemple

Nous disposons de l'adresse MAC :

 00:1B:11:52:BF:AB
  • l'identifiant constructeur est : 1B:11
  • le numéro de série est : 52:BF:AB

Ceci nous donnera en octets :

02:1b:11:ff:fe:52:bf:ab

Et en mots de 16 bits comme il sied à une adresse IP v6 BCBG :

21b:11ff:fe52:bfab

Nous pouvons donc tout de suite construire une adresse de type « lien local » en ajoutant le préfixe idoine :

fe80::21b:11ff:fe52:bfab
Vérification

~$ ifconfig eth0
eth0      Lien encap:Ethernet  HWaddr 00:1B:11:52:BF:AB  
          inet adr:192.168.10.47  Bcast:192.168.10.255  Masque:255.255.255.0
          adr inet6: fe80::21b:11ff:fe52:bfab/64 Scope:Lien
          ...

Le préfixe utilisé ici est spécifique au lien local. Si nous disposons d'un préfixe distribué par notre fournisseur d'accès, nous pourrons aussi construire une adresse de type globale :

~$ ifconfig eth0
eth0      Lien encap:Ethernet  HWaddr 00:1B:11:52:BF:AB  
          inet adr:192.168.10.47  Bcast:192.168.10.255  Masque:255.255.255.0
          adr inet6: 2a01:5d8:52f3:500d:21b:11ff:fe52:bfab/64 Scope:Global
          adr inet6: fe80::21b:11ff:fe52:bfab/64 Scope:Lien

Notez que :

  • le préfixe distribué par notre fournisseur d'accès est ici : 2a01:5d8:52f3:500d::/64 ;
  • le « jeton » est rigoureusement le même sur les deux adresses IPv6.

Confidentialité

Cette méthode peut présenter une atteinte à la vie privée. En effet, l'adresse MAC est en quelque sorte une signature. Il devient donc possible de « tracer » une machine sur un réseau (ordinateur portable en particulier). Le RFC3041 propose une méthode alternative à partir d'un tirage aléatoire.

Configuration déterminée

Il reste possible cependant de faire appel à des méthodes plus connues en IPv4 :

  • une configuration manuelle, fort peu intéressante en IPv6, sauf dans certains cas très particuliers ;
  • une configuration de type DHCP qui, à l'heure où je rédige ces lignes, n'a pas encore fait la preuve de sa réelle utilité. Il n'existe à ce jour que peu d'implémentations complètes de DHCPv6, comme décrit dans le RFC3315.

Ce type de configuration est appelé « configuration avec état ».

Durée de vie d'une adresse

IPv6 est conçu pour un adressage dynamique des nœuds. L'expérience montre avec IP v4 que l'adressage statique s'avère trop contraignent dans bien des cas. IP v6 prévoit donc qu'un nœud puisse changer d'adresse IP, même s'il reste connecté 24/7 à l'internet. Ceci est rendu possible par :

  • la possibilité d'attribuer plusieurs adresses IP à la même interface ;
  • la définition d'un mode d'obsolescence progressif d'une adresse.

Pour anticiper un peu sur la suite, voici un exemple :

~# ip -6 addr ls dev eth0
1: eth0: <BROADCAST,MULTICAST,UP,10000> mtu 1500 
    inet6 2a01:e35:2e52:9840:220:18ff:fe2d:d291/64 scope global dynamic 
       valid_lft 86331sec preferred_lft 86331sec
    inet6 2a01:5d8:52e5:2984:220:18ff:fe2d:d291/64 scope global deprecated dynamic 
       valid_lft 86331sec preferred_lft -69sec
...

Comme nous le voyons ici, eth0 dispose de deux adresses de scope global. Elles disposent toutes deux de deux paramètres :

  • valid_lft (durée de vie de validité) ;
  • preferred_lft (durée de vie de préférence).

L'adresse 2a01:5d8:52e5:2984:220:18ff:fe2d:d291 est affublée d'un valid_lft positif, mais d'un preferred_lft négatif, ce qui confère à cette adresse des propriétés spéciales :

  • elle est toujours valide (valid_lft positif) ;
  • elle est « deprecated » (preferred_lft négatif).

Autrement dit, cet hôte, lorsqu'il va initier une nouvelle connexion IP n'utilisera pas cette adresse, mais l'autre : 2a01:e35:2e52:9840:220:18ff:fe2d:d291. En revanche, l'adresse dépréciée pourra continuer a être utilisée sur les connexions déjà en cours.

Nous comprendrons mieux comment ces choses se passent lorsque nous étudierons la façon d'obtenir une adresse globale sans état.

ICMP et ARP

Nous sommes en IPv6, mais en dessous, il y a toujours Ethernet (du moins sur notre LAN). ARP permet, avec IPv4, d'obtenir l'adresse MAC à laquelle il faut envoyer l'information, suivant l'adresse IP du destinataire.

Ce mécanisme doit bien sûr exister aussi en IPv6, mais il est pris en charge par ICMP et ARP n'existe plus. Nous verrons comment un peu plus loin.

Dernière modification:: le 03/03/2009 à 19:48
   
 
Cette création est mise à disposition sous un contrat Creative Commons. Creative Commons License