Frage Wie funktioniert IPv4-Subnetting?


Das ist ein Kanonische Frage über IPv4-Subnetze.

Verbunden:

Wie funktioniert Subnetting und wie machen Sie das? von Hand oder in deinem Kopf?  Kann man das sowohl konzeptionell als auch anhand mehrerer Beispiele erklären? Server Fault erhält viele Subnetting-Hausaufgaben-Fragen, sodass wir eine Antwort verwenden können, um sie auf Server Fault selbst zu verweisen.

  • Wenn ich ein Netzwerk habe, wie kann ich das beurteilen? heraus, wie man es aufteilt?
  • Wenn ich eine Netzmaske bekomme, wie kann ich das tun? wissen, wofür der Netzwerkbereich ist es?
  • Manchmal folgt ein Schrägstrich durch eine Zahl, was ist diese Nummer?
  • Manchmal gibt es eine Subnetzmaske, aber auch eine Platzhaltermaske, sie scheinen wie das Gleiche zu sein, aber sie sind anders?
  • Jemand erwähnte etwas über das Wissen, binär dafür?

422
2017-08-04 15:51


Ursprung




Antworten:


IP-Subnetze existieren, damit Router geeignete Ziele für Pakete auswählen können. Sie können IP-Subnetze verwenden, um größere Netzwerke aus logischen Gründen (Firewalling usw.) oder physischen Bedarf (kleinere Broadcast-Domänen usw.) zu trennen.

Einfach gesagt, verwenden IP-Router Ihre IP-Subnetze, um Routing-Entscheidungen zu treffen. Verstehen Sie, wie diese Entscheidungen funktionieren und wie Sie IP-Subnetze planen.

Zählen bis 1

Wenn Sie die binäre Schreibweise (Basis 2) bereits fließend beherrschen, können Sie diesen Abschnitt überspringen.

Für diejenigen von euch, die übrig sind: Schämt euch, dass ihr nicht in der binären Schreibweise spricht!

Ja - das kann ein bisschen hart sein. Es ist wirklich sehr einfach zu lernen, in Binärzahlen zu zählen, und Verknüpfungen zu lernen, um Binär in Dezimal und zurück zu konvertieren. Du solltest wirklich wissen, wie es geht.

Das Zählen im Binärformat ist so einfach, weil Sie nur wissen müssen, wie man auf 1 zählt!

Denken Sie an den "Kilometerzähler" eines Autos, mit der Ausnahme, dass im Gegensatz zu einem herkömmlichen Kilometerzähler jede Ziffer nur bis zu 1 von 0 zählen kann. Wenn das Fahrzeug frisch vom Werk ist, lautet der Kilometerzähler "00000000".

Wenn Sie Ihre erste Meile gefahren sind, lautet der Kilometerzähler "00000001". So weit, ist es gut.

Wenn Sie Ihre zweite Meile gefahren sind, rollt die erste Ziffer des Kilometerzählers zurück auf "0" (da der Höchstwert "1" ist) und die zweite Ziffer des Kilometerzählers rollt auf "1", wodurch der Kilometerzähler gelesen wird " 00000010 ". Dies sieht aus wie die Zahl 10 in Dezimalschreibweise, aber es ist tatsächlich 2 (die Anzahl der Meilen, die Sie bisher im Auto gefahren sind) in binärer Schreibweise.

Wenn Sie die dritte Meile gefahren sind, lautet der Kilometerzähler "00000011", da sich die erste Ziffer des Kilometerzählers erneut dreht. Die Zahl "11" entspricht in binärer Schreibweise der Dezimalzahl 3.

Schließlich, wenn Sie Ihre vierte Meile gefahren sind, rollen beide Ziffern (die am Ende der dritten Meile "1" lasen) auf Null zurück, und die dritte Ziffer rollt auf die "1" Position und gibt uns " 00000100 ". Das ist die binäre Darstellung der Dezimalzahl 4.

Sie können alles auswendig lernen, wenn Sie wollen, aber Sie müssen es nur verstehen Wie der kleine Kilometerzähler "rollt", wenn die Zahl größer wird. Es ist genau das gleiche wie eine traditionelle Dezimal-Odometer-Operation, außer dass jede Ziffer nur "0" oder "1" auf unserem fiktiven "binären Odometer" sein kann.

Um eine Dezimalzahl in eine Binärzahl umzurechnen, können Sie den Kilometerzähler vorwärts und tickend vorwärts rollen, bis Sie ihn so oft gerollt haben, wie die Dezimalzahl, die Sie in die Binärzahl konvertieren möchten. Was immer auf dem Kilometerzähler angezeigt wird, nach all dem Hin- und Herbewegen wäre die binäre Darstellung der Dezimalzahl, die Sie gezählt haben.

Da Sie verstehen, wie der Kilometerzähler vorwärts rollt, werden Sie auch verstehen, wie er rückwärts rollt. Um eine auf dem Kilometerzähler angezeigte Binärzahl in Dezimalzahl umzuwandeln, können Sie den Kilometerzähler um jeweils einen Tick zurückdrehen und laut zählen, bis der Kilometerzähler "00000000" lautet. Wenn all das Zählen und Rollen abgeschlossen ist, ist die letzte Zahl, die Sie laut sagen, die dezimale Darstellung der Binärzahl, mit der der Kilometerzähler begonnen hat.

Konvertieren von Werten zwischen Binär und Dezimal so wäre sehr langweilig. Du könntest es tun, aber es wäre nicht sehr effizient. Es ist einfacher, einen kleinen Algorithmus zu lernen, um es schneller zu machen.

Kurz gesagt: Jede Ziffer einer Binärzahl wird als "Bit" bezeichnet. Das ist "b" von "binary" und "it" von "digit". Ein Bit ist eine Binärzahl.

Das Konvertieren einer Binärzahl wie "1101011" in Dezimalzahlen ist ein einfacher Prozess mit einem praktischen kleinen Algorithmus.

Beginnen Sie mit dem Zählen der Anzahl der Bits in der Binärzahl. In diesem Fall gibt es 7. Stellen Sie 7 Unterteilungen auf ein Blatt Papier (in Gedanken, in einer Textdatei usw.) und beginnen Sie, sie von rechts nach links aufzufüllen. Geben Sie im rechten Feld die Zahl "1" ein, da wir immer mit "1" beginnen. In der nächsten Spalte nach links geben Sie den doppelten Wert in den Slot rechts ein (also "2" in die nächste, "4" in die nächste) und fahren fort, bis alle Plätze belegt sind. (Am Ende werden Sie sich diese Zahlen merken, welche die Zweierpotenzen sind, da Sie dies mehr und mehr tun. Ich bin in Ordnung, bis zu 131.072 in meinem Kopf, aber normalerweise brauche ich danach einen Taschenrechner oder ein Papier).

Also sollten Sie Folgendes auf Ihrem Papier in Ihren kleinen Slots haben.

 64    |    32    |    16    |    8    |    4    |    2    |    1    |

Übertragen Sie die Bits von der Binärzahl unter den Slots wie folgt:

 64    |    32    |    16    |    8    |    4    |    2    |    1    |
  1          1          0         1         0         1         1

Fügen Sie nun einige Symbole hinzu und berechnen Sie die Antwort auf das Problem:

 64    |    32    |    16    |    8    |    4    |    2    |    1    |
x 1        x 1        x 0       x 1       x 0       x 1       x 1
---        ---        ---       ---       ---       ---       ---
       +          +          +         +         +         +         =

Rechne mit allem, was du dir ausgedacht hast:

 64    |    32    |    16    |    8    |    4    |    2    |    1    |
x 1        x 1        x 0       x 1       x 0       x 1       x 1
---        ---        ---       ---       ---       ---       ---
 64    +    32    +     0    +    8    +    0    +    2    +    1    =   107

Das ist es. "1101011" in Dezimal ist 107. Es ist nur einfache Schritte und einfache Mathematik.

Das Konvertieren von Dezimal in Binär ist genauso einfach und ist der gleiche grundlegende Algorithmus, der umgekehrt ausgeführt wird.

Sagen wir, dass wir die Zahl 218 in binär konvertieren wollen. Beginnen Sie rechts auf einem Blatt Papier und schreiben Sie die Zahl "1". Verdoppeln Sie den Wert auf der linken Seite (also "2") und fahren Sie fort, sich nach links zu bewegen, um den letzten Wert zu verdoppeln. Wenn die Nummer, die Sie schreiben möchten, größer ist als die Zahl, die konvertiert wird, schreiben Sie nicht mehr. Ansonsten verdoppele die vorherige Nummer und schreibe weiter. (Die Umwandlung einer großen Zahl wie 34.157.216.092 in Binärwerte mit diesem Algorithmus kann etwas mühsam sein, ist aber sicherlich möglich.)

Also, sollten Sie auf Ihrem Papier haben:

 128    |    64    |    32    |    16    |    8    |    4    |    2    |    1    |

Sie haben aufgehört, Zahlen bei 128 zu schreiben, weil die Verdoppelung von 128, die 256 ergibt, größer wäre als die Zahl, die konvertiert wird (218).

Beginnen Sie mit der Nummer ganz links, schreiben Sie "218" darüber (128) und fragen Sie sich: "Ist 218 größer oder gleich 128?" Wenn die Antwort ja lautet, scratchen Sie eine "1" unter "128". Über "64" schreiben Sie das Ergebnis von 218 minus 128 (90).

Mit Blick auf "64", fragen Sie sich: "Ist 90 größer als oder gleich 64?" Es ist so, du würdest eine "1" unter "64" schreiben, dann 64 von 90 subtrahieren und das über "32" schreiben (26).

