Debian 7 como os endereços locais de links IPv6 são definidos?

10

Parece que quando o dhclient é executado na eth0 eu recebo um endereço IPv4 do servidor DHCP e um escopo: Link IPv6 address attached to eth0:

inet6 addr: fe80::a00:27ff:fed0:4d41/64 Scope:Link

Mas não consigo ver no script do dhclient como esse endereço está sendo adicionado. Em outra interface com um endereço IP estático, gostaria de adicionar um link ao endereço IPv6 local, e fiquei me perguntando se havia um comando genérico para fazer isso sem conhecer o mac.

Editar:
Parece que o kernel atribui o endereço local do link quando você faz "ip link set dev ethX up" ou "ifconfig ethX up". No entanto, no meu caso, eu tinha um cabo conectado à interface que era DHCP'ing e nenhum cabo conectado à interface que eu estava configurando estaticamente. Não é possível verificar até segunda-feira, mas acredito que o kernel não atribua endereços locais de link à interface, se não houver um link.

    
por Aaron 20.07.2013 / 03:35

2 respostas

6

Os endereços locais de links são derivados do endereço MAC do dispositivo. Eles são gerados automaticamente como parte da atualização da interface. A configuração automática inclui um processo de descoberta para garantir que o endereço seja exclusivo na rede.

Um processo semelhante é usado para configurar automaticamente endereços roteáveis quando um anúncio de roteador está disponível. Esses endereços podem ser regenerados periodicamente para fornecer privacidade.

RFC 4862 especifica os processos a serem seguidos.

    
por 20.07.2013 / 05:26
6

Encontrou! Este comando não é suficiente:

ifconfig eth0 up

Em vez disso, devo fazer:

ifconfig eth0 up
sysctl -w net.ipv6.conf.eth0.disable_ipv6=0

Somente o último restaura o endereço local do link IPv6 na eth0.

Em outras palavras, minha distro parece ter algum código escondido em algum lugar que muda dinamicamente net.ipv6.conf.eth0.disable_ipv6 toda vez que é solicitado que a rede seja ativada ou desativada. Sua milhagem pode variar.

Eu cheguei ao fundo disso graças a um mero:

sysctl -a | grep ipv6
    
por 13.01.2015 / 01:47