Frage Wie funktioniert das IPv6-Subnetz und wie unterscheidet es sich von IPv4-Subnetzwerken?


Das ist ein Kanonische Frage über IPv6-Subnetting.

Verbunden:

Ich weiß viel über IPv4-Subnetzund während ich mich darauf vorbereite (ein IPv6-Netzwerk aufzubauen), 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 ich würde gerne wissen:

  • IPv6 ist 128 Bit, also warum / 64 ist das kleinste empfohlene Subnetz für Hosts? Verwandt mit diesem:
    • Warum wird es empfohlen, / 127 für Punkt-zu-Punkt-Verbindungen zwischen Routern zu verwenden, und warum wurde es in der Vergangenheit empfohlen? Soll ich vorhandene Router-Links auf / 127 umstellen?
    • Warum sollten virtuelle Maschinen mit weniger als 64 Adressen bereitgestellt werden?
    • Gibt es andere Situationen, in denen ich ein Subnetz kleiner als / 64 verwenden würde?
  • Kann ich direkt aus IPv4-Subnetzen IPv6-Subnetzen zuordnen? Entspricht beispielsweise 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 eine% anstelle einer / in einer IPv6-Adresse und was bedeutet das?
  • Verschwende ich zu viele Subnetze? Werden wir nicht gleich wieder rauslaufen?
  • Inwiefern unterscheidet sich die IPv6-Subnetzbildung von IPv4-Subnetzen?

110
2017-09-11 00:57


Ursprung




Antworten:


Das erste, was über IPv6 Subnetting erwähnt werden sollte, ist ein anderer Denkweise ist gefragt. In IPv4 denken Sie normalerweise darüber nach, wie viele Adressen Sie haben zur Verfügung und wie Sie genug von ihnen jedem Endbenutzer zuweisen können. In IPv6 denken Sie normalerweise darüber nach, wie viele (/ 64) Subnetze Sie haben verfügbar und wie Sie sie den Endbenutzern zuweisen können. Sie machen sich fast keine Gedanken darüber, wie viele IP-Adressen in einem bestimmten Subnetz verwendet werden. Abgesehen von einigen Sonderfällen wie Punkt-zu-Punkt-Verbindungen, hat jedes Subnetz einfach mehr Adressen zur Verfügung, als es jemals erfordern würde, also kümmern Sie sich nur um das Zuweisen von Subnetzen, nicht um Hosts in ihnen.

IPv6-Subnetze sind normalerweise / 64, weil das erforderlich ist SLAAC (statuslose Adressautokonfiguration) zu arbeiten. Selbst wenn SLAAC nicht verwendet wird, kann es andere Gründe geben, / 64 zu verwenden. Zum Beispiel könnte es einige Endbenutzergeräte geben, die gerade / 64 annehmen, oder Routing-Subnetze länger als / 64 könnten bei einigen Routern ineffizient sein, weil der Router-Implementierer den Fall von / 64 oder kürzeren 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 / 127 anstelle von / 64 empfohlen, um eine Schwachstelle zu vermeiden, bei der Paketadressen an eines der Billiarden nicht verwendeter Adressen im Teilnetz unerwünschte Nachbarschaftsanfragen und Tabelleneinträge verursachen könnte einen Router ertränken. Solche Misadress-Pakete können böswillig oder zufällig sein. Aber selbst wenn Sie tatsächlich eine Punkt-zu-Punkt-Verbindung als / 127 konfigurieren, befürworten einige Leute die Zuweisung eines ganzen / 64, 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 angenommen hat, dass ein Server wie ein Endbenutzer ist und nur ein einzelnes (/ 64) Subnetz benötigt, ohne zu erwarten, dass der Server tatsächlich eine Sammlung von VMs ist, die eine interne Routing-Topologie benötigen? Es könnte auch einfach gemacht werden, um den Adressierungsplan einfacher zu merken: der Wirt bekommt PREFIX::/64, dann erhält jede VM PREFIX:0:NNNN::/96 wobei NNNN für die VM eindeutig ist und die VM zuordnen kann PREFIX:0:NNNN:XXXX:YYYY wie es gefällt.

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

