Warum brauchen wir eine Subnetzmaske?

37

Warum benötigen wir noch eine Subnetzmaske, da eine IPv4-Adresse bereits Informationen zum Netzwerk und zum Host enthält?

Das 1. Oktett gibt bereits die Netzwerkklasse an (1-127: A, 128-191: B, 192-223: C usw.). A, B oder C gibt die Anzahl der Oktetts für das Netzwerk (255.0.0.0, 255.255.0.0, 255.255.255.0) an, die automatisch angibt, wie viele Hosts für jede Netzwerkklasse zulässig sind.

Die IP-Adresse enthält alle Informationen, die eine Subnetzmaske enthält, und vieles mehr. Warum brauchen wir überhaupt eine Subnetzmaske? Wenn die Informationen, die ein Subnetz enthält, keine vollständige Teilmenge der Informationen innerhalb einer IP sind, was enthält es dann noch oder was tut das Subnetz zusätzlich, sodass wir es unabhängig angeben müssen?

KMC
quelle
21
Klasse A, B, C sind also 1980er Jahre und längst tot. Als die Adresserschöpfung einsetzte, stellte sich heraus, dass ein Großteil des zugewiesenen A- und B-Speicherplatzes für die Inhaber verschwendet wurde, daher CIDR und die gegebene Zuweisung kleiner, verwendbarer Adressblöcke im gesamten Adressraum.
Fiasko Labs
2
@FiascoLabs Das beantwortet seine Frage nicht Alter. Haben Router diese Subnetzmasken noch verwendet? Ja, mit classful (wenn kein weiteres Subnetz vorhanden ist, was möglicherweise unwahrscheinlich ist), kann die Subnetzmaske aus der Adresse berechnet werden. Aber a) ist es notwendig, eine Subnetzmaske mit einem logischen UND zu verwenden, wenn Sie bereits wissen, wie viele Bits Sie möchten, und warum ist das so? Vermutlich, weil CPU-Operationen nicht in der Lage sind, auf x Bits eines Bytes zu testen, müssen andere auf Null gesetzt werden, und der EQU-Operator wird angewendet.
Barlop
8
Die Router, mit denen ich gearbeitet habe, gehen nicht davon aus, dass das erste Oktett von Klasse A, B oder C etwas bedeutet. Ich musste immer eine Netzmaske oder CIDR einstellen, um dem Router die Adressen mitzuteilen, an denen sich das Netz und die Sendung befanden. Natürlich haben die Zuweisungen von Klassenadressen sehr einfache Netzmasken, 255.0.0.0, 255.255.0.0 und 255.255.255.0, daher ist es notwendig, eine Subnetzmaske zu verwenden.
Fiasko Labs
Mit VLSM - Sumbet-Masken mit variabler Länge können Sie ein Netzwerk oder eine Broadcast-Domain erstellen, die so groß oder so klein ist, wie Sie möchten!
Mark S.
3
Sogar in den Tagen des Unterrichts konnte ein großes Netzwerk in verschiedene andere kleinere Netzwerke unterteilt werden. Eine Workstation an einer großen Universität hätte noch eine Adresse in einem Klasse-A-Netzwerk, aber es könnte sich um ein Subnetz eines Subnetzes eines Subnetzes der gesamten Klasse A handeln. Router haben also natürlich keine Annahmen getroffen.
Alexios

Antworten:

38

Wir benötigen eine Subnetzmaske für IPv4-Adressen, da die Adresse keine Informationen zur Netzwerkgröße enthält. Klassengrößen sind nicht die Netzwerkgrößen. In praktischen Netzwerken werden alle IPv4-Netzwerke in Subnetze unterteilt , die kleiner als die Klassengröße sind.

