Sysctl IPv6 desabilita autoconfig para todas as interfaces que não funcionam

Sysctl IPv6 desabilita autoconfig para todas as interfaces que não funcionam

Estou tentando desativar a configuração automática de IPv6 para todas as minhas interfaces (tenho 4). Eu quero usar

net.ipv6.conf.all.autoconf = 0

Na configuração do meu sysctl (em /etc/sysct.d) Mas as configurações não se aplicam a nenhuma interface, porém para o net.ipv6.conf.all.autoconfparâmetro funciona, então execute o seguinte 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

Então tentei com a configuração on the fly com

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

Mas nem está funcionando. Você conhece alguma solução alternativa para isso? As razões pelas quais eu não queria fazer isso uma por uma ( net.ipv6.conf.eth3.autoconf = 0manualmente), porque às vezes eu tenho mais interfaces também (elas nem sempre estão conectadas)

Responder1

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

deveria fazer isso.

A versão longa:

  • sysctlrealmente altera o conteúdo do arquivo em/proc/sys
  • net.ipv6.conf.all.autoconfestá, portanto, fisicamente localizado em/proc/sys/net/ipv6/conf/all/autoconf
  • então nós iteramos/proc/sys/net/ipv6/conf/
  • mudamos tudo /para .using sedusando o #separador
  • removemos .proc.sys.da string novamente usando sedo separador padrão /.
  • nós adicionamos .autoconf=0à interface
  • e aplique comsysctl --write $()

Observação:Se você não estiver correndo como rootdeveria, faça um sudo sysctl --write $()...

informação relacionada