Wie berechnen Sie die Präfix-, Netzwerk-, Subnetz- und Hostnummern?


97

Beispiel:

IP: 128.42.5.4

In binärer Form: 10000000 00101010 00000101 00000100

Subnetz: 255.255.248.0

Wie können Sie die Präfix-, Netzwerk-, Subnetz- und Hostnummern ermitteln?

Antworten:


164

Berechnung der Netzmaskenlänge (auch Präfix genannt):

Konvertieren Sie die Dezimalpunktdarstellung der Netzmaske in eine Binärdarstellung. Zählen Sie dann die Anzahl der zusammenhängenden 1-Bits, beginnend mit dem höchstwertigen Bit im ersten Oktett (dh der linken Seite der Binärzahl).

255.255.248.0   in binary: 11111111 11111111 11111000 00000000
                           -----------------------------------
                           I counted twenty-one 1s             -------> /21

Das Präfix von 128.42.5.4 mit einer 255.255.248.0-Netzmaske ist / 21.

Berechnung der Netzwerkadresse:

Die Netzwerkadresse ist das logische UND der jeweiligen Bits in der binären Darstellung der IP-Adresse und der Netzwerkmaske. Richten Sie die Bits in beiden Adressen aus und führen Sie ein logisches UND für jedes Paar der jeweiligen Bits aus. Konvertieren Sie dann die einzelnen Oktette des Ergebnisses zurück in Dezimalzahlen.

Logische UND Wahrheitstabelle:

Logisches UND

128.42.5.4      in binary: 10000000 00101010 00000101 00000100
255.255.248.0   in binary: 11111111 11111111 11111000 00000000
                           ----------------------------------- [Logical AND]
                           10000000 00101010 00000000 00000000 ------> 128.42.0.0

Wie Sie sehen können, lautet die Netzwerkadresse von 128.42.5.4/21 128.42.0.0

Berechnung der Broadcast-Adresse:

Die Broadcast-Adresse konvertiert alle Host-Bits in 1s ...

Denken Sie daran, dass unsere IP-Adresse in Dezimalform lautet:

128.42.5.4      in binary: 10000000 00101010 00000101 00000100

Die Netzwerkmaske lautet:

255.255.248.0   in binary: 11111111 11111111 11111000 00000000

Dies bedeutet, dass unsere Host-Bits die letzten 11 Bits der IP-Adresse sind, da wir die Host-Maske durch Invertieren der Netzwerkmaske finden:

Host bit mask            : 00000000 00000000 00000hhh hhhhhhhh

Um die Broadcast-Adresse zu berechnen, erzwingen wir, dass alle Host-Bits 1 sind:

128.42.5.4      in binary: 10000000 00101010 00000101 00000100
Host bit mask            : 00000000 00000000 00000hhh hhhhhhhh
                           ----------------------------------- [Force host bits]
                           10000000 00101010 00000111 11111111 ----> 128.42.7.255

Subnetze berechnen:

Sie haben nicht genügend Informationen angegeben, um die Subnetze für dieses Netzwerk zu berechnen. Als allgemeine Regel erstellen Sie Subnetze, indem Sie einige der Host-Bits als Netzwerk-Bits für jedes Subnetz neu zuweisen. Oft gibt es keinen richtigen Weg, um einen Block zu subnetzieren. Abhängig von Ihren Einschränkungen kann es mehrere gültige Wege geben, um einen Block von Adressen zu subnetzieren.

Nehmen wir an, wir teilen 128.42.0.0/21 in 4 Subnetze auf, die jeweils mindestens 100 Hosts enthalten müssen ...

Subnetting

In diesem Beispiel wissen wir, dass Sie mindestens ein Präfix / 25 benötigen, um 100 Hosts zu enthalten. Ich habe a / 24 gewählt, weil es auf eine Oktettgrenze fällt. Beachten Sie, dass die Netzwerkadresse für jedes Subnetz Host-Bits aus dem übergeordneten Netzwerkblock entlehnt.

Ermitteln der erforderlichen Subnetzmaskenlänge oder Netzmaske:

Woher wusste ich, dass ich mindestens eine / 25-Maskenlänge für 100 Hosts benötige? Berechnen Sie das Präfix, indem Sie die Anzahl der Host-Bits angeben, die 100 Hosts enthalten sollen. Man braucht 7 Host-Bits, um 100 Hosts zu enthalten. Offiziell wird dies berechnet mit:

Hostbits = Log 2 (Anzahl der Hosts) = Log 2 (100) = 6.643

Da IPv4-Adressen 32 Bit breit sind und wir die Host-Bits (dh niedrigstwertige Bits) verwenden, subtrahieren Sie einfach 7 von 32, um das minimale Subnetz-Präfix für jedes Subnetz zu berechnen ... 32 - 7 = 25.

Der träge Weg, 128.42.0.0/21 in vier gleiche Subnetze zu unterteilen:

Da wir nur vier Subnetze aus dem gesamten 128.42.0.0/21-Block benötigen, könnten wir / 23-Subnetze verwenden. Ich habe / 23 gewählt, weil wir 4 Subnetze benötigen ... dh zwei zusätzliche Bits zur Netzmaske hinzugefügt.

Dies ist eine ebenso gültige Antwort auf die Einschränkung, die / 23 Subnetze von 128.42.0.0/21 verwendet ...

Subnetz, 2. Option

Berechnung der Hostnummer:

Dies ist , was haben wir bereits oben gemacht ... nur den Host - Maske Wiederverwendung von der Arbeit , die wir haben , wenn wir die Broadcast - Adresse der 128.42.5.4/21 berechnet ... Dieses Mal , wenn ich 1s statt verwenden werden h, denn wir brauchen erneut ein logisches UND für die Netzwerkadresse ausführen.

128.42.5.4      in binary: 10000000 00101010 00000101 00000100
Host bit mask            : 00000000 00000000 00000111 11111111
                           ----------------------------------- [Logical AND]
                           00000000 00000000 00000101 00000100 -----> 0.0.5.4

Berechnung der maximal möglichen Anzahl von Hosts in einem Subnetz:

Sehen Sie sich die Anzahl der Binärbits in der obigen Hostnummer an, um die maximale Anzahl der Hosts zu ermitteln. Am einfachsten ist es, die Netzmaskenlänge von 32 (Anzahl der Bits in einer IPv4-Adresse) zu subtrahieren. Dies gibt Ihnen die Anzahl der Host-Bits in der Adresse. An diesem Punkt...

Maximale Anzahl von Hosts = 2 ** (32 - netmask_length) - 2

Der Grund, warum wir oben 2 subtrahieren, liegt darin, dass die Host-Nummern "Alle Einsen" und "Alle Nullen" reserviert sind. Die Hostnummer mit Nullen ist die Netzwerknummer. Die All-Ones-Host-Nummer ist die Broadcast-Adresse.

Unter Verwendung des obigen Beispielsubnetzes 128.42.0.0/21 beträgt die Anzahl der Hosts ...

Maximale Anzahl von Hosts = 2 ** (32 - 21) - 2 = 2048 - 2 = 2046

Ermitteln der maximalen Netzmaske (minimale Hostmaske), die zwei IP-Adressen enthält:

Angenommen, jemand gibt uns zwei IP-Adressen und erwartet, dass wir die längste Netzmaske finden, die beide enthält. Was wäre zum Beispiel, wenn wir Folgendes hätten:

  • 128.42.5.17
  • 128.42.5.67

Am einfachsten ist es, beide in Binärdateien umzuwandeln und auf der linken Seite der Adresse nach der längsten Zeichenfolge von Netzwerkbits zu suchen.

128.42.5.17     in binary: 10000000 00101010 00000101 00010001
128.42.5.67     in binary: 10000000 00101010 00000101 01000011
                           ^                           ^     ^
                           |                           |     |
                           +--------- Network ---------+Host-+
                             (All bits are the same)    Bits

In diesem Fall wäre die maximale Netzmaske (minimale Hostmaske) / 25

HINWEIS: Wenn Sie versuchen, von der rechten Seite aus zu beginnen, lassen Sie sich nicht täuschen, nur weil Sie eine übereinstimmende Spalte mit Bits finden. es könnte nicht passende Bits jenseits dieser übereinstimmenden Bits geben. Ehrlich gesagt ist es am sichersten, von der linken Seite zu beginnen.


15

Die Antwort oben trifft den Nagel auf den Kopf perfekt. Als ich anfing, brauchte ich ein paar verschiedene Beispiele aus verschiedenen Quellen, um wirklich Erfolg zu haben. Wenn Sie sich für andere Beispiele interessieren, habe ich daher einige Blog-Beiträge zu diesem Thema verfasst: http://www.oznetnerd.com/category/subnetting/

Administratoren, wenn dieser Beitrag als Spam eingestuft wird, können Sie ihn gerne löschen.

