Meu ISP (comcast) delega um prefixo, meu roteador está passando a delegação de prefixo (pd) para a LAN. Minha máquina Debian está obtendo o prefixo e anexando usando o endereço EUI-64. Isso é legal, mas não muito memorável. Prefiro ter um endereço "personalizado" adicional dentro do prefixo PD.
Algumas especificidades:
- O PD é (por exemplo, 2601:8:abcd:abcd/64)
- Minha caixa Linux configura automaticamente eui-64: 2601:8:abcd:abcd:DEAD:BEff:feEF:CAFE (para MAC DE:AD:BE:EF:CA:FE)
O que eu gostaria é criar manualmente uma interface: 2601:8:abcd:abcd::2 como um endereço global estático, mas se a delegação do prefixo Comcast mudar, faça com que a interface adote o novo prefixo delegado e use o sufixo estático.
Responder1
Acho que o que você está procurando é:
ip token set ::dead:beef/64 dev eth0
Pelo que entendi, você executa isso antes de executar o que normalmente executa para obter um endereço IP6 e 0:0:dead:beef
será usado em vez do EUI-64 normal.
Estranhamente, isso não parece adicionar um endereço local de link correspondente, em vez disso, adiciona o EUI-64 normal com o fe80::/64
prefixo. Você pode corrigir isso manualmente com:
ip addr flush scope link dev eth0
ip addr add fe80::dead:beef/64 dev eth0
Substitua o sufixo, o tamanho do prefixo e a interface ( ::dead:beef
, /64
, eth0
) conforme apropriado.
Responder2
Como entretanto o Network Manager é usado por padrão em quase todas as distribuições GNU/Linux (de acordo comhttp://news.softpedia.com/news/networkmanager-1-4-adds-support-for-setting-ipv6-tokenized-interface-identifiers-507601.shtml) Achei que essa outra discussão emhttps://unix.stackexchange.com/a/403541/259695pode ser útil. O token pode ser definido por
nmcli connection modify eth0 ipv6.method "auto" # if not already
nmcli connection modify eth0 ipv6.addr-gen-mode "eui64" # use interface token
nmcli connection modify eth0 ipv6.token "::dead:beef" # or "::2" - as you like
que gravará IPV6_TOKEN=::dead:beef
em /etc/sysconfig/network-scripts/ifcfg-eth0 para sobreviver a uma reinicialização. Para aplicar isso imediatamente, reinicie a interface
nmcli connection up id eth0 # restart
Responder3
Além de anunciar o prefixo da rede, você precisaria usar o serviço DHCPv6 com estado.
Semelhante ao DHCPv4, o servidor DHCPv6 no modo stateful atribui aos hosts os endereços do intervalo desejado - e pode ser um intervalo muito pequeno, por exemplo 2601:8:abcd:abcd::10-2601:8:abcd:abcd:: 99. eu tenho usadodnsmasqem meus roteadores.
Normalmente, além do endereço atribuído pelo DHCPv6, os hosts ainda gerarão endereços IPv6 unicast de forma autônoma - cada interface terá dois (ou até mais) deles. Você pode desativar esse comportamento modificando a configuração do roteador - desabilitar o sinalizador de configuração de endereço autônomo resolverá o problema. Mas também tornará a maioria dos dispositivos Android incapazes de obter endereços IPv6; Android (pelo menos com KitKat 4.4.4) ainda não suporta DHCPv6 adequadamente...
Responder4
Não posso acreditar que esta pergunta ainda não foi respondida!
Ótimoresposta de Jurgenmas não aplicável a servidores que usam networkd para renderizar a rede em vez do NetworkManager.
Para servidores que necessitam de um IPv6 semi-estático e autoajustável, temos que adicionar a linha
ipv6-address-token: "::ace:face"
para a descrição da interface em netplan yaml. por exemplo
network:
version: 2
ethernets:
eth0:
dhcp4: false
dhcp6: false
ipv6-address-token: "::ace:face"
addresses:
- <ipv4 static address>
nameservers: ...
No entanto, se o encaminhamento de IP estiver ativado, a linha a seguir deverá ser adicionada para /etc/sysctl.conf
substituir a desativação do accept_ra
padrão por networkd. A lógica (se somos um roteador, não devemos aceitar ra de outros roteadores) faz sentido, mas não se aplica em alguns casos.
net.ipv6.conf.eth0.accept_ra=2
A linha em sysctl conf força a aceitação do anúncio do roteador (ra), apesar da configuração de encaminhamento de IP. Isso é essencial porque o ra nos informa sobre o prefixo delegado.
A linha modelo de token de endereço IPv6 no netplan serve para gerar o endereço IPv6 que usa o prefixo fornecido pelo roteador e nosso endereço especificado para gerar o endereço. Então, terminamos com um endereço na forma de
<delegated prefix>::ace:face/<bit length of netmask>
Ainda assim, não é totalmente estático, mas previsível, e não preciso reconfigurar todos os servidores quando o prefixo muda.