Wenn Sie jedoch zu "32" kommen, finden Sie, dass 32 nicht größer als oder gleich 26 ist. Schreiben Sie in diesem Fall eine "0" unter "32", kopieren Sie die Zahl (26) von über 32 "nach oben" 16 "und dann fragen Sie sich die gleiche Frage mit dem Rest der Zahlen.

Wenn du fertig bist, solltest du:

 218         90         26         26        10         2         2         0
 128    |    64    |    32    |    16    |    8    |    4    |    2    |    1    |
   1          1          0          1         1         0         1         0

Die Zahlen oben sind nur Notizen, die in der Berechnung verwendet werden und uns nicht viel bedeuten. Unten sehen Sie jedoch eine Binärzahl "11011010". Sicher genug, 218, konvertiert zu binär, ist "11011010".

Nach diesen sehr einfachen Prozeduren können Sie binär in Dezimal und wieder ohne einen Taschenrechner konvertieren. Die Mathematik ist alles sehr einfach und die Regeln können mit ein wenig Übung auswendig gelernt werden.

Aufteilen von Adressen

Denken Sie an IP-Routing wie Pizza-Lieferung.

Wenn Sie gebeten werden, eine Pizza an "123 Main Street" zu liefern, ist es Ihnen als Mensch sehr klar, dass Sie zu dem Gebäude mit der Nummer 123 auf der Straße "Main Street" gehen wollen. Es ist leicht zu wissen, dass Sie zum 100-Block der Main Street gehen müssen, da die Gebäudenummer zwischen 100 und 199 liegt und die meisten Stadtblöcke in Hunderten nummeriert sind. Sie "wissen" nur, wie Sie die Adresse aufteilen.

Router liefern Pakete, keine Pizza. Ihre Aufgabe ist die gleiche wie bei einem Pizzafahrer: Die Ladung (Pakete) so nahe wie möglich am Zielort zu bringen. Ein Router ist mit zwei oder mehr IP-Subnetzen verbunden (um überhaupt nützlich zu sein). Ein Router muss die Ziel-IP-Adressen von Paketen prüfen und diese Zieladressen in ihre Komponenten "Straßenname" und "Baunummer" aufteilen, genau wie der Pizza-Fahrer, um Entscheidungen über die Lieferung zu treffen.

Jeder Computer (oder "Host") in einem IP-Netzwerk ist mit einer eindeutigen IP-Adresse und Subnetzmaske konfiguriert. Diese IP-Adresse kann in eine "Gebäudezahl" -Komponente (wie im obigen Beispiel "123"), die "Host-ID" genannt wird, und eine "Straßenname" -Komponente (wie im obigen Beispiel "Main Street") aufgeteilt werden "Netzwerk ID". Für unsere menschlichen Augen ist es leicht zu sehen, wo die Gebäudenummer und der Straßenname in "123 Main Street" sind, aber schwieriger, diese Unterteilung in "10.13.216.41 mit einer Subnetzmaske von 255.255.192.0" zu sehen.

IP-Router "wissen" nur, wie IP-Adressen in diese Komponenten aufgeteilt werden, um Routing-Entscheidungen zu treffen. Da zu verstehen ist, wie IP-Pakete weitergeleitet werden, hängt es von diesem Prozess ab, wie man IP-Adressen aufteilt. Glücklicherweise ist das Extrahieren der Host-ID und der Netzwerk-ID aus einer IP-Adresse und Subnetzmaske ziemlich einfach.

Beginnen Sie damit, die IP-Adresse in Binärform auszugeben (benutzen Sie einen Taschenrechner, wenn Sie das noch nicht in Ihrem Kopf gelernt haben, aber notieren Sie sich, wie es geht - es ist wirklich sehr einfach und beeindruckt das andere Geschlecht Parteien):

      10.      13.     216.      41
00001010.00001101.11011000.00101001

Schreiben Sie die Subnetzmaske auch in Binärform aus:

     255.     255.     192.       0
11111111.11111111.11000000.00000000

Seite an Seite geschrieben, können Sie sehen, dass der Punkt in der Subnetzmaske, wo die "1's" aufhört, auf einen Punkt in der IP-Adresse ausgerichtet ist. Das ist der Punkt, an dem die Netzwerk-ID und die Host-ID aufgeteilt werden. Also, in diesem Fall:

      10.      13.     216.      41
00001010.00001101.11011000.00101001 - IP address
11111111.11111111.11000000.00000000 - subnet mask
00001010.00001101.11000000.00000000 - Portion of IP address covered by 1's in subnet mask, remaining bits set to 0
00000000.00000000.00011000.00101001 - Portion of IP address covered by 0's in subnet mask, remaining bits set to 0

Router verwenden die Subnetzmaske, um die Bits, die von 1en in der IP-Adresse abgedeckt sind, "auszublenden" (die Bits, die nicht mit 0 "ausgeblendet" sind), um die Netzwerk-ID zu extrahieren:

      10.      13.     192.       0
00001010.00001101.11000000.00000000 - Network ID

Wenn die Subnetzmaske verwendet wird, um die Bits, die durch 0 in der IP-Adresse abgedeckt sind, auszublenden (indem die Bits ersetzt werden, die nicht wieder mit Nullen "ausgeblendet" sind), kann ein Router die Host-ID extrahieren:

       0.       0.      24.      41
00000000.00000000.00011000.00101001 - Portion of IP address covered by 0's in subnet mask, remaining bits set to 0

Es ist nicht so einfach für unsere menschlichen Augen, den "Bruch" zwischen der Netzwerk-ID und der Host-ID zu sehen, wie zwischen der "Hausnummer" und dem "Straßennamen" in physischen Adressen während der Pizzalieferung, aber der ultimative Effekt ist der gleich.

Jetzt, da Sie IP-Adressen und Subnetzmasken in Host-IDs und Netzwerk-IDs aufteilen können, können Sie IP wie ein Router routen.

Mehr Terminologie

Sie werden Subnetzmasken sehen, die über das Internet und den Rest dieser Antwort als (IP / Nummer) geschrieben sind. Diese Notation ist als "Classless Inter-Domain Routing" (CIDR) -Notation bekannt. "255.255.255.0" besteht am Anfang aus 24 Bits von 1, und es ist schneller, dies als "/ 24" als als "255.255.255.0" zu schreiben. Um eine CIDR-Nummer (z. B. "/ 16") in eine Subnetzmaske mit geteilter Dezimalstelle zu konvertieren, schreiben Sie einfach die Anzahl der 1en auf, teilen Sie sie in Gruppen von 8 Bits auf und konvertieren Sie sie in Dezimalzahlen. (A "/ 16" ist zum Beispiel "255.255.0.0".)

Zurück in den "alten Tagen" wurden Subnetzmasken nicht spezifiziert, sondern wurden abgeleitet, indem bestimmte Bits der IP-Adresse betrachtet wurden. Eine IP-Adresse, die beispielsweise mit 0 - 127 beginnt, hatte eine implizite Subnetzmaske von 255.0.0.0 (als "IP-Adresse der Klasse A" bezeichnet).

Diese impliziten Subnetzmasken werden heute nicht verwendet und ich empfehle nicht, mehr über sie zu lernen, es sei denn, Sie haben das Pech, mit sehr alten Geräten oder alten Protokollen (wie RIPv1) zu arbeiten, die klassenlose IP-Adressierung nicht unterstützen. Ich werde diese "Klassen" von Adressen nicht weiter erwähnen, weil sie heute nicht anwendbar sind und verwirrend sein können.

Einige Geräte verwenden eine Notation namens "Wildcard-Masken". Eine "Wildcard-Maske" ist nichts anderes als eine Subnetzmaske mit allen Nullen, wo es Einsen gibt, und Einsen, wo es Nullen gäbe. Die "Wildcard-Maske" von a / 26 ist:

 11111111.11111111.11111111.11000000 - /26 subnet mask
 00000000.00000000.00000000.00111111 - /26 "wildcard mask"

In der Regel sehen Sie "Platzhaltermasken", die verwendet werden, um Host-IDs in Zugriffssteuerungslisten oder Firewall-Regeln zuzuordnen. Wir werden sie hier nicht weiter diskutieren.

Wie ein Router funktioniert

Wie ich bereits sagte, haben IP-Router eine ähnliche Aufgabe wie ein Pizzalieferer, da sie ihre Fracht (Pakete) an ihren Bestimmungsort bringen müssen. Wenn ein IP-Router mit einem an die Adresse 192.168.10.2 gebundenen Paket konfrontiert wird, muss er feststellen, welche seiner Netzwerkschnittstellen das Paket am besten zu seinem Zielort bringt.

Nehmen wir an, Sie sind ein IP-Router, und Sie haben Schnittstellen, die mit Ihnen verbunden sind:

  • Ethernet0 - 192.168.20.1, Subnetzmaske / 24
  • Ethernet1 - 192.168.10.1, Subnetzmaske / 24

Wenn Sie ein Paket mit einer Zieladresse von "192.168.10.2" erhalten, ist es ziemlich einfach zu sagen (mit Ihren menschlichen Augen), dass das Paket über die Schnittstelle Ethernet1 gesendet werden sollte, da die Ethernet1-Schnittstellenadresse dem Ziel des Pakets entspricht Adresse. Alle Computer, die an die Ethernet1-Schnittstelle angeschlossen sind, haben IP-Adressen, die mit "192.168.10." Beginnen, da die Netzwerk-ID der IP-Adresse, die Ihrer Schnittstelle Ethernet1 zugewiesen ist, "192.168.10.0" ist.

