Désactiver l'IPv6

From Le Wiki de debian-fr.xyz
Jump to: navigation, search

Désactiver l'IPv6

Selon le changelog des sources de kernel.org le paramètre disable du module ipv6 a été introduit à partir du noyau 2.6.29.

IPv6: add "disable" module parameter support to ipv6.ko

    Add "disable" module parameter support to ipv6.ko by specifying
    "disable=1" on module load.  We just do the minimum of initializing
    inetsw6[] so calls from other modules to inet6_register_protosw()
    won't OOPs, then bail out.  No IPv6 addresses or sockets can be
    created as a result, and a reboot is required to enable IPv6.

D'après le changelog du noyau Debian, le module ipv6 est compilé en dur pour les architectures amd64, i386, powerpc et sparc à partir de la version 2.6.30-1.

* [amd64, i386, powerpc, sparc] Make IPv6 support built-in.

Ce qui signifie que ceux qui compilent leur noyau peuvent le mettre en dur depuis le 2.6.29 (2.6.30-1 pour les autres.)

Pour les noyaux inférieurs à 2.6.30-1

Dé-commenter et Remplacer

alias net-pf-10 ipv6

Par :

alias net-pf-10 off

Dans :

/etc/modprobe.d/aliases (ou /etc/modprobe.d/aliases.conf à partir de squeeze)

Pour les noyaux supérieurs ou égaux à 2.6.30-1

Dans le noyau 2.6.32 Debian l'IPv6 n'est plus compilé en module mais en dur. Donc l'astuce à base de blacklist pour empêcher de charger le module n'a plus d'effet. Heureusement le paramètre "disable" du module ipv6 est disponible à partir du noyau 2.6.29. Il est donc possible d'initialiser les paramètres des modules compilés en dur dans les options de la ligne de commande du noyau au démarrage.

lilo

dans /etc/lilo.conf, ajouter ou modifier l'option append globale avant la déclaration des différents noyaux

append="[paramètres préexistants] ipv6.disable=1"

et exécuter lilo

grub-pc

# nano /etc/default/grub

Changer la ligne GRUB_CMDLINE_LINUX="" en GRUB_CMDLINE_LINUX="ipv6.disable=1"

Enregistrer et fermer le fichier.

# update-grub2

grub-legacy

Ajouter ipv6.disable=1 aux paramètres déjà présents à la ligne commençant par #kopt=. Les paramètres passés au noyau sont indépendants du chargeur.

Puis :

# update-grub

sysctl

Il est possible de désactiver le support ipv6 par la gestion sysctl du système linux. Différentes méthodes existent, l'une étant de modifier le fichier /etc/sysctl.conf pour ajouter :

 net.ipv6.conf.all.disable_ipv6=1
 net.ipv6.conf.default.disable_ipv6=1
 net.ipv6.conf.lo.disable_ipv6=1

Puis de faire lire le fichier par le système, par la commande 'sysctl -w' exécutée avec les droits root.

C'est l'équivalent des commandes suivantes à exécuter en tant que root :

 echo '1' > /proc/sys/net/ipv6/conf/lo/disable_ipv6   
 echo '1' > /proc/sys/net/ipv6/conf/all/disable_ipv6   
 echo '1' > /proc/sys/net/ipv6/conf/default/disable_ipv6

Il peut être intéressant de redémarrer le service de la couche réseau !

Sources

http://www.debian-fr.org/debian-2-6-32-5-686-disable-ipv6-t30054.html

http://www.debian-fr.org/digression-debian-2-6-32-5-686-disable-ipv6-t30055.html

http://www.debian-fr.org/blacklist-ipv6-t20222.html