Konfigurieren einer statischen IPv6-Adresse, die das delegierte Präfix erbt

Konfigurieren einer statischen IPv6-Adresse, die das delegierte Präfix erbt

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:beefwird 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::/64Prä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:beefum 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.confdie Deaktivierung der accept_raStandardeinstellung 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.

verwandte Informationen