Download - RFC 3581 An Extension to the Session Initiation Protocol ( SIP ) for Symmetric Response Routing
RFC 3581An Extension
to the Session Initiation Protocol ( SIP )
for Symmetric Response Routing
Sommaire
• SIP
• NAT
• Problématique SIP et NAT
• Call Flow
• Conclusion
SIP- Session Initiation Protocol
SIP est :
Défini par l’IETF (Internet Engineering Task Force),
Référencé par la RFC 2543 puis par la RFC 3261.
SIP :
Est un protocole de signalisation de couche application
Permet l’établissement, la libération et la modification de sessions multimédias,
S’appuie sur un modèle transactionnel client/serveur.
SIP- Couche Transport
La couche transport est responsable :
De la transmission des requêtes et réponses sur le réseau,
Ports par défauts TCP/UDP: 5060 et 5070; TLS: 5061
Gère le paramètre « sent by » ( adresse IP et port) des champs VIAs
Gère le rajout du paramètre « received » (adresse IP distante)
SIP- Architecture
L’architecture de SIP est :
Basée sur des relations UAC/UAS,
Composée de User Agent, Proxy Server, Location Server, Redirection Server, Registrar Server.
Les terminaux peuvent soit :
Communiquer entre eux directement
Par l’intermédiaire d’autres serveurs.
NAT- Network Address Translation
NAT est :
Défini par la RFC 3022,
Une solution à la pénurie d’adresse IPV4.
En sortie du NAT :
Association d’une adresse IP privée à une adresse IP publique
En entrée du NAT :
Remplacement de l’adresse IP publique par l’adresse IP privée
• Les NAT sont :
NAT Statique, PAT/NAT Dynamique, Cône plein, Cône restrictif, Cône à port restrictif, NAT symétrique
NAT symétrique
Alice@ IP : 10.0.0.1N° port : 4545
Mohadina@ IP : 222.111.99.1
N° port : 20202
Dalentino@IP : 222.111.88.2
N° port : 10101
A chaque établissement d’appel d’Alice vers un utilisateur, une adresse IP et port publique est
réservé à cette communication. Routeur NAT@IP public : 192.0.2.1N° port : 9999
Routeur NAT@IP public : 192.0.2.1N° port : 9988
Problématique SIP & NAT 1/2
• Problème de communication entrante
• Les clients ne connaissent pas leur adresse IP translatée
• Les entêtes des champs Via, From et Contact ne sont pas routables
Problématique SIP & NAT 2/2 UserAlice
@ IP : 10.0.0.1N° port : 4545
Routeur NAT@IP public : 192.0.2.1
N° port : 9988
Serveur Proxy@IP : 192.0.2.2 (proxy.exemple.com)N° port : 5060 et 5070
INVITEINVITE
INVITE
200 OK200 OK
Sip : [email protected] SIP/2.0
Via : SIP/2.0/UDP 10.0.0.1 :4540 ; branch=z…
Sip : [email protected] SIP/2.0Via : SIP/2.0/UDP :
192.0.2.1 : 9988branch= z…
Sip : [email protected] SIP/2.0Via : SIP/2.0/UDP : proxy.exemple.com ; branch= z…Via : SIP/2.0/UDP :10.0.0.1 :4540 ;
received=192.0.2.1 ;branch= z9…
Via : SIP/2.0/UDP : proxy.exemple.com ;branch= z…Via : SIP/2.0/UDP :10.0.0.1 :4540 ;
received=192.0.2.1 ; branch= z9….
Via : sip/2.0/UDP :
10.0.0.1 : 4540 ; received=192.0.2.1 branch=z..
Call Flow RFC 3581UserAlice
@ IP : 10.0.0.1N° port : 4545
Routeur NAT@IP public : 192.0.2.1
N° port : 9988
Serveur Proxy@IP : 192.0.2.2 (proxy.exemple.com)N° port : 5060 et 5070
INVITEINVITE
INVITE
200 OK200 OK
200 OK
Sip : [email protected] SIP/2.0
Via : SIP/2.0/UDP 10.0.0.1 :4540 ; rport ;branch=z…
Sip : [email protected] SIP/2.0Via : SIP/2.0/UDP :
192.0.2.1 : 9988 ;rport ; branch= z…
Sip : [email protected] SIP/2.0Via : SIP/2.0/UDP : proxy.exemple.com ; branch= z…Via : SIP/2.0/UDP :10.0.0.1 :4540 ;
received=192.0.2.1 ; rport=9988 ;branch= z9…
Via : SIP/2.0/UDP : proxy.exemple.com ;branch= z…Via : SIP/2.0/UDP :10.0.0.1 :4540 ;
received=192.0.2.1 ; rport=9988 ; branch= z9….
Via : sip/2.0/UDP :
10.0.0.1 : 4540 ; received=192.0.2.1 ; rport =9988 ; branch=z..
Via : sip/2.0/UDP :
10.0.0.1 : 4540 ; received=192.0.2.1 ; rport =9988 ; branch=z..
Conclusion• La RFC 3581 apporte une solution pour le
NAT symétrique.• Pour les autres types de NAT, des solutions
existent telles que :
STUN (Simple Traversal of UDP through NAT)
ICE ( Interactive Connectivity Etablishment)
TURN (Traversal Using Relay NATs)
UPnP (Universal Plug and Play)
SIP- Quelques URLs utiles…
http://www.ietf.org/rfc.html ( Base des RFCs ), http://www.ietf.org/iesg/1rfc ( liste des RFCs et leurs status ), http://www.rfc-editor.org/cgi-bin/rfcsearch.pl ( Recherche de RFCs ) http://www.iptel.org/info/players/ietf ( RFCs et drafts par thèmes ), http://www.cs.columbia.edu/sip/ ( Portail SIP de l’université
Columbia), http://www.sipforum.org/ ( SIP forum ), http://www.sipit.net/ ( Accueil sur les « sipit: SIP interoperability test
event » ), http://www.pulver.com/products/sip/ (Portail VoIP : liste des produits
SIP ) http://www.voip-info.org/wifi-SIP ( Portail VoIP )
Questions
Sinon, …..
QUIZZ• 1_Quelle est la RFC qu’on vient de traiter ?
•RFC 3543
•RFC 3581
•RFC 3261
•RFC 3220
QUIZZ• 2_La RFC 3581 s’applique sur quel type de
NAT :
•Cône plein
•Nat symétrique
•Cône à port restrictif
•Cône restrictif
• 3_Quel paramètre est traité par la RFC 3581?
•TTL
•Received
•Rport
•Branch
• 4_Quelle RFC traite du paramètre received ? •RFC 3261
•RFC 3543
•RFC 3581
•RFC 3220