Désactiver IPv6 sur Linux (Debian)

Rédigé par O. Clotaire Aucun commentaire Fil RSS des articles
Classé dans : Linux, Réseau Mots clés : Linux, IP, Script,
IPv6

L'Internet, utilise encore la version 4 du Protocol IP, IPv4. IPv6 permet de régler les problèmes du nombre d'adresse IP insuffisant, de sécurité, de qualité de service, etc. L'IPv6 est donc le meilleur choix, mais certains logiciels ne supportent que l'IPv4, vous pouvez donc être amené à désactiver l'IPv6. 
De plus, j'utilise un script au démarrage qui me permet de connaitre l'adresse IP de mon Raspberry Pi, et l'IPv4 est plus facile à retenir.

Mon script pour afficher mon adresse IP est dans le fichier rc.local :
# Affiche l'adresse IP
_IP=$(hostname -I) || true
if [ "$_IP" ]; then
printf "Mon adresse IP est %s\n" "$_IP"
fi

Le problème est que l'IPv6 n'est pas pratique à mémoriser... Essayez de retenir 2017:abba:dead:beaf:ba27:ebaf:fe01:ab97/64.

Pour moi désactiver l'IPv6 me permet de pouvoir mémoriser facilement une adresse comme 192.168.00.7 (IPv4).

On va donc commencer par vérifier si IPv6 est actif avant de le désactiver :
$ ifconfig
eth0 Link encap:Ethernet HWaddr uu:vv:ww:xx:yy:zz 
inet adr:192.168.0.7 Bcast:192.168.0.255 Masque:255.255.255.0
adr inet6: 2017:abba:dead:beaf:ba27:ebaf:fe01:ab97/64 Scope:Global
adr inet6: fe80:fead:c001:baac:baab:bead:fe01:ab97/64 Scope:Lien
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1050 errors:0 dropped:0 overruns:0 frame:0
TX packets:129 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 lg file transmission:1000
RX bytes:58627 (57.2 KiB) TX bytes:12689 (12.3 KiB)

Ci-dessus, on voit deux instructions inet6 pour l’interface eth0.

ou la commande plus ciblée :
$ ifconfig | grep inet6
adr inet6: 2a01:e35:beef:3950:ba27:ebff:fe45:ab98/64 Scope:Global
adr inet6: fe80::ba27:beaf:fe45:ab98/64 Scope:Lien

ou encore :
$ more /proc/net/if_inet6
00000000000000000000000000000001 01 80 10 80 lo
2017abbadeadbeafba27ebaffe01ab97 02 40 00 00 eth0
fe80feadc001baacbaabbeadfe01ab97 02 40 20 80 eth0
fe80feadc001baca5ab1e5eadfe01ab9 03 40 20 c0 wlan0


Ci-dessus, on voit qu’il y a des instructions IPv6 pour le loopback (lo), les interfaces eth0 (RJ45) et wlan0 (Wifi).

Ensuite on va désactiver IPv6 avec la méthode SYSCTL en passant plusieurs instructions :

On désactive IPv6 pour toutes les interfaces :

$ sudo sysctl -w net.ipv6.conf.all.disable_ipv6=1
net.ipv6.conf.all.disable_ipv6 = 1

On désactive l’auto configuration pour toutes les interfaces :
$ sudo sysctl -w net.ipv6.conf.all.autoconf=0
net.ipv6.conf.all.autoconf = 0

On désactive IPv6 de la configuration par défaut :
$ sudo sysctl -w net.ipv6.conf.default.disable_ipv6=1
net.ipv6.conf.default.disable_ipv6 = 1

On désactive l’auto configuration par défaut :
$ sudo sysctl -w net.ipv6.conf.default.autoconf=0
net.ipv6.conf.default.autoconf = 0

Vérifier que inet6 n’apparaît plus avec :
$ ifconfig
eth0 Link encap:Ethernet HWaddr uu:vv:ww:xx:yy:zz
inet addr:192.168.0.7 Bcast:192.168.0.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:14676 errors:0 dropped:2 overruns:0 frame:0
TX packets:1464 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1001013 (977.5 KiB) TX bytes:148862 (145.3 KiB)

lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)

vérifier que le fichier est vide est vide :
$ more /proc/net/if_inet6

Enregistrer ces instructions dans le fichier /etc/sysctl.conf en vérifiant qu’il n’y a pas déjà des instructions dans ce fichier :
# désactivation de ipv6 pour toutes les interfaces 
net.ipv6.conf.all.disable_ipv6 = 1

# désactivation de l’auto configuration pour toutes les interfaces 
net.ipv6.conf.all.autoconf = 0

# désactivation de ipv6 pour les nouvelles interfaces (ex:si ajout de carte réseau) net.ipv6.conf.default.disable_ipv6 = 1 

# désactivation de l’auto configuration pour les nouvelles interfaces 
net.ipv6.conf.default.autoconf = 0

Pour que les modifications soient prises en compte immédiatement :

# sysctl -p 
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.all.autoconf = 0 
net.ipv6.conf.default.disable_ipv6 = 1 
net.ipv6.conf.default.autoconf = 0


Commenter les instructions IPv6 du fichier /etc/network/interfaces :
$ sudo nano /etc/network/interfaces

# more /etc/network/interfaces 
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
    address 91.121.196.109
    netmask 255.255.255.0
    network 91.121.196.0
    broadcast 91.121.196.255
    gateway 91.121.196.254
#iface eth0 inet6 static
#    address 2001:41D0:1:CD6b::1
#    netmask 128
#    post-up /sbin/ip -f inet6 route add 2001:41D0:1:CDef:ff:ff:ff:ff dev eth0
#    post-up /sbin/ip -f inet6 route add default via 2001:41D0:1:Ceff:ff:ff:ff:ff
#    pre-down /sbin/ip -f inet6 route del default via 2001:41D0:1:Ceff:ff:ff:ff:ff
#    pre-down /sbin/ip -f inet6 route del 2001:41D0:1:Ceff:ff:ff:ff:ff dev eth0

Une dernière vérification :
$ netstat -a

Puis un redémarrage :
$ sudo reboot

Remerciement à Pol.

A PROPOS

  • Grace à mon expérience dans les Systèmes d'Information, j'ai le privilège de partager mon expérience en les centralisant sous la forme d’une base de connaissance.
  • Parfois certaines de nos questions ne trouvent pas toujours de réponse. Le domaine de l’informatique évolue rapidement, il est alors important de pouvoir profiter des solutions déjà expérimentés.
  • Ce site sera de plus en plus accessible.
  • Je vous remercie d’avance pour vos éventuelles remarques constructives permettant son amélioration.

Écrire un commentaire

 Se rappeler de moi sur ce site
Quelle est la première lettre du mot blqs ?

Fil RSS des commentaires de cet article

↓