fragen stichworte

Wie funktioniert das IPv6-Subnetz und wie unterscheidet es sich vom IPv4-Subnetz?

This is a Canonical Question about IPv6 Subnetting.

Related:

Ich weiß viel über IPv4-Subnetting, und während ich mich darauf vorbereite, ein IPv6-Netzwerk zu entwickeln, muss ich wissen, wie viel dieses Wissen übertragbar ist und was ich noch lernen muss. IPv6 scheint auf den ersten Blick viel komplexer als IPv4 zu sein. Also würde ich gerne wissen:

  • IPv6 ist 128 Bit. Warum ist/64 das kleinste empfohlene Subnetz für Hosts? Verwandt damit:
    • Warum wird die Verwendung von/127 für Punkt-zu-Punkt-Verbindungen zwischen Routern empfohlen, und warum wurde dies in der Vergangenheit empfohlen? Sollte ich vorhandene Router-Links ändern, um/127 zu verwenden?
    • Warum werden virtuelle Maschinen mit Adressen von weniger als/64 bereitgestellt?
    • Gibt es andere Situationen, in denen ich ein kleineres Subnetz als/64 verwenden würde?
  • Kann ich IPv6-Subnetzen direkt von IPv4-Subnetzen zuordnen? Stimmt eine IPv4/24 beispielsweise direkt mit einer IPv6/56 oder/120 überein?
  • Meine Schnittstellen verfügen über mehrere IPv6-Adressen. Muss das Subnetz für alle gleich sein?
  • Warum sehe ich manchmal in einer IPv6-Adresse ein% anstelle von/und was bedeutet das?
  • Verschwende ich zu viele Subnetze? Werden wir nicht einfach wieder ausgehen?
  • In welchen anderen wichtigen Punkten unterscheidet sich das IPv6-Subnetting vom IPv4-Subnetting?

antworten

Das erste, was beim IPv6-Subnetting erwähnt werden sollte, ist, dass eine andere Denkweise erforderlich ist. In IPv4 überlegen Sie normalerweise, wie viele Adressen Sie zur Verfügung haben und wie Sie jedem Endbenutzer genügend Adressen zuweisen können. In IPv6 überlegen Sie normalerweise, wie viele (/64) Subnetze Ihnen zur Verfügung stehen und wie Sie sie Endbenutzern zuordnen können. Sie sorgen sich fast nie darum, wie viele IP-Adressen in einem bestimmten Subnetz verwendet werden. Mit Ausnahme einiger Sonderfälle wie Punkt-zu-Punkt-Verbindungen verfügt jedes Subnetz einfach über weit mehr Adressen, als je zuvor benötigt werden. Stattdessen müssen Sie sich nur um die Zuweisung von Subnetzen kümmern, nicht um Hosts.

IPv6-Subnetze sind normalerweise/64, da dies erforderlich ist, damit SLAAC (automatische Konfiguration der stateless-Adresse) funktioniert. Selbst wenn SLAAC nicht verwendet wird, kann es andere Gründe geben,/64 zu verwenden. Zum Beispiel könnte es einige Endbenutzergeräte geben, von denen nur/64 angenommen wird, oder das Routing von Teilnetzen, die länger als/64 sind, kann bei einigen Routern ineffizient sein, da der Routerimplementierer die Route/64 oder kürzere Routen zum Speichern optimiert hat Routing-Tabellenspeicher.

Warum wird die Verwendung von/127 für Punkt-zu-Punkt-Links empfohlen?

Für den speziellen Fall von Punkt-zu-Punkt-Verbindungen wird anstelle von/64/127 empfohlen, um eine Sicherheitsanfälligkeit zu vermeiden, bei der Paketadressen an eine der Billiarden ungenutzter Adressen im Subnetz unerwünschte Anforderungen für die Anwerbung von Nachbarn und verursachen Tabelleneinträge, die einen Router ertränken könnten. Solche falsch adressierten Pakete können böswillig oder versehentlich sein. Aber auch wenn Sie tatsächlich eine Punkt-zu-Punkt-Verbindung als/127 konfigurieren, sprechen einige Leute trotzdem dafür, eine ganze/64 zuzuweisen, nur um konsistent zu sein.

Warum werden virtuelle Maschinen mit Subnetzen kleiner als/64 bereitgestellt?

