Wie funktioniert das IPv4-Subnetzwerk?

664
Hennes

Wie funktioniert das Subnetting und wie machen Sie es von Hand oder in Ihrem Kopf? Kann jemand sowohl konzeptionell als auch mit mehreren Beispielen erklären? Server Fault ruft eine Menge subnetting-Hausaufgaben auf, so dass wir eine Antwort verwenden könnten, um sie auf Server Fault selbst zu verweisen.

  • Was ist klassenloses Routing und warum ist klassenbasiertes Routing obsolet?
  • Wie finde ich heraus, wie ich das Netzwerk aufteilen kann?
  • Wenn ich eine Netzmaske bekomme, woher weiß ich, wie groß die Netzreichweite ist?
  • Manchmal gibt es einen Schrägstrich gefolgt von einer Zahl; was ist diese Nummer?
  • Manchmal gibt es eine Subnetzmaske, aber auch eine Platzhaltermaske. Sie scheinen das gleiche zu sein, aber sie sind verschieden?
  • Jemand erwähnte etwas davon, binär für dieses zu wissen?
  • Was ist NAT (Network Address Translation)?

Notizen zu dieser Frage

In den letzten Jahren habe ich schon einige Fragen wies darüber Subnetting diese Frage auf Server Fehler . Es ist ihre kanonische Frage zu IPv4 und Subnetting.

Leider kann ich keine VTC-Fragen zu Super User als Duplikate dieser Frage stellen, da es sich technisch um eine andere Site handelt.

Als [Zwischenlösung] kopiere ich diese Frage / Antwort hier, in der Hoffnung, dass sie die kanonische Frage / Antwort auf Super User wird.

Wenn Sie es verbessern können, schreiben Sie bitte eine Antwort oder lassen Sie Kommentare.