Bearbeiten: Gemäß dem Vorschlag von YLearn werde ich versuchen, die relevanten Teile aus Teil 1 meiner Serie zu übernehmen, ohne den gesamten Eintrag hier einzufügen.

Nehmen wir als Beispiel 195.70.16.159/30.

Da es ein / 30 ist, wissen wir, dass der Host-Teil im vierten Oktett sein wird. Lassen Sie uns das in Binär umwandeln:

128 64 32 16  8  4 2 1
SN  SN SN SN SN SN H H
 1   0  0  1  1  1 1 1

Um nun die Netzwerkadresse herauszufinden, müssen wir nur die SN-Bits, unter denen sich eine 1 befindet, addieren. (128 + 16 + 8 + 4 = 156).

Wenn Sie diese 156 zu den ersten drei Oktetten der Adresse hinzufügen, verbleibt die Netzwerkadresse 195.70.16.156.

Da wir nun wissen, dass die erste verwendbare Adresse immer die Netzwerkadresse plus eine ist, müssen wir nur die folgende Berechnung durchführen: (156 + 1 = 157).

Dies gibt uns eine erste verwendbare Adresse von 195.70.16.157.

Lassen Sie uns nun die letzte verwendbare Adresse für einen Moment überspringen und die Broadcast-Adresse ermitteln. Um herauszufinden, was es ist, müssen wir nur alle H-Bits addieren (unabhängig davon, ob es sich um eine 1 oder eine 0 handelt) und diese Zahl dann zur Netzwerkadresse hinzufügen. (2 + 1 + 156 = 159).

Dies gibt uns eine Broadcast-Adresse von 195.70.16.159.

Und zum Schluss erarbeiten wir die letzte verwendbare Adresse. Dieser Vorgang ähnelt dem Ermitteln der ersten verwendbaren Adresse. Anstatt jedoch eine zur Netzwerkadresse hinzuzufügen, subtrahieren wir tatsächlich eine von der Broadcast-Adresse. (159-1 = 158).

Dies gibt uns eine letzte verwendbare Adresse von 195.70.16.158.

Und da haben wir es! Unsere temaplte ist komplett. Zum einfachen Nachschlagen hier noch einmal:

  • Netzwerkadresse: 195.70.16.156
  • Erste verwendbare Adresse: 195.70.16.157
  • Letzte verwendbare Adresse: 195.70.16.158
  • Broadcast-Adresse: 195.70.16.159

Als Abkürzung können Sie auch diese Formel verwenden. Es funktioniert in Subnetzen jeder Größe:

  • Erste verwendbare Adresse = Netzwerkadresse + 1
  • Broadcast-Adresse = Nächste Netzwerkadresse - 1
  • Letzte verwendbare Adresse = Broadcast-Adresse - 1

4
Winzige (fast unbedeutende) Einschränkung: Die Formel Last Usable Address (Letzte verwendbare Adresse) unten funktioniert für alle Subnetze mit Ausnahme von / 31 ... siehe RFC 3021 . Es ist eine kleine, aber relevante Ausnahme, wenn jemand versucht hat, Ihren Algorithmus in Code zu verwenden.
Mike Pennington

11

Ich möchte Mike Penningtons exzellenter Antwort , für die ich unermüdlich geworben habe, nichts wegnehmen , aber ich sehe immer wieder Fragen, die von seiner Antwort nicht direkt angesprochen werden, und ich habe etwas geschaffen, das ursprünglich auf Mikes Antwort basierte, aber ich habe Weitere Informationen zu Fragen, die im Laufe der Zeit aufgetaucht sind. Leider ist es zu groß und ich musste es in zwei Antworten aufteilen.


Teil 1 von 2


IPv4 Math

Bei einer gegebenen IPv4-Adresse und der IPv4-Netzwerkmaske (die Netzwerkmaske kann auch von einer Netzwerkmaskenlänge oder einer Hostmaske abgeleitet werden) können Sie viele Informationen zu einem IPv4-Netzwerk ermitteln: Netzwerkadresse, Netzwerk-Broadcast-Adresse, Gesamtzahl der Hostadressen, Gesamtzahl der verwendbaren Adressen Hostadressen, erste verwendbare Hostadresse und letzte verwendbare Hostadresse.

Ich kann gar nicht genug betonen, dass Sie IPv4-Mathematik in Binärform ausführen müssen. Ich denke, jeder Netzwerktechniker (oder angehende Netzwerktechniker) hat versucht, einen Weg zu finden, wie Sie es sicher tun werden *. Das Problem ist, dass 10 (Dezimalzahl) keine Potenz von 2 (Binärzahl) ist. Daher werden Dezimalzahl und Binärzahl nicht auf natürliche Weise ineinander konvertiert, wie Hexadezimalzahl (Basis 16) auf natürliche Weise in Binärzahl und von Binärzahl konvertiert wird, da 16 eine Potenz von 2 ist .

Es scheint, dass die Verwendung der Punkt-Dezimal-Notation für IPv4 ein früher Fehler war, der jetzt nicht korrigiert werden kann. IPv6 hat jedoch von Anfang an die Verwendung von Hexadezimal übernommen, und es ist einfach, zwischen Hexadezimal und Binär umzurechnen.

Wenn Sie keinen IP-Taschenrechner haben (wahrscheinlich nicht in Prüfungen oder Zertifizierungstests für Netzwerkunterricht zugelassen), ist es hilfreich, ein Diagramm der Werte der Bits in einem Oktett zu erstellen. Da es sich um eine Binärzahl handelt, entspricht jeder Bitwert dem 2-fachen des gleichen Ziffernwerts in der nächstniedrigeren Ziffer. Jede Ziffer ist die Zahlenbasis multipliziert mit dem gleichen Ziffernwert in der nächstniedrigeren Ziffer. Dies gilt auch für jede andere Zahlenbasis, einschließlich Dezimalzahl (Basis 10), bei der jeder Ziffernwert das Zehnfache des Werts desselben Ziffernwerts an der nächstniedrigeren Ziffernposition beträgt. Für binäre Ziffern (Bits):

---------------------------------------------------------
| Bit # |   7 |   6 |   5 |   4 |   3 |   2 |   1 |   0 |
---------------------------------------------------------
| Value | 128 |  64 |  32 |  16 |   8 |   4 |   2 |   1 |
---------------------------------------------------------

Bei Dezimalzahlen handelt es sich um Potenzen von 10, bei Binärzahlen handelt es sich um Potenzen von 2. Beachten Sie, dass für jede Bitnummer in der obigen Tabelle der entsprechende Wert 2 zur Potenz der Bitnummer ist.

For our example IPv4 dotted-decimal address of 198.51.100.223:
1st octet: 198 = 128 + 64 +  0 +  0 + 0 + 4 + 2 + 0 = 11000110
2nd octet:  51 =   0 +  0 + 32 + 16 + 0 + 0 + 2 + 1 = 00110011
3rd octet: 100 =   0 + 64 + 32 +  0 + 0 + 4 + 0 + 0 = 01100100
4th octet: 223 = 128 + 64 +  0 + 16 + 8 + 4 + 2 + 1 = 11011111

For our example IPv4 binary address of 11000110001100110110010011011111:
1st octet: 11000110 = 128 + 64 +  0 +  0 + 0 + 4 + 2 + 0 = 198
2nd octet: 00110011 =   0 +  0 + 32 + 16 + 0 + 0 + 2 + 1 =  51
3rd octet: 01100100 =   0 + 64 + 32 + 16 + 8 + 4 + 2 + 1 = 100
4th octet: 11011111 = 128 + 64 +  0 + 16 + 8 + 4 + 2 + 1 = 223

Sie müssen sich auch Ihre Wahrheitstabellen aus der Schule merken (in binärer Mathematik ist 0 falsch und 1 ist wahr):

-----------------------------------------
| False AND False = False | 0 AND 0 = 0 |
-----------------------------------------
| False AND True  = False | 0 AND 1 = 0 |
-----------------------------------------
| True  AND False = False | 1 AND 0 = 0 |
-----------------------------------------
| True  AND True  = True  | 1 AND 1 = 1 |
-----------------------------------------

-----------------------------------------
| False OR False = False  | 0 OR 0 = 0  |
-----------------------------------------
| False OR True  = True   | 0 OR 1 = 1  |
-----------------------------------------
| True  OR False = True   | 1 OR 0 = 1  |
-----------------------------------------
| True  OR True  = True   | 1 OR 1 = 1  |
-----------------------------------------

* Wenn Sie jahrelang IPv4-Mathematik ausführen, können Sie möglicherweise Binär- / Dezimalumwandlungen in Ihrem Kopf durchführen und scheinen dann in der Lage zu sein, IPv4-Mathematik in Dezimalform auszuführen. Obwohl ich dies in meinem Kopf tun kann, überprüfe ich es immer mit einem IP-Rechner oder konvertiere es in Binär, führe die Berechnung durch und konvertiere es zurück in Dezimalzahl, bevor ich eine Änderung an einem Produktionsnetzwerk vornehme.


