Seit Juni 2012 steht mit der sechsten Version des Internet-Pro­to­kolls (IPv6) eine Lösung für die zu­neh­men­de Ver­knap­pung von IP-Adressen bereit. Doch der Umstieg auf den neuen In­ter­net­stan­dard geht nur schlep­pend voran.

Einer Google-Statistik zufolge nutzten im Oktober 2016 mehr als 85 Prozent der In­ter­net­nut­zer weltweit noch immer den über­hol­ten In­ter­net­stan­dard IPv4. Doch dieser reicht mit rund 4,3 Mil­li­ar­den Adressen längst nicht mehr aus, die Vielzahl in­ter­net­fä­hi­ger Geräte mit ein­deu­ti­gen IPs zu versorgen. Nicht nur Computer, Tablets oder Smart­phones verlangen nach einem Zugang zur Online-Welt. Im Rahmen des Internet of Things (IoT) werden selbst Kühl­schrän­ke, Per­so­nen­waa­gen oder Kaf­fee­ma­schi­nen zu smarten Netz­werk­ge­rä­ten.

IPv4 kom­pen­siert das Problem der Adress­knapp­heit bereits seit den frühen 90er-Jahren durch eine klare Ab­gren­zung privater und öf­fent­li­cher Adress­räu­me. In lokalen Netz­wer­ken (LANs) werden in­ter­net­fä­hi­ge Geräte mit privaten IP-Adressen lokal adres­siert und durch eine ge­mein­sa­me öf­fent­li­che IP ans Internet an­ge­bun­den. Zentrale Schnitt­stel­le zwischen öf­fent­li­chem und privatem Adress­be­reich ist der Router. Hier erfolgt die Network-Address-Trans­la­ti­on, kurz NAT.

Was ist NAT?

Die Abkürzung NAT steht für Network-Address-Trans­la­ti­on, eine Adress­über­set­zung zwischen zwei Netz­wer­ken, die in der Regel im Router erfolgt. Ziel dieses Ver­fah­rens ist es, lokale Netzwerke mit dem Internet zu verbinden. Dabei un­ter­schei­det man zwei ver­schie­de­ne Typen der Netz­werk­adress­über­set­zung: Source-NAT (SNAT) und De­sti­na­ti­on-NAT (DNAT).

Source-NAT

Pri­vat­nut­zer kommen mit der Netz­werk­adress­über­set­zung meist in Form von Source-NAT (deutsch: „Quellen-NAT“) in Berührung. Das Verfahren findet sowohl in Heim- als auch in Fir­men­netz­wer­ken An­wen­dung­heim-HAn­wen­dung aN, wenn ein Netz­werk­ge­rät mit privater IPv4-Adresse über eine öf­fent­li­che IP aufs Internet zugreifen soll. Im all­ge­mei­nen Sprach­ge­brauch wird der Begriff NAT jedoch nicht immer trenn­scharf verwendet.  

Be­griffs­klä­rung: NAT vs. PAT

Grund­sätz­lich ist zu un­ter­schei­den, ob jeder einzelnen privaten IP-Adresse in einem lokalen Netzwerk eine eigene öf­fent­li­che IP-Adresse zu­ge­ord­net wird (1:1-Über­set­zung), oder ob sich alle Netz­werk­ge­rä­te die gleiche öf­fent­li­che IP teilen (n:1-Über­set­zung).

Streng genommen handelt es sich nur bei der 1:1-Über­set­zung um Network-Address-Trans­la­ti­on im wört­li­chen Sinne, da in diesem Fall lediglich die Netz­werk­adres­sen um­ge­schrie­ben werden. Die n:1-Über­set­zung hingegen erfordert zu­sätz­lich eine Anpassung der Port­num­mer. Dieses Verfahren wird daher als PAT (Port-and-Address-Trans­la­ti­on) bzw. NAPT (Network-Address-Port-Trans­la­ti­on) be­zeich­net.

