Netzwerkanalyse, Fehlersuche, Testberichte
Home / News
Netzwerkanalyse
Grundlagen
Verkabelung
Erste Schritte
Baselining
Let's sniff
Tools
Auswerten/Filtern
Typische Probleme 1
Typische Probleme 2
Sicherheit
Bücher
Tutorials
Cacti
DSL einrichten
DynDNS einrichten
m0n0wall | pfSense
Nmap
VirtualBox
Wireshark
Forum
Shop
FAQ
Know How
Testberichte
Hardware-DB
Events
Netzwerklexikon
Links / Service
Suche
Kontakt
Impressum
Feedback
Sitemap
Partner
Unser Partner für
SSL Zertifikate
ist Checkdomain GmbH.
Netzwerktechnik Forum

Forum Netzwerktechnik (Archiv)

Kategorie Netzwerktechnik - Forum Wettbewerb

 
[1. Platz] Eine Einfuehrung in NAT

geschrieben am 30.05.2006 um 11:05 von bewa

Network Address Translation (oder meistens kurz NAT) ist vielen sicherlich schon einmal als Vokabel z.B. im Zusammenhang mit dem heimischen DSL-Router begegnet. Aber was macht diese in den letzten Jahren sehr populär gewordene Technik eigentlich? Dieser Artikel soll Denjenigen eine kleine Einführung in die unterschiedlichen Varianten von NAT, Einsatzszenarien und Problemfällen geben, die ein bischen genauer wissen möchten, was "unter der Haube" passiert und zur weiteren Beschäftigung und Experimenten mit NAT anregen. (Alle die irgendwann mal eine Cisco-Zertifizierung machen möchten müssen sich ohnehin damit beschäftigen, was auch für alle anderen die häufiger mit Netzwerktechnik und Servern in Berührung kommen aufgrund der vielen Möglichkeiten und der hohen Verbreitung von NAT ratsam ist.) Zusätzlich gibt es Brainstormin-artig kurze Exkurse in wichtige Aspekte der Netzwerk-Technik, über die man im Zusammenhang mit NAT "stolpern" könnte.

Ergänzend erfolgen ein paar Konfigurationsbeispiele für Router mit dem Routerbetriebssystem IOS von Cisco Systems. Diese sind für Privathaushalte eher untypisch, in Firmennetzen jedoch sehr häufig anzutreffen. Da sie in der Regel textbasiert konfiguriert werden, eignen sich Cisco-Configs gut um ohne zahllose Screenshots/Klickanleitungen
zu verdeutlichen, wie man die besprochene Technik in der Praxis einsetzen kann. (Mit beispielsweise einem Linux-basiertem Router ist das natürlich auch möglich, mir steht aber die Cisco-Technik näher.)

Diejenigen die sich intensiver mit der Thematik befassen wollen, finden ein paar Literaturtips am Ende es Artikels.

Durch nichts zu ersetzen bleibt natürlich praktischer Umgang mit der Technik. Entsprechende Router sind schon recht günstig zu bekommen. Der Aufbau eines entsprechenden Labs bietet jedoch genug Stoff für eigene Artikel…


NAT - Wieso, weshalb, warum?

NAT - Was ist das überhaupt? Schaut man sich die Übersetzung dieses Begriffes an, ist man schon auf einem guten Weg, um die Technik und ihre Arbeitsweise zu verstehen.
"Network Address" spricht für sich - hier werden also Netzwerkadressen bearbeitet. “Translation“ entspricht hier jedoch nicht wie so oft der "Übersetzung", sondern seinen weiteren Bedeutungen Schiebung, Umsetzung, Umwandlung. Ein NAT-Gerät wandelt Adressen nicht von einem Format in ein anderes (Übersetzung), sondern ersetzt Adressen, tauscht diese also aus. Absende-Adressen von Paketen im Internet-Protocol (IP) Format werden also gezielt manipuliert, nicht jedoch in ihrem Format verändert. Diese NAT geschieht in Routern, also Geräten die Netze miteinander verbinden - z.B. das kleine heimische Netz mit dem Internet.

Die Palette der Geräte die NAT-Varianten beherrschen ist dabei riesig - von einfachen Billig-DSL-Routern, über teurere Router-Plattformen für Firmen-Netze bis hin zu PC-Betriebs¬systemen, die NAT mehr oder weniger gut versteckt und konfigurierbar mitbringen. (Beispiel: Windows-Internetverbindungsfreigabe/ICS).

In den meisten Fällen ist der NAT-Router dabei der "Border-Router", also der Router am Rand eines ganzen Netzes nach außen hin, der die Verbindung in ein anderes Netz vornimmt. (z.B. Firmennetz zum Internetzugangsanbieter).

Der NAT-Vorgang ist dabei für die Rechner hinter dem Router transparent, d.h. weder der Rechner der über den Router nach draußen kommuniziert merkt etwas davon, das NAT im Einsatz ist, noch derjenige der mit ihm kommuniziert, z.B. der Server bei dem er Daten anfordert.

Wozu dieser Aufwand, wenn doch das Gleiche (IP-Adressen bleiben im gleichen Format) dabei raus kommt, fragt sich der eine oder andere jetzt vielleicht. Bevor wir uns also genauer anschauen, wie NAT abläuft, betrachten wir wozu man es überhaupt einsetzt. Es gibt einige populäre Szenarien, in denen NAT in der Praxis regelmäßig verwendet wird:


Einsatzszenarien für NAT

1) Renumbering - Mit diesem Begriff bezeichnen Netzwerker die Überarbeitung der IP-Adress-Struktur eines (Teil-)Netzes. Dieser (oft durchaus lästige Arbeitsschritt) wird dann nötig, wenn die vorhandene Adress-Struktur nicht mehr den Anforderungen entspricht oder die Vorgaben geändert worden sind.

Beispiele:
- Es sind zu wenige IP-Adressen in einem Subnetz verfügbar, weil z.B. inzwischen 300 Geräte in einer Niederlassung eine IP-Adresse benötigen, aber das ursprünglich dort vorgesehene IP-Netz nur 254 Adressen zur Verfügung stellt.
Die Netzwerkadministratoren haben nun zwei Möglichkeiten - einen zusätzlichen IP-Adress-Bereich zur Verfügung stellen oder allen Geräten in dieser Niederlassung ein neues, größeres Subnetz zuzuweisen. (Die Vor- und Nachteile dieser beiden Techniken sollen an dieser Stelle nicht beleuchtet werden, da sie den Rahmen dieses Tutorials sprengen würden.)

