Practical VoIP Peering. Klaus Darilion enum.at klaus.darilion@enum.at

Similar documents
Vega 100G and Vega 200G Gamma Config Guide

Table of Contents. Confidential and Proprietary

How To Guide. SIP Trunking Configuration Using the SIP Trunk Page

OpenSER the open SIP Server. Bogdan-Andrei Iancu CEO Voice System Co-Founder OpenSER Project

IP Office Technical Tip

Connecting with Free IP Call

SIP Essentials Training

SIP Proxy. SIP Proxy. Bicom SYSTEMS. SIP Proxy... Advanced Simplicity

SIP Trunking Quick Reference Document

VoIP and IP-IC Regulatory aspects

nexvortex Setup Template

Connecting with Vonage

Deployment of TLS support with Open SIP Express Router

Preparatory Meeting for Phase 2 of Philippine National ENUM Trial

SIP Trunking Application Notes V1.3

Vega 100G and Vega 200G Gamma Config Guide

The SIP School- 'Mitel Style'

Connecting with sipgate

Peer to Peer Settlement for Next Generation IP Networks Using the ETSI OSP Protocol (ETSI TS ) for Cascading Peering Settlements

AT&T IP Flex Reach/ IP Toll Free Configuration Guide IC 3.0 with Interaction SIP Proxy

SIP and ENUM. Overview DENIC. Introduction to SIP. Addresses and Address Resolution in SIP ENUM & SIP

Review: Lecture 1 - Internet History

Formación en Tecnologías Avanzadas

DNS SRV Usage June 22, 2011

How to Configure the Avaya IP Office 6.1 for use with Integra Telecom SIP Solutions

Advanced Networking Voice over IP & Other Multimedia Protocols Some SIP Advanced Topics

