Comment désactiver ipv6 sur une interface spécifique sous linux?

24

Quelqu'un pourrait-il me dire comment désactiver la configuration automatique ipv6 sur une interface réseau spécifique dans CentOS?

La situation actuelle est la suivante:

Un PC possède deux adaptateurs réseau eth0 et eth1 qui se connectent au même réseau local, dans lequel le routeur IPv6 publie un préfixe IPv6 avec le paquet NDRA (Neighbour Discovery Router Advertisements). Par conséquent, eth0 et eth1 configurent automatiquement l'adresse IPv6 avec ce préfixe.

Mais, je veux juste activer ipv6 sur eth1 et le désactiver sur eth0. J'ai essayé les méthodes suivantes, mais elles ne fonctionnent pas.

1. / etc / sysconfig / network

NETWORKING_IPV6=no
IPV6_AUTOCONF=no

Cela désactivera ipv6 sur eth0 et eth1.

2. / etc / sysconfig / network-scripts / ifcfg-eth0

IPV6INIT=no
IPV6_AUTOCONF=no

Ensuite, cela ne fonctionne pas. J'ai déjà redémarré le service réseau. Je suis un peu confus à ce sujet. Merci d'avance.

Yves Messi
la source
1
sysconfig.txt implique définitivement que ce que vous avez fait doit désactiver IPv6 sur une interface spécifique. Cependant, il semble que ces indicateurs soient ignorés. Il y a deux rapports de bogues à ce sujet, qui ont également été ignorés. Voir bugzilla.redhat.com/show_bug.cgi?id=982740 & bugzilla.redhat.com/show_bug.cgi?id=496444
Stefan Lasiewski

Réponses:

41

Vous pouvez le désactiver depuis /etc/sysctl.conf avec cette ligne:

net.ipv6.conf.eth0.disable_ipv6 = 1

Jetez un œil à / proc / sys / net / ipv6 / conf / eth0. Il existe de nombreuses options que vous pouvez définir dans ce répertoire, comme laisser IPv6 activé mais désactiver la configuration automatique, etc.

Sander Steffann
la source
4
Pour info pour ceux qui cherchent à désactiver tout, pas seulement une interface, il suffit de remplacer "eth0" par "all"
Peter
1
En fait, au lieu de modifier /etc/sysctl.conf, créez un fichier dans /etc/sysctl.dnamed par exemple 00_ipv6_off.confavec le contenu ci-dessus. ifconfigaffichera alors les interfaces dépourvues de fonctionnalité IPv6.
David Tonhofer
En une seule ligne:echo "net.ipv6.conf.eth0.disable_ipv6 = 1" > /etc/sysctl.d/00_ipv6_off.conf
David Tonhofer
11
$ sudo sysctl -w net.ipv6.conf.eth0.disable_ipv6=1

déprécie

# echo 1 > /proc/sys/net/ipv6/conf/eth0/disable_ipv6

Afin de vous assurer que cette modification persiste lors des redémarrages, vous souhaiterez ajouter cette ligne à votre /etc/sysctl.conffichier:

net.ipv6.conf.eth0.disable_ipv6=1

Notez que l'utilisation du /etc/sysconfig/network-scripts/ifcfg-eth0fichier n'est pas portable.

cjac
la source
3

Vous devez être root pour définir les paramètres réseau ci-dessous:

echo 1 > /proc/sys/net/ipv6/conf/wlan0/disable_ipv6
mgundes
la source
Cela fonctionnera également dans les programmes d'installation, si un programme d'installation Debian est bloqué à détecter les paramètres réseau. Accédez à la console (alt + 2) et tapez cette commande. Revenez au programme d'installation. Appuyez sur Ctrl + C pour quitter la détection et réinitialiser la détection du réseau.
lsu_guy
1

L'utilisation des variables suivantes dans ifcfg-eth0 ou ifcfg-eth1:

IPV6INIT=no
IPV6_AUTOCONF=no

Devrait faire l'affaire. Recommencer:

/ etc / sysconfig / network

NETWORKING_IPV6=yes
IPV6_AUTOCONF=yes

/ etc / sysconfig / network-scripts / ifcfg-eth0

IPV6INIT=no
IPV6_AUTOCONF=no

/ etc / sysconfig / network-scripts / ifcfg-eth0

IPV6INIT=yes
IPV6_AUTOCONF=yes

Assurez-vous ensuite de redémarrer le service réseau:

% /etc/init.d/network restart

Si vous exécutez, ifconfigvous devriez voir inet6 sur le périphérique Ethernet (eth0 ou eth1) sur lequel ipv6 est activé.

% ifconfig eth0
eth0      Link encap:Ethernet  HWaddr 01:26:BD:85:CA:30  
          inet addr:192.168.1.20  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::226:c7ff:fe85:a720/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:2497072 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2253781 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:2004576667 (1.8 GiB)  TX bytes:1296051472 (1.2 GiB)
slm
la source
Oui, c'est un peu bizarre. La définition de "net.ipv6.conf.eth0.disable_ipv6 = 1" est une bonne solution. Merci pour votre réponse.
Yves Messi
1
Hmmmm, je n'ai pas fait de squat sur mon système (RH 6.5 X86_64 sur un environnement virtualisé.) Bon à savoir ceux pour les systèmes où cela fonctionne, cependant.
luis.espinal