Für einen Router wird dieser Routenauswahlprozess durchgeführt, indem eine Routing-Tabelle erstellt wird und die Tabelle jedes Mal konsultiert wird, wenn ein Paket zugestellt werden soll. Eine Routing-Tabelle enthält Netzwerk-ID und Zielschnittstellennamen. Sie wissen bereits, wie Sie eine Netzwerk-ID von einer IP-Adresse und einer Subnetzmaske erhalten, sodass Sie auf dem Weg sind, eine Routing-Tabelle zu erstellen. Hier ist unsere Routing-Tabelle für diesen Router:

  • Netzwerk-ID: 192.168.20.0 (11000000.10101000.00010100.00000000) - 24-Bit-Subnetzmaske - Schnittstelle Ethernet0
  • Netzwerk-ID: 192.168.10.0 (11000000.10101000.00001010.00000000) - 24-Bit-Subnetzmaske - Schnittstelle Ethernet1

Für unser ankommendes Paket, das an "192.168.10.2" gebunden ist, müssen wir nur die Adresse dieses Pakets in binär konvertieren (als Menschen - der Router erhält es als binär aus der Leitung, um damit anzufangen) und versuchen, es mit jeder Adresse in unserem Routing abzugleichen Tabelle (bis zur Anzahl der Bits in der Subnetzmaske), bis wir einen Eintrag gefunden haben.

  • Ziel des eingehenden Pakets: 11000000.10101000.00001010.00000010

Vergleichen wir das mit den Einträgen in unserer Routing-Tabelle:

11000000.10101000.00001010.00000010 - Destination address for packet
11000000.10101000.00010100.00000000 - Interface Ethernet0
!!!!!!!!.!!!!!!!!.!!!????!.xxxxxxxx - ! indicates matched digits, ? indicates no match, x indicates not checked (beyond subnet mask)

11000000.10101000.00001010.00000010 - Destination address for packet
11000000.10101000.00001010.00000000 - Interface Ethernet1, 24 bit subnet mask
!!!!!!!!.!!!!!!!!.!!!!!!!!.xxxxxxxx - ! indicates matched digits, ? indicates no match, x indicates not checked (beyond subnet mask)

Der Eintrag für Ethernet0 stimmt mit den ersten 19 Bits überein, stoppt dann aber die Übereinstimmung. Das bedeutet, dass es nicht die richtige Zielschnittstelle ist. Sie sehen, dass die Schnittstelle Ethernet1 24 Bits der Zieladresse entspricht. Ah, ha! Das Paket ist für die Schnittstelle Ethernet1 gebunden.

In einem realen Router ist die Routingtabelle so sortiert, dass die längsten Subnetzmasken zuerst nach Übereinstimmungen (dh den spezifischsten Routen) und numerisch überprüft werden, so dass, sobald eine Übereinstimmung gefunden wird, das Paket weitergeleitet werden kann und es sind keine weiteren Abgleichversuche erforderlich (dh 192.168.10.0 würde zuerst aufgeführt und 192.168.20.0 wäre nie überprüft worden). Hier vereinfachen wir das ein wenig. Fancy Datenstrukturen und Algorithmen machen schnellere IP-Router, aber einfache Algorithmen werden die gleichen Ergebnisse liefern.

Statische Routen

Bis zu diesem Punkt haben wir über unseren hypothetischen Router gesprochen, der Netzwerke direkt mit ihm verbunden hat. Das ist natürlich nicht so, wie die Welt wirklich funktioniert. In der Pizza-Fahr-Analogie, manchmal der Fahrer ist nicht weiter in das Gebäude als die Rezeption erlaubt, und muss die Pizza an jemand anderen für die Lieferung an den endgültigen Empfänger übergeben (suspendieren Sie Ihre Ungläubigkeit und ertragen mit mir während Ich strecke meine Analogie, bitte).

Beginnen wir mit dem Aufruf unseres Routers aus den früheren Beispielen "Router A". Sie kennen die Routing-Tabelle von RouterA bereits als:

  • Netzwerk-ID: 192.168.20.0 (11000000.10101000.00010100.00000000) - Subnetzmaske / 24 - Schnittstelle RouterA-Ethernet0
  • Netzwerk-ID: 192.168.10.0 (11000000.10101000.00001010.00000000) - Subnetzmaske / 24 - Schnittstelle RouterA-Ethernet1

Angenommen, es gibt einen anderen Router, "Router B", dessen IP-Adressen 192.168.10.254/24 und 192.168.30.1/24 den Ethernet0- und Ethernet1-Schnittstellen zugewiesen sind. Es hat die folgende Routing-Tabelle:

  • Netzwerk-ID: 192.168.10.0 (11000000.10101000.00001010.00000000) - Subnetzmaske / 24 - Schnittstelle RouterB-Ethernet0
  • Netzwerk-ID: 192.168.30.0 (11000000.10101000.00011110.00000000) - Subnetzmaske / 24 - Schnittstelle RouterB-Ethernet1

In einer hübschen ASCII-Grafik sieht das Netzwerk so aus:

               Interface                      Interface
               Ethernet1                      Ethernet1
               192.168.10.1/24                192.168.30.254/24
     __________  V                  __________  V
    |          | V                 |          | V
----| ROUTER A |------- /// -------| ROUTER B |----
  ^ |__________|                 ^ |__________|
  ^                              ^
Interface                      Interface
Ethernet0                      Ethernet0
192.168.20.1/24                192.168.10.254/24

Sie können sehen, dass Router B weiß, wie er an ein Netzwerk "192.168.30.0/24" gelangt, von dem Router A nichts weiß.

Angenommen, ein PC mit der IP-Adresse 192.168.20.13, der an das mit der Ethernet0-Schnittstelle von Router A verbundene Netzwerk angeschlossen ist, sendet ein Paket zur Lieferung an Router A. Unser hypothetisches Paket ist für die IP-Adresse 192.168.30.46 bestimmt, ein Gerät, das an das Netzwerk angeschlossen ist, das an die Ethernet1-Schnittstelle von Router B angeschlossen ist.

Mit der oben gezeigten Routingtabelle stimmt keiner der Einträge in der Routingtabelle von Router A mit dem Ziel 192.168.30.46 überein, sodass Router A das Paket mit der Nachricht "Zielnetzwerk nicht erreichbar" an den sendenden PC zurücksendet.

Um Router A das Vorhandensein des Netzwerkes 192.168.30.0/24 "bewusst" zu machen, fügen wir der Routing-Tabelle auf Router A den folgenden Eintrag hinzu:

  • Netzwerk-ID: 192.168.30.0 (11000000.10101000.00011110.00000000) - Subnetzmaske / 24 - Zugänglich über 192.168.10.254

Auf diese Weise hat Router A einen Routing-Tabelleneintrag, der dem Ziel 192.168.30.46 unseres Beispielpakets entspricht. Dieser Routing-Tabelleneintrag sagt effektiv "Wenn Sie ein Paket für 192.168.30.0/24 erhalten, senden Sie es an 192.168.10.254, weil er weiß, wie es damit umgehen soll." Dies ist die analoge "Hand-off-Pizza an der Rezeption" -Aktion, die ich bereits erwähnt habe - das Paket an jemanden weiterreichen, der weiß, wie es näher an sein Ziel kommt.

Das Hinzufügen eines Eintrags zu einer Routing-Tabelle "von Hand" ist bekannt als Hinzufügen einer "statischen Route".

Wenn Router B Pakete an das Netzwerk 255.255.255.0 der Subnetzmaske 192.168.20.0 senden möchte, benötigt er ebenfalls einen Eintrag in seiner Routing-Tabelle:

  • Netzwerk-ID: 192.168.20.0 (11000000.10101000.00010100.00000000) - Subnetzmaske / 24 - Zugänglich über: 192.168.10.1 (IP-Adresse von Router A im Netzwerk 192.168.10.0)

Dies würde einen Pfad für die Zustellung zwischen dem Netzwerk 192.168.30.0/24 und dem Netzwerk 192.168.20.0/24 im Netzwerk 192.168.10.0/24 zwischen diesen Routern schaffen.

Sie möchten immer sicher sein, dass Router auf beiden Seiten eines solchen "Interstitial-Netzwerks" einen Routing-Tabelleneintrag für das "ferne Ende" -Netzwerk haben. Wenn Router B in unserem Beispiel keinen Routing-Tabelleneintrag für das "ferne Ende" -Netzwerk 192.168.20.0/24 hatte, das an Router A angeschlossen ist, ist unser hypothetisches Paket vom PC bei 192.168.20.13 würde gehe zum Zielgerät bei 192.168.30.46, aber jede Antwort, die 192.168.30.46 versucht zurückzusenden, wird von Router B als "Zielnetzwerk nicht erreichbar" zurückgegeben. Einseitige Kommunikation ist im Allgemeinen nicht wünschenswert. Denken Sie immer an den fließenden Verkehr beide Richtungen, wenn Sie an Kommunikation in Computernetzen denken.

Sie können viel von statischen Routen profitieren. Dynamische Routing-Protokolle wie EIGRP, RIP usw. sind wirklich nichts anderes als eine Möglichkeit für Router, Routing-Informationen untereinander auszutauschen, die tatsächlich mit statischen Routen konfiguriert werden könnten. Ein großer Vorteil der Verwendung von dynamischen Routing-Protokollen gegenüber statischen Routen besteht jedoch darin, dass dynamische Routing-Protokolle dies können dynamisch Ändern Sie die Routingtabelle basierend auf Netzwerkbedingungen (Bandbreitennutzung, eine Schnittstelle "geht nach unten" usw.) und als solches kann die Verwendung eines dynamischen Routingprotokolls zu einer Konfiguration führen, die Fehler oder Engpässe in der Netzwerkinfrastruktur "umgeht". (Dynamische Routing-Protokolle sind WEG außerhalb des Umfangs dieser Antwort, obwohl.)

Sie können nicht von hier kommen

Was passiert bei unserem Beispiel Router A, wenn ein Paket für "172.16.31.92" ankommt?

Betrachtet man die Routing-Tabelle Router A, so entspricht weder die Zielschnittstelle noch die statische Route den ersten 24 Bits von 172.18.31.92 (also 10101100.00010000.00011111.01011100, BTW).

Wie wir bereits wissen, würde Router A das Paket über eine "Destination network reachable" -Nachricht an den Absender zurücksenden.

Angenommen, ein anderer Router (Router C) sitzt unter der Adresse "192.168.20.254". Router C hat eine Verbindung zum Internet!

                              Interface                      Interface                      Interface
                              Ethernet1                      Ethernet1                      Ethernet1
                              192.168.20.254/24              192.168.10.1/24                192.168.30.254/24
                    __________  V                  __________  V                  __________  V
((  heap o  ))     |          | V                 |          | V                 |          | V
(( internet )) ----| ROUTER C |------- /// -------| ROUTER A |------- /// -------| ROUTER B |----
((   w00t!  ))   ^ |__________|                 ^ |__________|                 ^ |__________|
                 ^                              ^                              ^
               Interface                      Interface                      Interface
               Ethernet0                      Ethernet0                      Ethernet0
               10.35.1.1/30                   192.168.20.1/24                192.168.10.254/24

Es wäre schön, wenn Router A Pakete, die keiner lokalen Schnittstelle entsprechen, an Router C weiterleiten könnte, so dass Router C sie an das Internet senden kann. Geben Sie die Route "Standard-Gateway" ein.

Fügen Sie einen Eintrag am Ende unserer Routing-Tabelle wie folgt hinzu:

  • Netzwerk-ID: 0.0.0.0 (00000000.00000000.00000000.00000000) - Subnetzmaske / 0 - Ziel-Router: 192.168.20.254

Wenn wir versuchen, "172.16.31.92" mit jedem Eintrag in der Routingtabelle in Übereinstimmung zu bringen, treffen wir diesen neuen Eintrag. Es ist zunächst etwas verwirrend. Wir suchen nach Null Bits der Zieladresse mit ... warte ... was? Passende Null-Bits? Also, wir suchen überhaupt kein Spiel. Dieser Eintrag in der Routing-Tabelle besagt im Grunde genommen: "Wenn Sie hier ankommen, anstatt bei der Zustellung aufzugeben, senden Sie das Paket an den Router unter 192.168.20.254 und lassen Sie ihn damit umgehen".

192.168.20.254 ist ein Reiseziel wir TUN wissen, wie man ein Paket anliefert. Wenn sie mit einem Paket konfrontiert werden, das an ein Ziel gebunden ist, für das wir keinen spezifischen Routing-Tabelleneintrag haben, wird dieser "Standard-Gateway" -Eintrag immer übereinstimmen (da er null Bits der Zieladresse entspricht) und uns einen "letzten Ausweg" geben Pakete zur Lieferung senden. Manchmal hören Sie das Standardgateway, das als "Gateway of Last Resort" bezeichnet wird.

Damit eine Standard-Gateway-Route effektiv ist, muss sie sich auf einen Router beziehen, der über die anderen Einträge in der Routing-Tabelle erreichbar ist. Wenn Sie beispielsweise in Router A versucht haben, ein Standardgateway von 192.168.50.254 anzugeben, schlägt die Übermittlung an ein solches Standardgateway fehl. 192.168.50.254 ist keine Adresse, die Router A weiß, wie Pakete an die Verwendung einer der anderen Routen in seiner Routing-Tabelle weitergeleitet werden, so dass eine solche Adresse als Standard-Gateway unwirksam wäre. Dies kann kurz gesagt werden: Das Standard-Gateway muss auf eine Adresse festgelegt werden, die bereits erreichbar ist, indem eine andere Route in der Routing-Tabelle verwendet wird.

Echte Router speichern das Standard-Gateway normalerweise als letzte Route in ihrer Routing-Tabelle, so dass es mit Paketen übereinstimmt, nachdem sie nicht mit allen anderen Einträgen in der Tabelle übereinstimmen konnten.

Stadtplanung und IP-Routing

Das Aufteilen eines IP-Subnetzes in kleinere IP-Subnetze ist die städtebauliche Planung. In der Stadtplanung wird die Zonierung verwendet, um sich an die natürlichen Gegebenheiten der Landschaft (Flüsse, Seen usw.) anzupassen, den Verkehr zwischen den verschiedenen Teilen der Stadt zu beeinflussen und verschiedene Arten von Landnutzung (Industrie, Wohnen usw.) zu trennen. . IP Subnetting ist wirklich sehr ähnlich.

Es gibt drei Hauptgründe, warum Sie ein Netzwerk subnet:

  • Möglicherweise möchten Sie über verschiedene Kommunikationsmedien kommunizieren. Wenn Sie eine T1-WAN-Verbindung zwischen zwei Gebäuden haben, können IP-Router an den Enden dieser Verbindungen platziert werden, um die Kommunikation über den T1 zu erleichtern. Die Netzwerke an jedem Ende (und möglicherweise das "interstitielle" Netzwerk auf dem T1 selbst) würden eindeutigen IP-Subnetzen zugewiesen werden, so dass die Router Entscheidungen darüber treffen können, welcher Verkehr über die T1-Leitung gesendet werden sollte.

  • In einem Ethernet-Netzwerk können Sie Subnetting verwenden, um den Umfang des Broadcastverkehrs in einem bestimmten Teil des Netzwerks zu begrenzen. Protokolle auf Anwendungsebene verwenden die Broadcast-Fähigkeit von Ethernet für sehr nützliche Zwecke. Wenn immer mehr Hosts in dasselbe Ethernet-Netzwerk gepackt werden, kann der prozentuale Anteil des Broadcast-Verkehrs auf der Leitung (oder der Luft, im drahtlosen Ethernet) so hoch werden, dass Probleme bei der Übertragung von Nicht-Broadcast-Verkehr entstehen. (In früheren Zeiten konnte Broadcast-Verkehr die CPU von Hosts überwältigen, indem er sie dazu zwang, jedes Broadcast-Paket zu überprüfen. Das ist heute weniger wahrscheinlich.) Übermäßiger Verkehr auf vermitteltem Ethernet kann auch in Form von "Überflutung von Frames zu unbekannten Zielen" kommen. Diese Bedingung wird dadurch verursacht, dass ein Ethernet-Switch nicht in der Lage ist, jedes Ziel im Netzwerk zu verfolgen. Aus diesem Grund können Switched-Ethernet-Netzwerke nicht auf eine unbegrenzte Anzahl von Hosts skaliert werden. Der Effekt der Überflutung von Frames zu unbekannten Zielen ist dem Effekt von übermäßigem Broadcast-Verkehr für die Zwecke der Subnetzbildung ähnlich.

  • Möglicherweise möchten Sie die Arten von Datenverkehr zwischen verschiedenen Gruppen von Hosts "überwachen". Vielleicht haben Sie Druckservergeräte, und Sie möchten nur autorisierte Druckwarteschlangenservercomputer Aufträge an sie senden. Durch Einschränken des Datenverkehrs, der in das Druckserver-Gerät-Subnetz fließen darf, können Benutzer ihre PCs nicht so konfigurieren, dass sie direkt mit den Druckservergeräten kommunizieren, um die Druckabrechnung zu umgehen. Sie könnten die Druckservergeräte in ein Subnetz für sich selbst legen und eine Regel im Router oder der Firewall erstellen, die an dieses Subnetz angeschlossen ist, um die Liste der Hosts zu steuern, die Daten an die Druckservergeräte senden dürfen. (Sowohl Router als auch Firewalls können typischerweise entscheiden, wie oder ob ein Paket basierend auf der Quell- und Zieladresse des Pakets zuzustellen ist. Firewalls sind typischerweise eine Unterart eines Routers mit einer obsessiven Persönlichkeit. Sie können sehr, sehr besorgt sein die Nutzlast von Paketen, während Router typischerweise Payloads ignorieren und nur die Pakete liefern.)

Wenn Sie eine Stadt planen, können Sie planen, wie sich die Straßen überschneiden, und die Einbahnstraßen, Einbahnstraßen und Sackgassen nutzen, um die Verkehrsströme zu beeinflussen. Vielleicht möchten Sie, dass die Hauptstraße 30 Blocks lang ist und jeder Block bis zu 99 Gebäude hat. Es ist ziemlich einfach, Ihre Straßennummerierung so zu planen, dass jeder Block in der Hauptstraße eine Reihe von Straßennummern aufweist, die für jeden Block um 100 erhöht werden. Es ist sehr einfach zu wissen, was die "Startnummer" in jedem nachfolgenden Block sein sollte.

Bei der Planung von IP-Subnetzen müssen Sie die richtige Anzahl von Subnetzen (Straßen) mit der richtigen Anzahl verfügbarer Host-IDs (Gebäudenummern) erstellen und Router verwenden, um die Subnetze miteinander zu verbinden (Kreuzungen). Regeln über erlaubte Quell- und Zieladressen, die in den Routern spezifiziert sind, können den Verkehrsfluss weiter steuern. Firewalls können sich wie besessene Verkehrspolizisten verhalten.

Für die Zwecke dieser Antwort ist der Aufbau unserer Subnetze unsere einzige große Sorge. Anstatt wie bei der Stadtplanung im Dezimalsystem zu arbeiten, arbeiten Sie in Binärform, um die Grenzen jedes Subnetzes zu beschreiben.