How To Understand The Purpose Of A Sip Aware Firewall/Alg (Sip) With An Alg (Sip) And An Algen (S Ip) (Alg) (Siph) (Network) (Ip) (Lib

MODELLING OF INTELLIGENCE IN INTERNET TELEPHONE SYSTEM

ENUM: Migrating to VoIP. P2P Voice Applications

SIP Trunking Manual Technical Support Web Site: (registration is required)

Application Notes for Avaya IP Office 7.0 Integration with Skype Connect R2.0 Issue 1.0

Application Notes for Configuring Broadvox SIP Trunking with Avaya IP Office - Issue 1.0

Vesselin Tzvetkov, Holger Zuleger {vesselin.tzvetkov, Arcor AG&Co KG, Alfred-Herrhausen-Allee 1, Eschborn, Germany

Firewall. FortiOS Handbook v3 for FortiOS 4.0 MR3

IP Phone Presence Setup

Project 4: IP over DNS Due: 11:59 PM, Dec 14, 2015

SIP Trunk Configuration V/IPedge Feature Description 5/22/13

I-TNT: PHONE NUMBER EXPANSION AND TRANSLATION SYSTEM FOR MANAGING INTERCONNECTIVITY ADDRESSING IN SIP PEERING

Cisco EXAM Implementing Cisco IP Telephony and Video, Part 2 (CIPTV2) Buy Full Product.

This guide provides detailed information on how to configure and use server redundancy on Yealink IP phones.

Switchvox. Technical Application Notes

Setting up a reflector-reflector interconnection using Alkit Reflex RTP reflector/mixer

NAT TCP SIP ALG Support

Network Convergence and the NAT/Firewall Problems

Acano solution. Third Party Call Control Guide. March E

The SIP School- 'Mitel Style'

SIP and VoIP 1 / 44. SIP and VoIP

VoIP LAB. 陳 懷 恩 博 士 助 理 教 授 兼 所 長 國 立 宜 蘭 大 學 資 訊 工 程 研 究 所 TEL: # 255

Application Note Configuring the Synapse SB67070 SIP Gateway for Broadvox GO! SIP Trunking

Installation of the On Site Server (OSS)

SIP-PBX / Service Provider Interoperability

Government of Canada Managed Security Service (GCMSS) Annex A-1: Statement of Work - Firewall

1 SIP Carriers Warnings Vendor Contact Vendor Web Site : Versions Verified SIP Carrier status as of 9/11/2011

Avaya IP Office SIP Trunk Configuration Guide

This guide provides detailed information on how to configure and use server redundancy on Yealink IP phones.

Flow Analysis Versus Packet Analysis. What Should You Choose?

Application Note. Onsight Connect Network Requirements V6.1

nexvortex SIP Trunking Implementation & Planning Guide V1.5

NAT and Firewall Traversal with STUN / TURN / ICE

VoIP. Overview. Jakob Aleksander Libak Introduction Pros and cons Protocols Services Conclusion

Application Note. SIP Domain Management

Note: As of Feb 25, 2010 Priority Telecom has not completed FXS verification of fax capabilities. This will be updated as soon as verified.

Session Border Controller

Internet Technology Voice over IP

Configuration Aid To Ingate Firewall/SIParator - Using Your Own SIP Domain. Lisa Hallingström Paul Donald

LifeSize Transit Deployment Guide June 2011

2N OfficeRoute. 2N OfficeRoute & Siemens HiPath (series 3000) connected via SIP trunk. Quick guide. Version 1.00

Integrating Avaya Aura Presence Services with Microsoft OCS

Configuring a Mediatrix 500 / 600 Enterprise SIP Trunk SBC June 28, 2011

Secure SIP? Do It Yourself! OpenFortress* digital signatures

CTS2134 Introduction to Networking. Module Network Security

Network Address Translation (NAT) Adapted from Tannenbaum s Computer Network Ch.5.6; computer.howstuffworks.com/nat1.htm; Comer s TCP/IP vol.1 Ch.

How to make free phone calls and influence people by the grugq

Configuring the Edgewater 4550 for use with the Bluestone Hosted PBX

General Guidelines for SIP Trunking Installations

Application Note. Firewall Requirements for the Onsight Mobile Collaboration System and Hosted Librestream SIP Service v5.0

Source-Connect Network Configuration Last updated May 2009

Cisco TelePresence Video Communication Server Basic Configuration (Control with Expressway)

IP Office Technical Tip

MULTI WAN TECHNICAL OVERVIEW

CE Advanced Network Security VoIP Security

Analysis of a VoIP Attack

Implementing Intercluster Lookup Service

Lawful Interception in P2Pbased

Version Date Status Owner Released for HiPath OpenOffice ME V1 F. Kneissl / K.-W. Weigt

Application Note. Onsight TeamLink And Firewall Detect v6.3

Computer Security CS 426 Lecture 36. CS426 Fall 2010/Lecture 36 1

1.1.3 Versions Verified SIP Carrier status as of 18 Sep 2014 : validated on CIC 4.0 SU6.

Firewalls P+S Linux Router & Firewall 2013

Creating your own service profile for SJphone

OpenScape Business. Tutorial Networking OpenScape Business OpenScape Voice Configuration Guide. Version: 1.0

Introduction to DE-CIX NGN. Andreas Sturm

Dial91 iphone User Guide

Link2VoIP SIP Trunk Setup

Session Border Controller

White paper. SIP An introduction

SIP Domain/Proxy, Ring Detect Extension or/and Page Audio Extension, (The 8180 needs its own phone extension) Authentication ID, Password,

Transcription:

Klaus Darilion enum.at klaus.darilion@enum.at

Peering* Peering: negotiation of reciprocal interconnection arrangements between service providers Layer 3 peering Layer 5 peering *definitions from draft-ietf-speermint-terminology-06.txt

Layer 3 Peering interconnection of two service providers' networks for the purposes of exchanging IP packets which destined for one (or both) of the peer's networks ISP A AS... Internet exchange ISP B AS...

Layer 5 Peering = VoIP Peering interconnection of two service providers for the purposes of routing SIP signaling this presentation is about L5 peering ITSP A SIP ITSP B ISP X AS... Internet ISP Y AS...

Why is L5-peering needed? SIP like Email/SMTP no explicit peering needed requires an open SIP proxy: allow incoming SIP requests (from non-local domains) allow outgoing SIP requests (to non-local domains) examples: iptel.org, freeworlddialup, gizmoproject

Why is L5-peering needed? an open SIP proxy raises issues, e.g.: SPIT (VoIP SPAM) QoS billing (interconnect fees, transit fees) security (authentication, DoS,...)

Peering Terminology* open connectivity SMTP-style static peering pre-defined peering partners dynamic peering peering partners not known in advance bilateral peering vs. federation peering *my definition

Federation* A group of ITSPs agree to receive calls from each other via SIP agree on administrative rules (settlement, abusehandling,...) agree on technical details of the interconnection an ITSP can be a member of no federation a single federation multiple federations can have any combination of bi-lateral and multilateral (i.e., federated) interconnections. *definition from draft-ietf-speermint-terminology-06.txt

Federations Federation Z Federation Y D Required: federation discovery and matching C Call setup details are intra-federation. A Federation X B A B by rules of X D A by rules of Z D,B,C to each other by rules of Y No federated path from A to C

Static Peering peering partners known in advance typically block routing (phone numbers) INVITE sip:+43720... ITSP B Internet ITSP A INVITE sip:+1... PSTN-provider

Static Peering only traffic between known peers ITSP A X Internet ITSP B ITSP X X ITSP C

Dynamic Peering peering partners NOT known in advance usually an E.164-URI mapping (ENUM) ENUM ENUM Internet ITSP B INVITE sip:...@itspb ITSP A INVITE sip:...@itspc ITSP C

Static vs. Dynamic Peering within Federations new ITSP joins federation static peering A, B and C have to configure peer X dynamic peering ITSP X announces federation membership at A, B and C no configuration needed ITSP A Federation X ITSP C ITSP B new ITSP X

Peering Requirement authentication, authorization, accounting Hi, I am ITSP A! ITSP A Is it really ITSP A? ITSP B authentication is essential for peering layer 1/2: dedicated links layer 3: IP based (TCP or UDP+IPSEC) layer 5: TLS, cookie/token, SIP Identity...

Components flexible SIP proxy ENUM lookup TLS domainpolicy module

Peering with Openser config snippets static peering, IP based authentication static peering, TLS based authentication dynamic peering with TLS

Static Peering - IP outgoing: block based routing (one "if" for each peer) if (uri =~ "^sip:\+1") { # USA sethostport( 1.2.3.4:6060;transport=tcp"); } else if (uri =~ "^sip:\+4359966") { # austrian ITSP xyz sethostport( 10.10.0.4"); # private VLAN } else if (uri=~"^sip:\+491234") { # german ITSP foobar or using openser s LCR module load_gws(), next_gw()

Static Peering - IP outgoing: domain based routing if (uri =~ "^sip:*.@itspa") { sethostport("peer.itspa;transport=tcp"); } else if (uri =~ "^sip:*.@itspb") { # do nothing, current R-URI is fine } else { sl_send_reply("403","untrusted peer");...

Static Peering - IP incoming: authentication based on IP address (one "if" for each peer) if ((src_ip==1.1.1.1)&&(proto==tcp)) { # from ITSP foobar route(10); } else { # unknown peer sl_send_reply("403","stay away"); or using openser s LCR module from_gw()

Static Peering - TLS authentication based on TLS: TLS config (one pair for each peer) # socket based TLS server domain, used by itspb tls_server_domain[local_ip:port] { # show the following cert to incoming peer tls_certificate = "/certs/signedbyitspb/mycert.pem" tls_private_key = "/certs/signedbyitspb/myprivkey.pem" # validate presented certificate against this CA tls_ca_list = "/certs/myself/myca" tls_verify_client = 1 tls_require_client_certificate = 1 } # socket based TLS client domain for peering with peerx tls_client_domain[remote_ip:port] { # show the following cert to peer tls_certificate = "/certs/signedbyitspb/mycert.pem" tls_private_key = "/certs/signedbyitspb/myprivkey.pem" # validate presented certificate against this CA tls_ca_list = "/certs/myself/myca" tls_verify_server = 1 }

Static Peering - TLS incoming routing: authentication based on TLS if (proto==tls) { # already authenticated by TLS stack route(10); } else { # unknown peer sl_send_reply("403","use TLS"); outgoing routing: TLS is transparent # request/destination URI contains transport=tls t_relay();

Static Peering - Conclusion requires manual configuration outgoing incoming does not scale either complex IP address management or complex certificate configuration dynamic peering not possible

Solution: Domain Policy domain based policy announcing (draftlendl-domain-policy-ddds) callee domain (ITSP) announces peering policy in DNS technical federation caller applies policy implemented in openser s domainpolicy module

Domain Policy Example $ORIGIN itspb. IN NAPTR 10 10 ("U" "D2P+SIP:fed" "!^.*$!http://sipxconnect.example.org/!". ) IN NAPTR 20 10 ("U" "D2P+SIP:fed" "!^.*$!http://myfederation.foobar/!". ) IN NAPTR 30 10 ("U" "D2P+SIP:std" "!^.*$!urn:ietf:rfc:4474!".) itspb accepts calls from: members of the federations peers identified by RFC4474 (Authenticated Identity Management )

Openser Domainpolicy Howto 1. configure domainpolicy table with federation policy 2. configure TLS (preferred authentication method) 3. announce domainpolicy (federation membership) in DNS 4. query and apply domainpolicy

1. Configure Federation Policy sample federation policy federation identifier: http://fedx/ TLS (federation signs certificates) prefix peer's URI with "fedx" to find ingress proxy openser's domainpolicy table +----+--------------+------+---------------------+------+ id rule type att (avp name) val +----+--------------+------+---------------------+------ 1 http://fedx/ fed s:domainprefix fedx 2 http://fedx/ fed s:transportoverride tls 3 http://fedx/ fed i:400 fedx +----+--------------+------+---------------------+------+

2. Configure TLS... tls_client_domain_avp=400... # socket based TLS server domain, used for ingress of federationx tls_server_domain[local_ip:6061] { # show the following cert to incoming peer tls_certificate = "/certs/fedx/mycert.pem" tls_private_key = "/certs/fedx/myprivkey.pem" # validate presented certificate against this CA tls_ca_list = "/certs/fedx/ca" tls_verify_client = 1 tls_require_client_certificate = 1 } # name based TLS client domain for egress peering with federationx tls_client_domain["fedx"] { # show the following cert to peer tls_certificate = "/certs/fedx/mycert.pem" tls_private_key = "/certs/fedx/myprivkey.pem" # validate presented certificate against this CA tls_ca_list = "/certs/fedx/ca" tls_verify_server = 1 }

3. Announce Domainpolicy in DNS $ORIGIN itspa. ; announce federation memberships IN NAPTR 10 10 "U" "D2P+SIP:fed""!^.*$!http://fedX/!". ;SIP domains _sips._tcp.fedx IN SRV 0 0 6061 ingress.itspa. ingress IN A 1.2.3.4

4. Query and Apply Domainpolicy route[] {... # map TN to URI with ENUM if ( i_enum_query() ) { # check the domainpolicy of the destination if (dp_can_connect()) { xlog("l_info","dp_can_connect succeeded:\n"); # apply domain policy if (dp_apply_policy()) { xlog("l_info"," new d-uri = $du\n"); route(4); exit; } xlog("l_info","dp_apply_policy failed\n"); } else { xlog("l_info","dp_can_connect failed\n"); } } else {

Domainpolicy Conclusion 1. only one TLS config-pair per federation 2. no configuration changes needed for new federation members 3. no routing changes needed for new federations 4. also simplifies static peering (DB based) 5. a scaleable solution

Summary "open" SIP connectivity unusual peerings are preferred there will be lots of federations (peering fabrics) static configuration does not scale domainpolicy allows dynamic peering code for infrastructure ENUM and domainpolicy in openser CVS since 2006-11-02

Klaus Darilion phone: +43 1 5056416 36, fax: +43 1 5056416 39 klaus.darilion@enum.at,

References Speermint Working Group http://ietf.org/html.charters/speermint-charter.html draft-lendl-domain-policy-ddds http://www.ietf.org/internet-drafts/draft-lendl-domain-policy-ddds-02.txt draft-lendl-speermint-federations http://www.ietf.org/internet-drafts/draft-lendl-speermint-federations-03.txt draft-lendl-speermint-technical-policy http://www.ietf.org/internet-drafts/draft-lendl-speermint-technical-policy- 00.txt draft-haberler-carrier-enum http://www.ietf.org/internet-drafts/draft-haberler-carrier-enum-03.txt domainpolicy documentation module README Tutorials at enum.at homepage: http:///index.php?id=dokumente

Appendix

Static Peering with domainpolicy module type = "dom" (domain) if (uri =~ "^sip:*.@itspa.foo.bar") { sethostport("peer.itspa.foo.bar;transport=tcp"); } else if (uri =~ "^sip:*.@itspb") { # do nothing, current R-URI is fine } else { sl_send_reply("403","untrusted peer");... +----+--------------+------+---------------------+--------------------+ id rule type att (avp name) val +----+--------------+------+---------------------+-------------------- 1 itspa.foo.bar dom s:domainreplacement peer.itspa.foo.bar 2 itspa.foo.bar dom s:transportoverride tcp +----+--------------+------+---------------------+--------------------

practical peering tips no NAT traversal for other peers P-Asserted-Identity: use tel URI for phone numbers, not SIP URI use dedicated peering proxy do not use UDP allow ICMP or SIP error messages

Federations ITSP X Federation Y ITSP A Federation X ITSP B ITSP Y ITSP C ITSP E bilateral peering ITSP H bilateral peering