Beispielsweise könnten Sie das Klasse-C-Netzwerk 200.200.200.0/255.255.255.0 in zwei kleinere Netzwerke aufteilen (möglicherweise an getrennten Standorten) 200.200.200.0/255.255.255.128 und 200.200.200.128/255.255.255.128, vorausgesetzt, Sie benötigen nicht mehr als 126 Hosts. In der Realität erhalten die meisten Unternehmen nur genügend IPv4-Adressen für die Server, die im öffentlichen Internet verfügbar sein müssen. Ich persönlich habe Setups mit 32, 16 und 8 Adressennetzwerken gesehen (das wären Masken mit 255, 255, 255, 255, 255, 255, 240 bzw. 255, 255, 255, 255, 248).

Das Vorhandensein von IP-Netzwerken nur in Blöcken mit Klassengröße war zu restriktiv, da nur eine begrenzte Anzahl von Netzwerken zulässig war - die 127 Netzwerke der Klasse A beanspruchen die Hälfte des Speicherplatzes. Ganz zu schweigen davon, dass ein Netzwerk mit 24 Milliarden Knoten nicht zu verwalten ist. Stattdessen wurde 1993 das Classless Inter-Domain Routing (CIDR) eingeführt, um die Aufteilung der Netzwerke zu ermöglichen.

Der Zweck der Subnetzmaske besteht auch darin, zu bestimmen, welche Hosts sich im lokalen Netzwerk befinden und welche sich außerhalb des Netzwerks befinden. Hosts können direkt mit Hosts im selben Netzwerk kommunizieren, müssen jedoch mit einem Router kommunizieren, um mit Hosts in externen Netzwerken zu kommunizieren .

shf301
quelle
Wenn Sie CIDR verwenden, fügen Sie ein Präfix hinzu, um die Anzahl der für die Netzwerkadressierung verwendeten Bits und den Rest für die Hostadressen festzulegen. Beispiel: 200.200.200.0/27 impliziert dann automatisch, dass die Hostadresse 63 oder niedriger sein muss. Auch hier sagt Ihnen die IP immer noch diese Information, daher bleiben Sie bei meiner Frage ...
KMC
Es ist immer noch eine Adresse und eine Netzmaske, wenn alles gesagt und getan ist und das ist es, was die zugrunde liegende Hardware verwendet, um den Netzblock zu berechnen, nicht wahr?
Fiasko Labs
Meine Frage bleibt bestehen, da die IP noch alle Informationen enthält, die eine Subnetzmaske benötigt. Ich finde immer noch keinen Grund, warum eine Subnetzmaske überhaupt existiert.
KMC
1
@KMC: Ich verstehe Ihren Kommentar nicht wirklich, ein CIDR-Präfix ist vergleichbar mit einer Subnetzmaske und Software, verwendet also aus Geschmacksgründen häufig entweder das Präfix oder die Maske.
Legolas
20
@KMC: /27 ist die Subnetzmaske, die nur in einer anderen Schreibweise geschrieben wurde.
Heinzi
20

Das 1. Oktett gibt bereits die Netzwerkklasse an (1-127: A, 128-191: B, 192-223: C usw.). A, B oder C gibt die Anzahl der Oktetts für das Netzwerk (255.0.0.0, 255.255.0.0, 255.255.255.0) an, die automatisch angibt, wie viele Hosts für jede Netzwerkklasse zulässig sind.

Richtig, aber wenn jemand dieses Netzwerk subnetzen würde, müsste die Subnetzmaske wissen, in welchem ​​Subnetz Sie sich befinden. Ja, bei klassischer Adressierung gibt die Klasse die Größe des Netzwerks an und ermöglicht es Ihnen, zu bestimmen, ob a Der Host befindet sich im selben Netzwerk wie Sie. Wenn dieses Netzwerk jedoch ohne die Subnetzmaske in ein Subnetz eingebunden ist, woher wissen Sie dann, ob sich ein anderer Knoten im selben Subnetz wie Sie befindet?

