Desabilitando o IPv6 em uma única interface

8

Estou um pouco incomodado com o fato de que o Ubuntu não processará o DHCP ipv4 a menos que você explique explicitamente, mas ficará feliz em receber RAs do ipv6, a menos que você diga que não. Existe alguma maneira de alterar o comportamento padrão para 'não fazer nada a menos que eu o ative explicitamente'?

(Nota aos respondentes: Eu não estou olhando para desabilitar globalmente ipv6, ou desligar completamente o autoconf. Eu estou olhando para desabilitar o autoconf por padrão (como em, eu não quero ipv6 a menos que eu diga em / etc / network / interfaces, da mesma forma que eu não obtenho apenas um endereço v4 a menos que eu tenha explicitamente ativado o dhcp.) O que está acontecendo é que, para qualquer interface - por exemplo, tem um ipv4 config - um endereço v6 tende a aparecer na interface também, apesar do fato de que eu não habilitei isso explicitamente.As soluções até o momento estão bem, mas se eu desabilitar v6 ou autoconf globalmente, Eu não posso então reativar a v6 em uma base por interface com um comando simples em / etc / network / interfaces. Tenho certeza que estou pedindo a lua em uma vara, lembre-se você.)

    
por ijw 05.07.2013 / 01:04

3 respostas

1

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

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

net.ipv6.conf.default.disable_ipv6=1

Então, no arquivo de interfaces e somente para as interfaces que você deseja ter o ipv6, adicione:

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

... assim, as interfaces não recebem endereços IPv6 quando aparecem (como atualmente), mas podem ser persuadidas a tê-los em casos específicos. Você poderia, sem dúvida, desabilitar os RAs antes de ativar o ipv6, se é isso que você queria também.

NB: Eu suspeito que você vai encontrar problemas com VLAN chamadas interfaces (por exemplo, eth0.100) e terá que soletrar 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.

    
por ijw 01.06.2014 / 17:40
6

Autoconf em parte da funcionalidade básica do IPv6. 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 169.254.0.0/16 IP. 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 autoconf ipv6 facilmente com o comando:

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

Substitua all pelo nome da interface para desativar uma interface. Substitua autoconf por disable_ipv6 para desativar o IPv6. Crie um arquivo em /etc/sysctl.d com as atribuições de variáveis que você deseja que a configuração seja aplicada durante a inicialização.

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

sudo sysctl -a | grep ipv6 | less
    
por BillThor 05.07.2013 / 01:32
2

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 adicione essas linhas ao 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ê verá "1" significa que o IPv6 foi desativado em seu sistema.

De link

    
por user223973 23.12.2013 / 05:24