sip sip/voip im fall von nat begriffe - institute for ... · sip sip/voip im fall von nat routing...

34
SIP SIP/VoIP im Fall von NAT Routing und Forwarding Interoperabilität mit PSTN Begriffe I Client: Ein SIP Knoten, der SIP Requests verschickt und SIP Responses empfängt. I Server: Ein SIP Knoten, der SIP Requests empfängt und SIP Responses sendet. I User Agent (UA): Ein SIP Knoten, der am Ende der SIP Verarbeitungskette steht. Man unterscheidet: I UAC: User Agent Client, erzeugt SIP Requests und verarbeitet SIP Responses I UAS: User Agent Server, verarbeitet SIP Requests und erzeugt SIP Responses I Proxy: Ein SIP Knoten, der sowohl als Client als auch als Server arbeitet. Hauptaufgabe ist das Routing von SIP Nachrichten. Kommunikationsnetze I

Upload: vuongmien

Post on 17-May-2018

219 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: SIP SIP/VoIP im Fall von NAT Begriffe - Institute for ... · SIP SIP/VoIP im Fall von NAT Routing und Forwarding Interoperabilität mit PSTN Begriffe I Client: Ein SIP Knoten, der

SIPSIP/VoIP im Fall von NAT

Routing und ForwardingInteroperabilität mit PSTN

Begriffe

I Client: Ein SIP Knoten, der SIP Requests verschickt undSIP Responses empfängt.

I Server: Ein SIP Knoten, der SIP Requests empfängt undSIP Responses sendet.

I User Agent (UA): Ein SIP Knoten, der am Ende der SIPVerarbeitungskette steht. Man unterscheidet:

I UAC: User Agent Client, erzeugt SIP Requests undverarbeitet SIP Responses

I UAS: User Agent Server, verarbeitet SIP Requests underzeugt SIP Responses

I Proxy: Ein SIP Knoten, der sowohl als Client als auch alsServer arbeitet. Hauptaufgabe ist das Routing von SIPNachrichten.

Kommunikationsnetze I

Page 2: SIP SIP/VoIP im Fall von NAT Begriffe - Institute for ... · SIP SIP/VoIP im Fall von NAT Routing und Forwarding Interoperabilität mit PSTN Begriffe I Client: Ein SIP Knoten, der

SIPSIP/VoIP im Fall von NAT

Routing und ForwardingInteroperabilität mit PSTN

Grundlagen

Jeder SIP Request muß mindestens die folgenden Felderenthalten:

I Request URI: üblicherweise die URI im To HeaderI To: URI, z.B. SIP URI oder Tel URI (RFC2806) des

logischen EmpfängersI From: URI des logischen Initiators eines SIP RequestsI Call-Id: Global eindeutige Kennung für eine Gruppe von

Requests (z.B. alle Requests innerhalb eines Dialogesoder einer Registrierung)

I CSeq: Sequenznummer und Methode des RequestsI Max-Forwards: Maximale Anzahl Hops (vgl. TTL im IP

Header, Beispieltrace). Standardwert ist 70I Via: Transportadresse, zu der die Antwort geschickt

werden soll. Der Branch Parameter dient zur Zuordnungvon Requests/Responses zu Transaktionen.

Kommunikationsnetze I

Page 3: SIP SIP/VoIP im Fall von NAT Begriffe - Institute for ... · SIP SIP/VoIP im Fall von NAT Routing und Forwarding Interoperabilität mit PSTN Begriffe I Client: Ein SIP Knoten, der

SIPSIP/VoIP im Fall von NAT

Routing und ForwardingInteroperabilität mit PSTN

Identifizieren von SIP Servern (RFC3263)

Anhand einer URI muß ein Server gefunden werden, der dieNachricht weiterleiten kann.

Enthält die URI eine Transportspezifikation, muß diese benutztwerden, andernfalls ist UDP der Standard für SIP URIs, TCPfür SIPS.

Im NAPTR Record der DNS Konfiguration findet sich der Namedes Servers für die einzelnen Transporttypen einschliesslichihrer Priorität.

Im SRV Record der DNS Konfiguration finden sich zumjeweiligen Server Namen und Portnummer.

Im A bzw. AAAA Record findet sich die IP Adresse des Servers.

Wird kein NAPTR Record gefunden, wird direkt der SRVRecord genutzt.

Kommunikationsnetze I

Page 4: SIP SIP/VoIP im Fall von NAT Begriffe - Institute for ... · SIP SIP/VoIP im Fall von NAT Routing und Forwarding Interoperabilität mit PSTN Begriffe I Client: Ein SIP Knoten, der

SIPSIP/VoIP im Fall von NAT

Routing und ForwardingInteroperabilität mit PSTN

Beispiel

Wir betrachten die SIP URI sip:[email protected] (dieAusgaben sind gekürzt):

#host -t NAPTR cesnet.czcesnet.cz NAPTR “s” “SIP+D2U” _sip._udp.cesnet.cz

cesnet.cz NAPTR “s” “SIP+D2T” _sip._tcp.cesnet.cz

#host -t SRV _sip._udp.cesnet.cz

_sip._udp.cesnet.cz SRV 5060 cyrus.cesnet.cz

#host -t AAAA cyrus.cesnet.cz

cyrus.cesnet.cz AAAA 2001:718:1:. . .:FE64:1E71

Kommunikationsnetze I

Page 5: SIP SIP/VoIP im Fall von NAT Begriffe - Institute for ... · SIP SIP/VoIP im Fall von NAT Routing und Forwarding Interoperabilität mit PSTN Begriffe I Client: Ein SIP Knoten, der

SIPSIP/VoIP im Fall von NAT

Routing und ForwardingInteroperabilität mit PSTN

Client Routing

Zu welchem Server ein SIP Request weitergeschickt wird,hängt von einer Reihe von Optionen ab:

1. lokale Konfiguration (z.B. Proxy Konfiguration im Client)2. gespeicherte Routen im Rahmen eines Dialoges3. die URI im obersten Route Header, falls vorhanden4. die Request-URI

Die gewählte URI ergibt über den DNS Zugriff eine Liste vonZielsystemen (Adresse, Port, Transport) mit Prioritäten.

Kommunikationsnetze I

Page 6: SIP SIP/VoIP im Fall von NAT Begriffe - Institute for ... · SIP SIP/VoIP im Fall von NAT Routing und Forwarding Interoperabilität mit PSTN Begriffe I Client: Ein SIP Knoten, der

SIPSIP/VoIP im Fall von NAT

Routing und ForwardingInteroperabilität mit PSTN

Server Routing

I Die Response wird zur Quelladresse des Requestszurückgeschickt, wobei der Port im Via Header verwendetwird.

I Bei verbindungsorientiertem Transport ist die Verbindungzu nutzen, auf der der Request empfangen murde.

I Schlägt das fehl, werden Adresse und Transportprotokolldes obersten Via Headers verwendet.

I Enthält der Via Header einen Namen (anstelle einer IPAdresse), wird zuerst der SRV Record aufgelöst, dann derA oder AAAA Record.

Kommunikationsnetze I

Page 7: SIP SIP/VoIP im Fall von NAT Begriffe - Institute for ... · SIP SIP/VoIP im Fall von NAT Routing und Forwarding Interoperabilität mit PSTN Begriffe I Client: Ein SIP Knoten, der

SIPSIP/VoIP im Fall von NAT

Routing und ForwardingInteroperabilität mit PSTN

Proxies

SIP Proxies gibt es in zwei Ausprägungen, stateless undstateful.

Stateless Proxies dienen zur einfachen Weiterleitung von SIPNachrichten basierend auf den Regeln für Client und Server.

Ein Stateful Proxy implementiert mindestens den SIPTransaktionsmechanismus. Er verhält sich gegenüber einemClient wie ein vollwertiger Server, gegenüber Servern wie einClient.

I Prüfung von RequestsI Modifikation von Requests auf EingangsseiteI Berechnung des Ziels (der Ziele) des RequestI Weiterleitung des Requests in einer eigenen TransaktionI Verarbeitung der Response(s)

Kommunikationsnetze I

Page 8: SIP SIP/VoIP im Fall von NAT Begriffe - Institute for ... · SIP SIP/VoIP im Fall von NAT Routing und Forwarding Interoperabilität mit PSTN Begriffe I Client: Ein SIP Knoten, der

SIPSIP/VoIP im Fall von NAT

Routing und ForwardingInteroperabilität mit PSTN