Angenommen, Sie befinden sich in einem Ethernet-Netzwerk. Wir verwenden klassisches Adressieren mit Subnetting. Ihre IP-Adresse ist 1.2.3.4und Sie möchten erreichen 1.3.1.1. Verwenden Sie ARP, um diese Adresse zu erreichen? Nun, es hängt davon ab, ob 1.2.3.4und 1.3.1.1in demselben Subnetz sind . Auch wenn sie sich im selben Netzwerk befinden und sich in unterschiedlichen Subnetzen befinden, muss ein Router verwendet werden. Wenn sie sich im selben Subnetz befinden, sollte ARP verwendet werden.

Daher benötigen Sie die Subnetzmaske, wenn Subnetze verwendet werden, auch in klassischen Netzwerken.

Ich denke, Sie verwechseln das Subnetz mit CIDR. Ohne CIDR benötigen Sie auch mit Subnetting keine Subnetzmaske zwischen Verwaltungsregionen. Aber Sie brauchen es immer noch im Netzwerk!

David Schwartz
quelle
6

Eine Subnetzmaske wird verwendet, um eine IP-Adresse in Verbindung mit einer Netzwerkadresse etwas genauer zu bearbeiten. Wenn mein Gedächtnis mir gut tut, nimmst du eine IP-Adresse und machst ein bisschen weise UND darauf und die Subnetzmaske für ein bestimmtes Netzwerk. Wenn das Ergebnis der Netzwerkadresse entspricht, befindet sich die IP-Adresse in diesem bestimmten Netzwerk. Router mit Routingtabellen für Netzwerkadressen und Subnetzmasken können mithilfe einfacher binärer Berechnungen (die für Computer sehr schnell, wenn nicht sogar am schnellsten zu handhaben sind) herausfinden, an welcher Schnittstelle ein Paket abgelegt werden soll.

Adrian Thompson Phillips
quelle
3

"Das 1. Oktett gibt bereits die Netzwerkklasse an (1-127: A, 128-191: B, 192-223: C usw.)."

Heutzutage gibt es nicht mehr viele Protokolle, die dies berücksichtigen (siehe @Fiasco Labs Kommentar - RIP ist das einzige, an das ich denken kann). Also, diese Aussage in Ihrer Frage:

Die IP-Adresse enthält alle Informationen, die eine Subnetzmaske enthält, und vieles mehr.

trifft nicht auf die große Mehrheit der heute im Internet verwendeten Protokolle zu.

Wenn mehrere Maschinen miteinander verbunden sind und immer nur miteinander kommunizieren, ohne dass ein Router beteiligt ist, wird die Subnetzmaske nicht wirklich benötigt (obwohl moderne TCP / IP-Stacks darauf bestehen, dass Sie eine angeben).

Router definieren die Kanten von (Sub-) Netzwerken. Alles, was über einen Router gehen muss, befindet sich in einem anderen Netzwerk - und umgekehrt: Alles, was über ein anderes Netzwerk gehen muss, muss über einen Router gehen.

Über die Subnetzmaske können alle Computer feststellen, ob der Datenverkehr für das aktuelle Netzwerk bestimmt ist oder an einen Router gesendet werden muss, um an das Ziel zu gelangen. Der TCP / IP-Stack Ihres Computers sendet den Datenverkehr direkt an das Ziel, wenn er sich in der Subnetzmaske befindet. Andernfalls wird die Routing-Tabelle verwendet. In der Regel wird der Datenverkehr an das Standard-Gateway gesendet.

LawrenceC
quelle
3

Das 1. Oktett gibt bereits die Netzwerkklasse an (1-127: A, 128-191: B, 192-223: C usw.). A, B oder C gibt die Anzahl der Oktetts für das Netzwerk (255.0.0.0, 255.255.0.0, 255.255.255.0) an, die automatisch angibt, wie viele Hosts für jede Netzwerkklasse zulässig sind.

Während dies historisch wahr war. Das ist seit Jahren nicht mehr wahr. Vor Jahren wurde 24.0.0.0/8 an verschiedene ISPs verteilt. (Ich glaube, das war hauptsächlich für Kabelanbieter.)

