-
Die
Erfindung betrifft ein Verfahren zur Ausführung einer symmetrischen Netzadressenumsetzung
(network address translation – NAT)
zum Einrichten von Sitzungen zwischen einem Teilnehmerendgerät und einem
Server. Weiterhin betrifft die Erfindung ein Computerprogramm und
eine NAT zur Durchführung
des Verfahrens sowie ein Datenspeichermittel zum Speichern des Computerprogramms.
-
NATs
und ihre Ausführung
sind im Prinzip bekannt. Im Prinzip dienen NATs zum Einrichten einer Sitzung
zwischen einem Teilnehmerendgerät
eines privaten Netzes und einem Server eines öffentlichen Netzes, insbesondere
des Internets. Die Einrichtung erfolgt durch Zuordnung einer privaten
Adresse und eines privaten Ports der NAT, die das Teilnehmerendgerät kennzeichnen,
zu einer externen Adresse und einem externen Port, die den Server
kennzeichnen. Wird eine neue Sitzung zwischen einem Teilnehmerendgerät und einem
Server initiiert, insbesondere durch das Teilnehmerendgerät, dann
bestimmt die NAT die externe IP-Adresse und den externen Port sowie
die eigene öffentliche
IP-Adresse. Außerdem wählen beim
Stand der Technik die symmetrischen NATs für jede neue Sitzung einen neuen öffentlichen NAT-IP-Port
aus und prüfen,
ob ein Eintrag des neu ausgewählten öffentlichen
NAT-IP-Ports in einer ersten NAT-Tabelle vorliegt.
-
Aus
US 2003/0043740 A1 ist ein Verfahren zum Einrichten einer Sitzung
zwischen einem ersten Teilnehmerendgerät und einem zweiten Teilnehmerendgerät bekannt,
bei dem eine NAT-Tabelle verwendet wird, um eine Quelladresse und
einen Quellport eines von dem ersten Teilnehmerendgerät gesendeten
ankommenden Pakets auf eine umgesetzte Adresse und einen umgesetzten
Port des zweiten Teilnehmerendgeräts abzubilden. Die NAT-Tabelle wird
während
der Einrichtung und der Dauer der Sitzung aktualisiert. Ist eine
Sitzung beendet, werden die zugeordneten Ressourcen in der NAT-Tabelle
gelöscht
und anderen Gesprächssitzungen
zur Verfügung
gestellt. Die bekannte NAT-Tabelle bildet die Quelladresse und den
Quellport des ersten Teilnehmerendgeräts auf eine erste externe IP-Adresse
und einen ersten externen IP-Port und die Zieladresse und den Zielport
des zweiten Teilnehmerendgeräts auf
eine zweite externe IP-Adresse und einen zweiten externen IP-Port
ab, wodurch die realen Adressen und Ports des ersten und des zweiten
Endgeräts verdeckt
werden. Deshalb müssen
die externen Adressen und Ports zugeordnet werden, es müssen also
zunächst
die verfügbaren
Ressourcen ermittelt werden. Sobald eine Sitzung eingerichtet ist,
weist die NAT-Tabelle Pakete zurück,
die von nicht in der NAT-Tabelle enthaltenen Endgeräten gesendet
werden. Da die zugeordneten Ressourcen in der NAT-Tabelle gelöscht werden,
wenn eine Sitzung beendet wird, müssen für jede Sitzung die Ressourcen zugeordnet
und ein NAT-Tabelleneintrag erzeugt werden, auch wenn vor kurzem
eine Sitzung zwischen dem ersten und dem zweiten Endgerät eingerichtet
worden war.
-
Die
erste NAT-Tabelle stellt Sitzungen dar, die aktuell über diese
NAT ablaufen dürfen.
Wenn beim Stand der Technik ein solcher Eintrag eines neu ausgewählten NAT-Ports bereits in
der NAT-Tabelle enthalten ist, dann wählen die NATs einen anderen öffentlichen
NAT-IP-Port für
die Sitzung aus und prüfen,
ob der andere NAT-IP-Port Teil eines Eintrags in der ersten NAT-Tabelle
ist. Diese Schritte der Auswahl eines anderen öffentlichen NAT-IP-Ports und des Vergleichs
des anderen NAT-IP-Ports mit den Einträgen der ersten NAT-Tabelle
werden wiederholt, bis ein öffentlicher
NAT-IP-Port ausgewählt
wurde, der nicht schon Teil eines Eintrags in der ersten NAT-Tabelle
ist. In diesem Fall wird ein neuer Eintrag mit dem letztendlich
ausgewählten öffentlichen NAT-IP-Port
in die erste NAT-Tabelle eingegeben. Auf der Grundlage des neuen
Eintrags kann die NAT die gewünschte
neue Sitzung zwischen dem Teilnehmerendgerät und dem Server des öffentlichen
Netzes einrichten.
-
Wie
im vorhergehenden Absatz erwähnt, wird
beim Stand der Technik jede neue Sitzung durch einen neuen öffentlichen
NAT-IP-Port dargestellt. Typischerweise wird ein öffentlicher
NAT-IP-Port durch ein 16-Bit-Wort gekennzeichnet. Folglich ist beim Stand
der Technik die Anzahl von Sitzungen, die von der NAT gleichzeitig
unterschieden und durchgeführt werden
können,
auf 216 begrenzt. In anderen Worten, die
NAT ist nicht in der Lage, mehr als 216 Sitzungen gleichzeitig
durchzuführen, mit
dem Ergebnis, dass jede über
diese Zahl hinaus gehende Sitzung von der NAT nicht eingerichtet
wird.
-
Ausgehend
von diesem Stand der Technik ist es Aufgabe der Erfindung, ein bekanntes
Verfahren zur Ausführung
einer NAT sowie ein bekanntes Computerprogramm oder eine bekannte
NAT zur Durchführung
des Verfahrens so zu verbessern, dass die Sitzungskapazität, d.h.
die Anzahl von Sitzungen, die von der NAT gleichzeitig unterschieden
oder durchgeführt
werden können,
erhöht
wird, ohne dass auch die eine Adresse oder einen Port des Teilnehmerendgeräts, der
NAT oder des externen Servers kennzeichnende Bitanzahl erhöht wird.
Eine weitere Aufgabe der vorliegenden Erfindung besteht darin, den Overhead
für die
Einrichtung einer neuen Sitzung zu reduzieren.
-
Diese
Aufgabe wird durch das in Anspruch 1 angegebene Verfahren gelöst. Das
Verfahren ist dadurch gekennzeichnet, dass die neue Sitzung durch ein
Sitzungskennzeichen in Form eines Tupels gekennzeichnet wird, das
die öffentliche
NAT-Adresse, den ausgewählten öffentlichen
NAT-IP-Port, die externe IP-Adresse und den externen IP-Port umfasst, und
dass die Einrichtung der neuen Sitzung auf einem Eintrag des Tupels
in der ersten NAT-Tabelle basiert.
-
Es
sind mehrere Arten von NATs bekannt. Die vorliegende Erfindung betrifft
jedoch nur eine so genannte symmetrische NAT. Eine symmetrische NAT
richtet eine Art Firewall ein, insbesondere für von der öffentlichen Seite, also vom
Server ankommende Pakete, indem sie solche Pakete nur dann akzeptiert,
wenn vorher ein weiteres Paket von dem Teilnehmerendgerät zu dem
Server gesendet wurde. Der Sicherheitsvorteil von insbesondere symmetrischen
NATs wird durch die vorliegende Erfindung nicht beeinträchtigt.
-
Der
Begriff "Teilnehmerendgerät" in der vorliegenden
Erfindung bedeutet ein Endgerät
oder einen Server eines typischerweise privaten Netzes auf der privaten
Seite der NAT. Demgegenüber
bedeutet der Begriff "Server" in der vorliegenden
Erfindung einen Server eines typischerweise öffentlichen Netzes, insbesondere
des Internets, auf der öffentlichen
Seite der NAT.
-
Bei
der vorliegenden Erfindung wird eine neue Sitzung in den Fällen initiiert,
in denen sich die private NAT-IP-Adresse
und der private NAT-IP-Port, die das Teilnehmerendgerät kennzeichnen,
und die externe Adresse und der externe Port, die den Server kennzeichnen,
für eine
neue Paketübertragung ändern. Eine
Sitzung kann eine Vielzahl von Paketübertragungen in beiden Richtungen,
also vom Teilnehmerendgerät
zum Server und umgekehrt, umfassen. Aktuell aktivierte Sitzungen
sind in der ersten NAT-Tabelle abgebildet. Eine Sitzung wird nur
für einen
vorgegebenen Zeitabschnitt aktiviert und demzufolge nach Ablauf
dieses Zeitabschnitts beendet.
-
Durch
die Definition der Sitzungskennung gemäß Anspruch 1 wird die Sitzungskapazität der NAT
auf vorteilhafte Weise wesentlich erhöht. Diese neue Definition der Sitzungskennung
ermöglicht
es der NAT, nicht nur 2 exp{Bitbreite des öffentlichen NAT-IP-Ports} Sitzungen,
sondern eine Anzahl von 2 exp{Bitbreiten des öffentlichen NAT-IP-Ports +
Bitbreiten der externen IP-Adresse +/oder Bitbreiten des externen
Ports} Sitzungen zu unterscheiden.
-
Die
beanspruchte neue Definition des Sitzungskennzeichens stellt auf
vorteilhafte Weise eine ökonomische
Zuordnung der öffentlichen NAT-IP-Adresse
und des öffentlichen
NAT-IP-Ports dar,
da es nun nicht unbedingt notwendig ist, dass jede neue Sitzung
durch einen neuen öffentlichen NAT-IP-Port
dargestellt wird. Umgekehrt ausgedrückt können unterschiedliche Sitzungskennzeichen,
die verschiedene Sitzungen darstellen, identische öffentliche
NAT-IP-Ports umfassen. Dadurch ist es möglich, dass die öffentlichen
NAT-IP-Ports für
andere Zwecke zugeordnet oder verwendet werden können.
-
Vorteilhafterweise
wird die NAT nur dann für die
Einrichtung einer neuen Sitzung freigegeben, wenn ihr erfindungsgemäß definiertes
Sitzungskennzeichen innerhalb der ersten NAT-Tabelle nur einmal vorhanden
ist.
-
Die
oben angegebene Aufgabe der Erfindung wird weiterhin durch ein Computerprogramm und
eine symmetrische NAT zur Durchführung
des Verfahrens gelöst.
Außerdem
wird sie durch ein Datenspeichermittel zum Speichern des Computerprogramms
gelöst.
Die Vorteile dieser Lösungen
entsprechen den oben unter Bezugnahme auf das beanspruchte Verfahren
erwähnten
Vorteilen.
-
Der
Beschreibung sind zwei Figuren beigefügt, in denen
-
1 eine
NAT zeigt, die ein privates Netz mit einem öffentlichen Netz verbindet,
und
-
2 das
erfindungsgemäße Verfahren
veranschaulicht.
-
Im
Folgenden wird die Erfindung unter Bezugnahme auf die Figuren näher erläutert.
-
1 zeigt
eine symmetrische Netzadressenumsetzung NAT zur Einrichtung von
Sitzungen zwischen einem Teilnehmerendgerät 110-1 oder 110-2 eines
privaten Netzes 110 und einem Server 120-1 oder 120-2 eines öffentlichen
Netzes 120, insbesondere des Internets. Die NAT dient als
eine Art Sicherheitsmittel, da sie keine beliebigen, sondern nur
vorbestimmte Paketübertragungen
zwischen den Teilnehmerendgeräten
und den Servern erlaubt. Hier ist die Übertragung von Paketen nur
für Sitzungen
erlaubt, die durch einen individuellen Eintrag in einer NAT-Tabelle 140 bezeichnet
sind. Jeder dieser Einträge
umfasst typischerweise 6 Parameter A, B, X, Y, C und D. Die private
NAT-IP-Adresse A und der private NAT-IP-Port B werden von der NAT
als Reaktion auf die Initiierung einer neuen Sitzung erzeugt. Im Einzelnen
kennzeichnet die private NAT-Adresse A das Teilnehmerendgerät 110-1, 110-2,
das die jeweilige Sitzung initiiert hat, und der private NAT-IP-Port B
stellt den Port des Teilnehmerendgeräts dar.
-
Weiterhin
umfasst jeder Eintrag der NAT-Tabelle eine öffentliche NAT-IP-Adresse X
und einen öffentlichen
NAT-IP-Port Y. Die öffentliche NAT-IP-Adresse
X ist der NAT zugeordnet und für
jeden Eintrag und jede Sitzung der NAT konstant. Es besteht eine
feste Bindung zwischen der privaten NAT-IP-Adresse A und der öffentlichen NAT-IP-Adresse X sowie zwischen
dem privaten NAT-IP-Port B und dem öffentlichen NAT-IP-Port Y; diese
feste Korrelation ist durch einen speziellen Teil der NAT-Tabelle,
im Folgenden als "zweite
NAT-Tabelle" bezeichnet,
vorgesehen.
-
Schließlich umfasst
jeder Eintrag der NAT-Tabelle 140 die externe IP-Adresse C und den externen
IP-Port D des externen Servers 120-1 oder 120-2.
-
Erfindungsgemäß wird das
Tupel X, Y, C, D als "Sitzungskennzeichen" bezeichnet.
-
In
dem in 1 dargestellten Beispiel kennzeichnet der erste
Eintrag i1 eine Sitzung zwischen einem bestimmten Port B = 12836
eines der Teilnehmerendgeräte 110-1, 110-2, wobei dessen
privates Netz durch die private NAT-IP-Adresse A = 10.0.0.100 gekennzeichnet
ist. In dem in 1 angegebenen Beispiel korreliert
das Tupel A, B mit der öffentlichen
IP-Adresse X = 48.7.29.160 der NAT 100 und mit dem zugeordneten öffentlichen
NAT-IP-Port Y = 61795. Der oben erwähnte Port des Teilnehmerendgeräts kommuniziert
mit dem externen Serverport D = 5061 des Servers 120-1 mit
der externen IP-Adresse C = 134.102.218.236. Die Sitzungskennzeichen
X, Y, C, D verschiedener Sitzungen bilden einen weiteren Teil der
NAT-Tabelle, im Folgenden als "erste
NAT-Tabelle" bezeichnet.
-
Die
Einträge
in dieser NAT-Tabelle werden nach einem vorgegebenen Zeitabschnitt
gelöscht. Folglich
darf nach Ablauf dieses Zeitabschnitts die durch den gelöschten Eintrag
gekennzeichnete Sitzung nicht mehr über die NAT 100 laufen.
In diesem Fall muss, wenn nötig,
eine neue Sitzung zwischen einem bestimmten Port des Teilnehmerendgeräts und einem
bestimmten Port des Servers initiiert werden.
-
Nachfolgend
wird das erfindungsgemäße Verfahren
zur Ausführung
einer symmetrischen Netzadressenumsetzung 100 anhand von 2 beschrieben.
-
Verfahrensschritt
S1 stellt die Initiierung einer neuen Sitzung durch eines der Teilnehmerendgeräte 110-1, 110-2 dar.
Im Falle einer solchen Initiierung sind/werden die private NAT-IP-Adresse
A und der private NAT-IP-Port B, die das initiierende Teilnehmerendgerät bzw. dessen
Port kennzeichnen, die externe öffentliche
NAT-IP-Adresse x sowie die externe IP-Adresse C und der externe
IP-Port D, die beide das Serverziel der initiierten Sitzung kennzeichnen, bekannt/ermittelt;
siehe Verfahrensschritt S1.
-
Der
einzige Parameter eines zugeordneten NAT-Eintrags, der nicht bereits
von der Initiierung her bekannt ist, ist der öffentliche NAT-IP-Port Y. Im
Verfahrensschritt S2 ist der NAT-Port Y für die neue Sitzung typischerweise
beliebig gewählt.
Alternativ zu einer beliebigen Wahl kann der öffentliche NAT-Port auch als
der nächste
verfügbare öffentliche
Port gewählt
werden. Die Wahl des öffentlichen NAT-IP-Ports
ist – unabhängig davon,
wie die Wahl geschieht – typisch
für symmetrische
NAT-Typen.
-
Grundsätzlich wird
für jede
neue Sitzung ein neuer NAT-IP-Port
Y ausgewählt.
Dies ist jedoch nicht zwingend. Insbesondere wenn der Port Y beliebig
gewählt
wird, besteht die Möglichkeit,
dass ein identischer Port Y für
verschiedene Sitzung gewählt wird.
Dies ist hier, im Unterschied zur Ausführung von NATs beim Stand der
Technik, kein Problem, da eine neue Sitzung nicht nur durch den
Port Y, sondern auch durch das gesamte Tupel X, Y, C und D gekennzeichnet
ist. Dies hat den Vorteil, dass die für die Kennzeichnung von Sitzungen
verfügbare
Kapazität beträchtlich
erhöht
ist, wie dies aus dem folgenden Beispiel ersichtlich ist.
-
Angenommen,
der öffentliche
NAT-IP-Port wird durch ein 16-Bit-Wort, die externe Adresse durch
ein 32-Bit-Wort und der externe Port des Servers durch ein 16-Bit-Wort
dargestellt, und die öffentliche
NAT-IP-Adresse X ist in jedem Sitzungskennzeichen konstant, dann
steht eine Kapazität
von 216+32+16 = 264 Bit
für die
Unterscheidung verschiedener Sitzungen zur Verfügung. Demgegenüber steht
beim Stand der Technik, wo verschiedene Sitzungen nur durch verschiedene öffentliche
NAT-IP-Ports Y gekennzeichnet sind, für die Unterscheidung der Sitzungen
lediglich eine Kapazität
von 216 zur Verfügung.
-
Vorteilhafterweise
kann der öffentliche NAT-IP-Port,
da er erfindungsgemäß nicht
notwendigerweise mit jeder neuen Sitzung verändert wird, für andere
Zwecke verwendet oder kodiert werden.
-
Mit
der Auswahl/Ermittlung des öffentlichen NAT-IP-Ports
Y ist das Sitzungskennzeichen in Form des Tupels X, Y, C und D komplett.
-
Im
Verfahrenschritt S3 wird das komplette Tupel mit den aktuell in
der ersten NAT-Tabelle registrierten Tupeln verglichen. Wird in
der NAT-Tabelle ein identischer Eintrag gefunden, dann wird das
erfindungsgemäße Verfahren
mit dem Verfahrensschritt S7 fortgesetzt und das bereits registrierte
Tupel/der bereits registrierte Eintrag zum Starten der neuen Sitzung
verwendet. Aufgrund des bereits vorhandenen Eintrags ist in der
ersten NAT-Tabelle
kein neuer Eintrag erforderlich, und die neue Sitzung kann aufgrund des
bereits vorhandenen Eintrags über
die NAT laufen.
-
Wird
jedoch im Verfahrensschritt S4 kein identisches Tupel X, Y, C und
D in der ersten NAT-Tabelle gefunden, dann wird das erfindungsgemäße Verfahren
mit dem Verfahrensschritt S5 zur Erzeugung eines neuen/zusätzlichen
Eintrags in der ersten NAT-Tabelle fortgesetzt, der dem in den vorhergehenden
Schritten S1 und S2 neu erzeugten Tupel entspricht.
-
In
einem anschließenden
Verfahrensschritt S6 erfolgt eine Umsetzung/Korrelation zwischen
der öffentlichen
NAT-IP- Adresse X
sowie dem öffentlichen
NAT-IP-Port Y und der zugeordneten privaten IP-Adresse A bzw. dem
privaten IP-Port
B gemäß der oben
erwähnten
zweiten NAT-Tabelle.
-
Danach
ist der Eintrag in der NAT-Tabelle fertig und vollständig, und
somit kann die Sitzung über die
NAT ablaufen. Das Verfahren wird also mit dem Verfahrensschritt
S7 unter Verwendung des neu erstellten NAT-Eintrags fortgesetzt.
-
Das
erfindungsgemäße Verfahren
kann in Form eines Computerprogramms erstellt werden. Ein solches
Computerprogramm kann auf einem Datenspeichermittel gespeichert
sein. Das Datenspeichermittel kann eine Compact Disc oder ein so
genannter Flash-Speicher usw. sein. Das Computerprogramm kann an
einen Kunden übergeben
oder von diesem käuflich
erworben werden, wenn es auf dem Datenspeichermittel gespeichert
ist. Alternativ kann das Computerprogramm jedoch auch über ein
elektronisches Kommunikationsnetz, insbesondere über das Internet, an den Kunden übermittelt
werden.