Prüfung des Requests

Ein Proxy muß sicherstellen, daß Minimalanforderungen erfülltsind, bevor ein Request verarbeitet wird:

I SyntaxprüfungI Prüfung, ob das URI-Schema (z.B. sip, tel) unterstützt wird

(sonst Fehler 416)I Max-Forwards muß positiv sein (sonst Fehler 483)I optionale Prüfung auf Routing Schleifen anhand der

Adresse in einem Via HeaderI Authentifizierung und Authorisierung (z.B.

Proxy-Authenticate)

Kommunikationsnetze I

Page 9: SIP SIP/VoIP im Fall von NAT Begriffe - Institute for ... · SIP SIP/VoIP im Fall von NAT Routing und Forwarding Interoperabilität mit PSTN Begriffe I Client: Ein SIP Knoten, der

SIPSIP/VoIP im Fall von NAT

Routing und ForwardingInteroperabilität mit PSTN

Routenprüfung

I Enthält der oberste Route Header eine Adresse desProxies, wird dieser Eintrag entfernt. Damit wird LooseRouting implementiert.

I Entspricht die Request-URI einer Adresse, die der Proxy ineinen Record-Route Header eingetragen hat, wird dieRequest-URI durch den letzten Route Headerüberschrieben und der Eintrag gelöscht. Dies tritt nur dannauf, wenn der vorherige Proxy (noch) Strict Routing nachRFC2543 implementiert. Dies stellt den ursprünglichenRequest wieder her.

Kommunikationsnetze I

Page 10: SIP SIP/VoIP im Fall von NAT Begriffe - Institute for ... · SIP SIP/VoIP im Fall von NAT Routing und Forwarding Interoperabilität mit PSTN Begriffe I Client: Ein SIP Knoten, der

SIPSIP/VoIP im Fall von NAT

Routing und ForwardingInteroperabilität mit PSTN

Berechnung der nächsten Ziele

Für Request-URIs, für die der Proxy zuständig ist, ermittelt ereine Menge von URIs, die als Ziel benutzt werden sollen (sog.Target Set). Hierzu können beliebige Informationsquellengenutzt werden.

Während der Weiterleitung kann das Target Set erweitertwerden, z.B. durch Antworten auf weitergeleitete Requests(3xx Redirect).

Ist der Proxy nicht zuständig für die Domain in derRequest-URI, enthält das Target Set ausschließlich das in derRequest-URI genannte Ziel.

Kommunikationsnetze I

Page 11: SIP SIP/VoIP im Fall von NAT Begriffe - Institute for ... · SIP SIP/VoIP im Fall von NAT Routing und Forwarding Interoperabilität mit PSTN Begriffe I Client: Ein SIP Knoten, der

SIPSIP/VoIP im Fall von NAT

Routing und ForwardingInteroperabilität mit PSTN

Weiterleiten der Requests

Es ist dem Proxy (bzw. dessen Konfiguration) überlassen, wieund in welcher Reihenfolge die Einträge im Target Set zurWeiterleitung genutzt werden. Üblicherweise sind folgendeSchritte nötig:

1. Kopieren des Requests2. Anpassen der URI3. Dekrementieren des Max-Forward Headers4. ggfs. einen Record-Route Header einfügen5. weitere optionale Header einfügen6. Auswerten der Routing Informationen um den nächsten

Hop zu bestimmen7. Via Header einfügen und weiterleiten

Kommunikationsnetze I

Page 12: SIP SIP/VoIP im Fall von NAT Begriffe - Institute for ... · SIP SIP/VoIP im Fall von NAT Routing und Forwarding Interoperabilität mit PSTN Begriffe I Client: Ein SIP Knoten, der

SIPSIP/VoIP im Fall von NAT

Routing und ForwardingInteroperabilität mit PSTN

1. Kopieren des RequestsI Der Nachrichtenbody darf nicht verändert werden.I Die Reihenfolge der Header soll möglichst nicht verändert

werden, bei gleichem Namen darf sie nicht verändertwerden.

2. Anpassen der URII Die URI des Elementes des Target Sets wird als

Request-URI eingesetzt.3. Dekrementieren des Max-Forward Headers

I Enthält der Request keinen Max-Forwards Header, mußer mit Wert 70 eingefügt werden.

Kommunikationsnetze I

