Making SIP NAT Friendly Jonathan Rosenberg dynamicsoft.

Slides:



Advertisements
Similar presentations
SIP, Presence and Instant Messaging
Advertisements

SIP, Firewalls and NATs Oh My!. SIP Summit SIP, Firewalls and NATs, Oh My! Getting SIP Through Firewalls Firewalls Typically.
Fall IM 2000 Introduction to SIP Jonathan Rosenberg Chief Scientist.
IM May 24, 2000 Introduction to SIP Jonathan Rosenberg Chief Scientist.
Fall VoN 2000 SIP Servers SIP Servers: A Buyers Guide Jonathan Rosenberg Chief Scientist.
CST Computer Networks NAT CST 415 4/10/2017 CST Computer Networks.
Running SIP behind NAT Dr. Christian Stredicke, snom technology AG Tokyo, Japan, Oct 22 th 2002.
NAT, firewalls and IPv6 Christian Huitema Architect, Windows Networking Microsoft Corporation.
NAT/Firewall Traversal April NAT revisited – “port-translating NAT”
1 © 2004 Cisco Systems, Inc. All rights reserved. Making NATs work for Online Gaming and VoIP Dr. Cullen Jennings
STUN Date: Speaker: Hui-Hsiung Chung 1.
SIP Traversal over NAT Problems and Solutions Mr. Ting-Yun Chi May 2,2006 (Taiwan,NICI IPv6 R&D Division)
January 23-26, 2007 Ft. Lauderdale, Florida An introduction to SIP Simon Millard Professional Services Manager Aculab.
1 © 2005 Cisco Systems, Inc. All rights reserved. Cisco Confidential Session Number Presentation_ID STUN, TURN and ICE Cary Fitzgerald.
STUN Tutorial Jonathan Rosenberg Chief Technology Officer.
H. 323 and firewalls: Problem Statement and Solution Framework Author: Melinda Shore, Nokia Presenter: Shannon McCracken.
1 © NOKIA NSIS MIPv6 FW/ November 8 th 2004 Mobile IPv6 - NSIS Interaction for Firewall traversal draft-thiruvengadam-nsis-mip6-fw-01 S. Thiruvengadam.
NAT (Network Address Translator) Atif Karamat In the name of God the most merciful and the most compassionate.
Session Initiation Protocol (SIP) By: Zhixin Chen.
ICE Jonathan Rosenberg dynamicsoft. Issue 1: Port Restricted Flow This case does not work well with ICE right now Race condition –Works if message 13.
CSc 461/561 CSc 461/561 Multimedia Systems Part C: 2. SIP.
SIP, NAT, Firewall SIP NAT Firewall How to Traversal NAT/Firewall for SIP.
Intertex Data AB, Sweden Talking NATs & Firewalls Prepared for:Voice On the Net, Spring 2002 By: Karl Erik Ståhl President Intertex Data AB Chairman Ingate.
SIP, Session Initiation Protocol Internet Draft, IETF, RFC 2543.
1 The Design and Implementation of Mobile Session Controller.
Understanding Networks Charles Zangla. Network Models Before I can explain how connections are made from across the country, I would like to provide you.
SIP and NAT Dr. Jonathan Rosenberg Cisco Fellow. What is NAT? Network Address Translation (NAT) –Creates address binding between internal private and.
RTP Relay Support in Intelligent Gateway Author: Pieere Pi
Day15 IP Space/Setup. IP Suite of protocols –TCP –UDP –ICMP –GRE… Gives us many benefits –Routing of packets over internet –Fragmentation/Reassembly of.
Windows Internet Connection Sharing Dave Eitelbach Program Manager Networking And Communications Microsoft Corporation.
SOCKS Group: Challenger Member: Lichun Zhan. Agenda Introduction SOCKS v4 SOCKS v5 Summary Conclusion References Questions.
IP Ports and Protocols used by H.323 Devices Liane Tarouco.
March 7, 2005MOBIKE WG, IETF 621 Mobility Protocol Options for IKEv2 (MOPO-IKE) Pasi Eronen.
NAT Traversal Speaker: Chin-Chang Chang Date:
STUN - Simple Traversal of User Datagram Protocol (UDP) Through Network Address Translators (NATs) speaker : Wenping Zhang date :
All rights reserved © 1999, Alcatel, Paris. page n° 1 SIP for Xcast SIP for the establishment of xcast-based multiparty.
1 The Firewall Menu. 2 Firewall Overview The GD eSeries appliance provides multiple pre-defined firewall components/sections which you can configure uniquely.
Networks – Network Architecture Network architecture is specification of design principles (including data formats and procedures) for creating a network.
1 © NOKIA 1999 FILENAMs.PPT/ DATE / NN SIP Service Architecture Markus Isomäki Nokia Research Center.
Scalability Don McGregor Research Associate MOVES Institute
Understanding Networking Joe Cicero Northeast Wisconsin Technical College.
Draft-ietf-mmusic-sdp-tcpmedia-00.txt Dialout.Net, Inc. David Yon TCP-Based Media Transport in SDP.
1 Chapter 7: NAT in Internet and Intranet Designs Designs That Include NAT Essential NAT Design Concepts Data Protection in NAT Designs NAT Design Optimization.
1 NAT & RTP Proxy Date: 2009/7/2 Speaker: Ni-Ya Li Advisor: Quincy Wu.
SIPPING IETF 57 Jonathan Rosenberg dynamicsoft.
Simon Millard Professional Services Manager Aculab – booth 402 The State of SIP.
Security, NATs and Firewalls Ingate Systems. Basics of SIP Security.
SIP working group IETF#70 Essential corrections Keith Drage.
RTCWEB Considerations for NATs, Firewalls and HTTP proxies draft-hutton-rtcweb-nat-firewall- considerations A. Hutton, T. Stach, J. Uberti.
Unleashing the Power of IP Communications™ Calling Across The Boundaries Mike Burkett, VP Products September 2002.
Interactive Connectivity Establishment : ICE
Magnus Westerlund 1 The RTSP Core specification draft-ietf-mmusic-rfc2326bis-06.txt Magnus Westerlund Aravind Narasimhan Rob Lanphier Anup Rao Henning.
TURN Jonathan Rosenberg Cisco Systems. Changes since last version Moved to behave terminology Many things moved into STUN –Basic request/response formation.
Firewalls A brief introduction to firewalls. What does a Firewall do? Firewalls are essential tools in managing and controlling network traffic Firewalls.
Firewall Technology and InterCell Communication Peter T. Dinsmore Trusted Information Systems Network Associates Inc 3060 Washington Rd (Rt. 97) Glenwood,
4343 X2 – The Transport Layer Tanenbaum Ch.6.
© 2006 Intertex Data AB 1 Connect your LAN to the SIP world, while keeping your existing firewall*! The IX67 LAN SIParator (Part of the SIP Switch option.
SIPWG Slides for IETF 51 Jonathan Rosenberg dynamicsoft.
Ch. 23, 25 Q and A (NAT and UDP) Victor Norman IS333 Spring 2015.
HIP-Based NAT Traversal in P2P-Environments
An Analysis on NAT Security
Firewalls, Network Address Translators(NATs), and H.323
SIP connection tracking
NAT (Network Address Translation)
* Essential Network Security Book Slides.
I. Basic Network Concepts
NAT Traversal for VoIP Dr. Quincy Wu National Chi Nan University
Running SIP behind NAT Dr. Christian Stredicke, snom technology AG
網際網路電話系統 期中考重點整理.
Exceptions and networking
Presentation transcript:

Making SIP NAT Friendly Jonathan Rosenberg dynamicsoft

Problem Statement Long time until we have ubiquitously deployed –IPv6 –Midcom enabled NAT –ALGs No commercial SIP ALGs today Many deployment scenarios, you can’t just “upgrade the NAT”, when we need SIP –Especially when the NAT is in the consumers home and the provider wants SIP Solution is to make protocols NAT friendly

NAT Friendly Guidelines Draft-ietf-nat-app-guide-04.txt Some basic ideas in there –Don’t put IP addresses in protocols –Client origination of connections Unfortunately, SIP predates these guidelines So, lets see how to apply them to SIP via small extensions

Basic concepts Find ways to ignore IP addresses in SIP/SDP wherever possible –Get the information from the transport connections themselves Find ways to make a peer to peer application look like client server –One side initiates –Can send data back and forth Don’t rely on DNS, since many clients won’t have domain names

Our assumptions NATs let packets out, both UDP and TCP If packet comes from {A,B} to {C,D}, {A,B} is bound to {X,Y} Packet forwarded with source {X,Y} Packets from {C,D}, to {X,Y}, are natted to {A,B} – ONLY packets from {C,D} –Most restrictive case for UDP UDP binding maintained as long as there is activity in either direction for many seconds to a minute

Reference Model UAC A UAS B NAT proxy

First problem: SIP UAC to proxy SIP over UDP is not NAT friendly –Uses port number from Via header SIP over TCP is NAT friendly –Send response to existing connection Recommendation: –UAC should use TCP to proxy for sending messages –Keep persistent connection to minimize setup delay

Second problem: proxy to UAS Proxy to UAS routing is through registrations Registration has Contact header containing address to send to –Not NAT friendly –Address is wrong –No NAT binding for it Solution –Registration sent over TCP connection to proxy –That connection used for incoming INVITEs –UAS listens on connection –But: contact header will not point to this connection!

Contact Cookie Special contact value which tells registrar “register my contact using the IP address and port where the register came from” –Register comes from persistent TCP connection to server –Causes calls to be routed to UAS through NAT! Want to be explicit –Call forward service Contact “cookie” –Special URL

Solves many other problems Multi-homed hosts –VPN interface to private network –Registrar on public network and private –Need to pick the right interface for each registration –Client can’t easily tell which interface to pick! –Let server figure it out Can’t tell my address –Many hosts can’t determine their IP address Java Applets –Can’t write SIP UA as Java applet today –Why? Can’t communicate anywhere but server –If registrar = server, can connect to server, and now receive incoming invites on that connection!

Hard part: RTP Current RTP is unidirectional –A indicates IP/port to receive from B –B indicates IP/port to receive from A –If either is behind NAT, media won’t flow to them Solution: make RTP look like client-server protocol –A indicates IP/port to receive from B –B sends to A, A sends back to B using source IP/port of RTP –Basically, only need IP address from ONE of the participants – the “server”

Symmetric RTP Conceptually, this is symmetric RTP Connection oriented Problem: who initiates connection to whom? –Same problem for media over TCP –Need to define active and passive participants Work already in mmusic to do just that –Draft-ietf-mmusic-sdp- comedia-00.txt –All we need is to define new keyword for this

Handles two of three cases A behind NAT, B not –A initiates RTP connection to B –B tries to connect to A, but since A provided private address, fails –B receives RTP packet from A –B sends RTP packets to source address of packet from A –A->B connection used B behind NAT, A not –B initiates RTPconnection to A –A tries to connect to B, but since B provided private address, fails –A receives RTP packet from B –A sends RTP packets to source address of packet from B –B->A connection used

What about third case? Both behind NAT is hard Many solutions possible Baseline solution: RTP translator outside of NAT –Both users connect to translator AB NAT RTP trans

How does translator get there? Proxies on both sides know whether their users are behind NAT –Via header doesn’t match source IP/port –Requires client to place listen interface into Via header Socket connect must happen before via added A’s proxy modifies SDP to indicate active if A is behind NAT If B’s proxy gets INVITE with active SDP, and B is behind NAT, problem!

How does translator get there? When there’s a problem –B’s proxy allocates translator –Modifies SDP address in INVITE to point to translator –Modifies SDP address in 200 to point to translator –A and B connect to translator –Translator sends media back to A and B over those connections Other solutions are possible No solutions are possible without this ability to send packets back to source address through binding!

Symmetric RTP Solves other problems too Java applets –Same problem as before SOCKS –SIP/RTP/SDP applications can now be socksified!! Reduces number of bindings needed in NATs –1 per call instead of 2 Works with firewalls that allow outbound connection oriented UDP Generally, anything that assumes client- server connection oriented traffic –Many things

So, what needs to be done? Framework document that describes concepts in light of existing NAT and midcom work SIP extension –Contact cookie –Anything else possibly needed SDP Usage –Add token to comedia draft –Describe symmetric RTP conventions