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


116

Dies ist eine kanonische Frage zum IPv6-Subnetz.

Verbunden:

Ich weiß viel über IPv4-Subnetze , und während ich mich auf ein IPv6-Netzwerk vorbereite, muss ich wissen, wie viel dieses Wissens ü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 hat 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 in der Vergangenheit davon abgeraten? 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 zum Beispiel ein IPv4 / 24 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? Gehen wir nicht einfach wieder zur Neige?
  • Inwiefern unterscheidet sich das IPv6-Subnetz von dem IPv4-Subnetz?

Antworten:


138

Das erste, was über IPv6-Subnetze erwähnt werden sollte, ist, dass eine andere Denkweise erforderlich ist . In IPv4 überlegen Sie normalerweise, wie viele Adressen Ihnen zur Verfügung stehen 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 diese Endbenutzern zuweisen können. Sie machen sich fast keine Gedanken darüber, wie viele IP-Adressen in einem bestimmten Subnetz verwendet werden. Mit Ausnahme einiger Sonderfälle wie Punkt-zu-Punkt-Verbindungen verfügt jedes Subnetz lediglich über weitaus mehr Adressen, als jemals benötigt werden. Stattdessen kümmern Sie sich nur um die Zuweisung von Subnetzen und nicht um Hosts in diesen.

IPv6-Subnetze sind normalerweise / 64, da dies erforderlich ist, damit SLAAC (Stateless Address Autoconfiguration) funktioniert. Auch wenn SLAAC nicht verwendet wird, kann es andere Gründe geben, / 64 zu verwenden. Es kann zum Beispiel einige Endbenutzergeräte geben, die nur / 64 annehmen, oder das Routing von Subnetzen, die länger als / 64 sind, kann auf einigen Routern ineffizient sein, da der Router-Implementierer den Fall von / 64 oder kürzeren Routen optimiert hat, um diese zu speichern Routing-Tabellenspeicher.

Warum wird empfohlen, / 127 für Punkt-zu-Punkt-Verknüpfungen 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 Nachbaranfragen und Tabelleneinträge verursachen könnte einen Router ertrinken. Solche falsch adressierten Pakete können böswillig oder versehentlich sein. Aber selbst wenn Sie tatsächlich eine Punkt-zu-Punkt-Verbindung als / 127 konfigurieren, empfehlen einige Leute, trotzdem eine ganze / 64 zuzuweisen, nur um konsistent zu sein.

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

Ich weiß nicht genau, warum virtuelle Maschinen mit Subnetzen kleiner als / 64 bereitgestellt werden. Vielleicht, weil ein Hosting-Anbieter davon ausgegangen ist, dass ein Server wie ein Endbenutzer ist und nur ein einziges (/ 64) Subnetz benötigt, und nicht damit gerechnet hat, dass der Server tatsächlich eine Sammlung von VMs ist, die eine interne Routingtopologie erfordern? Dies könnte auch einfach erfolgen, um das Speichern des Adressierungsplans zu vereinfachen: Der Host erhält PREFIX::/64, dann erhält jede VM, PREFIX:0:NNNN::/96wo NNNN für die VM eindeutig ist, und die VM kann nach PREFIX:0:NNNN:XXXX:YYYYBelieben zuweisen .

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

Im Hinblick auf die Funktionsweise von Adressierung und Routing hat die Präfixlänge in IPv6 und IPv4 dieselbe 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". Aber dieser Vergleich ist nicht wirklich zutreffend. In IPv6 haben sich starke Konventionen herauskristallisiert, durch die die Aufteilung der Netzwerkgrößen eher der alten Welt klassischer Netzwerke in IPv4 ähnelt. IPv6 hat zwar keine klassenbezogene Adressierung wieder eingeführt, bei der die höchstwertigen Bits der Adresse eine bestimmte Netzmaske erzwingen. Was IPv6 jedoch hat, sind bestimmte [defacto / konventionell] Standardnetzgrößen:

  • / 64 : Die Grundgröße eines einzelnen Subnetzes: LAN, WAN, Adressblock für virtuelle Webhosts usw. Von "normalen" Subnetzen wird niemals erwartet, dass sie kleiner (längeres Präfix) als / 64 sind. Es wird nie erwartet, dass Subnetze größer (kürzeres Präfix) als / 64 sind, da die Hostadressen eines / 64 weitaus mehr sind, als wir uns vorstellen können.
  • / 56 : Ein Block mit 256 grundlegenden Subnetzen. Obwohl die derzeitigen Richtlinien es ISPs ermöglichen, jedem Endbenutzer Blöcke mit einer Größe von bis zu / 48 zuzuweisen, und ihre Adressverwendung dennoch als gerechtfertigt erachten, können einige ISPs (und tun dies bereits) als Kompromiss die Zuweisung von / 56 an Consumer-Grade-Kunden wählen zwischen Zuordnung viele Subnetze für sie und Adresswirtschaft.
  • / 48 : Ein Block mit 65536 Basissubnetzen und der empfohlenen Blockgröße, die jeder ISP-Kundenendstandort erhalten sollte.
  • / 32 : Die Standardgröße des Blocks, die die meisten ISPs erhalten, wenn sie weitere Adressen von einem regionalen Adressregister anfordern.