Page 13: SIP SIP/VoIP im Fall von NAT Begriffe - Institute for ... · SIP SIP/VoIP im Fall von NAT Routing und Forwarding Interoperabilität mit PSTN Begriffe I Client: Ein SIP Knoten, der

SIPSIP/VoIP im Fall von NAT

Routing und ForwardingInteroperabilität mit PSTN

4. ggfs. einen Record-Route Header einfügenI Daß der Proxy Zwischenziel der Kommunikation ist, kann

an einem vorkonfigurierten Route Header gelegen haben.I Ein Proxy kann sich mit einem Record-Route Header in

den Route Set eines Dialoges eintragen. Dadurch wird derProxy die weiteren Requests/Responses in diesem Dialogsehen.

6. Auswerten der Routing Informationen um den nächstenHop zu bestimmen

I Ist auf dem Proxy eine Liste von weiteren Proxieskonfiguriert, über die der Request weitergeleitet werdensoll, so werden deren URIs in Route Headern vor denbisherigen Route Headern eingefügt.

I Der nächste Hop wird mit den Methoden bestimmt, die fürUACs gelten. Dazu muß der Request gegebenenfalls fürden Transport entsprechend aufbereitet werden.

Kommunikationsnetze I

Page 14: SIP SIP/VoIP im Fall von NAT Begriffe - Institute for ... · SIP SIP/VoIP im Fall von NAT Routing und Forwarding Interoperabilität mit PSTN Begriffe I Client: Ein SIP Knoten, der

SIPSIP/VoIP im Fall von NAT

Routing und ForwardingInteroperabilität mit PSTN

7. Via Header einfügen und weiterleitenI Abhängig vom gewählten Transport, mit dem der nächste

Hop erreicht wird, wird ein entsprechender Via Headereingefügt.

I Da es sich um eine neue Clienttransaktion handelt, mußder Via einen Branch Parameter enthalten.

I Ist der Transport verbindungsorientiert, wird ggfs. einContent-Length Header benötigt.

Kommunikationsnetze I

Page 15: SIP SIP/VoIP im Fall von NAT Begriffe - Institute for ... · SIP SIP/VoIP im Fall von NAT Routing und Forwarding Interoperabilität mit PSTN Begriffe I Client: Ein SIP Knoten, der

SIPSIP/VoIP im Fall von NAT

Routing und ForwardingInteroperabilität mit PSTN

Verarbeitungen der Response

Empfängt ein SIP Knoten eine Response, versucht er zunächst,die zugehörige Transaktion zuzuordnen. Wird keine gefunden,wird die Nachricht wie bei einem Stateless Proxy weitergeleitet.

Andernfalls sind folgende Schritte vorgeschrieben:1. Bestimmung des Kontextes2. Entfernen des obersten Via Headers3. Aktualisierung des Kontextes4. Test, ob die Response sofort weitergeleitet werden muß.5. Im Fall, daß noch keine abschließende Antwort

weitergeleitet worden ist, bestimme die geeignete Antwort.

Kommunikationsnetze I

Page 16: SIP SIP/VoIP im Fall von NAT Begriffe - Institute for ... · SIP SIP/VoIP im Fall von NAT Routing und Forwarding Interoperabilität mit PSTN Begriffe I Client: Ein SIP Knoten, der

SIPSIP/VoIP im Fall von NAT

Routing und ForwardingInteroperabilität mit PSTN

Der Transaktionskontext kann über Branch Parameter undCSeq identifiziert werden.

Der oberste Via Header wird entfernt. Falls kein weiterer Viain der Nachricht enthalten ist, ist die Response für den Proxybestimmt. Damit darf er nicht weitergeleitet werden.

Die Response wird zum Kontext hinzugefügt, bis eineabschließende Response der zugehörigen Servertransaktiongefunden ist.

Resonses mit Statuscode 1xx außer 100 (Trying) und mitStatuscode 2xx müssen sofort über die Servertransaktionweitergeleitet werden.

Um eine Servertransaktion zu beenden, falls keineabschließende Antwort einer Clienttransaktion gesendetworden ist, wird bei Bedarf ein 408 (Request Timeout) erzeugt.

Kommunikationsnetze I

