idnits 2.17.1 draft-kaplan-straw-sip-traceroute-01.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- No issues found here. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year -- The document date (June 15, 2013) is 3965 days in the past. Is this intentional? Checking references for intended status: Proposed Standard ---------------------------------------------------------------------------- (See RFCs 3967 and 4897 for information about using normative references to lower-maturity documents in RFCs) == Missing Reference: 'RFC3261' is mentioned on line 178, but not defined Summary: 0 errors (**), 0 flaws (~~), 2 warnings (==), 1 comment (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 1 RAW Working Group H. Kaplan 2 Internet Draft Oracle 3 Intended status: Standards Track June 15, 2013 4 Expires: December 30, 2013 6 A Media-based Traceroute Function for 7 the Session Initiation Protocol (SIP) 8 draft-kaplan-straw-sip-traceroute-01 10 Status of this Memo 12 This Internet-Draft is submitted to IETF in full conformance with 13 the provisions of BCP 78 and BCP 79. 15 Internet-Drafts are working documents of the Internet Engineering 16 Task Force (IETF), its areas, and its working groups. Note that 17 other groups may also distribute working documents as Internet- 18 Drafts. 20 Internet-Drafts are draft documents valid for a maximum of six 21 months and may be updated, replaced, or obsoleted by other documents 22 at any time. It is inappropriate to use Internet-Drafts as 23 reference material or to cite them other than as "work in progress." 25 The list of current Internet-Drafts can be accessed at 26 http://www.ietf.org/ietf/1id-abstracts.txt. 28 The list of Internet-Draft Shadow Directories can be accessed at 29 http://www.ietf.org/shadow.html. 31 This Internet-Draft will expire on December 15, 2013. 33 Copyright Notice 35 Copyright (c) 2012 IETF Trust and the persons identified as the 36 document authors. All rights reserved. 38 This document is subject to BCP 78 and the IETF Trust's Legal 39 Provisions Relating to IETF Documents 40 (http://trustee.ietf.org/license-info) in effect on the date of 41 publication of this document. Please review these documents 42 carefully, as they describe your rights and restrictions with 43 respect to this document. Code Components extracted from this 44 document must include Simplified BSD License text as described in 45 Section 4.e of the Trust Legal Provisions and are provided without 46 warranty as described in the Simplified BSD License. 48 Abstract 50 SIP already provides the ability to perform hop-by-hop traceroute 51 for SIP messages using the Max-Forwards header field, in order to 52 determine the reachability path of requests to a target. A 53 mechanism for media-loopback calls has also been defined separately, 54 which enables test calls to be generated which result in media being 55 looped back to the originator. This document describes a means of 56 performing hop-by-hop traceroute-style test calls using the media- 57 loopback mechanism, in order to test the media path when SIP 58 sessions go through media-relaying B2BUAs. 60 Table of Contents 62 1. Terminology...................................................2 63 2. Introduction..................................................3 64 3. The SIP Traceroute Mechanism..................................4 65 3.1. Processing a Received Max-Forwards Header Field..........4 66 3.2. Answering the INVITE.....................................5 67 4. Open Issues...................................................5 68 5. Security Considerations.......................................5 69 6. IANA Considerations...........................................5 70 7. Acknowledgments...............................................5 71 8. References....................................................6 72 8.1. Normative References.....................................6 73 Author's Address..................................................6 75 1. Terminology 77 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 78 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 79 document are to be interpreted as described in RFC 2119. The 80 terminology in this document conforms to RFC 2828, "Internet 81 Security Glossary". 83 B2BUA: a SIP Back-to-Back User Agent, which is the logical 84 combination of a User Agent Server (UAS) and User Agent Client 85 (UAC). 87 UAS: a SIP User Agent Server. 89 UAC: a SIP User Agent Client. 91 Traceroute: a mechanism to trace a path of hops from an originator 92 to a destination. For IP, this is typically done using the TTL 93 field of the IP header, starting at the value 1 and incrementing by 94 1 as each IP hop responds with an ICMP error. For SIP this can be 95 done using Max-Forwards header field starting with the value 0, in a 96 similar fashion to the TTL field. 98 It is assumed the reader is already familiar with media-loopback 99 [RFC6849]. 101 2. Introduction 103 In many deployments, the media for SIP-created sessions does not 104 flow directly from the originating user's UAC to the answering 105 user's UAS. Often, SIP B2BUAs in the SIP signaling path participate 106 in the media plane, either for injecting media such as rich- 107 ringtones or music-on-hold, or for relaying media in order to 108 provide functions such as transcoding, IPv4-IPv6 conversion, NAT 109 traversal, SRTP termination, media steering, etc. 111 As more and more SIP domains get deployed and interconnect, the odds 112 of a SIP session crossing such media-plane B2BUAs increases, as well 113 as the number of such B2BUAs any given SIP session may go through. 114 In other words, any given SIP session may cross any number of 115 B2BUA's both in the SIP signaling plane as well as media plane. 117 If failures or degradation occurs in the media plane, it is 118 difficult to determine where in the media path they occur. In order 119 to aid managing and troubleshooting SIP-based sessions and media 120 crossing such B2BUAs, it would be useful to be able to test the 121 media path to each B2BUA separately from the source. A mechanism to 122 perform media-loopback test sessions has been defined in [RFC6849], 123 but it would be difficult to use the mechanism directly to test 124 B2BUAs because typically the B2BUAs do not have an Address of Record 125 (AoR) to be targeted, nor is it known a priori which B2BUAs will be 126 crossed for any given session. 128 For example, suppose calls from Alice to Bob have media problems. 129 Alice would like to test the media path to each B2BUA in the path to 130 Bob separately, to determine which segment has the issues. Alice 131 cannot target the B2BUAs directly for each test call, because she 132 doesn't know what URIs to use to target them; nor would using such 133 URIs guarantee the same media path be used as a call to Bob. A 134 better solution would be to make a test call targeted to Bob, but 135 with a SIP traceroute-type mechanism that makes the call terminate 136 at the B2BUAs, such that she can perform test sessions to test the 137 media path to each downstream B2BUA. 139 This document defines how such a mechanism can be employed, using 140 the [RFC6849] mechanism along with the Max-Forwards SIP header field 141 such that a SIP User Agent can make multiple test calls, each 142 reaching a B2BUA further downstream. Each B2BUA in the path that 143 supports this mechanism would answer the media-loopback call, and 144 thus the originating SIP UA can test the media path up to that 145 B2BUA. 147 3. The SIP Traceroute Mechanism 149 The Max-Forwards header field can already be used to perform a 150 simple SIP-request traceroute mechanism by generating a SIP request 151 initially using a Max-Forwards value of 0, receiving a 483 Too Many 152 Hops response from the next-hop, and then incrementing the value for 153 subsequent SIP requests, thereby reaching SIP devices further and 154 further downstream and receiving 483 from each of them. 156 The mechanism described in this document uses such a Max-Forwards 157 style traceroute to perform media-loopback testing. To perform a 158 SIP media-plane traceroute, the originating UAC generates a SIP 159 INVITE to a target AoR, with SDP based on [RFC6849]. When the 160 request reaches the first B2BUA that supports this mechanism, if the 161 B2BUA allows such testing from the requesting UAC, then the B2BUA 162 will answer the INVITE to establish the dialog and create a media- 163 loopback session. 165 The originating UAC can then generate another INVITE to the same 166 target AoR with a B2bua-Hops header value of 1, which will reach the 167 second B2BUA that supports this mechanism, and so on. 169 Using this mechanism a SIP UAC can test the path from itself to each 170 successive B2BUA on the path to a target. Such a mechanism could 171 also be useful for establishing a permanent test call between an 172 Enterprise and a Service Provider across a SIP Trunk, for example, 173 or for automated measurement systems to test the media path between 174 domains, etc. 176 3.1. Processing a Received Max-Forwards Header Field 178 As currently defined in [RFC3261], the UAS half of a B2BUA does not 179 technically need to inspect the Max-Forwards header field value for 180 received requests - only Proxies do. This behavior was updated by 181 [draft-loop-detection], such that a compliant B2BUA needs to both 182 inspect the value in order to prevent loops, as well as copy and 183 decrement the value as if it were a Proxy. This document also 184 requires such behavior in order to succeed, therefore a B2BUA 185 supporting the traceroute mechanism defined in this document MUST 186 also comply with [draft-loop-detection]. 188 3.2. Answering the INVITE 190 If a SIP B2BUA or UAS receives a dialog-creating INVITE request with 191 a Max-Forwards header value of 0, with SDP for media-loopback based 192 on [RFC6849], and the policies of the B2BUA/UAS allow it to answer 193 such a request, then it is answered as if the original target of the 194 request were the local SIP B2BUA/UAS. The normal procedures of SIP 195 apply, as well as [RFC6849], as if the request had been targeted at 196 the local B2BUA device all along. 198 [Open Issue: how does the UAC know the request reached a B2BUA vs. 199 the final UAS? (e.g., how does it know when to stop testing?)] 201 4. Open Issues 203 - How does the UAC know when the request finally reached the 204 ultimate UAS; or conversely that it has not yet reached the 205 ultimate UAS? (e.g., insert a param somewhere?) 207 5. Security Considerations 209 There are security implications for the mechanism defined in this 210 document. Answering media-loopback calls in a B2BUA consumes 211 resources on the B2BUA, and network bandwidth in between; therefore, 212 B2BUAs should have some means of controlling who can make such test 213 calls, how many concurrent calls can be established and maintained, 214 and for how long. Such policies are typically vendor-specific based 215 on local policies, and do not need to be defined in this document. 217 6. IANA Considerations 219 This document makes no request of IANA yet - if a new parameter or 220 field needs to be inserted when answering the INVITE, then it will 221 be registered in IANA. 223 7. Acknowledgments 225 The general concept of performing media-loopback on a hop-by-hop 226 basis using a decrementing header traceroute style approach came out 227 of discussions several years ago, between the author, Kaynam 228 Hedayat, Nagarjuna Venna, Patrick MeLampy, and others. Other people 229 that have contributed to the topic over the years since then: Zaid 230 Ally, Dianna Stiller, Jon Boone, and several others whom I have lost 231 the names of since. 233 Funding for the RFC Editor function is provided by the IETF 234 Administrative Support Activity (IASA). 236 8. References 238 8.1. Normative References 240 [RFC6849] Kaplan, H., et al, "An Extension to the Session 241 Description Protocol (SDP) for Media Loopback", RFC 6849, February 242 2013. 244 Author's Address 246 Hadriel Kaplan 247 Oracle 248 Email: hadriel.kaplan@oracle.com