it-swarm.com.de

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

Dies ist eine kanonische Frage über IPv6-Subnetze.

Verbunden:

Ich weiß viel über IPv4-Subnetz und während ich mich auf die Bereitstellung (Bereitstellung | Bearbeitung) eines IPv6-Netzwerks vorbereite, muss ich wissen, wie viel von diesem Wissen übertragbar ist und was ich noch lernen muss. IPv6 scheint auf den ersten Blick viel komplexer zu sein als IPv4. Also würde ich gerne wissen:

  • IPv6 ist 128 Bit. Warum ist/64 das kleinste empfohlene Subnetz für Hosts? Im Zusammenhang damit:
    • Warum wird empfohlen,/127 für Punkt-zu-Punkt-Verbindungen zwischen Routern zu verwenden, und warum wurde dies in der Vergangenheit empfohlen? Sollte ich vorhandene Router-Links ändern, um/127 zu verwenden?
    • Warum sollten virtuelle Maschinen mit Adressen im Wert von weniger als/64 bereitgestellt werden?
    • Gibt es andere Situationen, in denen ich ein Subnetz kleiner als/64 verwenden würde?
  • Kann ich IPv4-Subnetze direkt IPv6-Subnetzen zuordnen? Entspricht ein IPv4/24 beispielsweise direkt einem IPv6/56 oder/120?
  • Meine Schnittstellen haben mehrere IPv6-Adressen. Muss das Subnetz für alle gleich sein?
  • Warum sehe ich manchmal ein% anstelle eines/in einer IPv6-Adresse und was bedeutet das?
  • Verschwende ich zu viele Subnetze? Werden wir nicht einfach wieder rauslaufen?
  • Inwiefern unterscheidet sich das IPv6-Subnetz von dem IPv4-Subnetz?
120
Michael Hampton

Das erste, was über IPv6-Subnetze erwähnt werden sollte, ist, dass eine andere Denkweise erforderlich ist. In IPv4 denken Sie normalerweise darüber nach, wie viele Adressen verfügbar sind und wie Sie jedem Endbenutzer genug davon zuweisen können. In IPv6 denken Sie normalerweise darüber nach, wie viele (/ 64) Subnetze verfügbar sind und wie Sie sie Endbenutzern zuweisen können. Sie machen sich fast nie Gedanken darüber, wie viele IP-Adressen in einem bestimmten Subnetz verwendet werden. Mit Ausnahme einiger Sonderfälle wie Punkt-zu-Punkt-Links stehen in jedem Subnetz einfach weit mehr Adressen zur Verfügung, als jemals benötigt werden. Stattdessen müssen Sie sich nur um die Zuweisung von Subnetzen kümmern, nicht um Hosts in diesen.

IPv6-Subnetze sind normalerweise/64, da dies erforderlich ist, damit SLAAC (automatische Konfiguration zustandsloser Adressen) funktioniert. Auch wenn SLAAC nicht verwendet wird, kann es andere Gründe für die Verwendung von/64 geben. Beispielsweise gibt es möglicherweise einige Endbenutzergeräte, die nur/64 annehmen, oder Routing-Subnetze, die länger als/64 sind, sind auf einigen Routern möglicherweise ineffizient, da der Router-Implementierer den Fall von/64 oder kürzeren Routen zum Speichern optimiert hat Routing-Tabellenspeicher.

Warum wird empfohlen,/127 für Punkt-zu-Punkt-Links zu verwenden

Für den speziellen Fall von Punkt-zu-Punkt-Verbindungen wird/127 anstelle von/64 empfohlen, um eine Sicherheitsanfälligkeit zu vermeiden, bei der Paketadressen an eine der Billiarden nicht verwendeter Adressen im Subnetz unerwünschte Nachbaranforderungsanforderungen und Tabelleneinträge verursachen könnte einen Router ertrinken. Solche falsch adressierten Pakete können böswillig oder versehentlich sein. Aber selbst wenn Sie eine Punkt-zu-Punkt-Verbindung tatsächlich als/127 konfigurieren, empfehlen einige Leute, ein ganzes/64 zuzuweisen, nur um konsistent zu sein.

Warum sollten virtuelle Maschinen mit Subnetzen versehen werden, die kleiner als/64 sind?