Page 17: SIP SIP/VoIP im Fall von NAT Begriffe - Institute for ... · SIP SIP/VoIP im Fall von NAT Routing und Forwarding Interoperabilität mit PSTN Begriffe I Client: Ein SIP Knoten, der

SIPSIP/VoIP im Fall von NAT

Routing und ForwardingInteroperabilität mit PSTN

Responseverarbeitung zur Weiterleitung

I Wird als Antwort ein 401 (Unauthorized) oder 407 (ProxyAuthentication Required) ausgewählt, so sind in einerResponse alle WWW-Authenticate undProxy-Authenticate Header mitzuschicken.

I Record-Route Header, die der Proxy selbst eingefügthat, kann er für die Rückrichtung modifizieren. Das wirdz.B. dann benötigt, wenn die Clienttransaktion auf einemanderen Interface (einer anderen IP Adresse) als dieServertransaktion läuft.

I Die ausgewählte Response wird an die Servertransaktionweitergeleitet.

I Ist eine abschließende Antwort zur Servertransaktionweitergeleitet worden, müssen alle zugehörigenClienttransaktionen mit einem CANCEL beendet werden.

Kommunikationsnetze I

Page 18: SIP SIP/VoIP im Fall von NAT Begriffe - Institute for ... · SIP SIP/VoIP im Fall von NAT Routing und Forwarding Interoperabilität mit PSTN Begriffe I Client: Ein SIP Knoten, der

SIPSIP/VoIP im Fall von NAT

Routing und ForwardingInteroperabilität mit PSTN

INVITE Transaktionen

Transaktionen, die durch ein INVITE eingeleitet werden,benutzen einen Handshake bestehend aus INVITE, 200 Okund ACK

I Wird eine Nachricht nicht bestätigt, wird sie wiederholt.Dabei wird die Zeit zwischen Wiederholungen nach jedemSchritt verdoppelt.

I Bestätigung für ein INVITE kann ein 1xx oder 2xxStatuscode sein.

Allen anderen Trasaktionen liegt ein einfachesRequest-Response Modell zugrunde.

Kommunikationsnetze I

Page 19: SIP SIP/VoIP im Fall von NAT Begriffe - Institute for ... · SIP SIP/VoIP im Fall von NAT Routing und Forwarding Interoperabilität mit PSTN Begriffe I Client: Ein SIP Knoten, der

SIPSIP/VoIP im Fall von NAT

Routing und ForwardingInteroperabilität mit PSTN

Beispiel

I Bob ist mit zwei Endgeräten bei seinem Providerexample.com registriert.

I Alice versucht, Bob anzurufen.

1. Alice UA sendet ein INVITE an [email protected] underzeugt damit auf dem Proxy eine Servertransaktion

2. Der Proxy ermittelt beim Registrar ein Target Set mit zweiURIs und antwortet Alice mit einem 100 Trying

3. Der Proxy erzeugt zwei Clienttransaktionen, die beide denINVITE an die jeweilige URI weiterleiten.

Kommunikationsnetze I

Page 20: SIP SIP/VoIP im Fall von NAT Begriffe - Institute for ... · SIP SIP/VoIP im Fall von NAT Routing und Forwarding Interoperabilität mit PSTN Begriffe I Client: Ein SIP Knoten, der

SIPSIP/VoIP im Fall von NAT

Routing und ForwardingInteroperabilität mit PSTN

Beispiel (Fortsetzung)

1. Bobs UAs erhalten den INVITE und erzeugen ihrerseitsServertransaktionen und antworten mit einem 100Trying.

2. Die 100 Trying werden von den Clienttransaktionengespeichert und nicht weitergereicht.

3. Beide UAs erzeugen ein 180 Ringing, das von den UACim Proxy an die zugehörige UAS weitergeleitet wird.

4. Bob nimmt bei einem Endgerät ab, der UA erzeugt ein 200OK mit passender SDP Nachricht.

5. Der Proxy empfängt den 200 Ok und leitet ihn an dieServertransaktion weiter. Die noch nicht abgeschlosseneClienttransaktion wird mit einem CANCEL abgebrochen.

Kommunikationsnetze I

Page 21: SIP SIP/VoIP im Fall von NAT Begriffe - Institute for ... · SIP SIP/VoIP im Fall von NAT Routing und Forwarding Interoperabilität mit PSTN Begriffe I Client: Ein SIP Knoten, der