Ich weiß nicht genau, warum für virtuelle Maschinen Subnetze kleiner als/64 bereitgestellt werden. Vielleicht, weil ein Hosting-Provider davon ausgegangen ist, dass ein Server wie ein Endbenutzer war und nur ein einziges (/64) -Subnetz benötigte, ohne zu ahnen, dass es sich bei dem Server tatsächlich um eine Sammlung von VMs handelt, die eine interne Routingtopologie erfordern? Dies kann auch einfach getan werden, um den Adressierungsplan leichter zu speichern: Der Host erhält PREFIX::/64, dann erhält jede VM PREFIX:0:NNNN::/96, wobei NNNN für die VM eindeutig ist und die VM PREFIX:0:NNNN:XXXX:YYYY nach Belieben zuordnen kann .

Kann ich IPv6-Subnetzen direkt aus IPv4-Subnetzen zuordnen? Stimmt eine IPv4/24 beispielsweise direkt mit einer IPv6/56 oder/120 überein?

Aus einer einfachen Perspektive, wie Adressierung und Routing funktionieren, hat die Präfixlänge in IPv6 und IPv4 die gleiche Bedeutung. Auf dieser Ebene können Sie eine Analogie erstellen, z. B. "Ein IPv4/16 verwendet die Hälfte der Bits für die Netzwerkadresse und die Hälfte der Bits für die Hostadresse, das ist wie ein/64 in IPv6". Dieser Vergleich ist jedoch nicht richtig. In IPv6 sind strenge Konventionen aufgetaucht, durch die die Aufteilung der Netzwerkgrößen eher der alten Welt klassischer Netzwerke in IPv4 ähnelt. Natürlich hat IPv6 keine klassenbezogene Adressierung wieder eingeführt, bei der die höchstwertigen wenigen Bits der Adresse eine bestimmte Netzmaske erzwingen, aber was IPv6 hat ist sicher [defacto/konventionell] Standardnetzwerkgrößen:

  • /64: Grundgröße eines einzelnen Subnetzes: LAN, WAN, Adressblock für virtuelle Webhosts usw. "Normale" Subnetze werden niemals kleiner erwartet (länger) Präfix) als/64. Es wird nie erwartet, dass Subnetze größer sind (kürzeres Präfix) als/64, da die Hostadressen von/64 viel mehr sind, als wir uns vorstellen können.
  • /56: ein Block mit 256 grundlegenden Subnetzen. Obwohl die derzeitigen Richtlinien es ISPs erlauben, Blöcke bis zu/48 an jeden Endbenutzer zu vergeben, und deren Adressennutzung immer noch als gerechtfertigt angesehen wird, entscheiden einige ISPs (und tun dies bereits), eine/56-Kunden als Kompromiss zuzuweisen zwischen Zuteilungslots von Subnetzen für sie und Adressökonomie.
  • /48: Ein Block von 65536 Basissubnetzen und die empfohlene Blockgröße, die jeder ISP-Kunden-Endstandort erhalten soll.
  • /32: Die Standardgröße des Blocks, den die meisten Internetdienstanbieter jedes Mal erhalten, wenn sie weitere Adressen von einem regionalen Adressregister anfordern.

In Service Provider- und Unternehmensnetzwerken sind viel mehr Präfixlängen als diese 4 zu sehen. Wenn Sie die Routingtabellen der Router in diesen Netzwerken betrachten, haben IPv4 und IPv6 viele Gemeinsamkeiten, einschließlich der meisten Routing-Funktionen: Routen für längere Präfixe überschreiben die Routen für kürzere Präfixe, sodass das Aggregieren (Verkürzen) und Bohren möglich ist nach unten (längere Strecken). Wie bei IPv4 können Routen zu größeren Blöcke mit kürzeren Präfixen zusammengefasst oder zusammengefasst werden, um die Größe von Routingtabellen zu minimieren.

Eine andere Frage der Zuordnung zwischen IPv4 und IPv6 wäre die Vereinheitlichung der IPv4- und IPv6-Zuweisungen auf Dual-Stack-Computern, damit Adressierungspläne leicht verstanden werden können. Dazu gibt es durchaus übliche Konventionen: Betten Sie die IPv4-"Subnetznummer" in einen Teil des IPv6-Präfixes ein, entweder mit BCD (z. B. 10.0.234.0/24 wird zu 2001:db8:abcd:234::/64) oder binär (10.0.234.0/24 wird zu 2001:db8:abcd:ea::/64).