Innerhalb von Service-Providern und Unternehmensnetzwerken sind viel mehr Präfixlängen als diese 4 zu sehen. Wenn Sie sich die Routingtabellen von Routern in diesen Netzwerken ansehen, haben IPv4 und IPv6 viele Gemeinsamkeiten, einschließlich der meisten Routing-Funktionen: Routen für längere Präfixe haben Vorrang vor Routen für kürzere Präfixe, sodass Aggregationen (Verkürzungen) und Drills möglich sind Strecken zurücklegen (verlängern). 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 Routingtabellen zu minimieren.

Eine andere Frage der Zuordnung zwischen IPv4 und IPv6 wäre die Harmonisierung der IPv4- und IPv6-Zuweisungen auf Dual-Stack-Computern, damit Adressierungspläne leicht verstanden werden können. Weit , dass es sicherlich Konventionen im allgemeinen Gebrauch sind , dies zu tun: Einbetten der IPv4 „Subnet - Nummer“ in einen Teil des IPv6 - Präfix, entweder mit BCD (zB 10.0.234.0/24wird 2001:db8:abcd:234::/64) oder binary ( 10.0.234.0/24wird 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 über mehrere IP-Adressen verfügen, die aus verschiedenen Subnetzen stammen, genau wie IPv4. Wenn sie automatisch mit SLAAC konfiguriert wurden, 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 anstelle des anderen sehen. Sie haben unterschiedliche Bedeutungen. Ein Schrägstrich kennzeichnet ein Präfix (Subnetz), dh einen Adressblock, der alle mit denselben nBits beginnt . Eine Adresse ohne Schrägstrich ist eine Hostadresse. Sie können sich eine solche Adresse so vorstellen, dass am Ende ein implizites "/ 128" steht, was bedeutet, dass alle 128 Bits angegeben sind.

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

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

Verschwende ich zu viele Subnetze? Gehen wir nicht einfach wieder zur Neige?

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

Aber bedenke dies. In IPv6 ist die Anzahl der verfügbaren Subnetze das Quadrat der Anzahl der verfügbaren Einzeladressen 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. Wir verteilen eine / 48 an jeden einzelnen ISP-Kunden. Vielleicht übertreiben wir und wir werden schließlich IPv6 verschwenden. Aber es gibt eine Bestimmung für diese: Nur ein Achtel des IPv6 - Raumes ist für den Einsatz bisher zur Verfügung gestellt worden: 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, die noch nicht vorbei ist), aber wie jede Technologie wird es irgendwann aufhören, eine Rolle zu spielen. Wir müssen es nur bis dahin schaffen.


13
Sehr gute Erklärung! Vor allem über die unterschiedliche Denkweise. Wenn Sie sich die Zahlen ansehen, sehen Sie, dass es im Jahr 2000 536.870.912 / 32 (kleine ISPs) gibt :: / 3. Bei einer Weltbevölkerung von 7 Milliarden ist dies ein ISP pro 13 Personen, und jeder dieser ISPs kann 65.536 Kunden mit einem Wert von jeweils 48 haben. Machen Sie sich noch keine Gedanken über das Verschwenden von Adressen :-)
Sander Steffann

Ja, das ist eine sehr gute Erklärung.
Fergus

2
Gute Erklärung zu den Details von 2000 :: / 3.
Koos van den Hout

5
Gute Erklärung. +1 auf den abschließenden Kommentar. Ich hoffe, jeder hat das schon gesehen: xkcd.com/865
Nico

@SanderSteffann Und wenn es zu einem Problem wird, ist es durchaus sinnvoll, dass ISPs anstelle von / 48s neue / 64s an Privatanwender vergeben und kleine ISPs beispielsweise 4096 von diesen gleichzeitig anfordern (/ 52 Blöcke) ). Das derzeitige Schema ist lediglich so konzipiert, dass auf jeder Ebene Platz für Erweiterungen bleibt.
immibis

45

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

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