Fortsetzung auf: Wie funktioniert IPv4-Subnetting?

(Ja ... wir haben die maximale Größe einer Antwort erreicht (30000 Zeichen).)


631
2017-08-04 15:58



@Joseph: Es ist ein Vortrag, den ich zu oft zu meinem eigenen Besten gehalten habe. > smile <Ich schaue dir deinen binären Abschnitt an. Ich verabscheue es, über Mathe zu unterrichten (was wirklich das binäre Verständnis ist - in Basis 2 zu zählen), weil ich nicht sehr gut darin bin. - Evan Anderson
Mein einziges Problem mit der Auflösung der Antwort ist, dass man verstehen muss, warum Subnetting existiert (IP-Routing), bevor man verstehen kann, wie man ein IP-Netzwerk effektiv in Subnetze aufteilt. Ich habe nie einen guten Weg gefunden, ein Thema isoliert voneinander zu diskutieren. (Das Entwerfen eines IP-Netzwerks mit VLSM kommt natürlich und macht "Sinn", nachdem Sie das IP-Routing verstanden haben ...) - Evan Anderson
Zerbrich es nicht. - Joseph Kern
+1 für den umfassendsten Post, der jemals auf Serverfault gesehen wurde - Scott Lundberg
Upvoted wenn nur für die Odometer-Metapher. Jetzt weiß ich, wie man Leuten erklärt, wie das Binärsystem funktioniert. - phuzion


Fortsetzung von: Wie funktioniert IPv4-Subnetting?

Ihr ISP gibt Ihnen den Bereich der Netzwerk-ID 192.168.40.0/24 (11000000.10101000.00101000.00000000). Sie wissen, dass Sie ein Firewall- / Router-Gerät verwenden möchten, um die Kommunikation zwischen verschiedenen Teilen Ihres Netzwerks (Server, Clientcomputer, Netzwerkgeräte) einzuschränken. Daher möchten Sie diese verschiedenen Teile Ihres Netzwerks durchbrechen in IP-Subnetze (zwischen denen das Firewall / Router-Gerät dann routen kann).

Du hast:

  • 12 Server-Computer, aber Sie könnten bis zu 50% mehr bekommen
  • 9 Schalter
  • 97 Client-Computer, aber Sie könnten mehr bekommen

Was ist ein guter Weg, um 192.168.40.0/24 in diese Stücke zu zerlegen?

Sie können sogar mit Zweierpotenzen arbeiten und mit einer größeren Anzahl möglicher Geräte arbeiten.

  • 18 Server Computer - Nächste größte Macht von zwei ist 32
  • 9 Schalter - Nächste größte Macht von zwei ist 16
  • 97 Client-Computer - Die zweitgrößte Zweierpotenz ist 128

In einem gegebenen IP-Teilnetz sind zwei reservierte Adressen vorhanden, die nicht als gültige Geräte-IP-Adressen verwendet werden können - die Adresse mit allen Nullen im Host-ID-Teil und die Adresse mit allen Einsen im Host-ID-Teil. Somit ist die Anzahl der verfügbaren Host-Adressen für jedes gegebene IP-Subnetz zwei Mal so groß wie die Anzahl von 32 minus der Anzahl von Bits in der Subnetz-Maske minus 2. Im Fall von 192.168.40.0/24 we kann sehen, dass die Subnetzmaske 24 Bits hat. Damit stehen 8 Bits für Host-IDs zur Verfügung. Wir wissen, dass 2 bis zur 8. Potenz 256 ist - was bedeutet, dass 256 mögliche Kombinationen von Bits in einen Slot passen, der 8 Bits breit ist. Da die "11111111" - und "00000000" -Kombinationen dieser 8 Bits für Host-IDs nicht zulässig sind, verbleiben 254 mögliche Hosts, die im Netzwerk 192.168.40.0/24 zugewiesen werden können.

Von diesen 254 Hosts sieht es so aus, als könnten wir die Client-Computer, Switches und Server-Computer in diesen Raum einpassen, richtig? Lass es uns versuchen.

Sie haben 8 Bit Subnetzmaske, mit der Sie "spielen" können (die restlichen 8 Bit der IP-Adresse 192.168.40.0/24 werden nicht von der Subnetzmaske Ihres ISP abgedeckt). Wir müssen einen Weg finden, um diese 8 Bits zu verwenden, um eine Anzahl von eindeutigen Netzwerk-IDs zu erzeugen, die die obigen Geräte aufnehmen können.

Beginnen Sie mit dem größten Netzwerk - den Client-Computern. Sie wissen, dass die nächst größere Potenz von zwei aus der Anzahl der möglichen Geräte 128 ist. Die Zahl 128, in binär, ist "10000000". Zum Glück für uns passt das in den 8-Bit-Steckplatz, den wir frei haben (wenn das nicht der Fall wäre, wäre das ein Hinweis darauf, dass unser Start-Subnetz zu klein ist, um alle unsere Geräte unterzubringen).

Nehmen wir unsere Netzwerk-ID, wie sie von unserem ISP zur Verfügung gestellt wird, und fügen Sie ein einzelnes Bit der Subnetzmaske hinzu und teilen Sie sie in zwei Netzwerke auf:

11000000.10101000.00101000.00000000 - 192.168.40.0 network ID
11111111.11111111.11111111.00000000 - Old subnet mask (/24)

11000000.10101000.00101000.00000000 - 192.168.40.0 network ID
11111111.11111111.11111111.10000000 - New subnet mask (/25)

11000000.10101000.00101000.10000000 - 192.168.40.128 network ID
11111111.11111111.11111111.10000000 - New subnet mask (/25)

Schau darüber, bis es Sinn macht. Wir haben die Subnetzmaske um ein Bit verlängert, sodass die Netzwerk-ID ein Bit überschritt, das für die Host-ID verwendet worden wäre. Da dieses eine Bit entweder null oder eins sein kann, haben wir unser Netzwerk 192.168.40.0 effektiv in zwei Netzwerke aufgeteilt. Die erste gültige IP-Adresse im Netzwerk 192.168.40.0/25 ist die erste Host-ID mit einer "1" im rechten Bit:

11000000.10101000.00101000.00000001 - 192.168.40.1 - First valid host in the 192.168.40.0/25 network

Der erste gültige Host im Netzwerk 192.168.40.128 ist ebenfalls die erste Host-ID mit einer "1" im rechten Bit:

11000000.10101000.00101000.10000001 - 192.168.40.129 - First valid host in the 192.168.40.128/25 network

Der letzte gültige Host in jedem Netzwerk ist die Host-ID mit jedem Bit außer das Bit ganz rechts auf "1" gesetzt:

11000000.10101000.00101000.01111110 - 192.168.40.126 - Last valid host in the 192.168.40.0/25 network
11000000.10101000.00101000.11111110 - 192.168.40.254 - Last valid host in the 192.168.40.128/25 network

Auf diese Weise haben wir ein Netzwerk geschaffen, das groß genug ist, um unsere Client-Computer aufzunehmen, und ein zweites Netzwerk, das dann dasselbe Prinzip anwenden kann, um in noch kleinere Netzwerke aufzuteilen. Machen wir uns eine Notiz:

  • Clientcomputer - 192.168.40.0/25 - Gültige IP-Adressen: 192.168.40.1 - 192.168.40.126

Um nun das zweite Netzwerk für unsere Server und Switches zu durchbrechen, machen wir dasselbe.

Wir haben 12 Servercomputer, aber wir können bis zu 6 weitere kaufen. Lassen Sie uns auf 18 planen, was uns die zweithöchste Potenz von 2 als 32 gibt. In binär ist 32 "100000", was 6 Bits lang ist. Wir haben 7 Bits der Subnetzmaske in 192.168.40.128/25 übrig, also haben wir genug Bits, um mit dem "Spielen" fortzufahren. Wenn Sie ein weiteres Bit der Subnetzmaske hinzufügen, erhalten Sie zwei weitere Netzwerke:

11000000.10101000.00101000.10000000 - 192.168.40.128 network ID
11111111.11111111.11111111.10000000 - Old subnet mask (/25)

11000000.10101000.00101000.10000000 - 192.168.40.128 network ID
11111111.11111111.11111111.11000000 - New subnet mask (/26)
11000000.10101000.00101000.10000001 - 192.168.40.129 - First valid host in the 192.168.40.128/26 network
11000000.10101000.00101000.10111110 - 192.168.40.190 - Last valid host in the 192.168.40.128/26 network

11000000.10101000.00101000.11000000 - 192.168.40.192 network ID
11111111.11111111.11111111.11000000 - New subnet mask (/26)
11000000.10101000.00101000.11000001 - 192.168.40.193 - First valid host in the 192.168.40.192/26 network
11000000.10101000.00101000.11111110 - 192.168.40.254 - Last valid host in the 192.168.40.192/26 network

Also, jetzt haben wir 192.168.40.128/25 in zwei weitere Netzwerke aufgeteilt, von denen jedes 26 Bit Subnetzmaske hat, oder insgesamt 62 mögliche Host-IDs - 2 ^ (32 - 26) - 2.

Das bedeutet, dass beide Netzwerke genug Adressen für unsere Server und Switches haben! Machen wir uns Notizen:

  • Server - 192.168.40.128/26 - Gültige IP-Adressen: 192.168.40.129 - 192.168.40.190
  • Schalter - 192.168.40.192/26 - Gültige IPs: 192.168.40.193 - 192.168.40.254