Meine Schnittstellen haben mehrere IPv6-Adressen. Muss das Subnetz für alle gleich sein?

Auf keinen Fall! Von IPv6-Hosts wird erwartet, dass sie in der Lage sind, mehrere IP-Adressen gleichzeitig zu haben, die aus verschiedenen Subnetzen stammen, genau wie IPv4. Wenn sie automatisch mit SLAAC konfiguriert werden, stammen die unterschiedlichen Subnetze möglicherweise von Routerankündigungen von verschiedenen Routern.

Warum sehe ich manchmal in einer IPv6-Adresse ein% und nicht ein/und was bedeutet das?

Sie würden statt des anderen kein sehen. Sie haben unterschiedliche Bedeutungen. Ein Schrägstrich bezeichnet ein Präfix (Subnetz), dh einen Adressblock, der alle mit den gleichen n -Bits beginnen. Eine Adresse ohne Schrägstrich ist eine Hostadresse. Sie können an eine solche Adresse denken, die am Ende eine implizite "/128" hat, dh alle 128 Bits sind angegeben.

Das Prozentzeichen begleitet eine Link-Local-Adresse. In IPv6 verfügt jede Schnittstelle zusätzlich zu allen anderen IP-Adressen über eine Link-Local-Adresse. Die Sache ist jedoch: Link-Local-Adressen befinden sich ausnahmslos immer im fe80::/10 -Block. Wenn wir jedoch versuchen, mit einem Peer über eine lokale Link-Adresse zu sprechen, und der lokale Host über mehrere Schnittstellen verfügt, wie können wir dann wissen, welche Schnittstelle verwendet werden soll, um mit diesem Peer zu sprechen? Normalerweise gibt die Routing-Tabelle an, welche Schnittstelle für ein bestimmtes Präfix verwendet werden soll. Hier wird jedoch angegeben, dass fe80::/10 über jede Schnittstelle erreichbar ist.

Die Antwort ist, dass wir angeben müssen, welche Schnittstelle mit der Syntax address%interface verwendet werden soll. Zum Beispiel fe80::1234:5678:8765:4321%eth0.

Verschwende ich zu viele Subnetze? Werden wir nicht einfach wieder ausgehen?

Niemand weiß es. Wer kann die Zukunft erkennen?

Aber bedenken Sie das. In IPv6 ist die Anzahl der verfügbaren Subnetze das Quadrat der Anzahl der verfügbaren einzelnen Adressen in IPv4. Das ist wirklich ziemlich viel. Nein, ich meine wirklich viel!

Aber trotzdem: Wir geben automatisch eine/32 an jeden ISP aus, der eine anfordert, wir geben eine/48 an jeden einzelnen ISP-Kunden aus. Vielleicht übertreiben wir und wir werden IPv6 doch verschwenden. Dafür gibt es eine Bestimmung: Bisher wurde nur ein Achtel des IPv6-Bereichs zur Verfügung gestellt: 2000::/3. Die Idee ist, dass wir, wenn wir aus dem ersten Achtel ein schreckliches Durcheinander machen und die liberale Allokationspolitik drastisch überarbeiten müssen, sieben weitere Male versuchen, bevor wir in Schwierigkeiten geraten.

Und zu guter Letzt: IPv6 muss nicht ewig dauern. Vielleicht hat es eine längere Lebensdauer als IPv4 (eine beeindruckende Lebensdauer und es ist noch nicht vorbei), aber wie jede Technologie wird es eines Tages aufhören zu spielen. Wir müssen es nur bis dahin schaffen.

IPv6 ist 128 Bit. Warum ist/64 das kleinste empfohlene Subnetz für Hosts?

Zunächst ein wenig ASCII-Art aus den RFCs, um die Terminologie festzulegen:

|         n bits         |   m bits  |       128-n-m bits         |
+------------------------+-----------+----------------------------+
| global routing prefix  | subnet ID |       interface ID         |
+------------------------+-----------+----------------------------+

Das globale Routing-Präfix gibt normalerweise das Gesamtnetzwerk an, zu dem die Adresse gehört. Es sind normalerweise 48 Bits. Die Schnittstellen-ID identifiziert eine bestimmte Netzwerkschnittstelle. Es sind normalerweise 64 Bit. Die restlichen 16 Bits sind Ihre Subnetz-ID.