OK, weiter mit der Erklärung:

Gemäß RFC 4291 - IP Version 6 Adressierungsarchitektur :

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

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

Ein wichtiger Bestandteil 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 die 000-Präfix-Ausnahme ignorieren, ist die Schnittstellen-ID immer genau 64-Bit. Dies ist eine andere Art zu sagen, dass alle lokalen Broadcast-Netzwerke immer 64-Bit sind . Wenn Sie eine IPv6-Adresse haben, beträgt deren Netzmaske immer 64 Bit. Niemals mehr, niemals 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 partitionieren und das Routing selbst durchführen. Wenn Sie ein kleineres Netzwerk erhalten haben (längere Netzmaske), hat jemand Fehler gemacht.

Warum genau 64-Bit?

In der Regel werden IPv6-Adressen automatisch konfiguriert und nicht zugewiesen. Der Router kündigt an, welches Netzwerkpräfix verfügbar ist (Routingprä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, die gebräuchlichste ist die Verwendung der MAC-Adresse Ihrer Schnittstelle. Sie teilen den MAC in zwei Hälften (Herstellerhälfte / serielle Hälfte), drehen das Universal-Local-Bit auf der Anbieterseite um und fügen es mit FF:FEin der Mitte wieder zusammen . So 00:30:48:01:23:45wird es 0230:48ff:fe01:2345. Stellen Sie nun links das angekündigte 64-Bit-Netzwerkpräfix ein und Sie haben Ihre IP-Adresse.

Der wichtige Punkt hierbei ist, dass bei Einhaltung dieses Schemas keine IP-Adressenkollisionen auftreten. Da jedes Gerät in einem bestimmten Broadcast-Netzwerk eine eindeutige MAC-Adresse benötigt, bedeutet das Verknüpfen der Schnittstellen-ID mit der MAC-Adresse, dass IPv6-Adressen nicht kollidieren, solange der Broadcast-Verkehr nicht kollidiert. Die Verwendung von 64-Bit-Adressen (anstatt nur der 48 für MAC-Adressen reservierten) bietet mehr Spielraum als nur die von diesem Schema bereitgestellten Adressen (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 Rechtfertigung, die auf den lokalen Anforderungen für die Einrichtung des manuellen Routings in Ihrem vorhandenen Netzwerk basiert. Bedenken Sie jedoch, dass Sie auf diese Weise wahrscheinlich ein Chaos anrichten:

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

Wenn Sie ein anderes Subnetzpräfix als a / 64 verwenden, werden viele Funktionen von IPv6 beeinträchtigt, einschließlich Neighbor Discovery (ND), Secure Neighbor Discovery (SEND) [RFC3971], Datenschutzerweiterungen [RFC4941], Teile von Mobile IPv6 [RFC4866], Protokollunabhängig Multicast - Sparse Mode (PIM-SM) mit Embedded-RP [RFC3956] und Site Multihoming durch IPv6 Intermediation (SHIM6) [SHIM6]. Eine Reihe anderer Funktionen, die derzeit entwickelt oder vorgeschlagen werden, basieren ebenfalls auf / 64-Subnetz-Präfixen.

....

Einige Netzwerkadministratoren haben jedoch Präfixe verwendet, die länger als / 64 sind, um Router zu 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. Die Verwendung dieser Präfixe für Links, die Endhosts enthalten, 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 in der Vergangenheit davon abgeraten?

Möglicherweise möchten Sie RFC 3627 - Verwendung von / 127-Präfixlänge zwischen Routern als schädlich beschönigen . Schauen Sie sich dann den folgenden RFC 6164 - Verwenden von 127-Bit-IPv6-Präfixen auf Verbindungen zwischen Routern 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, Präfixe zu verwenden, 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 nicht weitergeleitete Adressen gesendet werden. Da Denial-of-Service-Probleme in der Praxis schlimmer sind als theoretische Autokonfigurationsfehler, ist / 127 der neue Favorit.

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

Wenn Sie einen IPv6-Router steuern, empfehle ich, die beiden RFCs (sie sind kurz!) Zu lesen und selbst zu entscheiden.

Kann ich IPv4-Subnetze direkt IPv6-Subnetzen zuordnen?

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

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

Auf Dual-Stack-Systemen (bei denen sowohl IPv4- als auch IPv6-Stapel aktiv sind) können Sie IPv4 mithilfe der IPv6-Mechanik darstellen. Sie nennen es " IPv4-zugeordnete IPv6-Adressen ". Das Muster besteht aus Nullen, gefolgt FFFFvon der 32-Bit-IPv4-Adresse.

So 192.168.100.21wird ::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 es sich um eine tatsächliche IPv4-Adresse handelt, werden weiterhin IPv4-Header usw. verwendet. Dies bedeutet, dass ein IPv4-Stack vorhanden sein muss, IPv4-Routen festgelegt werden müssen und so weiter. 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.


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

    Diese Präfixgröße wurde ursprünglich in einem älteren RFC empfohlen. Inzwischen wurde diese Richtlinie überarbeitet, wobei das Problem von Neighbor Discovery Attacks berücksichtigt wird und die Verwendung von / 126 eine gültige Abhilfemaßnahme darstellt Eine alternative Option für das Routing des Datenverkehrs besteht lediglich darin, sich an ein / 64- und ein Firewall-Subnetz zu halten. Besser noch: Ordnen Sie sich einen Pool zu, aus dem Sie / 64-Subnetze ziehen, und stellen Sie den gesamten Pool als Ziel auf Ihre schwarze Liste (und woher auch immer diese Feindseligkeit kommen könnte).

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

    / 127 wird zwischen Routern nicht empfohlen und war es auch nie - die All-Router-Anycast-Adresse ist die All-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-Links zu wechseln, es sei denn, Ihr Gerät ist anfällig für eine Cache-Flut-Attacke durch Neighbor Discovery Wenn die Antwort nein ist, Firewall es einfach.

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

    Dies unterbricht SLAAC und RAs, es sei denn, Sie wissen 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 gehen Kehren Sie zu ihnen zurück und fordern Sie weitere Informationen an. Wenn sie Ihnen 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 relevanten RFCs verweisen.

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

    Ehrlich? wahrscheinlich nicht. Wenn mir ein legitimer Grund einfällt, aus dem ein kleineres Subnetz für andere Zwecke als die Verhinderung von NDP-Angriffen vorzuziehen ist, bearbeite ich diesen Abschnitt.

    Umgekehrt gibt es Situationen, in denen Sie KEINE Subnetze kleiner als / 64 verwenden möchten - insbesondere in Umgebungen mit Hardware-Weiterleitungsgeräten (z. B. Router von Markenherstellern und L3-Switches) -, in denen einige kein Hardware-Routing für Präfixe durchführen können länger als / 64 müssen andere den Vorgang in mehrere Vergleiche aufteilen. Deshalb sollten Sie zumindest Ihr Bestes tun, um sicherzustellen, dass / 64 das längste Präfix in Ihrem (OSPF / ISIS / EIGRP / etc.) - Backbone ist.

  5. Kann ich IPv4-Subnetze direkt IPv6-Subnetzen zuordnen? Entspricht zum Beispiel 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 sein Verwandter 6rd, die eine IPv4-Adresse zu diesem Zweck in eine globale IPv6-Adresse abbilden zum Bereitstellen des 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 Sie das tun würden.

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

    Dies ist ein Begrenzer, der im Allgemeinen auf verbindungslokale Adressen angewendet wird (z. B. 80 :: / 12). Da dieselbe verbindungslokale Adresse legitimerweise auf mehreren Schnittstellen vorhanden sein kann, wird der Begrenzer% verwendet, um anzugeben, welche Schnittstelle gemeint ist. Unter Linux ist die Angabe der Schnittstelle im Allgemeinen obligatorisch, wenn Vorgänge ausgeführt werden, die einen Link-Local betreffen. Windows Vista / 2008 und höher sind etwas intelligenter und können sich nur beschweren, wenn ein Link-Local nicht eindeutig ist.

  8. Verschwende ich zu viele Subnetze? Gehen wir nicht einfach wieder zur Neige?

    Nein. Dies ist ein totes Pferd, das WAAAAAAAAAY zu oft ausgepeitscht wurde. 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 gelungen wäre, ihre Werte zu verringern Adressbestände. Also nein, wir werden nicht über genügend Platz verfügen, und selbst wenn dies der Fall ist, 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?

    Beachten Sie, 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) Weiterleiten von IPv6-Paketen) - Dies hat den nützlichen Nebeneffekt, dass Sie die Adresse aller Nullen als Standardroute in einem Netzwerk verwenden können (nein, es wird keine Paketduplizierung verursachen, es ist ANYcast, nicht MULTIcast) Der Host wechselt möglicherweise alle paar Sekunden zwischen den Routern. Dies ist daher nicht für eine Stateful-Firewall-Konfiguration geeignet, wenn die Verbindungsverfolgung nicht zwischen den Routern synchronisiert ist.

    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 ein anderer Knoten auf der Verbindung bereits eine Adresse verwendet . NUD hingegen ist nützlich, wenn Sie statische Routen konfigurieren - Sie können tatsächlich mehrere separate Routen für ein Präfix mit unterschiedlichen Metriken definieren, und sie funktionieren tatsächlich, anders als in IPv4, wo die Route mit der niedrigsten Metrik verwendet wird, unabhängig davon, ob die nächste Route verwendet wird -hop ist tot oder lebendig (obwohl dies bei einigen IPv4-Implementierungen, die ARP zur Validierung von Routen wie Cisco und anderen großen Router-Anbietern verwenden, möglicherweise nicht der Fall ist)

    TLDR; IPv6 erkennt doppelte Adressen und nicht erreichbare Nachbarn. Bei der Nulladresse handelt es sich um eine Anycast-Adresse für alle Router, und es gibt keine Broadcast-Adresse. Alle Einsen sind eine reguläre Adresse.



