web-dev-qa-db-fra.com

Désactiver IPv6 sur une seule interface

Je suis un peu surpris par le fait qu'Ubuntu ne traite pas le protocole DHCP d'ipv4 à moins que vous le lui indiquiez explicitement, mais qu'il accepte volontiers les agents de gestion d'ipv6 à moins que vous ne le lui disiez pas. Existe-t-il un moyen de changer le comportement par défaut en "Ne rien faire à moins que je ne l'active explicitement"?

(Note aux répondeurs: je ne cherche pas à désactiver globalement ipv6, ni à désactiver complètement autoconf. Je cherche à désactiver autoconf par défaut (comme dans, je ne veux pas ipv6 sauf si je dis Donc, dans/etc/network/interfaces, de la même manière que je n’obtiens pas une adresse v4 à moins d’avoir explicitement activé dhcp). une adresse v6 a également tendance à apparaître sur l'interface, malgré le fait que je ne l'ait pas explicitement activé. Les solutions à ce jour sont satisfaisantes, mais si je désactive v6 ou autoconf globalement, je peux " Puis réactivez v6 interface par interface avec une simple commande dans/etc/network/interfaces. Je suis à peu près sûr de demander la lune sur un bâton, remarquez.)

9
ijw

Semblable à, mais différent de l’une des autres réponses, j’ai essayé cela avec beaucoup de joie:

Ajoutez un fichier sysctl dans /etc/sysctl.d pour désactiver ipv6 - pas de manière universelle, mais comme état d’interface par défaut:

net.ipv6.conf.default.disable_ipv6=1

Ensuite, dans le fichier d'interfaces et pour les seules interfaces sur lesquelles vous souhaitez activer ipv6, ajoutez:

iface eth0 inet dhcp # .. or whatever
up sysctl -w net.ipv6.conf.$IFACE.disable_ipv6=0

... ainsi, les interfaces ne reçoivent pas les adresses IPv6 lorsqu'elles apparaissent (comme actuellement), mais peuvent être persuadées de les avoir dans des cas spécifiques. Vous pouvez sans doute désactiver les RA avant d'activer ipv6 si c'est ce que vous vouliez aussi.

NB: je suppose que vous rencontrerez des problèmes avec VLAN interfaces nommées (par exemple, eth0.100) et que vous devrez l'énoncer dans la commande "up" sous la forme "eth0/100" plutôt que $ IFACE, qui aura le mauvais format - je n'ai pas testé, mais cela semble être ainsi que sysctl voit le monde.

1
ijw

Autoconf fait partie des fonctionnalités de base d'IPv6. Les annonces RA ne sont pas DHCP et le serveur RA n'attribue pas d'adresses. RA est beaucoup plus proche de la configuration automatique IPv4 effectuée sur la plage 169.254.0.0/16 IP. Si la confidentialité est activée, votre adresse IPv6 changera avec le temps. Votre ancienne adresse sera retirée et éventuellement supprimée.

Vous pouvez facilement désactiver ipv6 autoconf avec la commande suivante:

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

Substituez all avec le nom d'interface pour désactiver une interface. Remplacez autoconf par disable_ipv6 pour désactiver IPv6. Créez un fichier dans /etc/sysctl.d avec les affectations de variable auxquelles vous souhaitez appliquer le paramètre lors du démarrage.

Pour trouver tous les paramètres liés à ipv6, exécutez la commande:

Sudo sysctl -a | grep ipv6 | less
7
BillThor

Pour vérifier si IPv6 est activé ou désactivé

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

0 signifie qu’il est activé et 1 est désactivé.

Pour désactiver IPv6

$ su -
# nano /etc/sysctl.conf

et ajoutez ces lignes au fichier sysctl.conf

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

Enregistrez le fichier sysctl.conf avec une nouvelle configuration, puis redémarrez votre système.

# reboot

Vérifiez à nouveau votre système

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

Maintenant, vous devriez voir "1" signifie que IPv6 a été désactivé sur votre système.

De http://namhuy.net/1419/disable-ipv6-ubuntu-linux-mint.html

3
user223973