OK, weiter mit der Erklärung:

Gemäß RFC 4291 - IP-Version 6-Adressierungsarchitektur:

All Global Unicast addresses other than those that start with binary 000 have a 64-bit interface ID field.

Und RFC 5375 - Überlegungen zur IPv6-Unicast-Adresse:

An important part of an IPv4 addressing plan is deciding the length of each subnet prefix. Unlike in IPv4, the IPv6 addressing architecture [RFC4291] specifies that all subnets using Globally Unique Addresses and ULAs always have the same prefix length of 64 bits.

Die Schnittstellen-ID ignoriert also die 000-Präfix-Ausnahme und ist immer genau 64-Bit. Dies ist eine andere Art zu sagen, dass alle lokalen Rundfunknetze immer 64 Bit sind. Wenn Sie eine IPv6-Adresse haben, ist die Netzmaske immer 64 Bit. Nie mehr und nie weniger. Wenn Sie einen größeren Adressraum zugewiesen haben (kürzere Netzmaske als 64 Bit), wird davon ausgegangen, dass Sie diesen Adressraum in 64-Bit-Netzwerke partitionieren und das Routing selbst übernehmen. Wenn Sie ein Netzwerk erhalten haben, das kleiner ist als das Netz (längere Netzmaske), dann hat jemand einen Fehler gemacht.

Warum genau 64-Bit?

IPv6-Adressen werden in der Regel automatisch konfiguriert und nicht zugewiesen. Der Router gibt an, welches Netzwerkpräfix verfügbar ist (Routingpräfix + Subnetz-ID: erste 64 Bits), und Ihr Computer füllt die letzten 64 Bits mit einer eigenen eindeutigen Kennung aus. Wie bekommt Ihr Computer eine eindeutige Kennung? Es gibt einige Möglichkeiten, die gebräuchlichste ist die Verwendung der MAC-Adresse Ihrer Schnittstelle. Sie teilen den MAC in die Hälfte (Herstellerhälfte/Serienhälfte), drehen das Universal-Local-Bit auf der Anbieterseite und verbinden sie mit FF:FE in der Mitte. So wird 00:30:48:01:23:45 zu 0230:48ff:fe01:2345. Setzen Sie nun das angekündigte 64-Bit-Netzwerkpräfix auf die linke Seite und Sie haben Ihre IP-Adresse.

Der wichtige Punkt hier ist, dass es bei IP-Adressenkollisionen nicht zur Folge hat, wenn Sie diesem Schema folgen. Da jedes Gerät in einem bestimmten Broadcast-Netzwerk eine eindeutige MAC-Adresse benötigt, um zu funktionieren, bedeutet das Verbinden der Schnittstellen-ID mit der MAC-Adresse, dass der Broadcast-Verkehr nicht kollidiert, auch keine IPv6-Adressen. Die Verwendung von 64-Bits (anstelle von nur 48 für MAC-Adressen) bietet etwas mehr Spielraum als nur die Adressen, die von diesem Schema bereitgestellt werden (es gibt mehrere).

Gibt es andere Situationen, in denen ich ein kleineres Subnetz als/64 verwenden würde?

Nein. Nicht, wenn du kaputt bist. Nun, Sie haben möglicherweise eine Begründung, die auf den lokalen Anforderungen zum Einrichten des manuellen Routings mit Ihrem vorhandenen Netzwerk basiert. Denken Sie jedoch daran, dass Sie dadurch wahrscheinlich ein Durcheinander machen:

Von RFC 5375 - Überlegungen zur IPv6-Unicast-Adresse:

Using a subnet prefix length other than a/64 will break many features of IPv6, including Neighbor Discovery (ND), Secure Neighbor Discovery (SEND) [RFC3971], privacy extensions [RFC4941], parts of Mobile IPv6 [RFC4866], Protocol Independent Multicast - Sparse Mode (PIM-SM) with Embedded-RP [RFC3956], and Site Multihoming by IPv6 Intermediation (SHIM6) [SHIM6], among others. A number of other features currently in development, or being proposed, also rely on /64 subnet prefixes.

....