In Bezug auf Adressierung und Routing hat die Präfixlänge in IPv6 und IPv4 die gleiche 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 Host-Adresse, das ist wie ein / 64 in IPv6". Aber dieser Vergleich ist nicht wirklich passend. In IPv6 haben sich starke Konventionen herausgebildet, die die Aufteilung der Netzwerkgrößen etwas mehr wie die alte Welt der klassenmäßigen Netzwerke in IPv4 aussehen lassen. Sicherlich hat IPv6 die klassenweise Adressierung nicht wieder eingeführt, bei der die wichtigsten Bits der Adresse eine bestimmte Netzmaske erzwingen, sondern IPv6 tut Es gibt bestimmte [defacto / konventionell] Standard-Netzwerkgrößen:

  • / 64: die Grundgröße eines einzelnen Subnetzes: LAN, WAN, Adressblock für virtuelle Web-Hosts, etc ... "Normale" Subnetze werden niemals kleiner (längeres Präfix) als / 64 sein. Es wird niemals erwartet, dass Subnetze größer sind (kürzeres Präfix) als / 64, da die Host-Adressen von a / 64 weit mehr sind, als wir uns vorstellen können.
  • / 56: ein Block von 256 grundlegenden Subnetzen. Auch wenn die derzeitigen Richtlinien es den ISPs erlauben, für jeden Endbenutzer Blöcke von bis zu / 48 auszugeben, und dennoch ihre Adressverwendung als gut gerechtfertigt erachten, können (und tun es bereits) einige ISPs einem Kunden als Kompromiss einen / 56 zuweisen zwischen Zuteilung viele Subnetze für sie und Adresse Wirtschaft.
  • / 48: ein Block von 65536 grundlegenden Subnetzen und die empfohlene Blockgröße, die jeder ISP-Kundenendstandort erhalten sollte.
  • / 32: Die Standardgröße des Blocks, die die meisten ISPs jedes Mal erhalten, wenn sie mehr Adressen von einer regionalen Adressregistrierung anfordern.

