Network Address Translation (NAT)
RRAS bietet Network Address Translation
(NAT),
bei der eine
IP-Adresse auf mehreren anderen
IP-Adressen
abgebildet werden kann. Dieses wird z.B. bei der Verbindung
eines privaten Netzes (Intranet) mit dem Internet genutzt.
NAT funktioniert so, daß die Kombinationen interne
IP-Adresse / Sendeport auf einem
Port des
NAT-Rechners abgebildet werden, der dann eine
Verbindung mit dem entfernten Host aufnimmt. Ein
NAT-Rechner wird auch als transparenter Proxy
bezeichnet.
NAT-Funktionsweise
Alle Anfragen vom
LAN
ins Internet laufen über das private
Interface des NAT-Servers, denn das befindet
sich ja ebenfalls im
Subnetz des LAN. Der
Rechner merkt sich die (lokale)
IP-Adresse
sowie den
Quellport des anfragenden Rechners
und schickt die Anfrage weiter ins
Internet.
Dazu verwendet er aber nicht die
ursprüngliche Adresse, sondern die
öffentliche Adresse des öffentlichen
Interface: Die Anfrage wird also von der
einen
Schnittstelle auf die andere
Schnittstelle geroutet. Dabei wird die
IP-Adresse von der lokalen in eine
öffentliche übersetzt und ein neuer
Quellport vergeben.
Kommt die Antwort auf die Anfrage zurück,
landet diese Antwort logischerweise wieder
auf dem öffentlichen Interface. Der
NAT-Rechner sucht anhand der Antwort die
ursprüngliche Anfrage aus seinen Tabellen
heraus und setzt das Paket entsprechend
wieder so auf die lokale
IP-Adresse um, dass
der Client das Paket als Antwort auf seine
ursprüngliche Anfrage interpretieren kann.
Somit funktioniert dieser Mechanismus auch,
wenn mehrere
Rechner gleichzeitig auf denselben
Server im Internet zugreifen.
Dieser Mechanismus führt also dazu, dass die
Workstations im
LAN einen gemeinsamen Internet-Zugang
verwenden können, obwohl insgesamt nur eine
öffentliche
IP-Adresse zur Verfügung steht.
Adressen in internen Netzwerken haben üblicherweise
ungültige Adressen, d.h. wenn der Empfänger einer
Anfrage an den Absender eine Antwort zurücksendet,
kommt diese nicht an.
Dies ist der Punkt wo
NAT
ins Spiel kommt, dabei
wird in einer Anfrage von einem internen Rechner die Absendeadresse so geändert, dass der Empfänger eine
Nachricht zurücksenden kann. Bei den Antworten wird
wiederum die Empfängeradresse geändert, so dass der
interne Rechner die Nachricht empfangen kann.
Damit die Kommunikation zwischen Server und ihrem
Rechner funktioniert, merkt sich der Router eine
Zuordnungstabelle. Ein typischer Ablauf sieht dann
so aus:
- Der interne Rechner (192.168.0.52:1000)
stellt eine Anfrage an den Server
212.227.118.91:80
Absender IP |
Absender Port |
Empfänger IP |
Empfänger Port |
192.168.0.52 |
1000 |
212.227.118.91 |
80 |
- Der Router leitet die Anfrage weiter, ändert
aber die Absenderadresse von 192.168.0.52 (=
interne Rechneradresse) in 80.132.224.200
(=Adresse des Routers im Internet)
Absender IP |
Absender Port |
Empfänger IP |
Empfänger Port |
80.132.224.200 |
12345 |
212.227.118.91 |
80 |
- Der Empfänger-Server (212.227.118.91:80)
schickt eine Antwort:
Absender IP |
Absender Port |
Empfänger IP |
Empfänger Port |
212.227.118.91 |
80 |
80.132.224.200 |
12345 |
- Der Router empfängt die Antwort, ändert die
Empfängeradresse und leitet die Antwort in das
interne Netz weiter
Absender IP |
Absender Port |
Empfänger IP |
Empfänger Port |
212.227.118.91 |
80 |
192.168.0.52 |
1000 |
Die Zuordnung merkt sich der Router in einer eigenen
Tabelle, z.B.:
Interne Rechner-Adresse |
Externe Router-Adresse |
Empfänger Adresse
(optional) |
192.168.0.52:1000 |
80.132.224.200:12345 |
212.227.118.91:80 (Beispiel oben) |
Dabei gibt es unterschiedliche Arten der Umsetzung,
wie diese Tabelle verwendet wird:
-
Full Cone - hier wird die Empfänger
Adresse ignoriert, d.h. jedes eingehende Paket
mit der Adresse 80.132.224.200:12345 wird an die
interne Adresse 192.168.0.52:1000
weitergeleitet, ohne Ansicht der
Absenderadresse, also auch Rechner die nicht die
IP-Adresse 212.227.118.91 haben.
-
Restricted Cone - im Gegensatz zum
Full Cone muss hier erst einmal ein Paket vom
internen Rechner an einen externen Rechner
gesendet werden, bevor eingehende Pakete von
diesem Rechner akzeptiert werden. Dabei wird nur
die
IP-Adresse
geprüft und nicht der
Port. Also
bei obiger Tabelle würden alle Pakete angenommen
werde, die vom Rechner 212.227.118.91 an
80.132.224.200:12345 gesendet werden und an die
interne Adresse 192.168.0.52:1000
weitergeleitet.
-
Port Restricted Cone - hier wird Full
Cone weiter eingeschränkt, neben der
IP-Adresse
wird auch noch der
Port
überprüft. Also werden ausschliesslich Pakete an 192.168.0.52:1000
weitergegeben, wenn die Adresse
80.132.224.200:12345 ist und der Absender
212.227.118.91:80
Unterschiede Cone
-
Beim Full Cone wird die Spalte
"Empfänger Adresse" ignoriert
-
Beim Restricted Cone wird
von der Spalte "Empfänger Adresse" nur die
IP-Adresse
ohne
Port
geprüft, dabei kann es sich aber um eine
Liste von
IP-Adressen
handeln.
-
Beim
Port
Restricted Cone wird von der
Spalte "Empfänger Adresse" die IP-Adresse
mit
Port
geprüft, dabei kann es sich aber um
eine Liste von
IP-Adressen
mit
Ports
handeln.
Symmetric - Bei Full Cone und Port
Restricted Cone wird die dritte Spalte
erweitert, wenn weitere Server angefragt werden.
Also wenn z.B. der interne Rechner über den
Port
zwei Server anfragt (212.227.118.91:80 und
212.227.118.92:8080), wird die Tabelle
erweitert:
Interne Rechner-Adresse |
Externe Router-Adresse |
Empfänger Adresse |
192.168.0.52:1000 |
80.132.224.200:12345 |
212.227.118.91:80,
212.227.118.92:8080 |
Beim Symmetric
NAT
werden statt dessen zwei
Einträge generiert: eneriert: neriert:
Interne Rechner-Adresse |
Externe Router-Adresse |
Empfänger Adresse |
192.168.0.52:1000 |
80.132.224.200:12345 |
212.227.118.91:80 |
192.168.0.52:1000 |
80.132.224.200:67890 |
212.227.118.92:8080 |
Die Zuordnung ist somit immer eindeutig.
|
Ein Beispiel für NAT
Angenommen, in einem kleinen
Unternehmen wird die Netzwerkkennung 192.168.0.0 für das Intranet
verwendet, und der Internetdienstanbieter hat dem Unternehmen die
öffentliche Adresse w1.x1.y1.z1 zugewiesen. Bei der
Netzwerkadressübersetzung (NAT)
werden alle privaten Adressen in 192.168.0.0 auf die
IP-Adresse
w1.x1.y1.z1 gesetzt. Wenn
mehrere private Adressen auf eine einzelne öffentliche Adresse
gesetzt werden, verwendet dynamisch ausgewählte
TCP- und
UDP-Ports, um die Hosts im Intranet voneinander zu unterscheiden.
Die folgende Abbildung zeigt
ein Beispiel, in dem NAT verwendet
wird, um Verbindungen zwischen einem Intranet und dem Internet
transparent herzustellen.
Wenn ein privater Anwender
unter der Adresse 192.168.0.10 einen Webbrowser verwendet, um eine
Verbindung mit dem Webserver unter der Adresse w2.x2.y2.z2
herzustellen, wird ein
IP-Paket mit den folgenden Informationen
erstellt:
- IP-Zieladresse:
w2.x2.y2.z2
- IP-Quelladresse:
192.168.0.10
- Zielport: TCP-Port 80
- Quellport: TCP-Port 5000
Dieses
IP-Paket
wird dem NAT-Protokoll übergeben,
das die Adressen des ausgehenden Pakets wie folgt ändert:
- IP-Zieladresse:
w2.x2.y2.z2
- IP-Quelladresse:
w1.x1.y1.z1
- Zielport: TCP-Port 80
- Quellport: TCP-Port 1025
Das NAT-Protokoll zeichnet die Zuordnung von
{192.168.0.10, TCP 1025} zu {w1.x1.y1.z1, TCP 5000} in einer
Tabelle auf.
Das so übersetzte
IP-Paket
wird über das Internet gesendet. Die Antwort wird zurückgesendet und
vom NAT-Protokoll empfangen. Beim
Empfang enthält das Paket die folgenden Informationen zur
öffentlichen Adresse:
- IP-Zieladresse:
w1.x1.y1.z1
- IP-Quelladresse:
w2.x2.y2.z2
- Zielport: TCP-Port 1025
- Quellport: TCP-Port 80
Das NAT-Protokoll
schlägt in der Übersetzungstabelle nach, setzt die öffentlichen
Adressen wieder auf die privaten Adressen um und übermittelt das
Datenpaket an den Computer unter der Adresse 192.168.0.10. Das
übermittelte Datenpaket enthält die folgenden Adressinformationen:
- IP-Zieladresse:
192.168.0.10
- IP-Quelladresse:
w2.x2.y2.z2
- Zielport: TCP-Port 5000
- Quellport: TCP-Port 80
Bei Datenpaketen, die vom
NAT-Protokoll
ausgehen, wird die
IP-Quelladresse (eine private Adresse) auf die
vom ISP zugewiesene Adresse (eine öffentliche Adresse) gesetzt, und
die
TCP- bzw.
UDP-Portnummern werden auf andere
TCP- bzw.
UDP-Portnummern umgesetzt.
Bei Datenpaketen, die vom
NAT-Protokoll empfangen werden, wird die
IP-Zieladresse (eine öffentliche Adresse)
auf die ursprüngliche Adresse im Intranet (eine private Adresse)
gesetzt, und die
TCP- bzw.
UDP-Portnummern werden auf die
ursprünglichen
TCP- bzw.
UDP-Portnummern zurückgesetzt.
-
Pakete, die die
IP-Adresse nur im
IP-Header enthalten, werden von
NAT
ordnungsgemäß übersetzt. Pakete, die die
IP-Adresse im
IP-Aufkommen
enthalten, werden von NAT
möglicherweise nicht ordnungsgemäß übersetzt.
Kann NAT eine Firewall ersetzen?
Diese Frage wird sehr häufig gestellt und in
gewisser Hinsicht kann sie auch bejaht werden.
Tatsächlich ist ein Rechner in einem lokalen
Netzwerk, die hinter einem
Router mit NAT stehen,
von außen nicht erreichbar, wenn auf dem NAT-Router
kein
Port von außen nach innen zu diesem Rechner
durchgeleitet wird. Durch NAT ist deshalb von außen
auch nur sehr schwer feststellbar, ob im lokalen
Netzwerk des
Router mehrere Rechner stehen und wie
viele genau.
Diese pauschale
Nichterreichbarkeit für Zugriffe von außen ist
jedoch keine klassische Firewall-Funktionalität und
sollte nicht überschätzt werden. Eine Firewall
bietet auch einen adäquaten Schutz für Zugriffe von
innen nach außen und besitzt, je nach Ausstattung,
auch erweiterte Möglichkeiten für Reglementierungen
bestimmter Datenströme, die NAT allein nicht bietet.
|