0
Sollte dies auf msu sein? Burgi vor 7 Jahren 0
Antworten im Allgemeinen kopieren, damit Sie VTC verwenden können, weil ein anderer Standort auf dem Stack Exchange-Netzwerk VTC nicht funktioniert? Könnte sein. Nicht sicher. Alles was ich weiß ist, dass ich auf dieser Seite eine wirklich gute Antwort vermisse. Hennes vor 7 Jahren 0
Sollten [tag: community-faq] Fragen nicht CWs sein? Canadian Luke vor 7 Jahren 4
Es ist lächerlich, in die gleiche Frage zu integrieren, was NAT und IPv4-Subnetz ist. Sie sind beide große Themen und sollten nicht in derselben Antwort angesprochen werden barlop vor 7 Jahren 2
-1 Und zu schreiben: "Jemand hat etwas davon erwähnt, dass ich binär bin?" <- Das ist nicht einmal eine Frage, das ist nur eine dumme Aussage. Und wenn Sie versuchen zu behaupten, dass der Fragesteller möglicherweise nicht binär weiß, und dass die Antwort dies auch beinhalten sollte, ist dies ein weiteres großes Thema und nur lächerlich, wenn Sie eine Frage oder eine Antwort stellen barlop vor 7 Jahren 0
Sehen Sie sich [diese ausgezeichnete Antwort] (http://networkengineering.stackexchange.com/a/7117/8499) auf [networkengineering.se] an. Ron Maupin vor 7 Jahren 1
Ein paar Gedanken: 1) Sie haben sich sehr viel Mühe gegeben, also vielen Dank dafür. 2) Sie schreiben die zweiteilige Antwort innerhalb der Frage zu, aber die Antworten sollten jeweils mit der Zuordnung zum Autor beginnen. 3) Wenn dies ein kanonischer Faden sein wird, muss es ein wenig breit sein, aber die Frage erscheint für SU extrem breit. Alles, was mit einem Thema zu tun hat, in einer Frage und "eine" Antwort zu behandeln, ist ein allgemeines Wissensbuch zu diesem Thema, das nicht sehr gut zum Modell der Website passt. (Ich habe nicht nach unten gewählt, BTW) fixer1234 vor 7 Jahren 3
@RonMaupin Das ist eine schöne Antwort. Was die NAT-Frage angeht: Jemand bitte dies als separate Frage. Und ich werde mein Bestes geben, um darauf zu antworten (wie hoffentlich viele andere Leute). Gleiches für Portweiterleitung. Viele Fragen. Eine einzige perfekte Antwort würde hier helfen. Hennes vor 7 Jahren 0
Copy-Pasta von einem anderen Standort im Netzwerk fühlt sich für mich fast schlechter an als die Sites, die den SEE-Großhandel anbieten ... Zumindest erfordert alles hier einen Disclaimer, der die Quelle erwähnt und eine ** solide ** Zuordnung der ursprünglichen Autoren vorsieht Besser wäre es, wenn die Originalautoren sich selbst veröffentlichen und den Respekt erhalten, den sie für ein episches Q & A verdienen. Ich habe gefragt, ob diese Art von Kopieren und Einfügen akzeptabel ist und was wir auf [meta] (http://meta.superuser.com/questions/11662) tun sollten. Mokubai vor 7 Jahren 3
Ich finde es eine unvollkommene Lösung, aber ich denke, dass es eine funktionierende ist. In der Vergangenheit, als der SF-Chatroom noch aktiv war und das OP darin war, habe ich ihn gebeten, eine Antwort zu posten. In diesen Tagen ist der Kommunikationsraum jedoch tot. Hennes vor 7 Jahren 0

3 Antworten auf die Frage

6
Hennes

Es gibt IP-Subnetze, die es Routern ermöglichen, geeignete Ziele für Pakete auszuwählen. Sie können IP-Subnetze verwenden, um größere Netzwerke aus logischen Gründen (Firewall usw.) oder aus physischen Gründen (kleinere Broadcast-Domänen usw.) aufzubrechen.

Vereinfacht gesagt, verwenden IP-Router Ihre IP-Subnetze, um Routing-Entscheidungen zu treffen. Verstehen, wie diese Entscheidungen funktionieren, und Sie können verstehen, wie IP-Subnetze geplant werden.

Bis 1 zählen

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

Für diejenigen von euch, die noch übrig sind: Schäme dich, dass du nicht binär schreibst!

Ja - das kann etwas hart sein. Es ist wirklich sehr einfach zu lernen, in binär zu zählen, und Verknüpfungen zu lernen, um binär in Dezimalzahl und zurück zu konvertieren. Sie sollten wirklich wissen, wie es geht.

Das Zählen in binär ist so einfach, weil Sie nur 1 zählen müssen!

Stellen Sie sich den "Kilometerzähler" eines Autos vor, mit der Ausnahme, dass im Gegensatz zu einem herkömmlichen Kilometerzähler jede Ziffer nur bis 1 von 0 zählen kann. Wenn das Auto frisch ab Werk ist, zeigt der Kilometerzähler "00000000" an.

Wenn Sie Ihre erste Meile zurückgelegt haben, zeigt der Kilometerzähler "00000001" an. So weit, ist es gut.

Wenn Sie Ihre zweite Meile zurückgelegt haben, wird die erste Ziffer des Kilometerzählers wieder auf "0" gesetzt (da der Maximalwert "1" ist) und die zweite Ziffer des Kilometerzählers auf "1", und der Kilometerzähler wird angezeigt. " 00000010 ". Dies sieht aus wie die Zahl 10 in Dezimalschreibweise, aber in Wirklichkeit sind es 2 (die Anzahl der Meilen, die Sie bisher mit dem Auto gefahren haben) in binärer Schreibweise.

Wenn Sie die dritte Meile zurückgelegt haben, zeigt der Kilometerzähler "00000011" an, da sich die erste Ziffer des Kilometerzählers erneut dreht. Die Zahl "11" in binärer Schreibweise entspricht der Dezimalzahl 3.

Wenn Sie schließlich Ihre vierte Meile zurückgelegt haben, werden beide Ziffern (die am Ende der dritten Meile "1" anzeigen) auf Null zurückgesetzt, und die 3. Ziffer rollt auf "1" und gibt uns " 00000100 ". Das ist die binäre Darstellung der Dezimalzahl 4.

Sie können sich das alles merken, wenn Sie möchten, aber Sie müssen nur wissen, wie sich der kleine Kilometerzähler "dreht", wenn die Anzahl, die er zählt, größer wird. Es ist genau das gleiche wie bei einem herkömmlichen Dezimal-Kilometerzähler, außer dass jede Ziffer nur "0" oder "1" in unserem fiktiven "Binär-Kilometerzähler" sein kann.

Um eine Dezimalzahl in eine Binärzahl umzuwandeln, können Sie den Kilometerzähler vorwärts rollen, Tick für Tick tippen und laut zählen, bis Sie die Anzahl der Dezimalzahlen entsprechend der Dezimalzahl, die Sie in eine Binärzahl konvertieren möchten, entspricht. Was auch immer nach dem Couting und Rolling auf dem Tacho angezeigt wird, ist die binäre Darstellung der Dezimalzahl, bis zu der Sie gezählt haben.

Da Sie wissen, wie der Kilometerzähler vorwärts rollt, verstehen Sie auch, wie der Kilometerzähler rückwärts rollt. Um eine auf dem Kilometerzähler angezeigte Binärzahl wieder in Dezimalzahl umzuwandeln, können Sie den Kilometerzähler einen Tick zurücksetzen und laut zählen, bis der Kilometerzähler "00000000" anzeigt. Wenn alles gezählt und gerollt ist, ist die letzte von Ihnen lautete Zahl die dezimale Darstellung der Binärzahl, mit der der Kilometerzähler begonnen hat.

Das Konvertieren von Werten zwischen Binär- und Dezimalzahlen auf diese Weise wäre sehr mühsam. Sie könnten es tun, aber es wäre nicht sehr effizient. Es ist einfacher, einen kleinen Algorithmus zu lernen, um es schneller zu machen.

Ein kurzer Hinweis: Jede Ziffer in einer Binärzahl wird als "Bit" bezeichnet. Das ist "b" von "binär" und "es" von "digit". Ein Bit ist eine binäre Ziffer.

Die Umwandlung einer Binärzahl wie "1101011" in Dezimalzahlen ist ein einfacher Vorgang mit einem praktischen kleinen Algorithmus.

Beginnen Sie damit, die Anzahl der Bits in der Binärzahl zu zählen. In diesem Fall gibt es 7. Machen Sie 7 Trennungen auf einem Blatt Papier (in Ihrem Kopf, in einer Textdatei usw.) und beginnen Sie, diese von rechts nach links auszufüllen. Geben Sie im rechten Slot die Zahl "1" ein, da wir immer mit "1" beginnen. Geben Sie im nächsten Slot links den Wert des Slots rechts ein (also "2" im nächsten, "4" im nächsten) und fahren Sie fort, bis alle Slots voll sind. (Sie werden sich diese Zahlen, die die Potenz von 2 sind, auswendig lernen, da Sie dies immer mehr tun. Ich bin bis zu 131.072 in meinem Kopf in Ordnung, aber ich brauche danach normalerweise einen Taschenrechner oder ein Papier).

Sie sollten also folgendes auf Ihrem Papier in Ihren kleinen Schlitzen haben.

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

Transkribieren 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 --- --- --- --- --- --- --- + + + + + + = 

Wenn Sie alle Berechnungen durchführen, sollten Sie Folgendes einholen:

 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 Dezimalzahl ist 107. Es sind nur einfache Schritte und einfache Berechnungen.

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

Angenommen, wir möchten die Zahl 218 in eine Binärzahl konvertieren. Schreiben Sie auf der rechten Seite eines Blattes die Zahl "1". Verdoppeln Sie diesen Wert nach links (also "2") und bewegen Sie sich nach links, um den letzten Wert zu verdoppeln. Wenn die Anzahl, die Sie schreiben möchten, größer ist als die Anzahl, die konvertiert werden soll, stoppen Sie das Schreiben. Andernfalls verdopple die vorherige Nummer und schreibe weiter. (Das Konvertieren einer großen Zahl wie 34,157,216,092 in eine Binärzahl mit diesem Algorithmus kann ein wenig langweilig sein, ist aber durchaus möglich.)

Du solltest also auf deinem Papier haben:

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

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

Schreiben Sie oben (128) von der ganz linken Zahl aus und fragen Sie sich: "Ist 218 größer oder gleich 128?" Wenn die Antwort "Ja" lautet, sollten Sie eine "1" unter "128" einzeichnen. Schreiben Sie über "64" das Ergebnis von 218 minus 128 (90).

Wenn Sie sich "64" anschauen, fragen Sie sich: "Ist 90 größer als oder gleich 64?" Sie schreiben also eine "1" unter "64", subtrahieren dann 64 von 90 und schreiben diese über "32" (26).

Wenn Sie jedoch auf "32" kommen, stellen Sie fest, 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 stellen Sie sich die gleiche Frage mit den restlichen Zahlen.

Wenn Sie fertig sind, sollten Sie:

 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 bei der Berechnung verwendet werden, und bedeuten uns nicht viel. Unten sehen Sie jedoch eine Binärzahl "11011010". Sicher, 218, binär konvertiert, ist "11011010".

Nach diesen sehr einfachen Prozeduren können Sie binär in Dezimalzahl und wieder zurück ohne einen Taschenrechner konvertieren. Die Mathematik ist sehr einfach und die Regeln können mit etwas Übung gespeichert werden.

Adressen aufteilen

Stellen Sie sich IP-Routing wie eine Pizzabereitung vor.

Wenn Sie gebeten werden, eine Pizza an die "123 Main Street" zu liefern, ist es für Sie als Mensch sehr klar, dass Sie zum Gebäude mit der Nummer "123" in der Straße "Main Street" gehen möchten. Es ist leicht zu wissen, dass Sie zum 100-Block der Main Street gehen müssen, da die Hausnummer 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 ein Pizzatreiber: Um die Ladung (Pakete) so nah wie möglich an das Ziel 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 untersuchen und diese Zieladressen in ihre Komponenten "Straßenname" und "Hausnummer" aufteilen, genau wie der Pizzatreiber, um Entscheidungen über die Zustellung 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 "Hausnummer" -Komponente (wie "123" im obigen Beispiel) und "Straßenname" (wie im Beispiel "Main Street"), die als "Host-ID" bezeichnet wird, aufgeteilt werden "Netzwerk ID". Für unser menschliches Auge ist es leicht zu erkennen, wo sich die Hausnummer und der Straßenname in "123 Main Street" befinden, aber diese Einteilung in "10.13.216.41 mit der Subnetzmaske 255.255.192.0" ist schwieriger zu erkennen.

IP-Router "wissen" nur, wie sie IP-Adressen in diese Komponenten aufteilen, um Routing-Entscheidungen zu treffen. Da das Verständnis der Weiterleitung von IP-Paketen von dem Verständnis dieses Prozesses abhängt, müssen wir auch wissen, wie IP-Adressen aufgeteilt werden. Glücklicherweise ist das Extrahieren der Host-ID und der Netzwerk-ID aus einer IP-Adresse und einer Subnetzmaske relativ einfach.

Schreiben Sie die IP-Adresse zunächst in binärer Form (verwenden Sie einen Taschenrechner, wenn Sie dies noch nicht in Ihrem Kopf gelernt haben. Machen Sie sich jedoch eine Notiz, wie man es macht - es ist wirklich sehr einfach und beeindruckt das andere Geschlecht Parteien):

 10. 13. 216. 41 00001010.00001101.11011000.00101001 

Schreiben Sie die Subnetzmaske auch binär aus:

 255. 255. 192. 0 11111111.11111111.11000000.00000000 

Nebeneinander geschrieben können Sie sehen, dass der Punkt in der Subnetzmaske, an dem der Stopp der "1" steht, zu einem Punkt in der IP-Adresse ausgerichtet ist. Das ist der Punkt, an dem sich die Netzwerk-ID und die Host-ID teilen. 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 zum "Maskieren" der Bits, die durch Einsen in der IP-Adresse abgedeckt werden (und ersetzen die Bits, die nicht "Maskiert" sind, durch Nullen), um die Netzwerk-ID zu extrahieren:

 10. 13. 192. 0 00001010.00001101.11000000.00000000 - Network ID 

Ebenso kann ein Router die Host-ID extrahieren, indem die Subnetzmaske verwendet wird, um die von Nullen in der IP-Adresse abgedeckten Bits zu "maskieren" (wobei die nicht "maskierten" Bits wieder durch 0 ersetzt werden).

 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 für unser menschliches Auge nicht so einfach, den "Bruch" zwischen der Netzwerk-ID und der Host-ID zu sehen, wie er zwischen der "Hausnummer" und dem "Straßennamen" in physischen Adressen während der Pizzabereitung ist, aber der endgültige Effekt ist der gleich.

Da Sie nun IP-Adressen und Subnetzmasken in Host-IDs und Netzwerk-IDs aufteilen können, können Sie die IP-Adresse wie ein Router weiterleiten.

Mehr Terminologie

Sie werden Subnetzmasken sehen, die überall im Internet und im Rest der Antwort als (IP / Nummer) geschrieben sind. Diese Notation wird als "Classless Inter-Domain Routing" (CIDR) -Notation bezeichnet. "255.255.255.0" besteht am Anfang aus 24 Bits von Einsen, und es ist schneller, dies als "/ 24" zu schreiben als als "255.255.255.0". Um eine CIDR-Nummer (wie "/ 16") in eine Subnet-Maske mit gepunkteten Dezimalzahlen zu konvertieren, schreiben Sie einfach diese Anzahl von 1-Werten aus, teilen Sie sie in Gruppen von 8 Bits auf und konvertieren Sie sie in Dezimalzahlen. (Ein "/ 16" ist beispielsweise "255.255.0.0".)

In den "alten Tagen" wurden Subnetzmasken nicht angegeben, sondern durch Betrachtung bestimmter Bits der IP-Adresse abgeleitet. Eine mit 0 - 127 beginnende IP-Adresse hatte beispielsweise eine implizierte Subnetzmaske von 255.0.0.0 (IP-Adresse "Klasse A" genannt).

Diese implizierten Subnetzmasken werden heute nicht mehr verwendet, und ich empfehle nicht mehr, sie kennenzulernen, es sei denn, Sie haben das Pech, mit sehr alten Geräten oder alten Protokollen (wie RIPv1) umzugehen, die keine klassenlose IP-Adressierung 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 0en, in denen es 1en wäre, und 1en, in denen es 0en geben würde. Die "Wildcard-Maske" von a / 26 lautet:

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

In der Regel werden "Platzhaltermasken" angezeigt, mit denen Host-IDs in Zugriffssteuerungslisten oder Firewall-Regeln abgeglichen werden. Wir werden hier nicht weiter darauf eingehen.

Wie funktioniert ein Router?

Wie ich bereits gesagt habe, haben IP-Router einen ähnlichen Job wie ein Pizzalieferant, da sie ihre Fracht (Pakete) an ihren Bestimmungsort bringen müssen. Wenn ein Paket an die Adresse 192.168.10.2 gesendet wird, muss ein IP-Router feststellen, welche seiner Netzwerkschnittstellen das Paket am besten seinem Ziel näher 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 (mit Ihren menschlichen Augen) zu sagen, dass das Paket über die Schnittstelle Ethernet1 gesendet werden soll, da die Ethernet1-Schnittstellenadresse dem Ziel des Pakets entspricht Adresse. Alle an die Ethernet1-Schnittstelle angeschlossenen Computer verfügen über 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.

Bei einem Router erfolgt dieser Routenauswahlprozess durch Erstellen einer Routing-Tabelle und Abfragen der Tabelle bei jeder Zustellung eines Pakets. Eine Routingtabelle enthält Netzwerk-ID- und Zielschnittstellennamen. Sie wissen bereits, wie Sie eine Netzwerk-ID von einer IP-Adresse und einer Subnetzmaske erhalten. Sie sind also auf dem Weg, eine Routing-Tabelle zu erstellen. Hier ist unsere Routing-Tabelle für diesen Router:

  • Netzwerk-ID: 192.168.20.0 (11000000.10101000.000.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 für "192.168.10.2" festgelegt ist, müssen wir nur die Adresse dieses Pakets in eine Binärdatei konvertieren (als Mensch - der Router erhält es zunächst als Binärcode) und versuchen, es mit jeder Adresse in unserem Routing abzugleichen Tabelle (bis zur Anzahl der Bits in der Subnetzmaske), bis ein Eintrag gefunden wird.

  • Eingehendes Paketziel: 11000000.10101000.00001010.00000010

Vergleichen Sie 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-Bit-Werten überein, wird jedoch nicht mehr abgeglichen. Das heißt, es ist nicht die richtige Zielschnittstelle. Sie sehen, dass die Schnittstelle Ethernet1 mit 24 Bit der Zieladresse übereinstimmt. Ah, ha! Das Paket ist für die Schnittstelle Ethernet1 bestimmt.

In einem realen Router wird die Routing-Tabelle so sortiert, dass zuerst die längsten Teilnetzmasken auf Übereinstimmungen (dh die spezifischsten Routen) geprüft werden, und numerisch, so dass das Paket geroutet werden kann, sobald eine Übereinstimmung gefunden wird Es sind keine weiteren Übereinstimmungsversuche erforderlich (was bedeutet, dass 192.168.10.0 zuerst aufgeführt würde und 192.168.20.0 niemals geprüft worden wäre). Hier vereinfachen wir das ein bisschen. Mit ausgefallenen Datenstrukturen und Algorithmen werden schnellere IP-Router erstellt, mit einfachen Algorithmen werden jedoch dieselben Ergebnisse erzielt.

Statische Routen

Bis zu diesem Punkt haben wir darüber gesprochen, dass unser hypothetischer Router direkt mit Netzwerken verbunden ist. So funktioniert die Welt natürlich nicht. In der Pizza-Driving-Analogie darf der Fahrer manchmal nicht weiter in das Gebäude eindringen als an der Rezeption und muss die Pizza an jemand anderen übergeben, um ihn an den Endempfänger zu übergeben (heben Sie Ihren Unglauben auf und tragen Sie mich dabei mit 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.000.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", mit den IP-Adressen 192.168.10.254/24 und 192.168.30.1/24, die seinen 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.000.00011110.00000000) - Subnetzmaske / 24 - Schnittstelle RouterB-Ethernet1

In der hübschen ASCII-Art sieht das Netzwerk folgendermaßen 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 sehen, dass Router B weiß, wie er ein Netzwerk 192.168.30.0/24 "erreichen kann", über das Router A nichts weiß.

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

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

Um Router A auf das Vorhandensein des 192.168.30.0/24-Netzwerks aufmerksam zu machen, fügen Sie der Routing-Tabelle auf Router A den folgenden Eintrag hinzu:

  • Netzwerk-ID: 192.168.30.0 (11000000.10101000.00011110.00000000) - Subnetzmaske / 24 - Zugriff über 192.168.10.254

Auf diese Weise verfügt Router A über einen Routing-Tabelleneintrag, der mit dem Ziel 192.168.30.46 unseres Beispielpakets übereinstimmt. Dieser Eintrag in der Routing-Tabelle sagt effektiv "Wenn Sie ein Paket für 192.168.30.0/24 erhalten, senden Sie es an 192.168.10.254, da er weiß, wie es damit umgehen soll." Dies ist die analoge Aktion "Übergabe der Pizza an der Rezeption", die ich zuvor erwähnt habe - die Weitergabe des Pakets an jemanden anderen, der weiß, wie er an sein Ziel gebracht werden kann.

Das Hinzufügen eines Eintrags zu einer Routingtabelle "von Hand" wird als "statische Route" bezeichnet.

Wenn Router B Pakete an das Netzwerk 192.168.20.0 Subnetzmaske 255.255.255.0 übermitteln möchte, muss er auch einen Eintrag in der Routingtabelle enthalten:

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

Dadurch würde ein Pfad für die Übermittlung zwischen dem 192.168.30.0/24-Netzwerk und dem 192.168.20.0/24-Netzwerk über das 192.168.10.0/24-Netzwerk zwischen diesen Routern erstellt.

Sie möchten immer sicher sein, dass Router auf beiden Seiten eines solchen "Interstitial-Netzwerks" einen Routing-Tabelleneintrag für das "entfernte Netzwerk" haben. Wenn bei Router B in unserem Beispiel kein Routing-Tabelleneintrag für das "weites Ende" -Netzwerk 192.168.20.0/24 an den Router angeschlossen war. Ein hypothetisches Paket vom PC (192.168.20.13) würde das Zielgerät (192.168.30.46) erreichen. Jede Antwort, die 192.168.30.46 zurücksenden wollte, wird jedoch von Router B als "Zielnetzwerk nicht erreichbar" zurückgegeben. Einwegkommunikation ist im Allgemeinen nicht wünschenswert. Denken Sie immer daran, dass der Verkehr in beide Richtungen fließt, wenn Sie über die Kommunikation in Computernetzwerken nachdenken.

Sie können viele Kilometer von statischen Routen zurücklegen. Dynamische Routing-Protokolle wie EIGRP, RIP usw. sind wirklich nichts weiter 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 dynamischer Routing-Protokolle gegenüber statischen Routen besteht jedoch darin, dass dynamische Routing-Protokolle die Routing-Tabelle basierend auf den Netzwerkbedingungen (Bandbreitennutzung, abfallende Schnittstelle usw.) und somit die Verwendung einer dynamischen Methode dynamisch ändern können Das Routingprotokoll kann zu einer Konfiguration führen, die Fehler oder Engpässe in der Netzwerkinfrastruktur "umleitet". (Dynamic Routing - Protokolle sind WAY außerhalb des Umfangs dieser Antwort, though.)

Sie können es nicht von hier aus erreichen

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

Betrachten des Routers In einer Routing-Tabelle stimmen weder die Zielschnittstelle noch die statische Route mit den ersten 24 Bits von 172.18.31.92 überein (10101100.00010000.0001111101011100, BTW).

Wie wir bereits wissen, würde Router A das Paket über eine "Zielnetzwerk nicht erreichbar" -Meldung an den Absender zurücksenden.

Angenommen, es gibt einen anderen Router (Router C) an 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 weiterleiten könnte, die keiner lokalen Schnittstelle entsprechen, bis Router C, sodass Router C sie an das Internet weiterleiten kann. Geben Sie die Route "Default Gateway" ein.

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

  • Netzwerk-ID: 0.0.0.0 (00000000.0000000000000000.00000000) - Subnetzmaske / 0 - Zielrouter: 192.168.20.254

Wenn wir versuchen, "172.16.31.92" mit jedem Eintrag in der Routingtabelle abzugleichen, treffen wir diesen neuen Eintrag. Zuerst ist es ein bisschen verwirrend. Wir wollen Null-Bits der Zieladresse mit ... warten ... was? Null-Bits abgleichen? Wir suchen also überhaupt keine Übereinstimmung. Dieser Routing-Tabelleneintrag besagt im Wesentlichen: "Wenn Sie hierher kommen, anstatt die Zustellung aufzugeben, senden Sie das Paket unter 192.168.20.254 an den Router und lassen Sie ihn damit umgehen".

192.168.20.254 ist ein Ziel, wir SIE wissen, wie ein Paket zu liefern. Wenn Sie mit einem Paket konfrontiert werden, das an ein Ziel gebunden ist, für das wir keinen bestimmten Eintrag in der Routing-Tabelle haben, stimmt dieser Eintrag "Standardgateway" immer überein (da er mit null Bits der Zieladresse übereinstimmt), und er gibt uns den "letzten Ausweg", den wir können Pakete zur Zustellung senden. Manchmal hören Sie das Standard-Gateway, 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 versucht haben, in Router A ein Standard-Gateway von 192.168.50.254 anzugeben, schlägt die Übermittlung an ein solches Standard-Gateway fehl. 192.168.50.254 ist keine Adresse, die Router A über die Weiterleitung von Paketen über eine der anderen Routen in seiner Routingtabelle versteht, daher wäre eine solche Adresse als Standardgateway unwirksam. Das lässt sich kurz zusammenfassen: Das Standardgateway muss auf eine Adresse eingestellt sein, die bereits über eine andere Route in der Routing-Tabelle erreichbar ist.

Echte Router speichern das Standardgateway normalerweise als letzte Route in ihrer Routing-Tabelle, sodass Pakete übereinstimmen, nachdem sie nicht mit allen anderen Einträgen in der Tabelle übereinstimmen konnten.

Stadtplanung und IP-Routing

Die Aufteilung eines IP-Subnetzes in kleinere IP-Subnetze ist eine lästige Stadtplanung. In der Stadtplanung wird die Zoneneinteilung verwendet, um sich an die natürlichen Gegebenheiten der Landschaft (Flüsse, Seen usw.) anzupassen, die Verkehrsflüsse zwischen verschiedenen Stadtteilen zu beeinflussen und verschiedene Arten der Landnutzung (Industrie, Wohngebiete usw.) zu trennen. . IP-Subnetting ist eigentlich das gleiche.

Es gibt drei Hauptgründe, warum Sie ein Netzwerk subnetzen möchten:

  • Sie möchten möglicherweise ü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 "Interstitial" -Netzwerk an T1 selbst) würden eindeutigen IP-Subnetzen zugewiesen, so dass die Router entscheiden können, welcher Verkehr über die T1-Leitung gesendet werden soll.

  • In einem Ethernet-Netzwerk können Sie Subnetting verwenden, um den Broadcast-Verkehr in einem bestimmten Teil des Netzwerks zu begrenzen. Protokolle der Anwendungsschicht nutzen die Broadcast-Fähigkeit von Ethernet zu sehr nützlichen Zwecken. Wenn Sie jedoch mehr und mehr Hosts in ein und dasselbe Ethernet-Netzwerk packen, kann der Prozentsatz des Broadcast-Verkehrs auf der Leitung (oder in der Luft bei drahtlosem Ethernet) bis zu einem solchen Punkt ansteigen, dass Probleme bei der Bereitstellung von Nicht-Broadcast-Verkehr auftreten. (Früher konnte der Broadcast-Verkehr die CPU der Hosts überfordern, indem er sie zwang, jedes Broadcast-Paket zu untersuchen. Heute ist dies weniger wahrscheinlich.) Übermäßiger Verkehr auf Switched Ethernet kann auch in Form von "Flooding von Frames an unbekannte Ziele" auftreten. Diese Bedingung wird dadurch verursacht, dass ein Ethernet-Switch nicht alle Ziele im Netzwerk nachverfolgen kann. Dies ist der Grund, warum Switched Ethernet-Netzwerke nicht auf eine unbegrenzte Anzahl von Hosts skaliert werden können. Der Effekt des Floodings von Frames an unbekannte Ziele ist ähnlich dem Effekt von übermäßigem Broadcast-Verkehr zum Zwecke der Subnetting.

  • Möglicherweise möchten Sie den Verkehr zwischen verschiedenen Hostgruppen überwachen. Möglicherweise verfügen Sie über Druckservergeräte und möchten, dass nur autorisierte Server mit Druckwarteschlangen-Servern Aufträge an sie senden. Durch die Beschränkung des für den Druckserver zulässigen Datenverkehrs können Benutzer das Subnetz nicht so konfigurieren, dass die PCs direkt mit den Druckservergeräten kommunizieren, um die Druckbuchhaltung zu umgehen. Sie können die Druckservergeräte in ein Subnetz stellen und eine Regel im Router oder in der Firewall erstellen, die an dieses Subnetz angeschlossen ist, um die Liste der Hosts zu steuern, die berechtigt sind, Datenverkehr an die Druckservergeräte zu senden. (Sowohl Router als auch Firewalls können in der Regel entscheiden, wie oder ob ein Paket basierend auf den Quell- und Zieladressen des Pakets zugestellt werden soll. Firewalls sind in der Regel eine Unterart von Routern mit einer obsessiven Persönlichkeit. Sie können sehr besorgt sein über die Nutzlast von Paketen, wohingegen Router normalerweise Nutzlasten ignorieren und nur die Pakete liefern.)

Bei der Planung einer Stadt können Sie planen, wie sich Straßen miteinander kreuzen, und Sie können nur kurvenreiche, Einbahnstraßen und Sackgassen verwenden, um den Verkehrsfluss zu beeinflussen. Vielleicht möchten Sie, dass die Hauptstraße 30 Blöcke lang ist und jeder Block aus bis zu 99 Gebäuden besteht. Es ist ziemlich einfach, die Straßennummerierung so zu planen, dass jeder Block in der Main Street 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äudennummern) erstellen und Router verwenden, um die Subnetze miteinander zu verbinden (Kreuzungen). Regeln für zulässige Quell- und Zieladressen, die in den Routern angegeben sind, können den Verkehrsfluss weiter steuern. Firewalls können als obsessive Verkehrspolizisten wirken.

Für die Zwecke dieser Antwort ist der Aufbau unserer Subnetze unser einziges Hauptanliegen. Anstatt wie in der Stadtplanung dezimal zu arbeiten, arbeiten Sie binär, um die Grenzen jedes Subnetzes zu beschreiben.

Fortsetzung am: https://serverfault.com/questions/49765/how-does-subnetting-work/226445#226445

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

Sie schreiben "(Ja ... wir haben die maximale Größe einer Antwort erreicht (30000 Zeichen).)" <--- Und das deutet darauf hin, dass möglicherweise die Frage gestellt wurde und Sie versucht haben, zu viele Themen anzusprechen. Subnetting für jemanden beibringen, der Binärwissen nicht kennt, also eine Lektion über Binärunterdrückung quetschen, lächerlich barlop vor 7 Jahren 1
4
DrZoo

Hier ist eine extrem einfache Sichtweise, die den Neulingen von Subnetting sehr leicht zu folgen schien.

Sie erhalten also Ihre Netzwerke und werden aufgefordert, sie in kleinere Netzwerke aufzuteilen.

Lets sagt, dass wir das 172.18.0.0 / 16-Netzwerk haben und es in kleinere Netzwerke aufteilen wollen. Dazu müssen wir einige Host-Bits aus unserem Netzwerk ausleihen. Im Moment sind unsere Netzwerkbits 172.18 Oktette und unsere Hostbits sind 0.0 Oktette. In binär wäre dies eine Reihe von Einsen und Nullen, aber um Ihnen das visuelle Sehen zu erleichtern, werde ich N für das Netzwerk und H für die Host-Bits verwenden.

Wir hätten nnnnnnnn.nnnnnnnn.hhhhhhhh.hhhhhhhh. Um unser Netzwerk kleiner zu machen, müssen wir einige dieser "h" -Bits nehmen und "n" -Bits machen. Die Formel hierfür lautet 2 ^ n. Dann erfahren Sie, wie viele Netzwerke Sie herstellen können. Wenn wir also nur ein "h" -Bit ausleihen, würden wir 2 ^ 1 = 2 nehmen. Nun würden unsere Oktette aussehen wie nnnnnnnnn.nnnnnnnn.nhhhhhhh.hhhhhhhh. Da die Bitwerte der Oktette 128 16 32 16 8 4 2 1 betragen, verwendet unser neues Netzwerkbit die .128. Unsere Netzwerke werden also 172.18.0.0 / 17 und 172.18.128.0 / 17 sein.

Wenn wir die Aufgabe hatten, unser Netzwerk in 8 kleinere Netzwerke aufzuteilen, müssen wir nur 2 ^ n = 8 finden. Da 2 ^ 3 = 8, werden wir drei Host-Bits ausleihen. Nun würden unsere Bits aussehen wie nnnnnnnnn.nnnnnnnn.nnnhhhhhh.hhhhhhhhh. Da unser Netzwerkbit jetzt das 32-Bit verwendet, gehen unsere Netzwerke um 32. Ihre vier Netzwerke wären also 172.18.0.0 / 19, 172.18.32.0 / 19, 172.18.64.0 / 19 und so weiter, bis Sie zu Ihrem letzten Stand gelangen Netzwerk von 172.18.224.0/19.

In einem anderen Beispiel teilen wir die 10.0.0.0 / 8 in vier Subnetze auf. Wieder würden unsere Bits aussehen wie nnnnnnnnn.hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh. Jetzt müssen wir 2 ^ n = 4 herausfinden. Da 2 ^ 2 = 4, leihen wir uns zwei Hostbits und verwenden sie als Netzwerkbits. Unser Oktett würde jetzt so aussehen: nnnnnnnnn.nnhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh. Und unsere Netzwerke wären 10.0.0.0 / 10 und 10.64.0.0 / 10.

Da wir nun unsere Netzwerkadressen kennen, ist es leicht, die Broadcast-Adresse und die Anzahl der Knoten pro Subnetz zu ermitteln. Unser erstes 172.18.0.0-Netzwerk ist beispielsweise das 172.18.0.0 / 17 und das nächste Netzwerk wäre 172.18.32.0 / 17. Die Broadcast-Adresse ist immer die letzte Adresse des Subnetzes, also für das 172.18.0.0-Netzwerk 172.18.31.255. Für das 172.18.32.0-Netzwerk wäre dies 172.18.63.255.

Um die Anzahl der Knoten herauszufinden, dauert der lange / harte Weg 2 ^ h. H ist die Anzahl der Hostbits, die Sie haben. Für das 172.18.0.0 / 17-Netzwerk haben wir also 15 Hostbits, also würden wir 2 ^ 15 = 32768 nehmen.

Ich bin mir nicht sicher, wie alle mit Subnetting insgesamt sind, aber hier sind einige Abkürzungen. Wenn Sie die Anzahl der Subnetze ermitteln möchten, nehmen Sie einfach Ihren Bitwert von entweder 128 64 32 16 8 4 2 1 und dividieren Sie ihn durch 256. Im obigen Beispiel haben wir acht Subnetze benötigt. Alles, was Sie tun müssen, ist 256/32 = 8. Dann würden Sie Ihre Netzwerke mit 32 zählen, da Sie das 32-wertige Bit verwenden.

Um die Anzahl der Knoten pro Netzwerk zu ermitteln, beginnen Sie einfach, die Anzahl zu verdoppeln. A / 30 kann insgesamt 4 Hosts enthalten, davon 2 nutzbar. a / 29 hat 8, / 28 hat 16 und so weiter. Das letzte Oktett geht wirklich von Bit-Werten aus, also würde es nur 128 64 32 16 8 4 2 1 sein. Das ist die Anzahl der Hosts insgesamt, wenn Sie minus 2 sind, wäre dies die Anzahl der verwendbaren Hosts.

Sobald Sie die / 23 erreicht haben, verdoppeln Sie den vorherigen Oktekt. A / 24 ist 256, / 23 ist 512, / 22 1024. Verdoppeln Sie einfach jedes Mal, wenn Sie einen Bitwert erhöhen.

Ich kann es leicht folgen. Andererseits weiß ich, wie Subnetting funktioniert. Hennes vor 7 Jahren 0
-1 Sie haben das Wort nicht klassenlos verwendet, also haben Sie seine Frage offenbar nicht eindeutig angesprochen barlop vor 7 Jahren 0
@Hennes Ich folge leicht, weil ich das Subnetting lol verstehe. Aber ich habe die Erklärung für Leute benutzt, die völlig verwirrt waren und sie dann nach der obigen Erklärung aufgreifen konnten. DrZoo vor 7 Jahren 0
@barlop Die Frage wurde auch 10 Minuten, nachdem ich meine Antwort gepostet hatte, bearbeitet. Ich kann nicht eine Frage beantworten, die nicht bestand, wenn ich eine Antwort poste. Nun stellt die Frage auch mehrere Fragen, was technisch den Richtlinien für Fragen widerspricht. DrZoo vor 7 Jahren 1
@DrZoo gut, Downvote aus Ihrer Antwort entfernt barlop vor 7 Jahren 0
2
Hennes

Fortsetzung von: https://serverfault.com/questions/49765/how-does-subnetting-work/49836#49836

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

Du hast:

  • 12 Server-Computer, aber Sie können bis zu 50% mehr erreichen
  • 9 Schalter
  • 97 Client-Computer, aber Sie erhalten möglicherweise mehr

Wie kann 192.168.40.0/24 in diese Teile aufgeteilt werden?

Denken Sie in geraden Zweierpotenzen und arbeiten Sie mit der größeren Anzahl möglicher Geräte, so können Sie Folgendes erreichen:

  • 18 Server-Computer - Die zweithöchste Leistung von zwei ist 32
  • 9 Schalter - Die zweithöchste Leistung von zwei ist 16
  • 97 Client-Computer - Die zweithöchste Leistung von zwei ist 128

In einem bestimmten IP-Subnetz sind zwei Adressen reserviert, 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 im Host-ID-Teil. Für jedes gegebene IP-Subnetz beträgt die Anzahl der verfügbaren Hostadressen zwei der Potenz der Anzahl 32 minus der Anzahl der Bits in der Subnetzmaske minus 2. Also im Fall von 192.168.40.0/24 we kann sehen, dass die Subnetzmaske 24 Bit hat. Damit stehen 8 Bit für Host-IDs zur Verfügung. Wir wissen, dass die 2. bis 8. Potenz 256 ist, was bedeutet, dass 256 mögliche Kombinationen von Bits in einen 8 Bit breiten Schlitz passen. Da die Kombinationen "11111111" und "00000000" dieser 8 Bits für Host-IDs nicht zulässig sind, bleiben 254 mögliche Hosts übrig, die im Netzwerk 192.168.40.0/24 zugewiesen werden können.

Von diesen 254 Hosts scheint es, als könnten wir die Clientcomputer, Switches und Servercomputer in diesen Raum einbauen, oder? 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, diese 8 Bits zu verwenden, um eine Anzahl eindeutiger Netzwerk-IDs zu erstellen, die die oben genannten Geräte aufnehmen können.

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

Nehmen wir unsere Netzwerk-ID, wie von unserem ISP bereitgestellt, und fügen Sie ein einzelnes Bit Subnetzmaske hinzu, das sich in zwei Netzwerke aufteilt:

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 dir das an, bis es Sinn macht. Wir haben die Subnetzmaske um ein Bit verlängert, wodurch die Netzwerk-ID ein Bit abdeckt, das für die Host-ID verwendet worden wäre. Da dieses eine Bit entweder Null oder Eins sein kann, haben wir unser 192.168.40.0-Netzwerk effektiv in zwei Netzwerke aufgeteilt. Die erste gültige IP-Adresse im 192.168.40.0/25-Netzwerk ist die erste Host-ID mit einer "1" im ganz 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 ganz 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, wobei jedes Bit außer dem ganz rechten Bit auf "1" gesetzt ist:

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 wir dann nach demselben Prinzip anwenden können, um in noch kleinere Netzwerke aufzuteilen. Machen wir uns eine Notiz:

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

Um das zweite Netzwerk für unsere Server und Switches aufzubrechen, tun wir dasselbe.

Wir haben 12 Server-Computer, aber wir können bis zu 6 weitere kaufen. Planen wir auf 18, was uns die zweithöchste Potenz von 2 als 32 ergibt. Im Binärformat ist 32 "100000", was 6 Bit lang ist. In 192.168.40.128/25 haben wir noch 7 Bit Subnetzmaske, so dass wir genug Bits haben, um mit dem "Spielen" fortzufahren. Durch das Hinzufügen eines weiteren Bits der Subnetzmaske 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 

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

Das bedeutet, dass beide Netzwerke über genügend Adressen für unsere Server und Switches verfügen! Machen wir uns Notizen:

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

Diese Technik wird als Subnetzmaskierung mit variabler Länge (VLSM) bezeichnet und bewirkt bei richtiger Anwendung, dass "Kernrouter" über kleinere Routing-Tabellen verfügen (durch einen Prozess, der als "Routenzusammenfassung" bezeichnet wird). Im Falle unseres ISP in diesem Beispiel wissen sie möglicherweise nicht, wie wir 192.168.40.0/24 subnettiert haben. Wenn für ihren Router ein Paket für 192.168.40.206 (einer unserer Switches) festgelegt ist, müssen sie nur wissen, dass es an unseren Router übergeben wird (da 192.168.40.206 der Netzwerk-ID und der Subnetzmaske 192.168.40.0/24 in der Routingtabelle des Routers entspricht ) und unser Router wird es ans Ziel bringen. Dies hält unsere Subnetzrouten von ihren Routingtabellen fern. (Ich vereinfache hier, aber Sie haben die Idee.)

Auf diese Weise können Sie sehr große geografische Netzwerke planen. Solange Sie die richtige "Stadtplanung" im Voraus durchführen (die Anzahl der Hosts in jedem Subnetz mit einiger Genauigkeit und ein Auge für die Zukunft vorausahnen), können Sie eine große Routing-Hierarchie erstellen, die bei den Kernroutern ", zusammengefasst "zu einer sehr kleinen Anzahl von Routen. Wie wir oben gesehen haben, wird die Aufgabe umso langsamer, je mehr Routen sich in der Routing-Tabelle eines Routers befinden. Ein IP-Netzwerk mit VLSM zu entwerfen und Routing-Tabellen klein zu halten, ist eine gute Sache (tm).

Der Unrealismus der Beispiele

Die fiktive Welt in dieser Antwort ist offensichtlich fiktional. In der Regel können Sie auf modernen Ethernet-Switches Subnetze mit mehr als 254 Hosts erstellen (abhängig vom Verkehrsprofil). Wie in Kommentaren darauf hingewiesen wurde, stimmt die Verwendung von / 24-Netzwerken zwischen Routern nicht mit Real Life (tm) überein. Es ist für niedliche Beispiele, aber es ist eine Verschwendung von Adressraum. In der Regel wird ein / 30 oder ein / 31 (siehe http://www.faqs.org/rfcs/rfc3021.html für Details zur Funktionsweise von / 31 - sie liegen eindeutig außerhalb des Umfangs dieser Antwort) im Netzwerk verwendet Verbindungen, die streng Punkt-zu-Punkt zwischen zwei Routern sind.