Innerhalb von Dienstanbieter- und Unternehmensnetzwerken können viele weitere Präfixlängen als diese 4 gesehen werden. Bei der Betrachtung der Routingtabellen von Routern innerhalb dieser Netzwerke haben IPv4 und IPv6 viel gemeinsam, einschließlich des Routing-Prinzips: Routen für längere Präfixe überschreiben überdeckende Routen für kürzere Präfixe, so dass es möglich ist, zu aggregieren (kürzer zu machen) und zu bohren Routen verlängern (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 von Routing-Tabellen zu minimieren.

Eine andere Frage der Zuordnung zwischen IPv4 und IPv6 wäre, wie IPv4- und IPv6-Zuweisungen auf Dual-Stack-Maschinen harmonisiert werden, so dass Adressierungspläne leicht verstanden werden können. Bislang gibt es sicherlich allgemeine Konventionen, um dies zu tun: Einbetten der IPv4- "Subnetznummer" in einen Teil des IPv6-Präfixes, entweder mit BCD (z.B. 10.0.234.0/24 wird 2001:db8:abcd:234::/64) oder binär (10.0.234.0/24 wird 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 multihomed sein können, indem sie mehrere IP-Adressen gleichzeitig haben, die aus verschiedenen Subnetzen kommen, genau wie IPv4. Wenn sie mit SLAAC automatisch konfiguriert werden, stammen die verschiedenen Subnetze möglicherweise von Router-Ankündigungen von verschiedenen Routern.

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

Du würdest nicht eins anstelle des anderen sehen. Sie haben unterschiedliche Bedeutungen. Ein Schrägstrich bezeichnet ein Präfix (Subnetz), dh einen Adressblock, der alle mit dem gleichen beginnt n Bits. Eine Adresse ohne Schrägstrich ist eine Hostadresse. Sie können sich vorstellen, dass eine solche Adresse am Ende ein implizites "/ 128" enthält, was bedeutet, dass alle 128 Bits spezifiziert sind.

Das Prozentzeichen begleitet eine Link-lokale Adresse. In IPv6 hat jede Schnittstelle zusätzlich zu anderen IP-Adressen eine verbindungslokale Adresse. Aber die Sache ist, Link-lokale Adressen sind immer, ohne Ausnahme, in der fe80::/10 Block. Aber wenn wir versuchen, mit einem Peer unter Verwendung einer Link-Local-Adresse zu sprechen, und der lokale Host hat mehrere Schnittstellen, wie sollen wir wissen, welche Schnittstelle verwendet werden soll, um mit diesem Peer zu sprechen? Normalerweise teilt uns die Routing-Tabelle mit, welche Schnittstelle für ein bestimmtes Präfix verwendet werden soll, aber hier wird es uns sagen fe80::/10 ist über jede Schnittstelle erreichbar.

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

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

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

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

Aber trotzdem: Wir geben automatisch eine / 32 an jeden ISP weiter, der eine solche anfordert, wir geben eine / 48 an jeden einzelnen ISP-Kunden aus. Vielleicht übertreiben wir und wir werden schließlich IPv6 verschwenden. Dafür gibt es jedoch eine Vorkehrung: Bisher wurde nur ein Achtel des IPv6-Speicherplatzes zur Verfügung gestellt: 2000::/3. Die Idee ist, dass wir, wenn wir ein schreckliches Durcheinander des ersten Achtels machen und die liberale Zuteilungspolitik drastisch revidieren müssen, es noch sieben Mal versuchen müssen, bevor wir in Schwierigkeiten sind.

Und schließlich: IPv6 muss nicht ewig dauern. Vielleicht wird es eine längere Lebensdauer haben als IPv4 (eine beeindruckende Lebensdauer bereits und es ist nicht vorbei), aber wie jede Technologie wird es eines Tages aufhören zu denken. Wir müssen es nur bis dahin machen.


130
2017-09-11 02:55



Sehr gute Erklärung! Besonders über die unterschiedliche Denkweise. Wenn man sich die Zahlen ansieht, sieht man, dass es im Jahr 2000 536.870.912/32 (kleine ISPs) gibt :: / 3. Mit einer Weltbevölkerung von 7 Milliarden ist dies ein ISP pro 13 Personen, und jeder ISP kann 65.536 Kunden mit je einer / 48 haben. Keine Sorge, Adressen noch zu verschwenden :-) - Sander Steffann
Ja, das ist eine sehr gute Erklärung. - Fergus
Gute Erklärung zu den spezifischen Details von 2000 :: / 3. - Koos van den Hout
Schöne Erklärung. +1 auf den letzten Kommentar. Ich hoffe, dass das schon jeder gesehen hat: xkcd.com/865 - Nico
@SanderSteffann Und wenn es ein Problem wird, wäre es durchaus vernünftig für ISPs, neue / 64s privaten Benutzern anstelle von / 48s zuzuweisen, und kleine ISPs Blöcke von etwa 4096 gleichzeitig anzufordern (/ 52 Blöcke) ). Das aktuelle Schema ist nur so angelegt, dass es Raum für Erweiterungen auf jeder Ebene lässt. - immibis


IPv6 ist 128 Bit, also warum / 64 ist das kleinste empfohlene Subnetz für Hosts?

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

|         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 ist typischerweise 48 Bits. Die Schnittstellen-ID identifiziert eine gegebene Netzwerkschnittstelle. Es ist typischerweise 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 außer denen, die mit binären 000 beginnen, haben ein 64-Bit-Schnittstellen-ID-Feld.

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

Ein wichtiger Teil eines IPv4-Adressierungsplans ist die Festlegung der Länge      jedes Subnetz-Präfix. Anders als in IPv4, die IPv6-Adressierung      Architektur [RFC4291] gibt an, dass alle Subnetze Global verwenden      Eindeutige Adressen und ULAs haben immer dieselbe Präfixlänge von 64      Bits.

Ohne die 000-Präfix Ausnahme zu ignorieren, ist die Interface ID immer 64 Bits genau. Dies ist eine andere Art, das zu sagen Alle lokalen Broadcast-Netzwerke sind immer 64-Bit. Wenn Sie eine IPv6-Adresse haben, ist ihre Netzmaske immer 64 Bits. Nie mehr und 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 aufteilen und das Routing selbst durchführen. Wenn Sie ein kleineres Netzwerk erhalten haben (längere Netzmaske), hat jemand etwas vermasselt.

Also, warum 64-Bit genau?

