Deshabilitar IPv6 en una sola interfaz

9

Me asombra un poco el hecho de que Ubuntu no procesará DHCP ipv4 a menos que se lo indique explícitamente, pero felizmente tomará RA de ipv6 a menos que se lo indique. ¿Hay alguna forma de cambiar el comportamiento predeterminado para que sea 'no hacer nada a menos que lo active explícitamente'?

(Nota para los que responden: no estoy buscando deshabilitar globalmente ipv6, o desactivar completamente la autoconf. Estoy buscando deshabilitar autoconf por defecto (como en, no quiero ipv6 a menos que lo diga en / etc / network / interfaces, de la misma manera que no solo obtengo una dirección v4 a menos que haya activado explícitamente dhcp. Lo que sucede es que, para cualquier interfaz que esté activa, por ejemplo, tiene una configuración de ipv4, una dirección v6 tiende a cambiar también en la interfaz, a pesar del hecho de que no lo he habilitado explícitamente. Las soluciones hasta la fecha están bien en la medida de lo posible, pero si deshabilito v6 o autoconf globalmente, no puedo volver a habilitar v6 en por interfaz con un comando simple en / etc / network / interfaces. Estoy bastante seguro de que estoy pidiendo la luna en un palo, claro está.)

ijw
fuente
1
Aquí hay un enlace sobre cómo deshabilitar ipv6. No lo he intentado yo mismo. Avíseme si funciona: Cómo deshabilitar IPV6 en Ubuntu
BiggJJ
3
Probablemente sí, pero no quiero deshabilitar ipv6, solo evitar la configuración automática en las interfaces a menos que específicamente me gustaría configurarlas automáticamente.
ijw

Respuestas:

9

Autoconf en parte de la funcionalidad básica de IPv6. Los anuncios RA no son DHCP y el servidor RA no asigna direcciones. RA está mucho más cerca de la configuración automática de IPv4 realizada en el rango de IP 169.254.0.0/16. Si la privacidad está habilitada, su dirección IPv6 cambiará con el tiempo. Su dirección anterior será retirada y eventualmente eliminada.

Puede deshabilitar ipv6 autoconf fácilmente con el comando:

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

Sustituya allcon el nombre de la interfaz para deshabilitar una interfaz. Reemplace autoconfcon disable_ipv6para deshabilitar IPv6. Cree un archivo /etc/sysctl.dcon las asignaciones variables a las que desea aplicar la configuración durante el inicio.

Para encontrar todas las configuraciones relacionadas con ipv6, ejecute el comando:

sudo sysctl -a | grep ipv6 | less
BillThor
fuente
4

Para verificar si IPv6 está habilitado o deshabilitado

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

0 significa que está habilitado y 1 está deshabilitado.

Para deshabilitar IPv6

$ su -
# nano /etc/sysctl.conf

y agregue estas líneas al archivo 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

Guarde el archivo sysctl.conf con una nueva configuración, luego reinicie su sistema

# reboot

Verifique su sistema nuevamente

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

Ahora debería ver "1" significa que IPv6 ha sido deshabilitado en su sistema.

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


fuente
Trabajó para mi. Al menos en Centos, puede ejecutar "sudo sysctl -p" para recargar sin reiniciar
Code Wiget
2

Similar a, pero diferente de, una de las otras respuestas, probé esto con mucha alegría:

Agregue un archivo sysctl en /etc/sysctl.d para deshabilitar ipv6, aunque no universalmente, solo como un estado predeterminado de la interfaz:

net.ipv6.conf.default.disable_ipv6=1

Luego, en el archivo de interfaces y solo para las interfaces en las que desea tener ipv6, agregue:

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

... por lo tanto, las interfaces no obtienen direcciones IPv6 cuando aparecen (como en la actualidad) pero pueden ser persuadidas de tenerlas en casos específicos. Sin duda, podría deshabilitar RA antes de habilitar ipv6 si eso es lo que deseaba también.

NB: sospecho que tendrá problemas con las interfaces con nombre de VLAN (por ejemplo, eth0.100) y tendrá que explicarlo en el comando 'up' como 'eth0 / 100' en lugar de $ IFACE, que tendrá el formato incorrecto - No lo he probado, pero parece que así es como sysctl ve el mundo.

ijw
fuente