Diese Technik wird als VLSM (Variable-Length Subnet Masking) bezeichnet und bewirkt bei richtiger Anwendung, dass "Core-Router" kleinere Routing-Tabellen haben (durch einen Prozess namens "Routenzusammenfassung"). Im Fall unseres ISPs in diesem Beispiel können sie sich überhaupt nicht bewusst sein, wie wir 192.168.40.0/24 in Subnetze unterteilt haben. Wenn ihr Router ein Paket für 192.168.40.206 (einen unserer Switches) hat, müssen sie es nur an unseren Router weitergeben (da 192.168.40.206 die Netzwerk-ID und die Subnetzmaske 192.168.40.0/24 in der Routingtabelle des Routers entspricht) ) und unser Router wird es zum Ziel bringen. Dies hält unsere Subnetzrouten aus ihren Routing-Tabellen heraus. (Ich vereinfache hier, aber Sie bekommen die Idee.)

Auf diese Weise können Sie sehr geografisch große Netzwerke planen. Solange Sie die richtige "Stadtplanung" vorneh- men (die Anzahl der Hosts in jedem Sub-Netzwerk mit einiger Genauigkeit voraussehen und die Zukunft im Auge behalten), können Sie eine große Routing-Hierarchie erstellen, die bei den Core-Routern "zusammengefasst wird "zu einer sehr kleinen Anzahl von Routen. Wie wir oben gesehen haben, gilt, je mehr Routen in der Routingtabelle eines Routers sind, desto langsamer wird seine Arbeit ausgeführt. Ein IP-Netzwerk mit VLSM zu entwerfen und Routing-Tabellen klein zu halten, ist ein Good Thing (tm).

Der Unrealismus der Beispiele

Die fiktive Welt in dieser Antwort ist offensichtlich fiktiv. In der Regel können Sie Subnetze im modernen Switched-Ethernet mit mehr Hosts als 254 (abhängig vom Verkehrsprofil) erstellen. Wie in Kommentaren erwähnt wurde, stimmt die Verwendung von / 24-Netzwerken zwischen Routern nicht mit Real Life (tm) überein. Es macht süße Beispiele, ist aber eine Verschwendung von Adressraum. Normalerweise a / 30 oder a / 31 (siehe http://www.faqs.org/rfcs/rfc3021.html Für Details zur Funktionsweise von / 31 - diese sind sicherlich nicht Gegenstand dieser Antwort) wird das Netzwerk auf Links verwendet, die direkt zwischen zwei Routern liegen.


137
2017-08-04 15:53



Kleiner Fehler: Der Code direkt nach "Der letzte gültige Host ..." kehrt zurück zum Aufruf "der erste gültige Host". Ich nehme an, dass sollte noch "last" sagen. - JoeCool1986
@ JoeCool1986 - Guter Fang. - Evan Anderson
Ich werde diese Antwort verbessern, um sicherzustellen, dass zwei Antworten in Ordnung sind. - l46kok
An dem Teil, wo Sie zwei Subnetze von 192.168.40.128 erstellen und eine Netzwerk-ID von 192.168.40.192 erstellen, woher kam die 192? - user6607
@ user6607 Subnetze werden rückwärts gezählt (ohne Lücken). Zum Beispiel das erste Subnetz 0 wird als dargestellt 00000000. Das zweite Teilnetz ist 128 so 10000000 und das dritte Subnetz 192 wird als dargestellt 11000000, etc. Zählen Sie einfach rückwärts, um neue Subnetze zu finden. - Joseph Kern


Sub-Netting

Sub-Netting ist nicht schwierig, aber es kann einschüchternd sein. Beginnen wir mit dem einfachsten möglichen Schritt. Zählen lernen im Binärformat.

Binär

Binary ist ein Basis-2-Zählsystem. Bestehend aus nur zwei Zahlen (1 und 0). Auf diese Weise wird gezählt.

1 = 001 ( 0 + 0 + 1 = 1)
2 = 010 ( 0 + 2 + 0 = 2)
3 = 011 ( 0 + 2 + 1 = 3)
4 = 100 ( 4 + 0 + 0 = 4)
5 = 101 ( 4 + 0 + 1 = 5)

Also wenn du dir nur vorstellst, dass jede 1 ein Platzhalter für einen Wert ist (alle binären Werte sind Potenzen von zwei)

1     1     1     1     1 = 31
16  + 8  +  4  +  2  +  1 = 31

Also ... 100000 = 32. Und 10000000 = 128. UND 11111111 = 255.

Wenn ich sage: "Ich habe eine Subnetzmaske von 255.255.255.0", meine ich wirklich, "Ich habe eine Subnetzmaske von 11111111.11111111.11111111.00000000." Wir verwenden Subnetze als kurze Hand.

Die Perioden in der Adresse trennen alle 8 Binärziffern (ein Oktett). Aus diesem Grund ist IPv4 als 32bit (8 * 4) Adressraum bekannt.

Warum Subnetz?

IPv4-Adressen (192.168.1.1) sind knapp. Sub-Netting gibt uns die Möglichkeit, die Anzahl der verfügbaren Netzwerke (oder Hosts) zu erhöhen. Dies geschieht aus verwaltungstechnischen und technischen Gründen.

Jede IP-Adresse ist in zwei separate Teile aufgeteilt, das Netzwerk und den Host. Standardmäßig verwendet eine Klasse C-Adresse (192.168.1.1) die ersten drei Oktette (192.168.1) für den Netzwerkteil der Adresse. und das vierte Oktett (.1) als Host-Teil.

Standardmäßig sehen eine IP-Adresse und eine Subnetzmaske für eine Klasse-C-Adresse wie folgt aus

IP     192.168.1.1 
Subnet 255.255.255.0

So binär

IP     11000000.10101000.00000001.00000001
Subnet 11111111.11111111.11111111.00000000

Sehen Sie sich das binäre Beispiel noch einmal an. Beachten Sie, wie ich sagte, dass die ersten drei Oktetts für das Netzwerk verwendet werden? Beachten Sie, dass der Netzwerkteil alle Einsen sind? Das ist alles Sub-Netting ist. Lass uns expandieren.

Vorausgesetzt, ich habe ein einzelnes Oktett für meinen Host-Teil (im obigen Beispiel). Ich kann NUR 256 Hosts haben (256 ist der Maximalwert eines Oktetts, gezählt von 0). Aber es gibt einen weiteren kleinen Trick: Sie müssen 2 Host-Adressen von den verfügbaren (derzeit 256) abziehen. Die erste Adresse in dem Bereich wird für das Netzwerk (192.168.1.0) sein und die letzte Adresse in dem Bereich wird die Übertragung sein (192.168.1.255). Sie haben also wirklich 254 Adressen für Hosts in einem Netzwerk.

Eine Fallstudie

Sagen wir, ich habe dir das folgende Stück Papier gegeben.

Create 4 networks with 192.168.1.0/24.

Werfen wir einen Blick darauf. Das / 24 heißt CIDR-Notation. Anstatt auf die 255.255.255.0 zu verweisen, verweisen wir nur auf die Bits, die wir für das Netzwerk benötigen. In diesem Fall benötigen wir 24 Bit (3 * 8) von einer 32-Bit-Adresse. Ich schreibe das im Binärformat aus

11111111.11111111.11111111.00000000 = 255.255.255.0
8bits   + 8bits  + 8bits  + 0bits   = 24bits

Als nächstes wissen wir, wir müssen herausfinden, wie viele Subnetze wir brauchen. Sieht wie 4 aus. Da wir mehr Netzwerke erstellen müssen (zur Zeit haben wir nur eine), können wir einige Bits umdrehen

11111111.11111111.11111111.00000000 = 255.255.255.0   = 1 Network OR /24
11111111.11111111.11111111.10000000 = 255.255.255.128 = 2 Networks OR /25
11111111.11111111.11111111.11000000 = 255.255.255.192 = 4 Networks (remember powers of 2!) OR /26

Nachdem wir uns für eine / 26 entschieden haben, beginnen wir mit der Zuweisung von Hosts. Ein wenig einfache Mathematik:

32(bits) - 26(bits) = 6(bits) for host addresses.

Wir haben 6 Bits in jedem Netzwerk für Hosts zu reservieren. Beachten Sie, dass wir für jedes Netzwerk 2 subtrahieren müssen.

h = host bits    
2^h - 2 = hosts available

2^6 - 2 = 62 hosts 

Finally we have 62 hosts in 4 networks, 192.168.1.0/26

Jetzt müssen wir herausfinden, wohin die Gastgeber gehen. Zurück zum Binär!

11111111.11111111.11111111.00,000000 [the comma is the new network/hosts division]

Begin to calculate:

11000000.10101000.00000001.00,000000 = 192.168.1.0 [First IP = Network Adress]
11000000.10101000.00000001.00,000001 = 192.168.1.1 [First Host IP]
11000000.10101000.00000001.00,000010 = 192.168.1.2 [Second Host IP]
11000000.10101000.00000001.00,000011 = 192.168.1.3 [Third Host IP]

And so on ... until ...

11000000.10101000.00000001.00,111110 = 192.168.1.62 [Sixty Second Host IP]
11000000.10101000.00000001.00,111111 = 192.168.1.63 [Last IP = Broadcast Address]

So ... On to the NEXT network ....

11000000.10101000.00000001.01,000000 = 192.168.1.64 [First IP = Network Address]
11000000.10101000.00000001.01,000001 = 192.168.1.65 [First Host IP]
11000000.10101000.00000001.01,000010 = 192.168.1.66 [Second Host IP]

And so on ... until ...

11000000.10101000.00000001.01,111110 = 192.168.1.126 [Sixty Second Host IP]
11000000.10101000.00000001.01,111111 = 192.168.1.127 [Last IP = Broadcast Address]

So ... On to the NEXT network ....

11000000.10101000.00000001.10,000000 = 192.168.1.128 [First IP = Network Address]
11000000.10101000.00000001.10,000001 = 192.168.1.129 [First Host IP]

Etc ...

Auf diese Weise können Sie das gesamte Subnetz berechnen.

Wilde Karten Eine Platzhaltermaske ist eine invertierte Subnetzmaske.

11111111.11111111.11111111.11000000 = 255.255.255.192 [Subnet]
00000000.00000000.00000000.00111111 = 0.0.0.63 [Wild Card]

Des Weiteren

Google für die Begriffe "Super-Netting" und "VLSM (Subnetzmaske mit variabler Länge)" für komplexere Themen.

Ich kann jetzt sehen, dass ich zu lange gebraucht habe, um zu antworten ... Seufzer


73
2017-08-04 15:12



"Da ich ein einzelnes Oktett für meinen Hostteil habe (im obigen Beispiel), kann ich NUR 255 Hosts haben (255 ist der Maximalwert eines Oktetts). Aber es gibt noch einen kleinen Trick: Sie müssen 2 Hostadressen subtrahieren von den verfügbaren (derzeit 255) .Die erste Adresse in dem Bereich wird für das Netzwerk (192.168.1.0) sein, und die letzteAdresse in dem Bereich wird die Sendung (192.168.1.255) sein.So haben Sie wirklich 253 verfügbare Adressen für Hosts in einem Netzwerk. "... Das ist falsch. - joeqwerty
Es gibt 256 mögliche Werte für das Oktett: 0 bis 255, für insgesamt 256. 256 -2 (Netzwerk- und Broadcast-Adressen) = 254 mögliche Host-Adressen. - joeqwerty
Hoppla. Vielen Dank! :-) Ab einer, ich habe keine Ahnung, wie ich das geschafft habe. - Joseph Kern
-1 Sorry, aber es gab seit 1993 keine "Klassen" seit RFC 1519, niemand sollte außerhalb eines historischen Kontexts über sie sprechen. Sie sind verwirrend und verursachen viele Missverständnisse. - Chris S
Chris, du hast wahrscheinlich recht, aber der Unterricht wurde bis in die frühen 2000er Jahre in den CCNA und den meisten Studiengängen für Anfänger gehalten. - Joseph Kern