Selbst wenn dies für Netzwerkzuweisungen zutraf, waren für interne Netzwerke Netzmasken erforderlich, um das Routing zu vereinfachen. Effizientes Routing eines Netzwerks wie 10.0.0.0/8 erfordert die Unterteilung in kleinere Netzwerke. Dies kann ein einfaches Schema sein, das die Unterteilungen / 16 und / 8 verwendet, es ist jedoch wahrscheinlicher, dass es sich um eine klassenlose Unterteilung handelt. Größere Subnetze nutzen den Adressraum effizienter (über 99% von a / 24 sind für Geräte verfügbar, während nur 50% von a / 30 verfügbar sind.

Das lokale Netzwerk wird direkt vom Gerät geroutet, während andere Adressen über einen Router weitergeleitet werden. Hosts mit mehreren Schnittstellen können an Netzwerke unterschiedlicher Größe angeschlossen werden.

Bei Teilnetzen ohne mehrfach vernetzte Hosts enthält / 24 mehr Adressen als erforderlich. Die meisten Router, mit denen ich gearbeitet habe, haben 24, 48 oder 96 Ports und können mit / 27, / 26 oder / 25 Subnetzen unterstützt werden. Dies ermöglicht einige zusätzliche Adressen für DCHP und / oder Multi-Homing. Organisationen können die Zuweisung von Teilnetzen von / 24 oder / 23 für das Routing standardisieren.

Warum benötigen wir noch eine Subnetzmaske, da eine IPv4-Adresse bereits Informationen über das Netzwerk und den Host enthält?

Viele Geräte verwenden eine Standardnetzmaske von / 24, die in vielen Fällen der Größe des dem Router zugewiesenen lokalen Subnetzes (localnet) entspricht. Dies gilt auch für die Klassen A, B und C. Sofern die Subnetzgröße nicht mit dem Standard-Subnetz übereinstimmt, ist eine Netzmaske erforderlich.

Wenn Adressen im CIDR-Format angegeben werden, können die Netzmaske und das Netzwerk aus der Adresse berechnet werden. Wenn nicht, kann das Netzwerk aus der Adresse und der Netzmaske berechnet werden. Es ist nicht möglich, die Netzmaske zuverlässig aus der Adresse und dem Netzwerk zu berechnen.

Durch die Angabe einer Gateway-Adresse (Router-Adresse) für ein Subnetz kann die Standardroute konfiguriert werden, sodass das Routing an Adressen außerhalb des Subnetzes erfolgt.

BillThor
quelle
2

Abgesehen von der Antwort von @ Adrian bin ich mir nicht sicher, ob eine dieser Aussagen tatsächlich WARUM wir die Maske anstelle einer einfacheren Lösung verwenden - und er hat nur die Tatsache angesprochen, dass die Maskierung SCHNELL ist. Ich meine, warum nicht einfach angeben, dass Sie es sind Interessiert an Adressen 192.168.1.200-192.168.1.220, oder warum nicht einfach Namen wie * .my.address.com verwenden, nur jeden Computer benennen, anstatt Nummern zuzuweisen?

Sie können jetzt tatsächlich bis zu einem gewissen Grad Nummern vollständig aus dem Routing entfernen. Die meisten PCs können die Art des gesendeten Datenverkehrs verarbeiten, aber es gibt immer noch ein Problem bei größeren Geräten.

Filterung wie diese passiert die ganze Zeit und es passiert eine Menge. Das Maskieren kann in Hardware erfolgen, sodass keine Zeit mit uninteressanten Paketen verschwendet werden muss (früher waren es 99% der Pakete, die Sie durch Ihre Leitung geschickt haben). Bei Switched Hubs sollten Sie keine sehen, die dies nicht sind an Ihre Maschine adressiert, wodurch sie wieder weniger relevant wird).