However, some network administrators have used prefixes longer than /64 for links connecting routers, usually just two routers on a point-to-point link. On links where all the addresses are assigned by manual configuration, and all nodes on the link are routers (not end hosts) that are known by the network, administrators do not need any of the IPv6 features that rely on/64 subnet prefixes, this can work. Using subnet prefixes longer than/64 is not recommended for general use, and using them for links containing end hosts would be an especially bad idea, as it is difficult to predict what IPv6 features the hosts will use in the future.

Warum wird empfohlen,/127 für Punkt-zu-Punkt-Verbindungen zwischen Routern zu verwenden, und warum wurde dies in der Vergangenheit empfohlen?

Sie möchten vielleicht überarbeiten. RFC 3627 - Verwendung der Präfixlänge/127 zwischen Routern, die als schädlich angesehen werden. Dann werfen Sie einen Blick auf den nachfolgenden RFC 6164 - Verwenden von 127-Bit-IPv6-Präfixen bei Inter-Router-Links.

Der Einwand der Verwendung von Präfixen, die länger als/64 auf Routern sind, hat mit der automatischen Konfiguration der Router zu tun, die in seltenen Fällen möglicherweise fehlschlägt. Der Einwand gegen die Verwendung von Präfixen, die kürzer als/127 sind (nur 2 Hosts), hat mit einer Reihe potenzieller Denial-of-Service-Probleme zu tun, die sich auf Pakete beziehen, die an die nicht gerouteten Adressen gesendet werden. Da Probleme mit dem Denial-of-Service in der Praxis schlimmer sind als theoretische Fehler bei der automatischen Konfiguration, ist/127 der neue Favorit.

Soll ich vorhandene Router-Links in/127 ändern?

Wenn Sie einen IPv6-Router steuern, würde ich empfehlen, die beiden RFCs (sie sind kurz!) zu lesen und für sich selbst zu entscheiden.

Kann ich IPv6-Subnetzen direkt von IPv4-Subnetzen zuordnen?

Stimmt eine IPv4/24 beispielsweise direkt mit einer IPv6/56 oder/120 überein?

Eigentlich ... ja. Erinnern Sie sich an das 000-Präfix, das wir absichtlich vorher ignoriert haben? Nun, hier ist eine Verwendung:

Auf Dual-Stack-Systemen (Systemen mit aktiven IPv4- und IPv6-Stapeln) können Sie IPv4 mithilfe von IPv6-Mechanismen darstellen. Sie nennen es "IPv4-zugeordnete IPv6-Adressen". Das Muster besteht aus Nullen, gefolgt von FFFF, gefolgt von der 32-Bit-IPv4-Adresse.

Also wird 192.168.100.21 zu ::FFFF:C0A8:6415 - oder einfacher: ::FFFF:192.168.100.21. Da dieses Bit auf der rechten Seite eine IPv4-Adresse darstellt, wird es normalerweise in Form von Punkt-Dezimalzahlen ausgegeben.