3

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

Über die automatische IPv6-Adresskonfiguration ohne Status (RFC 4862) :

Wenn die Summe aus Präfixlänge und Schnittstellenkennungslänge nicht 128 Bit entspricht, MUSS die Option Präfixinformation ignoriert werden. [...]

Es liegt in der Verantwortung des Systemadministrators, sicherzustellen, dass die Länge der in Router Advertisements enthaltenen Präfixe mit der Länge der Schnittstellen-IDs für diesen Verbindungstyp übereinstimmt.

Und von der IP-Adressierungsarchitektur der Version 6 (RFC 4291) :

Für alle Unicast-Adressen mit Ausnahme der Adressen, 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 beträgt, beträgt die einzig mögliche Länge des Präfixes bei Verwendung von SLAAC 64 Bit.


2

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

Weil die IPv6-Befürworter die Idee der 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 auch kaputt gehen, lesen Sie rfc7421 für weitere Details.

Persönlich halte ich zustandslose Autokonfiguration sowieso für eine blöde Idee. Es führt zu unlesbaren Adressen und gibt Ihnen im Grunde keine Kontrolle über die Adressierung, außer dass Sie den Block dem Subnetz zuweisen.

Natürlich ist die Sache mit Konventionen, wenn Sie ihnen folgen und Dinge schief gehen, Sie können auf die Konvention hinweisen, 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 Angriffe auf die Erkennung von Nachbarn vermieden.

