Ich versuche die Beziehung zu verstehen zwischen:
- Ein "vernetztes" Linux-Gerät; und
- Die physische NIC-Karte auf diesem Gerät (damit es "vernetzt" werden kann); und
- Verschiedene Ethernet / Wi-Fi - Netzwerkschnittstellen (
eth0
,eth1
,wlan0
, etc.); und - IP-Adressen und Ports
Von dem, was ich gesammelt habe, es scheint , dass jede Schnittstelle (auch hier eth0
, eth1
, wlan0
, etc.) ihre eigenen IP zugeordnet ist. Die Bedeutung auf meinem Computer eth0
hätte eine andere IP als beispielsweise wlan1
.
Dies widerspricht jedoch meinem Verständnis, dass vernetzte Geräte insgesamt eine einzige IP für das gesamte Gerät erhalten.
Also was ist es? Erhält ein Gerät 1 IP, die von allen Schnittstellen verwendet wird, oder erhält jede Schnittstelle tatsächlich eine eigene IP? Wenn jeder seinen eigenen bekommt, was bestimmt dann, wie viele Ports auf dieser Schnittstelle verfügbar sind?
networking
ip
ethernet
Zac
quelle
quelle
Antworten:
Jede Netzwerkschnittstelle hat ihre eigene IP-Adresse, wenn IP-Verkehr durch sie fließen soll.
Nehmen Sie zum Beispiel Ihren Router / Modem, den die meisten Haushalte und / oder kleinen Büros haben.
Auf der internen Seite des Routers wird eine Verbindung zu Ihren Computern / Laptops hergestellt - unabhängig davon, ob es sich um WLAN oder Ethernet handelt. Diese liegen normalerweise im privaten Adressbereich von
191.168.0.0 - 192.168.255.254
oder manchmal10.0.0.0 - 10.255.255.254
. Ihr Desktop / Laptop / Tablet stellt eine Verbindung zu dieser Seite des Geräts her und hat selbst und die IP-Adresse im gleichen Bereich (jedoch nicht identisch mit dem Gerät).Auf der Außenseite des Routers / Modems befindet sich eine vollständig separate IP-Adresse, die Ihrem Gerät normalerweise vom Dienstanbieter automatisch zugewiesen wird. Dies ist eine routingfähige Adresse,
98.23.45.62
die für Ihr Modem / Ihren Router während der Verbindung global eindeutig ist.Kleine Modems / Router wie diese können verwirrend sein, da sie nur die eine Adresse zu haben scheinen - die im Benutzerhandbuch für die Verwaltung des Geräts über einen Webbrowser (z. B.
http://192.168.0.1
) angegebene -, obwohl es viele Ethernet-Ports hat. Dies liegt daran, dass das Gerät im Wesentlichen über einen Netzwerk-Switch verfügt, der mit dem Router verbunden ist, um den einzelnen Ethernet-Port des Routers in viele Ports aufzuteilen und eine WiFi-Bridge zu verbinden.Gleichzeitig wird die IP-Adresse der externen Seite des Routers / Modems vom Dienstanbieter automatisch konfiguriert, sodass Sie sie möglicherweise nie sehen. (Geben Sie meine IP-Adresse in Google ein, um herauszufinden, um welche es sich handelt.)
Ein Diagramm kann helfen:
Wie Sie sehen können, verfügt das Modem / der Router über zwei IP-Adressen - eine für jede Netzwerkschnittstelle. Auf dem Desktop und den Laptops ist eines auf dem Netzwerkgerät mit Ihrem Router verbunden. Die meisten Modems / Router verfügen wie die meisten Laptops über WLAN- und Ethernet-Verbindungen. Wenn Sie das Ethernet-Kabel an Ihren Laptop anschließen und auch das WLAN Ihres Laptops aktivieren und konfigurieren würden, hätte auch dieser zwei IP-Adressen - eine für jedes Gerät - beide im
10.0.0.x
Adressbereich. Das würde dir nur Probleme bereiten - tu es nicht.Ein Port ist nur eine Nummer, die an die Ziel-IP-Adresse angehängt ist. Es ähnelt einer Telefonerweiterung in einer Bürozentrale und entscheidet, welcher Dienst Ihren Datenverkehr empfangen soll. Es handelt sich um eine 16-Bit-Zahl, die ein Maximum von 65535 ergibt. Es wird jedoch nur eine sehr kleine Teilmenge davon verwendet. Bei einigen handelt es sich um vorab zugewiesene bekannte Ports wie http-Verkehr auf Port 80 und Secure Shell (ssh) auf Port 22. Diese Ports sind nur geöffnet und warten auf Verkehr, wenn der entsprechende Dienst auf dem vom Gerätehersteller installierten Gerät ausgeführt wird .
Im Fall des oben genannten Modemrouters überwacht Port 80 die interne Seite, da ein Webserver ausgeführt wird, sodass Sie das Gerät über einen Webbrowser verwalten können. Einige Router haben auch einen SSH-Dienst, der Port 22 überwacht, sodass Sie das Gerät mit einem SSH-Client verwalten können. Wahrscheinlich ist Port 53 geöffnet, da auf dem Router auch ein DNS-Server ausgeführt wird.
Ihr Laptop wird wahrscheinlich (hoffentlich) keine lauschenden Ports haben, es sei denn, Sie haben einen Dienst auf diesem Gerät installiert. In der obigen Abbildung können Sie einen SSH-Server-Server auf dem Desktop-PC installieren. An diesem Punkt (und wenn die Firewalls dies zulassen) ist auf Ihrem Desktop Port 22 geöffnet. Ihr Laptop kann dann an Port 22 des Desktops ssh und sich anmelden.
Daher hängt die Anzahl der Ports auf einem Gerät von der Anzahl der auf diesem Gerät ausgeführten Dienste, der Konfiguration dieses Dienstes und der Konfiguration der Firewall ab.
Wenn Sie den SSH-Server im obigen Beispiel auf Ihrem Desktop ausführen möchten, auf den ein Remotebenutzer irgendwo im Internet zugreifen kann, tritt ein kleines Problem auf, da Sie zwar viele interne Adressen haben, aber nur eine externe (
98.23.45.62
).Um dies zu beheben, müssten Sie auf Ihrem Router eine Funktion konfigurieren, die als Portweiterleitung bezeichnet wird . Dadurch wird der Router angewiesen, den gesamten an einem bestimmten Port ankommenden Datenverkehr an einen bestimmten internen Host und Port weiterzuleiten.
In diesem Fall wird der gesamte an Port 22 ankommende Datenverkehr an Port 22 weitergeleitet
10.0.0.2
. Wie Sie möglicherweise gesammelt haben, bedeutet dies, dass Port 22 nur an einen internen Server weitergeleitet werden kann.Wenn Sie in der Lage sein möchten, sowohl auf den Desktop als auch auf den Laptop zu ssh, müssen Sie den Router so konfigurieren, dass er einen alternativen externen Port (z. B. 2022) überwacht und diesen an
10.0.0.2
Port 22 an Ihren Laptop weiterleitet . Der Remote-Benutzer würde dies tun müssen aufssh 98.23.45.62
den Desktop undssh -p 2022 98.23.45.62
auf Ihren Laptop zugreifen.Natürlich ist dies nicht immer so einfach, da sich die externe IP-Adresse ändern kann, es sei denn, Sie fordern ausdrücklich eine statische IP-Adresse an / kaufen diese.
quelle
98.23.45.62
"Gerät" ist ein überladenes Wort. Es wird manchmal verwendet, um eine Maschine zu bezeichnen, und manchmal, um ein Peripheriegerät oder eine Schnittstelle einer Maschine zu bezeichnen.
Jede Netzwerkschnittstelle hat eine eigene Adresse.
Jeder Computer verfügt über null, eine oder mehrere Adressen, je nachdem, wie viele Netzwerkschnittstellen er hat.
In einfachen Fällen verfügt jede physische Netzwerkschnittstelle über eine IP-Adresse, und Ihr System verfügt außerdem über eine Loopback-Schnittstelle, über die Programme mit Programmen kommunizieren, die auf demselben Computer ausgeführt werden. Jede Schnittstelle hat eine eigene IP-Adresse. Viele, viele komplexe Setups sind möglich (Bonding, Aliasing, lokale Adressen usw.), aber die grundlegende Intuition ist, dass jede IP-Adresse einer Schnittstelle entspricht.
Wenn Sie über das Netzwerk auf einen Computer zugreifen, verwenden Sie eine IP-Adresse, sodass Sie tatsächlich auf eine bestimmte Netzwerkschnittstelle dieses Computers zugreifen. In den meisten Fällen ist die Unterscheidung umstritten, da nur eine Schnittstelle von der Remote-Maschine aus erreichbar ist und es sowieso keinen Unterschied macht, da Programme Verbindungen auf allen Schnittstellen akzeptieren. Es ist jedoch möglich, dass ein Server nur eine einzige Schnittstelle überwacht.
quelle
Ihr Gerät verfügt möglicherweise über mehrere Netzwerkschnittstellen. Diese können realen Geräten ( NICs ) entsprechen oder virtuell sein .
Um verwendbar zu sein (dh Verbindungen zu initiieren oder abzuhören), sollte jede Schnittstelle eine IP-Adresse haben. Normalerweise gibt es eine IP pro Schnittstelle, aber es ist möglich, mehrere über IP-Aliasing zu haben .
Einzelne Verbindungen an jeder IP-Adresse werden durch die Portnummer identifiziert. Es gibt ein Limit von 65536 Ports pro IP-Adresse, die vom IP-Protokoll vorgegeben werden. Ein Grund für IP-Aliasing ist die Überwindung dieser Einschränkung.
Letztendlich kann Ihr Gerät also so viele IPs haben, wie Sie möchten (im Rahmen der Vernunft - ich nehme an, dass der Kernel die Anzahl der Schnittstellen und IPs, die er verwalten kann, begrenzt), was völlig unabhängig von der Anzahl der Netzwerkschnittstellen ist Adapter, die Sie haben. Auf der anderen Seite verfügt Ihr Gerät über mindestens so viele IP-Adressen, wie Netzwerkschnittstellen verwendet werden .
quelle
Ein Gerät ist ein physischer Gegenstand, der durch ein Etikett im System dargestellt wird. Auf diese Weise kann das System verschiedene Aktionen ausführen, z. B. das Einstellen / Abfragen / Verwenden des physischen Geräts. Das Label wird vom Treiber erstellt, der die physische Hardware im Kernelsystem verwaltet.
Sie können also mehrere Netzwerkgeräte verwenden, von denen jedes mit einem Uniq-Label gekennzeichnet ist (lassen Sie uns das Sprechen über das Verbinden nicht zu komplizieren).
Ihr Problem betrifft die IP-Adresse.
Es gibt verschiedene IP-Adressklassen. Sie haben die öffentliche, die von überall im Internet erreichbar ist, und die private Adresse, die normalerweise auf den privaten Bereich beschränkt ist (z. B. Heim- / Geschäftsnetzwerk).
Normalerweise hat ein Heim- oder Büronetzwerk einige öffentliche IP-Adressen und viele private Adressen (zwischen Laptop / Handy / Tablet / Kühlschrank / Toaster / aller Familienmitglieder).
Sie können einer physischen Hardware so viele IP-Adressen zuweisen, aber Sie müssen dies gut tun und die zugrunde liegende TCP / IP-Logik respektieren, wenn Sie nicht auf ein untrennbares Problem stoßen möchten :)
Zum Beispiel im lokalen Netzwerk (LAN) können Sie nicht zwei Hardware mit derselben IP-Adresse haben. Dies ist hauptsächlich auf das Ethernet-Protokoll zurückzuführen, das auf der MAC-Adresse (eindeutige Kennung der Hardware) basiert, und es besteht eine Eins-zu-Eins-Beziehung zwischen der MAC-Adresse und der IP-Adresse im lokalen Netzwerk.
Sie können auch einen Computer mit zwei Hardwarekomponenten haben, einen mit einer öffentlichen Adresse von Ihrem Provider und einen in Ihrem lokalen Netzwerk. Dieser Computer wird normalerweise wie ein Gateway zur Außenwelt für alle Computer in Ihrem lokalen Netzwerk verwendet.
quelle