Network Address Translation

Aus Foxwiki

Netzwerkadressübersetzung (engl. Network Address Translation, kurz NAT) ist in Rechnernetzen der Sammelbegriff bei Änderungen von Adressen im IP-Header von IPv4-Paketen (Layer-3 des ISO-OSI-Modells).

  • NAT (genauer SNAT) ermöglicht u. a. die gleichzeitige Verwendung einer öffentlichen Adresse durch mehrere Hosts.
  • Üblicherweise übernimmt der Router im Netzwerk die SNAT, der die Verbindung zum Internet herstellt.
  • Daher ist in der Regel 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

  • Am meisten findet Source-NAT Anwendung aufgrund der Knappheit öffentlicher IPv4-Adressen.
  • Die spezielle Form der SNAT wird auch Masquerading bzw. Masquerade genannt.
  • Wird vor allem bei Einwahlverbindungen 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ünstig ausgeführten 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 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

  • 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:
    • 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:
  1. Es erhält als Ziel-MAC-Adresse die MAC-Adresse des Source-NAT-Routers.
  2. Die Ziel-IP-Adresse des Empfängers (hier 170.0.0.1)
  3. Die Ziel-Portadresse für den Server.
  4. Die MAC- und IP-Adresse des Absenders (hier 192.168.0.4).
  5. Einen Absenderport (irgendeinen freien Port (high dynamic Port)) für die gerade anfragende Sitzung sowie andere Daten.
  • 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.
      • Diese Zuordnung der ursprünglichen Absenderadresse und des Ports (192.168.0.4:49152) zum jetzt enthaltenen Adress-Tupel[[1]](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.
  • 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.

Links

extern

https://de.ryte.com/wiki/Tupel