Da das PAT-Konzept in IPv4-basierten Heim- und Fir­men­net­zen den Stan­dard­fall darstellt, wird dieses Verfahren im all­ge­mei­nen Sprach­ge­brauch oft ungenau als NAT be­zeich­net. Gängige Begriffe wie NAT-Router oder NAT-Tabelle kommen auch im Rahmen von PAT-Konzepten zum Einsatz. Doch wird von NAT ge­spro­chen, ist heute ei­gent­lich meist PAT bzw. NAPT gemeint.

Funk­ti­ons­wei­se der Port-and-Address-Trans­la­ti­on (PAT)

Im Regelfall kommt die Netz­werk­adress­über­set­zung in Form von PAT zum Einsatz, um mehrere lokale Geräte über eine ge­mein­sa­me IP-Adresse mit dem Internet zu verbinden.

Da private IPs nicht routbar sind (im Internet somit keine Bedeutung haben), müssen Da­ten­pa­ke­te, die ein Rechner (Client) im LAN an einen Server im Internet versendet, vom Router mit einer öf­fent­li­chen IP versehen werden. Dazu tauscht dieser die im Header des Da­ten­pa­kets hin­ter­leg­te private IP-Adresse des Clients gegen seine eigene öf­fent­li­che IP-Adresse aus. Zudem wird die intern ver­wen­de­te Port­num­mer durch einen freien Port des Routers ersetzt. Dieser tritt gegenüber Servern im Internet somit als Absender aller Da­ten­pa­ke­te auf, die aus dem lokalen Netzwerk versendet werden.

Sämtliche Ver­bin­dungs­in­for­ma­tio­nen (IP-Adressen, Ports und Timeouts) werden in der so­ge­nann­ten NAT-Tabelle ge­spei­chert (streng genommen müsste man auch hier von einer PAT-Tabelle sprechen). Be­ant­wor­tet der adres­sier­te Server die Anfrage des lokalen Computers mit einem Da­ten­pa­ket, wird dieses zunächst an den ent­spre­chen­den Port des Routers zu­rück­ge­sen­det. Dieser hat nun die Aufgabe, das ein­ge­hen­de Da­ten­pa­ket dem je­wei­li­gen Netz­werk­ge­rät zu­zu­tei­len, das die Anfrage gestartet hat. Alles was der Router dazu benötigt, sind die in der NAT-Tabelle hin­ter­leg­ten Ver­bin­dungs­in­for­ma­tio­nen. Ver­deut­li­chen lässt sich dies an einem Beispiel:

Wir nehmen an, ein Router hat von einem In­ter­net­ser­vice­pro­vi­der (ISP) die öf­fent­li­che IP-Adresse 217.229.111.18 zu­ge­wie­sen bekommen und fungiert als Stan­dard­gate­way für ein lokales Netzwerk. Dieses stellt für Netz­werk­ge­rä­te den privaten IP-Adress­be­reich 192.168.0.0/24 zur Verfügung (alle Adressen von 192.168.0.0 bis 192.168.0.24). Will nun eines dieser Geräte (z. B. ein Rechner mit der privaten IP-Adresse 192.168.0.2) eine Ver­bin­dung ins Internet her­stel­len (z. B. zu einem Webserver mit der öf­fent­li­chen IP 71.123.239.82 an dessen Port­num­mer 80), re­ser­viert dieses einen internen Port (z.B. 22433) und über­mit­telt die Auf­for­de­rung zum Ver­bin­dungs­auf­bau an den als Stan­dard­gate­way ein­ge­tra­ge­nen Router. Dieser ist intern über die private IP 192.168.0.1 adres­sier­bar und kom­mu­ni­ziert nach außen hin mit der öf­fent­li­chen IP 217.229.111.18.

