Sysctl IPv6 desactiva la configuración automática para todas las interfaces que no funcionan

Sysctl IPv6 desactiva la configuración automática para todas las interfaces que no funcionan

Estoy intentando desactivar la configuración automática de IPv6 para todas mis interfaces (tengo 4). Quiero usar

net.ipv6.conf.all.autoconf = 0

En la configuración de my sysctl (en /etc/sysct.d), pero la configuración no se aplica a ninguna interfaz, sin embargo, para el net.ipv6.conf.all.autoconfparámetro funciona, por lo que ejecuta el siguiente comando: `

sysctl -a | grep "net\.ipv6\.conf" | grep "autoconf"

net.ipv6.conf.all.autoconf = 0
net.ipv6.conf.eth0.autoconf = 1
net.ipv6.conf.eth1.autoconf = 1
net.ipv6.conf.eth2.autoconf = 1
net.ipv6.conf.eth3.autoconf = 1

Luego probé con la configuración sobre la marcha con

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

Pero tampoco está funcionando. ¿Conoce alguna solución para esto? Las razones por las que no quería hacerlo una por una ( net.ipv6.conf.eth3.autoconf = 0manualmente), porque a veces también tengo más interfaces (simplemente no siempre están conectadas)

Respuesta1

TL;DR

for sInterface in /proc/sys/net/ipv6/conf/*; do sysctl --write $(echo $sInterface.autoconf=0 | sed "s#/#.#g" | sed "s/.proc.sys.//g"); done

Deberías hacerlo.

La versión larga:

  • sysctlen realidad cambia el contenido del archivo en/proc/sys
  • net.ipv6.conf.all.autoconfpor lo tanto está ubicado físicamente en/proc/sys/net/ipv6/conf/all/autoconf
  • así que iteramos sobre/proc/sys/net/ipv6/conf/
  • cambiamos todo /a .usar sedusando el #separador
  • Eliminamos .proc.sys.de la cadena nuevamente usando sedel separador estándar /.
  • agregamos .autoconf=0a la interfaz
  • y aplicar consysctl --write $()

Nota:Si no estás corriendo como rootdeberías hacer en sudo sysctl --write $()su lugar...

información relacionada