O roteador na minha rede distribui um prefixo IPv6 atribuído pelo meu ISP. Esse prefixo é dinâmico, mas "bastante persistente".
Gostaria que minhas máquinas escolhessem automaticamente o prefixo anunciado nos RAs, mas o combinassem com uma parte local especificada pelo usuário, em vez de gerar uma aleatoriamente ou com base no endereço MAC. Existe alguma maneira fácil de fazer isso?
Respostas:
Existem duas maneiras de fazer isso. Um é o caminho mais fácil e o outro é o caminho mais difícil.
A maneira mais fácil é executar um servidor DHCPv6 na sua rede e atribuir endereços de host a cada dispositivo. Ou deixe o servidor escolher a parte do host; os servidores DHCPv6 que eu vi manterão a mesma parte do host, mesmo que o prefixo seja alterado.
A maneira mais difícil é usar
ip token
para definir identificadores de interface tokenizados. Isto é descrito como:A razão pela qual essa é a maneira mais difícil é que, embora o Linux inclua essa funcionalidade, nenhuma distribuição do Linux que eu conheça inclua suporte para tornar essa configuração persistente e aplicá-la no momento da inicialização, como fazem para endereços configurados manualmente ou DHCP. Portanto, provavelmente não vai funcionar muito bem para você, até que alguma distribuição o faça.Observe que agora é possível configurar tokens IPv6 no NetworkManager e systemd-networkd; respostas mais recentes têm instruções de configuração específicas.Por fim, se o seu ISP alterar ocasionalmente o seu prefixo, considere o uso de endereços locais exclusivos na sua rede. Dessa forma, todos os seus dispositivos sempre terão um endereço que nunca será alterado, com o qual eles poderão conversar entre si. Alguns roteadores domésticos / SOHO compatíveis com IPv6 (como o OpenWrt) têm uma opção para habilitar o ULA em toda a rede doméstica; se houver vários roteadores em casa, isso deve ser ativado no roteador que se conecta ao ISP.
fonte
Michael fez um resumo muito bom e a dica recente do plugwash foi a melhor que pude encontrar depois de procurar por várias horas uma solução do CentOS 7 / RHEL (também systemd e gerenciador de rede). Depois de me acostumar com o nmcli (eu ainda estava usando ifcfg e ip) - eu poderia aplicá-lo com sucesso.
Mas aprofundando-se de acordo com https://developer.gnome.org/NetworkManager/stable/settings-ipv6.html O NetworkManager suporta diretamente identificadores de interface com token IPv6 como uma propriedade (a partir da versão 1.4 de agosto de 2016 http://news.softpedia.com/ news / networkmanager-1-4-adiciona-suporte-para-configurar-ipv6-tokenized-interface-identifiers-507601.shtml ).
Portanto, você não precisa definir as configurações de IPv6 do gerenciador de rede para ignorar, mas deve defini-las como
que gravará
IPV6_TOKEN=::2
em / etc / sysconfig / network-scripts / ifcfg-eth0 para sobreviver a uma reinicialização. Para aplicar imediatamente isso, reinicie a interfacefonte
Agradecemos a Michael por confirmar que o Linux suportava o recurso e apontar para o comando de baixo nível. Esta resposta aborda como fazê-lo funcionar na prática em uma área de trabalho extensível Debian (com systemd e gerenciador de rede).
Primeiro edite a conexão no gerenciador de rede e defina as configurações do IPv6 para ignorar.
Agora crie um arquivo /etc/NetworkManager/dispatcher.d/pre-up.d/iptoken. O arquivo deve pertencer à raiz, permissões 755 e com o seguinte conteúdo.
Substitua eth0 pelo dispositivo desejado e :: 2 pelo sufixo desejado.
fonte
No Linux, você pode usar
systemd-network
.Basta criar um
.network
arquivo em/etc/systemd/network/somename.network
:em vez de
e*
corresponder a todas as interfaces iniciadase
, você pode inserir o nome completo da interface. Isso habilita o DHCP {v4, v6} e usa::1
como sufixo. Você pode escolher qualquer endereço IPv6, mas os primeiros 64 bits devem ser definidos como zero.Depois disso, ative e inicie o
systemd-networkd.service
.fonte