Der Router bekommt somit folgende In­for­ma­tio­nen: Gerät 192.168.0.2 will an Port 22433 eine Ver­bin­dung zu 71.123.239.82 an Port 80 aufbauen. Um diesem Wunsch nach­zu­kom­men, muss der Router die Quell­adres­se des LAN-Geräts (IP-Adresse und Port­num­mer) durch die eigene Ab­sen­der­adres­se ersetzen. Er re­ser­viert daher einen be­lie­bi­gen freien Port (z. B. 61001) und leitet die Netz­werk­adress­über­set­zung ein: Aus 192.168.0.2:22433 wird 217.229.111.18: 61001. Alle re­le­van­ten In­for­ma­tio­nen werden in der NAT-Tabelle auf dem Router hin­ter­legt.

Private IP des Clients Port des Clients Öf­fent­li­che IP des Routers Öf­fent­li­cher Port des Routers
192.168.0.2 22433 217.229.111.18 61001

Beim Webserver ein­ge­gan­gen, wird die Anfrage ver­ar­bei­tet und, wenn möglich, mit dem an­ge­for­der­ten Da­ten­pa­ket (z. B. den Daten einer Website) be­ant­wor­tet. Diese Antwort erreicht zunächst den Router und wird von diesem mithilfe der ge­spei­cher­ten Ver­bin­dungs­in­for­ma­tio­nen wei­ter­ge­lei­tet: Laut NAT-Tabelle ist der externe Port 61001 für Ant­wort­pa­ke­te re­ser­viert, die an den Port 22433 des Netz­werk­ge­räts 192.168.0.2 zu senden sind.

Neben IP-Adressen und Port­num­mern notieren Router in der NAT-Tabelle für jede Ver­bin­dung eine Zeit­mar­kie­rung. Diese dient als Timeout und gibt an, wann der be­tref­fen­de Eintrag gelöscht werden kann. So lässt sich si­cher­stel­len, dass Ports bei In­ak­ti­vi­tät nicht dauerhaft geöffnet bleiben und mög­li­cher­wei­se zum Ein­fall­tor für Angriffe aus dem Internet werden.

De­sti­na­ti­on-NAT

Während Source-NAT Ver­bin­dun­gen aus dem LAN ins Internet er­mög­licht, wird De­sti­na­ti­on-NAT ein­ge­setzt, um ein lokales Gerät dauerhaft für ein­ge­hen­de Ver­bin­dun­gen aus dem Internet er­reich­bar zu machen. Dazu wird ein öf­fent­li­cher Port über die Router-Kon­fi­gu­ra­ti­on dauerhaft mit der IP-Adresse eines lokalen Netz­werk­ge­räts verknüpft. Alle Da­ten­pa­ke­te, die am ent­spre­chen­den Port eingehen, werden somit au­to­ma­tisch an die lokale Ziel­adres­se wei­ter­ge­lei­tet. Man spricht in diesem Fall von Port-For­war­ding (Port-Wei­ter­lei­tung). Zum Einsatz kommt dieses Verfahren bei­spiels­wei­se, wenn Ser­ver­diens­te aus dem LAN heraus im Internet be­reit­ge­stellt werden sollen. Offene Ports stellen jedoch ein Si­cher­heits­ri­si­ko dar. Es empfiehlt sich daher, das lokale Netzwerk vom Da­ten­ver­kehr aus dem Internet ab­zu­schir­men, indem Geräte, die per Port-For­war­ding adres­sier­bar sind, in de­mi­li­ta­ri­sier­ten Zonen (DMZ) isoliert werden.

NAT: Si­cher­heits­merk­mal oder Si­cher­heits­lü­cke?

Die Netz­werk­adress­über­set­zung im Router wird aufgrund der strikten Trennung von LAN und Internet mitunter als Si­cher­heits­merk­mal dis­ku­tiert. Die ver­meint­li­che Schutz­funk­ti­on ist jedoch lediglich ein Ne­ben­ef­fekt. NAT und PAT wurden ent­wi­ckelt, um der Ver­knap­pung von IPv4-Adressen ent­ge­gen­zu­wir­ken. Die Funk­tio­nen einer Firewall oder eines Pa­ket­fil­ters kann das Verfahren nicht zur Verfügung stellen.

