it-swarm.com.de

Warum sind Subnetzmasken für den einzelnen Computer im Netzwerk relevant?

Ich verstehe, wie Subnetzmasken verwendet werden, um ein Netzwerk in Subnetzwerke zu unterteilen, aber warum muss jeder Computer im Netzwerk die Subnetzmaske kennen und nicht nur den Router?

Ich könnte es verstehen, wenn jeder Computer physisch über ein Kabel miteinander verbunden wäre, aber alle Pakete trotzdem über den Router gesendet werden müssten.

Angenommen, ich habe einen Computer in einem Netzwerk 192.168.0.0/255.255.255.0 mit der IP 192.168.0.1.

Wenn dieser Computer versucht, einen Computer außerhalb des Subnetzwerks zu erreichen, beispielsweise 192.168.1.1, überträgt er die Nachricht an den Router. Der Router erkennt, dass sich die IP außerhalb des IP-Bereichs des Subnetzwerks befindet, und überträgt sie nicht auf dem Subnetzwerk -Netzwerk, es überträgt es an das Netzwerk, mit dem es verbunden ist (vielleicht ein anderer Router).

48
Orpedo

Ihre ursprünglichen Annahmen stimmen nicht ganz. Was Sie als "Router" bezeichnen, sind zwei Geräte in einem - ein Zwei-Port-Router, der intern mit einem Mehrfach-PortEthernet-Switchverbunden ist. (Hier ist ein Beispiel Diagramm .)

Dies bedeutet, dass die Computerdirekt auf Schicht 2 verbunden sind und Pakete untereinander senden könnenohnedurchzugehen der Router-Core - sie werden einfach vom Switch-Chip zwischen den Ports weitergeleitet. (Der Router hat einen eigenen "Port" im Switch.)

Wenn Sie sich also die Pakete mit Wireshark ansehen, werden Sie feststellen, dass sie direkt die MAC-Adressen des anderen verwenden, während "externe" Pakete immer die MAC-Adresse des Routers als Ziel haben.

(Ich nehme an, Sie sprechen von den typischen "drahtlosen Routern", die in den meisten Haushalten zu finden sind und die die übliche Ursache für diese Art von Fragen sind. Ein größeres Netzwerk hätte einseparateRouter mit einem Port pro Subnetz und einigen separaten Switches (möglicherweise einem Master plus einem pro Etage/Raum) und mehreren Dutzend Computern, die an diese Switches angeschlossen sind.)

Bei Wi-Fi-Netzwerken ist dies in etwa gleich, mit der Ausnahme, dass "switch" durch "wireless bridge" (auch als "Zugangspunkt" bezeichnet) ersetzt wird. In beiden Fällen können verbundene Computer auf Schicht 2 Pakete direkt aneinander senden,ohneden Router zu durchlaufen.


Bemerkungen:

Als ich Router sagte, meinte ich eigentlich Switch. Mein Fehler. Mein Punkt ist, dass jeder Computer in einem Subnetz nicht miteinander verbunden ist, sondern mit einem Switch, der Pakete dann an das richtige Ziel weiterleiten kann. Ein Ethernet-Frame enthält keine Subnetzmaske, da der Switch dieses Wissen bereits besitzt und es daher nicht benötigt, um das richtige Switching durchzuführen.

Das ist wieder falsch. Switches verfügen nicht über dieses Wissen. Ihr Vermittlungskern arbeitet auf Schicht 2 und kenntnichtsüber IP - er leitet Ethernet-Frames nur basierend auf dem Feld "Ziel-MAC-Adresse" weiter.

Daher benötigen Hosts die Subnetzmaske, um herauszufinden, welche MAC-Adresse als Ziel verwendet werden soll:

  • Befindet sich der Peer innerhalb desselben Subnetzes, wird per Definitionon-linkangenommen, sodass der Ethernet-Frame den MAC des Peers als Ziel hat.

  • Für Peersaußerhalbdes Subnetzes hat der Ethernet-Frame das Zielgateway'sMAC.

