Dies ist eine kanonische Frage zu IPv4-Subnetzen.
Verbunden:
Wie funktioniert das Subnetting und wie machen Sie es von Hand oder in Ihrem Kopf? Kann jemand sowohl konzeptionell als auch an mehreren Beispielen erklären? Server Fault erhält eine Vielzahl von Subnetzfragen, sodass wir eine Antwort verwenden können, um sie auf Server Fault selbst zu verweisen.
- Wie finde ich heraus, wie ich ein Netzwerk aufteilen kann?
- Wenn ich eine Netzmaske bekomme, woher weiß ich, welche Reichweite das Netzwerk hat?
- Manchmal folgt ein Schrägstrich, gefolgt von einer Zahl. Was ist diese Zahl?
- Manchmal gibt es eine Subnetzmaske, aber auch eine Wildcard-Maske. Sie scheinen dasselbe zu sein, sind aber unterschiedlich.
- Jemand hat etwas über das Wissen um Binärdateien erwähnt?
networking
subnet
tcpip
ipv4
Kyle Brandt
quelle
quelle
Antworten:
Es gibt IP-Subnetze, über die Router geeignete Ziele für Pakete auswählen können. 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.
Einfach ausgedrückt, 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 noch übrig sind: Schande, dass ihr die binäre Notation nicht fließend beherrscht!
Ja - das kann ein bisschen hart sein. Es ist wirklich sehr einfach zu lernen, wie man Binärzahlen zählt und wie man Binärzahlen in Dezimalzahlen und zurück konvertiert. Sie sollten wirklich wissen, wie es geht.
Das Zählen in Binärdateien ist so einfach, weil Sie nur wissen müssen, wie man bis 1 zählt!
Denken Sie an den "Kilometerzähler" eines Autos, außer dass im Gegensatz zu einem herkömmlichen Kilometerzähler jede Ziffer nur bis zu 1 von 0 zählen kann. Wenn das Auto ab Werk frisch ist, zeigt der Kilometerzähler "00000000" an.
Wenn Sie Ihre erste Meile gefahren sind, zeigt der Kilometerzähler "00000001" an. So weit, ist es gut.
Wenn Sie Ihre zweite Meile gefahren sind, wird die erste Ziffer des Kilometerzählers auf "0" zurückgesetzt (da der Maximalwert "1" ist), und die zweite Ziffer des Kilometerzählers wird auf "1" zurückgesetzt, sodass der Kilometerzähler anzeigt. 00000010 ". Dies sieht aus wie die Zahl 10 in Dezimalschreibweise, aber es ist tatsächlich 2 (die Anzahl der Meilen, die Sie das Auto bisher gefahren haben) in Binärschreibweise.
Wenn Sie die dritte Meile gefahren sind, zeigt der Kilometerzähler "00000011" an, da sich die erste Ziffer des Kilometerzählers wieder dreht. Die Zahl "11" in Binärschreibweise entspricht der Dezimalzahl 3.
Wenn Sie Ihre vierte Meile gefahren sind, werden beide Ziffern (die am Ende der dritten Meile "1" lauteten) auf die Nullposition zurückgesetzt, und die dritte Ziffer wird auf die Position "1" hochgefahren. 00000100 ". Das ist die binäre Darstellung der Dezimalzahl 4.
Sie können sich all das merken, wenn Sie möchten, aber Sie müssen wirklich nur verstehen, wie der kleine Kilometerzähler "überrollt", wenn die Zahl, die er zählt, größer wird. Es ist genau das Gleiche wie bei einem herkömmlichen Dezimal-Kilometerzähler, außer dass bei unserem fiktiven "binären Kilometerzähler" jede Ziffer nur "0" oder "1" sein kann.
Um eine Dezimalzahl in eine Binärzahl umzuwandeln, können Sie den Kilometerzähler vorwärts tippen und laut zählen, bis Sie die Dezimalzahl, die Sie in eine Binärzahl umwandeln möchten, so oft gerollt haben. Was auch immer auf dem Kilometerzähler nach all dem Hin- und Herbewegen 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, wissen Sie auch, wie er rückwärts rollt. Um eine auf dem Kilometerzähler angezeigte Binärzahl in eine Dezimalzahl umzuwandeln, können Sie den Kilometerzähler um jeweils einen Tick zurückdrehen und laut zählen, bis der Kilometerzähler "00000000" anzeigt. Nach all dem Zählen und Rollen ist die letzte Zahl, die Sie laut sagen, die Dezimalzahl der Binärzahl, mit der der Kilometerzähler begonnen hat.
Das Konvertieren von Werten zwischen binär und dezimal 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 Überblick: Jede Ziffer in einer Binärzahl wird als "Bit" bezeichnet. Das ist "b" von "binär" und "es" von "Ziffer". Ein Bit ist eine Binärziffer.
Das Konvertieren einer Binärzahl wie "1101011" in eine Dezimalzahl ist ein einfacher Vorgang mit einem praktischen kleinen Algorithmus.
Beginnen Sie, indem Sie die Anzahl der Bits in der Binärzahl zählen. In diesem Fall gibt es 7. Machen Sie 7 Unterteilungen auf einem Blatt Papier (in Ihrem Kopf, in einer Textdatei usw.) und beginnen Sie, diese von rechts nach links auszufüllen. Geben Sie ganz rechts die Zahl "1" ein, da wir immer mit "1" beginnen. Geben Sie im nächsten Feld links den doppelten Wert im Feld rechts ein (also "2" im nächsten Feld, "4" im nächsten Feld) und fahren Sie fort, bis alle Felder belegt sind. (Sie werden sich diese Zahlen merken, die die Potenzen von 2 sind, wenn Sie dies mehr und mehr tun. Ich habe bis zu 131.072 in meinem Kopf in Ordnung, aber ich brauche normalerweise einen Taschenrechner oder ein Papier danach).
Also solltest du folgendes auf deinem Papier in deinen kleinen Slots haben.
Übertragen Sie die Bits von der Binärzahl unter den Slots wie folgt:
Fügen Sie nun einige Symbole hinzu und berechnen Sie die Antwort auf das Problem:
Nach all den Berechnungen sollten Sie sich Folgendes einfallen lassen:
Das ist alles. "1101011" in Dezimalzahl ist 107. Es sind nur einfache Schritte und einfache Berechnungen.
Das Konvertieren von Dezimalzahlen in Binärzahlen ist genauso einfach und entspricht dem gleichen grundlegenden Algorithmus, der in umgekehrter Reihenfolge ausgeführt wird.
Angenommen, wir möchten die Zahl 218 in eine Binärzahl umwandeln. Beginnen Sie rechts neben einem Blatt Papier mit der Zahl "1". Verdoppeln Sie nach links diesen Wert (also "2") und bewegen Sie sich weiter nach links, um den letzten Wert zu verdoppeln. Wenn die Zahl, die Sie schreiben möchten, größer ist als die Zahl, die konvertiert wird, beenden Sie das Schreiben. andernfalls verdoppeln Sie die vorherige Nummer und schreiben Sie weiter. (Das Konvertieren einer großen Zahl wie 34.157.216.092 in eine binäre Zahl mit diesem Algorithmus kann etwas mühsam sein, ist aber durchaus möglich.)
Also sollten Sie auf Ihrem Papier haben:
Sie haben bei 128 aufgehört, Zahlen zu schreiben, weil das Verdoppeln von 128, was 256 ergibt, größer ist als die Zahl, die konvertiert wird (218).
Schreiben Sie ab der ganz linken Zahl "218" darüber (128) und fragen Sie sich: "Ist 218 größer oder gleich 128?" Wenn die Antwort ja ist, kratzen Sie eine "1" unter "128". Schreiben Sie über "64" das Ergebnis von 218 minus 128 (90).
Fragen Sie sich bei "64": "Ist 90 größer oder gleich 64?" Sie schreiben also eine "1" unter "64", subtrahieren dann 64 von 90 und schreiben diese über "32" (26).
Wenn Sie jedoch zu "32" gelangen, stellen Sie fest, dass 32 nicht größer oder gleich 26 ist. In diesem Fall schreiben Sie eine "0" unter "32", und kopieren Sie die Zahl (26) von "32" nach "26". 16 "und fahren Sie dann fort, sich die gleiche Frage mit dem Rest der Zahlen zu stellen.
Wenn Sie fertig sind, sollten Sie Folgendes haben:
Die Zahlen oben sind nur Notizen, die bei der Berechnung verwendet werden und uns nicht viel bedeuten. Unten sehen Sie jedoch eine Binärzahl "11011010". Sicher genug, 218, konvertiert in binär, ist "11011010".
Mit diesen sehr einfachen Schritten können Sie Binärwerte in Dezimalwerte umwandeln und wieder zurück ohne einen Taschenrechner. Die Mathematik ist sehr einfach und die Regeln können mit ein wenig Übung auswendig gelernt werden.
Adressen aufteilen
Denken Sie an IP-Routing wie Pizza Delivery.
Wenn Sie gebeten werden, eine Pizza an die "123 Main Street" zu liefern, ist es Ihnen als Mensch sehr klar, dass Sie zu dem Gebäude mit der Nummer "123" in der Straße mit dem Namen "Main Street" gehen möchten. Es ist leicht zu erkennen, 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 bei einem Pizzafahrer: 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 genau wie der Pizzatreiber in ihre Komponenten "Straßenname" und "Hausnummer" aufteilen, 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), die als "Host-ID" bezeichnet wird, und eine "Straßennamen" -Komponente (wie "Hauptstraße" im obigen Beispiel), die als "Hauptstraße" bezeichnet wird, unterteilt werden "Netzwerk ID". Für unser menschliches Auge ist es leicht zu erkennen, wo sich die Hausnummer und der Straßenname in der "123 Main Street" befinden, aber es ist schwieriger, diese Unterteilung in "10.13.216.41 mit einer Subnetzmaske von 255.255.192.0" zu erkennen.
IP-Router können IP-Adressen einfach in diese Komponenten aufteilen, um Routing-Entscheidungen zu treffen. Da das Verständnis der Weiterleitung von IP-Paketen von diesem Prozess abhängt, müssen wir auch wissen, wie IP-Adressen aufgeteilt werden. Glücklicherweise ist es ziemlich einfach, die Host-ID und die Netzwerk-ID aus einer IP-Adresse und einer Subnetzmaske zu extrahieren.
Beginnen Sie, indem Sie die IP-Adresse in Binärform schreiben (verwenden Sie einen Taschenrechner, wenn Sie dies noch nicht in Ihrem Kopf gelernt haben, aber machen Sie sich eine Notiz, wie es geht - es ist wirklich sehr, sehr einfach und beeindruckt das andere Geschlecht bei Parteien):
Schreiben Sie die Subnetzmaske auch binär aus:
Nebeneinander geschrieben können Sie sehen, dass der Punkt in der Subnetzmaske, an dem die "1" anhält, an 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:
Router verwenden die Subnetzmaske, um die durch Einsen in der IP-Adresse abgedeckten Bits "auszublenden" (wobei die nicht "ausgeblendeten" Bits durch Nullen ersetzt werden), um die Netzwerk-ID zu extrahieren:
Ebenso kann ein Router mithilfe der Subnetzmaske die von Nullen in der IP-Adresse abgedeckten Bits "maskieren" (indem er die nicht "maskierten" Bits wieder durch Nullen ersetzt), um die Host-ID zu extrahieren:
Für unser menschliches Auge ist es nicht so einfach, den "Bruch" zwischen der Netzwerk-ID und der Host-ID zu erkennen wie zwischen der "Hausnummer" und dem "Straßennamen" in den physischen Adressen während der Pizza-Lieferung, aber der ultimative Effekt ist der gleich.
Da Sie nun IP-Adressen und Subnetzmasken in Host-IDs und Netzwerk-IDs aufteilen können, können Sie IP-Adressen wie bei einem Router weiterleiten.
Mehr Terminologie
Sie werden Subnetzmasken sehen, die im gesamten Internet und im Rest dieser Antwort als (IP / Nummer) geschrieben sind. Diese Notation wird als "Classless Inter-Domain Routing" (CIDR) -Notation bezeichnet. "255.255.255.0" besteht zu Beginn aus 24 Bits von Einsen, und es ist schneller, dies als "/ 24" zu schreiben als als "255.255.255.0". Um eine CIDR-Zahl (wie "/ 16") in eine Punkt-Dezimal-Subnetzmaske umzuwandeln, schreiben Sie einfach diese Zahl von Einsen aus, teilen Sie sie in 8-Bit-Gruppen auf und konvertieren Sie sie in eine Dezimalzahl. (A "/ 16" ist beispielsweise "255.255.0.0".)
In den "alten Tagen" wurden Subnetzmasken nicht spezifiziert, sondern durch Betrachtung bestimmter Teile der IP-Adresse abgeleitet. Eine IP-Adresse, die beispielsweise mit 0 bis 127 beginnt, hatte eine implizite Subnetzmaske von 255.0.0.0 (eine IP-Adresse der Klasse A).
Diese impliziten Subnetzmasken werden heutzutage nicht mehr verwendet, und ich empfehle nicht, mehr darüber zu lernen, es sei denn, Sie haben das Unglück, mit sehr alten Geräten oder alten Protokollen (wie RIPv1) umzugehen, die keine klassenlose IP-Adressierung unterstützen. Ich werde diese "Adressenklassen" nicht weiter erwähnen, da sie heute nicht anwendbar sind und verwirrend sein können.
Einige Geräte verwenden eine Notation namens "Platzhaltermasken". Eine "Wildcard-Maske" ist nichts anderes als eine Subnetzmaske mit allen Nullen, bei denen es Einsen geben würde, und Einsen, bei denen es Nullen geben würde. Die "Wildcard-Maske" von a / 26 ist:
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 ein Router funktioniert
Wie ich bereits sagte, haben IP-Router eine ähnliche Aufgabe wie ein Pizzaboten, da sie ihre Fracht (Pakete) an ihren Bestimmungsort bringen müssen. Wenn ein Paket für die Adresse 192.168.10.2 gebunden ist, muss ein IP-Router ermitteln, welche seiner Netzwerkschnittstellen das Paket am besten an sein Ziel bringt.
Angenommen, Sie sind ein IP-Router und Sie haben Schnittstellen mit einer Nummer verbunden:
Wenn Sie ein zuzustellendes Paket mit der Zieladresse "192.168.10.2" erhalten, können Sie (mit menschlichen Augen) leicht erkennen, dass das Paket über die Schnittstelle Ethernet1 gesendet werden soll, da die Adresse der Ethernet1-Schnittstelle dem Ziel des Pakets entspricht Adresse. Alle an die Ethernet1-Schnittstelle angeschlossenen Computer haben IP-Adressen, die mit "192.168.10." Beginnen, da die Netzwerk-ID der IP-Adresse, die Ihrer Ethernet1-Schnittstelle zugewiesen ist, "192.168.10.0" lautet.
Für einen Router wird bei dieser Routenauswahl eine Routing-Tabelle erstellt und diese Tabelle bei jeder Zustellung eines Pakets abgefragt. Eine Routing-Tabelle enthält die Namen der Netzwerk-ID und der Zielschnittstelle. Sie wissen bereits, wie Sie eine Netzwerk-ID aus einer IP-Adresse und einer Subnetzmaske abrufen können, und sind auf dem Weg zum Erstellen einer Routingtabelle. Hier ist unsere Routing-Tabelle für diesen Router:
Für unser eingehendes Paket, das für "192.168.10.2" gebunden ist, müssen wir nur die Adresse dieses Pakets in binär konvertieren (als Mensch - der Router erhält sie von Anfang an als binär) und versuchen, sie mit jeder Adresse in unserem Routing abzugleichen Tabelle (bis zur Anzahl der Bits in der Subnetzmaske), bis ein Eintrag gefunden wird.
Vergleichen Sie das mit den Einträgen in unserer Routing-Tabelle:
Der Eintrag für Ethernet0 stimmt mit den ersten 19 Bit überein, hört dann aber auf, übereinzustimmen. 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 an die Schnittstelle Ethernet1 gebunden.
In einem echten Router wird die Routingtabelle so sortiert, dass die längsten Subnetzmasken zuerst (dh die spezifischsten Routen) und numerisch auf Übereinstimmungen überprüft werden, damit das Paket weitergeleitet werden kann, sobald eine Übereinstimmung gefunden wird Es sind keine weiteren Übereinstimmungsversuche erforderlich (dh 192.168.10.0 wird zuerst aufgeführt und 192.168.20.0 wird niemals überprüft). Hier vereinfachen wir das ein bisschen. Ausgefallene Datenstrukturen und Algorithmen machen IP-Router schneller, aber einfache Algorithmen führen zu denselben Ergebnissen.
Statische Routen
Bis zu diesem Punkt haben wir von einem hypothetischen Router gesprochen, bei dem Netzwerke direkt mit ihm verbunden sind. Offensichtlich funktioniert die Welt nicht so. In der Pizza-Fahr-Analogie darf der Fahrer manchmal nur die Rezeption betreten und muss die Pizza zur Auslieferung an den Endempfänger weitergeben (Unglauben aussetzen und mit mir verhandeln) Ich strecke meine Analogie bitte aus.
Rufen wir zunächst unseren Router aus den vorherigen Beispielen "Router A" auf. Sie kennen die Routing-Tabelle von RouterA bereits als:
Angenommen, es gibt einen anderen Router, "Router B", dessen Ethernet0- und Ethernet1-Schnittstellen die IP-Adressen 192.168.10.254/24 und 192.168.30.1/24 zugewiesen haben. Es hat die folgende Routing-Tabelle:
In der hübschen ASCII-Grafik sieht das Netzwerk folgendermaßen aus:
Sie können sehen, dass Router B weiß, wie er in ein Netzwerk "gelangt", 192.168.30.0/24, und dass Router A nichts davon 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 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 an die Ethernet1-Schnittstelle von Router B angeschlossene Netzwerk 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 Netzwerks 192.168.30.0/24 aufmerksam zu machen, fügen Sie der Routing-Tabelle auf Router A den folgenden Eintrag hinzu:
Auf diese Weise verfügt Router A über einen Routing-Tabelleneintrag, der dem Ziel 192.168.30.46 unseres Beispielpakets entspricht. Dieser Routing-Tabelleneintrag lautet 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 er damit umgeht." Dies ist die analoge Aktion "Übergabe der Pizza an der Rezeption", die ich bereits erwähnt habe - Weitergabe des Pakets an jemanden, der weiß, wie er es näher an sein Ziel bringt.
Das Hinzufügen eines Eintrags zu einer Routingtabelle "von Hand" wird als Hinzufügen einer "statischen Route" bezeichnet.
Wenn Router B Pakete an das 192.168.20.0-Subnetzmasken-255.255.255.0-Netzwerk senden möchte, benötigt er auch einen Eintrag in seiner Routingtabelle:
Dies würde einen Pfad für die Zustellung 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 erstellen.
Sie möchten immer sicher sein, dass Router auf beiden Seiten eines solchen "Interstitial-Netzwerks" einen Routing-Tabelleneintrag für das "ferne" Netzwerk haben. Wenn Router B in unserem Beispiel keinen Routing-Tabelleneintrag für das "entfernte" Netzwerk 192.168.20.0/24 an Router A angeschlossen hätte , würde unser hypothetisches Paket vom PC unter 192.168.20.13 unter 192.168.30.46 zum Zielgerät gelangen. Jede Antwort, die 192.168.30.46 versuchte, zurückzusenden, würde von Router B als "Zielnetzwerk nicht erreichbar" zurückgegeben. Einwegkommunikation ist im Allgemeinen nicht wünschenswert. Denken Sie immer daran, dass der Datenverkehr in beide Richtungen fließt, wenn Sie an die Kommunikation in Computernetzwerken denken.
Sie können eine Menge Kilometer auf statischen Strecken fahren. Dynamische Routing-Protokolle wie EIGRP, RIP usw. sind eigentlich 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 dynamischer Routing-Protokolle gegenüber statischen Routen besteht jedoch darin, dass dynamische Routing-Protokolle die Routing-Tabelle basierend auf den Netzwerkbedingungen (Bandbreitennutzung, Ausfall einer Schnittstelle usw.) und als solche dynamisch ändern können Das Routing-Protokoll kann zu einer Konfiguration führen, die Fehler oder Engpässe in der Netzwerkinfrastruktur umgeht. (Dynamische Routing-Protokolle liegen jedoch WEGWEISER außerhalb des Rahmens dieser Antwort.)
Sie können von hier aus nicht dorthin gelangen
Was passiert im Fall unseres Beispielrouters A, wenn ein für "172.16.31.92" gebundenes Paket eingeht?
Betrachten des Routers In einer Routingtabelle stimmen weder die Zielschnittstelle noch die statische Route mit den ersten 24 Bits von 172.18.31.92 überein (10101100.00010000.00011111.01011100, BTW).
Wie wir bereits wissen, würde Router A das Paket über eine Nachricht "Zielnetzwerk nicht erreichbar" an den Absender zurücksenden.
Angenommen, unter der Adresse "192.168.20.254" befindet sich ein anderer Router (Router C). Router C hat eine Verbindung zum Internet!
Es wäre schön, wenn Router A Pakete, die keiner lokalen Schnittstelle entsprechen, an Router C weiterleiten könnte, sodass Router C sie an das Internet weiterleiten kann. Geben Sie die Route "Standard-Gateway" ein.
Fügen Sie am Ende unserer Routing-Tabelle einen Eintrag wie folgt hinzu:
Wenn wir versuchen, "172.16.31.92" mit jedem Eintrag in der Routing-Tabelle abzugleichen, treffen wir am Ende diesen neuen Eintrag. Anfangs ist es etwas verwirrend. Wir wollen null Bits der Zieladresse mit ... Moment ... was abgleichen? Übereinstimmende Null-Bits? Wir suchen also überhaupt keine Übereinstimmung. In diesem Routing-Tabelleneintrag heißt es im Grunde: "Wenn Sie hier ankommen, anstatt auf die Zustellung zu verzichten, 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 wir mit einem Paket konfrontiert werden, das an ein Ziel gebunden ist, für das wir keinen spezifischen Routing-Tabelleneintrag haben, stimmt dieser "Standard-Gateway" -Eintrag immer überein (da er mit null Bits der Zieladresse übereinstimmt) und gibt uns einen "letzten Ausweg" -Platz, den wir können Pakete zur Zustellung senden. Manchmal wird das Standard-Gateway als "Gateway of Last Resort" bezeichnet.
Damit eine Standard-Gateway-Route wirksam wird, 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 versuchen, ein Standard-Gateway mit dem Wert 192.168.50.254 anzugeben, schlägt die Übermittlung an ein solches Standard-Gateway fehl. 192.168.50.254 ist keine Adresse, mit der Router A Pakete übermitteln kann, um eine der anderen Routen in seiner Routing-Tabelle zu verwenden. Daher wäre eine solche Adresse als Standard-Gateway ineffektiv. Dies kann kurz gesagt werden: Das Standard-Gateway muss auf eine Adresse eingestellt sein, die bereits über eine andere Route in der Routing-Tabelle erreichbar ist.
Echte Router speichern normalerweise das Standard-Gateway als letzte Route in ihrer Routing-Tabelle, sodass es mit Paketen übereinstimmt, 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 städtebauliche Angelegenheit. In der Stadtplanung wird die Zoneneinteilung verwendet, um sich an die natürlichen Gegebenheiten der Landschaft (Flüsse, Seen usw.) anzupassen, die Verkehrsströme zwischen verschiedenen Stadtteilen zu beeinflussen und verschiedene Arten der Flächennutzung (Industrie, Wohngebiete usw.) zu trennen. . IP-Subnetze sind im Grunde dasselbe.
Es gibt drei Hauptgründe, warum Sie ein Netzwerk subnetzen würden:
Möglicherweise möchten Sie über verschiedene Kommunikationsmedien hinweg 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 am T1 selbst) werden eindeutigen IP-Subnetzen zugewiesen, damit die Router entscheiden können, welcher Verkehr über die T1-Leitung gesendet werden soll.
In einem Ethernet-Netzwerk können Sie das Subnetz verwenden, um den Broadcast-Verkehr in einem bestimmten Teil des Netzwerks zu begrenzen. Protokolle auf Anwendungsebene nutzen die Broadcast-Funktion von Ethernet für sehr nützliche Zwecke. Da jedoch immer mehr Hosts in dasselbe Ethernet-Netzwerk gepackt werden, kann der Anteil des Broadcast-Verkehrs auf dem Kabel (oder der Luft im Wireless-Ethernet) so weit ansteigen, dass Probleme bei der Übermittlung von Nicht-Broadcast-Verkehr auftreten. (Früher konnte der Broadcast-Verkehr die CPU der Hosts überfordern, indem er sie dazu zwang, jedes Broadcast-Paket zu untersuchen. Das ist heute weniger wahrscheinlich.) Übermäßiger Datenverkehr auf Switched Ethernet kann auch in Form eines "Flutens von Frames zu unbekannten Zielen" auftreten. Dieser Zustand wird dadurch verursacht, dass ein Ethernet-Switch nicht in der Lage ist, jedes Ziel im Netzwerk zu verfolgen. Dies ist der Grund, warum Switched-Ethernet-Netzwerke nicht auf eine unbegrenzte Anzahl von Hosts skaliert werden können. Der Effekt des Flutens von Frames zu unbekannten Zielen ist ähnlich dem Effekt des übermäßigen Broadcast-Verkehrs zum Zwecke der Subnetzbildung.
Möglicherweise möchten Sie den Datenverkehr zwischen verschiedenen Hostgruppen "überwachen". Möglicherweise haben Sie Druckservergeräte und möchten nur autorisierte Druckwarteschlangenserver-Computer, um Aufträge an diese zu senden. Durch die Beschränkung des Datenverkehrs, der zum Subnetz des Druckservers fließen darf, können Benutzer ihren PC nicht so konfigurieren, dass er direkt mit den Druckservern kommuniziert, um die Druckabrechnung zu umgehen. Sie können die Druckservergeräte für sich allein in ein Subnetz stellen und im Router oder in der Firewall, die an dieses Subnetz angeschlossen sind, eine Regel erstellen, um die Liste der Hosts zu steuern, die Datenverkehr an die Druckservergeräte senden dürfen. (Sowohl Router als auch Firewalls können in der Regel anhand der Quell- und Zieladressen des Pakets entscheiden, wie oder ob ein Paket zugestellt werden soll. Firewalls sind in der Regel eine Unterart von Routern mit einer besessenen Persönlichkeit. Sie können sehr, sehr besorgt über die Nutzlast von Paketen sein, wohingegen Router in der Regel Nutzlasten ignorieren und nur die Pakete zustellen.)
Bei der Planung einer Stadt können Sie planen, wie sich Straßen kreuzen, und mithilfe von Einbahnstraßen, Einbahnstraßen und Sackgassen den Verkehrsfluss beeinflussen. Sie möchten vielleicht, dass die Hauptstraße 30 Blöcke lang ist und jeder Block bis zu 99 Gebäude enthält. 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, wie die "Startnummer" in jedem nachfolgenden Block lauten soll.
Bei der Planung von IP-Subnetzen müssen Sie die richtige Anzahl von Subnetzen (Straßen) mit der richtigen Anzahl von verfügbaren Host-IDs (Gebäudenummern) erstellen und Router verwenden, um die Subnetze miteinander zu verbinden (Kreuzungen). Regeln zu zulässigen Quell- und Zieladressen, die in den Routern angegeben 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 unser einziges Hauptanliegen. Anstatt wie bei der Stadtplanung mit Dezimalzahlen zu arbeiten, arbeiten Sie mit Binärzahlen, um die Grenzen der einzelnen Subnetze zu beschreiben.
Fortsetzung auf: Wie funktioniert das IPv4-Subnetting?
(Ja ... wir haben die maximale Größe einer Antwort (30000 Zeichen) erreicht.)
quelle
Fortsetzung von: Wie funktioniert das IPv4-Subnetting?
Ihr ISP teilt Ihnen den Bereich mit 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 (Servern, Client-Computern, Netzwerkgeräten) einzuschränken, und möchten daher diese verschiedenen Teile Ihres Netzwerks aufteilen in IP-Subnetze (zwischen denen das Firewall- / Router-Gerät dann routen kann).
Du hast:
Was ist ein guter Weg, um 192.168.40.0/24 in diese Teile zu zerlegen?
Wenn Sie in Zweierpotenzen denken und mit einer größeren Anzahl möglicher Geräte arbeiten, können Sie sich Folgendes einfallen lassen:
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 Einsen im Host-ID-Teil. Als solches ist für jedes gegebene IP-Subnetz die Anzahl der verfügbaren Hostadressen zwei hoch 32 minus der Anzahl der Bits in der Subnetzmaske minus 2. Im Fall von 192.168.40.0/24 ist dies also der Fall kann sehen, dass die Subnetzmaske 24 Bit hat. Damit bleiben 8 Bits für Host-IDs verfügbar. Wir wissen, dass 2 zur 8. Potenz 256 ist - was bedeutet, dass 256 mögliche Kombinationen von Bits in einen Schlitz passen, der 8 Bits breit ist. Da die Kombinationen "11111111" und "00000000" 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 scheinen wir die Client-Computer, Switches und Server-Computer in diesen Bereich einbauen zu können, oder? Lass es uns versuchen.
Sie haben 8 Bit Subnetzmaske zum "Spielen" (die restlichen 8 Bit der IP-Adresse 192.168.40.0/24 werden von der von Ihrem Internetdienstanbieter bereitgestellten Subnetzmaske nicht abgedeckt). Wir müssen eine Möglichkeit finden, diese 8 Bits zu verwenden, um eine Reihe 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ächstgrößere Potenz von zwei aus der Anzahl der möglichen Geräte 128 ist. Die Zahl 128 in binärer Form ist "10000000". Zum Glück passt dies in den 8-Bit-Steckplatz, den wir frei haben (wenn dies nicht der Fall wäre, wäre dies ein Hinweis darauf, dass unser Start-Subnetz zu klein ist, um alle unsere Geräte aufzunehmen).
Nehmen wir die von unserem Internetdienstanbieter bereitgestellte Netzwerk-ID und fügen ihr ein einzelnes Bit einer Subnetzmaske hinzu, die in zwei Netzwerke unterteilt wird:
Schauen Sie sich das an, bis es Sinn macht. Wir haben die Subnetzmaske um ein Bit verlängert, sodass 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 Netzwerk 192.168.40.0/25 ist die erste Host-ID mit einer "1" im Bit ganz rechts:
Der erste gültige Host im Netzwerk 192.168.40.128 ist ebenfalls die erste Host-ID mit einer "1" im Bit ganz rechts:
Der letzte gültige Host in jedem Netzwerk ist die Host-ID, wobei jedes Bit außer dem am weitesten rechts stehenden Bit auf "1" gesetzt ist:
Auf diese Weise haben wir ein Netzwerk geschaffen, das groß genug ist, um unsere Client-Computer aufzunehmen, und ein zweites Netzwerk, in dem wir dasselbe Prinzip anwenden können, um es in noch kleinere Netzwerke aufzuteilen. Machen wir uns eine Notiz:
Um nun das zweite Netzwerk für unsere Server und Switches zu zerstören, machen wir dasselbe.
Wir haben 12 Server-Computer, aber wir könnten bis zu 6 weitere kaufen. Planen wir 18, was uns die nächsthöhere Potenz von 2 als 32 lässt. In der Binärdarstellung ist 32 "100000", was 6 Bits lang ist. Wir haben noch 7 Bits Subnetzmaske in 192.168.40.128/25, also haben wir genug Bits, um weiterzuspielen. Durch Hinzufügen eines weiteren Teils der Subnetzmaske erhalten wir zwei weitere Netzwerke:
Jetzt haben wir also 192.168.40.128/25 in zwei weitere Netzwerke aufgeteilt, von denen jedes 26 Bit Subnetzmaske oder insgesamt 62 mögliche Host-IDs hat - 2 ^ (32 - 26) - 2.
Das bedeutet, dass diese beiden Netzwerke genügend Adressen für unsere Server und Switches haben! Machen wir uns Notizen:
Diese Technik wird als VLSM (Variable-Length Subnet Masking) bezeichnet und führt bei ordnungsgemäßer Anwendung dazu, dass "Core-Router" kleinere Routingtabellen haben (durch einen als "Routenzusammenfassung" bezeichneten Prozess). Im Fall unseres ISP in diesem Beispiel wissen sie möglicherweise gar nicht, wie wir 192.168.40.0/24 subnettiert haben. Wenn in ihrem Router ein Paket für 192.168.40.206 (einer unserer Switches) gebunden ist, müssen sie es nur an unseren Router weiterleiten (da 192.168.40.206 mit der Netzwerk-ID und der Subnetzmaske 192.168.40.0/24 in der Routing-Tabelle ihres Routers übereinstimmt) ) und unser Router bringt es ans Ziel. Dies hält unsere Subnetzrouten von ihren Routingtabellen fern. (Ich vereinfache hier, aber Sie bekommen die Idee.)
Auf diese Weise können Sie sehr große geografische Netzwerke planen. Solange Sie im Vorfeld die richtige "Stadtplanung" durchführen (wobei Sie die Anzahl der Hosts in jedem Teilnetzwerk mit einiger Genauigkeit und mit Blick auf die Zukunft vorwegnehmen), können Sie eine große Routing-Hierarchie erstellen, die in den Kernroutern zusammengefasst wird "auf eine sehr kleine Anzahl von Strecken. Wie wir oben gesehen haben, führt die Routing-Tabelle eines Routers umso langsamer aus, je mehr Routen vorhanden sind. Das Entwerfen eines IP-Netzwerks mit VLSM und das Kleinhalten von Routingtabellen ist eine gute Sache.
Der Unrealismus der Beispiele
Die fiktive Welt in dieser Antwort ist offensichtlich fiktiv. In der Regel können Sie in modernen Ethernet-Switches Subnetze mit mehr als 254 Hosts einrichten (abhängig vom Verkehrsprofil). Wie bereits in Kommentaren erwähnt, stimmt die Verwendung von / 24-Netzwerken zwischen Routern nicht mit Real Life (tm) überein. Das sind nette Beispiele, aber es ist eine Verschwendung von Adressraum. In der Regel wird ein / 30- oder ein / 31 -Netzwerk ( Einzelheiten zur Arbeitsweise von / 31 finden Sie unter http://www.faqs.org/rfcs/rfc3021.html ) verwendet Verbindungen, die ausschließlich Punkt-zu-Punkt zwischen zwei Routern sind.
quelle
0
als dargestellt00000000
. Das zweite Subnetz ist128
so10000000
und das dritte Subnetz192
wird als11000000
usw. dargestellt. Zählen Sie einfach weiter rückwärts, um neue Subnetze zu finden.Subnetz
Die Untervernetzung ist nicht schwierig, kann aber einschüchternd sein. Beginnen wir also mit dem einfachsten Schritt. Binär zählen lernen.
Binär
Binär ist ein Basis-2-Zählsystem. Bestehend aus nur zwei Zahlen (1 und 0). Die Zählung erfolgt auf diese Weise.
Wenn Sie sich also vorstellen, dass jede 1 ein Platzhalter für einen Wert ist (alle Binärwerte sind Zweierpotenzen)
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.111111.00000000". Wir verwenden Subnetze als Kurzform.
Die Punkte in der Adresse werden alle 8 Binärziffern (ein Oktett) getrennt. Aus diesem Grund wird IPv4 als 32-Bit-Adressraum (8 * 4) bezeichnet.
Warum ein Subnetz?
IPv4-Adressen (192.168.1.1) sind Mangelware. Durch das Sub-Netting können wir die Anzahl der verfügbaren Netzwerke (oder Hosts) erhöhen. Dies hat administrative und technische Gründe.
Jede IP-Adresse ist in zwei separate Teile unterteilt, das Netzwerk und den Host. Standardmäßig verwendet eine Adresse der Klasse C (192.168.1.1) die ersten 3 Oktette (192.168.1) für den Netzwerkteil der Adresse. und das 4. Oktett (.1) als Host-Teil.
Standardmäßig sehen eine IP-Adresse und eine Subnetzmaske für eine Adresse der Klasse C so aus
In binären wie folgt
Schauen Sie sich das binäre Beispiel noch einmal an. Beachten Sie, wie ich sagte, dass die ersten drei Oktette für das Netzwerk verwendet werden? Beachten Sie, wie der Netzwerkteil alle ist? Das ist alles, was ein Subnetz ist. Lassen Sie uns erweitern.
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, gerechnet ab 0). Es gibt aber noch einen kleinen Trick: Sie müssen 2 Hostadressen von den verfügbaren (derzeit 256) subtrahieren. Die erste Adresse im Bereich ist für das Netzwerk (192.168.1.0) und die letzte Adresse im Bereich ist die Rundsendung (192.168.1.255). Sie haben also wirklich 254 verfügbare Adressen für Hosts in einem Netzwerk.
Eine Fallstudie
Nehmen wir an, ich habe Ihnen das folgende Stück Papier gegeben.
Werfen wir einen Blick darauf. Die / 24 heißt CIDR-Notation. Anstatt auf 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. Schreiben Sie dies in binärer Form
Als nächstes müssen wir herausfinden, wie viele Subnetze wir benötigen. Sieht aus wie 4. Da wir mehr Netzwerke erstellen müssen (derzeit haben wir nur ein Netzwerk), können wir einige Bits umdrehen
Nachdem wir uns für eine / 26 entschieden haben, beginnen wir mit der Zuweisung von Hosts. Eine kleine einfache Rechnung:
Wir müssen in jedem Netzwerk 6 Bit für Hosts zuweisen. Denken Sie daran, dass wir für jedes Netzwerk 2 subtrahieren müssen.
Jetzt müssen wir herausfinden, wohin die Gastgeber gehen. Zurück zur Binärdatei!
Auf diese Weise können Sie das gesamte Subnetz berechnen.
Platzhalter Eine Platzhaltermaske ist eine invertierte Subnetzmaske.
Des Weiteren
Google für die Begriffe "Super-Netting" und "VLSM (Variable Length Subnet Mask)" für weiterführende Themen.
Ich kann jetzt sehen, dass ich zu lange gebraucht habe, um zu antworten ... seufz
quelle
Eine kurze Geschichtsstunde: Ursprünglich wurden Unicast-IPv4-Adressen in drei Klassen mit jeweils einer zugeordneten "Standard" -Maskenlänge (als klassenbezogene Subnetzmaske bezeichnet) unterteilt.
Die Idee war, dass Organisationen unterschiedlicher Größe eine andere Klasse von IP-Adressen zugewiesen bekommen, um den IP-Adressraum effizient zu nutzen.
Mit dem Wachstum der IP-Netzwerke wurde jedoch klar, dass dieser Ansatz seine Probleme hatte. Um nur drei zu nennen:
In einer classful Welt, alle Subnetze hatten eine Maske von / 8 haben, / 16 oder / 24. Dies bedeutete, dass das kleinste Subnetz, das konfiguriert werden konnte, ein / 24-Netzwerk war, das 254 Hostadressen zuließ (.0 und .255 wurden als Netzwerk- bzw. Broadcastadressen reserviert). Dies war eine enorme Verschwendung, insbesondere bei Punkt-zu-Punkt-Verbindungen mit nur zwei daran angeschlossenen Routern.
Auch nachdem diese Einschränkung aufgehoben wurde, kündigten frühere Routing-Protokolle (z. B. RIPv1 ) die mit einem IP-Präfix verknüpfte Maskenlänge nicht an. Ohne eine bestimmte Maske würde entweder die Maske einer direkt verbundenen Schnittstelle im selben klassifizierten Netzwerk verwendet oder auf die Verwendung der klassifizierten Maske zurückgegriffen. Wenn Sie beispielsweise das Netzwerk 172.16.0.0 für Verbindungen zwischen Routern mit / 30-Masken verwenden möchten, müssen alle Subnetze von 172.16.0.0 - 172.16.255.255 über eine / 30-Maske verfügen (16384 Subnetze mit jeweils 2 verwendbaren IPs) ).
Die Routing-Tabellen von Internet-Routern fingen an, immer mehr Speicherplatz in Anspruch zu nehmen. Dies war / ist als "Routing-Tabellen-Explosion" bekannt. Wenn ein Anbieter beispielsweise 16 zusammenhängende / 24 Netze hätte, müsste er alle 16 Präfixe anstelle einer einzigen Zusammenfassung, die den gesamten Bereich abdeckt, bekannt machen.
Zwei damit verbundene Verbesserungen haben es uns ermöglicht, die oben genannten Einschränkungen zu überschreiten.
VLSM bezieht sich auf die Fähigkeit eines Routing-Protokolls, verschiedene Subnetzmasken innerhalb desselben klassifizierten Netzwerks zu unterstützen. Zum Beispiel:
Könnte aufgeteilt werden in:
Dies ermöglichte eine effizientere Nutzung des Adressraums. Subnetze könnten für die Anzahl der an sie angeschlossenen Hosts / Router richtig dimensioniert sein.
CIDR verwendet VLSM und erweitert es in die andere Richtung. Zusätzlich zur Aufteilung eines einzelnen klassifizierten Netzwerks in kleinere Subnetze ermöglicht CIDR die Zusammenfassung mehrerer klassifizierter Netzwerke zu einer einzigen Zusammenfassung. Zum Beispiel die folgenden Netze der Klasse B (/ 16):
Kann mit einem Präfix zusammengefasst werden:
In Bezug auf das Subnetz: Eine Subnetzmaske ist 32 Bit lang. Die Maskenlänge gibt an, wie viele Bits den Netzwerkteil der Adresse identifizieren. Zum Beispiel:
Dies bedeutet, dass sich unter der Annahme, dass das gesamte 10.0.0.0/8-Netzwerk in / 24s unterteilt ist, 65536 (2 ^ 16) Subnetze in diesem Bereich befinden. (Dies setzt voraus, dass die von Ihnen verwendete Plattform die Subnetznummern 0 und 255 unterstützt. Siehe IP-Subnetz Null von Cisco).
Es verbleiben noch 8 Bits im "Host-Teil" der Adresse. Dies bedeutet, dass 256 IP-Adressen verfügbar sind (2 ^ 8), von denen 2 reserviert sind (10.1.1.0 ist die Netzwerkadresse, 10.1.1.255 ist die Subnetz-gerichtete Broadcast-Adresse). Damit bleiben 254 verwendbare IP-Adressen in diesem Subnetz. ((2 ^ 8) - 2)
quelle
Netzwerkbereiche: Auf Netzwerke wird immer mit zwei Zahlen verwiesen: eine zur Ermittlung des Netzwerks und eine andere zur Ermittlung des Computers (oder Hosts) in diesem Netzwerk. Da jede Netzwerkadresse 32 Bit lang ist, müssen beide Zahlen in diese 32 Bit 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 erkennen. Während diese Nummern eindeutig sein müssen, möchte niemand anderen den Hosts in meinem Netzwerk Nummern zuweisen. Daher die Aufteilung - der erste Teil wird von den Netzwerkleuten verwaltet, der zweite Teil ist ganz von mir und kann an die von mir gewünschten Maschinen weitergegeben werden.
Die Netzwerknummer ist nicht auf eine bestimmte Anzahl von Bits festgelegt. Wenn ich beispielsweise nur 200 Computer verwalten müsste, wäre ich mit einer Netzwerknummer, die 24 Bits verwendet, vollkommen zufrieden, sodass mir nur 8 Bits zur Verfügung stehen - das reicht für bis zu 255 Hosts. Da die Netzwerknummer 24 Bit verwendet, können wir viele davon haben, was bedeutet, dass viele Leute ihre eigenen Netzwerke haben können.
In der Vergangenheit wurde dies als Klasse-C-Netzwerk bezeichnet. (Klasse B verwendete 16 Bits für die Netzwerknummer, und Klasse A verwendete 8 Bits, sodass nur wenige Netzwerke der Klasse A vorhanden sind).
Heutzutage ist diese Namenskonvention aus der Mode gekommen. Es wurde durch das Konzept CIDR ersetzt. CIDR gibt die Anzahl der Bits für Ihre Hosts nach dem Schrägstrich explizit an. Mein Beispiel oben (Klasse C) wird jetzt als CIDR / 24 bezeichnet.
Dies gibt uns etwas mehr Flexibilität. Wenn ich zuvor 300 Hosts verwalten müsste, bräuchte ich ein Klasse-B-Netzwerk! Jetzt kann ich nur eine / 23-CIDR bekommen, also habe ich 9 Bits für mich und 23 Bits für die Netzwerknummer. ICANN hat diese Art von Netzwerken möglicherweise nicht aus, aber wenn ich über ein internes Netzwerk verfüge oder ein Teilnetzwerk von einem ISP miete, ist dies einfacher zu verwalten - zumal alle ihre Kunden eine / 29 erhalten können (ohne mich zu verlassen). 3 Bit oder maximal 8 Maschinen), wodurch mehr Personen ihre eigene kleine Scheibe der verfügbaren IP-Adressen haben können. Bis wir IPv6 bekommen, ist dies ziemlich wichtig.
Allerdings ... obwohl ich weiß, dass ein / 24-CIDR dem alten Klasse-C-Netzwerk entspricht und ein / 16 der Klasse B und ein / 8 der Klasse A entspricht ... bin ich immer noch ratlos beim Versuch, einen / 22-Zoll-Wert zu berechnen mein Kopf. Zum Glück gibt es Tools, die dies für mich tun :)
Wenn Sie jedoch wissen, dass a / 24 8 Bit für Hosts (und 24 Bit für Netzwerke) ist, weiß ich, dass mir a / 23 ein zusätzliches Bit gibt, das die Anzahl der Hosts verdoppelt.
quelle
Ich werde einige verwandte Fragen auf dem Weg stellen und beantworten:
255.255.255.0
so oft?192.168.0.1
?127.0.0.1
?Warum so seltsame Zahlen - 255, 192, 168, 127?
8 + 8 + 8 + 8-Bit-Dezimalpunkt
Internetadressen wie 194.60.38.10 verwenden die Punkt -Dezimal-Notation , um 32 Bits in 8 + 8 + 8 + 8 Bits aufzuteilen. Dezimalschreibweise Umwandlungseinrichtung † jede Zahl in binären dann links Klotzen mit
0
‚s.Zum Beispiel
.60.
→ 60 = 32 + 16 + 8 + 4 →111100
→.00111100.
.So ist 194.60.38.10 für die 4 × 8 = 32-Bit-Adresse punktiert
11000010.00111100.00100110.00001010
, da 38 →100110
, 10 →1010
und so weiter. 194 erfordert alle 8 Bits; Der Rest ist gepolstert.Wenn Sie über 255, 192 und 127 in 8-Bit-Binärdaten nachdenken, können Sie leichter verstehen, warum bestimmte Dezimalzahlen so häufig vorkommen:
11111111
11000000
_1111111
10000000
Diese Dezimalzahlen repräsentieren visuell praktische 8-Bit-Blöcke wie ■■■■■■■■, ■ □□□□□□ und □ ■■■■■■■. Sie haben also aufgrund der 8-Bit-Grenze noch nie 256 = 2⁹ gesehen, und 127 = 128−1 = 2⁸ − 1 ist der Bit-Flip einer Zweierpotenz - und Zweierpotenzen sind
10………00000
in binär.10101000
Subnetzmasken: Was mir gehört, gehört mir + Was dir gehört, gehört dir
Subnetzmasken unterteilen dann jede 32-Bit-Internetadresse in eine Netzwerk-ID und eine Host-ID. Während Internetadressen eine beliebige Mischung aus Einsen und Nullen aufweisen können, beginnen Subnetzmasken nur mit Einsen und enden nur mit Nullen.
Das Verdunkeln der ersten 8 + 8 + 8 = 24 Bits und das Ausblenden der letzten 8 Bits ist eine Möglichkeit, die IP ■■ zu teilen ■ □ | □□□□ ■ □ ■ □ in zwei Teile:
Wenn der Subnetzbesitzer (z. B. OmniCorp ) mehr interne IPs haben möchte, könnte er mehr (z. B. 8 + 8 = 16 Bit) von der rechten Seite des Netzwerks kaufen, wie folgt:
Offensichtlich gibt es einen Kompromiss innerhalb des 32-Bit = 2³² = 4 294 967 296-Optionsadressraums: Wenn Sie mehr Netzwerk-IDs (linke Seite) kaufen, müssen Ihrem internen Netzwerk mehr Host-IDs (rechte Seite) zugewiesen werden.
Billigleute haben daher eine Subnetzmaske von
255.255.255.0 = ■■■■■■■■ | ■■■■■■■ | ■■■■■■■ | □□□□□□□□□.
Auch billigere Leute haben
255.255.255.128 = ■■■■■■■ | ■■■■■■■■ | ■■■■■■■■ | ■ □□□□□□□
oder 255.255.255.192 = ■■■■■■■ | ■■■■■■■■ | ■■■■■■■ | ■■ □□□□□□.
Laut Folklore war es eigentlich nicht Roger Miller, sondern ein niedriger Systemadministrator mit einer 255.255.255.254-Maske, der ursprünglich King of the Road schrieb und „Ich habe kein großes Subnetz“ durch „Ich habe keine Zigaretten“ ersetzte ”.
(Warum sind die Masken der Geringfügigen mit so hohen Zahlen gefüllt? Denn wie Millers Erzähler zählen Subnetzmasken alle Dinge, die Sie nicht haben.)
Was bedeutet der abschließende Schrägstrich nach einer IP? (z. B. 194.60.38.10/24)
Da Subnetzmasken (die "ihre" von "unsere" trennen) immer mit
1
"s " beginnen und wir es hassen, Zweierpotenzen zu addieren, noch mehr als wir es hassen, die Zweierpotenzen überhaupt zu berechnen, hat jemand erfunden CIDR (der Schrägstrich nach einer IP).194.60.38.10/24 bedeutet "die Submaske hat 24 Einsen, der Rest sind Nullen", also
■■■■■■■■ | ■■■■■■■■■■■■■■■■ | □□□□□□□ mit 8 + 8 + 8 Bits, die zu „ihnen“ gehören, und 8 Bits Zugehörigkeit zu "uns".
Umkehren der Hymne des Hobos oben,
/31
ist der Songwriter/24
ist bürgerlich (255.255.255.0
= ■■■■■■■■ | ■■■■■■■■ | ■■■■■■■ | □□□□□□□□□/16
ist reich ■■■■■■■■ | ■■■■■■■■ | □□□□□□□□ | □□□□□□□/8
ist superreich ■■■■■■■■ | □□□□□□□□ | □□□□□□□ | □□□□□□□□/1
oder/0
wäre die IANA oder so.† Verwenden Sie
bc -l; obase=10; 60
zum Beispiel.quelle
Während das oben Genannte korrekt ist (Entschuldigung, TL; DR), bereitet die Berechnung von Subnetzen vielen Netzwerkadministratoren immer noch große Sorgen. Tatsächlich gibt es eine sehr einfache Methode zur Subnetzberechnung. Sie können den größten Teil davon in Ihrem Kopf ausführen, und Sie müssen sich nur sehr wenig merken. Für die meisten Anwendungen ist es nicht einmal erforderlich, die Binärdarstellung zu verstehen, obwohl dies für ein umfassendes Verständnis der Teilnetze hilfreich ist. Hier werde ich nur IPv4 diskutieren; IPv6 liegt außerhalb des Rahmens dieser Diskussion.
Merk dir das:
Es sind drei wichtige Dinge zu beachten: Alle Subnetze basieren auf Zweierpotenzen, und es gibt zwei Schlüsselnummern: 256 und 32. Dazu später mehr.
Schauen wir uns zunächst eine Tabelle mit Potenzen von 2 an:
Die Berechnung der Potenzen von 2 ist einfach: Jede ganzzahlige Erhöhung der Potenz 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 steigt, ist 256 eine sehr wichtige Zahl und bildet die Grundlage für den Rest der Mathematik.
Größe des Subnetzes
Wir beginnen mit einer einfachen Frage: "Wie viele Adressen in einem Subnetz, wenn die Maske 255.255.255.248 ist?" Wir werden die ersten drei Oktette zunächst ignorieren und uns die letzten ansehen. So einfach ist das: Subtrahieren Sie 248 von 256. 256 minus 248 entspricht 8. Es sind 8 Adressen verfügbar (einschließlich der Netzwerk- und Broadcast-Adressen). Das Gegenteil funktioniert auch: "Wenn ich ein Subnetz mit 16 Adressen haben möchte, wie lautet die Subnetzmaske?" 256 minus 16 entspricht 240. Die Subnetzmaske lautet 255.255.255.248.
Wenn wir nun über 256 Adressen hinaus expandieren wollen (historisch gesehen eine "Klasse C"), wird es nur ein kleines bisschen komplizierter: Wenn unser letztes Oktett 0 ist und unser drittes Oktett beispielsweise 240 ist (255.255.240.0), dann Wir rechnen im dritten Oktett und stellen fest, dass es 16 Adressen geben würde. Also multiplizieren wir 16 mit 256 (die Anzahl der Adressen im letzten Oktett), um 4.096 zu erhalten. Wenn beide letzten beiden Oktette 0 sind (z. B. 255.240.0.0), dann nehmen wir das Subtraktionsergebnis vom zweiten Oktett (wir sagen, es ist wieder 16), multiplizieren aber 256 (Adressen im dritten Oktett), multiplizieren erneut mit 256 (Adressen im letzten Oktett), um 1.048.576 Adressen zu erhalten. So einfach ist das! (Okay, das Gegenteil ist etwas schwieriger. Wenn wir ein Subnetz mit 1.048.576 Adressen wollen, müssen wir diese Zahl ein paarmal durch 256 dividieren, um eine Zahl zu erhalten, die wir von 256 subtrahieren können.)
Netzwerkadresse
Nachdem wir nun wissen, wie die Subnetzmaske berechnet wird, wie ermitteln wir die Netzwerkadresse? Das ist ganz einfach: Es ist immer ein Vielfaches der Anzahl der Adressen in unserem Subnetz. Wenn wir also 16 Adressen in unserem Subnetz haben, sind die möglichen Netzwerkadressen 0, 16, 32, 48, 64 usw. bis 240. (Beachten Sie, dass 0 ein gültiges Vielfaches jeder Zahl ist, wie jede Zahl multipliziert mit 0 entspricht 0.)
Und natürlich ist die Broadcast-Adresse die letzte Adresse im Gültigkeitsbereich. Wenn wir also 16 Adressen in unserem Subnetz haben und eine Netzwerkadresse von 10.3.54.64 gewählt haben, lautet die Broadcast-Adresse (64 + 16-1 = 79) 10.3.54.79.
CIDR-Notation
Wie wäre es mit der CIDR-Notation? Wie lässt sich das in und aus einer IPv4-Subnetzmaske übersetzen?
Erinnern Sie sich an unsere Kräfte von zwei? Nun müssen wir uns neben 256: 32 noch eine weitere Schlüsselnummer merken. Denken Sie daran, die CIDR-Notation beschreibt die Anzahl der signifikanten Bits in der IPv4-Adresse, und es gibt 32 Bits in einer IPv4-Adresse, 8 für jedes Oktett. Wenn wir also eine Subnetzmaske von 255.255.255.240 haben, sind das 16 Adressen. Wenn wir uns unsere obige Tabelle "Potenzen von 2" ansehen, sehen wir, dass 16 zwei zur vierten Potenz (2 ^ 4) ist. Also subtrahieren wir diese Potenzzahl - 4 - von 32 und erhalten 28. Unsere CIDR-Notation für eine Subnetzmaske von 255.255.255.240, unsere CIDR-Notation ist / 28.
Und wenn wir eine CIDR von / 28 erhalten, subtrahieren wir diese (28) von 32, um 4 zu erhalten; Erhöhe 2 auf die (4.) Potenz (2 ^ 4), um 16 zu erhalten. dann subtrahiere (16) von 256, um 240 zu erhalten; oder 255.255.255.240.
quelle
Ich bin auch der Meinung, dass NATs zumindest erwähnt werden sollten, da sie in modernen Netzwerken unter anderem aufgrund der Erschöpfung der IPv4-Adressen anstelle von Subnetzen so häufig verwendet werden. (Als ich zum ersten Mal etwas über Subnetze erfuhr, war ich sehr verwirrt darüber, wie sich Subnetze auf die von WLAN-Routern erstellten Netzwerke auswirken.)
NAT (Network Address Translation) ist eine Technik, die (häufig) zum Erstellen privater Netzwerke verwendet wird, indem ein Adressraum (IP: Port) einem anderen zugeordnet wird. Dies wird hauptsächlich verwendet, um ein privates Netzwerk mit mehreren privaten IPs hinter einer öffentlichen Adresse zu erstellen, z. B. in WLAN-Routern, von Organisationen (z. B. einer Universität oder einem Unternehmen) oder manchmal von ISPs.
Die eigentliche Adressumsetzung erfolgt in NAT-fähigen Knoten, in der Regel Routern , transparent . Es kann viele Formen haben, Full Cone, Address Restricted, Port Restricted usw. oder eine Mischung davon, die vorschreibt, wie die Verbindungen über den Knoten initiiert werden können.
Ausführliche Informationen finden Sie auf Wikipedia. Sie können jedoch beispielsweise einen WLAN-Router mit 2 angeschlossenen Geräten in Betracht ziehen. Die öffentliche IP - Adresse des Routers
10.9.20.21/24
und die IP der Geräte (Private IPs) sindA: 192.168.0.2
,B: 192.168.0.3
und die des Routers istR: 192.168.0.1
. Also, wenn SieA
eine Verbindung zum Server herstellenS: 10.9.24.5/24
möchten (der sich tatsächlich in einem anderen Subnetz befindet, muss der Router hier installiert sein):R
mit der Quell-IP192.168.0.2
, dem Quell- Port (z. B.)14567
und der Ziel-IP10.9.24.5
(obwohl der Port tatsächlich Teil des TCP-Headers ist) an (das wäre das Standard-Gateway ).14567
dem Gerät zuA
und ändert die Quelle des IP-Pakets in10.9.20.21
(die öffentliche IP des Routers). Dies steht im Gegensatz zum oben beschriebenen Subnetting, bei dem die IP-Pakete tatsächlich nie geändert werden .S
Empfängt die Serie von TCP-Paketen (mit src IP:,10.9.20.21
src Port :)14567
und sendet Antwortpakete mit diesen Werten in den Zielfeldern.R
prüft den Zielport14567
und leitet das Paket weiter anA
.A
empfängt das Antwortpaket.Wenn in der obigen Situation
B
versucht wird, eine Verbindung auf demselben Quellport (14567
) zu öffnen , wird sieR
vor dem Senden an einen anderen Port zugeordnet (und der Port im ausgehenden Paket wird geändert)S
. Das heißt, es würde auch eine Port-Übersetzung statt nur IP geben.Zwei Dinge, die hier zu beachten sind:
quelle