Entscheidet man sich dazu, allen Geräten das neue, größere Subnetz zuzuweisen, trifft man in der Praxis oft dann auf das Problem, das sich nicht alle "in einem Rutsch" umgestellt werden können, wie es sich theoretisch anbieten würde. Nicht alle beziehen ihre Adresse über das Dynamic Host Configuration Protocol (DHCP), sondern müssen von Hand umgestellt werden, die Hardware verlangt für den Adresswechsel einen Neustart, der aber nicht
spontan machbar ist (Maschine/Server wird im laufenden Betrieb benötigt, Neustart dauert sehr lange), usw. Hier ist ein möglicher Lösungsansatz ein NAT-Router am Übergang von der Niederlassung ins restliche Firmennetz, der alle alten Adressen schonmal auf das neue Schema anpasst:

Firmennetz <- NAT-Router -> Niederlassung

Damit sieht diese Niederlassung innerhalb des restlichen Firmennetzes aus, als sei sie bereits komplett umgestellt und die restlichen Komponenten können in Ruhe umgestellt werden. Dabei ist die Transparenz von NAT (die beteiligten Endgeräte merken nicht, das NAT eingesetzt wird) von großem Vorteil, da keine Änderungen auf einzelnen
Geräten erforderlich sind, sondern nur der Router angepasst wird.

- Firmenfusion - Wird eine Firma aufgekauft oder im Rahmen einer Fusion in ein anderes Firmennetz integriert, passt das IP-Adress-Konzept oft nicht ins bestehende Konzept das übernommen werden soll. Damit während der Übergangs-/Umstellungsphase nicht z.B. die Zugriffsbeschränkungen auf die Firmenserver ("Zugriff nur aus dem IP-Netz X.Y.Z.A") fehleranfällig und aufwändig doppelt gepflegt werden müssen, passt ein NAT-Router die Datenpakete der noch nicht umgestellten Rechner auf das neue Subnetz an.

- Provider-Wechsel Wird z.B. aus Kostengründen ein neuer Internetzugangsanbieter (ISP) gewählt, so ist es oft nicht möglich, die direkt aus dem Internet erreichbaren Adressen (die sogenannten öffentlichen Adressen) vom alten Anbieter zum neuen zu übernehmen, da dieser neue Adressen vorgibt. Damit die Server in dieser Übergangsphase auch weiter erreichbar sind, wenn sie nicht z.B. über Nacht umgestellt werden können, kann ein NAT-Router
die alten Adressen "nach außen" schonmal durch die neuen ersetzen.

ISP <- (Neue Adresse) NAT-Router (Alte Adressen) -> Firmennetz

2) Adressüberschneidung - Die bereits beim Renumbering (s.o.) erwähnte Verschmelzung/Verbindung zweier Netze kann auch dadurch zum Problem werden, das sich zwei Netzbereiche überschneiden, also z.B. zwei Teilnetze das Subnetz 192.168.1.0 verwenden, wodurch IP-Adressen doppelt vorkommen können. Damit diese Überschneidung
nicht zu Problem führt, kann ein NAT-Router vor einem dieser Teilnetze ein anderes Subnetz vorgaukeln, es also so aussehen lassen, als ob sich dahinter nicht 192.168.1.0 sondern 192.168.2.0 befindet. Dazu ersetzt der NAT-Router die Adressen, sobald Pakete das Teilnetz verlassen.

3) Adressmangel - DIE Killeranwendung für NAT, die zu seiner weiten Verbreitung entscheidend beigetragen hat.
Für diejenigen Geräte, die an das Internet angebunden sind, steht nur eine begrenzte Anzahl von IP-Adressen zur Verfügung. Würden alle Geräte, die prinzipiell gleichzeitig mit dem Internet Verbindung aufnehmen können jeweils eine eigene, also nur für sie zur Verfügung stehende IPv4-Adresse bekommen, stünden vermutlich schon bald nicht mehr genug Adressen zur Verfügung.

Daher wurden im sogenannten RFC 1918 die IP-Netze unterteilt in „öffentliche“ die
direkt im Internet Verwendung finden dürfen und "private" die nur innerhalb eines abgeschlossenen Netzes verwendet werden
dürfen. (10.0.0.0/8, 172.16.0.0/16, 192.168.0.0/24) Aus diesen Subnetzen darf sich jeder Netzwerkadministrator beliebig "bedienen" solange diese Adresse nicht nach außen, also im Internet sichtbar werden. (In der Regel verhindern die ISP dieses auch über entsprechende Filter auf ihren Zugangsroutern, Pakete mit diesen Absender-Adressen werden also vom
ISP-Router verworfen!)

Es arbeiten also zigtausende Geräte weltweit mit der IP 192.168.1.2 gleichzeitig, obwohl sie "irgendwie" mit dem Internet verbunden sind. In der Praxis arbeitet auch hier ein NAT-Router zwischen dem heimischen Netz und dem Internet um diese gewollte Adressüberschneidung (siehe 2)) zu beseitigen.

Dem aufmerksamen Leser wird an dieser Stelle auffallen, das es doch so eigentlich nichts bringt - wenn z.B. fünf PCs zuhause gleichzeitig Internet-Zugriff benötigen, müsste man auch fünf "öffentliche" Adressen haben, hätte also nichts gespart. Zum Glück beherrscht es
die Allzweckwaffe NAT aber auch mehrere (in diesem Fall "private") IP-Adressen hinter einer einzigen (hier: öffentlichen) zu "verstecken".
Der NAT-Router bekommt diese eine Adresse vom Provider zugeteilt und sorgt dafür, das die an ihm angeschlossenen Clients diese gleichzeitig nutzen können. Diese Technik wird auch als NAT Overloading oder Port Adress Translation (PAT) bezeichnet.
Wie das technisch funktioniert, schauen wir uns im weiteren Verlauf noch an.

4) "Verstecken" von Adressen - Durch NAT kann die intern (z.B. für die Fileserver) verwendete IP-Adressstruktur nach außen zufällig aber auch absichtlich völlig anders aussehen, als sie intern tatsächlich ist. Sobald die Adressen den NAT-Router passieren, werden sie ersetzt - hinter dieser Grenze (von innen gesehen) kann also niemand sehen, welche IP-Adressen und -Netzstrukturen intern verwendet werden oder auch nur, wie viele Rechner sich tatsächlich hinter einer bestimmten IP-Adresse "verstecken". (Das Verschleiern der Rechneranzahl gelingt je nach technischem Aufwand und Sachverstand des äußeren Betrachters in der Praxis u.U. nicht vollständig, setzt aber schon deutlich höhere Hürden als
bloßes Abzählen von Adressen.) NAT geschieht wie bereits erwähnt bei sauberer technischer Umsetzung für die beteiligten Rechner/Clients transparent, so dass auf diesen gar keine Konfigurationsänderungen nötig sind. Ob diese Maßnahme tatsächlich einen Sicherheits-
gewinn bringt ist umstritten. So genannte security by obscurity, also ein Sicherheitsgewinn der dadurch entstehen soll, das man dem Angreifer Infos vorenthält, wird in der Praxis oft nur eingesetzt wird um ein lückenhaftes Konzept zu verdecken. Insbesondere kann eine solche Maßnahme auch den gegenteiligen Effekt bewirken – man wird nachlässig, weil der Angreifer ja ohnehin nicht sehen kann, wie es funktioniert. Sieht er es irgendwie doch, fällt das Konzept in sich zusammen.