(Dies gilt für die Standardkonfiguration. Einige Spezialschneeflockennetzwerke ändern dies - z. B. erlauben die meisten Betriebssysteme das Hinzufügen zusätzlicher "On-Link" -Routen für zusätzliche Subnetze. Umgekehrt können einige Switches gefälscht konfiguriert werden ARP antwortet so, dass selbst "On-Link" -Verkehr durch das Gateway gezwungen wird.)

78
grawity

Woher weiß ein Computer, ob sich eine Zieladresse im selben Subnetz in einem anderen befindet?

Überprüfen Sie die lokale Adresse und die Subnetzmaske .

Schauen wir uns ein paar Beispiele an:

Wenn mein Computer über die IP-Adresse 192.168.0.1 verfügt und die Maske 255.0.0.0 lautet, bedeutet dies, dass sich alle Adressen von 192.0.0.0 bis 192.255.255.255 im selben Subnetz befinden. Die Pakete an alle anderen Computer müssen nicht über den Router gesendet werden, sondern können direkt gesendet werden. Senden Sie ein ARP-Paket, um die MAC-Adresse des Zielcomputers abzurufen, und senden Sie dann das Paket.

Wenn mein Computer jedoch über die IP-Adresse 192.168.0.1 und die Maske 255.255.255.128 verfügt, stammen die Computer im selben Subnetz nur von der IP-Adresse 192.168.0.0 bis 192.168.0.127. Sie können direkt erreicht werden (ARP senden, MAC - Adresse ermitteln usw.) Jede andere Adresse, zum Beispiel 192.168.0.200, muss über den Router erreicht werden.

32
jcbermu

Was an IP nicht offensichtlich ist, ist, dass jedes IP-Gerät selbst ein Router ist .

Dies kann auf einem normalen PC mit dem Befehl "Route drucken" angezeigt werden. Sie sind mit zwei Netzwerken verbunden: Ihrem lokalen Ethernet- oder WLAN-Segment und dem lokalen Host-Netzwerk. Für jedes Paket muss eine Entscheidung darüber getroffen werden, in welches Netzwerk es gestellt werden soll.

Dies wird deutlicher, wenn Sie Ihren Computer in zwei Netzwerke einbinden, z. B. ein "öffentliches" und ein "privates". Jetzt brauchen Sie definitiv die Subnetzmaske, um zu entscheiden, über welches Netzwerk das Paket gesendet werden soll.

Viele Leute werden aus Versehen feststellen, dass ein PC mit einer einzigen Netzwerkverbindung möglicherweise mit einer falsch konfigurierten Submaske funktioniert: Sie senden einfach alles an das Gateway.

11
pjc50

Ich sehe dies in einigen der anderen Antworten hier, aber ich denke, es könnte klarer sein: Auf Computern mit mehreren Netzwerkschnittstellen kann die Subnetzmaske verwendet werden, um automatisch zu bestimmen, welche physische Schnittstelle gesendet werden soll IP-Verkehr auf der Grundlage der Ziel-IP-Adresse.

Wenn Sie ein Paket an ein Gerät in einem LAN senden, das mit einer der Schnittstellen verbunden ist, kann der Computer die Schnittstellen überprüfen, um festzustellen, auf welcher Schnittstelle das Paket gesendet werden soll (wenn Sie keine Route explizit konfiguriert haben) if subnet_mask & destination_ip == subnet_mask & interface_ip (mit & meine ich bitweise und und mit == Ich meine, um Gleichheit zu behaupten), und wenn es eine Übereinstimmung gibt, wählen Sie diese Schnittstelle.

Auf diese Weise, wenn Sie zum Beispiel haben:

  • Schnittstelle A mit 192.168.1.42/24
  • Schnittstelle B mit 10.0.0.15/24
  • Schnittstelle C mit 192.168.2.97/24

