Dispatch O. Johansson Internet-Draft Edvina AB Intended status: Standards Track G. Salgueiro Expires: December 26, 2013 Cisco Systems June 24, 2013 Locating SIP servers in a dual stack IP network draft-johansson-sip-dual-stack-00 Abstract RFC 3263 defines how a SIP implementation given an URL should locate the next hop SIP server using DNS. The RFC repeatedly states that the implementation should look up IPv4 or IPv6 addresses, which is not a good solution considering the issues that lead to the development of Happy Eyeballs (RFC XXX). This document corrects this behaviour for dual stack SIP implementations so that an implementation so that an implementation should look up both IPv4 and IPv6 addresses. This way, the implementation can find the best network flow and have a greater chance in success in reaching the service. This document also clarifies DNS SRV usage for single stack clients. Status of This Memo This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet- Drafts is at http://datatracker.ietf.org/drafts/current/. 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." This Internet-Draft will expire on December 26, 2013. Copyright Notice Copyright (c) 2013 IETF Trust and the persons identified as the document authors. All rights reserved. Johansson & Salgueiro Expires December 26, 2013 [Page 1] Internet-Draft Locating SIP servers dual stack June 2013 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 Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License. Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 2. Terminology and Conventions Used in This Document . . . . . . 2 3. A dual stack SIP ua should look up both A and AAAA records . 3 4. Indicating address family preference in SRV . . . . . . . . . 3 5. Security Considerations . . . . . . . . . . . . . . . . . . . 4 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 4 7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 4 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 4 8.1. Normative References . . . . . . . . . . . . . . . . . . 4 8.2. Informative References . . . . . . . . . . . . . . . . . 4 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 5 1. Introduction The SIP core RFCs was written with support for IPv4 and IPv6 in mind, but did not handle the migration phase where many servers and client implementations will run on dual stack hosts. During this phase one of the networks may run over a tunnel, starting with IPv6 over IPv4 and likely ending with IPv4 over IPv6. The use of automatically configured non-working tunnels lead to the development of the Happy Eyeballs RFC that has been implemented in many web browsers. RFC 6157[RFC6157] focus on handling media in a dual stack network path between two SIP user agents. This doesn't solve the signalling issues that can occur, when trying to find the best network path to the next hop SIP server. This document changes RFC 3263[RFC3263] so that a dual stack client must look up both A and AAAA records in DNS, and then select the best way to set up a network flow. How to do that is out of scope of this document (see Happy Eyeballs, RFC 6555[RFC6555] for more information about issues with setting up dual stack network flows). 2. Terminology and Conventions Used in This Document Johansson & Salgueiro Expires December 26, 2013 [Page 2] Internet-Draft Locating SIP servers dual stack June 2013 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 [RFC2119]. RFC 3261 [RFC3261] defines additional terms used in this document that are specific to the SIP domain such as "proxy"; "registrar"; "redirect server"; "user agent server" or "UAS"; "user agent client" or "UAC"; "back-to-back user agent" or "B2BUA"; "dialog"; "transaction"; "server transaction". This document uses the term "SIP Server" that is defined to include the following SIP entities: user agent server, registrar, redirect server, a SIP proxy in the role of user agent server, and a B2BUA in the role of a user agent server. This document also uses the following terminology to make clear distinction between SIP entities supporting only IPv4, only IPv6 or supporting both IPv4 and IPv6. IPv4-only UA/UAC/UAS: An IPv4-only UA/UAC/UAS supports SIP signaling and media only on the IPv4 network. It does not understand IPv6 addresses. IPv6-only UA/UAC/UAS: An IPv6-only UA/UAC/UAS supports SIP signaling and media only on the IPv6 network. It does not understand IPv4 addresses. IPv4/IPv6 UA/UAC/UAS: A UA/UAC/UAS that supports SIP signaling and media on both IPv4 and IPv6 networks; such a UA/UAC/UAS is known (and will be referred to in this document) as a "dual-stack" [RFC4213] UA/UAC/UAS. 3. A dual stack SIP ua should look up both A and AAAA records RFC 3263[RFC3263] section 4.2. states "If the TARGET was not a numeric IP address, but a port is present in the URI, the client performs an A or AAAA record lookup of the domain name. " This has been proven to be the wrong solution for a dual stack client. A client that has support for both IPv4 and IPv6 SHOULD lookup both an A and an AAAA record and add the addresses to the list of IP addresses to be contacted. This is a normative update to RFC 3263. 4. Indicating address family preference in SRV Johansson & Salgueiro Expires December 26, 2013 [Page 3] Internet-Draft Locating SIP servers dual stack June 2013 A service may use DNS SRV records to indicate preference for an address family. This way, a server with a high-latency and low- capacity IPv4 tunnel may indicate a preference for being contacted using IPv6. A server that wishes to do this can use the lowest SRV priority to publish hostnames that only resolve in IPv6 and the next priority with host names that resolve into both address families. Note that single stack clients needs to be prepared for SRV record sets that doesn't resolve into an address in the address family used by the client. In this case, the client should go to the next priority and try these host names. 5. Security Considerations This document changes lookup of SRV given host names to IP addresses. The scenarios discussed in this document do not introduce any new security threats. The specific security vulnerabilities, attacks, threat models of the various protocols discussed in this document (SIP, DNS, SRV records, etc.) are well documented in their respective documents. 6. IANA Considerations This document does not require actions by IANA. 7. Acknowledgements The author would like to acknowledge the support and contribution of the SIP Forum IPv6 Working Group. This document is based on a lot of tests and discussions at SIPit events, organized by the SIP Forum. 8. References 8.1. Normative References [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997. 8.2. Informative References [RFC3261] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston, A., Peterson, J., Sparks, R., Handley, M., and E. Schooler, "SIP: Session Initiation Protocol", RFC 3261, June 2002. [RFC3263] Rosenberg, J. and H. Schulzrinne, "Session Initiation Protocol (SIP): Locating SIP Servers", RFC 3263, June 2002. Johansson & Salgueiro Expires December 26, 2013 [Page 4] Internet-Draft Locating SIP servers dual stack June 2013 [RFC3680] Rosenberg, J., "A Session Initiation Protocol (SIP) Event Package for Registrations", RFC 3680, March 2004. [RFC4213] Nordmark, E. and R. Gilligan, "Basic Transition Mechanisms for IPv6 Hosts and Routers", RFC 4213, October 2005. [RFC4566] Handley, M., Jacobson, V., and C. Perkins, "SDP: Session Description Protocol", RFC 4566, July 2006. [RFC5245] Rosenberg, J., "Interactive Connectivity Establishment (ICE): A Protocol for Network Address Translator (NAT) Traversal for Offer/Answer Protocols", RFC 5245, April 2010. [RFC5589] Sparks, R., Johnston, A., and D. Petrie, "Session Initiation Protocol (SIP) Call Control - Transfer", BCP 149, RFC 5589, June 2009. [RFC6157] Camarillo, G., El Malki, K., and V. Gurbani, "IPv6 Transition in the Session Initiation Protocol (SIP)", RFC 6157, April 2011. [RFC6555] Wing, D. and A. Yourtchenko, "Happy Eyeballs: Success with Dual-Stack Hosts", RFC 6555, April 2012. Authors' Addresses Olle E. Johansson Edvina AB Runbovaegen 10 Sollentuna SE-192 48 SE Email: oej@edvina.net Gonzalo Salgueiro Cisco Systems 7200-12 Kit Creek Road Research Triangle Park, NC 27709 US Email: gsalguei@cisco.com Johansson & Salgueiro Expires December 26, 2013 [Page 5]