NAT - Vokabeln

Im Zusammenhang mit NAT hat der Router-Hersteller Cisco einige Vokabeln seiner Sichtweise von NAT etabliert, die sich in seinen Anleitungen und Büchern finden, aber auch von manchen Dritten übernommen wurden und das Verständnis von Texten in Zusammenhang mit NAT erleichtern, wenn man sie verinnerlicht hat. In Klammern finden sich jeweils die englischsprachigen Begriffe, die man auch in Router-Konfigurationen wieder findet.

Unterschieden wird immer in eine Innenseite (inside) und eine Außenseite (outside), also z.B. das Firmennetz und das Netz des Internetzugangsanbieters (ISP):

inside <-- NAT-Router --> outside

Welche Seite innen und welche außen ist, bleibt letztlich technisch gesehen Geschmackssache, ist aber vor der Konfiguration eindeutig festzulegen. (Üblich ist die beschriebene Variante "kleines Netz innen, großes außen", also z.B. Firmennetz innen, ISP-Netz und Internet außen)

Nun unterscheidet man noch zwischen lokalen (local) und globalen (global) IP-Adressen. Lokal werden dabei diejenigen genannt, die ein Gerät (device) auf der Innenseite benutzt, die also von Hand eingetragen oder per DHCP zugewiesen wird. Geräte sind in diesem Fall alle PCs, Drucker, Server, Maschinen, etc. die IP nutzen. Global bezeichnet entsprechend die Adressen, die Geräte auf der Außenseite benutzen. Damit ergeben sich vier mögliche Kombinationen:

Innere lokale (Inside local, IL) Adresse - IP-Adresse eines Gerätes auf der Innenseite vor der Veränderung durch den NAT-Router, z.B. die viel gesehene 192.168.1.2 für einen PC am DSL-Router zuhause.

Innere globale (Inside global, IG) Adresse - IP-Adresse innerer Geräte nach der Übersetzung, also diejenige mit der sie global "im Netz" sichtbar sind - z.B. die Adresse die der DSL-Router vom Provider erhalten hat.

Äußere lokale (outside local, OL) Adresse - IP-Adresse von Geräten auf der "Außenseite", mit der sie auf der Innenseite bekannt sind, z.B. die IP-Adresse eines Webservers oder eines anderen Internet-Rechners, die man von zuhause "anpingen" kann.

Äußere globale (outside global, OG) Adresse - IP-Adresse von Geräten auf der "Außenseite", die ihnen bekannt ist, mit der sie also fest oder per DHCP konfiguriert worden sind.

Nanu? Sind die letzten beiden Adressen nicht gleich? Ein Internet-Server hat doch eine "richtige" (öffentliche) IP-Adresse, wozu dann noch diese Unterscheidung? -> Zum einen ist das nicht immer der Fall, zum anderen wird diese Betrachtung spätestens dann nötig, wenn in beide Richtungen NAT-Geräte beteiligt sind. Einfaches Beispiel: Zwei DSL-Anwender an unterschiedlichen DSL-Anschlüssen tauschen Daten miteinander aus. Mit großer Wahrscheinlichkeit setzen beide jeweils einen NAT-Router ein. Dann findet Overlapping statt – dazu kommen wir gleich.



NAT - Die Spielarten

Es gibt mehrere unterschiedliche Formen von NAT, von denen wir uns die ersten drei nach dieser kurzen Übersicht genauer
anschauen werden.

1) Statisches NAT, Basic NAT - Es wird eine feste 1:1-Umsetzung definiert, also wird immer genau eine lokale Adresse in eine festgelegte globale Adresse umgeschrieben. Beispiel: A hat intern die 192.168.1.2, extern die 10.1.2.3 und kommuniziert mit S, 11.12.13.14:

A(192.168.1.2) <-> NAT-Router(hat vom ISP die 10.1.2.3. bekommen) <-> S (11.12.13.14)

a) A verschickt Paket mit Anfrage an 11.12.13.14, Absender 192.168.1.2
b) der NAT-Router dazwischen fängt das Paket ab, ändert den Absender auf 10.1.2.3 und schickt das Paket weiter an S
c) S empfängt das Paket und schickt die Antwort zurück an 10.1.2.3
d) der NAT-Router fängt das Paket wieder ab, ändert den Empfänger von 10.1.2.3 auf 192.168.1.2 und schickt es an A.
e) A empfängt die Antwort auf die Anfrage an S(11.12.13.14) mit dem (vermeintlichen) Adressaten 192.168.1.2

Prinzipiell können natürlich mehrere Zuordnungen eingetragen werden, z.B. 192.168.1.3 zu 11.12.13.15, usw., diese sind aber immer statisch, einer inneren Adresse wird also genau eine äußere fest zugeordnet.

2) Dynamisches NAT, Pool NAT - Wie der Name bereits verrät, geschieht die Zuordnung von inneren zu äußeren IP-Adressen hierbei dynamisch, es ist also keine feste Zuordnung gegeben.
Beispiel: Nach außen stehen drei IP-Adressen zur Verfügung, innen sind aber fünf Geräte angeschlossen von denen jedoch nie mehr als drei gleichzeitig betrieben werden, weil nur drei
Netzwerk-Ports zur Verfügung stehen. (Gut, im Zeitalter von WLAN und Billigswitchen nicht realistisch, aber nachvollziehbar…)

Dabei ist es nach außen hin egal, welcher innere Rechner welche äußere Adresse benutzt, Hauptsache jede äußere Adresse wird nur von einem inneren Rechner benutzt. Der NAT-Router ordnet diese Adressen dynamisch zu, vergibt also dem ersten PC der in Betrieb geht die erste äußere IP, dem nächsten die zweite, usw.
Beispiel: Innen wird 192.168.1.0/24 genutzt, außen steht 10.1.1.0/28 zur Verfügung:

Bis zu 254 Rechner Innen (192.1681.1-192.168.1.254) <-> NAT-Router <-> Bis zu 14 Adressen Außen (10.1.1.1-10.1.1.14)

