Internet DRAFT - draft-kaplan-dispatch-sip-traceroute

draft-kaplan-dispatch-sip-traceroute



twork Working Group                                         H. Kaplan 
Internet Draft                                              Acme Packet 
Intended status: Standards Track                       October 14, 2011 
Expires: April 21, 2012                                                 
                                                                        
                                                                        
                                                                        
    
    
                   A Media-based Traceroute Function for  
                   the Session Initiation Protocol (SIP) 
                  draft-kaplan-dispatch-sip-traceroute-00 
    
    
Status of this Memo 
    
   This Internet-Draft is submitted to IETF in full conformance with 
   the provisions of BCP 78 and BCP 79. 
    
   Internet-Drafts are working documents of the Internet Engineering 
   Task Force (IETF), its areas, and its working groups.  Note that 
   other groups may also distribute working documents as Internet-
   Drafts. 
    
   Internet-Drafts are draft documents valid for a maximum of six 
   months and may be updated, replaced, or obsoleted by other documents 
   at any time.  It is inappropriate to use Internet-Drafts as 
   reference material or to cite them other than as "work in progress." 
    
   The list of current Internet-Drafts can be accessed at 
   http://www.ietf.org/ietf/1id-abstracts.txt. 
    
   The list of Internet-Draft Shadow Directories can be accessed at 
   http://www.ietf.org/shadow.html. 
 
   This Internet-Draft will expire on April 14, 2011.  
    
Copyright and License Notice 
    
   Copyright (c) 2010 IETF Trust and the persons identified as the 
   document authors.  All rights reserved.  
        
   This document is subject to BCP 78 and the IETF Trust's Legal 
   Provisions Relating to IETF Documents 
   (http://trustee.ietf.org/license-info) in effect on the date of 
   publication of this document.  Please review these documents 
   carefully, as they describe your rights and restrictions with 
   respect to this document.  Code Components extracted from this 
   document must include Simplified BSD License text as described in 

 
 
Kaplan, et al           Expires April 24, 2012                [Page 1] 
Internet-Draft         Media-Traceroute for SIP           October 2011 
 
 
   Section 4.e of the Trust Legal Provisions and are provided without 
   warranty as described in the BSD License. 
    
Abstract
    
   SIP already provides the ability to perform hop-by-hop traceroute 
   for SIP messages using the Max-Forwards header field, in order to 
   determine the reachability path of requests to a target.  A new 
   mechanism for media-loopback calls is also being defined separately, 
   which enables test calls to be generated which result in media being 
   looped back to the originator.  This document is a strawman proposal 
   for a means of performing hop-by-hop traceroute-style test calls 
   using the media-loopback mechanism, in order to test the media path 
   when SIP sessions go through media-relaying B2BUAs.  
    
    
Table of Contents
    
   1. Terminology...................................................2 
   2. Introduction..................................................3 
      2.1. Existing SIP Traceroute Mechanism........................4 
   3. Solution Overview.............................................4 
   4. Solution Details..............................................5 
      4.1. Generating a B2bua-Hops Header Field.....................5 
      4.2. Processing a Received B2bua-Hops Header Field............5 
      4.3. Answering the INVITE.....................................6 
   5. Open Issues...................................................6 
   6. Security Considerations.......................................6 
   7. IANA Considerations...........................................7 
   8. Acknowledgments...............................................7 
   9. References....................................................7 
      9.1. Normative References.....................................7 
   Authors' Addresses................................................7 
    
    
1. Terminology 
    
   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 
   document are to be interpreted as described in RFC 2119.  The 
   terminology in this document conforms to RFC 2828, "Internet 
   Security Glossary". 
    
   B2BUA: a SIP Back-to-Back User Agent, which is the logical 
   combination of a User Agent Server (UAS) and User Agent Client 
   (UAC). 
    
   UAS: a SIP User Agent Server. 
    
 
 
Kaplan                   Expires - April 2011                 [Page 2] 
Internet-Draft         Media-Traceroute for SIP           October 2011 
 
 
   UAC: a SIP User Agent Client. 
    
   Traceroute: a mechanism to trace a path of hops from an originator 
   to a destination.  For IP, this is typically done using the TTL 
   field of the IP header, starting at the value 1 and incrementing by 
   1 as each IP hop responds with an ICMP error.  For SIP this can be 
   done using Max-Forwards header field starting with the value 0, in a 
   similar fashion to the TTL field. 
    
   It is assumed the reader is already familiar with [draft-media-
   loopback]. 
    
2. Introduction 
    
   In many deployments, the media for SIP-created sessions does not 
   flow directly from the originating user's UAC to the answering 
   user's UAS.  Often, SIP B2BUAs in the SIP signaling path participate 
   in the media plane, either for injecting media such as rich-
   ringtones or music-on-hold, or for relaying media in order to 
   provide functions such as transcoding, IPv4-IPv6 conversion, NAT 
   traversal, SRTP termination, media steering, etc. 
    
   As more and more SIP domains get deployed and interconnect, the odds 
   of a SIP session crossing such media-plane B2BUAs increases, as well 
   as the number of such B2BUAs any given SIP session may go through.  
   In other words, any given SIP session may cross any number of 
   B2BUAs both in the SIP signaling plane as well as media-plane. 
    
   If failures or degradation occurs in the media plane, it is 
   difficult to determine where in the media path they occur.  In order 
   to aid managing and troubleshooting SIP-based sessions and media 
   crossing such B2BUAs, it would be useful to be able to test the 
   media path to each B2BUA separately from the source.  A mechanism to 
   perform media-loopback test sessions is being defined in [draft-
   media-loopback], but it would be difficult to use the mechanism 
   directly to test B2BUAs because typically the B2BUAs do not have an 
   AoR to be targeted, nor is it known a priori which B2BUAs will be 
   crossed for any given session.   
    
   For example, suppose calls from Alice to Bob have media problems.  
   Alice would like to test the media path to each B2BUA in the path to 
   Bob separately, to determine which segment has the issues.  Alice 
   cannot target the B2BUAs directly for each test call, because she 
   doesn't know what URIs to use to target them; nor would using such 
   URIs guarantee the same media path be used as a call to Bob.  A 
   better solution would be to make a test call targeted to Bob, but 
   with a SIP traceroute-type mechanism that makes the call terminate 
   at the B2BUAs, such that she can perform test sessions to test the 
   media path to each downstream B2BUA. 
 
 
Kaplan                   Expires - April 2011                 [Page 3] 
Internet-Draft         Media-Traceroute for SIP           October 2011 
 
 
    
   This document defines how such a mechanism can be employed, using 
   the [draft-media-loopback] mechanism with a new SIP header field 
   such that a SIP User Agent can make multiple test calls, each 
   reaching a B2BUA further downstream.  Each B2BUA in the path that 
   supports this mechanism would answer the media-loopback call, and 
   thus the originating SIP UA can test the media path up to that 
   B2BUA. 
    
    
2.1. Existing SIP Traceroute Mechanism 
 
   The Max-Forwards header field can already be used to perform a SIP-
   request traceroute mechanism by generating a SIP request initially 
   using a Max-Forwards value of 0, receiving a 483 Too Many Hops 
   response from the next-hop, and then incrementing the value for 
   subsequent SIP requests, thereby reaching SIP devices further and 
   further downstream and receiving 483 from each of them. 
    
   Unfortunately, using the Max-Forwards header field for a media-
   loopback traceroute will not work for this document's purpose, for 
   several reasons.  The first problem is that Max-Forwards 
   verification is done early in SIP message receive processing.  
   Secondly, SIP Proxies that have no involvement in the media-plane 
   handle it as a failure event, responding with 483.  Third, a 483 
   response may not contain a Contact URI, so that the reached SIP 
   device isn't even known.  Lastly and most importantly, many SIP 
   B2BUAs reset the Max-Forwards header field value to 70 or some new 
   value - even those that have no involvement in the media-plane. 
    
3. Solution Overview 
    
   This document proposes a new SIP header field named "B2bua-Hops", 
   with behavior similar to Max-Forwards.  Like Max-Forwards, B2bua-
   Hops encodes an integer value from 0-255 which gets decremented by 
   each SIP hop and if it reaches 0 stops subsequent forwarding.  
   Unlike Max-Forwards, only B2BUAs involved in the media-plane would 
   decrement the B2bua-Hops value.   
    
   [Note: it is TBD if this should be done using a SIP header, or an 
   SDP attribute instead, or both] 
    
   To perform a SIP media-plane traceroute, the originating UAC 
   generates a SIP INVITE to a target AoR, with SDP based on [draft-
   media-loopback], and a B2bua-Hops header value of 0.  When the 
   request reaches the first B2BUA that supports this mechanism, that 
   B2BUA will answer the INVITE to establish the dialog and create a 
   media-loopback session.  The originating UAC can then generate 
   another INVITE to the same target AoR with a B2bua-Hops header value 
 
 
Kaplan                   Expires - April 2011                 [Page 4] 
Internet-Draft         Media-Traceroute for SIP           October 2011 
 
 
   of 1, which will reach the second B2BUA that supports this 
   mechanism, and so on.  
    
   Using this mechanism a SIP UAC can test the path from itself to each 
   successive B2BUA on the path to a target.  Such a mechanism could 
   also be useful for establishing a permanent test call between an 
   Enterprise and a Service Provider across a SIP Trunk, for example, 
   or for automated measurement systems to test the media path between 
   domains, etc. 
    
4. Solution Details 
    
   The focus of this document is enabling UACs to perform media-path 
   loopback test calls using a traceroute-style mechanism.  Currently 
   this involves using a new SIP header, and the procedures for the 
   header comprise the majority of the normative text in this section.  
   Arguably the new SIP header is useful beyond the purposes of media-
   loopback testing, for example to detect looped calls.  This document 
   makes no judgment in that regard, and further discussion is needed 
   in the IETF beforehand. 
    
4.1. Generating a B2bua-Hops Header Field 
    
   A SIP User Agent Client MAY generate a B2bua-Hops header field in 
   any dialog-creating INVITE request, and SHOULD use the default value 
   of 70 unless it has some reason to use another value.  Using another 
   value may make sense for cases such as traceroute testing, for 
   example. 
    
   [Note: it is TBD if the recommendation should be a "SHOULD" or 
   "MUST" to generate the header in all out-of-dialog requests, instead 
   of "MAY"] 
    
   B2BUAs logically generate all SIP headers on their UAC side as a 
   User Agent, but for the purposes of this document the value of the 
   B2bua-Hops header field generated on the UAC side MUST be copied 
   from the value received on the UAS side of the B2BUA.  If the B2BUA 
   is involved in the media plane, it MUST decrement the copied value 
   by 1 before encoding.  All dialog-creating INVITE requests generated 
   by a B2BUA based on receiving a dialog-creating INVITE request MUST 
   use the same (decremented) value. 
    
   SIP devices MUST NOT reset or increase the B2bua-Hops value of 
   received SIP messages, ever. 
    
4.2. Processing a Received B2bua-Hops Header Field 
 
   When a SIP B2BUA or UAS receives an out-of-dialog SIP INVITE 
   request, it checks for the existence of the B2bua-Hops header field.  
 
 
Kaplan                   Expires - April 2011                 [Page 5] 
Internet-Draft         Media-Traceroute for SIP           October 2011 
 
 
   If one exists and its value is 0, the device MAY act as the final 
   recipient and process the request as defined in section 5; otherwise 
   the request MUST be rejected with a 483 (Too many hops) response, 
   and a local Contact URI MUST be included in the 483 response.  If 
   the B2bua-Hops header field value is greater than 0, the SIP device 
   MUST decrement it by 1 as described in the previous section and 
   continue SIP processing. 
    
   [Note: it is TBD if responding with 483 is appropriate, vs. a new or 
   other existing response code] 
    
4.3. Answering the INVITE  
    
   If a SIP B2BUA or UAS receives a dialog-creating INVITE request with 
   a B2bua-Hops header value of 0, with SDP based on [draft-media-
   loopback], and the policies of the B2BUA/UAS allow it to answer such 
   a request, then it is answered as if the target of the request were 
   the local SIP B2BUA/UAS.  The normal procedures of SIP apply, as 
   well as [draft-media-loopback], as if the request had been targeted 
   at the local device all along.   
    
   [Open Issue: how does the UAC know the request reached a B2BUA vs. 
   the final UAS? (e.g., how does it know when to stop testing?)] 
    
5. Open Issues 
    
   There are many ways to achieve the goals of this document, each with 
   pros/cons.  If the IETF decides to take this work on in a Working 
   Group, the Working Group can debate which approach is the best.  
   This section highlights some of the known open issues or options. 
    
   -  Should the mechanism be done using separate INVITEs as described 
     in this document, or rather as a single INVITE and forked at each 
     B2BUA, creating separate dialogs implicitly? 
   -  Should we use a SIP header or an SDP attribute, or both? 
   -  Should we attempt to "fix" Max-Forwards instead of creating a new 
     header? (is it even fixable?) 
   -  Should we use B2bua-Hops for things beyond media-loopback? (e.g., 
     in other method types, for all requests all the time) 
   -  How does the UAC know when the request finally reached the 
     ultimate UAS? (e.g., use a param somewhere) 
    
    
6. Security Considerations 
    
   There are security implications for the mechanism defined in this 
   document.  Answering media-loopback calls in a B2BUA consumes 
   resources on the B2BUA, and network bandwidth in between; therefor, 
   B2BUAs should have some means of controlling who can make such test 
 
 
Kaplan                   Expires - April 2011                 [Page 6] 
Internet-Draft         Media-Traceroute for SIP           October 2011 
 
 
   calls, how many concurrent calls can be established and maintained, 
   and for how long.  Such policies are typically vendor-specific and 
   do not need to be defined in this document. 
    
7.   IANA Considerations 
    
   This document makes no request of IANA yet - if the new header 
   approach is maintained, then a new header will be registered. 
    
8.   Acknowledgments 
    
   The general concept of performing media-loopback on a hop-by-hop 
   basis using a decrementing header traceroute style approach came out 
   of discussions several years ago, between the author, Kaynam 
   Hedayat, Nagarjuna Venna, Patrick MeLampy, and others.  Other people 
   that have contributed to the topic over the years since then: Zaid 
   Ally, Dianna Stiller, Jon Boone, and several others whom I have lost 
   the names of since. 
    
   Funding for the RFC Editor function is provided by the IETF 
   Administrative Support Activity (IASA). 
 
9.   References 
    
9.1. Normative References 
 
   [draft-media-loopback]  Hedayat, K., et al, "An Extension to the 
   Session Description Protocol (SDP) for Media Loopback", draft-ietf-
   mmusic-media-loopback-16, September 2011. 
 
 
Author's Address
    
   Hadriel Kaplan
   Acme Packet
   Email: hkaplan@acmepacket.com
 
    











 
 
Kaplan                   Expires - April 2011                 [Page 7]