IPv4-Adresse

Die IPv4-Dezimalpunktnotation 198.51.100.223dient beispielsweise lediglich dazu, dem Menschen das Lesen einer IPv4-Adresse zu erleichtern. Die vier separaten Abschnitte, Oktette genannt, haben für IPv4 eigentlich keine Bedeutung. Machen Sie nicht den Fehler, dass die Oktette eine besondere Bedeutung haben. Eine IPv4-Adresse ist in Wirklichkeit eine 32-Bit-Binärzahl, und so sehen und verwenden Netzwerkgeräte eine IPv4-Adresse.

Unser Beispiel IPv4 - Adresse 198.51.100.223ist tatsächlich 11000110001100110110010011011111zu einem Gerät im Netzwerk, so dass Sie , dass die Dezimalschreibweise Darstellung sehen können wirklich macht es einfacher für die Menschen. Jedes Oktett besteht aus acht Bits der 32-Bit-Adresse (daher der häufig verwendete Begriff „Oktett“), es gibt also vier Oktette ( 32 address bits / 8 bits per octet = 4 octets). Unsere Beispiel-32-Bit-Binäradresse wird in vier Oktette aufgeteilt, und jedes Binäroktett wird in eine Dezimalzahl * konvertiert:

Binary address: 11000110001100110110010011011111
                ---------------------------------------------
Binary octets:  | 11000110 | 00110011 | 01100100 | 11011111 |
Decimal octets: |      198 |       51 |      100 |      223 |
                ---------------------------------------------
Dotted-decimal: 198.51.100.223

Da jedes Oktett acht Bits lang ist, weist jedes Oktett einen Wert zwischen 0und auf 255(alle Werte, die größer als 255ungültig sind). Der Grund ist, dass 2^8 = 256: 2(die binäre 8Zahlenbasis) gleich der Potenz von (acht Bits pro Oktett) ist 256, die Anzahl der verschiedenen Werte, die durch ein Acht-Bit-Oktett ausgedrückt werden können. Denken Sie daran , dass der erste Wert ist 0, so dass der 256wird th Wert ein kleiner sein , dass die Gesamtzahl der Werte , die (ausgedrückt werden kann 256 – 1 = 255).

Um IPv4-Mathematik korrekt auszuführen, müssen Sie dies in Binärform tun. Andernfalls werden Sie Fehler machen, die Probleme und Frustrationen verursachen. Das bedeutet, dass Sie die gepunktete Dezimalschreibweise in eine Binärschreibweise konvertieren müssen, bevor Sie versuchen, sie zu bearbeiten:

Dotted-decimal: 198.51.100.223
                ---------------------------------------------
Decimal octets: |      198 |       51 |      100 |      223 |
Binary octets:  | 11000110 | 00110011 | 01100100 | 11011111 |
                ---------------------------------------------
Binary address: 11000110001100110110010011011111

* Führende Nullen in einer IPv4-Adresse mit gepunkteten Dezimalstellen werden von einigen Anwendungen und Programmiersprachen möglicherweise als Oktal (Basis 8) und nicht als Dezimalstelle (Basis 10) interpretiert, was zu Fehlern führt. Führende Nullen sollten für die IPv4-Darstellung mit gepunkteten Dezimalstellen vermieden werden. Führende Nullen sind jedoch für die binären IPv4-Adressoktette erforderlich, da sie Bitpositionen in der vollständigen Adresse darstellen und das Weglassen einer Bitposition die Adresse verkürzt und den Binärwert ändert.


IPv4-Netzwerkmaske

Eine IPv4-Netzwerkmaske wird verwendet, um eine IPv4-Adresse in zwei Teile zu unterteilen: den Netzwerkteil und den Hostteil. Die Unterteilung kann eine beliebige Bitnummer sein, sodass sie möglicherweise in ein Oktett und nicht an eine Oktettgrenze fällt, wie dies viele Menschen fälschlicherweise immer annehmen. Eine IPv4-Netzwerkmaske hat die gleiche Größe wie eine IPv4-Adresse (32 Bit) und wird in Punkt-Dezimal-Schreibweise ausgedrückt, wie Sie eine IPv4-Adresse in Punkt-Dezimal-Schreibweise ausdrücken würden (vier Acht-Bit-Oktette, getrennt durch ein Zeitraum). Zum Beispiel 255.255.248.0.

Eine IPv4-Netzwerkmaske besteht aus einer Reihe von aufeinanderfolgenden 1Bits (die den Netzwerkteil einer Adresse darstellen), gefolgt von einer Reihe von 0Bits (die den Hostteil der Adresse darstellen). Die Gesamtzahl der 1Bits und die Gesamtzahl der 0Bits summieren sich zu 32der Anzahl der Bits in einer IPv4-Adresse oder einer Netzwerkmaske. Für unsere Beispielnetzmaske:

Dotted-decimal: 255.255.248.0
                ------------------------------------------------
Decimal octets: |      255 |      255 |         248 |        0 |
Binary octets:  | 11111111 | 11111111 | 11111 | 000 | 00000000 |
                ------------------------------------------------
                | 21 Network bits             | 11 Host bits   |
                ------------------------------------------------

Wie Sie sehen, liegt die Aufteilung zwischen dem Netzwerk- und dem Host-Teil der IPv4-Adresse unter Verwendung dieser speziellen Maske innerhalb eines Oktetts und nicht an einer Oktettgrenze.

Eine IPv4-Netzwerkmaske wird häufig durch die Anzahl aufeinanderfolgender 1Bits in der Maske dargestellt. Dies wird verschiedentlich als Netzwerkmaskenlänge oder Präfixlänge bezeichnet und als /gefolgt von der Anzahl aufeinanderfolgender 1Bits in der Netzwerkmaske dargestellt. In unserem Beispiel wird die Anzahl der aufeinanderfolgenden 1Bits gezählt 21, die dargestellt werden können als /21.

Bei gegebener Maskenlänge können Sie die Punkt-Dezimal-Darstellung der Maske berechnen. Schreiben Sie einfach die Anzahl der 1Bits für die Maskenlänge auf und addieren Sie 0am Ende genug Bits zu den Gesamtbits 32. Konvertieren Sie die resultierende Binärzahl in die Punkt-Dezimal-Darstellung:

Mask length:    /21
                ------------------------------------------------
                | 21 Network bits             | 11 Host bits   |
                ------------------------------------------------
Binary octets:  | 11111111 | 11111111 | 11111 | 000 | 00000000 |
Decimal octets: |      255 |      255 |         248 |        0 |
                ------------------------------------------------
Dotted-decimal: 255.255.248.0

Das Beispiel kann traditionell als 198.51.100.223, mit einer Netzwerkmaske von 255.255.248.0oder als das modernere CIDR (Classless Inter-Domain Routing) dargestellt werden 198.51.100.223/21.


IPv4-Netzwerkadresse

Eine IPv4-Netzwerkadresse ist eine IPv4-Adresse, bei der alle Host-Bits auf gesetzt sind 0. Die IPv4-Netzwerkadresse kann bitweise ANDaus den jeweiligen Bits in der binären Darstellung der IPv4-Adresse und der IPv4-Netzwerkmaske berechnet werden . Richten Sie die Bits in beiden Adressen aus und führen Sie ANDfür jedes Bitpaar eine bitweise Verarbeitung durch. Konvertieren Sie dann die einzelnen Oktette des Ergebnisses zurück in Dezimalzahlen.

Für unser Beispiel IPv4-Adresse 198.51.100.223und Netzwerkmaske 255.255.248.0:

Decimal address:        198.51.100.223/21
Binary address octets:  11000110 00110011 01100100 11011111
Binary mask octets:     11111111 11111111 11111000 00000000 AND
                        -----------------------------------
Binary network octets:  11000110 00110011 01100000 00000000
Decimal network octets:      198       51       96        0
Dotted-decimal network: 198.51.96.0

Wie Sie sehen können, 198.51.100.223/21lautet die Netzwerkadresse von 198.51.96.0. Beachten Sie, dass Sie sich nicht darauf verlassen können, dass Ihnen die Oktette mitteilen, welcher Teil der Adresse das Netzwerk ist und welcher Teil der Adresse für die Hosts bestimmt ist.

Mit dieser Methode können Sie ermitteln, ob sich zwei Adressen in demselben oder in verschiedenen Netzwerken befinden *. Wenn Sie beispielsweise sehen möchten, ob sich Ihre 198.51.100.223/21Adresse in demselben IPv4-Netzwerk befindet, dem ein Host die 198.51.102.57Adresse zugewiesen hat , ermitteln Sie Ihre IPv4-Netzwerkadresse (wie oben). Bestimmen Sie als Nächstes die IPv4-Netzwerkadresse des betreffenden Hosts mithilfe Ihrer IPv4-Netzwerkmaske (Hosts im selben Netzwerk verwenden dieselbe Netzwerkmaske, und Sie haben möglicherweise nicht die Maske, sondern nur die Adresse des Zielhosts):

