Debian / Mint / Raspbian / Ubuntu - Como forçar a autoconfiguração do SLAAC EUI64 IPv6?

2

Eu tenho um prefixo estático IPv6 / 62 e eu uso o radvd no meu roteador (rodando o Debian) para anunciar um / 64 de dentro dele para toda a minha rede. Diferente do meu roteador (que é :: 1), deixo que o EUI64 defina o sufixo com base no endereço MAC (ou seja, correspondendo ao sufixo do endereço fe80 :: automático).

A maioria dos Linuxes está migrando para mascarar isso por razões de privacidade. Eu realmente não estou preocupado com as implicações de privacidade e, além disso, quero um endereço IPv6 perfeitamente previsível para serviços como o sshd.

Em teoria, isso deve ser fácil de configurar. Por exemplo, em um Raspberry Pi executando o Raspbian, adicionei ao arquivo /etc/sysctl.conf:

###################################################################

# Enable IPv6 EUI64

#

net.ipv6.conf.all.use_tempaddr=0

net.ipv6.conf.default.use_tempaddr=0

net.ipv6.conf.eth0.use_tempaddr=0

Infelizmente, nada muda. (A última linha foi uma última tentativa; as duas linhas anteriores realmente deveriam funcionar sozinhas.)

Algo nesses SOs está impedindo que o EUI64 funcione. O que é e como posso ativá-lo?

Esta máquina em particular não está executando o NetworkManager, mas algumas delas são.

    
por Jim MacKenzie 24.02.2018 / 05:25

1 resposta

3

Você está confundindo dois tipos de endereço diferentes:

  • endereços temporários gerados de acordo com o RFC 4941 "Extensões de privacidade",
  • endereços permanentes gerados de acordo com o RFC 7217 "Identificadores de interface opacos".

Os primeiros são sempre gerados além do endereço padrão e não o substituem, então certamente não o que você tem em mente.

O último substitui o endereço padrão baseado em EUI64, mas eles não são temporários e não têm nada a ver com o botão use_tempaddr . Em vez disso, você precisa alterar o modo de geração de endereço principal:

  • Se o SLAAC for executado pelo kernel, altere este sysctl:

    net.ipv6.conf.default.addr_gen_mode = 0
    net.ipv6.conf.eth0.addr_gen_mode = 0
    

    (Observando o código-fonte, não parece que all.addr_gen_mode esteja implementado.)

  • Se o SLAAC for executado por dhcpcd , use esta opção dhcpcd.conf :

    slaac hwaddr
    
  • Se o SLAAC for executado pelo NetworkManager:

    nmcli con modify "Connection name" ipv6.addr-gen-mode eui64
    
por 24.02.2018 / 08:58