In der Regel werden IPv6-Adressen automatisch konfiguriert und nicht zugewiesen. Der Router gibt bekannt, welches Netzwerkpräfix verfügbar ist (Routing-Präfix + Subnetz-ID: erste 64 Bit), und Ihr Computer füllt die letzten 64 Bit mit einer eigenen eindeutigen Kennung aus. Wie erstellt Ihr Computer eine eindeutige Kennung? Es gibt einige Möglichkeiten, am häufigsten ist die Verwendung der MAC-Adresse Ihrer Schnittstelle. Sie teilen den MAC in zwei Hälften (Anbieterhälfte / serielle Hälfte), kippen das universal-lokale Bit auf der Herstellerseite und verbinden sie wieder zusammen mit FF:FE mitten drin. So 00:30:48:01:23:45 wird 0230:48ff:fe01:2345. Stellen Sie nun das angekündigte 64-Bit-Netzwerk-Präfix auf die linke Seite und Sie haben Ihre IP-Adresse.

Der wichtige Punkt hier ist, dass wenn Sie diesem Schema folgen, IP-Adressenkollisionen nicht passieren werden. Da jedes Gerät in einem gegebenen Broadcast-Netzwerk eine eindeutige MAC-Adresse benötigt, um zu funktionieren, bedeutet das Verknüpfen der Schnittstellen-ID mit der MAC-Adresse, dass, solange der Broadcast-Verkehr nicht kollidiert, auch keine IPv6-Adressen. Die Verwendung von 64-Bit (anstatt nur der 48, die für MAC-Adressen reserviert sind) ergibt ein bisschen Spielraum über die Adressen hinaus, die durch dieses Schema bereitgestellt werden (es gibt mehrere andere).

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

Nee. Nicht, solange du nicht gebrochen bist. Nun, Sie können eine Rechtfertigung basierend auf den lokalen Anforderungen für das Einrichten des manuellen Routing mit Ihrem vorhandenen Netzwerk haben. Aber denken Sie daran, dass Sie damit wahrscheinlich ein Chaos anrichten:

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

Bei Verwendung einer anderen Subnetz-Präfix-Länge als a / 64 werden viele unterbrochen      Features von IPv6, einschließlich Neighbor Discovery (ND), Secure Neighbor      Discovery (SEND) [RFC3971], Datenschutzerweiterungen [RFC4941], Teile von      Mobile IPv6 [RFC4866], protokollunabhängiger Multicast - Sparse-Modus      (PIM-SM) mit Embedded-RP [RFC3956] und Site-Multihoming durch IPv6      Intermediation (SHIM6) [SHIM6], unter anderem. Eine Reihe anderer      Features, die sich derzeit in der Entwicklung befinden oder vorgeschlagen werden, sind ebenfalls wichtig      / 64 Subnetz-Präfixe.

....

Einige Netzwerkadministratoren haben jedoch Präfixe länger als verwendet      / 64 für Links verbinden Router, in der Regel nur zwei Router auf einem      Punkt-zu-Punkt-Verbindung. Auf Verbindungen, bei denen alle Adressen zugewiesen sind      durch manuelle Konfiguration, und alle Knoten auf der Verbindung sind Router (nicht      Ende Hosts), die vom Netzwerk bekannt sind, brauchen Administratoren nicht      Jedes der IPv6-Features, die auf / 64 Subnetz-Präfixe basieren, kann dies      Arbeit. Es wird nicht empfohlen, Subnetzpräfixe zu verwenden, die länger als / 64 sind      allgemeine Verwendung und ihre Verwendung für Links mit End-Hosts wäre      Eine besonders schlechte Idee, da es schwierig ist, IPv6 vorherzusagen      Funktionen, die die Hosts in Zukunft verwenden werden.

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

Sie möchten vielleicht beschönigen RFC 3627 - Verwendung von / 127 Präfix Länge zwischen Routern als schädlich. Dann schaue dir das Nachfolgende an RFC 6164 - Verwenden von 127-Bit-IPv6-Präfixen auf Inter-Router-Links.

Der Einwand, Präfixe länger als / 64 auf Routern zu verwenden, hat mit der automatischen Konfiguration des Routers zu tun, die unter seltenen Umständen möglicherweise fehlschlägt. Der Einwand, Präfixe kürzer als / 127 (nur 2-Hosts) zu verwenden, hat mit einer Anzahl möglicher Denial-of-Service-Probleme zu tun, die sich auf Pakete beziehen, die an die nicht gerouteten Adressen gesendet werden. Da die Denial-of-Service-Probleme in der Praxis schlechter sind als die theoretischen Fehler bei der Autokonfiguration, ist / 127 der neue Favorit.

Soll ich vorhandene Router-Links auf / 127 umstellen?

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

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

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

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

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

So, 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 dezimaler Schreibweise geschrieben.

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


42
2018-01-10 06:51





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

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

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

    / 127 wird nicht zwischen Routern empfohlen und war nie - die Anycast-Adresse für alle Router ist die Nur-Nullen-Adresse des Subnetzes; das bedeutet, dass / 127 technisch nur zwischen zwei Maschinen gültig ist, wo eine davon ist NICHT fungiert als Router. / 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 einen Neighbor Discovery-Cache-Flood-Angriff - und selbst in diesem Fall sollten Sie zuerst ermitteln, ob Sie das / 64 tatsächlich für die Internetverbindung verwenden Wenn die Antwort nein ist, Firewall einfach.

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

    Dies bricht SLAAC und RAs, es sei denn du wirklich, Ja wirklich Wissen Sie, 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 das der Fall ist, müssen Sie zu ihnen zurückgehen und mehr verlangen, wenn sie wollen um sie dafür zu belasten, suchen Sie nach einem neuen Anbieter und senden Sie ihnen vielleicht auch einige knifflige E-Mails, die mit 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, dort sind Situationen, in denen du würdest NICHT Sie möchten Subnetze kleiner als / 64 verwenden - insbesondere überall dort, wo Sie eine Umgebung mit Hardware-Weiterleitungsgeräten betreiben (denken Sie an Marken-Router und L3-Switches) - einige können keine Hardware-Routing von Präfixen länger als / 64, andere müssen teilen Wenn Sie den Vorgang in mehreren Vergleichen durchführen, sollten Sie zumindest Ihr Bestes geben, um sicherzustellen, 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? Entspricht beispielsweise 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, 6rd, die eine IPv4-Adresse in eine globale IPv6-Adresse für die Zwecke abbildet Bereitstellen von IPv6-Zugriff über IPv4 durch Erstellen eines IPv6-Präfixes, das von der übertragenen IPv4-Adresse abgeleitet ist.

  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. Natürlich ist eine bessere Frage Warum würdest du das tun?

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

    Dies ist ein Begrenzer, der im Allgemeinen auf verbindungslokale Adressen angewendet wird (fe80 :: / 12) - da die gleiche verbindungslokale Adresse legitim auf mehreren Schnittstellen existieren kann, wird der% delimiter verwendet, um zu ermöglichen, 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 gleich wieder rauslaufen?

    Nein. Dies ist ein totes Pferd, das ausgepeitscht wurde WAAAAAAAAAY 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 gelingt, 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. Inwiefern unterscheidet sich die IPv6-Subnetzbildung von IPv4-Subnetzen?

    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 Prinzip eine Adresse ist, die implizit auf allen konfigurierten Knoten existiert) IPv6-Pakete weiterleiten) - 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 Paketduplikation verursacht, es ist ANYcast, nicht MULTIcast) - denken Sie daran Allerdings kann der Host alle paar Sekunden zwischen den Routern wechseln. Daher ist dies für ein Stateful Firewall-Setup nicht geeignet, wenn das Verbindungs-Tracking nicht zwischen ihnen synchronisiert ist.

    Abgesehen davon besteht der andere wichtige Unterschied darin, dass IPv6 sich um doppelte Adressen und tote Nachbarn (NUD) kümmert - im Gegensatz zu IPv4 wird ein Host daher die Verwendung einer Adresse ablehnen, wenn er feststellen kann, dass ein anderer Knoten auf dem Link ihn bereits verwendet . 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 und nicht erreichbare Nachbarn. Die All-Zero-Adresse ist Allrouter Anycast und es gibt keine solche Sache wie Broadcast, All-One ist eine reguläre Adresse.


18
2018-03-10 17:27