Wenn Sie ein Paket an 192.168.2.123 senden und keine Route eingerichtet haben, kann festgelegt werden, dass die Schnittstelle C verwendet werden soll, da 255.255.255.0 & 192.168.2.123 == 255.255.255.0 & 192,168,2,97 .

Dies wäre nicht möglich, wenn die Subnetzmaske nicht bekannt wäre. Daher müsste für jede einzelne IP-Adresse, an die Sie Daten gesendet haben, eine Route eingerichtet werden.

7
Jason C

TCP/IP könnte wie von Ihnen vorgeschlagen entworfen worden sein - Blattknoten senden alles an den Router und leiten es an das Ziel weiter, das sich möglicherweise im selben Subnetz wie der Absender befindet.

Dies wäre jedoch aus zwei Gründen kein optimales Design:

  1. Es wird mehr Bandbreite verwendet: Jedes Paket zwischen Geräten im selben Subnetz muss zweimal übertragen werden: einmal vom Absender zum Router und erneut vom Router zum Empfänger. In Netzwerken, in denen der Router auch der Netzwerk-Switch ist, ist dies eigentlich keine zusätzliche Bandbreite, da er den Switch sowieso passieren würde. Aber nicht alle Netzwerktechnologien funktionieren so. Das ursprüngliche Ethernet-Design war eine Bustechnologie ohne zentralen Switch oder Repeater.

  2. Dadurch wird der Router stärker belastet. Auch wenn der Router gleichzeitig der Switch ist, ist dies etwas aufwändiger, da die Implementierung des Layer-3-Routings vorangetrieben wurde und nicht das einfachere Layer-2-Switching.

Eine allgemeine Philosophie, die das Design von TCP/IP verkörpert, ist, dass Endknoten intelligente Geräte sind, sodass davon ausgegangen wird, dass sie einen Teil der Arbeit erledigen können. Sie müssen nicht die gesamte Netzwerktopologie kennen, wie dies bei Backbone-Routern der Fall ist, aber sie wissen genug über die lokale Umgebung, um einen Teil der anfänglichen Routing-Aufgaben zwischen lokalem und Remote-Netzwerk zu übernehmen. Es ist nicht viel Code erforderlich, um dieses einfache anfängliche Routing zu implementieren.

Darüber hinaus befinden sich Nicht-Router-Geräte nicht unbedingt in nur einem Subnetz. Sie können problemlos mehrere Netzwerkkarten in einem PC haben - viele haben sowohl Ethernet als auch WiFi. Jedes dieser Geräte kann mit einem anderen Subnetz verbunden werden. Mithilfe von Adressen und Subnetzmasken wird festgelegt, welche Netzwerkkarte verwendet werden soll. Wenn Sie virtuelle Maschinen ausführen, besteht wahrscheinlich ein virtuelles Subnetz, das sie mit dem Hostsystem verbindet.

6
Barmar

Wenn wir uns eine Routing-Tabelle ansehen (das ist zufällig mein Desktop-Computer):

ip route

default via 172.20.25.1 dev eth1 
172.20.25.0/24 dev eth1 proto kernel scope link src 172.20.25.33 
192.168.0.0/24 dev eth0 proto kernel scope link src 192.168.0.1

route

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         172.20.25.1     0.0.0.0         UG    0      0        0 eth1
172.20.25.0     0.0.0.0         255.255.255.0   U     0      0        0 eth1
192.168.0.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0

Jede Ansicht vermittelt die gleichen Informationen. Die Subnetzmasken geben an, welche Hosts in diesem Netzwerk direkt erreichbar sind , und andere Hosts werden über ein Gateway gefunden. Insbesondere müssen wir wissen, dass das Gateway erreichbar ist, da wir sonst keine Pakete zur Weiterleitung senden können.

Sie können im Prinzip alles über Ihren Gateway-Host senden. Das würde so aussehen

default via 172.20.25.1 dev eth1 
172.20.25.1 dev eth1 proto kernel scope link src 172.20.25.33 

