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