Decimal address:        198.51.102.57/21
Binary address octets:  11000110 00110011 01100110 00111001
Binary mask octets:     11111111 11111111 11111000 00000000 AND
                        -----------------------------------
Binary network octets:  11000110 00110011 01100000 00000000
Decimal network octets:      198       51       96        0
Dotted-decimal network: 198.51.96.0

Vergleichen Sie die resultierende IPv4-Netzwerkadresse mit der ursprünglichen IPv4-Netzwerkadresse, und beachten Sie, dass die Netzwerkadressen identisch sind, sodass sich die Hostadressen im selben Netzwerk befinden.

Nun wollen wir sehen, ob Sie sich im selben Netzwerk wie die 74.125.69.100Google-Adresse befinden:

Decimal address:        74.125.69.100/21
Binary address octets:  01001010 01111101 01000101 01100100
Binary mask octets:     11111111 11111111 11111000 00000000 AND
                        -----------------------------------
Binary network octets:  01001010 01111101 01000000 00000000
Decimal network octets:       74      125       64        0
Dotted-decimal network: 74.125.64.0

Vergleichen Sie die resultierende IPv4-Netzwerkadresse mit der ursprünglichen IPv4-Netzwerkadresse, und beachten Sie, dass sich die Netzwerkadressen unterscheiden, sodass sich die Hostadressen in verschiedenen Netzwerken befinden.


* Dies ist die Methode, mit der ein Quellhost ermittelt, ob es sich um einen Zielhost im selben Netzwerk wie der Quellhost handelt.


IPv4-Hostmaske

Ein nützlicher, oft übersehener Wert, der bei der IPv4-Adressierung hilfreich ist, ist die IPv4-Hostmaske. Eine IPv4-Hostmaske ist einfach die Umkehrung der IPv4-Netzwerkmaske. Sie können eine binäre Hostmaske aus einer binären Netzwerkmaske oder eine binäre Netzwerkmaske aus einer binären Hostmaske erstellen, indem Sie einfach das 1s und 0s der Startmaske invertieren :

Dotted-decimal network mask: 255.255.248.0
Decimal network mask octets:      255      255      248        0
Binary network mask octets:  11111111 11111111 11111000 00000000 invert
                             -----------------------------------
Binary host mask octets:     00000000 00000000 00000111 11111111
Decimal host mask octets:           0        0        7      255
Dotted-decimal host mask:    0.0.7.255

Es ist möglich, mathematisch eine Hostmaske aus der Netzwerkmaske oder die Netzwerkmaske aus der Hostmaske zu erstellen, indem die Startmaske von der längsten Maske ( /32oder der Maske mit allen Einsen) subtrahiert wird .

Das geht in binärer Form:

Binary all-ones mask octets: 11111111 11111111 11111111 11111111
Binary network mask octets:  11111111 11111111 11111000 00000000 -
                             -----------------------------------
Binary host mask octets:     00000000 00000000 00000111 11111111
Decimal host mask octets:           0        0        7      255
Dotted-decimal host mask:    0.0.7.255

Dies kann auch dezimal erfolgen (ein All-Ones-Oktett ist das 255), aber stellen Sie sicher, dass Sie es in binär konvertieren, bevor Sie tatsächlich versuchen, es für die Adressmanipulation zu verwenden:

Decimal all-ones mask octets: 255 255 255 255
Decimal network mask octets:  255 255 248   0 -
                              ---------------
Decimal host mask octets:       0   0   7 255
Dotted-decimal host mask:     0.0.7.255

IPv4-Netzwerk-Broadcast-Adresse

Eine IPv4-Netzwerk-Broadcast-Adresse ist die IPv4-Netzwerkadresse, bei der alle Host-Bits auf gesetzt sind 1. Es gibt verschiedene Möglichkeiten, die IPv4-Netzwerk-Broadcast-Adresse zu berechnen.

In unserem Beispiel IPv4-Adresse 198.51.100.223und Netzwerkmaske 255.255.248.0.

Sie können eine bitweise OREingabe mit der IPv4-Adresse oder der Netzwerkadresse mit der Hostmaske durchführen:

Decimal address octets:        198       51      100      223
Binary address octets:    11000110 00110011 01100100 11011111
Binary host mask octets:  00000000 00000000 00000111 11111111 OR
                          -----------------------------------
Binary broadcast octets:  11000110 00110011 01100111 11111111
Decimal broadcast octets:      198       51      103      255
Dotted-decimal broadcast: 198.51.103.255

Sie können einfach den Wert der IPv4-Hostmaske zum Wert der IPv4-Netzwerkadresse hinzufügen:

Binary network octets:    11000110 00110011 01100000 00000000
Binary host mask octets:  00000000 00000000 00000111 11111111 +
                          -----------------------------------
Binary broadcast octets:  11000110 00110011 01100111 11111111
Decimal broadcast octets:      198       51      103      255
Dotted-decimal broadcast: 198.51.103.255

Dies können Sie auch dezimal tun:

Decimal network octets:   198  51  96   0
Decimal host mask octets:   0   0   7 255 +
                          ---------------
Decimal broadcast octets: 198  51 103 255
Dotted-decimal broadcast: 198.51.103.255

Gesamtzahl der IPv4-Netzwerkhostadressen

Die Gesamtzahl der IPv4-Hostadressen für ein Netzwerk ergibt 2sich aus der Anzahl der Hostbits 32abzüglich der Anzahl der Netzwerkbits. Für unser Beispiel eines /21(Netzwerkmasken- 255.255.248.0) Netzwerks gibt es 11Host-Bits ( 32 address bits – 21 network bits = 11 host bits). Das heißt, 2048in einem /21IPv4-Netzwerk gibt es insgesamt Hostadressen ( 2^11 = 2048).


Insgesamt verwendbare IPv4-Netzwerkhostadressen

Mit Ausnahme von /31Netzwerken (Netzwerkmaske 255.255.255.254) und /32(Netzwerkmaske 255.255.255.255) entspricht die Anzahl der verwendbaren Hostadressen in einem IPv4-Netzwerk der Gesamtanzahl der Netzwerkhostadressen abzüglich 2(da die IPv4-Netzwerk- und Broadcastadressen für Hostadressen im Netzwerk nicht verwendbar sind) müssen sie von der Anzahl der verwendbaren Hostadressen subtrahieren). Für unser Beispiel eines /21( 255.255.248.0) Netzwerks gibt es 2046verwendbare Hostadressen ( 2^11 - 2 = 2046).


Erste verwendbare IPv4-Netzwerkhostadresse

Mit Ausnahme von /31Netzwerken (Netzwerkmaske 255.255.255.254) und /32(Netzwerkmaske 255.255.255.255) ist die erste verwendbare IPv4-Netzwerkhostadresse die IPv4-Netzwerkadresse plus 1(die IPv4-Netzwerkadresse kann nicht für eine Netzwerkhostadresse verwendet werden). In unserem Beispielnetzwerk von 198.51.96.0/21ist die erste verwendbare Netzwerkhostadresse 198.51.96.1( 198.51.96.0 + 1 = 198.51.96.1). Setzen Sie einfach das niederwertige Bit der binären IPv4-Netzwerkadresse auf 1:

Decimal network octets:      198       51       96        0
Binary network octets:  11000110 00110011 01100000 00000000
                        -----------------------------------
Binary address octets:  11000110 00110011 01100000 00000001
Decimal address octets:      198       51       96        1
Dotted-decimal address: 198.51.96.1

Letzte verwendbare IPv4-Netzwerkhostadresse

Mit Ausnahme von /31(Netzwerkmaske 255.255.255.254) und /32(Netzwerkmaske 255.255.255.255) Netzwerken ist die letzte verwendbare IPv4-Netzwerkhostadresse die IPv4-Netzwerk-Broadcast-Adresse minus 1(die IPv4-Netzwerk-Broadcast-Adresse ist für eine Netzwerkhostadresse nicht verwendbar). Für unser Beispielnetzwerk von 198.61.96.0/21ist die letzte verwendbare Netzwerkhostadresse 198.51.103.254( 198.51.103.255 - 1 = 198.51.103.254). Setzen Sie einfach das niederwertige Bit der binären IPv4-Netzwerk-Broadcast-Adresse auf 0:

Decimal broadcast octets:      198       51      103      255
Binary broadcast octets:  11000110 00110011 01100111 11111111
                          -----------------------------------
Binary address octets:    11000110 00110011 01100111 11111110
Decimal address octets:        198       51      103      254
Dotted-decimal address:   198.51.103.254

Zusammenführen der IPv4-Netzwerkadressierung

Für unsere IPv4-Beispielnetzwerkadresse 198.51.100.223und -maske 255.255.248.0(oder 198.51.100.223/21) können wir viele Netzwerkinformationen berechnen:

Host address:                       198.51.100.223
Network mask:                       255.255.248.0
Network mask length:                21
Host mask:                          0.0.7.255
Host mask length:                   11
*Network address:                   198.51.96.0
*First usable network host address: 198.51.100.1
*Last usable network host address:  198.51.103.254
*Network Broadcast address:         198.51.103.255
Total network host addresses:       2048
Usable network host addresses:      2046

* Bei Prüfungen und Zertifizierungstests für Network Education Classes müssen Sie in der Lage sein, diese für ein IPv4-Netzwerk schnell zu berechnen, wenn Sie eine Hostadresse und eine Maske (oder eine Maskenlänge) angeben. Mithilfe der folgenden Hinweise können Sie Ihre Antworten schnell überprüfen:

  • Netzwerkadresse (Hinweis: eine gerade Zahl)
  • Erste verwendbare Hostadresse (Hinweis: Netzwerkadresse plus 1, ungerade Zahl)
  • Letzte verwendbare Host-Adresse (Hinweis: Broadcast-Adresse minus 1, gerade Zahl)
  • Broadcast-Adresse (Hinweis: Netzwerkadresse plus Host-Maske, eine ungerade Zahl)

Die obigen Hinweise gelten nicht für /31(Netzwerkmaske 255.255.255.254) oder /32(Netzwerkmaske 255.255.255.255) Netzwerke.

Wenn Sie genügend Zeit für Ihre Prüfung haben und ein Problem mit mehreren Methoden vorliegt, um eine Antwort zu erhalten, sollten Sie die Antwort mit mehreren Methoden überprüfen.


Fortsetzung in der nächsten Antwort ...


9

Fortsetzung von der vorherigen Antwort ...


Teil 2 von 2


Auswählen einer IPv4-Netzwerk-Gateway-Adresse (Router)

Ein Gateway ist ein Host im Netzwerk, der Pakete an andere Netzwerke weiterleiten kann, und ihm kann jede verwendbare Netzwerk-Host-Adresse zugewiesen werden. Einige Personen weisen einer verwendbaren Netzwerk-Host-Adresse zufällig Gateway-Adressen zu, andere weisen einem Gateway immer die erste verwendbare Netzwerk-Host-Adresse zu und andere weisen einem Gateway immer die letzte verwendbare Netzwerk-Host-Adresse zu. Es ist eigentlich egal, welche verwendbare Host-Netzwerkadresse Sie einem Gateway zuweisen, aber Sie sollten versuchen, konsistent zu sein.


IPv4- /31Netzwerke (Netzwerkmaske 255.255.255.254)

Ursprünglich waren /31(Netzwerkmasken- 255.255.255.254) Netzwerke unbrauchbar, weil es nur ein Hostbit gibt, wodurch Sie zwei Netzwerkhostadressen erhalten, aber die Anzahl der verwendbaren Netzwerkhostadressen ist die Gesamtzahl der Netzwerkhostadressen minus 2( 2 total host addresses - 2 = 0 usable host addresses).

Punkt-zu-Punkt-Verbindungen benötigen nur zwei Hostadressen (eine für jedes Ende der Verbindung). Die herkömmliche Art der Zuweisung von IPv4-Netzwerken erforderte die Verwendung von /30(Netzwerkmasken- 255.255.255.252) Netzwerken für Punkt-zu-Punkt-Verbindungen. Dies verschwendet jedoch die Hälfte der Netzwerkhostadressen, da ein /30Netzwerk insgesamt vier Netzwerkhostadressen aufweist, aber nur zwei verwendbare Netzwerkhostadressen sind ( 2^2 – 2 = 2).

Aufgrund des kritischen IPv4-Adressengpasses wurde ein Standard erstellt, der die Verwendung von /31Netzwerken für Punkt-zu-Punkt-Verbindungen ermöglicht. Dies ist sinnvoll, da in solchen Netzwerken kein Broadcast erforderlich ist: Alle von einem Host im Netzwerk gesendeten Pakete sind für den einzigen anderen Host im Netzwerk bestimmt und werden effektiv rundgesendet. In einem /31Netzwerk ist die Netzwerkadresse die erste verwendbare Hostadresse und die Broadcast-Adresse die letzte verwendbare Hostadresse.

Leider unterstützen nicht alle Anbieter (insbesondere Microsoft) den Standard für die Verwendung von /31Netzwerken auf Punkt-zu-Punkt-Verbindungen, und Sie werden am häufigsten Punkt-zu-Punkt-Verbindungen unter Verwendung von /30Netzwerken sehen.


IPv4- /32Netzwerke (Netzwerkmaske 255.255.255.255)

Ein /32(Netzwerkmasken- 255.255.255.255) Netzwerk ist sowohl ein Netzwerk ohne Hostadressen als auch eine Hostadresse an sich. Es gibt nur eine Adresse im Netzwerk, und das ist die Netzwerkadresse. Da sich keine anderen Hosts im Netzwerk befinden, muss der Datenverkehr zur und von der Netzwerkadresse geleitet werden.

Diese Adressen werden häufig auf virtuellen Netzwerkschnittstellen verwendet, die in einem Gerät definiert sind, das Pakete zwischen seinen virtuellen und physischen Schnittstellen weiterleiten kann. Ein Beispiel hierfür ist das Erstellen einer virtuellen Schnittstelle in einem Netzwerkgerät, die als Quelle oder Ziel für das Gerät selbst verwendet wird. Eine virtuelle Schnittstelle kann aufgrund eines physischen Problems nicht gelöscht werden, z. B. wenn das Kabel abgezogen wurde. Wenn das Gerät über mehrere Pfade verfügt, können andere Geräte mit der Adresse der virtuellen Schnittstelle weiterhin mit dem Gerät kommunizieren, wenn eine physische Schnittstelle des Geräts aus irgendeinem Grund nicht funktionsfähig ist .


IPv4-Netzwerke unterteilen

Durch die Untervernetzung eines Netzwerks werden mehrere, längere Netzwerke aus einer Netzwerkadresse und -maske erstellt. Die Grundidee ist, dass Sie höherwertige Bits vom Host-Teil des ursprünglichen Netzwerks ausleihen. Angenommen, Sie möchten aus unserem ursprünglichen 198.51.96.0/21Netzwerk 14 gleich große Subnetze erstellen . Da Sie höherwertige Bits vom Host-Teil des ursprünglichen Netzwerks ausleihen, erhalten Sie eine Zahl, die eine Potenz von 2, aber 14keine Potenz von 2ist. Sie müssen also die nächsthöhere Potenz von erhalten 2, die zufällig 16( 16 = 2^4). Die Stärke von 2ist in diesem Fall 4die Anzahl der Host-Bits höherer Ordnung, die zum Ausleihen für die Anzahl der zu erstellenden Subnetze erforderlich sind. Sie können auch eine mathematische Formel verwenden, um die Anzahl der erforderlichen Bits zu bestimmen:Log2(X subnets) = Y borrowed bitsauf den nächsten ganzzahligen Wert aufgerundet:

Log2(14 subnets) = 3.807354922, rounded up = 4 borrowed bits

Für unser Beispiel, in dem 14 gleich große Subnetze des ursprünglichen 198.51.96.0/21Netzwerks benötigt werden, beginnend mit allen 0s * für das erste Subnetz, fügen Sie 1dem Subnetzteil Folgendes hinzu, um das nächste Subnetz zu erhalten:

           ----------------------------------------------
Original:  | 21 network bits       | 11 host bits       |
           ----------------------------------------------
Network:   | 110001100011001101100 | 0000 |  0000000    | = 198.51.96.0/21
Subnet 1:  | 110001100011001101100 | 0000 |  0000000    | = 198.51.96.0/25
Subnet 2:  | 110001100011001101100 | 0001 |  0000000    | = 198.51.96.128/25
Subnet 3:  | 110001100011001101100 | 0010 |  0000000    | = 198.51.97.0/25
Subnet 4:  | 110001100011001101100 | 0011 |  0000000    | = 198.51.97.128/25
Subnet 5:  | 110001100011001101100 | 0100 |  0000000    | = 198.51.97.128/25
Subnet 6:  | 110001100011001101100 | 0101 |  0000000    | = 198.51.98.128/25
Subnet 7:  | 110001100011001101100 | 0110 |  0000000    | = 198.51.99.0/25
Subnet 8:  | 110001100011001101100 | 0111 |  0000000    | = 198.51.99.128/25
Subnet 9:  | 110001100011001101100 | 1000 |  0000000    | = 198.51.100.0/25
Subnet 10: | 110001100011001101100 | 1001 |  0000000    | = 198.51.100.128/25
Subnet 11: | 110001100011001101100 | 1010 |  0000000    | = 198.51.101.0/25
Subnet 12: | 110001100011001101100 | 1011 |  0000000    | = 198.51.101.128/25
Subnet 13: | 110001100011001101100 | 1100 |  0000000    | = 198.51.102.0/25
Subnet 14: | 110001100011001101100 | 1101 |  0000000    | = 198.51.102.128/25
           ----------------------------------------------