oder

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         172.20.25.1     0.0.0.0         UG    0      0        0 eth1
172.20.25.1     0.0.0.0         255.255.255.255 U     0      0      

Ich habe das nicht ausprobiert, aber es kann für MAC-Forced Forwarding verwendet werden.

5
Toby Speight

Okay, ich verstehe, wie Subnetzmasken verwendet werden, um ein Netzwerk in Subnetzwerke zu unterteilen. Meine Frage ist jedoch, warum jeder Computer im Netzwerk die Subnetzmaske und nicht nur den Router kennen muss.

nun, die Geräte, die als Router bezeichnet werden, sind normalerweise nicht nur Router. Daher verwenden die Benutzer manchmal Begriffe wie NAPT Router, Home Router oder Consumer Router, um darauf hinzuweisen, dass es sich nicht nur um einen Router handelt. Um zu verdeutlichen, dass diese Geräte nicht nur Router sind, sondern auch NAPT (was kein Routing ist) und einen eingebauten Switch (ein Switch führt Bridging aus, was kein Routing ist - Unterscheidung zwischen einem Switch und einer Bridge) sind ein bisschen nicht so gut definiert - man könnte sagen, dass eine Bridge oft zwei Ports hat und verschiedene Netzwerkmedien (z. B. Ethernet und Nicht-Ethernet) verbindet, während ein Switch mehrere Ports und dasselbe Netzwerkmedium hat. Ein Schalter überbrückt.

Wenn der Switch vom "Router" getrennt wäre, wäre es in der Tat klarer. Wenn sich die IP-Adresse im selben Netzwerk befindet, dann das Paket ist gerichtet an Das Kabel führt zum nächsten physischen Switch, der letztendlich für einen anderen Computer im Netzwerk bestimmt ist (es sei denn, es handelt sich um einen verwalteten Switch und Sie haben eine Verbindung zum Switch hergestellt, z. B. telnet oder http, und der Switch hatte eine eigene IP-Adresse ) und da das Paket nicht für ein anderes Netzwerk bestimmt ist, erreicht es den Router nicht. Wenn es für einen Computer in einem anderen Netzwerk bestimmt ist, wird es natürlich weiterhin an den Switch weitergeleitet, danach jedoch an den Router (der Switch hat das Paket an den Router und die Ziel-MAC-Adresse des eingehenden Pakets weitergeleitet) der Switch wäre die MAC-Adresse des Routers gewesen, und die Route würde sie aus der richtigen Schnittstelle des Routers herausleiten.

Bei diesen Dingen, die normalerweise als Router bezeichnet werden und Switches enthalten (z. B. nicht die professionellen Cisco/Juniper-Router), befindet sich der Switch im Inneren. Aber das ist nur die Position des Switches. Es ist immer noch so, wenn die IP eingeschaltet ist Im selben Netzwerk wird dann das Paket an den Switch adressiert und nicht an den Router. Und es geht nur zum Schalter innerhalb des Fräsers und erreicht nicht den Fräser.

Ich könnte es verstehen, wenn jeder Computer physisch über ein Kabel miteinander verbunden wäre,

was meinst du hier .. Wenn alle Computer in einem gesamten Netzwerk physisch mit einem Kabel verbunden wären .. dann bräuchten Sie wohl keinen Switch oder Router. Was Sie beschreiben, klingt ein bisschen wie Original-Ethernet. Und wenn alle mit einem Kabel verbunden wären, wäre es wahrscheinlich kein so großes Netzwerk. Und es wird sowieso kein Draht sein, wie Sie es gewohnt sind. Auf dem Weg dorthin wären Computer mit "Wasserhähnen" verbunden. Ich weiß also nicht, warum Sie diesen Satz gerade reingeworfen haben.

aber alle pakete müssen ohnehin durch den router gehen.

sie wollen also die Idee von allen Computern beiseite lassen, die mit einem Kabel ohne Router verbunden sind.

Und nein, selbst bei Ihnen zu Hause gehen sie nicht jedes Mal durch den Router. Auch mit Ihrem "Heimrouter", nennen Sie es eine Internetbox. Sie gehen zum Schalter hinein.