Was passiert wenn der Pool an äußeren Adressen vergeben ist, also in unserem Beispiel doch noch z.B. über einen zusätzlichen Switch ein vierter Rechner angeschlossen wird, obwohl nur drei äußere Adressen vorhanden sind? Je nach Implementation gibt es zwei Möglichkeiten:

Der Rechner der am längsten nicht nach außen kommuniziert hat, hat Pech - sein Eintrag wird zugunsten "des Neuen" aus der Tabelle gestrichen. Das kann jedoch zu Datenwirrwarr führen, wenn Pakete eintreffen, die noch für den vorherigen Besitzer der externen Adresse gedacht sind, oder der verstoßene Rechner auf einmal wieder kommunizieren möchte.
Daher ist die zweite Variante weit verbreitet - Kandidat 4 hat schlicht Pech gehabt und muss Schlange stehen. Seine Pakete werden
solange vom NAT-Router nicht nach außen durchgereicht und verworfen, bis einer der Kandidaten in der NAT-Tabelle, also ein "Besitzer"
einer äußeren IP-Adresse für eine bestimmte Zeitdauer (NAT translation timeout) nicht nach außen kommuniziert hat. Dann wird er aus der Liste gestrichen und "Kandidat 4" kann loslegen. Will der verlorene Sohn doch wieder kommunizieren, muss er seinerseits
nun Schlange stehen. ("Reise nach Jerusalem" für IP-Devices ;-) )

3) NAT Overloading, Port Adress Translation, PAT - Die mit Abstand populärste Anwendung von NAT bekämpft das vorhin schon benannte Problem "Adressmangel".
Beispiel, wieder mit 192.168.1.0/24 innen, jedoch nur eine IP-Adresse (10.1.1.1) außen:

Bis 254 Devices Innen (192.1681.1-192.168.1.254) <-> NAT-Router <-> 1 IP außen 10.1.1.1

Darf nun nur ein Rechner nach außen kommunizieren und der Rest muss warten? (siehe oben, Dynamisches NAT). Nein, der NAT-Router erlaubt mit einem Trick (indem er die Absende-Ports einbezieht, dazu nachher mehr) fast beliebig vielen Rechnern gleichzeitig den Zugriff nach außen. (Theoretische Grenze: 65535, da so viele Ports zur Verfügung stehen, praktisch dürfte ein einzelner NATRouter meistens vorher beim zugehörigen Datenverkehr schon seine Leistungsgrenze erreicht haben.)

Kann man das (Dynamisches NAT und Overloading) auch kombinieren, also z.B. zwei Adressen nach außen teilen und diese bei Bedarf überladen? Ja, prinzipiell machbar, aber mit Abstand am häufigsten dürfte sich (dank der Verbreitung von Routern im Heim-Bereich) eine 1:n-Zuordnung finden, also eine öffentliche für n private Adressen.

4) Overlapping - Keine wirkliche Sonderform von NAT, sondern ein häufiger anzutreffender Begriff wenn für beide Richtungen NAT zum Einsatz kommt.
NAT1 modifiziert dabei die Adresse von A, NAT2 die von B:

A <-> NAT1 <-> (...) <-> NAT2 <-> B

Wozu dieser Aufwand? Diese Kombination wird in der Regel dann verwendet, wenn Rechner miteinander kommunizieren müssen, deren Adressbereiche sich überschneiden oder komplett gleich sind. (Daher auch der Name Overlapping, Überschneidung) Zum Beispiel wenn sich nach Firmenfusionen IP-Netze überschneiden, weil die Administratoren beider ehemaliger Teilfirmen die gleichen Subnetze verwendet haben.

Die beiden NAT-Router arbeiten als "Dolmetscher" indem sie einfach andere Adressen
einsetzen ohne das die beteiligten Clients das merken. In der Praxis vermeidet man übrigens derartige Klimmzüge soweit irgendwie möglich durch schnelle Umstellungen und vorausschauende IP-Adresskonzepte, da sie zusätzliche Fehlerquellen in das Netz einbauen,
NAT nicht mit allen Protokollen sauber funktioniert (dazu nachher mehr) und solche so Konstrukte allzu oft für einige zusätzliche graue Haare verantwortlich sind. ;-)

Weiteres Beispiel gefällig? Kommunizieren zwei Benutzer an unterschiedlichen (DSL)-Anschlüssen miteinander, ist mit hoher Wahrscheinlichkeit zweimaliges NAT im Spiel, da gängige DSL-Router von Haus aus damit arbeiten. Ganz nebenbei wird dabei
wohl auch eine Überlappung (Overlapping) der IP-Adressbereiche entschärft, weil die meisten DSL-Heimrouter intern 192.168.0.0/24 oder 192.168.1.0/24 vergeben und natürlich baugleiche Geräte der gängigen Hersteller in Standardkonfiguration dabei meistens gleich vorgehen.


NAT-Beispielkonfigurationen

Aber jetzt weg von den theoretischen Betrachtungen, schauen wir uns doch wenigstens ein bischen Praxis an. ;-) Wie konfiguriert man die drei gängigen NAT-Varianten (Statisch, dynamisch, overloading) bzw. was muss man dabei mindestens bedenken wenn man sich nicht auf die ominöse Black Box in der Hersteller-Konfiguration verlassen will oder kann:

1) Basic NAT Beispiel - Angenommen sei ein internes Netz, dessen Clients das Subnetz 192.168.1.0/24, also die Subnetzmaske 255.255.255.0 verwenden. Genau einer dieser Rechner darf nun auf das Internet zugreifen, wählen wir z.B. 192.168.1.2. (Nur der Chef darf im Web surfen - der Rest wird am Router scheitern.)

Dafür steht dem Router die öffentliche IP 217.255.153.217 vom ISP zur Verfügung. Im inneren Netz hat der Router die IP 192.168.1.1. Um NAT "richtig herum" ausführen zu können (dem Router ist es prinzipiell egal, was Innen- oder Außenseite ist) muss der Router zusätzlich wissen, über welche Netzwerkschnittstelle (Interface) die Innenseite angebunden ist und welche die Außenseite darstellt.

In diesem Beispiel wird ein Router eingesetzt, der (mindestens) über eine Ethernet-Schnittstellen zur Anbindung an das lokale Netz namens Ethernet0 und eine serielle Leitung zum Provider namens Serial0 verfügt. (Cisco-Kenner werden wissen, das diese je Plattform auch andere Namen tragen können/müssen, aber damit möchten wir uns an dieser Stelle
nicht weiter beschäftigen, da es für das Verständnis unwichtig ist.)

Es soll also folgende Konfiguration mit statischem NAT (Basic NAT) erfolgen:


Client (192.168.1.2) <-> (192.168.1.1) NAT-Router (217.255.153.217) <-> Äußeres Netz


