Configurando um endereço IPv6 estático que herda o prefixo delegado

Configurando um endereço IPv6 estático que herda o prefixo delegado

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:beefserá 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::/64prefixo. 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:beefem /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.confsubstituir a desativação do accept_rapadrã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.

informação relacionada