SIPSIP/VoIP im Fall von NAT

Routing und ForwardingInteroperabilität mit PSTN

Beispiel (Fortsetzung)

1. Der 200 Ok erreicht den UAC von Alice, der ein ACKgeneriert. Der ACK muß nicht notwendigerweise dieselbenTransaktionsmerkmale haben, aber im selben Dialoggesendet werden.

2. Zur Beendigung der Session sendet eine Seite ein BYE.Da dies zu einem Dialog gehört, wird kein neues TargetSet berechnet.

vgl.:http://www.it.iitb.ac.in/xnet/sip/parallel_forking.html

Kommunikationsnetze I

Page 22: SIP SIP/VoIP im Fall von NAT Begriffe - Institute for ... · SIP SIP/VoIP im Fall von NAT Routing und Forwarding Interoperabilität mit PSTN Begriffe I Client: Ein SIP Knoten, der

SIPSIP/VoIP im Fall von NAT

Routing und ForwardingInteroperabilität mit PSTN

Transaktionen im Dialog

Dialoge dienen dazu, Zustandsinformationen über mehrereTransaktionen hinweg zu transportieren. Diese Informationenwerden zur Adressierung und zum Routing benutzt.

UAC und UAS fügen bei der Dialogerzeugung einen ContactHeader ein, der die SIP URI des Senders enthält. An diese URIwerden die folgenden Requests im Dialog adressiert.

Teil des Zustandes eines Dialoges ist das Route Set, d.h. diegeordnete Liste von SIP Knoten beschrieben durch ihre URI,die die Nachrichten bekommen müssen.

Kommunikationsnetze I

Page 23: SIP SIP/VoIP im Fall von NAT Begriffe - Institute for ... · SIP SIP/VoIP im Fall von NAT Routing und Forwarding Interoperabilität mit PSTN Begriffe I Client: Ein SIP Knoten, der

SIPSIP/VoIP im Fall von NAT

Routing und ForwardingInteroperabilität mit PSTN

Server und Clients im Dialog

Erhält ein UAS einen Request, der einen Dialog aufbaut, mußer alle Record-Route Header des Requests in die Responsekopieren.

Der UAS übernimmt die Record-Route Header in sein RouteSet.

Erhält ein UAC eine Response, die einen Dialog aufbaut,übernimmt er die Folge der Record-Route Header in seinRoute Set.

Neue Requests innerhalb des Dialoges benutzen als RequestURI den jeweiligen Contact Header der Gegenseite undfügen das Route Set in Form von Route Headern ein.

Kommunikationsnetze I

Page 24: SIP SIP/VoIP im Fall von NAT Begriffe - Institute for ... · SIP SIP/VoIP im Fall von NAT Routing und Forwarding Interoperabilität mit PSTN Begriffe I Client: Ein SIP Knoten, der

SIPSIP/VoIP im Fall von NAT

Routing und ForwardingInteroperabilität mit PSTN

ENUM (RFC3761)

Telefonnummern im internationalen Format E.164 könnenmittels DNS in SIP URIs umgewandelt werden. DieRufnummern werden in umgekehrter Reihenfolge der Ziffernunter der TLD e164.arpa abgelegt.

ENUM für Deutschland, d.h. die Domain 9.4.e164.arpa,wird durch die DENIC verwaltet.

Beispiel: Ermittle SIP URI für +420234680499

#host -t NAPTR 9.9.4.0.8.6.4.3.2.0.2.4.e164.arpa9.9.4.0.8.6.4.3.2.0.2.4.e164.arpa NAPTR 200 50

"u" "E2U+h323" "!^\\+(.*)$!h323:\\[email protected]!"9.9.4.0.8.6.4.3.2.0.2.4.e164.arpa NAPTR 100 50

"u" "E2U+sip" "!^\\+(.*)$!sip:\\[email protected]!" .

Kommunikationsnetze I

Page 25: SIP SIP/VoIP im Fall von NAT Begriffe - Institute for ... · SIP SIP/VoIP im Fall von NAT Routing und Forwarding Interoperabilität mit PSTN Begriffe I Client: Ein SIP Knoten, der

SIPSIP/VoIP im Fall von NAT

Routing und ForwardingInteroperabilität mit PSTN

Routing