Eine kurze Geschichtsstunde: Unicast-IPv4-Adressen wurden ursprünglich in 3 Klassen unterteilt, die jeweils eine 'Standard'-Maskenlänge (die so genannte klassenspezifische Subnetzmaske) hatten.

  • Klasse A: Alles im Bereich 1.0.0.0 -> 127.255.255.255. Klassifizierte Subnetzmaske von 255.0.0.0 (/ 8 in CIDR-Notation)
  • Klasse B: Alles im Bereich 128.0.0.0 -> 191.255.255.255. Klassifizierte Subnetzmaske von 255.255.0.0 (/ 16 in CIDR-Notation)
  • Klasse C: Alles im Bereich 192.0.0.0 -> 223.255.255.255. Klassifizierte Subnetzmaske von 255.255.255.0 (/ 24 in CIDR-Notation)

Die Idee war, dass Unternehmen unterschiedlicher Größe eine andere Klasse von IP-Adressen zugewiesen werden könnten, um den IP-Adressraum effizient zu nutzen.

Mit dem Wachstum der IP-Netzwerke wurde jedoch deutlich, dass dieser Ansatz seine Probleme hatte. Um nur drei zu nennen:

In einer klassenreichen Welt alle Subnetze hätten eine Maske von / 8, / 16 oder / 24 haben. Dies bedeutete, dass das kleinste Subnetz, das konfiguriert werden konnte, ein / 24 war, was 254 Host-Adressen erlaubte (wobei .0 und .255 als die Netzwerk- bzw. Broadcast-Adressen reserviert waren). Dies war enorm verschwenderisch, insbesondere bei Punkt-zu-Punkt-Verbindungen mit nur zwei an sie angeschlossenen Routern.

Selbst nachdem diese Einschränkung gelockert wurde, wurden frühere Routing-Protokolle (z. RIPv1) hat die mit einem IP-Präfix verknüpfte Maskenlänge nicht angekündigt. In Ermangelung einer bestimmten Maske würde sie entweder die Maske einer direkt verbundenen Schnittstelle in demselben klassenweisen Netzwerk verwenden oder auf die Verwendung der klassenbezogenen Maske zurückgreifen. Wenn Sie beispielsweise das Netzwerk 172.16.0.0 für Verbindungen zwischen Routern mit / 30 Masken verwenden möchten, alles Subnetze von 172.16.0.0 - 172.16.255.255 müssten eine / 30-Maske haben (16384 Subnetze mit jeweils 2 verwendbaren IPs).

Die Routingtabellen von Internet-Routern nahmen immer mehr Speicher in Anspruch; Dies war / ist bekannt als die "Routing-Tabelle Explosion". Wenn ein Anbieter beispielsweise 16 zusammenhängende / 24 Netzwerke hätte, müssten sie alle 16 Präfixe anzeigen, anstatt eine einzige Zusammenfassung, die den gesamten Bereich abdeckte.

Zwei verwandte Verfeinerungen erlaubt uns, über die oben genannten Grenzen hinauszugehen.

  1. Subnet-Masken variabler Länge (VLSM)
  2. CIDR (Classless Inter-Domain-Routing)

VLSM bezieht sich auf die Fähigkeit eines Routing-Protokolls, verschiedene Subnetzmasken innerhalb desselben klassenweisen Netzwerks zu unterstützen. Zum Beispiel:

192.168.1.0/24

Könnte aufgeteilt werden in:

192.168.1.0/25
192.168.1.128/26
192.168.1.192/27
192.168.1.224/27

Dies ermöglichte eine wesentlich effizientere Nutzung des Adressraums. Subnetze könnten für die Anzahl der Hosts / Router, die an sie angeschlossen werden, korrekt dimensioniert sein.

CIDR nimmt VLSM und erweitert es in die andere Richtung; Zusätzlich zur Aufteilung eines einzelnen klassenmäßigen Netzwerks in kleinere Subnetze ermöglicht CIDR die Zusammenfassung mehrerer klassenmäßiger Netzwerke zu einer einzigen Zusammenfassung. Zum Beispiel die folgenden Netzwerke der Klasse B (/ 16):

172.16.0.0/16
172.17.0.0/16
172.18.0.0/16
172.19.0.0/16

Kann mit einem einzigen Präfix zusammengefasst / zusammengefasst werden:

172.16.0.0/14

In Bezug auf Subnetting: eine Subnetzmaske ist 32 Bits lang. Die Maskenlänge gibt an, wie viele Bits den Netzwerkteil der Adresse identifizieren. Zum Beispiel:

10.1.1.0/24
  • Die klassenmäßige Subnetzmaske ist / 8
  • Die tatsächliche Subnetzmaske ist / 24
  • 16 Bits (24-8) wurden für die Verwendung von Subnetting 'geborgt'.

Das bedeutet, dass unter der Annahme, dass das gesamte Netzwerk 10.0.0.0/8 in / 24s unterteilt ist, in diesem Bereich 65536 (2 ^ 16) Subnetze vorhanden sind. (Dies setzt voraus, dass die von Ihnen verwendete Plattform die Subnetznummern 0 und 255 unterstützt. Siehe Cisco ip subnet-zero).

Es verbleiben 8 Bits im Host-Teil der Adresse. Dies bedeutet, dass 256 verfügbare IP-Adressen (2 ^ 8) vorhanden sind, von denen 2 reserviert sind (10.1.1.0 ist die Netzwerkadresse, 10.1.1.255 ist die Subnetz-Broadcast-Adresse). Damit verbleiben 254 verwendbare IP-Adressen in diesem Subnetz. ((2 ^ 8) - 2)


31



Es gab tatsächlich 5 Klassen. - dbasnett
Richtig, aber müssen wir wirklich in die Multicast- und reservierte Adressierung der Klasse E für eine "Intro to Subnetting" -Frage kommen? :) - Murali Suriar
Du hast die Geschichte in eine Intro-Frage gebracht ... Dann hast du sie unvollständig hinterlassen. Ich bin mir nicht sicher, was schlimmer ist. - Chris S


Netzwerkbereiche: Netzwerke werden immer durch 2 Nummern referenziert: eine, um das Netzwerk zu bestimmen, und eine andere, um zu bestimmen, welcher Computer (oder Host) sich in diesem Netzwerk befindet. Da jede Netzwerkadresse 32 Bits lang ist, müssen beide Nummern in diese 32 Bits passen.

Die Netzwerknummerierung ist wichtig, da diese von ICANN ausgegeben wird, wenn Sie nach einem Netzwerk-IP-Bereich fragen. Wenn wir es nicht hätten, könnte niemand den Unterschied zwischen meinem Netzwerk und AT & Ts feststellen. Obwohl diese Nummern eindeutig sein müssen, möchte niemand anderen den Hosts in meinem Netzwerk Nummern zuweisen. Daher die Trennung - der erste Teil wird von den Netzwerk-Leuten verwaltet, der zweite Teil ist ganz meins, um an die Maschinen zu geben, die ich will.

Die Netzwerknummer ist nicht auf eine bestimmte Anzahl von Bits festgelegt - zum Beispiel, wenn ich nur 200 Maschinen zum Verwalten hätte, wäre ich vollkommen zufrieden mit einer Netzwerknummer, die 24 Bits verwendet, so dass ich nur 8 Bits für mich selbst übrig habe - Das reicht für bis zu 255 Hosts. Da die Netzwerknummer 24 Bits verwendet, können wir viele davon haben, was bedeutet, dass viele Leute ihre eigenen Netzwerke haben können.

