NAT Traversal Speaker: Chin-Chang Chang Date:2007.4.9.

Slides:



Advertisements
Similar presentations
SIP(Session Initiation Protocol) - SIP Messages
Advertisements

SIP, Presence and Instant Messaging
SIP, Firewalls and NATs Oh My!. SIP Summit SIP, Firewalls and NATs, Oh My! Getting SIP Through Firewalls Firewalls Typically.
Fall VoN 2000 SIP Servers SIP Servers: A Buyers Guide Jonathan Rosenberg Chief Scientist.
NETW-250 Troubleshooting Last Update Copyright Kenneth M. Chipps Ph.D. 1.
SIP and IMS Enabled Residential Gateway Sergio Romero Telefónica I+D Jan Önnegren Ericsson AB Alex De Smedt Thomson Telecom.
NAT/Firewall Traversal April NAT revisited – “port-translating NAT”
STUN Date: Speaker: Hui-Hsiung Chung 1.
1 NAT Traversal for VoIP Ai-Chun Pang Graduate Institute of Networking and Multimedia Dept. of Comp. Sci. and Info. Engr. National Taiwan University.
January 23-26, 2007 Ft. Lauderdale, Florida An introduction to SIP Simon Millard Professional Services Manager Aculab.
1 SIP-based VoIP Lab. 2 Step 1: Connect Your PC to The Network Get your laptop connected to the campus WLAN. –Run ipconfig to show your own IP address.
H. 323 and firewalls: Problem Statement and Solution Framework Author: Melinda Shore, Nokia Presenter: Shannon McCracken.
1 Internet Networking Spring 2004 Tutorial 13 LSNAT - Load Sharing NAT (RFC 2391)
NAT (Network Address Translator) Atif Karamat In the name of God the most merciful and the most compassionate.
1 Comnet 2010 Communication Networks Recitation 7 Lookups & NAT.
Session Initiation Protocol (SIP) By: Zhixin Chen.
1 Network Address Translation (NAT) Relates to Lab 7. Module about private networks and NAT.
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.
SIP, Session Initiation Protocol Internet Draft, IETF, RFC 2543.
SIP 逄愛君 SIP&SDP2 Industrial Technology Research Institute Computer & Communication Research Laboratories Elgin Pang Outline.
1 Spring Semester 2007, Dept. of Computer Science, Technion Internet Networking recitation #12 LSNAT - Load Sharing NAT (RFC 2391)
Introduction to SIP Speaker: Min-Hua Yang Advisor: Ho-Ting Wu Date:2005/3/29.
Secure Telephony Enabled Middle-box (STEM) Maggie Nguyen Dr. Mark Stamp SJSU - CS 265 Spring 2003 STEM is proposed as a solution to network vulnerabilities,
Via contains the address at which the originator is expecting to receive responses to this request. Mandatory To contains a display name and a SIP URI.
VoIP Billing Solutions Company PortaSIP.
RTP Relay Support in Intelligent Gateway Author: Pieere Pi
 Introduction  VoIP  P2P Systems  Skype  SIP  Skype - SIP Similarities and Differences  Conclusion.
1 Integrating 3G and WLAN Services in NTP SIP-based VoIP Platform Dr. Quincy Wu National Telecommunications Program Office
1 NAT Network Address Translation Motivation for NAT To solve the insufficient problem of IP addresses IPv6 –All software and hardware need to be updated.
STUN - Simple Traversal of User Datagram Protocol (UDP) Through Network Address Translators (NATs) speaker : Wenping Zhang date :
1 The Firewall Menu. 2 Firewall Overview The GD eSeries appliance provides multiple pre-defined firewall components/sections which you can configure uniquely.
1 Build a SIP of Environment Speaker: Yi-Ji Jheng Date:
1 TAC2000/ LABORATORY 117 Outline of the Hands-on Tutorial  SIP User-Agent Register Register Make calls Make calls  Fault-Finding Tools Observe.
Session Initiation Protocol (SIP). What is SIP? An application-layer protocol A control (signaling) protocol.
1 SIP-based VoIP Lab. 2 Step 1: Connect Your PC to The Network Get your laptop connected to the campus WLAN. –Run ipconfig to show your own IP address.
TCP/IP Protocols Contains Five Layers
Presented By Team Netgeeks SIP Session Initiation Protocol.
1 NAT & RTP Proxy Date: 2009/7/2 Speaker: Ni-Ya Li Advisor: Quincy Wu.
Author(s) Politehnica University of Bucharest Automatic Control and Computers Faculty Computer Science Department Implementation of GRUU in SIP Vladut-Stefan.
Private Network Addresses IP addresses in a private network can be assigned arbitrarily. – Not registered and not guaranteed to be globally unique Generally,
SIP:Session Initiation Protocol Che-Yu Kuo Computer & Information Science Department University of Delaware May 11, 2010 CISC 856: TCP/IP and Upper Layer.
Simon Millard Professional Services Manager Aculab – booth 402 The State of SIP.
Module 10: How Middleboxes Impact Performance
Omar A. Abouabdalla Network Research Group (USM) SIP – Functionality and Structure of the Protocol SIP – Functionality and Structure of the Protocol By.
SEMS Speaker: Changyu Wu Adviser: Quincy Wu Date:2006/11/13.
Security, NATs and Firewalls Ingate Systems. Basics of SIP Security.
VoIP Signaling Protocols A signaling protocol is a common language spoken by telephones and call-management servers, the PSTN, and legacy PBX systems as.
Session Initiation Protocol (SIP) Chapter 5 speaker : Wenping Zhang data :
Network Address Translation External/ Internal/. OVERLOADING In Overloading, each computer on the private network is translated to the same IP address;
5 Firewalls in VoIP Selected Topics in Information Security – Bazara Barry.
March, 2009 OS7x00 no MGI Solution Introduction Distribution EnglishED01.
Making SIP NAT Friendly Jonathan Rosenberg dynamicsoft.
Interactive Connectivity Establishment : ICE
SER Module Speaker: Chin-Chang Chang Date:
© 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.
The Session Initiation Protocol - SIP
S Postgraduate Course in Radio Communications. Application Layer Mobility in WLAN Antti Keurulainen,
1 Personal Mobility Management for SIP-based VoIP Services 王讚彬 國立台中教育大學資訊工程學系
Johan Delimon 26/04/2016 BE-COM E-COMMUNICATIONS EVENT THE INNER WORKINGS OF SKYPE FOR BUSINESS: NETWORKING.
Firewalls, Network Address Translators(NATs), and H.323
Firewall Techniques Matt Cupp.
Network Address Translation (NAT)
Session Initiation Protocol (SIP)
Network Address Translation (NAT)
Alfredo Terzoli / Mosioua Tsietsi
NAT Traversal for VoIP Dr. Quincy Wu National Chi Nan University
Running SIP behind NAT Dr. Christian Stredicke, snom technology AG
Network Address Translation (NAT)
Presentation transcript:

NAT Traversal Speaker: Chin-Chang Chang Date:

Outline What is NAT?  Private IP address Handling of NAT with SIP?  Nathelper module  Process Register Invite Bye/Cancel  RTPproxy Reference

What is NAT?(1/2) NAT (Network Address Translation) Re-writing the source and/or destination addresses of IP packets as they pass through a router or firewall. Using NAT enables multiple hosts on a private network to access the Internet using a single public IP address.

What is NAT?(2/2)

Private IP address Defined in RFC 1918 Address Range Routers on the Internet are normally configured to discard any traffic using private IP addresses.

Handling of NAT with SIP?(1/3) SIP Server UA Internet SIP Server RTP SIP Request Message SIP Response Message

Handling of NAT with SIP?(2/3) SIP Server NAT UA Internet SIP Server RTP

Handling of NAT with SIP?(3/3) We handle NAT with NAThelper module. There are two solutions for SER. One is RTPproxy, and the other is mediaproxy. We handle all aspects of NAT at the SIP Proxy location. RTPproxy is called by NAThelper.

Nathelper Module(1/7) This is a module to help with NAT traversal. Check whether the client is NATed. If it’s NATed, SIP proxy would rewrite the content of SIP and SDP. The module must be loaded before usrloc module - only if the NATed contacts are to be pinged.

Nathelper Module(2/7) natping_interval  Period of time in seconds between sending the NAT pings to all currently registered UAs to keep their NAT bindings alive. Default value is 0.  Ex. modparam("nathelper", "natping_interval", 10) ping_nated_only  If this variable is set then only contacts that have "behind_NAT" flag in user location database set will get ping. Default value is 0.  Ex. modparam("nathelper", "ping_nated_only", 1)

Nathelper Module(3/7) rtpproxy_sock  Socket used to connect to RTPProxy. Ex.modparam("nathelper", "rtpproxy_sock", " unix:/var/run/rtpproxy.sock ")

Nathelper Module(4/7) nat_uac_test(flags) Tries to guess if client's request originated behind a nat. Meaning of the flags is as follows:  1 - Contact header field is searched for occurrence of RFC1918 addresses.  2 - the "received" test is used: address in Via is compared against source IP address of signaling  4 - Top Most VIA is searched for occurrence of RFC1918 addresses  8 - SDP is searched for occurrence of RFC1918 addresses  16 - test if the source port is different from the port in Via

Nathelper Module(5/7) All flags can be bitwise combined. The test returns true if any of the tests identified a NAT. Ex. If(nat_uac_test(“19”)) setflag(6);

Nathelper Module(6/7) force_rtp_proxy()  Rewrites SDP body to ensure that media is passed through an RTP proxy. unforce_rtp_proxy()  Tears down the RTPProxy session for the current call fix_nated_contact()  Rewrites Contact HF to contain request's source address:port.

Nathelper Module(7/7) fix_nated_register()  The function creates a URI consisting of the source IP, port, and protocol and stores the URI. The URI will be appended as "received" parameter to Contact in 200 OK and registrar will store it in the user location database.

Process-REGISTER nat_uac_test ……. setflag(6) fix_nate_register() Force_rport() …… REGISTER YES UA When SIP client attempt to REGISTER with our SIP proxy, we need a way to tell the registrar module to store NAT information of this particular UA. Via:SIP/2.0/UDP :8345;rport=3 2770;received= ;branch=z9hG4bK- d b50cb4161d d Contact: ;expires= 3600;received="sip: :32787"

Process-INVITE Isflagset(6) ……. force_rport() fix_nate_contact() force_rtp_proxy() …… INVITE YES UA Nathelper will then communicate to rtpproxy, which will allocate RTP ports and the SDP payload of the INVITE will be rewritting. Connection Information (c): IN IP

Process-BYE/CANCEL Signal is BYE or CANCEL? ……. Unforce_rtp_proxy() …… BYE or CANCEL YES UA Ensure that the call is torn down when a call is hung up (BYE) or cancelled (CANCEL).

RTPproxy(1/2) RTPProxy NAT UA RTP

RTPproxy(2/2)

Reference RTPproxy SER - Getting Started Document Nathelper module athelper.html