Particularités

Auto-configuration

Il y a de nombreuses nouveautés dans IPv6, dont une qui n'est certes pas très économe, mais 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.

Il existe des ersatz d'auto-configuration, mais qui ne sont utilisables que sur de petits réseaux, 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.

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

L'outil ipv6calc disponible dans toutes les bonnes distributions GNU/Linux, permet entre autres choses d'effectuer ce calcul. Un exemple avec l'adresse MAC 00:50:04:f2:e4:47 :

ipv6calc --action geneui64 --in mac  --out eui64 00:50:04:f2:e4:47

retourne:

250:4ff:fef2:e447

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

fe80::250:4ff:fef2:e447
Vérification

~$ ifconfig eth0
eth0      Lien encap:Ethernet  HWaddr 00:50:04:f2:e4:47  
          inet adr:192.168.10.47  Bcast:192.168.10.255  Masque:255.255.255.0
          adr inet6: fe80::250:4ff:fef2:e447/64 Scope:Lien
          ...

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.

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

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.

Cet exemple a une portée historique, il correspond en effet à la période où l'opérateur « Free » a changé de méthode d'attribution d'adresses IPv6 à ses clients.

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.