Subnetted: | 25 network bits              | 7 host bits |
           ----------------------------------------------

           ----------------------------------------------
Unused:    | 110001100011001101100 | 111  | 00000000    | = 198.51.103.0/24
           ----------------------------------------------

* Es gibt einen anhaltenden Mythos, dass für Subnetze wie für Hostadressen die Subnetze mit allen Nullen und mit allen Einsen nicht verwendet werden können, aber dieser Mythos wurde vor vielen Jahren durch einen Standard explizit beseitigt. Leider erstreckt sich dieser Mythos auch auf einige Netzwerkunterrichtsklassen, und die richtige Antwort für diese (falschen) Klassen wäre die Verwendung des 2. bis 15. Subnetzes.


Es ist möglich, ein Netzwerk in Subnetze unterschiedlicher Größe zu unterteilen (jedes IPv4-Netzwerk ist ein Subnetz der 0.0.0.0/0Netzwerkadresse), wie in unserem obigen Beispiel, wobei das nicht verwendete Subnetz ein /24Subnetz ist. Dies erfordert jedoch eine sorgfältige Planung, damit die resultierenden Subnetze beginnen das richtige Bit.

Nehmen wir zum Beispiel an, wir benötigen sowohl ein /26als auch ein /27Subnetz aus unserem 198.51.96.0/21Netzwerk. Dazu gibt es zwei Möglichkeiten: Beginnen Sie mit dem /26Subnetz oder mit dem /27Subnetz.

Beginnend mit dem /26Subnetz:

Original: | 110001100011001101100 | 00000000000    | /21
Subnet 1: | 110001100011001101100 | 00000 | 000000 | /26

Fügen Sie 1dem Subnetzteil Folgendes hinzu, um die Startposition des nächsten Subnetzes zu ermitteln:

Subnet 2: | 110001100011001101100 | 00001 | 000000 | /26

Dann erweitern Sie das zweite Subnetz auf /27:

Subnet 2: | 110001100011001101100 | 000010 | 00000 | /27

Beachten Sie, dass wir das zweite /26Subnetz tatsächlich in ein /27Subnetz unterteilen, und das funktioniert gut, weil 27es größer als ist 26.

Beginnend mit dem /27Subnetz:

Original: | 110001100011001101100 | 00000000000    | /21
Subnet 1: | 110001100011001101100 | 000000 | 00000 | /27

Fügen Sie 1dem Subnetzteil Folgendes hinzu, um die Startposition des nächsten Subnetzes zu ermitteln:

Subnet 2: | 110001100011001101100 | 000001 | 00000 | /27

Beachten Sie, dass im Host-Bereich nicht mehr genügend Bits (fünf Host-Bits) vorhanden sind, um ein /26Netzwerk zu unterstützen , für das sechs Host-Bits ( 32 address bits – 26 network bits = 6 host bits) erforderlich sind . Wenn wir dies als Ausgangsposition für das /26Subnetz verwenden, überlappen wir tatsächlich das vorherige und das nächste /26Netzwerk. Wir müssen eine Lücke von der Größe eines /27Netzwerks für die Startposition des /26Netzwerks lassen:

Original: | 110001100011001101100 | 00000000000     | /21
Subnet 1: | 110001100011001101100 | 000000 |  00000 | /27
Unused:   | 110001100011001101100 | 000001 |  00000 | /27
Subnet 2: | 110001100011001101100 | 00001  | 000000 | /26

Ein /26Subnetz muss immer an einer /26Grenze beginnen: jede 2. /27Subnetzgrenze, jede 4. /28Grenze, jede 8. /29Grenze usw. Diese Regel gilt für jede Subnetzgröße: Ein Subnetz muss an einer Grenze eines längeren Subnetzes beginnen, 2die der Leistung entspricht der längeren Subnetzgröße abzüglich der Subnetzgröße. Beispielsweise /23muss in jedem vierten /25Netzwerk ein Subnetz gestartet werden ( 2^(25 - 23) = 2^2 = 4).

Der Versuch, ein Gerät mit einer Netzwerkadresse zu konfigurieren, die an der falschen Bitgrenze beginnt, führt entweder zu seltsamen Problemen, die sich nur schwer beheben lassen, oder das Gerät gibt einen Fehler über überlappende Netzwerke aus. Einige Leute versuchen dies mit Punkt-Dezimal zu tun, und dies kann zu Fehlern führen. Beispielsweise sind die 198.51.96.0/27Netzwerkhostadressen 198.51.96.0durch 198.51.96.31. Wenn Sie dies wissen und versuchen, das 198.51.96.32/26Netzwerk zu verwenden , treten Probleme auf, da das Netzwerk an der falschen Bitgrenze beginnt und das /27Netzwerk überlappt (prüfen Sie dies, indem Sie bitweise ANDAdressen und Netzwerkmasken verwenden). Es ist offensichtlich in binär, aber es ist nicht so offensichtlich in Punkt-Dezimal. Sie können lernen, dass /26Netzwerke mit einem Vielfachen der Dezimalzahl beginnen müssen64 Grenze, aber es in binären sehen kann Ihnen sicher sagen, ob Sie einen Fehler gemacht haben oder nicht.


Subnetzgröße basierend auf der Anzahl der Hosts

Bei allgemeinen Prüfungsfragen erhalten Sie ein Netzwerk und werden aufgefordert, mehrere unterschiedlich große Subnetze zu erstellen, die auf der Anzahl der Hosts für jedes Subnetz basieren. Wenn möglich, müssen Sie klären, ob die Anzahl der Hosts auf der Gesamtzahl der Hostadressen im Netzwerk oder auf der Anzahl der verwendbaren Hosts im Netzwerk basiert. (Wenn in der Frage beispielsweise nach einem Subnetz mit 256oder 255Hosts gefragt /24wird, erhalten Sie von einem Netzwerk die 256Gesamtzahl der Hostadressen, jedoch nur die 254verwendbaren Hostadressen. Eine solche Frage kann eine Trickfrage sein, und die richtige Antwort hängt davon ab, ob die Frage bedeutet Gesamt-Host-Adressen oder verwendbare Host-Adressen.)

Beispielfrage:

Given the 198.51.96.0/21 network, subnet it for the following departments:
    Department 1:  500 hosts
    Department 2:  100 hosts
    Department 3:  200 hosts
    Department 4: 1000 hosts

Wie wir im Abschnitt IPv4-Subnetze gesehen haben, besteht die einfachste Möglichkeit darin, die Abteilungen zunächst nach der größten bis zur kleinsten Anzahl von Hosts zu sortieren, da keine Netzwerklücken entstehen:

Department 4: 1000 hosts
Department 1:  500 hosts
Department 3:  200 hosts
Department 2:  100 hosts

Sie können jedes auf die nächsthöhere Potenz von 2 aufrunden, um die Anzahl der erforderlichen Gesamt-Hostadressen für jedes Subnetz zu erhalten, und dann die Anzahl der erforderlichen Hostbits aus dem Exponenten der Potenz von ableiten 2:

Department 4: 1024 total host addresses = 2^10 = 10 host bits
Department 1:  512 total host addresses = 2^9  =  9 host bits
Department 3:  256 total host addresses = 2^8  =  8 host bits
Department 2:  128 total host addresses = 2^7  =  7 host bits

Sie können auch die vorherige Formel zum Ermitteln der für eine bestimmte Anzahl gleichgroßer Subnetze erforderlichen Anzahl von Bits ändern, um die Anzahl der für jedes Subnetz erforderlichen Hostbits zu ermitteln: Log2(X hosts) = Y host bitsAuf den nächsten ganzzahligen Wert aufgerundet:

Department 4: Log2(1000 hosts) = 9.96578428466209, rounded up = 10 host bits
Department 1: Log2( 500 hosts) = 8.96578428466209, rounded up =  9 host bits
Department 3: Log2( 200 hosts) = 7.64385618977472, rounded up =  8 host bits
Department 2: Log2( 100 hosts) = 6.64385618977473, rounded up =  7 host bits

Sobald Sie die Anzahl der für jedes Subnetz erforderlichen Host-Bits haben, führen Sie die Binärberechnung durch, um das spezifische Subnetz für jede Abteilung zu ermitteln. Denken Sie daran, 1zu einem Subnetz hinzuzufügen , um die Startadresse des nächsten Subnetzes zu erhalten:

Original:     | 110001100011001101100 |    00000000000 | = 198.51.96.0/21
Department 4: | 110001100011001101100 | 0 | 0000000000 | = 198.51.96.0/22
Department 1: | 110001100011001101100 | 10 | 000000000 | = 198.51.100.0/23
Department 3: | 110001100011001101100 | 110 | 00000000 | = 198.51.102.0/24
Department 2: | 110001100011001101100 | 1110 | 0000000 | = 198.51.103.0/25
Unused:       | 110001100011001101100 | 1111 | 0000000 | = 198.51.103.128/25