Als Antwort auf die Antwort 2) ... tools.ietf.org/html/rfc6164  tools.ietf.org/html/rfc6547 - cpt_fink


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):

Wenn die Summe der Präfixlänge und der Länge der Schnittstellenkennung   ist nicht gleich 128 Bits, muss die Prefix Information Option sein   ignoriert. [...]

Es liegt in der Verantwortung des Systemadministrators sicherzustellen   dass die Längen der Präfixe in Router Advertisements enthalten sind   sind konsistent mit der Länge der Schnittstellenbezeichner dafür   Verknüpfungsart

Und von IP Version 6 Adressierungsarchitektur (RFC 4291):

Für alle Unicastadressen außer denen, die mit der Binärdatei beginnen   Wert 000, Interface IDs müssen 64 Bit lang sein und sein   konstruiert im modifizierten 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.


2
2018-01-06 00:45





IPv6 ist 128 Bit, also warum / 64 ist das kleinste empfohlene Subnetz für Hosts?

Weil die IPv6-Befürworter die Idee der zustandslosen Autokonfiguration mochten.

Wenn Sie eine andere Subnetzgröße verwenden, wird die zustandslose automatische Konfiguration unterbrochen. Einige andere kleinere Dinge können auch brechen, lesen Sie rfc7421 für weitere Details.

Ich persönlich halte die staatenlose Autokonfiguration sowieso für eine dumme Idee. Dies führt zu unlesbaren Adressen und gibt Ihnen im Grunde genommen keine Kontrolle über die Adressierung, die über die Zuweisung des Blocks an das Subnetz hinausgeht.

Natürlich ist die Sache mit Konventionen, wenn du ihnen folgst und die Dinge schief laufen, kannst du auf die Convention zeigen, wenn du dich weigerst ihnen zu folgen und die Dinge schief gehen, wird es deine Schuld sein.

Warum wird es 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 Nachladungs-Erschöpfungsattacken vermieden.

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

Warum sollten virtuelle Maschinen mit weniger als 64 Adressen bereitgestellt werden?

Wir müssen hier unterscheiden. Es gibt zwei Möglichkeiten, wie ein Hosting-Provider einer Maschine Adressen zuweisen kann (ob physisch oder virtuell).

Sie können ihnen "On-Link" -Adressen zuweisen, bei denen die Maschine voraussichtlich auf Nachbaranfragen antwortet. Einige Hosting-Anbieter entschieden sich dafür, jeder Maschine einen / 64 zu geben, der Vorteile in der Adressenmobilität hat, andere geben jedem VLAN ein / 64 und geben dann den einzelnen Maschinen Subblöcke von denen, die weniger Adressen verwenden und bedeuten, dass der lokale Verkehr lokal bleibt bis zu einem Router.

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

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

Jede solche Zuordnung ist eine Angelegenheit der lokalen Politik.

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

Nein

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

% ist eine Schnittstellen-ID. Es wird in Verbindung mit Link-lokalen Adressen verwendet. Es wird benötigt, da eine Maschine mehrere Schnittstellen haben kann und die mit diesen Schnittstellen verbundenen Netzwerke überlappende verbindungslokale Adressen haben können.

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

Ich würde mir darüber nicht zu viele Gedanken machen.

Selbst mit der seltsamen Entscheidung der IPv6-Entwickler, einen 128-Bit-Adressraum zu verwenden und dann fast die Hälfte davon für die zustandslose automatische Konfiguration wegzuwerfen, hat IPv6 immer noch massiv mehr Platz als IPv4.

Und wenn es einen Knirschen gab, würde es kaum mehr als einen Federstrich erfordern, diese seltsame Entscheidung rückgängig zu machen.

Ein weitaus größeres Problem bei der IPv6-Skalierbarkeit ist die Größe der Routing-Tabelle. Von IPv6-NAT wird dringend abgeraten. Wenn ein großes Netzwerk auf vom Provider zugewiesenen Adressen ausgeführt wird, besteht ein erhebliches Risiko, dass sich der Provider festlegt.

Daher glaube ich, dass mit der zunehmenden Verbreitung von IPv6 in Unternehmensnetzwerken eine explosionsartige Zunahme der Anfragen nach Provider-unabhängigem IPv6-Speicherplatz auftreten wird.


2
2018-01-06 03:25