Wie erhalte ich eine stabile IPv6-Adresse in 16.04?

Wie erhalte ich eine stabile IPv6-Adresse in 16.04?

Ich habe einen Domänennamen, der auf meinen Heimserver verweist. Unter jeder Ubuntu-Version bis Wily hatte ich standardmäßig eine stabile EIU-64-Adresse, die ich für meinen AAAA-Eintrag verwenden konnte. Nach der Installation von Xenial scheine ich jedoch standardmäßig keine stabile Adresse zu erhalten.

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

Wie Sie sehen, haben alle inet6Adressen scope globaleine begrenzte Lebensdauer. Gibt es eine Möglichkeit, meine EIU-64-Adresse zurückzubekommen, oder gibt es eine andere Möglichkeit, eine stabile Adresse zu erhalten, die ich in einem Domänennamen-Datensatz verwenden kann?

Antwort1

Ich habe das gerade herausgefunden. Für jede Verbindung in /etc/NetworkManager/system-connections/müssen Sie die folgende Eigenschaft festlegen:

[ipv6]
addr-gen-mode=eui64

NetworkManager in 16.04 scheint einen Standardwert stable-privacyfür die addr-gen-modeEinstellung festzulegen.

Antwort2

Die anderen Antworten hier sind ein wenig unvollständig: das Ändern von NetworkManager-Konfigurationen hilft nicht, wenn Sie nichthabeneine (was eigentlich das Problem ist, siehe unten), und das Deaktivieren von IPv6-Datenschutzerweiterungen hat damit eigentlich nichts zu tun (wenn sich Ihre angeblich stabile IPv6-Adresse bei jedem Booten ändert, hilft das Entfernen der zusätzlichen Datenschutzadressen nicht).

Wie ausführlich indieser Thread, eine standardmäßige Neuinstallation von 16.04 weist ein kleines Versehen auf, wenn Sie eine kabelgebundene Verbindung verwenden. NetworkManager generiert automatisch eine „flüchtige“ Konfiguration, die gut funktioniert, aber, nun ja, flüchtig ist. Dies bedeutet, dass die GUID, die zum Hashen einer vermeintlich konsistenten IPv6-Adresse verwendet wird, nicht gespeichert wird und Sie daher bei jedem Start eine neue erhalten. Wenn Sie einfach in NetworkManager gehen, bei der kabelgebundenen Verbindung auf „Bearbeiten“ klicken und sie ohne Änderungen speichern, wird eine tatsächliche NM-Konfiguration mit einer gespeicherten GUID generiert und Sie erhalten daher bei jedem Start dieselbe IPv6-Adresse.

Diese Adresse ist eine RFC7217-Adresse (ein Krypto-Hash der GUID, Ihres Präfixes usw. usw.) – obwohl sie bei jedem Booten stabil ist, ist sie nicht die Art, die Ihre MAC-Adresse direkt in die Adresse einschließt. Wenn Sie eine dieser EUI64-Adressen möchten,diese andere Antwort auf diese FrageEinzelheiten dazu, wie Sie das ändern können.

Antwort3

Ubuntu 16.04 und frühere Versionen haben bei mir immer standardmäßig EIU-64 verwendet, daher muss ich es für Server deaktivieren. Ich verwende gerne die private Adresse auf meinem Desktop.

Sie benötigen also etwas wie:

    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

Dann ifdown/ifup. Das Ergebnis für mich, beachten Sie die MAC/IPv6-Beziehung:

$ 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

Sie können bestimmte Schnittstellen benennen, wenn Sie es auf einigen Schnittstellen aktivieren müssen, auf anderen jedoch nicht. Sie können die Liste mit Folgendem anzeigen:

$ sysctl -a | grep tempaddr

Ich empfehle Network Manager nicht für Produktionsdienste. Es funktioniert beispielsweise nicht gut mit anderen, wie z. B. /etc/sysctl.conf. Wenn Sie das tun möchten, benötigen Sie einen Eintrag in /etc/networking/interfaces für eine statische oder eine automatisch konfigurierte Adresse. Ich verwende einfach:

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

Natürlich nach Geschmack anpassen.

verwandte Informationen