Für eine Lösung, die die Hardware so schont, ist sie auch sehr flexibel. Dieselbe Hardware kann ein gesamtes Klasse-A-Netzwerk (10.xxx) oder nur eine oder zwei IP-Adressen mit derselben Implementierung routen.

Dies ist kein Ersatz für eine der anderen Antworten, nur ein bisschen mehr Info.

Bill K
quelle
"Warum nicht einfach Namen wie * .my.address.com verwenden, nur jeden Computer benennen" - Sie meinen, wie DNS?
Piskvor
@ Piskvor Genau! DNS wird in IP-Adressen aufgelöst. Sie können DNS direkt verwenden, aber die verwendete Verarbeitungsleistung wird erhöht. Sie können sogar Domains unterteilen, sodass * .meh.com zu einer Adresse wechselt, mit Ausnahme von * .alt.meh.com zu einer anderen ...
Bill K
Das funktioniert, ja - das heißt, wenn es funktioniert (zusätzliche Komplexität); Außerdem müssen Sie wissen, wo sich der DNS-Server befindet. Henne-Ei-Problem.
Piskvor
@Piskvor Ich sage nur, dass es andere Möglichkeiten gibt, die gut funktionieren würden, außer der Leistung - in einigen Fällen immer noch von Bedeutung - und der Tatsache, dass ALLES neu geschrieben werden müsste. (Glauben Sie wirklich, dass das Problem mit einem DNS-Server anders wäre, wenn Sie zu einem anderen Adressierungsschema wechseln würden?)
Bill K
Nein, das Problem würde in der Tat bestehen bleiben. (und übrigens, der Drang nach einem einfachen Netzwerk-Stack wird nicht aufhören - ganz im Gegenteil, mit dem "Internet der Dinge" stärker zu werden: Einfach bedeutet auch weniger Stromverbrauch und längere Akkulaufzeit)
Piskvor
1

Es gibt bereits viele Erklärungen in anderen Antworten, aber nicht die Hauptsache.

Sie möchten wissen, warum Subnetzmasken existieren, wenn die IP-Adresse bereits die vollständige Adresse des Empfängers angibt. Sie wissen, dass in großen Organisationen manchmal Abteilungen separate Netzwerke benötigen. So befinden sich beispielsweise Buchhalter in einem anderen Subnetz und können nicht auf die inneren IP-Adressen der Marketingabteilung zugreifen. So könnte beispielsweise ein Mitarbeiter mit der IP-Adresse 192.168.10.3 unter 192.168.15.76 nicht auf den Drucker zugreifen, da er sich in einem anderen Subnetz befindet.

Luka Ramishvili
quelle
1

Bis heute gibt es keine Antwort darauf, warum Subnetze (im Gegensatz zu CIDR) immer noch verwendet werden. Es gibt zwei Probleme mit Subnetzmasken:

  1. Sie können nicht zusammenhängende Masken angeben, die ungültig sind.
  2. (Gilt auch für CIDR) Sie führen zu möglichen Überschneidungen. ISPs können dieselbe IP-Adresse als Teil verschiedener Subnetze vergeben. z.B

    Kunde A: 22.132.124.121 Subnetzmaske 255.255.255.0
    Kunde B: 22.132.114.55 Subnetzmaske 255.255.0.0

Das ist nicht sofort sichtbar, wie es sein sollte.

https://blog.certskills.com/ccent/vlsmo_01_01/

LogicBreaker
quelle
0

Normalerweise fungiert die Subnetzmaske als Indikator für die folgenden Subnetze. In der Regel enthält ein Netzwerk mehrere Subnetze, und die Subnetzmaske ist die Art und Weise, wie der Router Datenverkehr an ein bestimmtes Ziel übermittelt (in jedem Subnetz, das die Subnetzmaske verwendet). Dieser Link enthält eine Einführung in Subnetzmasken

Salah Amean
quelle
1
Bitte fügen Sie die wichtigen Informationen aus dem Link hier hinzu, fügen Sie den Link als Quelle hinzu.
Avirk