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

12

Parece que quando o dhclient é executado no eth0, recebo um endereço IPv4 do servidor DHCP e um escopo: Endereço IPv6 de link anexado ao eth0:

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

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

Edit:
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 estava em DHCP e nenhum cabo conectado à interface que eu estava configurando estaticamente. Não posso verificar até segunda-feira, mas acho que o kernel não atribui endereços locais de link à interface se não houver link.

Aaron
fonte
2
Nenhum dos dois tem nada a ver com o outro.
Michael Hampton
2
Eu entendi aquilo. E, no entanto, como resultado da execução do dhclient, você obtém um endereço IPv6LL, mas quando define um endereço IPv4 estático, não obtém. Então, algum efeito colateral de algum comando que está sendo executado por conjuntos dhclient que up ..
Aaron
1
Não, você não recebe um endereço local de link IPv6 executando o dhclient.
Michael Hampton

Respostas:

7

Os endereços locais de link são derivados do endereço MAC do dispositivo. Eles são gerados automaticamente como parte da abertura 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 do roteador está disponível. Esses endereços podem ser regenerados periodicamente para fornecer privacidade.

O RFC 4862 especifica os processos a serem seguidos.

BillThor
fonte
1
"Eles são gerados automaticamente como parte da abertura da interface". Certo, é isso que estou procurando, quem está gerando automaticamente? Não é gerado automaticamente quando você atribui um endereço IPv4 estático, mas é quando o dhclient é executado. O dhclient está implementando o RFC 4862, ou é um efeito colateral de algum comando no script dhclient? Como eu o replico em uma interface estática sem escrever minha própria implementação do RFC 4862?
Aaron
gerado automaticamente pelo kernel, ao que parece, veja a edição acima.
Aaron
6

Encontrei! 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 em eth0.

Em outras palavras, minha distribuição parece ter algum código oculto em algum lugar que muda dinamicamente net.ipv6.conf.eth0.disable_ipv6toda vez que é solicitado que a rede seja ativada ou desativada. Sua milhagem pode variar.

Cheguei ao fundo disso graças a um mero:

sysctl -a | grep ipv6
Março
fonte
A propósito, não consigo entender por que minha distro está lançando disable_ipv6: uma vez que o link é desativado, faz alguma diferença.
Março
Isso se aplica perfeitamente ao Ubuntu 16.04. Obrigado.
precisa saber é o seguinte