Dennoch bieten NAT und PAT Nutzern in privaten Netz­wer­ken einen gewissen Grad an Pri­vat­sphä­re. Da alle lokalen Endgeräte eines IPv4-LANs über dieselbe öf­fent­li­che IP-Adresse ins Netz gehen, surfen Nutzer mehr oder weniger anonym. Der einzelne Host hinter dem Netzwerk-Router ist über das Internet nicht direkt adres­sier­bar – es sei denn, es wurde zu diesem Zweck ein Port-For­war­ding ein­ge­rich­tet. Für externe Be­ob­ach­ter scheinen alle Anfragen aus dem LAN vom Router aus­zu­ge­hen.

Darüber hinaus be­inhal­tet das Verfahren eine Schutz­funk­ti­on, die dafür sorgt, dass alle von außen in­iti­ier­ten Ver­bin­dungs­ver­su­che au­to­ma­tisch verworfen werden, solange man dies nicht mit Port­frei­ga­ben aushebelt. Ant­wort­pa­ke­te aus dem Internet werden nur an­ge­nom­men, wenn an einem be­stimm­ten Port des Routers Server-Antworten erwartet werden. Welcher Webserver antwortet, wird im Rahmen von NAT oder PAT jedoch nicht geprüft. Wurde ein Router-Port im Rahmen eines intern in­iti­ier­ten Ver­bin­dungs­auf­baus geöffnet, stellt dieser eine Si­cher­heits­lü­cke dar. Es empfiehlt sich daher, zu­sätz­li­che Si­cher­heits­me­cha­nis­men wie Firewalls und Pa­ket­fil­ter zu im­ple­men­tie­ren.

Nicht weg­zu­dis­ku­tie­ren sind zudem die Schwächen der Netz­werk­adress­über­set­zung via NAT oder PAT, die sich in erste Linie aus der strikten Trennung von privaten und öf­fent­li­chen Adress­räu­men ergeben. Diese stellt einen Bruch des im Rahmen des Internet-Designs an­ge­streb­ten Ende-zu-Ende-Prinzips dar. Zu einem Problem wird NAT daher bei In­ter­net­an­wen­dun­gen, die auf Grundlage dieses Ge­stal­tungs­prin­zips kon­zi­piert wurden.

Pro­to­kol­len wie FTP liegt die Annahme zugrunde, dass Hosts im Internet direkt mit­ein­an­der kom­mu­ni­zie­ren, ohne dass ein da­zwi­schen­lie­gen­der Knoten IP-Adressen oder Port­num­mern verändert. In NAT-ge­stütz­ten IPv4-Netz­wer­ken lassen sich diese daher nur mit Hilfe von Um­ge­hungs­tech­no­lo­gien einsetzen. Jeder zu­sätz­lich benötigte Me­cha­nis­mus erhöht jedoch die Kom­ple­xi­tät und Feh­ler­an­fäl­lig­keit eines IT-Systems. Die kon­se­quen­te Umsetzung des Ende-zu-Ende-Prinzips ist daher ein zentrales Design-Ziel des neuen Web-Standards IPv6.

IPv6: Das Ende für NAT?

Mit der sechsten Version des Internet-Pro­to­kolls hat sich die Anzahl der weltweit zur Verfügung stehenden IP-Adressen ver­viel­facht. Statt 4,3 Mil­li­ar­den IPv4-Adressen stehen heute theo­re­tisch 340 Sex­til­lio­nen IPv6-Adressen bereit, um Netz­werk­ge­rä­te ans Internet an­zu­bin­den. Mit anderen Worten: Jede Kaf­fee­ma­schi­ne bekommt ihre ein­zig­ar­ti­ge, weltweit routbare IP-Adresse. Die Netz­werk­adress­über­set­zung via NAT wird somit im Grunde über­flüs­sig, kann in IPv6-Netz­wer­ken jedoch weiterhin zu Einsatz kommen, um private Adress­be­rei­che vom öf­fent­li­chen Netz ab­zu­schir­men.

Zum Hauptmenü