¿Cómo deshabilitar ipv6 en una interfaz específica en Linux?

24

¿Alguien podría decirme cómo deshabilitar la configuración automática de ipv6 en una interfaz de red específica en CentOS?

La situación actual es:

Una PC tiene dos adaptadores de red eth0 y eth1 que se conectan a la misma LAN, en la cual, el enrutador IPv6 anuncia un prefijo IPv6 con el paquete NDRA (Anuncios de enrutador de descubrimiento de vecinos). Como resultado, eth0 y eth1 están configurando la dirección IPv6 con ese prefijo automáticamente.

Pero, solo quiero habilitar ipv6 en eth1 y deshabilitarlo en eth0. He intentado los siguientes métodos, pero no funcionan.

1. / etc / sysconfig / network

NETWORKING_IPV6=no
IPV6_AUTOCONF=no

Esto deshabilitará ipv6 en eth0 y eth1.

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

IPV6INIT=no
IPV6_AUTOCONF=no

Entonces, no funciona. Ya he reiniciado el servicio de red. Estoy un poco confundido sobre este tema. Gracias de antemano.

Yves Messi
fuente
1
sysconfig.txt definitivamente implica que lo que ha hecho debe deshabilitar IPv6 en una interfaz específica. Sin embargo, parece que esas banderas se ignoran. Hay dos informes de errores sobre esto, que también fueron ignorados. Ver bugzilla.redhat.com/show_bug.cgi?id=982740 y bugzilla.redhat.com/show_bug.cgi?id=496444
Stefan Lasiewski el

Respuestas:

41

Puede deshabilitarlo desde /etc/sysctl.conf con esta línea:

net.ipv6.conf.eth0.disable_ipv6 = 1

Eche un vistazo a / proc / sys / net / ipv6 / conf / eth0. Hay muchas opciones que puede configurar en ese directorio, como dejar habilitado IPv6 pero deshabilitar la configuración automática, etc.

Sander Steffann
fuente
44
FYI para aquellos que buscan deshabilitar todo, no solo una interfaz, simplemente reemplace "eth0" con "all"
Peter
1
En realidad, en lugar de modificar /etc/sysctl.conf, cree un archivo con /etc/sysctl.dnombre, por ejemplo, 00_ipv6_off.confcon los contenidos anteriores. ifconfigluego mostrará interfaces sin funcionalidad de IPv6.
David Tonhofer
En una línea: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

desaprobado

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

Para garantizar que este cambio persista durante los reinicios, querrás agregar esta línea a tu /etc/sysctl.confarchivo:

net.ipv6.conf.eth0.disable_ipv6=1

Tenga en cuenta que el uso del /etc/sysconfig/network-scripts/ifcfg-eth0archivo no es portátil.

cjac
fuente
3

Debe ser root para establecer el parámetro de red a continuación:

echo 1 > /proc/sys/net/ipv6/conf/wlan0/disable_ipv6
mgundes
fuente
Esto también funcionará en los instaladores, si un instalador de Debian se está atascando al detectar la configuración de red. Vaya a la consola (alt + 2) y escriba este comando. Regrese al instalador. Presione Ctrl + C para salir de la detección y reinicializar la detección de la red.
lsu_guy
1

El uso de las siguientes variables en ifcfg-eth0 o ifcfg-eth1:

IPV6INIT=no
IPV6_AUTOCONF=no

Debería hacer el truco. Reiterar:

/ 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

Luego, asegúrese de reiniciar el servicio de red:

% /etc/init.d/network restart

Si ejecuta ifconfig, debería ver inet6 en el dispositivo ethernet (eth0 o eth1) que tiene habilitado ipv6.

% 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
fuente
Sí, es un poco raro. Establecer "net.ipv6.conf.eth0.disable_ipv6 = 1" es una buena solución. Gracias por tu respuesta.
Yves Messi
1
Hmmmm, no hice sentadillas en mi sistema (RH 6.5 X86_64 en un entorno virtualizado). Sin embargo, es bueno conocerlas para aquellos sistemas donde funciona.
luis.espinal