web-dev-qa-db-fra.com

Comment obtenir une adresse IPv6 stable dans 16.04?

J'ai un nom de domaine qui pointe vers mon serveur domestique. Sous chaque version d'Ubuntu jusqu'à Wily, j'avais par défaut une adresse EIU-64 stable que je pouvais utiliser pour mon enregistrement AAAA. Cependant, après l'installation de Xenial, je ne semble pas obtenir une adresse stable par défaut.

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

Comme vous pouvez le constater, toutes les adresses inet6 avec scope global ont une durée de vie limitée. Existe-t-il un moyen de récupérer mon adresse EIU-64 ou existe-t-il un autre moyen d'obtenir une adresse stable que je peux utiliser dans un enregistrement de nom de domaine?

5
Chris Keller

Je viens de comprendre cela. Pour chaque connexion dans /etc/NetworkManager/system-connections/, vous devez définir la propriété suivante:

[ipv6]
addr-gen-mode=eui64

NetworkManager dans 16.04 semble définir par défaut stable-privacy pour le paramètre addr-gen-mode. Lorsque stable-privacy est défini, une adresse aléatoire est générée à chaque fois, même lorsque ip6-privacy est défini sur 0.

4
saiarcot895

Les autres réponses ici sont un peu incomplètes: changer les configurations de NetworkManager n'aide pas si vous n'en avez pas (ce qui est en fait le problème, voir ci-dessous ), et la désactivation des extensions de confidentialité IPv6 est en réalité quelque peu indépendante (encore une fois si votre adresse IPv6 supposée stable change à chaque démarrage, la suppression des adresses de confidentialité supplémentaires n’aide en rien).

Comme détaillé dans ce fil , une nouvelle installation de 16.04 par défaut a un léger oubli si vous utilisez une connexion câblée. NetworkManager génère automatiquement une configuration "éphémère", qui fonctionne très bien mais qui est, bien, éphémère. Cela signifie que le GUID utilisé pour hacher une adresse IPv6 supposément cohérente n'est pas stocké et vous en obtenez donc une nouvelle à chaque démarrage. Il suffit d'aller dans NetworkManager, d'appuyer sur "modifier" sur la connexion câblée et de l'enregistrer sans modification pour générer une configuration réelle NM, avec un GUID enregistré, et ainsi obtenir la même adresse IPv6 à chaque démarrage. .

Cette adresse est une adresse RFC7217 (une crypto-hachage du GUID, votre préfixe, etc.) - ainsi, même si elle est stable à chaque démarrage, ce n'est pas le genre qui inclut directement votre adresse MAC dans l'adresse. Si vous voulez une de ces adresses EUI64, cette autre réponse à cette question explique comment changer cela.

6
Josh Watzman

Ubuntu 16.04 et les versions précédentes ont toujours été par défaut sur EIU-64 pour moi, donc je dois le désactiver pour les serveurs. Je suis heureux d'utiliser l'adresse de confidentialité sur mon bureau.

Donc vous avez besoin de quelque chose comme:

    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

Alors si bas/si haut. Le résultat pour moi, notez la relation 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

Vous pouvez nommer des interfaces spécifiques si vous avez besoin de l'activer sur certaines interfaces et pas sur d'autres. Vous pouvez voir la liste avec:

$ sysctl -a | grep tempaddr

Je ne recommande pas le gestionnaire de réseau pour les services de production. Par exemple, il ne joue pas bien avec d'autres, comme /etc/sysctl.conf par exemple. Si vous voulez faire cela, vous aurez besoin d’une entrée dans/etc/networking/interfaces pour une adresse statique ou automatiquement configurée. J'utilise juste:

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

Ajustez au goût bien sûr.

5
user206966