Für die Interaktion zwischen SIP/VoIP und PSTN werdenSIP/PSTN Gateways eingesetzt, die sich gegenüber demPSTN wie eine Vermittlungsstelle und gegenüber dem SIPNetz wie ein Proxy verhalten.

Zur Übertragung/Konvertierung der Datenströme werdensogenannte Media Gateways eingesetzt.

Die Umsetzung der SIP URIs und Telefonnummern erfolgtmittels ENUM.

Kommunikationsnetze I

Page 26: SIP SIP/VoIP im Fall von NAT Begriffe - Institute for ... · SIP SIP/VoIP im Fall von NAT Routing und Forwarding Interoperabilität mit PSTN Begriffe I Client: Ein SIP Knoten, der

SIPSIP/VoIP im Fall von NAT

Routing und ForwardingInteroperabilität mit PSTN

Beispiel: PTSN⇒ SIP (RFC3666)

1. Alice wählt auf ihrem PSTN Telefon die Rufnummer vonBob.

2. Der Anruf wird auf das PSTN/VoIP Gateway weitergeleitet.3. Das Gateway ermittelt über eine ENUM Abfrage die SIP

URI von Bob.4. Das Gateway startet einen SIP Rufaufbau zu Bob

(INVITE). RTP Endpunkt in der Session Description ist einPort des Media Gateways.

Kommunikationsnetze I

Page 27: SIP SIP/VoIP im Fall von NAT Begriffe - Institute for ... · SIP SIP/VoIP im Fall von NAT Routing und Forwarding Interoperabilität mit PSTN Begriffe I Client: Ein SIP Knoten, der

SIPSIP/VoIP im Fall von NAT

Problem und WorkaroundsSimple Traversal of User Datagram (RFC3489)

Problembeschreibung

I SIP Clients in internen Netzen befinden sich oft in einemnicht öffentlichen IPv4 Bereich.

I Mobile Clients erhalten zur Zeit üblicherweise eine privateIPv4 Adresse, die nur eine begrenzte Zeit gültig ist.

I Damit ein Teilnehmer erreichbar ist, muß seine Adresse ineinem Registrar hinterlegt sein. Welche Adresse soll dasREGISTER Paket enthalten?

I In den SDP Beschreibungen sind IP und Port derEndpunkte des Medienstromes enthalten. Sind dieseEndpunkte für die Gegenstelle überhaupt erreichbar?

Kommunikationsnetze I

Page 28: SIP SIP/VoIP im Fall von NAT Begriffe - Institute for ... · SIP SIP/VoIP im Fall von NAT Routing und Forwarding Interoperabilität mit PSTN Begriffe I Client: Ein SIP Knoten, der

SIPSIP/VoIP im Fall von NAT

Problem und WorkaroundsSimple Traversal of User Datagram (RFC3489)

Workarounds

Abhängig vom Verhalten des NAT Elementes und denMöglichkeiten, die Infrastruktur zu beeinflussen, gibt esverschiedene Ansätze:

I NAT vermeidenI IP Tunnel zwischen verschiedenen LANsI Proxies an der Grenze zum InternetI STUNI NAT Firewalls/Router, die SIP beherrschen

vgl.:http://www.voip-info.org/wiki/view/NAT+and+VOIPhttp://tools.ietf.org/html/

draft-ietf-sipping-nat-scenarios-06

Kommunikationsnetze I

Page 29: SIP SIP/VoIP im Fall von NAT Begriffe - Institute for ... · SIP SIP/VoIP im Fall von NAT Routing und Forwarding Interoperabilität mit PSTN Begriffe I Client: Ein SIP Knoten, der

SIPSIP/VoIP im Fall von NAT

Problem und WorkaroundsSimple Traversal of User Datagram (RFC3489)

Anwendung

STUN ist ein Client-Server Protokoll, das es einem Prozess aufeinem Host ermöglicht, herauszufinden, ob er sich hinter einemNAT Device befindet und wie dieses arbeitet.

Folgende NAT Typen werden unterstützt:1. Kein NAT2. UDP wird vollständig blockiert3. UDP wird nur zur Quelladresse eines vorausgegangenen

UDP Paketes erlaubt4. Statische IP und Port Übersetzung, eingehende Pakete

sind erlaubt5. Ausgehende Quelladresse hängt von interner