Ein bestimmtes Subnetz finden

Möglicherweise werden Sie aufgefordert, die Netzwerkinformationen für ein bestimmtes Subnetz eines bestimmten Netzwerks anzugeben. Beispielsweise werden Sie möglicherweise aufgefordert, die Netzwerkinformationen für das 23. /26Subnetz des 198.51.96.0/21Netzwerks anzugeben . Da Sie das 23. Subnetz benötigen, können Sie konvertieren 22(denken Sie daran, dass 0es das erste Subnetz ist, das 23. Subnetz wäre also 22*) nach binär: Dezimal 22= Binär 10110. Verwenden Sie die konvertierte Binärzahl im Teilnetz der Adresse:

Original:  | 110001100011001101100 |    00000000000 | = 198.51.96.0/21
Subnet 23: | 110001100011001101100 | 10110 | 000000 | = 198.51.101.128/26

Nachdem Sie die 23. Netzwerkadresse identifiziert haben, 198.51.101.128/26können Sie die anderen Netzwerkinformationen berechnen (wie in den vorherigen Abschnitten beschrieben):

Network address:                   198.51.101.128
Network mask length:               26
Network mask:                      255.255.255.192
Host mask length:                  6
Host mask:                         0.0.0.63
First usable network host address: 198.51.101.1
Last usable network host address:  198.51.101.62
Broadcast address:                 198.51.101.63
Total network host addresses:      64
Usable network host addresses:     62

* Es gibt einen anhaltenden Mythos, dass für Subnetze wie für Hostadressen die Subnetze mit allen Nullen und mit allen Einsen nicht verwendet werden können, aber dieser Mythos wurde vor vielen Jahren durch einen Standard explizit beseitigt. Leider erstreckt sich dieser Mythos auch auf einige Netzwerkunterrichtsklassen, und die richtige Antwort für diese (falschen) Klassen wäre die Verwendung des 24. ( 23dezimalen, 10111binären) Subnetzes in unserem Beispiel für gleich große Subnetze anstelle des tatsächlichen 23. ( 22dezimalen, binären) Subnetzes. 10110binäres Subnetz.


Einen bestimmten Netzwerkhost finden

Möglicherweise werden Sie aufgefordert, die Hostadresse für einen bestimmten Host eines bestimmten Netzwerks zu ermitteln. Beispielsweise werden Sie möglicherweise aufgefordert, die Hostadresse für den 923. Host des 198.51.96.0/21Netzwerks anzugeben . Da Sie den 923. Host benötigen, können Sie 923in Binär umwandeln : Dezimal 923= Binär 1110011011. Fügen Sie die konvertierte Binärzahl zur Netzwerkadresse hinzu:

Binary network: | 110001100011001101100 | 00000000000 |
Binary 923:     | 000000000000000000000 | 01110011011 | +
                  -----------------------------------
Host address:   | 110001100011001101100 | 01110011011 | = 198.51.99.155

Größtes gemeinsames Netzwerk für zwei Hosts *

Möglicherweise erhalten Sie zwei (oder mehr) verschiedene Hostadressen und werden aufgefordert, das größte Netzwerk (die kleinste Anzahl von Hosts) anzugeben, das beide Hostadressen enthält. Finden Sie zum Beispiel das größte gemeinsame Netzwerk von 198.51.100.223und 198.51.101.76.

Konvertieren Sie zuerst die punktierten Dezimaladressen in Binär:

198.51.100.223 = 11000110001100110110010011011111
198.51.101.76  = 11000110001100110110010101001100

Beginnen Sie mit dem höchstwertigen Bit (ganz links) und vergleichen Sie die Binäradressen an jeder Bitposition, bis die Bits an derselben Position nicht mehr übereinstimmen:

198.51.100.223 = | 11000110001100110110010 | 011011111 |
198.51.101.76  = | 11000110001100110110010 | 101001100 |

Zählen Sie 23in diesem Fall die Anzahl der übereinstimmenden Bits, um die Maskenlänge zu erhalten. Sie können dann eine der Adressen nehmen und bitweise ANDmit der Netzwerkmaske arbeiten, um das gemeinsame Netzwerk zu erhalten. Wenn Sie dies für beide Adressen tun, sollte dies zu demselben Netzwerk führen. Wenn dies nicht der Fall ist, haben Sie entweder eine Fehlzählung durchgeführt oder eine nicht übereinstimmende Bitposition verpasst.

198.51.100.223  = 11000110001100110110010011011111
/23 mask length = 11111111111111111111111000000000 AND
                  --------------------------------
Binary network:   11000110001100110110010000000000 = 198.51.100.0/23

198.51.101.76   = 11000110001100110110010111011111
/23 mask length = 11111111111111111111111000000000 AND
                  --------------------------------
Binary network:   11000110001100110110010000000000 = 198.51.100.0/23

Beachten Sie, dass die beiden Netzwerkadressen übereinstimmen. Das heißt, das größte gemeinsame Netzwerk für die beiden Hostadressen ist 198.51.100.0/23(CIDR-Notation) oder (traditionell) 198.51.100.0mit einer Maske von 255.255.254.0.


* Möglicherweise wird dies als das kleinste gemeinsame Netzwerk (oder eine Variante, z. B. minimales Netzwerk oder Maske) bezeichnet. Das kleinste Netzwerk ist tatsächlich 0.0.0.0/0( 0Netzwerkbits), und es ist das gemeinsame Netzwerk für alle IPv4-Adressen, sodass es das kleinste gemeinsame Netzwerk aller IPv4-Adressen ist. Die Verwirrung entsteht, weil viele Leute den Host-Teil der Adresse betrachten und dessen Größe als die Netzwerkgröße und nicht als die Größe des Netzwerk-Teils der Adresse ansehen.


Öffentliche oder private Adressierung

IPv4 selbst kennt weder das Konzept noch die Unterscheidung zwischen öffentlicher und privater Adressierung. Die private IPv4-Adressierung wurde willkürlich gewählt, und die ISPs leiten nach Vereinbarung keine Pakete im öffentlichen Internet unter Verwendung von Adressen im privaten Adressraum weiter, aber Netzwerkgeräte und Hosts wissen nicht, ob eine Adresse öffentlich oder privat ist.

Für eine private IPv4-Adressierung sind drei Adressbereiche definiert:

  1. 10.0.0.0/8
  2. 172.16.0.0/12
  3. 192.168.0.0/16

Classful Network Addressing

Ursprünglich wurden IPv4-Adressen in Netzwerkklassen unterteilt. Die klassische Adressierung war vor Jahrzehnten veraltet, und moderne Netzwerke basieren auf CIDR (Classless Inter-Domain Routing). Leider bestehen jedoch viele Netzwerkschulungskurse und Zertifizierungsprüfungen darauf, Ihr Wissen über die klassische Adressierung zu testen. Machen Sie sich mit allen bisherigen IPv4-Berechnungen in diesem Dokument vertraut, bevor Sie sich mit klassischer Adressierung befassen.

Die IPv4-Adressklassen basieren alle auf den ersten Bits der Adresse:

Class   Address Starts With      Address Range                 Default Size*
  A     First one bit    = 0       0.0.0.0 to 127.255.255.255        /8
  B     First two bits   = 10    128.0.0.0 to 191.255.255.255       /16
  C     First three bits = 110   192.0.0.0 to 223.255.255.255       /24
  D     First four bits  = 1110  224.0.0.0 to 239.255.255.255       N/A
  E     First four bits  = 1111  240.0.0.0 to 255.255.255.255       N/A
  • Klasse-A-Netzwerke haben eine Standardnetzwerkmaske von 255.0.0.0( /8) und eine Standardhostmaske von 0.255.255.255, wodurch Sie die 16,777,216Gesamtzahl der Hostadressen pro Netzwerk erhalten.
  • Netzwerke der Klasse B haben eine Standardnetzwerkmaske von 255.255.0.0( /16) und eine Standardhostmaske von 0.0.255.255, wodurch Sie die 65,536Gesamtzahl der Hostadressen pro Netzwerk erhalten.
  • Netzwerke der Klasse C haben eine Standardnetzwerkmaske von 255.255.255.0( /24) und eine Standardhostmaske von 0.0.0.255, wodurch Sie die 256Gesamtzahl der Hostadressen pro Netzwerk erhalten.
  • Class D-Adressen werden für Multicast verwendet, wobei jede Adresse einzeln verwendet wird, um eine Gruppe von Hosts darzustellen, die eine Multicast-Adresse abonnieren. Dies bedeutet, dass Adressen der Klasse D normalerweise nicht das Konzept einer Netzwerkmaske haben.
  • Adressen der Klasse E sind reserviert und können für nichts verwendet werden. Es gibt eine Ausnahme, nämlich die Limited Broadcast-Adresse von. Hierbei 255.255.255.255handelt es sich um eine individuelle Adresse, die jeder Host in einem Netzwerk als seine eigene behandelt. Das bedeutet, dass alles, was an gesendet 255.255.255.255wird, von jedem Host im Netzwerk empfangen und verarbeitet wird.