Da es sich um eine tatsächliche IPv4-Adresse handelt, werden weiterhin IPv4-Header usw. verwendet. Dies bedeutet, dass ein IPv4-Stack vorhanden sein muss und IPv4-Routen festgelegt sein müssen. Der Vorteil ist, dass Sie sowohl IPv4- als auch IPv6-Adressen mit einer einzigen Adressstruktur darstellen können, wodurch die Anwendungsentwicklung vereinfacht werden kann. Es macht keinen Unterschied, was das Netzwerk angeht.

  1. IPv6 hat 128 Bit. Warum ist/64 also das kleinste empfohlene Subnetz für Hosts?

    Diese Präfixgröße wurde ursprünglich in einem älteren RFC empfohlen - es gibt seitdem eine Überarbeitung dieser Richtlinie, bei der das Problem von Neighbor Discovery Attacks in Betracht gezogen wird und die Verwendung von a/126 eine gültige Minderung darstellt - nichtsdestotrotz, wenn Sie PtP einrichten Links mit dem alleinigen Zweck des Routing-Verkehr, ist eine alternative Option, einfach mit einem/64 und Firewall dieses Subnetz zu bleiben. Besser noch, ordne dir einen Pool zu, aus dem du/64 Subnetze ziehst, und habe den gesamten Pool als Ziel auf der Blacklist an deiner Seite (und an jeder anderen Stelle, von der diese Feindseligkeit kommen könnte)

  2. Warum wird empfohlen,/127 für Punkt-zu-Punkt-Verbindungen zwischen Routern zu verwenden, und warum wurde es in der Vergangenheit empfohlen? Soll ich bestehende Router-Links auf/127 umstellen?

    /127 wird nicht zwischen Routern empfohlen und war nie - die Anycast-Adresse für alle Router ist die Adresse des Subnetzes mit nur Nullen; das bedeutet, dass/127 technisch nur zwischen zwei Rechnern gültig ist, wo einer von ihnen NICHT als Router fungiert./126 ist natürlich in Ordnung.

    In jedem Fall würde ich jedoch nicht empfehlen, existierende/64-Links zu wechseln, es sei denn, Ihr Gerät ist anfällig für einen Neighbor Discovery-Cache-Flood-Angriff - und selbst in diesem Fall sollten Sie zuerst feststellen, ob Sie/64 tatsächlich verwenden für die Internet-Konnektivität, wenn die Antwort nein ist, nur Firewall es.

  3. Warum sollten virtuelle Maschinen mit Subnetzen kleiner als/64 bereitgestellt werden?

    Das bricht SLAAC und RAs, es sei denn, du weißt wirklich, was du tust, es ist unwahrscheinlich, dass du einen guten Grund dafür hast - vielleicht hat dir dein Upstream nur eine Single/64 gegeben Aber wenn das der Fall ist, müssen Sie zu ihnen zurückgehen und nach mehr fragen, wenn sie Sie dafür belasten wollen, nach einem neuen Anbieter suchen und ihnen vielleicht einige knifflige E-Mails schicken, die zu den relevanten RFCs verlinken.

  4. Gibt es andere Situationen, in denen ich ein Subnetz kleiner als/64 verwenden würde?

    Ehrlich? wahrscheinlich nicht. Wenn ich an einen legitimen Grund denke, bei dem ein kleineres Subnetz für andere Zwecke als die Verhinderung von NDP-Angriffen vorzuziehen ist, werde ich diesen Abschnitt bearbeiten.

    Umgekehrt sind Situationen, in denen Sie NICHT Subnetze verwenden möchten, die kleiner als/64 sind - insbesondere überall dort, wo Sie eine Umgebung ausführen Hardware-Forwarding-Ausrüstung (Think Name-Marke Router und L3-Switches) - einige werden nicht in der Lage sein, Hardware-Routing von Präfixe länger als/64, andere müssen die Operation in mehrere Vergleiche aufzuteilen, so sollten Sie zumindest Ihre tun Am besten stellen Sie sicher, dass/64 das längste Präfix in Ihrem (OSPF/ISIS/EIGRP/etc.) Backbone ist.

  5. Kann ich direkt aus IPv4-Subnetzen IPv6-Subnetzen zuordnen? Zum Beispiel entspricht ein IPv4/24 direkt einem IPv6/56 oder/120?

    Offiziell ist :: ffff: xxxx das Format für eine IPv6-gemappte IPv4-Adresse - es gibt natürlich auch eine Reihe von Übergangsmechanismen, nämlich 6to4 und seine relative, sechste, die eine IPv4-Adresse in eine globale IPv6-Adresse abbildet um IPv6-Zugriff über IPv4 bereitzustellen, indem ein IPv6-Präfix erstellt wird, das von der übertragenen IPv4-Adresse abgeleitet wird.

  6. Meine Schnittstellen haben mehrere IPv6-Adressen. Muss das Subnetz für alle gleich sein?

    Nein, die Verwendung unterschiedlicher Adressen und Subnetzgrößen über dieselbe Schnittstelle sollte kein Problem darstellen. Wenn dies der Fall ist, ist die Implementierung fehlerhaft. Eine bessere Frage ist natürlich, warum würdest du das tun?

  7. Warum sehe ich in einer IPv6-Adresse manchmal ein% und nicht ein/und was bedeutet das?

    Dies ist ein Delimiter, der im Allgemeinen auf Link-lokale Adressen angewendet wird (fe80 ::/12) - da die gleiche link-lokale Adresse legitim auf mehreren Schnittstellen existieren kann, wird der% delimiter verwendet, um zu spezifizieren, welche Schnittstelle gemeint ist. Linux macht im Allgemeinen die Angabe der Schnittstelle obligatorisch, wenn Operationen ausgeführt werden, die einen Link-Local-Prozess betreffen. Windows Vista/2008 und darüber hinaus sind etwas schlauer und beschweren sich erst, wenn ein Link-Local nicht eindeutig ist.

  8. Verschwende ich zu viele Subnetze? Werden wir nicht einfach wieder rauslaufen?

    Nein. Dies ist ein totes Pferd, das zu oft geprügelt wurde - das aktuelle globale IPv6 - Internet ist 2000 ::/3 - es gibt mehrere weitere Präfixe, die IANA benutzen könnte, wenn irgendwie jedes RIR auf dem Planet schaffte es, ihre Adressbestände zu erschöpfen. Also nein, wir werden keinen Platz mehr haben, und selbst wenn wir es tun, braucht es einen Federstrich, um ein neues Präfix aufzustellen, keine technische Änderung. Das einzige, was diese Frage wirklich hervorhebt, ist die Unfähigkeit des menschlichen Geistes, vollständig zu verstehen, wie lächerlich groß der Adressraum ist.

  9. Was unterscheidet die IPv6-Subnetze anders als IPv4-Subnetze?

    Abgesehen davon, dass Sie sich nicht darum kümmern, wie viel Speicherplatz Sie verwenden, denken Sie daran, dass es keine Broadcast-Adresse gibt und dass die "Subnetz-Null" -Adresse jetzt die Allrouter-Anycast-Adresse ist (was im Grunde eine Adresse ist, die implizit existiert) Alle Knoten sind für die Weiterleitung von IPv6-Paketen konfiguriert. Dies hat den nützlichen Nebeneffekt, dass Sie die Adresse mit allen Nullen als Standardroute in einem Netzwerk verwenden können (Nein, es wird keine Paketduplizierung verursacht, sondern ANYcast und nicht MULTIcast) Bedenken Sie jedoch, dass der Host alle paar Sekunden zwischen Routern umschalten kann. Daher ist dies für ein Stateful Firewall-Setup nicht geeignet, wenn die Verbindungsverfolgung nicht zwischen ihnen synchronisiert ist.

    Abgesehen davon besteht der andere große Unterschied darin, dass sich IPv6 um doppelte Adressen und tote Nachbarn (NUD) kümmert - im Gegensatz zu IPv4 verweigert ein Host die Verwendung einer Adresse, wenn er feststellen kann, dass bereits ein anderer Knoten auf der Verbindung ist damit umzugehen. NUD auf der anderen Seite ist nützlich, wenn Sie statische Routen konfigurieren - Sie können tatsächlich mehrere separate Routen zu einem Präfix mit unterschiedlichen Metriken definieren und sie werden tatsächlich funktionieren, anders als in IPv4, wo die niedrigste Metrikroute verwendet wird, unabhängig davon, ob die nächste -hop ist tot oder lebendig (obwohl dies für einige IPv4-Implementierungen, die ARP verwenden, um Routen wie Cisco und andere große Router-Anbieter zu validieren, nicht zutrifft)

    TLDR; IPv6 erkennt doppelte Adressen & amp; unerreichbare Nachbarn. Die All-Zero-Adresse ist Allrouter Anycast und es gibt keine solche Sache wie Broadcast, All-One ist eine reguläre Adresse.

