Ich nehme an, Sie sprechen von zwei normalen privaten oder kommerziellen Internetverbindungen (und nicht von einer Standleitung oder zwei Standorten, die über ein VPN oder ähnliches verbunden sind).
Mit dem Beispielnetzwerk haben wir zwei Gebäude und einen Server (weltweit), die über das Internet verbunden sind. Wir haben zwei Router - R1
und R2
-, von denen jeder eine andere öffentliche IP-Adresse (oder " externe " IP-Adresse) hat.
Innerhalb der Gebäude, die Router und Geräte alle haben gemeinsame IP - Adressen - die Router ( R1
und R2
) verwenden, um einen privaten IP 192.168.0.1
, und die Geräte ( DA
und DB
) verwenden, um einen privaten IP 192.168.0.10
.
Außerhalb der Gebäude haben die Router unterschiedliche öffentliche IP-Adressen - 203.0.113.5
und 203.0.113.219
. Der Server ist über die öffentliche IP-Adresse erreichbar 203.0.113.42
.
Es gibt einen wichtigen Unterschied zwischen zwei Arten von IP-Adressen. Weitere Informationen finden Sie auf der Wiki-Seite " Reservierte IP-Adressen ".
- Öffentliches Netzwerk - diese sind direkt im Internet verfügbar
- Hinweis: Ich habe tatsächlich eine Reihe von Netzwerkadressen verwendet, die hier für die Dokumentation reserviert sind, anstatt auf echte öffentliche Adressen
- Privates Netzwerk - diese sind nur zur Verwendung innerhalb eines Netzwerks vorgesehen
Um DA
auf einen Server oder Host im Internet zuzugreifen (z. B. 203.0.113.42
), muss er Hilfe von einem Router erhalten, da er 203.0.113.42
nicht im lokalen Netzwerk verfügbar ist. So sendet er die Pakete an den konfigurierten Router ( R1
), der die Pakete dann an das Internet weiterleitet.
In diesem Fall wird neu schreibt der Router das Paket leicht, Kennzeichnung des " Source Address ", wie in R1
der Öffentlichkeit Adresse ( 203.0.113.5
) anstelle von DA
's - Adresse ( 192.168.0.10
). Wenn dann ein Paket zurückgegeben R1
wird, prüft es die Verbindungstabellen, schreibt das Paket neu, sodass das Ziel DA
erneut vorhanden ist, und leitet das Paket an das lokale Netzwerk weiter.
Dies wird als Network Address Translation (NAT) bezeichnet, und das Umschreiben der ausgehenden Pakete zur Verwendung der eigenen Adresse des Routers wird als " Masquerading " bezeichnet. Das heißt, dass alle ausgehenden Pakete vom Router stammen und nicht von einem dahinterliegenden Gerät.
Dies ermöglicht die Kommunikation zwischen Geräten in einem privaten Netzwerk (z. B. DA
und DB
) und einem öffentlichen Server im Internet.
Um einige Dienste innerhalb des Netzwerks von Building A zu präsentieren, müssen wir R1
den Server mehr wie auf 203.0.113.42
... aussehen lassen. Dazu führen wir die Portweiterleitung ein .
Dies ist eine Technik, die es uns ermöglicht R1
, eingehende Verbindungsanforderungen an einem Port (z. B. 22
für SSH ) anzunehmen und an einen anderen Host innerhalb des privaten Netzwerks weiterzuleiten, das er bedient.
In diesem Fall DA
läuft auf dem Port ein SSH-Server 22
, sodass wir konfigurieren R1
, dass Port 22 an seiner externen Schnittstelle (dh:) 203.0.113.5:22
an den Server an seiner internen Schnittstelle (dh:) weitergeleitet wird 192.168.0.10:22
.
Nun, da wir die Portweiterleitung konfiguriert haben, DB
können Sie auf DA
den SSH-Server zugreifen, indem Sie eine Verbindung mit R1
der öffentlichen Adresse von ... herstellen 203.0.113.5
, dh Port 22
. Hinweis: DB
Verwendet die DA
private IP-Adresse nicht oder muss sie nie kennen und umgekehrt.
Die Netzwerkadressenübersetzung wird für Sie erledigt, und die gesamte Kette sieht ungefähr so aus:
DB
sendet ein Paket anR2
- Quelle192.168.0.10
:, Ziel:203.0.113.5
R2
schreibt das Paket neu - Quelle:,203.0.113.219
Destination:203.0.113.5
R2
sendet das Paket über das Internet undR1
empfängt es
R1
schreibt das Paket neu - Quelle:,203.0.113.219
Destination:192.168.0.10
R1
sendet das Paket über das lokale Netzwerk undDA
empfängt es
Der Rückweg / die Antwort ist die Umkehrung:
DA
sendet ein Paket anR1
- Quelle192.168.0.10
:, Ziel:203.0.113.219
R1
schreibt das Paket neu - Quelle203.0.113.5
, Ziel:203.0.113.219
R1
sendet das Paket über das Internet undR2
empfängt es
R2
schreibt das Paket neu - Quelle:,203.0.113.5
Destination:192.168.0.10
R2
sendet das Paket über das lokale Netzwerk undDB
empfängt es
Wie Sie sehen, spielt die kollidierende private Adresse keine Rolle. Kein Gerät befindet sich jemals in einer Situation, in der 192.168.0.10
sowohl Quelle als auch Ziel gesehen werden oder über zwei Schnittstellen erreicht werden können. Wenn dies wahr wäre, würde der Link offensichtlich nicht funktionieren.
Einige Notizen:
- Die Konfigurationsoberfläche für Router ist sehr unterschiedlich. Daher können wir Sie nicht einfach durch das Setup für die Portweiterleitung führen, ohne zu wissen, welchen Router Sie verwenden.
- Durch die Einrichtung einer solchen Portweiterleitung wird Ihr Dienst für das gesamte Internet zugänglich (sofern Sie nicht auch Firewall-Regeln konfigurieren).
- Ich würde dringend davon abraten, auf diese Weise unverschlüsselte Dienste (z. B. Telnet / FTP) einzurichten. Bevorzugen Sie SSH / SFTP.
- Sie müssen sicherstellen, dass Ihre Dienste angemessen geschützt sind, z. B. Authentifizierung, Ratenbegrenzung usw.