Sobald der Client das eigene Netz 192.168.1.0/24 in die weite Welt verlässt, soll seine Absende-Adresse in 217.255.143.217 umgeschrieben werden. (Der Router gaukelt also in diesem Fall vor, er hätte die Anfrage selber geschickt. Prinzipiell kann er irgendeine Adresse eintragen.)

Einem Cisco-Router würde man dieses wie folgt "beibringen":(Für diejenigen die schon Erfahrungen mit Cisco IOS haben zunächst die relevante Konfiguration am Stück, danach nehmen wir uns die Befehle einzeln vor, damit alle etwas davon haben.)

ip nat inside source static 192.168.1.2 217.255.153.217
!
interface Ethernet0
ip address 192.168.1.1 255.255.255.0
ip nat inside
!
interface Serial0
ip address 217.255.153.217 255.255.255.0
ip nat outside
!

Schauen wir uns nun genau an, was hier konfiguriert wird:

ip nat inside source static 192.168.1.2 217.255.153.217

Konfiguriert wird ein Bestandteil des Internet Protocols (ip), die Network Address Translation (nat). Auf der Innenseite ist die Quelle (inside source) dieser statischen Zuordnung (static) die 192.168.1.2, das Ziel außen ist die 217.255.153.217.

Nachdem der Ethernet- und der seriellen Schnittstelle die IP-Adressen zugeordnet wurden, wird auf diesen noch die NAT in die jeweilige Richtung (inside bzw. outside) eingeschaltet.

Wichtig: Hier wird also nicht nur festgelegt, wo "innen und außen" ist (welche Schnittstellen/Interface), sondern überhaupt erst NAT für diese Richtung aktiviert - ohne diese Befehle erfolgt keine NAT, egal welcher Art!

Natürlich können auch mehrere Zuordnungen dieser Art mittels "ip nat inside source static Innere.Adresse Äußere.Adresse" eingetragen werden, sie bleiben aber statisch - man ordnet einer inneren IP fest eine äußere und zu muss jede Anpassung von Hand vornehmen.

Unter Umständen reicht solch eine einfache, gezielte Umschreibung bestimmter Adressen schon aus - um genau den störrischen oder exotischen Maschinen, deren IP-Konfiguration sich nicht so ohne weiteres im laufenden Betrieb ändern lässt nach außen hin schonmal den "neuen Look" zu verpassen…

2) Dynamisches NAT - Im Gegensatz zum Basic NAT wird hier bekanntlich ein Pool von Adressen verwendet, der nach außen hin dynamisch zugeordnet wird. Die Zuordnung einer inneren zu einer äußeren Adresse muss also nicht mehr fest eingetragen werden.
Stattdessen wird ein Adress-Pool benutzt - der Router erhält also vorher eine Liste äußerer Adressen, die er den inneren Adressen zuweisen darf. Schauen wir uns wieder eine Beispiel-Konfiguration am Cisco-Beispiel an. Die Netze 192.168.1.0/24 und 192.168.2.0/24
sollen sich nach außen die IPs 217.255.153.1 bis 217.255.153.254 teilen (also quasi eine offizielle IP für je zwei Rechner):

192.168er Netze <-> NAT-Router (217.255.153.1-217.255.153.254) <-> Internet

access-list 1 permit 192.168.1.0 0.0.0.255
access-list 1 permit 192.168.2.0 0.0.0.255
ip nat pool pool1 217.255.153.1 217.255.153.254 netmask 255.255.255.0
ip nat inside source list 1 pool pool1

("Unterschlagen" habe ich an dieser Stelle das Einschalten des NAT und die Vergabe der IP-Adressen, weil sie genau identisch aussieht, wie im vorherigen Beispiel zu Static NAT!)

Nun zerpflücken wir wieder die einzelnen Bestandteile der Konfiguration:

access-list 1 permit 192.168.1.0 0.0.0.255
access-list 1 permit 192.168.2.0 0.0.0.255

Hier wird eine Access-List (mit der Nummer 1) konfiguriert. Da zwei Einträge nacheinander für die gleiche Liste erfolgen, werden diese dort einfach der Reihe nach hinzugefügt. Wie der Name verrät dienen Access-Lists normalerweise dazu, den Zugriff (access) auf Netzresourcen zu regulieren. In diesem Fall wird eine Access-List zweckentfremdet, um eine Liste von IP-Adressen anzulegen. Diesen wird etwas erlaubt (permit), diese Erlaubnis gilt für IP-Adressen aus dem Netz 192.168.1.0/24 bzw. 192.168.2.0/24.
Somit ist also zunächst eine Regel definiert die etwas erlauben kann - was sie erlaubt (nämlich NAT für diese Absender-Adressen) regeln wir gleich noch.

Hinweis für IOS-Neulinge bzw. diejenigen ohne Erfahrung im Umgang mit Access-Lists:
Die auf den ersten Blick wie eine verunglückte Subnetz-Maske aussehende Netzmaske der Access-List (0.0.0.255) besagt, das mit dieser Access-List alle Adressen aus 192.168.1.0/24 bzw. 192.168.2.0/24 gemeint sind. Access-Listen in Ciscos IOS sind ein derart umfangreiches Thema, das sie an dieser Stelle nicht weiter ausgeführt werden sollen, da sie Stoff für ein oder auch mehrere gesonderte Artikel ergeben.

Warum geht man überhaupt den Umweg über die Access-List anstatt NAT direkt zu konfigurieren? Man kann wie hier zu sehen ist gleich mehrere Netze zu einer Liste hinzufügen, entfernen, verändern, etc. ohne für jede einzeln NAT konfigurieren zu müssen.
NAT wird letztlich für die gewünschte Liste in einem Rutsch konfiguriert.

Doch weiter zum nächsten Befehl, dem Anlegen des Vorrats (engl. Pool) für die äußeren Adressen:
ip nat pool pool1 217.255.153.2 217.255.153.254 netmask 255.255.255.0

Für IP-NAT (ip nat) wird ein Adress-Pool (pool) namens pool1 angelegt, der von 217.255.153.2 bis 217.255.153.254 mit einer /24er Netzmaske (255.255.255.0) reicht. Auch hier lassen sich also nach dem Listen-Prinzip wieder mehrere Pool-Bereich anlegen, falls das Netzdesign es erfordert. Man könnte also auch noch pool2, pool3, meinpool, usw. definieren.
Warum denn jetzt das eine über eine Access-List und das andere nicht? – Merkhilfe: NAT von innen nach außen muss „erlaubt“ werden, also braucht man dazu eine Access-List.

Der nächste Befehl, Verbindung von Access-Liste und NAT-Pool:

ip nat inside source list 1 pool pool1

Analog der Zuordnung genau einer festen Adresse (beim Static NAT) wird hier für IP-NAT (ip nat) zunächst die Quelle auf der Innenseite (inside source) festgelegt - in diesem Fall eine Liste (list) - Access-List Nr. 1 die wir ja vorher bereits dafür angelegt hatten.
Als "Ziel" (äußere Adressen) werden die Adressen aus dem Pool "pool1" festgelegt. (Den wir ebenfalls bereits angelegt hatten.)
Zu lesen ist dieser Befehl also wie folgt: Wenn Pakete mit Absender-Adressen aus der (Access-)Liste 1 auf einem Interface auftauchen für das NAT-Inside aktiviert ist und an ein äußeres Interface gehen sollen, "erlaube" (lies: erzwinge) das Ersetzen durch Adressen aus dem Pool "Pool1", bevor die Pakete an das zuständige äußere Interface gegeben werden.

Wie kann nun ein Router bei eintreffenden Paketen auf dem äußeren Interface ermitteln, wer diese "innen" zurück erhalten muss? Die Lösung ist langweilig, aber nahe liegend – Buchführung. Der Router führt eine Tabelle, sobald NAT aktiviert ist. Für jede Adressanpassung die er neu vornimmt, fügt er einen Eintrag hinzu. Hat er für eine Adresse bereits länger keine Verwendung mehr gehabt, verwirft er diesen Eintrag. (Der zuständige Timer wird übrigens mit ip nat translation timeout Anzahlsekunden konfiguriert. In der default-Konfiguration hat Cisco beachtliche 86400 Sekunden, also 24 Stunden vorgesehen. Ist der Eintrag einmal drin, wird er also erst nach 24h ohne Aktivität verworfen!)

Beispiel für eine Dynamic NAT-Tabelle:

Inside Local IP Inside Global IP
192.168.1.2 217.255.153.2
192.168.1.5 217.255.153.3

Treffen nun in diesem Beispiel auf dem als NAT-Outside deklarierten Interface (Serial0) Pakete an 217.255.153.2 ein, ändert der Router die Ziel-IP-Adresse auf 192.168.1.2 und gibt das Paket an das zugehörige NAT-Inside-Interface (Ethernet0) weiter. Ist in der Tabelle kein Eintrag mit der zugehörigen Adresse enthalten, verwirft der Router das Paket! Hat der Rechner mit der IP 192.168.1.3 also wie hier noch nicht nach außen kommuniziert (kein Eintrag in der NAT-Tabelle), kann er auch nicht von außen erreicht werden!


3) NAT Overloading, PAT - NAT Overloading wird auch als Port Address Translation (PAT) bezeichnet. Das ergibt sich aus der Besonderheit gegenüber den anderen beiden NAT-Varianten - nach außen hin ist nur eine IP-Adresse sichtbar.
Damit der Router bei mehreren Rechnern "innen" überhaupt auseinander halten kann, für wen die zurück kommenden Pakete gedacht sind (nach außen hin gibt es ja nur einen Absender, eine Absender-IP), verändert er nicht nur die IP-Adresse (auf den immer gleichen Wert), sondern auch den Absender-Port. Im Idealfall übernimmt er dabei den Absender-Port des absendenden Rechners, sofern sich dadurch keine Überschneidungen ergeben. Andernfalls passt er den Port auf einen freien Wert an.

Wie konfiguriert man dieses Overloading? (Also das, was in der Praxis auch in den meisten DSL-Heim-Routern ablaufen wird! Da es bei diesen meistens vorkonfiguriert ist, geschieht es nahezu unbeachtet automatisch.) Sehr ähnlich wie dynamisches NAT - mit dem Unterschied, dass der Pool hierbei nur eine IP-Adresse umfasst. Zusätzlich erhält der NAT-Befehl noch den Parameter overload, um das überladen (mehrfaches Verwenden der einzigen Absender-Adresse für mehrere Absender, n:1 Zuordnung) zu erlauben.

WICHTIG: Ohne den Parameter würde der Router wie beim dynamischen NAT mit nur einer
IP-Adresse im Pool für die globale Adresse verfahren - genauso wird das ja auch konfiguriert, oder? ;-). (siehe oben, Dyn. NAT ) Der erste Rechner aus dem inneren Netz der nach draußen kommuniziert sichert sich die Adresse - der Rest hat das Nachsehen. Bei einer Cisco-Default-
Konfiguration wäre also erstmal für 24h die Adresse blockiert, falls sie niemand von Hand entfernt. (86400 Sekunden Default-Wert für den Timeout.) Hier die neue Konfiguration am Stück, die Änderungen hatten wir ja bereits besprochen. Wie vorher habe ich aus Platzgründen die Konfiguration der Schnittstellen ausgelassen, diese ist genau wie beim Basic NAT beschrieben.

access-list 1 permit 192.168.1.0 0.0.0.255
access-list 1 permit 192.168.2.0 0.0.0.255
ip nat pool pool1 217.255.153.2 217.255.153.2 netmask 255.255.255.0
ip nat inside source list 1 pool pool1 overload