Für diejenigen, die sich fragen, wo in den Spezifikationen die/64-Anforderung für SLAAC herkommt, hier einige zusätzliche Referenzen:

Von IPv6 Stateless Address Autoconfiguration (RFC 4862):

If the sum of the prefix length and interface identifier length does not equal 128 bits, the Prefix Information option MUST be ignored. [...]

It is the responsibility of the system administrator to ensure that the lengths of prefixes contained in Router Advertisements are consistent with the length of interface identifiers for that link type.

Und von IP Version 6 Adressierungsarchitektur (RFC 4291):

For all unicast addresses, except those that start with the binary value 000, Interface IDs are required to be 64 bits long and to be constructed in Modified EUI-64 format.

Da die Schnittstellen-ID 64 Bit lang sein muss und die Summe der Präfixlänge und der Schnittstellen-ID-Länge 128 sein muss, ist die einzige mögliche Länge des Präfixes bei Verwendung von SLAAC 64 Bit.

IPv6 is 128 bits, so why is/64 the smallest recommended subnet for hosts?

Weil die IPv6-Befürworter die Idee der autonomen Konfiguration ohne Status mögen.

Wenn Sie eine andere Subnetzgröße wählen, wird die automatische Konfiguration von Stateless unterbrochen. Einige andere Kleinigkeiten können ebenfalls kaputt gehen. Lesen Sie dazu rfc7421, um weitere Informationen zu erhalten.