Quelladresse und Zieladresse ab6. Statische IP und Port Übersetzung, eingehende Pakete

sind nur als Antwort auf ausgehende Pakete möglich(abhängig von IP oder IP + Port).

Kommunikationsnetze I

Page 30: SIP SIP/VoIP im Fall von NAT Begriffe - Institute for ... · SIP SIP/VoIP im Fall von NAT Routing und Forwarding Interoperabilität mit PSTN Begriffe I Client: Ein SIP Knoten, der

SIPSIP/VoIP im Fall von NAT

Problem und WorkaroundsSimple Traversal of User Datagram (RFC3489)

STUN Test 1

I Der Client schickt einen STUN Request, der vom Serverzur Senderadresse zurückgeschickt wird.

I In der Antwort enthalten sind die QuellIP und derQuellport, die der STUN Server gesehen hat.

I Erhält der Client keine Antwort, ist keine Kommunikationüber UDP möglich.

I Sind Quelladresse und Quellport im Paket identisch mitder lokalen Adresse, wird kein NAT verwendet.

Kommunikationsnetze I

Page 31: SIP SIP/VoIP im Fall von NAT Begriffe - Institute for ... · SIP SIP/VoIP im Fall von NAT Routing und Forwarding Interoperabilität mit PSTN Begriffe I Client: Ein SIP Knoten, der

SIPSIP/VoIP im Fall von NAT

Problem und WorkaroundsSimple Traversal of User Datagram (RFC3489)

Test 2

I Der Client schickt einen STUN Request mit derAufforderung, von einer anderen IP und einem anderenPort zu antworten.

I Wird eine Antwort empfangen, gibt es ein statischesMapping zwischen internen und externen Adressen. Portswerden nicht gesondert gefiltert (sofern nicht vorher einRequest auf diese Adresse geschickt worden ist).

I In Verbindung mit Test 1 können die NAT Typen 1-4 damiterkannt werden.

Kommunikationsnetze I

Page 32: SIP SIP/VoIP im Fall von NAT Begriffe - Institute for ... · SIP SIP/VoIP im Fall von NAT Routing und Forwarding Interoperabilität mit PSTN Begriffe I Client: Ein SIP Knoten, der

SIPSIP/VoIP im Fall von NAT

Problem und WorkaroundsSimple Traversal of User Datagram (RFC3489)

Test 3

I Der Client sendet einen STUN Request nur mit derAufforderung, von einem anderen Port aber derselben IPzu antworten.

I Wird eine Antwort empfangen, sind Ports von einer IPAdresse zumindest dann erreichbar, wenn zu dieser IPschon ein UDP Paket gesendet worden ist, unabhängig zuwelchem Port.

I Wird keine Antwort empfangen, filtert das NAT Elementmindestens nach verwendeten Portpaaren.

Kommunikationsnetze I

Page 33: SIP SIP/VoIP im Fall von NAT Begriffe - Institute for ... · SIP SIP/VoIP im Fall von NAT Routing und Forwarding Interoperabilität mit PSTN Begriffe I Client: Ein SIP Knoten, der

SIPSIP/VoIP im Fall von NAT

Problem und WorkaroundsSimple Traversal of User Datagram (RFC3489)

STUN WorkflowTest 1

Antwort Test 2

Test 2

Test 3

Gleiche IP

Antwort

Typ 2 Gleiche IP

AntwortTest 1Typ 5

Typ 4

Typ 6

Typ 6

Antwort Typ 3

Typ 1

N J J

NN

J

J

NN

J

J

N

Kommunikationsnetze I

Page 34: SIP SIP/VoIP im Fall von NAT Begriffe - Institute for ... · SIP SIP/VoIP im Fall von NAT Routing und Forwarding Interoperabilität mit PSTN Begriffe I Client: Ein SIP Knoten, der

SIPSIP/VoIP im Fall von NAT

Problem und WorkaroundsSimple Traversal of User Datagram (RFC3489)

Beispiel

Test mit dem Vovida STUN Client aus einem öffentlichenWLAN:#stun stunserver.org -vtest I = 1test II = 1test III = 1test I(2) = 1is nat = 1mapped IP same = 1preserver port = 1Primary: Independent Mapping,

Independent Filter, preserves portsReturn value is 0x000003

Kommunikationsnetze I