Como obtenho um endereço IPv6 estável em 16.04?

Como obtenho um endereço IPv6 estável em 16.04?

Tenho um nome de domínio que aponta para meu servidor doméstico. Em cada versão do Ubuntu através do Wily, por padrão eu tinha um endereço EIU-64 estável que poderia usar para meu registro AAAA. No entanto, depois de instalar o Xenial, não consigo obter um endereço estável por padrão.

joejoe@myserver:~$ ip address
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: enp2s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:24:1d:d2:e3:f4 brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.101/24 brd 192.168.0.255 scope global enp2s0
       valid_lft forever preferred_lft forever
    inet6 2601:280:3068:2945:74ed:b303:6474:6e29/64 scope global temporary dynamic
       valid_lft 6965sec preferred_lft 3363sec
    inet6 2601:280:3068:2945:ac34:ea15:4340:29a4/64 scope global temporary deprecated dynamic
       valid_lft 6965sec preferred_lft 0sec
    inet6 2601:280:3068:2945:bdfd:6253:b07e:1308/64 scope global mngtmpaddr noprefixroute dynamic
       valid_lft 6965sec preferred_lft 6965sec
    inet6 fe80::dc3e:6127:bd4e:18b/64 scope link
       valid_lft forever preferred_lft forever

Como você pode ver, todos os inet6endereços scope globaltêm vida útil limitada. Existe uma maneira de recuperar meu endereço EIU-64 ou existe alguma outra maneira de obter um endereço estável que eu possa usar em um registro de nome de domínio?

Responder1

Acabei de descobrir isso. Para cada conexão em /etc/NetworkManager/system-connections/, você precisa definir a seguinte propriedade:

[ipv6]
addr-gen-mode=eui64

O NetworkManager em 16.04 parece definir um padrão stable-privacypara a addr-gen-modeconfiguração.

Responder2

As outras respostas aqui estão um pouco incompletas: alterar as configurações do NetworkManager não ajuda se você não fizer issoterum (que é realmente o problema, veja abaixo), e desabilitar extensões de privacidade IPv6 não está relacionado (novamente, se o seu endereço IPv6 supostamente estável mudar em cada inicialização, remover os endereços de privacidade extras não ajuda).

Conforme detalhado emeste tópico, uma nova instalação padrão do 16.04 apresenta um pequeno descuido se você estiver usando uma conexão com fio. O NetworkManager gera automaticamente uma configuração “efêmera”, que funciona muito bem, mas é, bem, efêmera. Isso significa que o GUID usado para hash em um endereço IPv6 supostamente consistente não é armazenado e, portanto, você obtém um novo a cada inicialização. Basta entrar no NetworkManager, pressionar "editar" na conexão com fio e salvá-lo sem alterações gerará uma configuração real do NM, com um GUID salvo, e assim você obterá o mesmo endereço IPv6 a cada inicialização.

Este endereço é um endereço RFC7217 (um hash criptográfico do GUID, seu prefixo, etc.) - portanto, embora seja estável a cada inicialização, não é do tipo que inclui seu endereço MAC diretamente no endereço. Se você quiser um desses endereços EUI64,esta outra resposta sobre esta questãodetalha como mudar isso.

Responder3

O Ubuntu 16.04 e versões anteriores sempre tiveram como padrão o EIU-64 para mim, então para servidores eu tenho que desativá-lo. Fico feliz em usar o endereço de privacidade na minha área de trabalho.

Então você precisa de algo como:

    sysctl -w net.ipv6.conf.all.use_tempaddr=0
    sysctl -w net.ipv6.conf.default.use_tempaddr=0
    sysctl -w net.ipv6.conf.default.use_tempaddr=0
    sysctl -w net.ipv6.conf.<devname>.use_tempaddr=0

Então ifdown/ifup. O resultado para mim, observe o relacionamento MAC/IPv6:

$ ifconfig enp3s0 | egrep 'HWaddr|Global'
enp3s0    Link encap:Ethernet  HWaddr 74:d0:2b:90:8b:90  
          inet6 addr: 2501:300:d008:61c8:76d0:2bff:fe90:8b90/64 Scope:Global

Você pode nomear interfaces específicas se precisar habilitá-las em algumas interfaces e não em outras. Você pode ver a lista com:

$ sysctl -a | grep tempaddr

Não recomendo o Network Manager para serviços de produção. Por exemplo, não funciona bem com outros, como /etc/sysctl.conf por exemplo. Se você quiser fazer isso, precisará de uma entrada em /etc/networking/interfaces para um endereço estático ou configurado automaticamente. Estou apenas usando:

auto enp3s0 
iface enp3s0 inet dhcp
iface enp3s0 inet6 auto
pre-up modprobe ipv6

Ajuste a gosto, é claro.

informação relacionada