Ich weiß nicht genau, warum virtuelle Maschinen mit Subnetzen ausgestattet werden, die kleiner als/64 sind. Vielleicht, weil ein Hosting-Anbieter davon ausgegangen ist, dass ein Server wie ein Endbenutzer ist und nur ein einziges (/ 64) Subnetz benötigt, ohne zu erwarten, dass der Server tatsächlich eine Sammlung von VMs ist, für die eine interne Routing-Topologie erforderlich ist? Dies könnte auch einfach geschehen, um das Speichern des Adressierungsplans zu vereinfachen: Der Host erhält PREFIX::/64, Dann erhält jeder VM PREFIX:0:NNNN::/96, Wo sich NNNN befindet einzigartig für die VM und die VM können PREFIX:0:NNNN:XXXX:YYYY nach Belieben zuweisen.

Kann ich IPv4-Subnetzen direkt IPv6-Subnetzen zuordnen? Entspricht ein IPv4/24 beispielsweise direkt einem IPv6/56 oder/120?

Aus einer einfachen Perspektive der Funktionsweise von Adressierung und Routing hat die Präfixlänge in IPv6 und IPv4 dieselbe Bedeutung. Auf dieser Ebene können Sie eine Analogie wie "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" erstellen. Aber dieser Vergleich ist nicht wirklich passend. In IPv6 haben sich starke Konventionen herausgebildet, die dazu führen, dass die Aufteilung der Netzwerkgrößen eher der alten Welt klassischer Netzwerke in IPv4 ähnelt. Natürlich hat IPv6 keine klassische Adressierung wieder eingeführt, bei der die wichtigsten wenigen Bits der Adresse eine bestimmte Netzmaske erzwingen, aber was IPv6 tut hat, sind bestimmte [defacto/konventionell] Standardnetzwerkgrößen ::

  • /64 : Die Grundgröße eines einzelnen Subnetzes: LAN, WAN, Adressblock für virtuelle Webhosts usw. "Normale" Subnetze sind Ich hätte nie erwartet, dass es kleiner (längeres Präfix) als/64 ist. Es wird nie erwartet, dass Subnetze größer (kürzeres Präfix) als/64 sind, da die Hostadressen von/64 weitaus höher sind, als wir uns vorstellen können.
  • /56 : Ein Block von 256 grundlegenden Subnetzen. Obwohl die aktuellen Richtlinien es ISPs ermöglichen, Blöcke mit einer Größe von bis zu/48 an jeden Endbenutzer zu verteilen und ihre Adressverwendung dennoch als gerechtfertigt zu betrachten, können (und tun dies bereits) einige ISPs entscheiden, Kunden mit einer/56 als Kompromiss zuzuweisen zwischen Zuweisung viele Subnetze für sie und Adresswirtschaft.
  • /48 : Ein Block mit 65536 Basis-Subnetzen und die empfohlene Blockgröße, die jeder ISP-Kundenendstandort erhalten sollte.
  • /32 : Die Standardblockgröße, die die meisten ISPs jedes Mal erhalten, wenn sie mehr Adressen von einer regionalen Adressregistrierung anfordern.

Innerhalb von Dienstanbietern und Unternehmensnetzwerken sind viel mehr Präfixlängen als diese 4 zu sehen. Bei der Betrachtung der Routing-Tabellen von Routern in diesen Netzwerken haben IPv4 und IPv6 viele Gemeinsamkeiten, einschließlich des größten Teils der Funktionsweise von Routing: Routen für längere Präfixe überschreiben Abdeckungsrouten für kürzere Präfixe, sodass es möglich ist, zu aggregieren (kürzer zu machen) und zu bohren Routen runter (länger machen). Wie in IPv4 können Routen zu größeren Blöcken mit kürzeren Präfixen zusammengefasst oder zusammengefasst werden, um die Größe der Routing-Tabellen zu minimieren.

