Mein ISP (Comcast) delegiert ein Präfix, mein Router gibt die Präfixdelegation (PD) an das LAN weiter. Meine Debian-Maschine erhält das Präfix und hängt es mithilfe einer EUI-64-Adresse an. Das ist nett, aber nicht sehr einprägsam. Ich bevorzuge eine zusätzliche „Vanity“-Adresse innerhalb des PD-Präfixes.
Einige Einzelheiten:
- Der PD ist (z. B. 2601:8:abcd:abcd/64)
- Meine Linux-Box konfiguriert eui-64 automatisch: 2601:8:abcd:abcd:DEAD:BEff:feEF:CAFE (für MAC DE:AD:BE:EF:CA:FE)
Ich möchte manuell eine Schnittstelle erstellen: 2601:8:abcd:abcd::2 als statische globale Adresse, aber wenn sich die Comcast-Präfixdelegierung ändert, soll die Schnittstelle das neue delegierte Präfix übernehmen und das statische Suffix verwenden.
Antwort1
Ich glaube, was Sie suchen, ist:
ip token set ::dead:beef/64 dev eth0
So wie ich es verstehe, führen Sie das aus, bevor Sie das ausführen, was Sie normalerweise ausführen, um eine IP6-Adresse zu erhalten, und es 0:0:dead:beef
wird anstelle des normalen EUI-64 verwendet.
Seltsamerweise scheint dies keine entsprechende Link-Local-Adresse hinzuzufügen, sondern stattdessen die normale EUI-64 mit dem fe80::/64
Präfix. Sie können dies manuell beheben mit:
ip addr flush scope link dev eth0
ip addr add fe80::dead:beef/64 dev eth0
Ersetzen Sie das Suffix, die Präfixgröße und die Schnittstelle ( ::dead:beef
, /64
, eth0
) entsprechend.
Antwort2
Da Network Manager mittlerweile in fast allen GNU/Linux-Distributionen standardmäßig verwendet wird (lauthttp://news.softpedia.com/news/networkmanager-1-4-adds-support-for-setting-ipv6-tokenized-interface-identifiers-507601.shtml) Ich dachte, diese andere Diskussion beihttps://unix.stackexchange.com/a/403541/259695kann hilfreich sein. Das Token kann gesetzt werden durch
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
das in /etc/sysconfig/network-scripts/ifcfg-eth0 schreibt, IPV6_TOKEN=::dead:beef
um einen Neustart zu überstehen. Um dies sofort anzuwenden, starten Sie die Schnittstelle neu, indem Sie
nmcli connection up id eth0 # restart
Antwort3
Zusätzlich zur Bekanntgabe des Netzwerkpräfixes müssten Sie einen zustandsbehafteten DHCPv6-Dienst verwenden.
Ähnlich wie DHCPv4 weist der DHCPv6-Server im Stateful-Modus den Hosts die Adressen aus dem gewünschten Bereich zu - und das kann ein sehr kleiner Bereich sein, beispielsweise 2601:8:abcd:abcd::10-2601:8:abcd:abcd::99. Ich verwendeDNS-MASQin meinen Routern.
Normalerweise generieren Hosts zusätzlich zu den von DHCPv6 zugewiesenen Adressen weiterhin autonom Unicast-IPv6-Adressen – jede Schnittstelle hat zwei (oder sogar mehr) davon. Sie können dieses Verhalten abschalten, indem Sie die Konfiguration des Routers ändern – das Deaktivieren des Konfigurationsflags für autonome Adressen reicht aus. Dies führt jedoch auch dazu, dass die meisten Android-Geräte keine IPv6-Adressen abrufen können; Android (zumindest mit KitKat 4.4.4) unterstützt DHCPv6 immer noch nicht richtig ...
Antwort4
Ich kann nicht glauben, dass diese Frage noch nicht beantwortet wurde!
GroßartigAntwort von Jürgengilt jedoch nicht für Server, die zum Rendern des Netzwerks networkd anstelle des NetworkManagers verwenden.
Für Server, die ein selbstanpassendes, semistatisches IPv6 benötigen, müssen wir die Zeile hinzufügen
ipv6-address-token: "::ace:face"
zur Schnittstellenbeschreibung im Netplan YAML. zB
network:
version: 2
ethernets:
eth0:
dhcp4: false
dhcp6: false
ipv6-address-token: "::ace:face"
addresses:
- <ipv4 static address>
nameservers: ...
Wenn jedoch die IP-Weiterleitung aktiviert ist, muss die folgende Zeile hinzugefügt werden, um /etc/sysctl.conf
die Deaktivierung der accept_ra
Standardeinstellung durch networkd außer Kraft zu setzen. Die Logik (wenn wir ein Router sind, sollten wir keine RA von anderen Routern akzeptieren) ist sinnvoll, trifft aber in manchen Fällen nicht zu.
net.ipv6.conf.eth0.accept_ra=2
Die Zeile in sysctl conf erzwingt die Annahme der Router-Ankündigung (RA) trotz der IP-Weiterleitungseinstellung. Dies ist wichtig, da die RA uns über das delegierte Präfix informiert.
Die Zeile IPv6-Adresstoken-Vorlage in Netplan dient zum Generieren der IPv6-Adresse, die das vom Router bereitgestellte Präfix und unsere angegebene Adresse verwendet, um die Adresse zu generieren. Wir erhalten also eine Adresse in der Form
<delegated prefix>::ace:face/<bit length of netmask>
Dennoch ist es nicht vollständig statisch, aber vorhersehbar, und ich muss nicht jeden Server neu konfigurieren, wenn sich das Präfix ändert.