Adresse IPv6

Maintenant que j'ai activé IPv6 chez Free, mes machines se voient attribuer une IPv6. Voyons comment elles sont construites en prenant « 2a01:5d8:58a0:425b:216:96ff:feab:79ea » comme exemple :

  • « 2a01:5d8 » (32 bits) : le préfixe IPv6 de Free
  • « 58a0:425b » (32 bits) : mon IPv4 publique (88.160.66.91)
  • « 0216:96ff:feab:79ea » (64 bits) : mon adresse MAC (00:16:96:AB:79:EA, 48 bits) étendue sur 64 bits. Les deux premiers chiffres de l'adresse MAC (00) changent (02), car le second bit est inversé pour indiquer que c'est une adresse globale (Internet) et non plus locale (Intranet). Les chiffres « ff:fe » sont fixes. Lire l'annexe A de la RFC 4291 pour les détails : Creating Modified EUI-64 Format Interface Identifiers.

On peut donc facilement retrouver l'IPv4 et l'adresse MAC à partir de l'IPv6. Ceci peut poser des problèmes de confidentialité car l'adresse MAC est parfois utilisée pour tracer l'activité d'un utilisateur. Microsoft Office écrit par exemple l'adresse MAC de la machine dans chaque document généré (jusqu'à Office version 2001 je crois bien). Par contre, l'IPv6 semble fixe pour une même machine étant donnée qu'elle est calculée selon l'adresse MAC.

Tests IPv6

Testons notre connectivité IPv6. Pour commencer, « ping6 ::1 » permet de pinger sa propre machine. Le test ultime est celui de la tortue KAME : en IPv4 elle est floue, alors qu'en IPv6 l'animation est nette :-)

Quelques serveurs publics à pinger en IPv6 :

  • ipv6.teleglobe.net
  • www.kame.net
  • www.enst.fr

Commande pour obtenir les enregistrements DNS en IPv6 :

$ host -t AAAA www.kame.net
www.kame.net has IPv6 address 2001:200:0:8002:203:47ff:fea5:3085

(au passage, www.free.fr n'est pas accessible en IPv6, c'est un comble)

Dans un navigateur web, on peut spécifier une IPv6 en l'écrivant entre crochets : « http://[2001:200:0:8002:203:47ff:fea5:3085]/ ». On peut toujours spécifier le port TCP sur lequel contacter le serveur si besoin est : « http://[2001:200:0:8002:203:47ff:fea5:3085]:80/ » (ici le port 80 pour l'exemple).

Utilisateur du serveur IRC Freenode, je m'empresse de me connecter à « ipv6.chat.eu.freenode.net ». Mais je perd régulièrement ma connexion, je suis alors repassé en IPv4 en attendant que ça se stabilise du côté de chez Free (rappel : IPv6 est en phase de test chez Free).

Outils pour IPv6

Outils réseaux à installer pour jouer avec IPv6 :

  • nc6 : netcat (client TCP générique) compatible IPv6
  • nmap : le scanneur de port par excellence, l'option -6 active le mode IPv6
  • traceroute6 : affiche les nœuds réseaux entre votre machine et un serveur

Pour les installer :

sudo apt-get install netcat6 nmap iputils-tracepath

En testant rapidement, la première chose qu'on réalise est que bien que la Freebox soit en mode routeur avec du NAT, les machines en IPv6 sont directement accessibles depuis Internet ! Je m'empresse de configurer le parefeu Netfilter pour éviter les mauvaises surprises. Règles pour accepter le ping (ICMPv6) et le port TCP 80 :

#!/bin/sh
ip6tables -F
ip6tables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
ip6tables -A INPUT -p tcp --dport 80 -j ACCEPT
ip6tables -A INPUT -p icmpv6 -j ACCEPT
ip6tables -A INPUT -j DROP

Pour en savoir plus