Nehmen wir an, ich habe einen Computer in einem Netzwerk 192.168.0.0/255.255.255.0, der die IP 192.168.0.1 hat.

Wenn dieser Computer versucht, einen Computer außerhalb des Subnetzwerks zu erreichen, beispielsweise 192.168.1.1, überträgt er die Nachricht an den Router.

zum switch dann vom switch geht es zum router

der Router erkennt, dass sich die IP außerhalb des IP-Bereichs des Subnetzwerks befindet, und überträgt sie nicht über das Subnetzwerk, sondern an das Netzwerk, mit dem er verbunden ist (möglicherweise an einen anderen Router).

nun, der Router erkennt, für welche Netzwerkschnittstelle er zuständig ist. Es sendet von einer Schnittstelle zu einer anderen Schnittstelle. Eine Unterscheidung - neben welcher Schnittstelle, wäre, ob ein Netzwerk direkt angeschlossen ist oder nicht. Es könnte an einen Switch und dann an einen Computer weitergeleitet werden. Oder es könnte an einen Computer senden. Wenn das Netzwerk nicht direkt verbunden ist, wird es an einen anderen Router weitergeleitet.

und dein letzter satz war

es überträgt die Nachricht an den Router,

und dann hast du plötzlich beschlossen, nicht mehr zu schreiben?

der Router erkennt, dass sich die IP außerhalb des IP-Bereichs des Subnetzwerks befindet, und überträgt sie nicht über das Subnetzwerk, sondern an das Netzwerk, mit dem er verbunden ist (möglicherweise an einen anderen Router).

nun, ich würde es nicht so ausdrücken. Jede Schnittstelle am Router hat einen anderen IP-Bereich.

Bei Ihrem Consumer- oder Home-Router ist dies jedoch wie bei einem Router mit zwei Schnittstellen, an die an Ihrer Seite ein Switch angeschlossen ist. Und die mehreren Ports sind Ports des Switch.

Also, wenn Sie in Bezug auf den Router-Teil denken, ist es nicht so, als ob sich das innerhalb des Subnetzwerks und das außerhalb befindet, denn es gibt möglicherweise viele Netzwerke. Es gibt eine auf jeder Schnittstelle. Und der Router sendet es nicht an dasselbe Netzwerk zurück, von dem es stammt. Der Grund, warum es den Router an erster Stelle erreichte, ist genau, dass der Switch (den es zuerst erreichte) die MAC-Adresse sah und so sah, dass dies nicht die MAC-Adresse des Routers ist.

Der Computer, der das Paket gesendet hat, überprüft, ob sich die Ziel-IP des Pakets in seinem eigenen Netzwerk oder in demselben Netzwerk befindet, und wählt dann basierend darauf die relevante MAC-Adresse aus. Entweder die MAC-Adresse des Computers, für den sie bestimmt ist (wenn sich der Computer im selben Netzwerk befindet). Oder (wenn sich der Computer an einer anderen Schnittstelle des Routers befindet), ist dies die MAC-Adresse des Routers. Ich denke, das könnte den Titel Ihrer Frage ganz direkt beantworten, warum der Computer die Subnetzmaske kennen muss. Im TCP/IP-System wie es ist, wählt der Computer die relevante Schicht 2 aus Adresse zB für Ethernet die MAC-Adresse.

2
barlop

Aber warum gibt es dann die Subnetzmaske für den Cuputer/das Gerät, wenn es für nichts benötigt wird? - Orpedo 22. März um 13:45 Uhr

Der Computer/das Gerät verwendet die Subnetzmaske, um die IP-Broadcast-Adresse zu berechnen.

IP-Schnittstellen, die sich nicht im Promiscuous-Modus befinden, sind so konfiguriert, dass sie sowohl auf die IP-Broadcast-Adresse als auch auf ihre eigene IP-Adresse reagieren.

1
Joe Inwap