Damit zwei Rechner über das Internet miteinander kommunizieren können,
müssen Sie zunächst einen Weg zueiander finden. Die Infrastruktur
zwischen den beiden Computern stellt das Internet dar, dabei hat jeder
Computer eine eigene Adresse, die sogenannte IP-Adresse, die aus vier
Zahlen von 0 bis 255 bestehen. Die übliche Schreibweise ist die Folge
der vier Zahlen mit einem "." als Trennzeichen, z.B. "192.168.0.227".
Ähnlich wie bei einer Telefonnummer kann über diese Nummer ein anderer
Computer im Netzwerk angewählt werden und dann mit diesem
gesprochen werden. So ist auch das Abrufen einer HTML-Seite mit
dem Browser nichts weiter als ein Anruf bei einem Fremdrechner und
die Anforderung einer Seite von diesem Rechner. Dabei werden Namen wie
"www.sip-info.de" durch den sog. Domain Name Service (DNS) in
eine echte Nummer übersetzt - ganz wie in einem Telefonbuch.
Der Austausch der Daten erfolgt zwischen zwei Rechnern über ein sog.
Protokoll, nur wenn beide Seiten dasgleiche Protokoll sprechen,
können diese Daten miteinander austauschen - rufen Sie doch mal einen
Faxanschluss an und versuchen mit dem Fax-Gerät zu sprechen, Ihnen
fehlt einfach das richtige Protokoll. Neben Adresse und Protokoll
spielt noch der Port eine wichtige Rolle. Da auf einem Computer
meist mehrere Dienste gleichzeitig zur Verfügung stehen, aber nur eine
Adresse, wird ein Port mitangegeben, so dass der richtige Dienst
angesprochen wird. Im Falle einer HTML-Seite im Browser ist das
meist der Port 80 und das Protokoll HTTP. In einigen Fällen werden
die Seiten aber auch über einen anderen Port abgerufen, dann
folgt der Adresse die Portnummer mit einem ":", also z.B.:
"http://www.sip-info.de:80/"
... natürlich geht das noch viel weiter, aber als Einlietung soll das
hier mal reichen.
NAT steht für Network Adress Translation und bezeichnet zunächst
einmal die Übersetzung von einer IP-Netzwerkadresse in eine andere.
Aber wozu das ganze ?
Computer in lokalen Netzwerken haben wie Computer im Internet eine eigene
IP-Adresse. Da aber die Anzahl der Adressen im Internet begrenzt ist, kann
nicht jeder Computer eine eindeutige Adresse bekommen. Aus diesem Grund
gibt es bestimmt Adressen, die im Internet nicht vorkommen, sondern für
lokale Netze reserviert sind. Damit dennoch zwei Rechner miteinander
kommuniziern können, müssen diese lokalen Adressen für das Internet
in gültige Adressen umgesetzt werden.
Typischerweise hat ein lokales Netzwerk einen Übergangspunkt zum Internet
(das kann auch ein Modem sein), dieses bezeichnet man auch als
Gateway - bei einem einzelnen Rechner, der sich direkt über einen
Internetprovider einwählt, ist das ganze etwas einfacher, im Prinzip ist
der dann sein eigenes Gateway.
Praktisch bilden im SOHO-Bereich Router meist dieses Gateway.
Ein Router vermittelt eine Route von einem Rechner im lokalen Netz zu
einem anderen. Dabei entscheidet er anhand der Zieladresse, ob dieser
Rechner sich im selben lokalen Netz befindet oder im Internet. Bei einem
Rechner im Internet kommt dann NAT zum Einsatz, d.h. der Router stellt
die lokale Vermittlungsstelle dar und sorgt dafür, dass ein lokaler
Rechner mit einem anderen im Internet kommunizieren kann, obwohl
der lokale Rechner keine echte Internetadresse hat.
Router haben dabei aber auch die Aufgabe eingehende Anfragen ins lokale
Netzwerk weiterzugeben. Handelt es sich bei der eingehenden Anfrage um
eine Rückmeldung zu einer Anfrage aus dem lokalen Netzwerk, weiss
der Router an welchen Rechner er die Daten weiterleiten muss. Mit allen
anderen eingehenden Anfragen kann der Router zunächst einmal nichts
anfangen und ignoriert diese. Wenn man aber z.B. selber einen Web-Server
betreibt, müssen entsprechende Anfragen an diesen weitergeleitet werden.
Dazu definiert man im Router entsprechende Regeln, die diese Weiterleitung
festlegen.
Firewalls gehen bei den Regeln noch ein Stück weiter, im Prinzip
können hier die Regeln viel genauer definiert werden, also nicht
nur, dass alle Anfragen auf den Port 80 an einen bestimmten Rechner
weitergeleitet werden sollen, sondern auch z.B. welches Protokoll
mit der Anfrage verbunden ist. Bei einer Firewall kann man ganz genau
festelgen, was erlaubt ist und was nicht, durch entsprechend grosse
Regelwerke, damit gilt meist alles ist verboten, was nicht erlaubt ist,
so dass man nicht aus Versehen eine Regel vergisst.
Eine Anfrage im Internet enthält vier Angaben,
die den Kommuikationsweg angeben: Internetadresse Absender,
Portadresse Absender, Internetadresse Empfänger und
Portadresse Empfänger, als Notation verwendet man daher
Internetadresse:Port
also z.B.
212.227.118.91:80
Adressen in internen Netzwerken haben üblicherweise ungültige Adressen,
d.h. wenn der Empfänger einer Anfrage an den Absender eine Antwort
zurücksendet, kommt diese nicht an.
Dies ist der Punkt wo NAT ins Spiel kommt, dabei wird in einer Anfrage
von einem internen Rechner die Absendeadresse so geändert, dass der
Empfänger eine Nachricht zurücksenden kann. Bei den Antworten wird
wiederum die Empfängeradresse geändert, so dass der interne Rechner
die Nachricht empfangen kann.
Damit die Kommunikation zwischen Server und ihrem Rechner funktioniert,
merkt sich der Router eine Zuordnungstabelle. Ein typischer Ablauf
sieht dann so aus (vereinfacht - bitte keine mails zu dem Thema !):
Der interne Rechner (192.168.0.52:1000) stellt eine Anfrage an
den Server 212.227.118.91:80
Absender IP
Absender Port
Empfänger IP
Empfänger Port
192.168.0.52
1000
212.227.118.91
80
Der Router leitet die Anfrage weiter, ändert aber die
Absenderadresse von 192.168.0.52
(= interne Rechneradresse) in 80.132.224.200
(=Adresse des Routers im Internet)
Absender IP
Absender Port
Empfänger IP
Empfänger Port
80.132.224.200
12345
212.227.118.91
80
Der Empfänger-Server (212.227.118.91:80) schickt eine Antwort:
Absender IP
Absender Port
Empfänger IP
Empfänger Port
212.227.118.91
80
80.132.224.200
12345
Der Router empfängt die Antwort, ändert die Empfängeradresse
und leitet die Antwort in das interne Netz weiter
Absender IP
Absender Port
Empfänger IP
Empfänger Port
212.227.118.91
80
192.168.0.52
1000
Die Zuordnung merkt sich der Router in einer eigenen Tabelle, z.B.:
Interne Rechner-Adresse
Externe Router-Adresse
Empfänger Adresse(optional)
192.168.0.52:1000
80.132.224.200:12345
212.227.118.91:80 (Beispiel oben)
Dabei gibt es unterschiedliche Arten der Umsetzung, wie diese Tabelle
verwendet wird:
Full Cone -
hier wird die Empfänger Adresse ignoriert, d.h. jedes eingehende Paket mit der
Adresse 80.132.224.200:12345 wird an die interne Adresse 192.168.0.52:1000 weitergeleitet, ohne
Ansicht der Absenderadresse, also auch Rechner die nicht die IP-Adresse 212.227.118.91 haben.
Restricted Cone - im Gegensatz zum Full Cone muss hier erst einmal ein Paket vom internen
Rechner an einen externen Rechner gesendet werden, bevor eingehende Pakete von diesem Rechner akzeptiert
werden. Dabei wird nur die IP-Adresse geprüft und nicht der Port. Also bei obiger Tabelle würden alle
Pakete angenommen werde, die vom Rechner 212.227.118.91 an 80.132.224.200:12345 gesendet werden und
an die interne Adresse 192.168.0.52:1000 weitergeleitet.
Port Restricted Cone - hier wird Full Cone weiter eingeschränkt, neben der IP-Adresse wird
auch noch der Port überprüft. Also werden ausschliesslich Pakete an 192.168.0.52:1000 weitergegeben,
wenn die Adresse 80.132.224.200:12345 ist und der Absender 212.227.118.91:80
Unterschiede Cone
Beim Full Cone wird die Spalte "Empfänger Adresse" ignoriert
Beim Restricted Cone wird von der Spalte "Empfänger Adresse" nur die IP-Adresse ohne Port geprüft,
dabei kann es sich aber um eine Liste von IP-Adressen handeln.
Beim Port Restricted Cone wird von der Spalte "Empfänger Adresse" die IP-Adresse mit Port geprüft,
dabei kann es sich aber um eine Liste von IP-Adressen mit Ports handeln.
Symmetric - Bei Full Cone und Port Restricted Cone wird die dritte Spalte erweitert, wenn
weitere Server angefragt werden. Also wenn z.B. der interne Rechner über den Port zwei Server anfragt
(212.227.118.91:80 und 212.227.118.92:8080), wird die Tabelle erweitert:
Interne Rechner-Adresse
Externe Router-Adresse
Empfänger Adresse
192.168.0.52:1000
80.132.224.200:12345
212.227.118.91:80, 212.227.118.92:8080
Beim Symmetric NAT werden statt dessen zwei Einträge generiert:
Interne Rechner-Adresse
Externe Router-Adresse
Empfänger Adresse
192.168.0.52:1000
80.132.224.200:12345
212.227.118.91:80
192.168.0.52:1000
80.132.224.200:67890
212.227.118.92:8080
Die Zuordnung ist somit immer eindeutig.
Bücher
"Voice Over IP" von Jochen Nölle
"Professionelle IP-Telefonie" von Oliver Pott, Harald Zapp
So für alle, die bis hierhin gekommen sind, der restliche Text ist nur für den
Wettbewerb bei heise und kann getrost ignoriert werden, aber wen es trotzdem interessiert,
hier ein paar Links zu meinen Seiten für den Wettbewerb: