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.
64 | 32 | 16 | 8 | 4 | 2 | 1 |
Übertragen Sie die Bits von der Binärzahl unter den Slots wie folgt:
64 | 32 | 16 | 8 | 4 | 2 | 1 |
1 1 0 1 0 1 1
Fügen Sie nun einige Symbole hinzu und berechnen Sie die Antwort auf das Problem:
64 | 32 | 16 | 8 | 4 | 2 | 1 |
x 1 x 1 x 0 x 1 x 0 x 1 x 1
--- --- --- --- --- --- ---
+ + + + + + =
Nach all den Berechnungen sollten Sie sich Folgendes einfallen lassen:
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 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:
128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
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:
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 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):
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 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:
10. 13. 216. 41
00001010.00001101.11011000.00101001 - IP address
11111111.11111111.11000000.00000000 - subnet mask
00001010.00001101.11000000.00000000 - Portion of IP address covered by 1's in subnet mask, remaining bits set to 0
00000000.00000000.00011000.00101001 - Portion of IP address covered by 0's in subnet mask, remaining bits set to 0
Router verwenden die Subnetzmaske, um die durch Einsen in der IP-Adresse abgedeckten Bits "auszublenden" (wobei die nicht "ausgeblendeten" Bits durch Nullen ersetzt werden), um die Netzwerk-ID zu extrahieren:
10. 13. 192. 0
00001010.00001101.11000000.00000000 - Network ID
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:
0. 0. 24. 41
00000000.00000000.00011000.00101001 - Portion of IP address covered by 0's in subnet mask, remaining bits set to 0
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:
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 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:
- Ethernet0 - 192.168.20.1, Subnetzmaske / 24
- Ethernet1 - 192.168.10.1, Subnetzmaske / 24
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:
- Netzwerk-ID: 192.168.20.0 (11000000.10101000.00010100.00000000) - 24-Bit-Subnetzmaske - Schnittstelle Ethernet0
- Netzwerk-ID: 192.168.10.0 (11000000.10101000.00001010.00000000) - 24-Bit-Subnetzmaske - Schnittstelle Ethernet1
Für unser 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.
- Ziel des eingehenden Pakets: 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 ü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:
- Netzwerk-ID: 192.168.20.0 (11000000.10101000.00010100.00000000) - Subnetzmaske / 24 - Schnittstelle RouterA-Ethernet0
- Netzwerk-ID: 192.168.10.0 (11000000.10101000.00001010.00000000) - Subnetzmaske / 24 - Schnittstelle RouterA-Ethernet1
Angenommen, es gibt einen anderen Router, "Router B", dessen 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:
- Netzwerk-ID: 192.168.10.0 (11000000.10101000.00001010.00000000) - Subnetzmaske / 24 - Schnittstelle RouterB-Ethernet0
- Netzwerk-ID: 192.168.30.0 (11000000.10101000.00011110.00000000) - Subnetzmaske / 24 - Schnittstelle RouterB-Ethernet1
In der hübschen ASCII-Grafik 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 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:
- 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 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:
- 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)
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!
Interface Interface Interface
Ethernet1 Ethernet1 Ethernet1
192.168.20.254/24 192.168.10.1/24 192.168.30.254/24
__________ V __________ V __________ V
(( heap o )) | | V | | V | | V
(( internet )) ----| ROUTER C |------- /// -------| ROUTER A |------- /// -------| ROUTER B |----
(( w00t! )) ^ |__________| ^ |__________| ^ |__________|
^ ^ ^
Interface Interface Interface
Ethernet0 Ethernet0 Ethernet0
10.35.1.1/30 192.168.20.1/24 192.168.10.254/24
Es wäre schön, wenn Router A Pakete, die keiner lokalen Schnittstelle entsprechen, an Router C weiterleiten könnte, 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:
- Netzwerk-ID: 0.0.0.0 (00000000.00000000.00000000000000) - Subnetzmaske / 0 - Zielrouter: 192.168.20.254
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.)