Eine andere Frage der Zuordnung zwischen IPv4 und IPv6 wäre, wie IPv4- und IPv6-Zuweisungen auf Dual-Stack-Computern harmonisiert werden können, damit Adressierungspläne leicht verstanden werden können. Bisher gibt es sicherlich gängige Konventionen, um dies zu tun: Betten Sie die IPv4- "Subnetznummer" in einen Teil des IPv6-Präfix ein, entweder mit BCD ( zB wird 10.0.234.0/24 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?

Absolut nicht! Es wird erwartet, dass IPv6-Hosts durch mehrere IP-Adressen, die aus verschiedenen Subnetzen stammen, wie IPv4, über mehrere IP-Adressen gleichzeitig multihomed werden können. Wenn sie mit SLAAC automatisch konfiguriert werden, stammen die verschiedenen Subnetze möglicherweise aus Routerankündigungen von verschiedenen Routern.

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

Sie würden nicht eins statt das andere sehen. Sie haben unterschiedliche Bedeutungen. Ein Schrägstrich kennzeichnet ein Präfix (Subnetz), dh einen Adressblock, der alle mit denselben n -Bits beginnt. Eine Adresse ohne Schrägstrich ist eine Hostadresse. Sie können sich eine solche Adresse mit einem impliziten "/ 128" am Ende vorstellen, was bedeutet, dass alle 128 Bits angegeben sind.

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

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

Verschwende ich zu viele Subnetze? Gehen wir nicht einfach wieder raus?

Niemand weiß. Wer kann die Zukunft erzählen?

Aber bedenken Sie dies. 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 ziemlich viel!

Aber dennoch: Wir verteilen automatisch eine/32 an jeden ISP, der eine anfordert, und wir verteilen eine/48 an jeden einzelnen ISP-Kunden. Vielleicht übertreiben wir und verschwenden doch IPv6. Dafür gibt es jedoch eine Bestimmung: Bisher wurde nur ein Achtel des IPv6-Speicherplatzes zur Verfügung gestellt: 2000::/3. Die Idee ist, dass wir es noch sieben Mal versuchen müssen, bevor wir in Schwierigkeiten geraten, wenn wir das erste Achtel schrecklich durcheinander bringen und die liberale Allokationspolitik drastisch überarbeiten müssen.

Und schließlich: IPv6 muss nicht ewig dauern. Vielleicht hat es eine längere Lebensdauer als IPv4 (eine beeindruckende Lebensdauer bereits und es ist noch nicht vorbei), aber wie jede Technologie wird es eines Tages keine Rolle mehr spielen. Wir müssen es nur bis dahin schaffen.

143
Celada

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

Zunächst ein wenig ASCII Kunst 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 identifiziert normalerweise das gesamte Netzwerk, zu dem die Adresse gehört. Es sind normalerweise 48 Bit. Die Schnittstellen-ID identifiziert eine bestimmte Netzwerkschnittstelle. Es ist normalerweise 64-Bit. Die restlichen 16 Bit sind Ihre Subnetz-ID.

OK, weiter mit der Erklärung:

Gemäß RFC 4291 - IP Version 6 Adressierungsarchitektur :

Alle anderen globalen Unicast-Adressen als die, die mit binär 000 beginnen, haben ein 64-Bit-Schnittstellen-ID-Feld.

Und Überlegungen zur Zuweisung von RFC 5375 - IPv6-Unicast-Adressen :

Ein wichtiger Teil eines IPv4-Adressierungsplans ist die Festlegung der Länge jedes Subnetzpräfixes. Im Gegensatz zu IPv4 gibt die IPv6-Adressierungsarchitektur [RFC4291] an, dass alle Subnetze, die global eindeutige Adressen und ULAs verwenden, immer dieselbe Präfixlänge von 64 Bit haben.

Wenn Sie also die 000-Präfix-Ausnahme ignorieren, lautet die Schnittstellen-ID immer 64-Bit genau. Dies ist eine andere Art zu sagen, dass alle lokalen Broadcast-Netzwerke immer 64-Bit sind. Wenn Sie eine IPv6-Adresse haben, lautet die Netzmaske immer 64 Bit. Nie mehr, nie weniger. Wenn Ihnen ein größerer Adressraum zugewiesen wurde (kürzere Netzmaske als 64-Bit), wird davon ausgegangen, dass Sie diesen Adressraum in 64-Bit-Netzwerke aufteilen und das Routing selbst durchführen. Wenn Sie ein kleineres Netzwerk erhalten haben (längere Netzmaske), hat es jemand vermasselt.

Warum also genau 64-Bit?

IPv6-Adressen werden in der Regel automatisch konfiguriert und nicht zugewiesen. Der Router gibt an, welches Netzwerkpräfix verfügbar ist (Routing-Präfix + Subnetz-ID: erste 64-Bit), und Ihr Computer füllt die letzten 64-Bit mit seiner eigenen eindeutigen Kennung aus. Wie kommt Ihr Computer auf eine eindeutige Kennung? Es gibt einige Möglichkeiten. Am häufigsten wird die MAC-Adresse Ihrer Schnittstelle verwendet. Sie teilen den MAC in zwei Hälften (Herstellerhälfte/serielle Hälfte), drehen das universal-lokale Bit auf der Herstellerseite um und verbinden sie wieder mit FF:FE mitten drin. Damit 00:30:48:01:23:45 wird 0230:48ff:fe01:2345. Fügen Sie nun das angekündigte 64-Bit-Netzwerkpräfix links davon ein, und Sie haben Ihre IP-Adresse.

Der wichtige Punkt hierbei ist, dass bei Befolgung dieses Schemas keine IP-Adresskollisionen auftreten. Da jedes Gerät in einem bestimmten Broadcast-Netzwerk eine eindeutige MAC-Adresse benötigt, um zu funktionieren, bedeutet das Verknüpfen der Schnittstellen-ID mit der MAC-Adresse, dass IPv6-Adressen auch nicht funktionieren, solange der Broadcast-Verkehr nicht kollidiert. Die Verwendung von 64-Bit (anstelle von nur 48 für MAC-Adressen) bietet ein wenig Spielraum, der über die von diesem Schema bereitgestellten Adressen hinausgeht (es gibt mehrere andere).

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

Nee. Nicht, wenn du nicht kaputt bist. Möglicherweise haben Sie eine Begründung, die auf den lokalen Anforderungen für die Einrichtung des manuellen Routings mit Ihrem vorhandenen Netzwerk basiert. Aber denken Sie daran, dass Sie damit wahrscheinlich ein Chaos anrichten:

Von RFC 5375 - Überlegungen zur Zuweisung von IPv6-Unicast-Adressen :

Die Verwendung einer anderen Subnetzpräfixlänge als a/64 beeinträchtigt viele Funktionen von IPv6, einschließlich Neighbor Discovery (ND), Secure Neighbor Discovery (SEND) [RFC3971], Datenschutzerweiterungen [RFC4941], Teile von Mobile IPv6 [RFC4866] und Protocol Independent Multicast - Sparse Mode (PIM-SM) mit Embedded-RP [RFC3956] und Site Multihoming durch IPv6 Intermediation (SHIM6) [SHIM6] unter anderem. Eine Reihe anderer Funktionen, die derzeit entwickelt werden oder vorgeschlagen werden, basieren ebenfalls auf/64-Subnetzpräfixen.

....

Einige Netzwerkadministratoren haben jedoch Präfixe verwendet, die länger als/64 für Verbindungen sind, die Router verbinden, normalerweise nur zwei Router auf einer Punkt-zu-Punkt-Verbindung. Bei Links, bei denen alle Adressen durch manuelle Konfiguration zugewiesen werden und alle Knoten auf dem Link Router (keine Endhosts) sind, die dem Netzwerk bekannt sind, benötigen Administratoren keine der IPv6-Funktionen, die auf/64-Subnetzpräfixen basieren kann arbeiten. Die Verwendung von Subnetzpräfixen, die länger als/64 sind, wird für die allgemeine Verwendung nicht empfohlen, und die Verwendung für Links mit Endhosts wäre eine besonders schlechte Idee, da es schwierig ist, vorherzusagen, welche IPv6-Funktionen die Hosts in Zukunft verwenden werden.

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

Möglicherweise möchten Sie RFC 3627 - Verwendung der Präfixlänge/127 zwischen Routern, die als schädlich eingestuft werden , beschönigen. Schauen Sie sich dann den nachfolgenden RFC 6164 - Verwenden von 127-Bit-IPv6-Präfixen für Inter-Router-Verbindungen an.

Der Einwand, auf Routern Präfixe zu verwenden, die länger als/64 sind, hat mit der automatischen Konfiguration des Routers zu tun, die unter seltenen Umständen 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 reale Denial-of-Service-Probleme schlimmer sind als theoretische Fehler bei der automatischen Konfiguration, ist/127 der neue Favorit.

Soll ich vorhandene Router-Links ändern, um/127 zu verwenden?

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

Kann ich IPv4-Subnetze direkt IPv6-Subnetzen zuordnen?

Entspricht beispielsweise ein IPv4/24 direkt einem IPv6/56 oder/120?

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

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

Damit, 192.168.100.21 wird ::FFFF:C0A8:6415 - oder einfacher: ::FFFF:192.168.100.21. Da dieses rechte Bit eine IPv4-Adresse darstellt, wird es traditionell in Punkt-Dezimal-Form geschrieben.

Da dies eine tatsächliche IPv4-Adresse ist, werden weiterhin IPv4-Header usw. verwendet. Dies bedeutet, dass ein IPv4-Stapel vorhanden sein muss, IPv4-Routen festgelegt werden müssen und all das. Der Vorteil besteht darin, dass Sie sowohl IPv4- als auch IPv6-Adressen mithilfe einer einzigen Adressstruktur darstellen können, was die Anwendungsentwicklung vereinfachen kann. Für das Netzwerk macht es keinen Unterschied.

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

    Diese Präfixgröße wurde ursprünglich in einem älteren RFC empfohlen. Seitdem wurde diese Richtlinie überarbeitet, wobei das Problem der Neighbor Discovery Attacks berücksichtigt wird und die Verwendung von/126 eine gültige Abschwächung darstellt. Wenn Sie jedoch PtP-Links mit dem einrichten Der einzige Zweck des Routing des Datenverkehrs besteht darin, einfach bei einer/64 und einer Firewall zu bleiben, die das Subnetz ist. Besser noch, weisen Sie sich einen Pool zu, aus dem Sie/64-Subnetze ziehen, und haben Sie den gesamten Pool als Ziel auf der schwarzen Liste an Ihrem Rand (und an jedem anderen Ort, von dem die Feindseligkeit ausgehen könnte).

  2. Warum wird empfohlen,/127 für Punkt-zu-Punkt-Verbindungen zwischen Routern zu verwenden, und warum wurde dies in der Vergangenheit empfohlen? Sollte ich vorhandene Router-Links ändern, um/127 zu verwenden?

    / 127 wird zwischen Routern nicht empfohlen und war es auch nie - die Anycast-Adresse aller Router ist die Null-Adresse des Subnetzes. Dies bedeutet, dass/127 technisch nur zwischen zwei Computern gültig ist, von denen einer [~ # ~] nicht [~ # ~] als Router fungiert./126 ist natürlich in Ordnung.

    In jedem Fall würde ich jedoch nicht empfehlen, vorhandene/64-Verbindungen 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 zunächst feststellen, ob Sie diese/64 tatsächlich für die Internetverbindung verwenden Wenn die Antwort nein ist, Firewall es einfach.

  3. Warum sollten virtuelle Maschinen mit Subnetzen versehen werden, die kleiner als/64 sind?

    Dies bricht SLAAC und RAs, es sei denn, Sie wissen wirklich, wirklich, was Sie tun. Es ist unwahrscheinlich, dass Sie einen guten Grund dafür haben - vielleicht hat Ihnen Ihr Upstream nur eine Single/64 gegeben, aber Wenn dies der Fall ist, müssen Sie zu ihnen zurückkehren und mehr verlangen. Wenn sie Ihnen dafür eine Gebühr berechnen möchten, suchen Sie nach einem neuen Anbieter und senden Sie ihnen möglicherweise auch einige snarky E-Mails, die auf die entsprechenden RFCs verweisen.

  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, aus dem ein kleineres Subnetz für andere Zwecke als die Verhinderung von NDP-Angriffen vorzuziehen ist, werde ich diesen Abschnitt bearbeiten.

    Umgekehrt gibt es Situationen, in denen Sie [~ # ~] nicht [~ # ~] wollen würden Um Subnetze kleiner als/64 zu verwenden - insbesondere überall dort, wo Sie eine Umgebung mit Hardware-Weiterleitungsgeräten betreiben (denken Sie an Router von Markenherstellern und L3-Switches) - können einige kein Hardware-Routing für Präfixe durchführen, die länger als/64 sind, andere müssen sich aufteilen Wenn Sie mehrere Vergleiche durchführen, sollten Sie zumindest Ihr Bestes geben, um sicherzustellen, dass/64 das längste Präfix in Ihrem Backbone (OSPF/ISIS/EIGRP/etc.) ist.

  5. Kann ich IPv4-Subnetzen direkt IPv6-Subnetzen zuordnen? Entspricht ein IPv4/24 beispielsweise direkt einem IPv6/56 oder/120?

    Offiziell ist :: ffff: xxxx das Format für eine IPv6-zugeordnete IPv4-Adresse - es gibt natürlich auch eine Reihe von Übergangsmechanismen, nämlich 6to4 und seine relative 6., die eine IPv4-Adresse für diese Zwecke einer globalen IPv6-Adresse zuordnen Bereitstellung eines IPv6-Zugriffs über IPv4 durch Erstellen eines IPv6-Präfixes, 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 ja, ist die Implementierung fehlerhaft. Eine bessere Frage ist natürlich warum würden Sie das tun?

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

    Dies ist ein Trennzeichen, das im Allgemeinen auf verbindungslokale Adressen angewendet wird (z. B. 80 ::/12). Da dieselbe verbindungslokale Adresse auf mehreren Schnittstellen legitim vorhanden sein kann, wird das% -Trennzeichen verwendet, um anzugeben, welche Schnittstelle gemeint ist. Unter Linux ist die Angabe der Schnittstelle im Allgemeinen obligatorisch, wenn Vorgänge mit einem Link-Local ausgeführt werden. Windows Vista/2008 und höher sind etwas intelligenter und beschweren sich nur, 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 ausgepeitscht wurde. [~ # ~] waaaaaaaay [~ # ~] zu oft - das aktuelle globale IPv6-Internet ist 2000 ::/3 - es gibt mehrere weitere Präfixe, die IANA verwenden könnte, wenn es irgendwie jedem RIR auf dem Planeten gelingen würde, seine Adressbestände zu erschöpfen. Also nein, wir werden nicht genug Platz haben, und selbst wenn wir dies tun, ist ein Fingerdruck erforderlich, um ein neues Präfix aufzurufen, 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. Inwiefern unterscheidet sich das IPv6-Subnetz von dem IPv4-Subnetz?

    Denken Sie daran, dass es keine Broadcast-Adresse gibt und dass die "Subnetz-Null" -Adresse jetzt die Anycast-Adresse aller Router ist (im Grunde genommen eine Adresse, die implizit auf allen konfigurierten Knoten vorhanden ist) IPv6-Pakete weiterleiten) - Dies hat den nützlichen Nebeneffekt, dass Sie die Adresse aller Nullen als Standardroute in einem Netzwerk verwenden können (nein, dies führt nicht zu Paketduplikationen, es handelt sich um ANYcast, nicht um MULTIcast) Der Host wechselt jedoch möglicherweise alle paar Sekunden zwischen den Routern. Dies ist daher für ein Stateful-Firewall-Setup nicht geeignet, wenn die Verbindungsverfolgung nicht zwischen ihnen synchronisiert wird.

    Abgesehen davon besteht der andere Hauptunterschied darin, dass IPv6 sich um doppelte Adressen und tote Nachbarn (NUD) kümmert. Im Gegensatz zu IPv4 lehnt ein Host die Verwendung einer Adresse ab, wenn er feststellen kann, dass bereits ein anderer Knoten auf der Verbindung diese verwendet . NUD hingegen 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 diese funktionieren tatsächlich, anders als in IPv4, wo die Route mit der niedrigsten Metrik verwendet wird, unabhängig davon, ob die nächste verwendet wird -hop ist tot oder lebendig (obwohl dies für einige IPv4-Implementierungen, die ARP zur Validierung von Routen wie Cisco und anderen großen Router-Anbietern verwenden, möglicherweise nicht zutrifft)

    TLDR; IPv6 erkennt doppelte Adressen und nicht erreichbare Nachbarn. Die All-Zero-Adresse ist All-Router Anycast und es gibt keine Broadcast, All-One ist eine reguläre Adresse.

20
Olipro

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

Von IPv6-Autokonfiguration für zustandslose Adressen (RFC 4862) :

Wenn die Summe aus Präfixlänge und Schnittstellenbezeichnungslänge nicht 128 Bit beträgt, MUSS die Option Präfixinformationen ignoriert werden. [...]

Es liegt in der Verantwortung des Systemadministrators, sicherzustellen, dass die in Router Advertisements enthaltenen Präfixlängen mit der Länge der Schnittstellenkennungen für diesen Verbindungstyp übereinstimmen.

Und von IP Version 6 Adressierungsarchitektur (RFC 4291) :

Für alle Unicast-Adressen mit Ausnahme derjenigen, die mit dem Binärwert 000 beginnen, müssen die Schnittstellen-IDs 64 Bit lang sein und im modifizierten EUI-64-Format erstellt werden.

Da die Schnittstellen-ID 64 Bit lang sein muss und die Summe aus Präfixlänge und Schnittstellen-ID 128 betragen muss, beträgt die einzig mögliche Länge des Präfixes bei Verwendung von SLAAC 64 Bit.

3
Sander Steffann

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

Weil die IPv6-Befürworter die Idee einer zustandslosen automatischen Konfiguration mochten.

Wenn Sie sich für eine andere Subnetzgröße entscheiden, wird die zustandslose automatische Konfiguration unterbrochen. Einige andere kleinere Dinge können ebenfalls kaputt gehen. Lesen Sie rfc7421 für weitere Details.

Persönlich halte ich zustandslose Autokonfiguration sowieso für eine blöde Idee. Dies führt zu unlesbaren Adressen und gibt Ihnen im Grunde keine Kontrolle über die Adressierung, außer das Zuweisen des Blocks zum Subnetz.

Natürlich ist die Sache mit Konventionen, wenn Sie ihnen folgen und Dinge schief gehen, können Sie auf die Konvention verweisen, wenn Sie sich weigern, ihnen zu folgen und Dinge schief gehen, wird es Ihre Schuld sein.

Warum wird empfohlen,/127 für Punkt-zu-Punkt-Verbindungen zwischen Routern zu verwenden?

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

Natürlich gilt diese Argumentation 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 möglich, sie für andere Links zu machen.

Warum sollten virtuelle Maschinen mit Adressen im Wert von weniger als/64 bereitgestellt werden?

Wir müssen hier einen Unterschied machen. Es gibt zwei Möglichkeiten, wie ein Hosting-Anbieter einer Maschine Adressen zuweisen kann (physisch oder virtuell).

Sie können ihnen "On-Link" -Adressen zuweisen, an denen der Computer auf Nachbarerkennungsanforderungen antworten soll. Einige Hosting-Anbieter haben sich dafür entschieden, jedem Computer eine/64 zu geben, die Vorteile bei der Adressmobilität bietet, andere geben jedem VLAN a/64) und geben dann den einzelnen Maschinen Unterblöcke derjenigen, die weniger Adressen und verwenden Dies kann bedeuten, dass der lokale Datenverkehr lokal bleibt und nicht an einen Router weitergeleitet wird.

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

Kann ich IPv4-Subnetze direkt IPv6-Subnetzen zuordnen? Entspricht ein IPv4/24 beispielsweise direkt einem IPv6/56 oder/120?

Eine solche Zuordnung ist Sache der lokalen Politik.

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

Nein

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

% ist eine Schnittstellenkennung. Es wird in Verbindung mit verbindungslokalen Adressen verwendet. Dies ist erforderlich, da eine Maschine möglicherweise mehrere Schnittstellen hat und die mit diesen Schnittstellen verbundenen Netzwerke überlappende verbindungslokale Adressen haben können.

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

Ich würde mir darüber keine Sorgen machen.

Selbst mit der seltsamen Entscheidung der IPv6-Designer, einen 128-Bit-Adressraum zu verwenden und dann fast die Hälfte davon in der zustandslosen automatischen Konfiguration wegzuwerfen, hat IPv6 immer noch massiv mehr Speicherplatz als IPv4.

Und wenn es zu einer Krise kommen würde, würde es kaum mehr als einen Federstrich erfordern, um diese seltsame Entscheidung rückgängig zu machen.

Ein weitaus größeres Problem bei der IPv6-Skalierbarkeit ist die Routing-Tabellengröße. IPv6 NAT wird dringend davon abgeraten. Das Ausführen eines großen Netzwerks mit vom Anbieter zugewiesenen Adressen führt zu einem erheblichen Risiko der Anbietersperre.

Daher glaube ich, dass mit zunehmender IPv6-Durchdringung von Unternehmensnetzwerken die Nachfrage nach anbieterunabhängigem IPv6-Speicherplatz explodieren wird.

2
Peter Green