Desabilitando o IPv6 em uma única interface

9

Estou um pouco desconcertado com o fato de o Ubuntu não processar o DHCP do ipv4, a menos que você o indique explicitamente, mas terá prazer em usar RAs do ipv6, a menos que você o solicite. Existe alguma maneira de mudar o comportamento padrão para 'não fazer nada, a menos que eu o ligue explicitamente'?

(Observação para os respondentes: não estou procurando desabilitar o ipv6 globalmente ou desabilitar completamente o autoconf. Estou procurando desabilitar o autoconf por padrão (como em, não quero o ipv6, a menos que seja dito em / etc / network / interfaces, da mesma maneira que eu não obtenho apenas um endereço v4, a menos que eu tenha ativado explicitamente o dhcp.) O que está acontecendo é que, para qualquer interface ativada - por exemplo, tem uma configuração ipv4 - um endereço v6 tende a também na interface, apesar de eu não ter ativado isso explicitamente.As soluções até o momento são boas, mas se eu desabilitar a v6 ou o autoconf globalmente, não será possível reativar a v6 em uma base por interface com um simples comando em / etc / network / interfaces. Tenho quase certeza de que estou pedindo a lua no palito, lembre-se.)

ijw
fonte
11
Aqui está um link sobre como desativar o ipv6. Eu não tentei eu mesmo. Deixe meu saber se ele funciona: Como desabilitar o IPv6 no Ubuntu
BiggJJ
3
Provavelmente sim, mas não quero desabilitar o ipv6, apenas evite a configuração automática nas interfaces, a menos que eu queira especificamente que elas sejam configuradas automaticamente.
IJw

Respostas:

9

Autoconf em parte da funcionalidade básica do IPv6. Os anúncios de RA não são DHCP e o servidor RA não atribui endereços. O RA está muito mais próximo da configuração automática do IPv4 feita no intervalo de IP 169.254.0.0/16. Se a privacidade estiver ativada, seu endereço IPv6 mudará com o tempo. Seu endereço antigo será aposentado e, eventualmente, removido.

Você pode desativar o ipv6 autoconf facilmente com o comando:

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

Substitua allpelo nome da interface para desativar uma interface. Substitua autoconfpor disable_ipv6para desativar o IPv6. Crie um arquivo /etc/sysctl.dcom as atribuições de variáveis ​​nas quais você deseja aplicar a configuração durante a inicialização.

Para encontrar todas as configurações relacionadas ao ipv6, execute o comando:

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

Para verificar se o IPv6 está ativado ou desativado

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

0 significa que está ativado e 1 está desativado.

Para desativar o IPv6

$ su -
# nano /etc/sysctl.conf

e inclua essas linhas no arquivo 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

Salve o arquivo sysctl.conf com a nova configuração e reinicie o sistema

# reboot

Verifique seu sistema novamente

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

Agora você deve ver "1" significa que o IPv6 foi desativado no seu sistema.

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


fonte
Trabalhou para mim. No CentOS, pelo menos, você pode executar "sudo sysctl -p" para recarregar sem reiniciar
Código Wiget
2

Semelhante a, mas diferente de uma das outras respostas, tentei isso com muita alegria:

Adicione um arquivo sysctl em /etc/sysctl.d para desativar o ipv6 - embora não universalmente, apenas como um estado padrão da interface:

net.ipv6.conf.default.disable_ipv6=1

Em seguida, no arquivo de interfaces e apenas para as interfaces nas quais você deseja ter o ipv6, adicione:

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

... portanto, as interfaces não recebem endereços IPv6 quando são exibidas (como atualmente), mas podem ser persuadidas a tê-los em casos específicos. Sem dúvida, você pode desativar os RAs antes de ativar o ipv6, se é isso que você também deseja.

NB: Eu suspeito que você terá problemas com as interfaces nomeadas da VLAN (por exemplo, eth0.100) e precisará explicitar isso no comando 'up' como 'eth0 / 100' em vez de $ IFACE, que terá o formato errado - Eu não testei, mas parece que o sysctl vê o mundo.

ijw
fonte