Network Address Translation: Unterschied zwischen den Versionen
Erscheinungsbild
	
	
K Textersetzung - „\[\[Kategorie([A-zA-z])“ durch „[[Kategorie:\1“  | 
				Keine Bearbeitungszusammenfassung  | 
				||
| Zeile 1: | Zeile 1: | ||
'''NAT''' ('''N'''etwork '''A'''ddress '''T'''ranslation, Netzwerkadressübersetzung) ist eine Technik zur Übersetzung von IP-Adressen.  | '''NAT''' ('''N'''etwork '''A'''ddress '''T'''ranslation, Netzwerkadressübersetzung) ist eine Technik zur Übersetzung von IP-Adressen.  | ||
= Beschreibung =  | '''topic''' kurze Beschreibung  | ||
== Beschreibung ==  | |||
== Installation ==  | |||
== Anwendungen ==  | |||
=== Fehlerbehebung ===  | |||
== Syntax ==  | |||
=== Optionen ===  | |||
=== Parameter ===  | |||
=== Umgebungsvariablen ===  | |||
=== Exit-Status ===  | |||
== Konfiguration ==  | |||
=== Dateien ===  | |||
== Sicherheit ==  | |||
== Dokumentation ==  | |||
=== RFC ===  | |||
=== Man-Pages ===  | |||
=== Info-Pages ===  | |||
== Siehe auch ==  | |||
== Links ==  | |||
=== Projekt-Homepage ===  | |||
=== Weblinks ===  | |||
=== Einzelnachweise ===  | |||
<references />  | |||
== Testfragen ==  | |||
<div class="toccolours mw-collapsible mw-collapsed">  | |||
''Testfrage 1''  | |||
<div class="mw-collapsible-content">'''Antwort1'''</div>  | |||
</div>  | |||
<div class="toccolours mw-collapsible mw-collapsed">  | |||
''Testfrage 2''  | |||
<div class="mw-collapsible-content">'''Antwort2'''</div>  | |||
</div>  | |||
<div class="toccolours mw-collapsible mw-collapsed">  | |||
''Testfrage 3''  | |||
<div class="mw-collapsible-content">'''Antwort3'''</div>  | |||
</div>  | |||
<div class="toccolours mw-collapsible mw-collapsed">  | |||
''Testfrage 4''  | |||
<div class="mw-collapsible-content">'''Antwort4'''</div>  | |||
</div>  | |||
<div class="toccolours mw-collapsible mw-collapsed">  | |||
''Testfrage 5''  | |||
<div class="mw-collapsible-content">'''Antwort5'''</div>  | |||
</div>  | |||
[[Kategorie:Entwurf]]  | |||
= TMP =  | |||
== Beschreibung ==  | |||
* In Rechnernetzen der Sammelbegriff bei Änderungen von Adressen im IP-Header von IP-Paketen (Layer-3 des OSI-Modells)  | * In Rechnernetzen der Sammelbegriff bei Änderungen von Adressen im IP-Header von IP-Paketen (Layer-3 des OSI-Modells)  | ||
* NAT (genauer SNAT) ermöglicht die gleichzeitige Verwendung einer öffentlichen Adresse durch mehrere Hosts.  | * NAT (genauer SNAT) ermöglicht die gleichzeitige Verwendung einer öffentlichen Adresse durch mehrere Hosts.  | ||
| Zeile 7: | Zeile 55: | ||
* Oft ist dieser Router das Default-Gateway eines Hosts.  | * Oft ist dieser Router das Default-Gateway eines Hosts.  | ||
== NAT-Typen ==  | === NAT-Typen ===  | ||
* NAT wird in Source-NAT (SNAT; dt.: „''Quellen-NAT''“) und Destination-NAT(DNAT; dt.: „''Ziel-NAT''“) unterschieden.  | * NAT wird in Source-NAT (SNAT; dt.: „''Quellen-NAT''“) und Destination-NAT(DNAT; dt.: „''Ziel-NAT''“) unterschieden.  | ||
* Beim Source-NAT wird die Adresse des verbindungsaufbauenden Computers (Quelle) umgeschrieben.  | * Beim Source-NAT wird die Adresse des verbindungsaufbauenden Computers (Quelle) umgeschrieben.  | ||
* Beim Destination-NAT wird die Adresse des angesprochenen Computers (Ziel) umgeschrieben.  | * Beim Destination-NAT wird die Adresse des angesprochenen Computers (Ziel) umgeschrieben.  | ||
= Verwendung von NAT =  | == Verwendung von NAT ==  | ||
== Verwendung von Source-NAT ==  | === Verwendung von Source-NAT ===  | ||
* Source-NAT findet Anwendung aufgrund der Knappheit öffentlicher IPv4-Adressen.  | * Source-NAT findet Anwendung aufgrund der Knappheit öffentlicher IPv4-Adressen.  | ||
* Eine spezielle Form der SNAT wird auch '''Masquerading''' bzw. '''Masquerade'''[https://de.wikipedia.org/wiki/Port_Address_Translation] oder  | * Eine spezielle Form der SNAT wird auch '''Masquerading''' bzw. '''Masquerade'''[https://de.wikipedia.org/wiki/Port_Address_Translation] oder  | ||
| Zeile 23: | Zeile 71: | ||
* Durch das Maskieren der Quell-IP-Adresse können die internen Rechner nicht mehr von außen direkt angesprochen werden.  | * Durch das Maskieren der Quell-IP-Adresse können die internen Rechner nicht mehr von außen direkt angesprochen werden.  | ||
== Verwendung von Destination-NAT ==  | === Verwendung von Destination-NAT ===  | ||
* Destination-NAT wird verwendet, um das Ziel eines IP-Pakets zu ändern.  | * Destination-NAT wird verwendet, um das Ziel eines IP-Pakets zu ändern.  | ||
* Meist findet DNAT Verwendung beim Ändern der öffentlichen IP-Adresse eines Internet-Anschlusses in die private IP-Adresse eines Servers im privaten Subnetz.  | * Meist findet DNAT Verwendung beim Ändern der öffentlichen IP-Adresse eines Internet-Anschlusses in die private IP-Adresse eines Servers im privaten Subnetz.  | ||
| Zeile 29: | Zeile 77: | ||
* DNAT kann daher auch dazu genutzt werden, um mehrere, unterschiedliche Serverdienste, die auf verschiedenen Computern betrieben werden, unter einer einzigen (öffentlichen) IP-Adresse anzubieten(s. Abgrenzung von DNAT auch NAT-Traversal bzw. NAT-T).  | * DNAT kann daher auch dazu genutzt werden, um mehrere, unterschiedliche Serverdienste, die auf verschiedenen Computern betrieben werden, unter einer einzigen (öffentlichen) IP-Adresse anzubieten(s. Abgrenzung von DNAT auch NAT-Traversal bzw. NAT-T).  | ||
= Funktionsweise =  | == Funktionsweise ==  | ||
== NAT-Router, NAT-Session und NAT-Table ==  | === NAT-Router, NAT-Session und NAT-Table ===  | ||
* Ein moderner Router mit NAT-Funktion ist zustandsbehaftet (''stateful'').  | * Ein moderner Router mit NAT-Funktion ist zustandsbehaftet (''stateful'').  | ||
* Beim ''stateful firewalling'' werden für jede seitens eines Clients angefragte Verbindung die zugehörigen Verbindungsinformationen (unter anderem IP-Adressen, Protokoll / Ports und Timeouts) in einer Session-Table gespeichert.  | * Beim ''stateful firewalling'' werden für jede seitens eines Clients angefragte Verbindung die zugehörigen Verbindungsinformationen (unter anderem IP-Adressen, Protokoll / Ports und Timeouts) in einer Session-Table gespeichert.  | ||
| Zeile 39: | Zeile 87: | ||
* 10.000 Sessions belegen nur etwa 3 MB.  | * 10.000 Sessions belegen nur etwa 3 MB.  | ||
== Source NAT (SNAT) ==  | === Source NAT (SNAT) ===  | ||
* Bei jedem Verbindungsaufbau durch einen internen Client wird die interne Quell-IP-Adresse durch die öffentliche IP-Adresse des Routers ersetzt.  | * Bei jedem Verbindungsaufbau durch einen internen Client wird die interne Quell-IP-Adresse durch die öffentliche IP-Adresse des Routers ersetzt.  | ||
* Ist der Ursprungsport belegt wird der Quellport des internen Clients durch einen freien Port des Routers ersetzt.    | * Ist der Ursprungsport belegt wird der Quellport des internen Clients durch einen freien Port des Routers ersetzt.  | ||
* Diese Zuordnung wird in der Session-Table (NAT-Table) des Routers gespeichert.  | * Diese Zuordnung wird in der Session-Table (NAT-Table) des Routers gespeichert.  | ||
* Anhand der gespeicherten Informationen kann der NAT-Router dann das jeweilige Antwort-Datenpaket dem richtigen Client wieder zuordnen.  | * Anhand der gespeicherten Informationen kann der NAT-Router dann das jeweilige Antwort-Datenpaket dem richtigen Client wieder zuordnen.  | ||
| Zeile 72: | Zeile 120: | ||
|}  | |}  | ||
== Beispiel Source-NAT und IP-Routing ==  | === Beispiel Source-NAT und IP-Routing ===  | ||
* In diesem Beispiel nutzt das private Netz die IP-Adressen 192.168.0.0/24.  | * In diesem Beispiel nutzt das private Netz die IP-Adressen 192.168.0.0/24.  | ||
* Zwischen diesem Netz und dem öffentlichen Internet befindet sich ein ''Source-NAT-Router'' mit der öffentlichen Adresse 205.0.0.2/32.  | * Zwischen diesem Netz und dem öffentlichen Internet befindet sich ein ''Source-NAT-Router'' mit der öffentlichen Adresse 205.0.0.2/32.  | ||
| Zeile 78: | Zeile 126: | ||
* Möchte eine über einen ''Source-NAT-Router'' angebundene Station ein Paket an einen Empfänger außerhalb seines (privaten) Netzes senden, so funktioniert der Kommunikationsprozess (vereinfacht dargestellt) wie folgt:  | * Möchte eine über einen ''Source-NAT-Router'' angebundene Station ein Paket an einen Empfänger außerhalb seines (privaten) Netzes senden, so funktioniert der Kommunikationsprozess (vereinfacht dargestellt) wie folgt:  | ||
===Ermittlungen===  | ====Ermittlungen====  | ||
* Zuerst ermittelt die Station über DNS die Ziel-IP des Servers, und über die Routing-Tabelle den für das gewünschte Ziel nächstgelegenen Router, das sei hier der ''Source-NAT-Router''.  | * Zuerst ermittelt die Station über DNS die Ziel-IP des Servers, und über die Routing-Tabelle den für das gewünschte Ziel nächstgelegenen Router, das sei hier der ''Source-NAT-Router''.  | ||
* Dann ermittelt die Station per Address Resolution Protocol (ARP) dessen MAC-Adresse und baut ein Paket wie folgt zusammen:  | * Dann ermittelt die Station per Address Resolution Protocol (ARP) dessen MAC-Adresse und baut ein Paket wie folgt zusammen:  | ||
| Zeile 86: | Zeile 134: | ||
# Die Ziel-Portadresse für den Server.  | # Die Ziel-Portadresse für den Server.  | ||
# Die MAC- und IP-Adresse des Absenders (hier 192.168.0.4).  | # Die MAC- und IP-Adresse des Absenders (hier 192.168.0.4).  | ||
# Einen Absenderport (irgendeinen freien Port (high dynamic Port)) für die gerade anfragende Sitzung.    | # Einen Absenderport (irgendeinen freien Port (high dynamic Port)) für die gerade anfragende Sitzung.  | ||
# Sowie andere (Nutz)Daten.  | # Sowie andere (Nutz)Daten.  | ||
===Empfang===  | ====Empfang====  | ||
* Der ''Source-NAT-Router'' empfängt und verarbeitet das Paket, weil es an seine MAC-Adresse gerichtet ist.  | * Der ''Source-NAT-Router'' empfängt und verarbeitet das Paket, weil es an seine MAC-Adresse gerichtet ist.  | ||
** Bei der Verarbeitung im Router wird das Paket in abgeänderter Form weitergeleitet.  | ** Bei der Verarbeitung im Router wird das Paket in abgeänderter Form weitergeleitet.  | ||
| Zeile 95: | Zeile 143: | ||
** Er ermittelt per ARP dessen MAC-Adresse und baut das Paket wie folgt um:  | ** Er ermittelt per ARP dessen MAC-Adresse und baut das Paket wie folgt um:  | ||
*** Es erhält nun abweichend die MAC-Adresse des ''nächsten Routers''.  | *** Es erhält nun abweichend die MAC-Adresse des ''nächsten Routers''.  | ||
*** Die Ziel-IP-Adresse des Empfängers (170.0.0.1), Ziel-Port    | *** Die Ziel-IP-Adresse des Empfängers (170.0.0.1), Ziel-Port  | ||
*** Die öffentliche MAC- und IP-Adresse des ''Source-NAT-Routers'' (205.0.0.2), einen gerade freien Absender-Port aus dem Reservoir des Routers (hier 49152) und die Nutzdaten, die gleich bleiben.  | *** Die öffentliche MAC- und IP-Adresse des ''Source-NAT-Routers'' (205.0.0.2), einen gerade freien Absender-Port aus dem Reservoir des Routers (hier 49152) und die Nutzdaten, die gleich bleiben.  | ||
===Verarbeitung===  | ====Verarbeitung====  | ||
* Diese Zuordnung der ursprünglichen Absenderadresse und des Ports (192.168.0.4:49152) zum jetzt enthaltenen                    Adress-Tupel[https://de.ryte.com/wiki/Tupel](205.0.0.2:49152) wird im Router solange gespeichert, bis die Sitzung abläuft oder beendet wird.  | * Diese Zuordnung der ursprünglichen Absenderadresse und des Ports (192.168.0.4:49152) zum jetzt enthaltenen                    Adress-Tupel[https://de.ryte.com/wiki/Tupel](205.0.0.2:49152) wird im Router solange gespeichert, bis die Sitzung abläuft oder beendet wird.  | ||
** '''Durch NAT wird das Paket auf Schicht 3 also wesentlich verändert.'''  | ** '''Durch NAT wird das Paket auf Schicht 3 also wesentlich verändert.'''  | ||
* Bei der Bearbeitung in nachfolgenden IP-Routern wird das Paket lediglich auf Schicht 2 verändert.  | * Bei der Bearbeitung in nachfolgenden IP-Routern wird das Paket lediglich auf Schicht 2 verändert.  | ||
* Der Router ermittelt den ''nächsten Router'', ermittelt per ARP dessen MAC-Adresse und baut das Paket wie folgt um:  | * Der Router ermittelt den ''nächsten Router'', ermittelt per ARP dessen MAC-Adresse und baut das Paket wie folgt um:  | ||
** Es erhält nun abweichend als Ziel-MAC-Adresse die MAC-Adresse des ''nächsten Routers''    | ** Es erhält nun abweichend als Ziel-MAC-Adresse die MAC-Adresse des ''nächsten Routers''  | ||
** Die Absender-MAC-Adresse wird gegen die eigene ausgetauscht.  | ** Die Absender-MAC-Adresse wird gegen die eigene ausgetauscht.  | ||
** Die IP-Adresse des Empfängers (170.0.0.1), Ziel-Port  sowie die Absender-IP-Adresse des Source-NAT-Routers (205.0.0.2), dessen Absender-Port 49152 und die Nutzdaten bleiben erhalten.  | ** Die IP-Adresse des Empfängers (170.0.0.1), Ziel-Port  sowie die Absender-IP-Adresse des Source-NAT-Routers (205.0.0.2), dessen Absender-Port 49152 und die Nutzdaten bleiben erhalten.  | ||
| Zeile 111: | Zeile 159: | ||
** Es erhält als Absender-MAC-Adresse die des letzten Routers, als Ziel die MAC-Adresse der Zielstation, die IP-Adresse des Empfängers  (170.0.0.1), Ziel-Port  sowie die IP-Adresse des ''Absender-Source-NAT-Routers'' (205.0.0.2), dessen Absender-Port 49152 und natürlich Nutzdaten.  | ** Es erhält als Absender-MAC-Adresse die des letzten Routers, als Ziel die MAC-Adresse der Zielstation, die IP-Adresse des Empfängers  (170.0.0.1), Ziel-Port  sowie die IP-Adresse des ''Absender-Source-NAT-Routers'' (205.0.0.2), dessen Absender-Port 49152 und natürlich Nutzdaten.  | ||
===Abschluss===  | ====Abschluss====  | ||
* Nach erfolgreicher Verarbeitung durch den Server wird die Antwort dann wie folgt zusammengestellt:  | * Nach erfolgreicher Verarbeitung durch den Server wird die Antwort dann wie folgt zusammengestellt:  | ||
** MAC-Adresse des für den Rückweg zuständigen Routers (wobei Hin- und Rückroute nicht unbedingt identisch sein müssen).  | ** MAC-Adresse des für den Rückweg zuständigen Routers (wobei Hin- und Rückroute nicht unbedingt identisch sein müssen).  | ||
| Zeile 119: | Zeile 167: | ||
* Wird diese Sitzung beendet, wird auch Port 49152 wieder freigegeben.  | * Wird diese Sitzung beendet, wird auch Port 49152 wieder freigegeben.  | ||
=== Destination NAT (DNAT) ===  | ==== Destination NAT (DNAT) ====  | ||
* Bei jedem Verbindungsaufbau durch den Client wird die Ziel-IP-Adresse durch die des eigentlichen Empfängers im LAN ersetzt.  | * Bei jedem Verbindungsaufbau durch den Client wird die Ziel-IP-Adresse durch die des eigentlichen Empfängers im LAN ersetzt.  | ||
* Außerdem wird der Zielport durch einen freien Port des Routers ersetzt, der dadurch belegt wird.  | * Außerdem wird der Zielport durch einen freien Port des Routers ersetzt, der dadurch belegt wird.  | ||
| Zeile 151: | Zeile 199: | ||
|}  | |}  | ||
= Kategorisierung =  | == Kategorisierung ==  | ||
* RFC 3489, der das Protokoll '''STUN''' zur Traversierung von NAT-Gateways beschreibt, ordnet diese in vier verschiedene Klassen ein :  | * RFC 3489, der das Protokoll '''STUN''' zur Traversierung von NAT-Gateways beschreibt, ordnet diese in vier verschiedene Klassen ein :  | ||
{| cellpadding="4" cellspacing="0" style="margin: 1em 1em 1em 0; border-collapse: collapse; font-size: 95%;"  | {| cellpadding="4" cellspacing="0" style="margin: 1em 1em 1em 0; border-collapse: collapse; font-size: 95%;"  | ||
|[[Datei:Full Cone NAT.svg|500px]]  | |[[Datei:Full Cone NAT.svg|500px]]  | ||
* Im ''Full Cone NAT''-Szenario setzt ein Gateway interne Adressen und Ports nach einem statischen Muster in eine externe Adresse und deren Ports um.    | * Im ''Full Cone NAT''-Szenario setzt ein Gateway interne Adressen und Ports nach einem statischen Muster in eine externe Adresse und deren Ports um.  | ||
* Externe Hosts bauen über die externen Adressen des NAT-Gateways Verbindungen zu internen Hosts auf.  | * Externe Hosts bauen über die externen Adressen des NAT-Gateways Verbindungen zu internen Hosts auf.  | ||
* Full Cone NAT ist auch unter der Bezeichnung '''EnS port forwarding''' bekannt.  | * Full Cone NAT ist auch unter der Bezeichnung '''EnS port forwarding''' bekannt.  | ||
| Zeile 177: | Zeile 225: | ||
|}  | |}  | ||
* Diese prototypischen Grundszenarien bilden in modernen NAT-Systemen allerdings oft nur Anhaltspunkte zur Klassifizierung punktuellen Verhaltens der Gateways.    | * Diese prototypischen Grundszenarien bilden in modernen NAT-Systemen allerdings oft nur Anhaltspunkte zur Klassifizierung punktuellen Verhaltens der Gateways.  | ||
* Diese benutzen teilweise Mischformen der klassischen Ansätze zur Adressumsetzung.  | * Diese benutzen teilweise Mischformen der klassischen Ansätze zur Adressumsetzung.  | ||
* Oder sie wechseln dynamisch zwischen zwei oder mehreren Verhaltensmustern.  | * Oder sie wechseln dynamisch zwischen zwei oder mehreren Verhaltensmustern.  | ||
* RFC 3489 ist durch RFC 5389 ersetzt worden, der diese Kategorisierung nicht mehr versucht.  | * RFC 3489 ist durch RFC 5389 ersetzt worden, der diese Kategorisierung nicht mehr versucht.  | ||
= Vorteile =  | == Vorteile ==  | ||
* NAT hilft die Verknappung der IPv4 Adressen zu entschleunigen.  | * NAT hilft die Verknappung der IPv4 Adressen zu entschleunigen.  | ||
* Dies geschieht durch die Ersetzung mehrerer Adressen für mehrere Endsysteme durch eine einzige IP-Adresse.  | * Dies geschieht durch die Ersetzung mehrerer Adressen für mehrere Endsysteme durch eine einzige IP-Adresse.  | ||
| Zeile 190: | Zeile 238: | ||
* Es kommt zu keinen Adresskollisionen, da nach außen nur die IP-Adresse des NAT-Routers sichtbar ist.  | * Es kommt zu keinen Adresskollisionen, da nach außen nur die IP-Adresse des NAT-Routers sichtbar ist.  | ||
= Nachteile =  | == Nachteile ==  | ||
* Ein Problem an NAT ist, dass die saubere Zuordnung „1 Host mit eindeutiger IP-Adresse“ nicht eingehalten wird.  | * Ein Problem an NAT ist, dass die saubere Zuordnung „1 Host mit eindeutiger IP-Adresse“ nicht eingehalten wird.  | ||
* Durch das Umschreiben von Protoko  | * Durch das Umschreiben von Protoko  | ||
| Zeile 197: | Zeile 245: | ||
* Das Ende-zu-Ende Prinzip (Direktverbindung) wird verletzt, indem der NAT-Router das IP-Paket bzw. TCP-Segment verändert, ohne dass er selbst der verschickende Host ist.  | * Das Ende-zu-Ende Prinzip (Direktverbindung) wird verletzt, indem der NAT-Router das IP-Paket bzw. TCP-Segment verändert, ohne dass er selbst der verschickende Host ist.  | ||
= NAT-Traversal =  | == NAT-Traversal ==  | ||
* '''IPsec''' mit '''NAT-Traversal''', oft nur als '''NAT-Traversal''' oder '''NAT-T''' bezeichnet, ist ein Verfahren zum Beheben von Problemen mit IPsec und Network Address Translation (NAT)[https://www.ip-insider.de/was-ist-nat-traversal-nat-t-a-921138/].  | * '''IPsec''' mit '''NAT-Traversal''', oft nur als '''NAT-Traversal''' oder '''NAT-T''' bezeichnet, ist ein Verfahren zum Beheben von Problemen mit IPsec und Network Address Translation (NAT)[https://www.ip-insider.de/was-ist-nat-traversal-nat-t-a-921138/].  | ||
* '''NAT-T''' findet Gebrauch bei IPsec-VPN, wenn IPsec (Encapsulating Security Payload) ESP-Pakete an Internet-Anschlüssen mit NATend Routern nutzt.  | * '''NAT-T''' findet Gebrauch bei IPsec-VPN, wenn IPsec (Encapsulating Security Payload) ESP-Pakete an Internet-Anschlüssen mit NATend Routern nutzt.  | ||
| Zeile 203: | Zeile 251: | ||
* ''Network Address Translation'' bricht das Gebot der Ende-zu-Ende-Konnektivität.  | * ''Network Address Translation'' bricht das Gebot der Ende-zu-Ende-Konnektivität.  | ||
===Techniken===  | ====Techniken====  | ||
* Anwendungen, die sich typischerweise von Host zu Host verbinden (z. B. bei Peer-to-Peer- und IP-Telefonie-Anwendungen oder VPN-Verbindungen) benötigen NAT-Durchdringungstechniken.  | * Anwendungen, die sich typischerweise von Host zu Host verbinden (z. B. bei Peer-to-Peer- und IP-Telefonie-Anwendungen oder VPN-Verbindungen) benötigen NAT-Durchdringungstechniken.  | ||
* '''Es gibt keine universell anwendbarenTechniken'''  | * '''Es gibt keine universell anwendbarenTechniken'''  | ||
| Zeile 213: | Zeile 261: | ||
* Sie müssen administrative Eingriffe an der NAT-Übergabestelle erlauben.  | * Sie müssen administrative Eingriffe an der NAT-Übergabestelle erlauben.  | ||
==Protokolle==  | ===Protokolle===  | ||
*'''SOCKS''', das älteste Protokoll zur NAT-Durchdringung, ist weit verbreitet, findet aber wenig Anwendung.  | *'''SOCKS''', das älteste Protokoll zur NAT-Durchdringung, ist weit verbreitet, findet aber wenig Anwendung.  | ||
* Bei SOCKS baut der Client eine Verbindung zum SOCKS-Gateway auf (dieser ist meistens direkt mit dem Internet verbunden).  | * Bei SOCKS baut der Client eine Verbindung zum SOCKS-Gateway auf (dieser ist meistens direkt mit dem Internet verbunden).  | ||
| Zeile 222: | Zeile 270: | ||
* Ein weiteres Beispiel für ein NAT-Traversal-Protokoll ist '''STUN'''[https://de.wikipedia.org/wiki/Session_Traversal_Utilities_for_NAT], das eine hohe Bedeutung bei VoIP hat.  | * Ein weiteres Beispiel für ein NAT-Traversal-Protokoll ist '''STUN'''[https://de.wikipedia.org/wiki/Session_Traversal_Utilities_for_NAT], das eine hohe Bedeutung bei VoIP hat.  | ||
=Links=  | ==Links==  | ||
== Intern ==  | === Intern ===  | ||
== Weblinks ==  | === Weblinks ===  | ||
* https://de.wikipedia.org/wiki/Port_Address_Translation  | * https://de.wikipedia.org/wiki/Port_Address_Translation  | ||
* http://www.hh.schule.de/ak/nt/einwahlv.htm  | * http://www.hh.schule.de/ak/nt/einwahlv.htm  | ||
Version vom 24. November 2022, 14:36 Uhr
NAT (Network Address Translation, Netzwerkadressübersetzung) ist eine Technik zur Übersetzung von IP-Adressen.
topic kurze Beschreibung
Beschreibung
Installation
Anwendungen
Fehlerbehebung
Syntax
Optionen
Parameter
Umgebungsvariablen
Exit-Status
Konfiguration
Dateien
Sicherheit
Dokumentation
RFC
Man-Pages
Info-Pages
Siehe auch
Links
Projekt-Homepage
Weblinks
Einzelnachweise
Testfragen
Testfrage 1
Antwort1
Testfrage 2
Antwort2
Testfrage 3
Antwort3
Testfrage 4
Antwort4
Testfrage 5
Antwort5
TMP
Beschreibung
- In Rechnernetzen der Sammelbegriff bei Änderungen von Adressen im IP-Header von IP-Paketen (Layer-3 des OSI-Modells)
 - NAT (genauer SNAT) ermöglicht die gleichzeitige Verwendung einer öffentlichen Adresse durch mehrere Hosts.
 - Üblicherweise übernimmt der Router im Netzwerk die SNAT, der die Verbindung zum Internet herstellt.
 - Oft ist dieser Router das Default-Gateway eines Hosts.
 
NAT-Typen
- NAT wird in Source-NAT (SNAT; dt.: „Quellen-NAT“) und Destination-NAT(DNAT; dt.: „Ziel-NAT“) unterschieden.
 - Beim Source-NAT wird die Adresse des verbindungsaufbauenden Computers (Quelle) umgeschrieben.
 - Beim Destination-NAT wird die Adresse des angesprochenen Computers (Ziel) umgeschrieben.
 
Verwendung von NAT
Verwendung von Source-NAT
- Source-NAT findet Anwendung aufgrund der Knappheit öffentlicher IPv4-Adressen.
 - Eine spezielle Form der SNAT wird auch Masquerading bzw. Masquerade[1] oder
 - Port and Address Translation (PAT) oder Network Address Port Translation (NAPT) genannt.
 - Wird vor allem bei Einwahlverbindungen [2] genutzt.
 - Beim Maskieren wird automatisch durch einen Algorithmus die Absender-Adresse des Pakets in die IP-Adresse des Interfaces geändert, auf dem das Paket den Router verlässt.
 - Beim SNAT muss die (neue) Quell-Adresse explizit angegeben werden.
 - In privaten oder möglichst preisgünstigen Netzinstallationen wird Source-NAT als eine Art Sicherheitsmerkmal und zur Trennung von internen und externen Netzen eingesetzt
 - Durch das Maskieren der Quell-IP-Adresse können die internen Rechner nicht mehr von außen direkt angesprochen werden.
 
Verwendung von Destination-NAT
- Destination-NAT wird verwendet, um das Ziel eines IP-Pakets zu ändern.
 - Meist findet DNAT Verwendung beim Ändern der öffentlichen IP-Adresse eines Internet-Anschlusses in die private IP-Adresse eines Servers im privaten Subnetz.
 - Diese Methode ist als „Port-Forwarding“ in Verbindung mit UDP / TCP - Verbindungen bekannt.
 - DNAT kann daher auch dazu genutzt werden, um mehrere, unterschiedliche Serverdienste, die auf verschiedenen Computern betrieben werden, unter einer einzigen (öffentlichen) IP-Adresse anzubieten(s. Abgrenzung von DNAT auch NAT-Traversal bzw. NAT-T).
 
Funktionsweise
NAT-Router, NAT-Session und NAT-Table
- Ein moderner Router mit NAT-Funktion ist zustandsbehaftet (stateful).
 - Beim stateful firewalling werden für jede seitens eines Clients angefragte Verbindung die zugehörigen Verbindungsinformationen (unter anderem IP-Adressen, Protokoll / Ports und Timeouts) in einer Session-Table gespeichert.
 - Anhand der gespeicherten Informationen kann der NAT-Router dann das jeweilige Antwort-Datenpaket dem richtigen Client wieder zuordnen.
 

- Nach Ablauf einer Session wird ihr Eintrag aus der Session-Table gelöscht.
 - Die Anzahl der Sessions, die ein NAT-Router gleichzeitig offen halten kann, ist durch seinen Arbeitsspeicher begrenzt.
 - 10.000 Sessions belegen nur etwa 3 MB.
 
Source NAT (SNAT)
- Bei jedem Verbindungsaufbau durch einen internen Client wird die interne Quell-IP-Adresse durch die öffentliche IP-Adresse des Routers ersetzt.
 - Ist der Ursprungsport belegt wird der Quellport des internen Clients durch einen freien Port des Routers ersetzt.
 - Diese Zuordnung wird in der Session-Table (NAT-Table) des Routers gespeichert.
 - Anhand der gespeicherten Informationen kann der NAT-Router dann das jeweilige Antwort-Datenpaket dem richtigen Client wieder zuordnen.
 - Der Vorgang wird als Port Address Translation (PAT) bezeichnet.
 
| lokales Netz (Local Area Network/LAN) | öffentliches Netz (Wide Area Network/WAN) | |||
| Quelle | Ziel | Router ===== = =====> NAT  | 
Quelle | Ziel | 
|---|---|---|---|---|
| 192.168.0.2:49701 | 170.0.0.1:80 | 205.0.0.2:49701 | 170.0.0.1:80 | |
| 192.168.0.3:50387 | 170.0.0.1:80 | 205.0.0.2:50387 | 170.0.0.1:80 | |
| 192.168.0.4:49152 | 170.0.0.1:23 | 205.0.0.2:49152 | 170.0.0.1:23 | |
Beispiel Source-NAT und IP-Routing
- In diesem Beispiel nutzt das private Netz die IP-Adressen 192.168.0.0/24.
 - Zwischen diesem Netz und dem öffentlichen Internet befindet sich ein Source-NAT-Router mit der öffentlichen Adresse 205.0.0.2/32.
 - Ein Routing ist erforderlich, wenn Absender und Empfänger in verschiedenen Netzen liegen.
 - Möchte eine über einen Source-NAT-Router angebundene Station ein Paket an einen Empfänger außerhalb seines (privaten) Netzes senden, so funktioniert der Kommunikationsprozess (vereinfacht dargestellt) wie folgt:
 
Ermittlungen
- Zuerst ermittelt die Station über DNS die Ziel-IP des Servers, und über die Routing-Tabelle den für das gewünschte Ziel nächstgelegenen Router, das sei hier der Source-NAT-Router.
 - Dann ermittelt die Station per Address Resolution Protocol (ARP) dessen MAC-Adresse und baut ein Paket wie folgt zusammen:
- Es enthält:
 
 
- Als Ziel-MAC-Adresse die MAC-Adresse des Source-NAT-Routers.
 - Die Ziel-IP-Adresse des Empfängers (hier 170.0.0.1).
 - Die Ziel-Portadresse für den Server.
 - Die MAC- und IP-Adresse des Absenders (hier 192.168.0.4).
 - Einen Absenderport (irgendeinen freien Port (high dynamic Port)) für die gerade anfragende Sitzung.
 - Sowie andere (Nutz)Daten.
 
Empfang
- Der Source-NAT-Router empfängt und verarbeitet das Paket, weil es an seine MAC-Adresse gerichtet ist.
- Bei der Verarbeitung im Router wird das Paket in abgeänderter Form weitergeleitet.
 - Der Router ermittelt anhand der Empfänger-IP-Adresse den nächsten Router.
 - Er ermittelt per ARP dessen MAC-Adresse und baut das Paket wie folgt um:
- Es erhält nun abweichend die MAC-Adresse des nächsten Routers.
 - Die Ziel-IP-Adresse des Empfängers (170.0.0.1), Ziel-Port
 - Die öffentliche MAC- und IP-Adresse des Source-NAT-Routers (205.0.0.2), einen gerade freien Absender-Port aus dem Reservoir des Routers (hier 49152) und die Nutzdaten, die gleich bleiben.
 
 
 
Verarbeitung
- Diese Zuordnung der ursprünglichen Absenderadresse und des Ports (192.168.0.4:49152) zum jetzt enthaltenen                    Adress-Tupel[3](205.0.0.2:49152) wird im Router solange gespeichert, bis die Sitzung abläuft oder beendet wird.
- Durch NAT wird das Paket auf Schicht 3 also wesentlich verändert.
 
 - Bei der Bearbeitung in nachfolgenden IP-Routern wird das Paket lediglich auf Schicht 2 verändert.
 - Der Router ermittelt den nächsten Router, ermittelt per ARP dessen MAC-Adresse und baut das Paket wie folgt um:
- Es erhält nun abweichend als Ziel-MAC-Adresse die MAC-Adresse des nächsten Routers
 - Die Absender-MAC-Adresse wird gegen die eigene ausgetauscht.
 - Die IP-Adresse des Empfängers (170.0.0.1), Ziel-Port sowie die Absender-IP-Adresse des Source-NAT-Routers (205.0.0.2), dessen Absender-Port 49152 und die Nutzdaten bleiben erhalten.
 
 - Das bedeutet: Auf Schicht 3 wird das Paket hier nicht verändert.
 - Dieser Vorgang wiederholt sich, bis ein letzter Router die Zielstation in einem direkt angeschlossenen Netz findet.
 - Dann setzt sich das Paket wie folgt zusammen:
- Es erhält als Absender-MAC-Adresse die des letzten Routers, als Ziel die MAC-Adresse der Zielstation, die IP-Adresse des Empfängers (170.0.0.1), Ziel-Port sowie die IP-Adresse des Absender-Source-NAT-Routers (205.0.0.2), dessen Absender-Port 49152 und natürlich Nutzdaten.
 
 
Abschluss
- Nach erfolgreicher Verarbeitung durch den Server wird die Antwort dann wie folgt zusammengestellt:
- MAC-Adresse des für den Rückweg zuständigen Routers (wobei Hin- und Rückroute nicht unbedingt identisch sein müssen).
 - Die IP-Adresse des anfragenden Source-NAT-Routers (205.0.0.2), die Ziel-Portadresse 49152 sowie die MAC- und IP-Adresse des Servers (170.0.0.1) und dessen Absenderport , sowie Antwort-Daten (Payload).
 
 - Nachdem alle Router durchlaufen wurden, wird daraus schließlich im Source-NAT-Router (205.0.0.2):
- MAC-Adresse und IP-Adresse des anfragenden Rechners (hier 192.168.0.4), und dessen Portadresse 49152 sowie die MAC des Source-NAT-Routers und IP-Adresse des Servers (170.0.0.1) und dessen Absenderport, sowie Antwort-Daten.
 
 - Wird diese Sitzung beendet, wird auch Port 49152 wieder freigegeben.
 
Destination NAT (DNAT)
- Bei jedem Verbindungsaufbau durch den Client wird die Ziel-IP-Adresse durch die des eigentlichen Empfängers im LAN ersetzt.
 - Außerdem wird der Zielport durch einen freien Port des Routers ersetzt, der dadurch belegt wird.
 - Diese Zuordnung wird in der NAT-Table des Routers gespeichert.
 
| öffentliches Netz (WAN) | lokales Netz (LAN) | |||
| Quelle | Ziel | Router ===== = =====> NAT  | 
Quelle | Ziel | 
|---|---|---|---|---|
| 170.0.0.1:1001 | 171.4.2.1:80 | 170.0.0.1:1001 | 192.168.0.2:80 | |
| 170.0.0.1:1001 | 171.4.2.1:22 | 170.0.0.1:1001 | 192.168.0.3:22 | |
| 170.0.0.1:1001 | 171.4.2.1:81 | 170.0.0.1:1001 | 192.168.0.3:81 | |
Kategorisierung
- RFC 3489, der das Protokoll STUN zur Traversierung von NAT-Gateways beschreibt, ordnet diese in vier verschiedene Klassen ein :
 
- Diese prototypischen Grundszenarien bilden in modernen NAT-Systemen allerdings oft nur Anhaltspunkte zur Klassifizierung punktuellen Verhaltens der Gateways.
 - Diese benutzen teilweise Mischformen der klassischen Ansätze zur Adressumsetzung.
 - Oder sie wechseln dynamisch zwischen zwei oder mehreren Verhaltensmustern.
 - RFC 3489 ist durch RFC 5389 ersetzt worden, der diese Kategorisierung nicht mehr versucht.
 
Vorteile
- NAT hilft die Verknappung der IPv4 Adressen zu entschleunigen.
 - Dies geschieht durch die Ersetzung mehrerer Adressen für mehrere Endsysteme durch eine einzige IP-Adresse.
 - IP-Adressen eines Netzes können vor einem anderen Netz verborgen werden.
 - Somit kann NAT zur Verbesserung der Privatsphäre eingesetzt werden.
 - Dieselben IP-Adressbereiche können von mehreren abgeschlossenen privaten Netzwerken verwendet werden.
 - Es kommt zu keinen Adresskollisionen, da nach außen nur die IP-Adresse des NAT-Routers sichtbar ist.
 
Nachteile
- Ein Problem an NAT ist, dass die saubere Zuordnung „1 Host mit eindeutiger IP-Adresse“ nicht eingehalten wird.
 - Durch das Umschreiben von Protoko
 - Ein Problem an NAT ist, dass die sall-Headern, was einem Man-in-the-middle-Angriff (MITM-Angriff[4]) ähnelt, haben insbesondere ältere Protokolle und Verschlüsselungsverfahren auf Netzwerk- und Transportebene durch diesen Designbruch Probleme.
 - Ebenso leiden insbesondere Netzwerkdienste, die Out-of-Band-Signalisierung (Telekommunikationssignalisierung) und Rückkanäle einsetzen, etwa IP-Telefonie-Protokolle, unter Komplikationen durch NAT-Gateways.
 - Das Ende-zu-Ende Prinzip (Direktverbindung) wird verletzt, indem der NAT-Router das IP-Paket bzw. TCP-Segment verändert, ohne dass er selbst der verschickende Host ist.
 
NAT-Traversal
- IPsec mit NAT-Traversal, oft nur als NAT-Traversal oder NAT-T bezeichnet, ist ein Verfahren zum Beheben von Problemen mit IPsec und Network Address Translation (NAT)[5].
 - NAT-T findet Gebrauch bei IPsec-VPN, wenn IPsec (Encapsulating Security Payload) ESP-Pakete an Internet-Anschlüssen mit NATend Routern nutzt.
 - Dabei werden die ESP-Pakete in UDP/4500 Pakete gepackt.
 - Network Address Translation bricht das Gebot der Ende-zu-Ende-Konnektivität.
 
Techniken
- Anwendungen, die sich typischerweise von Host zu Host verbinden (z. B. bei Peer-to-Peer- und IP-Telefonie-Anwendungen oder VPN-Verbindungen) benötigen NAT-Durchdringungstechniken.
 - Es gibt keine universell anwendbarenTechniken
 - Viele Techniken benötigen die Hilfe eines für beide Parteien direkt öffentlich zugänglichen Servers.
 - Manche Methoden nutzen einen solchen Server nur für den Verbindungsaufbau.
 - Andere leiten allen Verkehr der Verbindung über diesen Hilfs-Server.
 - Die meisten Methoden umgehen damit oft Unternehmens-Sicherheitsrichtlinien.
 - Deswegen werden in Unternehmensnetzwerken Techniken bevorzugt, die sich ausdrücklich kooperativ mit NAT und Firewalls verhalten.
 - Sie müssen administrative Eingriffe an der NAT-Übergabestelle erlauben.
 
Protokolle
- SOCKS, das älteste Protokoll zur NAT-Durchdringung, ist weit verbreitet, findet aber wenig Anwendung.
 - Bei SOCKS baut der Client eine Verbindung zum SOCKS-Gateway auf (dieser ist meistens direkt mit dem Internet verbunden).
 - Die Kommunikation wirkt für den Kommunikationspartner so, als würde sie direkt vom SOCKS-Gateway stammen.
 - Bei Heimanwendungen wird Universal Plug and Play (UPnP) genutzt, was eine dynamische Konfiguration eines port-forwardings durch den Client selbst ermöglicht.
 - Einige Router unterstützen auch ESP-pass-through[6].
 - Dabei werden die ESP-Pakete direkt an das VPN-Gateway durchgereicht und auf NAT-T wird verzichtet.
 - Ein weiteres Beispiel für ein NAT-Traversal-Protokoll ist STUN[7], das eine hohe Bedeutung bei VoIP hat.
 
Links
Intern
Weblinks
- https://de.wikipedia.org/wiki/Port_Address_Translation
 - http://www.hh.schule.de/ak/nt/einwahlv.htm
 - https://de.ryte.com/wiki/Tupel
 - https://de.wikipedia.org/wiki/Man-in-the-Middle-Angriff#
 - https://www.ip-insider.de/was-ist-nat-traversal-nat-t-a-921138/
 - https://de.wikipedia.org/wiki/IPsec#Encapsulating_Security_Payload_(ESP)
 - https://de.wikipedia.org/wiki/Session_Traversal_Utilities_for_NAT
 - https://de.wikipedia.org/wiki/Netzwerkadressübersetzung