Table des matières

IPv6

Introduction

Ceux qui sont familiers avec les Protocoles réseaux, la plupart des transmissions réseaux sont basées au dessus de TCP/IP. Alors que TCP s'occupe d'éviter / corriger la perte des paquets, IP s'intéresse à allouer à chaque machine une adresse IP unique sur son réseau.

La version IP la plus utilisée (pour des raisons historiques) est IPv4, qui permet de connecter entre elles environ 4294967296 machines (4,3 milliards de machines.)

Aujourd'hui, ce nombre est très limitant. Aussi, un autre protocole a été défini, qui permet d'interconnecter un nombre astronomique (340282366920938463463374607431768211456) de machines. Ce protocole apporte également un grand nombre d'avantages en terme de Qualité de Service (fiabilité et robustesse de la ligne.)

Bref, sur le papier, IPv6, c'est que du bon, et c'est le futur (bien qu'il soit déjà utilisable à grande échelle depuis 2008.) En France, les différents fournisseurs d'accès se mettent à fournir une adresse ou un bloc d'adresses IPv6 de plus en plus, parfois gratuitement, parfois non.

Alors que le standard est au point, que de bonnes implémentations existent, certains équipements font n'importe quoi (cela est cependant de moins en moins vrai.) Ce tuto aide à regarder un peu mieux l'état de l'ipv6 sur son système.

Diagnostics

Déterminer si l'IPV6 est activé

Pour déterminer si l'IPV6 est activé, voici 2 méthodes au choix :

Tester l’existence du fichier :

 /proc/net/if_inet6

Si le fichier n’existe pas, IPV6 n’est pas activé/supporté. :-)

Dans un terminal, tapez :

ls -d /proc/net/if_inet6

Si le fichier n'existe pas, vous obtiendrez :

retour de la commande
ls: impossible d'accéder à /proc/net/if_inet6: Aucun fichier ou dossier de ce type

Si le fichier existe, il contient la liste des interfaces réseaux pour lesquelles le protocole est supporté. Par exemple :

cat /proc/net/if_inet6
retour de la commande
fe80000000000000025056fffc00c008 05 40 20 80   vmnet8
00000000000000000000000000000001 01 80 10 80       lo
fe80000000000000025056fffec00001 04 40 20 80   vmnet1
fe80000000000000020cdbfafed3f062 02 40 20 80     eth0

Dans ce second exemple l’IPv6 est supportée par le système et activée pour les interfaces vmware (“vmnet8″, “vmnet1″) ainsi que pour l’interface eth0 et le loopback.

Une autre méthode permettant de voir si l’IPV6 est actif sur l’une des interfaces du système, consiste à rechercher l’adresse IPV6 qui lui est allouée (ligne “inet6 addr:” du retour d’”ifconfig”) ainsi toujours en terminal root :

ifconfig lo
retour de la commande
lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:244 errors:0 dropped:0 overruns:0 frame:0
          TX packets:244 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:21044 (20.5 KiB)  TX bytes:21044 (20.5 KiB)

Ou, avec les outils modernes

ip -6 a
retour de la commande
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qlen 1000
    inet6 fe80::76f0:6dff:fe0c:5ee7/64 scope link 
       valid_lft forever preferred_lft forever

IPv6 et FAI

En 2024, la très grande majorité des FAI en France et en Suisse fournissent de l'IPv6 (pendant que l'IPv4 natif est en train de disparaître en raison de la pénurie totale d'adresses depuis déja quelques années maintenant).

Ils proposent l'IPv6 sans surcoût. Il faut parfois l'activer dans la console de gestion en ligne ou dans la box fournie par l'opérateur

Trucs et astuces

Tester la connectivité avec ping6

L'utilitaire ping6 fonctionne comme ping, mais utilise ipv6 et non ipv4 pour envoyer ses requêtes ICMP.

Désactiver IPV6

Attention, dans la plupart des cas cette opération n'améliorera en rien les performances de votre machine. Elle rendra simplement certaines machines (sans ipv4) inaccessibles.

Vous pouvez désactiver l’IPV6 en utilisant les fichiers de “/proc/sys” (pseudo système de fichier permettant de modifier dynamiquement les paramètres du noyau).L’IPV6 est géré via l’arborescence “net/ipv6/conf” de ce répertoire :

ls /proc/sys/net/ipv6/conf
retour de la commande
all  default  eth0  lo  vboxnet0  vmnet1  vmnet8

Nous trouvons dans le répertoire le paramétrage des différentes interfaces réseau du système :

  1. par défaut pour d’éventuelles nouvelles interfaces (default)
  2. générale (all)

Dans chaque répertoire, sont placés des fichiers destinés à configurer les paramètres ipv6. Celui qui nous intéresse pour la désactivation du protocole est “disable_ipv6″.

interface

Si IPV6 est activé sur une interface, “disable_ipv6″ du répertoire de l’interface contient la valeur “0″, sinon, il contient “1″.

Pour désactiver l’IPV6 sur une interface, Il nous faudra passer à “1″ le contenu de son fichier :

 /proc/sys/net/ipv6/conf/$IFACE/disable_ipv6

La modification prend effet immédiatement.

Exemple, vérifions par les 2 commandes suivantes que l'IPV6 est activé sur lo :

cat /proc/sys/net/ipv6/conf/lo/disable_ipv6 
retour de la commande
 0
cat /proc/net/if_inet6 | grep lo
00000000000000000000000000000001 01 80 10 80       lo

Modifions le fichier fatal if_inet6 :

echo 1 > /proc/sys/net/ipv6/conf/lo/disable_ipv6

Nous vérifions qu’il a bien disparu des interface IPV6 :

cat /proc/net/if_inet6 | grep lo

Dans cet exemple nous avons désactivé le support en passant à 1 le contenu de /lo/disable_ipv6 comme l'indique la commande :

cat /proc/sys/net/ipv6/conf/lo/disable_ipv6
retour de la commande
1

Toutes interfaces

testé par smolski le 23/11/2012 à 11h48

Pour désactiver l’IPV6 sur toutes les interfaces de la machine, passer à “1″ le contenu de :

 /proc/sys/net/ipv6/conf/all/disable_ipv6

et de :

 /proc/sys/net/ipv6/conf/default/disable_ipv6

(politique par défaut)

Par sécurité, afin d’éviter qu’une configuration par défaut soit appliquée aux interfaces, mettez également à 0 2)les paramètres de configuration automatique de l’IPV6 /proc/sys/net/ipv6/conf/all/autoconf et /proc/sys/net/ipv6/conf/default/autoconf

Voici les commandes successives qui le permettent à exécuter toujours en root :

echo 1 > /proc/sys/net/ipv6/conf/all/disable_ipv6
echo 0 > /proc/sys/net/ipv6/conf/all/autoconf
echo 1 > /proc/sys/net/ipv6/conf/default/disable_ipv6
echo 0 > /proc/sys/net/ipv6/conf/default/autoconf

Le résultat est immédiat :

cat /proc/net/if_inet6

Le fichier est vide.

Références

Source fournis par Frenesik sur l'irc
(que mille printemps le baignent lui et sa descendance de fleurs parfumées…) :

:-P :-P :-P

1)
N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !
2)
le chiffre zéro