Warum müssen wir jeder Schnittstelle eine IP-Adresse zuweisen? Würde es nicht ausreichen, jedem Gerät eines zu geben?
Warum müssen wir jeder Schnittstelle eine IP-Adresse zuweisen? Würde es nicht ausreichen, jedem Gerät eines zu geben?
Antworten:
Durch das Verbinden einer Schnittstelle mit einem Netzwerk wird diese zu einem Teil dieses Netzwerks. Daher ist die IP-Adresse eine Eigenschaft der Verbindung und nicht des Hosts.
Ebenso kann ein Host viele Netzwerkverbindungen und dementsprechend auch IP-Adressen haben. Unterschiedliche Schnittstellen haben oft unterschiedliche Funktionen, daher ist es wichtig, zwischen ihnen zu unterscheiden (z. B. interne Konsole, öffentliche Dienste, iSCSI).
Router benötigen mehrere IP-Adressen für ihre Schnittstellen.
Nein.
Das heißt, sehen wir uns ein vereinfachtes Beispiel an:
Ich habe einen Computer mit drei Schnittstellen: eth0
(kabelgebundenes Ethernet), wlan0
(WLAN) und vboxnet0
(virtuelle Box). Eine der Schnittstellen ist mit einem internen Netzwerk verbunden, eine mit dem Internet und die letzte mit einem Netzwerk virtueller Computer. Angenommen, ich habe nur eine Adresse, 10.1.2.3, und möchte eine ganze Reihe von Paketen an 192.168.1.2 senden, die in einem dieser Netzwerke erreichbar sind. Wohin soll ich sie senden? Sie können sie nicht einfach überall hin senden, ein solches Verhalten würde alle Netzwerke in kurzer Zeit überfluten.
Wenn die eth0-Schnittstelle jedoch 192.168.1.3, wlan0 10.1.2.3 und vboxnet0 172.0.0.1 hat, wird in der Standard-Routingtabelle wahrscheinlich "send it out eth0" angegeben. (Dies kann bei komplexeren Routing-Regeln natürlich sehr viel komplizierter werden.)
Umgekehrt möchte ich einen Dienst möglicherweise nur auf der Schnittstelle ausführen, die für das private Netzwerk geöffnet ist. Wenn also eine Anforderung auf einer anderen Schnittstelle eingeht, wird sie überhaupt nicht verarbeitet.
Fall 1: Router
Theoretisch wäre dies möglich.
Normalerweise wird ein IP-Paket jedoch "direkt" an das Ziel gesendet, wenn die IP-Adresse mit einer bestimmten Netzwerkmaske "übereinstimmt" (z. B. 10.0.0.0/28). Andernfalls wird das Paket über einen Router gesendet.
Das heisst:
Pakete, die von einem Computer zu einem anderen innerhalb eines der beiden Netzwerke gesendet werden, passieren keinen Router.
Dies bedeutet, dass die IP-Adressen der einzelnen Computer mit der Netzwerkmaske des Netzwerks übereinstimmen, mit dem sie verbunden sind.
Pakete, die an den Router gesendet werden (dies schließt Pakete ein, die vom Router weitergeleitet werden!), Werden nicht über einen zweiten Router von einem Computer an den Router gesendet.
Dies bedeutet, dass die IP-Adresse des Routers mit den Netzwerkmasken beider Netzwerke übereinstimmen muss.
IP-Pakete, die von einem Computer in einem Netzwerk an einen Computer im anderen Netzwerk gesendet werden, werden jedoch über den Router gesendet.
Dies bedeutet, dass die IP-Adressen der Computer in einem Netzwerk nicht mit der Netzwerkmaske des anderen Netzwerks übereinstimmen dürfen.
Es ist nahezu unmöglich, eine IP-Adresse und zwei Netzwerkmasken so zu wählen, dass eine IP-Adresse mit beiden Netzwerkmasken übereinstimmt. Viele IP-Adressen stimmen jedoch nur mit einer Netzwerkmaske überein.
Fall 2: Verschiedene private Netzwerke
Wir könnten den Fall haben, dass ein Computer mit zwei privaten Netzwerken verbunden ist, die keine Daten untereinander austauschen können.
In diesem Fall hat ein Computer möglicherweise in beiden Netzwerken dieselbe IP-Adresse.
Bei IPv4 wird dies von den meisten Betriebssystemen nicht unterstützt, da die Betriebssysteme die Netzwerkmasken der beiden Netzwerke zur Unterscheidung verwenden. Die Netzwerke müssen unterschiedliche Netzwerkmasken haben ...
Im Fall von IPv6 (mit „Link-local“ Adressen) ein Computer kann das gleiche (link-local) IP - Adresse in zwei verschiedenen Netzwerken - und damit zwei Netzwerkkarten können die gleiche IP - Adresse!
Ich habe mich gefragt, warum wir jeder Schnittstelle eine IP-Adresse zuweisen müssen. Würde nicht jedem Gerät genug geben?
Lassen Sie mich zunächst Ihre Vermutung in Frage stellen. Warum verhalten sich Maschinen nicht so? Angenommen, ich ordne eth1 192.168.1.1/24 und eth2 192.168.2.1/24 zu. Abgesehen von der Installation einer Route für 192.168.1.0/24 out eth1 und 192.168.2.0/24 out eth2 und der Ermittlung der bevorzugten Quell-IP-Adresse für Pakete, die auf dieser Route gesendet werden, spielt es keine Rolle, welcher Schnittstelle ich die IP-Adresse zuordnet? Was ändert sich wirklich? Inwiefern verhält sich das Gerät nicht so, als ob alle IP-Adressen, die den Schnittstellen des Geräts zugewiesen sind, dem Gerät gehören?
Beide Ansätze werden verwendet. Der gebräuchlichste Ansatz ist eigentlich eine Mischung dieser beiden Ansätze.
Im Extremfall "Geben Sie einem Gerät eine IP-Adresse" können Sie sich ein Gerät vorstellen, das sich so verhält, als wären alle Schnittstellen mit einer Filterbrücke verbunden, der eine IP-Adresse zugewiesen wurde.
Im Extremfall "Geben Sie jeder Schnittstelle eine IP-Adresse" können Sie sich ein Gerät vorstellen, das sich so verhält, als ob jede Schnittstelle wie ein separater Computer wäre. (Sehen Sie hier, ob Sie der Meinung sind, dass Geräte derzeit so arbeiten, oder ob Sie an jemanden denken, der sich mit einer IP-Adresse verbindet, die einer Schnittstelle zugewiesen ist, aber die Pakete ankommen und eine andere senden.)
In der Praxis arbeiten die meisten Maschinen irgendwo dazwischen. Sie tun so, als wären alle IP-Adressen Eigentum des Computers. Die Zuweisung einer IP-Adresse zu einem bestimmten Gerät reicht nicht aus, um das Betriebssystem anzuweisen, eine Standardroute für diese Schnittstelle zu installieren und die Standard-Quell-IP-Adresse für Pakete festzulegen, die an die Schnittstelle gesendet werden, an der die Quell-IP-Adresse nicht angegeben ist. t gezwungen.
Andernfalls verhalten sie sich so, als ob alle IP-Adressen dem Computer gehören. Die Art und Weise, wie ein Paket verarbeitet wird, hängt nicht wesentlich davon ab, auf welcher Schnittstelle es empfangen wird. Pakete mit einer Quell-IP-Adresse, die einer auf einer anderen Schnittstelle empfangenen IP-Adresse zugewiesen ist, sind Routine. Welcher Schnittstelle eine Adresse zugewiesen ist, hat keinen direkten Einfluss darauf, an welche Schnittstelle ein Paket gesendet wird. Die Routing-Tabelle bestimmt dies.
Ein Gerät mit einer IP-Adresse ist in einem Netzwerk vorhanden.
Ein Router ist ein Gerät, dessen Hauptzweck darin besteht, Datenverkehr zwischen Netzwerken weiterzuleiten .
Damit ein Router Pakete zwischen zwei Netzwerken weiterleiten kann, muss er in beiden Netzwerken vorhanden sein.
Der Router wird in jedem Netzwerk einen "Arm" haben - oder wie wir es nennen, eine Schnittstelle . Die Art und Weise, wie eine Schnittstelle in einem Netzwerk vorhanden ist, besteht darin, ihr eine IP-Adresse innerhalb des Netzwerks zuzuweisen.
Daher wird , wenn ein Router zu konfigurieren, wobei jede Schnittstelle erhält eine IP - Adresse an die Netzwerke zu identifizieren , die die Router gehören innerhalb .
Haftungsausschluss: Der obige Link führt zu meinem Blog. Mein Blog ist nicht monetarisiert. Ich profitiere nicht davon, dass du es liest. Ich stelle einen Link nur für Sie (und andere Leser) zur Verfügung.
Im Allgemeinen benötigen Sie eine IP für jedes lokale Netzwerk, zu dem Sie eine Verbindung herstellen, und genau so wurde TCP / IP definiert: Jeder Host in einem bestimmten lokalen Netzwerk verfügt über eine IP-Adresse, die Folgendes ermöglicht:
Solange Sie lokale Netzwerke mit mehreren angeschlossenen Geräten haben (die meisten lokalen 802.x-Netzwerke, einschließlich Ethernet, Wi-Fi), ist es ziemlich schwierig, dies zu umgehen, es sei denn, Sie ändern grundlegend die Funktionsweise von TCP / IP.
Es ist jedoch tatsächlich möglich, dies zu vermeiden, obwohl dies sehr spezifisch ist.
Stellen Sie sich ein Netzwerk vor, das nur über Punkt-zu-Punkt-Verbindungen verfügt (Punkt-zu-Punkt-Ethernet zwischen zwei Geräten ohne Switch oder Hub, DSL-Verbindungen, SONET / SDH-Verbindungen, Frame Relay oder ATM-VCs ...).
Die übliche Konvention ist die Verwendung von / 30 für jede Verbindung, sodass das Gerät an jedem Ende eine IP-Adresse für diese Verbindung hat.
Sie können jedoch "IP nicht nummeriert" verwenden und diesen Links keine IP-Adressen zuordnen. Nun weisen Sie der Loopback-Schnittstelle des Geräts eine IP zu (jede Schnittstelle, für diesen Zweck ist Loopback jedoch die einfachste) und verwenden ein dynamisches Routing-Protokoll (IS-IS, OSPF, EIGRP ...). Dieses Routing-Protokoll gibt an, wie der Datenverkehr über die verschiedenen nicht nummerierten Links an diese IP-Adresse weitergeleitet wird.
IP-Adressen enthalten Routing-Informationen. Ein IP - Adresse ist in zwei Komponenten aufgeteilt, die Netzwerknummer und die Host - Nummer , basierend auf einer zugewiesenen Präfix Länge (die ursprünglich als Netzmaske ausgedrückt wurde, und das ist immer noch oft , wie es in Netzwerk - Stacks intern implementiert ist).
Damit das Routing ordnungsgemäß funktioniert, müssen alle an ein bestimmtes Netzwerk angeschlossenen Geräte Adressen mit derselben Netzwerknummer haben. Die Sender bestimmen, ob sich der Empfänger im selben oder in einem anderen Netzwerk befindet, indem sie ihre eigene Netzwerknummer mit der Adresse des Empfängers vergleichen. Wenn sie sich im selben Netzwerk befinden, senden sie direkt. Andernfalls senden sie an einen Router, dessen Aufgabe es ist, die Nachricht näher an das Ziel zu bringen.
Wenn ein Gerät mit mehreren Netzwerken verbunden ist, benötigt es eine Adresse in jedem dieser Netzwerke, damit Geräte in diesem Netzwerk darauf zugreifen können.
Es ist jedoch nicht unbedingt erforderlich, dass die Adressen bestimmten Netzwerkschnittstellen zugewiesen werden. Das Gerät verfügt möglicherweise nur über eine Liste aller IP-Adressen in einer einzigen Tabelle. Die Schnittstellen benötigen jedoch weiterhin Informationen darüber, mit welchem Netzwerk sie verbunden sind. Indem wir jeder Schnittstelle eine IP- und eine Netzwerkmaske zuweisen, platzieren wir diese Informationen an einem Ort und vereinfachen so das Design. Es ist kein zusätzlicher Code erforderlich, um die Liste der IP-Adressen mit der Liste der Netzwerke, mit denen Schnittstellen verbunden sind, in Einklang zu halten.
Es mag im Standardfall ausreichen, eine IP zu haben, aber wie in anderen Antworten hervorgehoben, gibt es viele Fälle, in denen dies nicht der Fall ist.
Andere Antworten haben bereits den Fall eines Routers erwähnt. In einem Artikel wird die virtuelle Box erwähnt, was bei virtuellen Maschinen der Fall ist: Sie können auf einem einzigen physischen Gerät mehrere virtuelle Geräte ausführen. Ein weiterer Fall sind VLANs, die möglicherweise mit einer einzigen Netzwerkkarte, mehreren verschiedenen virtuellen LANs mit unterschiedlichen IP-Adressen verbunden sind. Und Sie könnten sogar aus bestimmten Gründen eine Schnittstelle mit mehreren IPs haben, zum Beispiel, weil Sie mehrere Webserver auf TCP-Port 80 ausführen möchten. Eine solche Konfiguration ist für Server nicht ungewöhnlich, da die von Ihnen gemietete Hardware möglicherweise über eine einzige Netzwerkschnittstellenkarte verfügt Es sind jedoch mehrere IP-Adressen konfiguriert.