Da jede Klasse eine Standardnetzwerkgröße hat, wird bei einigen Fragen die Standardmaske für eine bestimmte Adresse vorausgesetzt, sodass alle Berechnungen auf der Basis der Standardnetzwerkmaske durchgeführt werden müssen. Für unsere Beispieladresse 198.51.100.223:

Binary: 11000110 00110011 01100100 11011111

Beachten Sie, dass die ersten drei Adressbits sind 110, was bedeutet, dass es sich um eine Adresse der Klasse C handelt. Wenn keine Maske oder Maskenlänge vorhanden ist, wird angenommen , dass die Netzwerkmaske 255.255.255.0( /24) ist und die Netzwerkadresse ergibt 198.51.100.0.


* Machen Sie nicht den üblichen Fehler zu glauben, dass die Netzwerkmaske die Netzwerkklasse diktiert, sondern umgekehrt. Zum Beispiel betrachten viele Leute ein /24Netzwerk als ein Klasse-C-Netzwerk, aber das ist nicht einmal im entferntesten wahr. Wenn zum Beispiel ein 10.11.12.0/24Netzwerk verwendet wird, wird dieses Netzwerk aufgrund der Netzwerkmaske fälschlicherweise von vielen Personen als Klasse-C-Netzwerk bezeichnet, obwohl das erste Bit der Adresse 0ein Klasse-A-Netzwerk ist, obwohl die Netzwerkmaske länger ist als die Standardmaske Klasse-A-Netzwerkmaske, dh es handelt sich um ein Teilnetz eines Klasse-A-Netzwerks, nicht um ein Klasse-C-Netzwerk.


6

(In dem Versuch, alle Netzmasken-Antworten an einem Ort zu speichern, habe ich nach den anderen ausgezeichneten Antworten eine visuelle Methode hinzugefügt.)

Subnetzgröße basierend auf der Anzahl der Hosts

Dies ist die häufig gestellte Frage: "Wie schneide ich eine bestimmte Netzwerkgröße in n Teile, sodass x 1 Hosts in Netzwerk 1, x 2 Hosts in Netzwerk 2 usw. zulässig sind?" kann absolut gelöst werden, indem man die Methoden durcharbeitet, die in den anderen ausgezeichneten Antworten beschrieben werden.

Einige mögen jedoch eine visuellere Methode und einige allgemeine Tipps.

Visuelle "Glasscutter" -Methode

Die Art und Weise, wie ich dies oft visuell verstehe, ist mit der folgenden Methode:

Stellen Sie sich zunächst eine Papier-Guillotine wie diese vor:

Schiebepapier Guillotine

( Bild aus Wikipedia Von Nathan CC BY-SA 3.0)

Die Eigenschaften dieser Art von Schneideplotter bestehen darin, dass sie nur gerade Linien schneidet, immer den ganzen Weg über das Papier schneidet und senkrecht zu einer Seite schneidet. Unsere besondere Guillotine ist pingelig: Sie schneidet Papier nur in zwei Hälften, und wir können keinen Schnitt näher als 1 cm an der Kante ausführen.

  • Wie viele Adressen stehen insgesamt für Ihren Startblock zur Verfügung?
  • Angenommen, eine / 22 hat 1024 Adressen
  • Holen Sie sich ein Stück Papier mit so vielen Quadratzentimetern (und Quadrat oder 2x1 Verhältnis)
  • Deshalb bekomme ich ein Stück 32 x 32 cm, das 1024 cm² hat
  • Wiederholt
    1. Wähle ein Stück (wenn es mehr als ein Stück gibt)
    2. Schneiden Sie es in zwei Hälften (unter Einschränkungen: nur rechteckige Schnitte, in zwei Hälften, nichts unter 1 cm)
  • Oft gibt es verschiedene Schnitte, die man machen kann und man muss eine Wahl treffen
  • Um n Netzwerke zu erhalten, müssen Sie n-1 Schnitte ausführen
  • Manchmal kommt es vor, dass Sie zusätzliche Teile haben (je nachdem, wie Sie den "Müll" verteilen möchten).

Hier ist eine Illustration des Prozesses. Sie sehen, dass bei Schnitt 1 und Schnitt 2 nur eine Art von Schnitt möglich ist, aber bei Schnitt 3 treffen wir eine Auswahl: Schneiden Sie das kleine Stück (rot) oder das große Stück (blau) und geben Sie zwei verschiedene Möglichkeiten.

meine eigene Zeichnung

Das ist, was oft als das Guillotine-Problem bezeichnet wird , das ich als das "Glasschneider" -Problem lernte, da Glasscheiben wirklich vollständig durchgeschnitten werden müssen, und dieses spezielle Problem kann als "binärer Glasschneider" bezeichnet werden, da es immer in Hälften geschnitten wird.

Wenn ich das im wirklichen Leben mache, mache ich mental die Halbierungen, während ich das Gitter so betrachte. Ich kann mich erinnern, dass / 26 mit 0, .64, 128 oder .192 beginnen muss. Ich weiß vielleicht, dass die siebte Standleitung die siebte / 30 im oberen Quartal benötigt, aber ich kann mich nicht erinnern, dass das .216 ist.

Das Raster kann natürlich auch zur Darstellung des dritten Oktetts verwendet werden, und jedes Quadrat steht für a / 24. Jetzt heißt es, dass a / 18 mit .0, .64, .128 oder .192 beginnt.

Bildbeschreibung hier eingeben

Allgemeine Techniktipps

Das allgemeine Verfahren ist:

  • Runden Sie jede benötigte Größe in den kleinsten Block auf, der groß genug ist
  • Stellen Sie sicher, dass Sie die globalen Regeln einhalten (häufig "Maximieren der verfügbaren Adressierung", manchmal "Verdoppeln für Wachstum zulassen" oder "Routing vereinfachen").
  • Ordnen Sie die Subnetze Adressen zu, die MIT DEM GRÖSSTEN BEGINNEN und bis zum Kleinsten gehen ( dies ist der Teil, den sie normalerweise vergessen, Ihnen mitzuteilen ).
  • Befolgen Sie bestimmte Regeln (Testfragen enthalten häufig zusätzliche Regeln, manchmal so abweichend wie "Keine Netzwerkadresse darf eine 7 enthalten").
  • Überprüfen Sie, ob Platz für implizite Adressen (Broadcasts, Router) vorhanden ist.
  • Wenn ein Netzwerk klein ist (/ 30, / 31 oder / 32), achten Sie besonders darauf, da es einige Randfälle für Netzwerke mit 4, 2 und 1 Hosts gibt und die Details davon abhängen, welches genaue Problem Sie lösen

5

Beispiel:

IP: 128.42.5.4

In binärer Form: 10000000 00101010 00000101 00000100

Subnetz: 255.255.248.0

Wie können Sie die Präfix-, Netzwerk-, Subnetz- und Hostnummern ermitteln?

      32768     16384  8192  4096  2048  1024   512   256  ----> Binary
        128       192   224   240   248   252   254   255  ----> Sunet Mask
        /17       /18   /19   /20   /21   /22   /23   /24  ----> CIDR  
      32766     16382  8190  3094  2046  1022   510   254  ----> Host


      128     64    32     16     8     4    2     1   ----> Binary
      128    192   224    240   248   252   254   255  ----> Sunet Mask
      /25    /26   /27    /28   /29   /30   /31   /32  ----> CIDR  
      126     62    30     14     6     2    *     -   ----> Host 

     128        64        32       16        8         4         2        1
  10000000   01000000  00100000 00010000  00001000  00000100  00000010   00000001

   Example 
   Network=192.168.1.0 /24;  
   Network Address with Subnet mask =  192.168.1.0 subnet 255.255.255.0 
   Ip address range 192.168.1.0----192.168.1.255
   Fist available ip address  192.168.1.1; 
   Last available ip address  192.168.1.254; 
   Broadcast address = 192.168.1.255;
   254 Host

   Network=192.168.1.0 /25;
   Network Address with Subnet mask =  192.168.1.0 subnet 255.255.255.128
   Ip address range 192.168.1.0----192.168.1.128
   Fist available ip address  192.168.1.1; 
   Last available ip address  192.168.1.126;
   Broadcast address = 192.168.1.127;  
   126 Hosts

   When the CIDR increased ex. /24. /25.  the network will divided by the 
   binary number.
   /25  increase network   0-128| 128- 256 |                   you will have 2 Networks 
   /26  increase network   0-64 | 64 - 128 | 128-192 | 192-256 you will have 4 Networks 
    .
    .
    .
   /32......
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.