idnits 2.17.1 draft-ietf-sipcore-dns-dual-stack-03.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 : ---------------------------------------------------------------------------- == The 'Updates: ' line in the draft header should list only the _numbers_ of the RFCs which will be updated by this document (if approved); it should not include the word 'RFC' in the list. -- The draft header indicates that this document updates RFC6157, but the abstract doesn't seem to mention this, which it should. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year (Using the creation date from RFC6157, updated by this document, for RFC5378 checks: 2005-07-13) -- The document seems to lack a disclaimer for pre-RFC5378 work, but may have content which was first submitted before 10 November 2008. If you have contacted all the original authors and they are all willing to grant the BCP78 rights to the IETF Trust, then this is fine, and you can ignore this comment. If not, you may need to add the pre-RFC5378 disclaimer. (See the Legal Provisions document at https://trustee.ietf.org/license-info for more information.) -- The document date (February 1, 2016) is 2979 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) -- Obsolete informational reference (is this intentional?): RFC 3484 (Obsoleted by RFC 6724) -- Obsolete informational reference (is this intentional?): RFC 6555 (Obsoleted by RFC 8305) Summary: 0 errors (**), 0 flaws (~~), 2 warnings (==), 5 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 SIPCORE O. Johansson 3 Internet-Draft Edvina AB 4 Updates: RFC 6157 (if approved) G. Salgueiro 5 Intended status: Standards Track Cisco Systems 6 Expires: August 4, 2016 V. Gurbani 7 Bell Labs, Alcatel-Lucent 8 D. Worley, Ed. 9 Ariadne Internet Services 10 February 1, 2016 12 Locating Session Initiation Protocol (SIP) Servers in a Dual-Stack IP 13 Network 14 draft-ietf-sipcore-dns-dual-stack-03 16 Abstract 18 RFC 3263 defines how a Session Initiation Protocol (SIP) 19 implementation, given a SIP Uniform Resource Identifier (URI), should 20 locate the next hop SIP server using Domain Name System (DNS) 21 procedures. As SIP networks increasingly transition from IPv4-only 22 to dual-stack, a quality user experience must be ensured for dual- 23 stack SIP implementations. This document updates the DNS procedures 24 described in RFC 3263 for dual-stack SIP implementations in 25 preparation for forthcoming specifications for applying Happy 26 Eyeballs to SIP. 28 Status of This Memo 30 This Internet-Draft is submitted in full conformance with the 31 provisions of BCP 78 and BCP 79. 33 Internet-Drafts are working documents of the Internet Engineering 34 Task Force (IETF). Note that other groups may also distribute 35 working documents as Internet-Drafts. The list of current Internet- 36 Drafts is at http://datatracker.ietf.org/drafts/current/. 38 Internet-Drafts are draft documents valid for a maximum of six months 39 and may be updated, replaced, or obsoleted by other documents at any 40 time. It is inappropriate to use Internet-Drafts as reference 41 material or to cite them other than as "work in progress." 43 This Internet-Draft will expire on August 4, 2016. 45 Copyright Notice 47 Copyright (c) 2016 IETF Trust and the persons identified as the 48 document authors. All rights reserved. 50 This document is subject to BCP 78 and the IETF Trust's Legal 51 Provisions Relating to IETF Documents 52 (http://trustee.ietf.org/license-info) in effect on the date of 53 publication of this document. Please review these documents 54 carefully, as they describe your rights and restrictions with respect 55 to this document. Code Components extracted from this document must 56 include Simplified BSD License text as described in Section 4.e of 57 the Trust Legal Provisions and are provided without warranty as 58 described in the Simplified BSD License. 60 Table of Contents 62 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 63 2. Notational Conventions . . . . . . . . . . . . . . . . . . . 3 64 3. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3 65 4. DNS Procedures in a Dual-Stack Network . . . . . . . . . . . 4 66 4.1. Dual-Stack SIP UA DNS Record Lookup Procedure . . . . . . 4 67 4.2. Indicating Address Family Preference in DNS SRV Records . 5 68 5. Clarification of RFC 6157 . . . . . . . . . . . . . . . . . . 5 69 6. Security Considerations . . . . . . . . . . . . . . . . . . . 5 70 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 6 71 8. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 6 72 9. Revision History . . . . . . . . . . . . . . . . . . . . . . 6 73 9.1. Changes from draft-ietf-sipcore-dns-dual-stack-02 to 74 draft-ietf-sipcore-dns-dual-stack-03 . . . . . . . . . . 6 75 10. References . . . . . . . . . . . . . . . . . . . . . . . . . 7 76 10.1. Normative References . . . . . . . . . . . . . . . . . . 7 77 10.2. Informative References . . . . . . . . . . . . . . . . . 7 78 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 8 80 1. Introduction 82 The Session Initiation Protocol (SIP, [RFC3261]) and the additional 83 documents that extended it provide support for both IPv4 and IPv6. 84 However, this support does not fully extend to the highly hybridized 85 environments that are characteristic of the transitional migratory 86 phase from IPv4 to IPv6 networks. During this phase, many server and 87 client implementations run on dual-stack hosts. In such 88 environments, a dual-stack host will likely suffer greater connection 89 delay, and by extension an inferior user experience, than an 90 IPv4-only host. The need to remedy this diminished performance of 91 dual-stack hosts led to the development of the Happy Eyeballs 93 [RFC6555] algorithm, which has since been implemented in many 94 protocols and applications. 96 This document updates the DNS lookup procedures of RFC 3263[RFC3263] 97 in preparation for the specification of the application of Happy 98 Eyeballs to SIP to provide enhanced performance, and consequently 99 user experience, in highly hybridized dual-stack SIP networks. The 100 procedures described herein are such that a dual-stack client should 101 look up both A and AAAA records in DNS and then select the best way 102 to set up a network flow. The details of how the latter is done is 103 considered out of scope for this document. See the Happy Eyeballs 104 algorithm and implementation and design considerations in RFC 6555 105 [RFC6555] for more information about issues with setting up dual- 106 stack network flows. 108 This document updates [RFC6157] as described in Section Section 5. 110 2. Notational Conventions 112 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 113 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 114 document are to be interpreted as described in RFC 2119 [RFC2119]. 116 3. Terminology 118 RFC 3261 [RFC3261] defines additional terms used in this document 119 that are specific to the SIP domain such as "proxy"; "registrar"; 120 "redirect server"; "user agent server" or "UAS"; "user agent client" 121 or "UAC"; "back-to-back user agent" or "B2BUA"; "dialog"; 122 "transaction"; "server transaction". 124 This document uses the term "SIP Server" that is defined to include 125 the following SIP entities: user agent server, registrar, redirect 126 server, a SIP proxy in the role of user agent server, and a B2BUA in 127 the role of a user agent server. 129 This document also uses the following terminology to make clear 130 distinction between SIP entities supporting only IPv4, only IPv6 or 131 supporting both IPv4 and IPv6. 133 IPv4-only UA/UAC/UAS: An IPv4-only UA/UAC/UAS supports SIP signaling 134 and media only on the IPv4 network. It does not understand IPv6 135 addresses. 137 IPv6-only UA/UAC/UAS: An IPv6-only UA/UAC/UAS supports SIP signaling 138 and media only on the IPv6 network. It does not understand IPv4 139 addresses. 141 IPv4/IPv6 UA/UAC/UAS: A UA/UAC/UAS that supports SIP signaling and 142 media on both IPv4 and IPv6 networks; such a UA/UAC/UAS is known 143 (and will be referred to in this document) as a "dual-stack" 144 [RFC4213] UA/UAC/UAS. 146 address records: The DNS records which translate a domain name into 147 addresses within the address family(ies) that the UA supports, as 148 A RR's provide IPv4 addresses and AAAA RR's provide IPv6 149 addresses. 151 4. DNS Procedures in a Dual-Stack Network 153 This specification introduces two normative DNS lookup procedures. 154 These are designed to improve the performance of dual-stack clients 155 in IPv4/IPv6 networks. 157 4.1. Dual-Stack SIP UA DNS Record Lookup Procedure 159 Once the transport protocol has been determined, the procedure for 160 discovering an IP address if the TARGET is not a numeric IP address 161 but the port is explicitly stated in the URI, is detailed in 162 Section 4.2 of RFC 3263[RFC3263]. The piece relevant to to this 163 discussion is: 165 If the TARGET was not a numeric IP address, but a port is present 166 in the URI, the client performs an A or AAAA record lookup of the 167 domain name. The result will be a list of IP addresses, each of 168 which can be contacted at the specific port from the URI and 169 transport protocol determined previously. 171 Section 4.2 of RFC 3263 [RFC3263] also goes on to describe the 172 procedure for discovering an IP address if the TARGET is not a 173 numeric IP address, and no port is present in the URI. The piece 174 relevant to to this discussion is: 176 If no SRV records were found, the client performs an A or AAAA 177 record lookup of the domain name. The result will be a list of IP 178 addresses, each of which can be contacted using the transport 179 protocol determined previously, at the default port for that 180 transport. Processing then proceeds as described above for an 181 explicit port once the A or AAAA records have been looked up. 183 Happy Eyeballs [RFC6555] documents that looking up the "A or AAAA 184 record" is not an effective practice for dual-stack clients and that 185 it can add significant connection delay and greatly degrade user 186 experience. Therefore, this document makes the following normative 187 addendum to the DNS lookup procedures of Section 4.2 of RFC 3263 189 [RFC3263] for IPv4/IPv6 hybrid SIP networks and recommends it as a 190 best practice for such dual-stack networks: 192 The dual-stack client SHOULD look up all address records (i.e., 193 for all address family(ies) that it supports) for the domain name 194 and add the resulting addresses to the list of IP addresses to be 195 contacted. A client MUST be prepared for DNS lookups to return 196 addresses in families that it does not support; such addresses 197 MUST be ignored as unusable and the supported addresses used as 198 specified herein. 200 4.2. Indicating Address Family Preference in DNS SRV Records 202 The Happy Eyeballs algorithm [RFC6555] is particularly effective when 203 dual-stack client applications have significant performance 204 differences in their IPv4 or IPv6 network paths. In this common 205 scenario it is often necessary for a dual-stack client to indicate a 206 preference for either IPv4 or IPv6. A service may use DNS SRV 207 records to indicate such a preference for an address family. This 208 way, a server with a high-latency and/or low-capacity IPv4 tunnel may 209 indicate a preference for being contacted using IPv6. A server that 210 wishes to do this can use the lowest SRV priority to publish 211 hostnames that only resolve in IPv6 and the next priority with host 212 names that resolve in both address families. 214 5. Clarification of RFC 6157 216 [RFC6157] defers to the Source and Destination Address Selection 217 algorithms defined in [RFC6724] (the successor of [RFC3484]) when 218 allowing a client to choose a specific server (c.f. Section 5 in 219 [RFC6157]). 221 This document clarifies the process: If SRV lookup is successful, the 222 major ordering of the list of destination addresses is determined by 223 the priority and weight fields of the SRV records as specified in 224 [RFC2782]. The (minor) ordering among the destinations derived from 225 the "target" field of a single SRV record is determined by [RFC6724]. 227 6. Security Considerations 229 This document introduces two new normative procedures to the existing 230 DNS procedures used to locate SIP servers. While both of these 231 procedures are optimizations designed to improve the performance of 232 dual-stack clients, neither introduces any new security 233 considerations. 235 The specific security vulnerabilities, attacks and threat models of 236 the various protocols discussed in this document (SIP, DNS, SRV 237 records, Happy Eyeballs requirements and algorithm, etc.) are well 238 documented in their respective specifications. 240 7. IANA Considerations 242 This document does not require any actions by IANA. 244 8. Acknowledgments 246 The authors would like to acknowledge the support and contribution of 247 the SIP Forum IPv6 Working Group. This document is based on a lot of 248 tests and discussions at SIPit events, organized by the SIP Forum. 250 This document has benefited from the expertise and review feedback of 251 many participants of the IETF DISPATCH and SIPCORE WG mailing lists 252 as well as those on the SIP Forum IPv6 Task Group mailing list. The 253 authors wish to specifically call out the efforts and express their 254 gratitude for the detailed and thoughtful comments and corrections of 255 Dan Wing, Brett Tate, Rifaat Shekh-Yusef, Carl Klatsky, Mary Barnes, 256 Keith Drage and Cullen Jennings. 258 The authors also thank the SIPCORE WG chairs, Paul Kyzivat and Adam 259 Roach, and assigned Area Director, Richard Barnes, for their support 260 and thorough evaluation of this work. 262 9. Revision History 264 [Note to RFC Editor: Please remove this entire section upon 265 publication as an RFC.] 267 9.1. Changes from draft-ietf-sipcore-dns-dual-stack-02 to draft-ietf- 268 sipcore-dns-dual-stack-03 270 Revised wording, punctuation, and capitalization in various places. 272 Clarified that this draft does not document Happy Eyeballs for SIP, 273 but is preparatory for it. 275 Attempted to use "update" for text that is definitively a change to 276 the preexisting text and "clarify" for text that is a more clear 277 statement of the (presumed) intention of the preexisting text. 279 Removed normative words from section 1, the introduction. 281 Copied definition of "address records" from RFC 2782 (SRV records) to 282 allow the specifications to expand automatically to include any new 283 address families. 285 Relocated the text requiring a client to ignore addresses that it 286 discovers in address families it does not support from section 4.2 287 (which describes why the situation arises) to section 4.1 (which 288 describes how clients look up RRs). 290 Clarified the interaction with RFC 6157 (source and destination 291 address selection in IPv6) to specify what must have been intended: 292 The major sort of the destinations is the ordering determined by 293 priority/weight in the SRV records; the addresses derived from a 294 single SRV record's target are minorly sorted based on RFC 6157. 296 Removed editor's name from the acknowledgments list. 298 10. References 300 10.1. Normative References 302 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 303 Requirement Levels", BCP 14, RFC 2119, 304 DOI 10.17487/RFC2119, March 1997, 305 . 307 [RFC2782] Gulbrandsen, A., Vixie, P., and L. Esibov, "A DNS RR for 308 specifying the location of services (DNS SRV)", RFC 2782, 309 DOI 10.17487/RFC2782, February 2000, 310 . 312 [RFC3263] Rosenberg, J. and H. Schulzrinne, "Session Initiation 313 Protocol (SIP): Locating SIP Servers", RFC 3263, 314 DOI 10.17487/RFC3263, June 2002, 315 . 317 [RFC6157] Camarillo, G., El Malki, K., and V. Gurbani, "IPv6 318 Transition in the Session Initiation Protocol (SIP)", 319 RFC 6157, DOI 10.17487/RFC6157, April 2011, 320 . 322 10.2. Informative References 324 [RFC3261] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston, 325 A., Peterson, J., Sparks, R., Handley, M., and E. 326 Schooler, "SIP: Session Initiation Protocol", RFC 3261, 327 DOI 10.17487/RFC3261, June 2002, 328 . 330 [RFC3484] Draves, R., "Default Address Selection for Internet 331 Protocol version 6 (IPv6)", RFC 3484, 332 DOI 10.17487/RFC3484, February 2003, 333 . 335 [RFC4213] Nordmark, E. and R. Gilligan, "Basic Transition Mechanisms 336 for IPv6 Hosts and Routers", RFC 4213, 337 DOI 10.17487/RFC4213, October 2005, 338 . 340 [RFC6555] Wing, D. and A. Yourtchenko, "Happy Eyeballs: Success with 341 Dual-Stack Hosts", RFC 6555, DOI 10.17487/RFC6555, April 342 2012, . 344 [RFC6724] Thaler, D., Ed., Draves, R., Matsumoto, A., and T. Chown, 345 "Default Address Selection for Internet Protocol Version 6 346 (IPv6)", RFC 6724, DOI 10.17487/RFC6724, September 2012, 347 . 349 Authors' Addresses 351 Olle E. Johansson 352 Edvina AB 353 Runbovaegen 10 354 Sollentuna SE-192 48 355 SE 357 Email: oej@edvina.net 359 Gonzalo Salgueiro 360 Cisco Systems 361 7200-12 Kit Creek Road 362 Research Triangle Park, NC 27709 363 US 365 Email: gsalguei@cisco.com 367 Vijay Gurbani 368 Bell Labs, Alcatel-Lucent 369 1960 Lucent Lane 370 Rm 9C-533 371 Naperville, IL 60563 372 US 374 Email: vkg@bell-labs.com 375 Dale R. Worley (editor) 376 Ariadne Internet Services 377 738 Main St. 378 Waltham, MA 02451 379 US 381 Email: worley@ariadne.com