web-dev-qa-db-fra.com

Comment désactiver l'autoconfiguration sur IPv6 sous Linux?

Comment puis-je désactiver définitivement l'autoconfiguration de IPv6 à Linux? Lorsque j'essaie de supprimer manuellement une adresse d'une interface avec:

ip -6 addr del 2001:0db8:85a3:0000:0000:8a2e:0370:7334/64 dev eth1

Il réapparaîtra quelques secondes plus tard, je veux que ce soit parti de façon permanente, mais sans désactiver IPv6 tous ensemble.

23
Grumbel

La configuration automatique peut être désactivée temporaire pour Eth1 avec:

Sudo sysctl -w net.ipv6.conf.eth1.autoconf=0
[.____] Sudo sysctl -w net.ipv6.conf.eth1.accept_ra=0

ou pour toutes les interfaces avec:

Sudo sysctl -w net.ipv6.conf.all.autoconf=0
[.____] Sudo sysctl -w net.ipv6.conf.all.accept_ra=0

Rénovation fonctionne en utilisant 1 au lieu de 0 dans l'appel.

La désactivation de celui-ci peut être effectuée en permanence avec une entrée à /etc/sysctl.conf. Sur Debian Echch (probablement plus récent aussi), sans régler le accept_ra, le système sera autoconfigure à l'aide de l'adresse locale de liaison (fe80..)

Comme la GART mentionnée ci-dessous, la configuration automatique de l'adresse et la découverte de routeur seront désactivées si l'hôte lui-même est un routeur et accept_ra n'est pas 2, c'est à dire

net.ipv6.conf.<iface|all|default>.forwarding=1

et

net.ipv6.conf.<iface|all|default>.accept_ra=0 ou alors net.ipv6.conf.<iface|all|default>.accept_ra=1.

iface est votre interface

22
Grumbel
Sudo sysctl -w net.ipv6.conf.all.autoconf=0

Cela n'a pas fonctionné pour moi sur Debian Wheezy. Après avoir examiné /etc/sysctl.conf, j'ai besoin d'utiliser

Sudo sysctl -w net.ipv6.conf.default.autoconf=0
3
Nick B.

Le problème avec Ubuntu 18 et IPv6 est que SystemD-Networkd contrôle les paramètres du noyau, bien que l'on puisse désactiver IPv6 avec SYSCTL, NetworkD sera plus qu'heureux de les commuter pour vous, si la configuration n'indique pas autrement.

Ma solution pour désactiver IPv6 consiste à configurer Link-local dans NetPlan vers un scalaire vide (à condition que vous n'ayez pas d'IPv4 Link-local IPV)

network:
     version: 2
     renderer: networkd
     ethernets:
     eth0:
        ..
        link-local: [ ]

La configuration compilera la configuration pour NetworkD qui sera affichée dans /Run/systemd/network/10-netplan-eth0.network et convaincre NetworkD de ne pas mettre en place IPv6 pour Eth0.

Si vous souhaitez désactiver la désactivation IPv6 également sur le bouclage, il est facilement obtenu en définissant le paramètre noyau net.ipv6.conf.all.disable_ipv6 à 1. NetworkD ne semble pas contrôler la boucle.

sysctl -w net.ipv6.conf.all.disable_ipv6=1
2
Daniel