In der Vergangenheit wurde dies als ein Klasse-C-Netzwerk bezeichnet. (Klasse B verwendete 16 Bits für die Netzwerknummer, und Klasse A verwendete 8 Bits, so dass es nur wenige Klasse-A-Netzwerke gibt).

Heutzutage ist diese Namenskonvention nicht mehr in Mode. Es wurde durch das Konzept CIDR ersetzt. CIDR legt nach dem Schrägstrich explizit die Anzahl der Bits für Ihre Hosts fest. Also wird mein Beispiel oben (die Klasse C) jetzt als CIDR / 24 bezeichnet.

Das gibt uns ein bisschen mehr Flexibilität, bevor ich, wenn ich 300 Hosts verwalten müsste, ein Klasse-B-Netzwerk benötige! Jetzt kann ich nur eine / 23 CIDR bekommen, also habe ich 9 Bit für mich und 23 Bit für die Netzwerknummer. ICANN kann diese Art von Netzwerken nicht haben, aber wenn ich ein internes habe oder ein Teilnetzwerk von einem ISP miete, erleichtert dies die Verwaltung - zumal all ihre Kunden eine / 29 bekommen können (mich verlassen. 3 Bits oder maximal 8 Maschinen), die es mehr Leuten erlauben, ihr eigenes kleines Stück der verfügbaren IP-Adressen zu haben. Bis wir IPv6 bekommen, ist das ziemlich wichtig.


Allerdings ... während ich a / 24 CIDR ist das Äquivalent der alten Klasse C-Netzwerk kennen, und a / 16 ist Klasse B und a / 8 ist eine Klasse A ... Ich bin immer noch ratlos versucht, a / 22 in zu berechnen mein Kopf. Zum Glück gibt es Tools, die das für mich tun :)

Wenn Sie jedoch wissen, dass a / 24 8 Bits für Hosts (und 24 Bits für Netzwerk) ist, dann weiß ich, dass a / 23 mir ein zusätzliches Bit gibt, das die Anzahl der Hosts verdoppelt.


6



-1 Es tut uns leid, aber das Erwähnen von Klassen außerhalb einer "historischen" Referenz ist heutzutage unpassend. Sie sind nicht "aus der Mode gekommen", sie wurden 1993 offiziell durch RFC 1519 veraltet. Sie sind verwirrend, da sie alle hüllen und eine Reihe von Missverständnissen verursachen. - Chris S
Einige Implementierungen von dynamischen Routing-Protokollen fassen entlang von Klassengrenzen zusammen, so dass es immer noch hilfreich ist, sie zu kennen. - Ben


Während das obige korrekt ist (sorry, TL; DR), verursacht das Berechnen von Subnetzen immer noch viele Netzwerkadministratoren eine Menge Kummer. Es gibt tatsächlich eine sehr einfache Möglichkeit, eine Subnetzberechnung durchzuführen, Sie können das meiste davon in Ihrem Kopf tun, und es gibt sehr wenig, was Sie sich merken müssen. Für die meisten Anwendungen ist es nicht einmal notwendig, die binäre Darstellung zu verstehen, obwohl dies für ein vollständiges Verständnis der Subnetzbildung hilfreich ist. Hier werde ich nur IPv4 diskutieren; IPv6 ist nicht Gegenstand dieser Diskussion.

Merk dir das:

Es gibt drei wichtige Dinge zu beachten: Alle Subnetze basieren auf Zweierpotenzen, und es gibt zwei Schlüsselnummern: 256 und 32. Mehr dazu später.

Betrachten wir zuerst eine Tabelle mit den Potenzen 2:

2^0 = 1
2^1 = 2
2^2 = 4
2^3 = 8
2^4 = 16
2^5 = 32
2^6 = 64
2^7 = 128
2^8 = 256

Die Berechnung von Potenzen von 2 ist einfach: jeder ganzzahlige Anstieg der Leistung verdoppelt das Ergebnis. 1 + 1 = 2, 2 + 2 = 4, 4 + 4 = 8, 8 + 8 = 16 und so weiter. Die Gesamtzahl der Adressen in einem Subnetz muss immer eine Zweierpotenz sein.

Da jedes Oktett eines IPv4-Subnetzes auf 256 ansteigt, 256 ist eine sehr wichtige Zahl


3



danke. Aber ich bin immer noch unscharf darüber, wie der PC die Subnetzmaske benutzt. Wenn eine Anwendung auf einem PC Daten senden möchte, kapselt sie sie in ein Paket ein. Bestimmt die Subnetzmaske, wie ein Paket gekapselt ist? Wenn der PC beispielsweise ein Paket im lokalen Netz senden wollte, würde er einen Ethernet-Rahmen verwenden en.wikipedia.org/wiki/Ethernet_frame und wenn es außerhalb des Netzwerks wollte, würde es ein TCP-Paket verwenden en.wikipedia.org/wiki/... ? - aquagremlin
Im Grunde weiß ich nicht, wie ein PC bestimmt, wohin er seine Daten senden soll. Das Ethernet-Netzwerk ist wie ein Bus - es geht überall hin. Ein Paket über die Ethernet-Buchse eines PCs zu schicken, ist ein generisches Ereignis - daher muss das Paket selbst bestimmen, wer darauf antwortet. Ein Paket, das von einem lokalen Gerät (Switch oder anderen Computer im LAN) abgeholt werden soll, muss anders aussehen als ein Paket, das von einem Router abgeholt wird. - aquagremlin
Dies geschieht auf einer Ebene unterhalb von TCP. Jedes Gerät verfügt über eine Hardwareadresse (MAC), die einer IP-Adresse in der ARP-Tabelle jedes Geräts zugeordnet ist. Dies wird durch Entdeckung aufgebaut. Wenn ein Paket für einen Host im lokalen Netzwerk bestimmt ist, wird es mit dem MAC für das Zielgerät markiert. Wenn ein Paket für einen Remote-Host bestimmt ist, ist es mit dem MAC für den Router im lokalen Netzwerk markiert. Beim Durchlaufen des Routers wird der MAC entfernt und dann mit dem MAC des nächsten Hop-Routers markiert. Das Subnetz definiert lediglich den Umfang des lokalen Netzwerks. (Das ist die einfache <500 Zeichen Version.) - Jonathan J


Ich denke auch, dass zumindest NATs erwähnt werden sollten, da sie in modernen Netzwerken anstelle von Subnetzen so häufig verwendet werden, ua wegen der Erschöpfung der IPv4-Adressen. (Auch als ich das erste Mal über Subnetze lernte, war ich sehr verwirrt darüber, wie sich Subnetze auf die von WiFi-Routern erzeugten Netzwerke beziehen).

NAT (Network Address Translation) ist eine (häufig verwendete) Technik, um private Netzwerke zu erstellen, indem ein Adressraum (IP: Port) einem anderen zugeordnet wird. Dies wird hauptsächlich verwendet, um ein privates Netzwerk aus mehreren privaten IPs hinter einer öffentlichen Adresse zu erstellen, beispielsweise in Wifi-Routern, von Organisationen (wie einer Universität oder einem Unternehmen) oder manchmal von ISPs.

Die eigentliche Adressübersetzung ist abgeschlossen transparent in NAT-fähigen Knoten, normalerweise Router. Es kann viele Formen haben, Vollkegel, Adresse eingeschränkt, Port eingeschränkt usw. oder eine Mischung von diesen, die diktiert, wie die Verbindungen über den Knoten initiiert werden können.

Ausführliche Informationen finden Sie unter WikipediaB. einen WLAN-Router mit 2 verbundenen Geräten. Die öffentliche IP des Routers ist 10.9.20.21/24und die IP der Geräte (Private IPs) sind A: 192.168.0.2, B: 192.168.0.3 und das des Routers ist R: 192.168.0.1. Also wenn A möchte eine Verbindung zum Server herstellen S: 10.9.24.5/24(das ist eigentlich in einem anderen Subnetz w.r.t der Router hier):

  1. A sendet ein IP-Paket an R(was das Standardgateway wäre) mit der Quell-IP 192.168.0.2, src port (sagen wir) 14567und Ziel-IP: 10.9.24.5 (Obwohl Port tatsächlich ein Teil des TCP-Headers ist).
  2. Der Router (der NAT-fähig ist) bildet den Port ab 14567 zum Gerät A und ändert die Quelle auf dem IP-Paket zu 10.9.20.21(das ist die öffentliche IP des Routers). Dies steht im Gegensatz zur oben beschriebenen Subnetzbildung, wo die IP-Pakete tatsächlich nie geändert werden.
  3. S erhält die Reihe der TCP-Pakete (mit src IP: 10.9.20.21, src Port: 14567) und senden Antwortpakete mit diesen Werten in den Zielfeldern.
  4. R überprüft den Zielport, der ist 14567 und leitet das Paket an A.
  5. A empfängt das Antwortpaket.

In der obigen Situation, wenn B versucht, eine Verbindung auf dem gleichen Quellport (14567), würde es durch einen anderen Port zugeordnet werden R(und der Port im ausgehenden Paket wurde geändert) vor dem Senden an S. Das heißt, es würde auch Port-Übersetzung statt nur IP geben.

Zwei Dinge, die hier zu beachten sind:

  1. Aufgrund dieser Adressübersetzung ist es häufig nicht möglich, ohne spezielle Techniken eine Verbindung zu Geräten im privaten Netzwerk herzustellen.
  2. Die Beschränkung der gesamten TCP-Verbindungen von demselben Gerät zu einem Server (65536 = 2 ^ 16) gilt nun gemeinsam für alle Geräte hinter dem NAT, in der oben verwendeten NAT-Form.

1