Natürlich gilt diese Argumentation nicht nur für Punkt-zu-Punkt-Verknüpfungen. Ich denke, es war politisch möglich, diese Empfehlung für Punkt-zu-Punkt-Router-Verbindungen zu machen, aber politisch nicht möglich, sie für andere Verbindungen 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 einem Computer Adressen zuweisen kann (physisch oder virtuell).

Sie können ihnen "On-Link" -Adressen zuweisen, an denen der Computer auf Anforderungen der Nachbarerkennung antworten soll. Einige Hosting-Anbieter haben sich dafür entschieden, jedem Computer eine / 64-Adresse zuzuweisen, die Vorteile in Bezug auf die Adressmobilität bietet, andere geben jedem VLAN eine / 64-Adresse und geben dann den einzelnen Computern Unterblöcke derjenigen, die weniger Adressen verwenden, und können dazu führen, dass der lokale Datenverkehr eher lokal bleibt als Übergabe an einen Router.

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

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

Eine solche Zuordnung ist eine Angelegenheit lokaler Richtlinien.

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 Schnittstellen-ID. 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 möglicherweise überlappende verbindungslokale Adressen haben.

Verschwende ich zu viele Subnetze? Gehen wir nicht einfach wieder zur Neige?

Ich würde mir nicht allzu viele Sorgen machen.

Trotz der seltsamen Entscheidung der IPv6-Designer, einen 128-Bit-Adressraum zu verwenden und dann fast die Hälfte davon für die zustandslose Autokonfiguration zu verwerfen, verfügt IPv6 immer noch über erheblich mehr Speicherplatz als IPv4.

Und wenn es knirschte, würde es kaum mehr als einen Federstrich dauern, um diese seltsame Entscheidung wieder rückgängig zu machen.

Ein weitaus größeres Problem bei der IPv6-Skalierbarkeit ist die Größe der Routingtabelle. Von IPv6-NAT wird dringend abgeraten. Das Betreiben eines großen Netzwerks mit vom Anbieter zugewiesenen Adressen führt zu einem erheblichen Risiko der Anbietersperrung.

Ich bin daher der Meinung, dass die Nachfrage nach anbieterunabhängigem IPv6-Speicherplatz mit zunehmender IPv6-Penetration in Unternehmensnetzwerke explodieren wird.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.