Hier ein anderes Beispiel für NAT Overloading in Aktion:
Angenommen es existieren zwei Rechner (192.168.1.95 und .89). Auf einem von beiden wird im Internet Browser direkt eine Ziel-IP eingegeben (http://171.69.1.220), auf dem anderen ein DNS-Name (http://www.tolledomain.de). Intern kümmert sich der Rechner für den Anwender bekanntlich um die Auflösung des DNS-Namens www.tolledomain.de in eine IP-Adresse, in
dem er den zuständigen DNS-Server fragt. (Hier: 171.69.2.132) Daraus resultiert dann folgendes (der Befehl show ip nat translations listet den Inhalt der NAT-Tabelle auf).:

Router# show ip nat translations

Pro Inside global Inside local Outside local Outside global

udp 169.58.122.20:1220 192.168.2.68:1220 171.69.2.132:53 171.69.2.132:80

tcp 169.58.122.20:11012 192.168.2.89:11012 171.69.1.220:80 171.69.1.220:80

tcp 169.58.122.20:1067 192.168.2.68:1067 171.69.1.161:80 171.69.1.161:80

Am Tabelleninhalt lässt sich sehr gut nochmal das Prinzip von NAT Overloading bzw. PAT erläutern und das erlernte Vokabular trainieren:

Erste Zeile: Der Rechner 192.168.2.68 nimmt von Port 1220/UDP eine Verbindung zum Rechner 171.68.2.132, Port 53 (DNS) auf um die DNS-Abfrage für www.tolledomain.de durchzuführen. Dabei wird seine IP-Adresse vom NAT-Router verändert zur inneren globalen Adresse 169.58.122.20. Der Port 53 wird der Einfachheit halber übernommen, weil er noch nicht verwendet wird.
Nanu - die Einträge für Outside local und Outside global sind gleich, oder? Richtig: Wir erinnern uns – beim sogenannten Overlapping könnte der Router auch in der anderen Richtung aktiv werden und Adressen umwandeln. Das ist hier nicht der Fall, daher die gleichen Adressen!

Zweite Zeile: Der Rechner 192.168.2.89, mit Absender-Port 11012/TCP hat mit dem Rechner
mit der IP 171.69.1.161 auf Port 80 eine Verbindung aufgenommen. (HTTP) Auch er erhält als innere globale Adresse die 169.58.122.20.

Dritte Zeile: Jetzt kommuniziert(e) wieder der erste Rechner, diesmal von Port 1067/TCP mit der für www.tolledomain.de laut Auskunft des DNS (siehe erste Zeile) zuständigen IP, also 171.169.1.220, Port 80 (üblich für HTTP).


Wo liegt die (theoretische) Grenze einer solchen NAT Overloading Tabelle? Es können maximal 2^16-1 Ports, also 65535 Ports jeweils für TCP und UDP verwaltet werden. Eine mögliche praktische Grenze, die früher zuschlagen kann: Dabei entstehen mit der Zeit mehrere Megabyte an Daten, falls kein Eintrag aus der Tabelle fliegt. (4 Byte pro IP-Adresse, usw.) Heutzutage auf den ersten Blick keine gigantische Menge - wenn man sich aber z.B. kleine DSL-Router anschaut, wird man feststellen, das viele nur 4 oder 8 MByte, manche sogar nur 2 MByte RAM an Board haben, von denen nur ein Bruchteil für Nutzdaten überbleibt.




NAT - Problemlose Allzweckwaffe - oder doch nicht?

NAT erscheint also wie die erwartete Lösung vieler Probleme, vor allem der unter IPv4 herrschenden Knappheit an "öffentlichen" Adressen. Ganz so unproblematisch ist es dann leider doch nicht. Daher gibt es nun zumindest einen kurzen Ausblick auf Probleme, die die weite Verbreitung von NAT mit sich bringt.

Neben den gleich noch vorgestellten Lösungsansätzen für spezielle NAT-Probleme setzt sich der offensichtlichste Lösungsansatz derzeit noch nicht so recht durch - NAT nicht verwenden. Wie soll das funktionieren, insbesondere wo doch viel zu wenige IPv4-Adressen zur Verfügung stehen? Die Lösung ist einfach, aber effektiv. Der Nachfolger von IPv4 - IPv6 verfügt über einen so drastisch vergrößerten Adressraum, das auch in der absehbaren Zukunft für ALLE Endgeräte (vom Handy über den PC bis zur Waschmaschine) genug eigene (im IPv4- bzw. RFC1918-Vokabular "öffentliche") IP-Adressen zur Verfügung stehen. Diese sind also weltweit eindeutig - NAT ist dabei schlicht nicht nötig, um Adressen zu sparen, weil genug vorhanden sind.

Die zum Betrieb nötigen IPv6-Stacks für die Betriebssysteme (Linux, Windows, MacOS, *BSD, etc.) sind fertig und weitestgehend frei von Kinderkrankheiten. Auch die IPv6-Anpassung zumindest für Router der mittleren und gehobenen Preisklasse ist für den produktiven Einsatz geeignet.

Jeder ist herzlich eingelagen, IPv6 rege einzusetzen, zu testen und bei seinem Provider zu quengeln, falls dieser es noch nicht im Angebot hat. (Diese geben oft mangelnde Nachfrage als Ursache für fehlende IPv6-Angebote an...)

Aber nun weiter zu den NAT-Problemzonen:

- NAT kostet Zeit
Ein kleines Problem mit NAT-Routern abseits aller Adressproblematik etc. soll zumindest nicht unerwähnt bleiben.
NAT-Router bearbeiten IP-Pakete (indem sie Adressen vergleichen und anpassen) und benötigen dafür Zeit. Diese kann man durch optimierte Hard- und Software anpassen, aber jeder NAT-Router auf dem Weg erhöht nunmal unumgänglich die Laufzeit eines Datenpaketes. Bei Anwendungen wie VoIP, die um Millisekunden kämpfen, ist jeder NAT-Router auf dem Weg der entfällt eine Zeitersparnis.

- Sicherheitsapekte:

NAT wird insbesondere für DSL-Router für den Heimgebraucht oft als Sicherheitsfunktion gepriesen. In der Theorie kann das noch stimmen - praktisch ist der reine Sicherheitsgewinn aber dünn bis nicht vorhanden. Er basiert vermeintlich darauf, das ein NAT-Router nur Verbindungen verwendet, die von innen geöffnet wurden, von denen also zuerst der Client Daten angefordert hat. In der Praxis führt dieses aber bei einigen Protokollen zu Problemen.

Beispiel: Beim "aktiven" FTP-Datenverkehr legt der Client aktiv (daher der Name) fest, auf welchem Port er die festgelegten Daten empfangen möchte, nicht auf welchem er sie beim
Server "abholt". (Letzeres wäre passives FTP.) Daher will der Server die Daten auf einem bestimmten Port beim Client "abliefern". Leider kann der NAT-Router davon gar nichts wissen - der Client hat die Verbindung ja nicht von innen geöffnet, also existiert kein
zugehöriger Eintrag in der NAT-Tabelle. Der Router verwirft das Paket und die Verbindung kommt nicht zustande. Eine mögliche Lösung in diesem Fall: passives FTP verwenden.

Nun funktioniert die Kommunikation auf Client-Seite, weil der Server vorgibt,
wohin sich der Client verbinden soll. Das Problem hat jetzt übrigens der Server-(Admin) - dessen Firewall erreicht eine Verbindungsanfrage auf einem Port, auf dem er keinen Verbindungsaufbau von innen gesehen hat. Jetzt ist diese an der Reihe, das Paket zu entsorgen. Das kann man auch dem Client aufbürden. Es gibt weitere populäre Protokolle wie H.323 und LDAP, die ebenfalls von diesem Problem betroffen sind, wenn eine oder beide Seiten hinter NAT-Routern sitzen.

Betrachten wir zwei gängige Lösungsansätze für dieses Problem - die erstere ist mit hohem Aufwand verbunden und damit natürlich fehleranfällig:

Der Router muss den „Steuer-Kanal, auf dem diese zusätzlichen Verbindungen und Portnummern vom Protokoll evtl. ausgehandelt werden „belauschen“ und seine NAT-Tabelle entsprechend ergänzen. Diese Helper-Module müssen dazu natürlich die entsprechenden Protokolle beherrschen. Insbesondere Billig-Router bieten gar nicht erst die Möglichkeit, diese Module gezielt zu ergänzen. (Software-Router z.B. auf Linux-Basis sind da natürlich flexibler)

Billig-Router arbeiten leider oft nach der zweiten Variante - dem Giesskannen-Prinzip:
Sie geben alle Anfragen auf nicht in der Tabelle enthaltenen Ports "auf Verdacht" an denjenigen Rechner weiter, der sie angefragt haben könnte, weil er z.B. schon mit dieser Ziel-IP-Adresse kommuniziert hat. (NAT-Tabelle nach IP durchsuchen). Unter Umständen
werden noch viel weichere Kriterien verwendet, wie z.B. einziger aktiver Rechner in der NAT-Tabelle, also „muss“ der ja die Daten angefordert haben, die er vielleicht nie wollte… Damit ist der "Schutz" durch NAT endgültig völlig aufgeweicht, weil der NAT-Router alles durchreicht, was ihm von außen angeboten wird. Es könnte ja für den Client gedacht sein...


- NAT-vs-IPSec

Die IP-Sicherheitserweiterung IPSec bietet neben der Möglichkeit Nutzdaten zu verschlüsseln (Encapsulating Security Payload, ESP) auch die Option die "Kopfdaten" (Header) der IP-Pakete (u.a. Quell- und Zieladresse) gegen Manipulationen zu schützen, damit beispielsweise niemand die Absende-Adresse fälschen kann. (Authentication Header, AH) Genau darauf (ändern der Absende-Adresse) basiert jedoch NAT.

Einfache Abhilfe für dieses Problem ist nicht in Sicht - hinter einem NAT-Router funktioniert IPSec AH nicht, es verbleibt nur ESP.Auch ESP funktioniert nicht ohne weiteres zusammen mit Endgeräten hinter NAT. Als Abhilfe wurde NAT-Traversal entwickelt, also ein
Mechanismus um NAT zu durchqueren (engl. Traversal). Hierbei werden die IPSec-Pakete noch mal in UDP-Paketen verpackt, damit sie durch den NAT-Router wie "gewöhnliche" UDP-Pakete behandelt werden können. Das im Datenteil des UDP-Paketes noch mal andere Pakete stecken, interessiert ihn nicht, da er sie ja normalerweise auch nicht auspacken würde. Am Zielort entpuppt sich der Inhalt dann als IPSec-Paket, das nochmals ausgepackt wird.
Dieses „Tunneln“ ist übrigens auch für andere Zwecke weit verbreitet, dazu noch ein kurzes Beispiel:

1) Es ergibt sich z.B. folgende Situation:

IPv6-Netz <-> IPv6-Router A<-> IPv4-Netz <->IPv6-Router B<-> IPv6-Netz

Der IPv4-Router ist in diesem Fall (noch) nicht für IPv6 einsetzbar. Es wäre aber Verschwendung, die Vorteile von IPv6 zu verschenken und das ganze Netz wieder auf IPv4 zu betreiben. (Die IPv6-Router beherschen auch IPv4.) Stattdessen wird die Strecke zwischen A und B im „V4-Land“ dadurch überbrückt, das A/B IPv4-Adressen besitzen und IPv4-Pakete einsetzen, um den IPv6-Datenverkehr von A nach B (oder umgekehrt) zu tunneln. Schickt jemand beispielsweise aus dem Netz an Router A (linke Seite) IPv6-Pakete an einen Rechner im Netz am Router B (rechte Seite), so packt A diese am Übergang zum IPv4-Netz komplett (mit Header/Kopfdaten) in den Datenteil eines V4-Paketes und schickt es an die V4-Adresse von B. Der nimmt es an, packt es aus und merkt (wenn entsprechend konfiguriert), dass es V6-Pakete sind, die er bearbeiten soll -> Er schickt sie weiter an den vorgesehenen V6-Empfänger in seinem Netz!


Immer noch nicht müde? Noch nicht völlig von meinem Brainstorming „NAT und alles was evtl. dazu gehört“ verwirrt? Lust auf mehr? ;-) Ok, dann hier noch ein paar Literaturtips:



Weiterführende Links / Literatur

http://www.different-thinking.de/ipsec_nat_traversal.php
http://computer.howstuffworks.com/nat.htm
http://www.informatik.uni-bremen.de/~prelle/terena/cookbook/Cookbook_D2/ch04s07.html
http://www.cisco.com/warp/public/556/12.html - Ciscos Einführung in NAT
http://www.cisco.com/en/US/tech/tk648/tk361/technologies_q_and_a_item09186a00800e523b.shtml Cisco NAT FAQ - Die meistgestellten Fragen zu NAT
http://www.cisco.com/warp/public/556/nat-cisco.shtml Cisco “How NAT works”
http://technet2.microsoft.com/WindowsServer/en/Library/862c42e4-0ae1-42c8-baf8-db914f8dcc731033.mspx?mfr=true “A NAT example”
http://www.hasenstein.com/linux-ip-nat/diplom/nat.html Eine schon etwas älteres Diplom-Arbeit zu NAT

Routing TCP/IP, Cisco Press – DIE Quelle für einen soliden Einstieg in Routingprotokolle und alles drumherum, wenn man kein Problem mit Cisco-lastigen Beispielen hat oder diese sogar gezielt sehen möchte um zu lernen. Unter anderem wird hier NAT umfassend behandelt! Leider teuer, aber jeden Cent wert. Wer sich auf BGP konzentrieren möchte, sollte übrigens Internet Routing Architectures (S. Halabi, auch Cisco Press) wählen – die Routing-Bibel! (Beide ergänzen sich recht gut – der arme Geldbeutel…)

TCP/IP Illlustrated Vol1 von W. R. Stevens – Kein “Nat in 21 Tagen” sondern genau das richtige Buch für alle die wissen wollen, wie TCP/IP wirklich funktioniert. Wer das verstanden hat, sieht NAT als leichtere Übung. Nicht davon abschrecken lassen, dass das Buch auf den ersten Blick „uralt“ ist – die Inhalte sind nach wie vor aktuell und didaktisch gehört es (wie einige andere Stevens Bücher) zum Besten, was ich in dem Bereich bis jetzt gesehen habe.
 

[ Dieses Thema im Live-Forum aufrufen ]

Sie befinden sich im Archiv des Forums.
Zum Forum

Archiv erstellt mit phpBB2HTML 0.1 - Foren in statisches HTML umwandeln © 2006 Mirko Kulpa

 

 
© 2004-2015, network lab - we make your net work - Netzwerkforum
aktualisiert am 22.10.2017