Persönlich halte ich die statuslose Autokonfiguration sowieso für eine dumme Idee. Dies führt zu unlesbaren Adressen und gibt Ihnen grundsätzlich keine Kontrolle über die Adressierung, außer der Blockierung des Subnetzes.

Natürlich ist die Sache mit Konventionen, wenn Sie ihnen folgen und Dinge schief laufen, können Sie auf die Convention zeigen. Wenn Sie sich weigern, sie zu befolgen und Dinge schief laufen, ist es Ihre Schuld.

Why is it recommended to use/127 for point to point links between routers,

Durch die Verwendung von Subnetzen mit einer geringen Anzahl verfügbarer Adressen werden Erschöpfungsangriffe der Nachbarermittlung vermieden.

Diese Argumentation gilt natürlich nicht nur für Punkt-zu-Punkt-Links. Ich denke, es war politisch möglich, diese Empfehlung für Punkt-zu-Punkt-Router-Links zu machen, aber politisch nicht für andere Links.

Why would virtual machines be provisioned with less than a/64 worth of addresses?

Wir müssen hier unterscheiden. Es gibt zwei Möglichkeiten, mit denen ein Hosting-Anbieter einem Computer Adressen zuweisen kann (physisch oder virtuell).

Sie können ihnen "on-link" -Adressen zuweisen, von denen erwartet wird, dass der Rechner auf Anforderungen der Nachbarermittlung antwortet. Einige Hosting-Anbieter entscheiden sich dafür, jedem Rechner eine a/64 zu geben, die Vorteile in der Adressmobilität bietet, andere geben jedem VLAN eine a/64 und geben dann den einzelnen Maschinen Unterblöcke derjenigen, die weniger Adressen verwenden, und können bedeuten, dass der lokale Datenverkehr lokal bleibt an einen Router übergeben.

Oder sie können den Rechner als Router behandeln und ihm einen gerouteten Block zuweisen. In diesem Fall müssten genügend Adressen vorhanden sein, um alle internen Subnetze zu adressieren. Wenn Sie die Konvention "Alle Subnetze müssen/64" befolgen, bedeutet dies, dass Sie mindestens a/64 und möglicherweise mehr zuweisen müssen. Dies ist für Maschinen mit "Netzwerken innerhalb der Maschine" sinnvoll, beispielsweise für einen Container-Host.

Can I map directly from IPv4 subnets to IPv6 subnets? For instance, does an IPv4/24 correspond directly to an IPv6/56 or/120?

Eine solche Zuordnung ist eine Angelegenheit der lokalen Richtlinien.

My interfaces have several IPv6 addresses. Must the subnet be the same for all of them?

Nein

Why do I sometimes see a % rather than a/in an IPv6 address and what does it mean?

% ist eine Schnittstellenkennung. Es wird in Verbindung mit linklokalen Adressen verwendet. Dies ist erforderlich, da eine Maschine mehrere Schnittstellen haben kann und die Netzwerke, die mit diesen Schnittstellen verbunden sind, überlappende lokale Adressen haben können.

Am I wasting too many subnets? Aren't we just going to run out again?

Ich würde mir nicht allzu viele Sorgen machen.

Selbst mit der seltsamen Entscheidung der IPv6-Designer, einen 128-Bit-Adressraum zu verwenden und dann bei stateless Auto-Konfiguration fast die Hälfte davon wegzuwerfen, bietet IPv6 immer noch erheblich mehr Speicherplatz als IPv4.

Und wenn es einen Krach gab, brauchte es nicht viel mehr als einen Federstrich, um diese seltsame Entscheidung rückgängig zu machen.

Ein weit größeres Problem bei der IPv6-Skalierbarkeit ist die Größe der Routing-Tabelle. Von IPv6-NAT wird dringend abgeraten. Das Betreiben eines großen Netzwerks für vom Provider zugewiesene Adressen führt zu einem erheblichen Risiko der Provider-Sperrung.

Daher glaube ich, dass sich die Nachfrage nach anbieterunabhängigem IPv6-Bereich mit der zunehmenden Durchdringung von IPv6 in Unternehmensnetzwerke explosionsartig erhöhen wird.