Neues IPv6 auf Anfrage mit Datenschutzerweiterung?

Neues IPv6 auf Anfrage mit Datenschutzerweiterung?

Durch Aktivieren von Privacy Extension( net.ipv6.conf.eth0.use_tempaddr=2in /etc/sysctl.conf) IPv6erhalte ich für einen festgelegten Zeitraum eine neue IP-Adresse. Gibt es eine Möglichkeit, bei Bedarf eine neue IPv6-Adresse zu erhalten, d. h. bei Bedarf eine neue IPv6-Adresse zu aktualisieren?

Antwort1

Die „aktive“ temporäre Adresse hat EigenschaftenvorübergehendUnddynamischaber nichtveraltet. Wenn es veraltet ist (d. h. wenn esbevorzugte_lftDer Kernel fügt der Schnittstelle eine neue temporäre Adresse hinzu, wenn der Wert auf 0 fällt.

Die aktuelle temporäre Adresse der Schnittstelle ist Teil der hier angezeigten Ergebnisse:

ip -6 address show temporary dynamic

aber nicht Teil der älteren Adressen, die noch gültig, aber veraltet sind und wie folgt angezeigt werden:

ip -6 address show temporary deprecated

Sie müssen nur die preferred_lftEigenschaft auf nahezu Null senken, um die Erstellung der neuen temporären Adresse auszulösen. Ausprobieren hat ergeben, dass dies nicht funktioniert, wenn der Wert preferred_lftunter 3 eingestellt ist: Der Countdown erreicht 0, bevor die Erstellung ausgelöst wird, und dann funktioniert es nicht mehr (man kann den Wert aber preferred_lftspäter noch einmal auf >= 3 einstellen, um den Auslöser zu erhalten). Ich weiß nicht, ob es für diese Besonderheit irgendeinen Regler gibt. 5 Sekunden scheinen ein sicherer Wert zu sein, was bedeutet, dass die neue Adresse etwa 2 oder 3 Sekunden später erscheint.

Nehmen wir an, der aktuell gefundene Wert ist 2001:db8::1/64 auf der Schnittstelleeth0:

ip address change 2001:db8::1/64 dev eth0 preferred_lft 5

Beachten Sie, dass durch Manipulation diedynamischDies wäre auf natürliche Weise nicht geschehen und könnte möglicherweise früher als erwartet zur späteren Erstellung zusätzlicher temporärer Adressen führen.


Mit ipder JSON-Ausgabe von undjqeinige Skriptfunktionen sind möglich, hier ist, was ich mir ausgedacht habe, um die Befehle auszugeben, die bereit sind, an eine Shell weitergeleitet zu werden, um alle in Frage kommenden temporären Adressen auf einmal zu ändern (normalerweise erfordert dies ein Multi-Homed-System, um mehr als eine Adresse zu erhalten, aber eine Manipulation hieran könnte später möglicherweise auch mehrere erstellen). Es überprüft, ob dievorübergehendUnddynamischAdresse ist nichtveraltetum es als Kandidaten zu betrachten:

ip -6 -p -j address show temporary dynamic | jq -j '.[] |
    . as $i |
        .addr_info[] as $a |
            if $a.local == null // $a.deprecated == true then
                empty
            else
                "ip -6 address change ",
                $a.local, "/", $a.prefixlen,
                " dev ", $i.ifname,
                " preferred_lft 5\n"
            end'

was wieder ausgeben würde:

ip -6 address change 2001:db8::1/64 dev eth0 preferred_lft 5

Sie könnten auch eine Reduzierung in Betracht ziehen, valid_lftdamit die jetzt veraltete Adresse schneller vollständig verschwindet.

verwandte Informationen