Network Working GroupIndependent Submission M. BoucadairInternet-DraftRequest for Comments: 6947 France TelecomIntended status:Category: Informational H. KaplanExpires: August 2, 2013ISSN: 2070-1721 Acme Packet R. Gilman Independent S. Veikkolainen NokiaJanuary 29,May 2013 The Session Description Protocol (SDP) Alternate Connectivity (ALTC) Attributedraft-boucadair-mmusic-altc-09Abstract This document proposes a mechanismwhichthat allows the same SDP offer to carry multiple IPaddresses,addresses of different address families (e.g.,IPv4, IPv6), in the same SDP offer.IPv4 and IPv6). The proposedattributeattribute, the "altc" attribute, solves thebackward compatibilitybackward-compatibility problemwhichthat plaguedANAT (AlternativeAlternative Network AddressTypes),Types (ANAT) due toitstheir syntax. The proposed solution is applicable to scenarios where connectivity checks are not required. If connectivity checks are required,ICE (RFC 5245)Interactive Connectivity Establishment (ICE), as specified in RFC 5245, provides such a solution.Requirements Language 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].Status ofthisThis Memo ThisInternet-Draftdocument issubmitted in full conformance withnot an Internet Standards Track specification; it is published for informational purposes. This is a contribution to theprovisionsRFC Series, independently ofBCP 78any other RFC stream. The RFC Editor has chosen to publish this document at its discretion andBCP 79. Internet-Draftsmakes no statement about its value for implementation or deployment. Documents approved for publication by the RFC Editor areworking documentsnot a candidate for any level oftheInternetEngineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The listStandard; see Section 2 of RFC 5741. Information about the currentInternet- Drafts is at http://datatracker.ietf.org/drafts/current/. Internet-Drafts are draft documents valid for a maximumstatus ofsix monthsthis document, any errata, and how to provide feedback on it may beupdated, replaced, or obsoleted by other documentsobtained atany 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 August 2, 2013.http://www.rfc-editor.org/info/rfc6947. Copyright Notice Copyright (c) 2013 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 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 . . . . . . . . . . . . . . . . . . . . . . . .. 43 1.1. Overall Context . . . . . . . . . . . . . . . . . . . . .43 1.2. Purpose . . . . . . . . . . . . . . . . . . . . . . . . .54 1.3. Scope . . . . . . . . . . . . . . . . . . . . . . . . . .65 1.4. Requirements Language . . . . . . . . . . . . . . . . . . 5 2. Use Cases . . . . . . . . . . . . . . . . . . . . . . . . . .65 3. Overview of the ALTC Mechanism . . . . . . . . . . . . . . .. 76 3.1. Overview . . . . . . . . . . . . . . . . . . . . . . . .. 76 3.2. Rationale for the Chosen Syntax . . . . . . . . . . . . .87 4. Alternate Connectivity Attribute . . . . . . . . . . . . . ..8 4.1. ALTC Syntax . . . . . . . . . . . . . . . . . . . . . . . 8 4.2. Usage and Interaction . . . . . . . . . . . . . . . . . .109 4.2.1. Usage . . . . . . . . . . . . . . . . . . . . . . . .109 4.2.2. Usage of ALTC in an SDP Answer . . . . . . . . . . ..11 4.2.3. Interaction with ICE . . . . . . . . . . . . . . . ..11 4.2.4. Interaction with SDP-Cap-Neg . . . . . . . . . . . .. 1211 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . .1211 6. Security Considerations . . . . . . . . . . . . . . . . . . . 12 7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . ..12 8. References . . . . . . . . . . . . . . . . . . . . . . . . .. 1312 8.1. Normative References . . . . . . . . . . . . . . . . . .. 1312 8.2. Informative References . . . . . . . . . . . . . . . . .. 1312 Appendix A. ALTC Use Cases . . . . . . . . . . . . . . . . . . . 15 A.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . 15 A.2. Multicast Use Case . . . . . . . . . . . . . . . . . . ..16 A.3. Introducing IPv6 intoSIP-basedSIP-Based Architectures . . . . . . 17 A.3.1.AvoidAvoiding Crossing CGN Devices . . . . . . . . . . . .. .17 A.3.2. Basic Scenario for IPv6 SIP Service Delivery . . . ..17 A.3.3.AvoidAvoiding IPv4/IPv6 Interworking . . . . . . . . . . .. .18 A.3.4. DBE Bypass Procedure . . . . . . . . . . . . . . . ..20 A.3.5. Direct CommunicationsBetween IPv6-enabledbetween IPv6-Enabled User Agents . . . . . . . . . . . . . . . . . . . . . . ..22Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 231. Introduction 1.1. Overall Context Due to the IPv4 address exhaustion problem, IPv6 deployment is becoming an urgent need, along with the need to properly handle the coexistence of IPv6 andIPv4 co-existence.IPv4. The reality of IPv4-IPv6co-existencecoexistence introduces heterogeneous scenarios with combinations of IPv4 and IPv6 nodes, some of which are capable of supporting both IPv4 and IPv6 dual-stack (DS) and some of which are capable of supporting only IPv4 or only IPv6. In this context, Session Initiation Protocol(SIP [RFC3261])(SIP) [RFC3261] User Agents (UAs) need to be able to indicate their available IP capabilities in order to increase the ability to establish successful SIP sessions,and alsoto avoid invocation of adaptation functions such as Application Layer Gateways (ALGs) and IPv4-IPv6 interconnection functions (e.g., NAT64 [RFC6146]), and to avoid using private IPv4 addresses through consumer NATs orCarrier GradeCarrier-Grade NATs(CGN, [I-D.ietf-behave-lsn-requirements]).(CGNs) [RFC6888]. In the meantime, service providers are investigating scenarios to upgrade their service offering to beIPv6-capable.IPv6 capable. The current strategies involve either offering IPv6 only, forexampleexample, to mobile devices, or providing both IPv4 andIPv6IPv6, but with private IPv4 addresseswhichthat areNAT'edNATed by CGNs. In the lattercasecase, the end device may be using "normal" IPv4 and IPv6 stacks and interfaces, or it may tunnel the IPv4 packets though aDS-LiteDual-Stack Lite (DS-Lite) stack that is integrated into the host[RFC6333]; in[RFC6333]. In eithercasecase, the device has both address families available from a SIP and media perspective. Regardless of the IPv6 transition strategy being used, it is obvious that there will be a need for dual-stack SIP devices to communicate with IPv4-only legacy UAs,andIPv6-only UAs, and other dual-stack UAs. It maynot,not be possible, for example,be possiblefor a dual-stack UA to communicate with an IPv6-only UA unless the dual-stack UAhadhas a means of providing the IPv6-only UA withitsan IPv6local address for media,address, while clearly it needs to provide a legacy IPv4-only deviceits localan IPv4 address. The communication must be possible in abackwards- compatiblebackward-compatible fashion, such that IPv4-only SIP devices need not support the new mechanism to communicate with dual-stack UAs. The current means by which multiple address families can be communicated are through ANAT [RFC4091] or ICE [RFC5245]. ANAT has seriousbackwards-compatibility problemsbackward-compatibility problems, as described in [RFC4092], which effectively make it unusable, and itishas been deprecated by the IETF [RFC5245]. ICE at least allows interoperability with legacydevices, by not doingdevices. But, ICEin such cases, but itis a complicated andprocessing intensive mechanism,processing-intensive mechanism and has seen limited deployment and implementation in SIP applications. ALTC has been implemented as reported in[I-D.boucadair-pcp-nat64-experiments]; no issue has[NAT64-EXP]. No issues have been reported in that document. 1.2. Purpose This document proposes a new alternative: abackwards-compatiblebackward-compatible syntax for indicating multiple media connection addresses and ports in an SDP offer, which can immediately be selected from and used in an SDP answer. The proposed mechanism is independent of the model described in [RFC5939] and does not require implementation ofsdp-capabilities- negotiationsSDP Capability Negotiations (a.k.a., SDPCapNeg) to function. It should be noted that"backwards-compatible""backward-compatible" in this document generally refers to working with legacy IPv4-only devices. The choice has to be made, one way or the other, because to interoperate with legacy devices requires constructing SDP bodieswhichthat they would understand and support, such that they detect their local address family in the SDP connection line. It is not possible to support interworking with both legacy IPv4-only and legacy IPv6-only devices with the same SDP offer. Clearly, there are far more legacyIPv4- onlyIPv4-only devices in existence, and thus those are the ones assumed in this document. However, the syntax allows for a UA to choose which address family to bebackwards-compatiblebackward-compatible with, in case it has some means of determining it. Furthermore, even for cases where both sides support the same address family, there should be a means by which the "best" address family transport is used, based on what the UAs decide. The address familywhichthat is "best" for a particular session cannot always be known a priori. For example, in some cases the IPv4 transport may be better, even if both UAs support IPv6. The proposed solution provides the following benefits: o Allows a UA to signal more than one IP address (type) in the same SDPoffer/answer;offer. o Isbackwardsbackward compatible. No parsing or semantic errors will be experienced by a legacy UA or by intermediary SIP nodeswhichthat do not understand this newmechanism;mechanism. o Is as lightweight as possible to achieve the goal, while still allowing and interoperating with nodeswhichthat support other similar or relatedmechanisms;mechanisms. o Is easily deployable in managednetworks;networks. o Requires minimal increase of the length of the SDP offer(I.e.,(i.e., minimizes fragmentation risks). ALTC may also be useful for the multicast context (e.g., Section 3.4 of[I-D.venaas-behave-v4v6mc-framework][MULTRANS-FW] or Section 3.3 of[I-D.ietf-mboned-multrans-addr-acquisition]).[ADDR-ACQ]). More detailed information about ALTC use cases is provided in Appendix A. 1.3. Scope This document proposes an alternative scheme, as a replacement to the ANAT procedure [RFC4091], to carry several IP address types in the same SDPoffer/answeroffer while preserving backward compatibility. Whileclearlytwo UAs communicating directly at a SIP layer clearly need to be able to support the same address family for SIP itself, current SIP deployments almost always haveProxy Serversproxy servers orB2BUA'sback-to-back user agents (B2BUAs) in the SIP signaling path, which can provide the necessary interworking of the IP address family at the SIP layer (e.g., [RFC6157]). SIP-layer address family interworking is out of scope of this document. Instead, this document focuses on the problem of communicating media address family capabilities in abackwards-compatiblebackward-compatible fashion.SinceBecause media can go directly between two UAs, without a priori knowledge by theUACUser Agent Client (UAC) of which address family the far-endUASUser Agent Server (UAS) supports, it has tooffer both,offer both, in a backward-compatible fashion. 1.4. Requirements Language 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 ina backwards-compatible fashion.RFC 2119 [RFC2119]. 2. Use Cases The ALTC mechanism defined in this document isprimaryprimarily meant for managed networks. In particular, the following use cases were explicitly considered: o A dual-stack UACinitiatingthat initiates a SIP session without knowing the address family of the ultimate target UAS. o A UAreceivingthat receives a SIP session request with SDP offer and that wishes to avoid usingIPv4,IPv4 orto avoidIPv6. o An IPv6-only UA that wishes to avoid using a NAT64 [RFC6146]. o A SIP UA behind aDual-Stack LiteDS-Lite CGN [RFC6333]. o A SIPService Providerservice provider orEnterpriseenterprise domain of an IPv4-only and/or IPv6-onlyUA, whichUA that provides interworking by invoking IPv4-IPv6 mediarelays,relays and that wishes to avoid invoking such functions and to let media goend-to-endend to end as much as possible. o A SIPService Providerservice provider orEnterpriseenterprise domain of aUA, whichUA that communicates with other domains and that wishestoeither to avoid invoking IPv4-IPv6 interworking or to let media goend-to-endend to end as much as possible. o A SIPService Provider providingservice provider that provides transit peering services for SIPsessions, whichsessions that may need to modify SDP in order to provideIPv4- IPv6IPv4-IPv6 interworking, but would prefer to avoid such interworking or to avoid relaying media in general, as much as possible. o SIP sessionsusingthat use the new mechanism when crossing legacySDP-aware middleboxes whichSDP- aware middleboxes, but that may not understand this new mechanism. 3. Overview of the ALTC Mechanism 3.1. Overview The ALTC mechanism relies solely on the SDP offer/answer mechanism, with specific syntax to indicate alternative connection addresses. The basic concept is to use a new SDPattributeattribute, "altc", to indicate the IP addresses for potential alternative connection addresses. The addresswhichthat is most likely to get chosen for the session is in the normal'c='"c=" line.TypicallyTypically, in current operationalnetworksnetworks, this would be an IPv4 address. The "a=altc" lines contain the alternative addresses offered for this session. This way, a dual-stack UA might encode its IPv4 address in the "c=" line, while possibly preferring to use an IPv6 address by explicitly indicating the preference order in the corresponding "a=altc" line. One of the "a=altc" lines duplicates the address contained in the "c=" line, for reasons explained in Section3.2).3.2. The SDP answerer would indicate its chosenaddress,address by simply using that address family in the "c=" line of its response. An example of an SDP offer using this mechanism is as follows when IPv4 is considered most likely to be used for the session, but IPv6 is preferred: v=0 o=- 25678 753849 IN IP4 192.0.2.1 s= c=IN IP4 192.0.2.1 t=0 0 m=audio 12340 RTP/AVP 0 8 a=altc:1 IP6 2001:db8::1 45678 a=altc:2 IP4 192.0.2.1 12340 If IPv6waswere consideredmostmore likely to be used for the session, the SDP offer would be as follows: v=0 o=- 25678 753849 IN IP6 2001:db8::1 s= c=IN IP6 2001:db8::1 t=0 0 m=audio 45678 RTP/AVP 0 8 a=altc:1 IP6 2001:db8::1 45678 a=altc:2 IP4 192.0.2.1 12340 Since an alternative address is likely to require an alternativeTCP/ UDPTCP/UDP port number as well, the new "altc" attribute includes both an IP address and areceivetransport port number (or multiple port numbers). The ALTC mechanism does not itself support offering a different transport type (i.e., UDP vs. TCP), codec,noror any other attribute. It isonlyintended only for offering an alternative IP address and port number. 3.2. Rationale for the Chosen Syntax The use of an'a='"a=" attribute line is, according to [RFC4566], the primary means for extending SDP and tailoring it to particular applications or media. A compliant SDP parser will ignore the unsupported attribute lines. The rationale for encoding the same address and port in the "a=altc" line as in the "m=" and "c=" lines is to provide detection of legacy SDP-changing middleboxes. Such systems may change the connection address and media transport port numbers, but not support this new mechanism, and thus two UAs supporting this mechanism would try to connect to the wrong addresses. Therefore,the rules detailed inthis documentrequirerequires the SDP processor tocheck for matching altc and connection line addresses and media ports, before choosing one ofproceed to thealternatives.matching rules defined in Section 4.2.1. 4. Alternate Connectivity Attribute 4.1. ALTC Syntax Thealtc"altc" attribute adheres to the [RFC4566] "attribute" production. The ABNF syntax [RFC5234] of altc is providedbelow:below. altc-attr = "altc" ":" att-value att-value = altc-num SP addrtype SP connection-address SP port ["/" rtcp-port] altc-num = 1*DIGIT rtcp-port = port Figure 1: Connectivity Capability Attribute ABNF The meaning of the fields arelisted hereafter:as follows: o altc-num: digit to uniquely refer to an address alternative. Itmust be inindicates the preferenceorder;order, with "1"indicatesindicated the most preferred address. o addrtype: the addrtype field as defined in [RFC4566] for connection data. o connection-address: a network address as defined in [RFC4566] corresponding to the address type specified by addrtype. o port: the port number to be used, as defined in [RFC4566]. Distinct port numbers may be usedperfor each IP address type. If the specified address type does not require a port number, a value defined for that address type should be used. o rtcp-port:Includingincluding anRTCPRTP Control Protocol (RTCP) port is optional. An RTCP port may be indicated in the alternative "c=" line when the RTCP portcan notcannot be derived from the RTP port. The "altc" attribute isonlyapplicable only in an SDP offer. The "altc" attribute is a media-level-onlyattribute,attribute and MUST NOT appear at the SDP sessionlevel (sincelevel. (Because it defines a port number, it is inherently tied to the medialevel).level.) There MUST NOT be more than one "altc" attribute per addrtype within each media description. This restriction is necessaryin orderso that the addrtype of the reply may be used by the offerer to determine which alternative was accepted. The<addrtype>'s"addrtype"s of the altc MUST correspond to the<nettype>"nettype" of the current connection(c=)("c=") line. A media description MUST contain two "altc" attributes: the alternative address and an alternativeport as well asport. It must also contain an address and a portwhich "duplicates"that "duplicate" the address/port information from the current'c='"c=" and'm='"m=" lines. Each media level MUST contain at least one such duplicatealtc"altc" attribute, of the same IP address family, address, and transport port number as those in the SDP connection and media lines of its level. In particular, if a'c='"c=" line appears within a media description, theaddr-typeaddrtype andconnection-addressconnection- address from that'c='"c=" line MUST be used in the duplicate "altc" attribute for that media description. If a'c='"c=" line appears only at the session level and a given media description does not have its own connection line, then the duplicate "altc" attribute for that media description MUST be the same as the session-level address information. The "altc" attributes appearing within a media description MUST beprioritized; theprioritized. The explicit preference order is indicated in each line ("1"is used to indicateindicates the address with the highest priority). Given this rule, and the requirement that the address information provided in the "m=" line and "o=" line must be provided in an "altc" attribute as well, it is possible that theaddressaddresses in the "m=" line and "o=" line are not the preferred choice. If the addrtype of an "altc" attribute is not compatible with the transport protocol or media format specified in the media description, thataltc"altc" attribute MUST be ignored. Note that "a=altc" lines describe alternative connection addresses, NOT addresses for parallel connections. When severalaltc"altc" lines are present, establishing multiple sessionsestablishmentMUST be avoided. Only one session is to be maintained with the remote party for the associated media description.If no port number is indicated for the alternative address, the same port number is used for all address families.4.2. Usage and Interaction 4.2.1. Usage In an SDP offer/answer model, the SDP offer includes "altc" attributes to indicate alternative connection information (i.e., address type, address and portnumber(s)),numbers), including the "duplicate" connection information already identified in the'c='"c=" and'm='"m=" lines. Additional, subsequent offers MAY include "altc" attributes again, and they may change the IP address, port numbers, and order ofpreference;preference, but they MUST include a duplicate "altc" attribute for the connection and media lines in that specific subsequent offer. In other words, every offered SDP media description with an alternative address offer with an "altc" attribute has twoof them:"altc" attributes: - one duplicating the'c='"c=" and'm='"m=" line information for that mediadescription, anddescription - one for thealternative, even though thesealternative These need not be the same as the original SDP offer. The purpose of encoding a duplicate "altc" attribute is to allow receivers of the SDP offer to detect if a legacy SDP-changingmiddle boxmiddlebox has modified the'c='"c=" and/or'm='"m=" line address/port information. If the SDP answerer does not find a duplicate "altc" attribute value for which the address and portmatchexactly match those in the'c='"c=" line and'm='"m=" line, the SDP answerer MUST ignore the "altc" attributes and use the'c='"c=" and'm='"m=" offered address/ports for the entire SDP instead, as if no "altc" attributes were present. The rationale for this is that many SDP-changing middleboxes will end the media sessions if they do not detect media flowing throughthem; ifthem. If a middlebox modified the SDP addresses, media MUST be sent using the modified information. Note that for RTCP, if applicable for the given media types, each side would act as if the chosen "altc" attribute's port number was in the'm='"m=" media line. Typically, this would mean that RTCP is sent to theodd +1 of theportnumber,number equal to "RTP port + 1", unless some other attribute determines otherwise. Forexampleexample, the RTP/RTCP multiplexing mechanism defined in [RFC5761] can still be used with ALTC, such that if both sides supportmultiplexingmultiplexing, they will indicate so using the'a=rtcp-mux' attribute"a=rtcp-mux" attribute, as defined in[RFC5761];[RFC5761], but the IP connection address and port they use may be chosen using the ALTC mechanism. If the SDP offerer wishes to use the RTCP attribute defined in [RFC3605], a complication canarisearise, since it may not be clear which address choice the'a=rtcp'"a=rtcp" attribute applies to, relative to the choices offered by ALTC.TechnicallyTechnically, RFC 3605 allowsindicatingthe address for RTCP to be indicated explicitly in the'a=rtcp'"a=rtcp" attribute itself, but this is optional and rarely used. For this reason, this document recommends using'a=rtcp' attribute to bethe "a=rtcp" attribute for the address choice encoded in the "m="line,line andincludeincluding an alternate RTCP port in the'a=altc'"a=altc" attribute corresponding to the alternative address. In other words, if the'a=rtcp'"a=rtcp" attribute explicitly encodes an address in its attribute,thenthat address applies forALTCALTC, as per[RFC3605]; if[RFC3605]. If it does not, then ALTC assumes that the'a=rtcp'"a=rtcp" attribute is for the address in the "m=" line, and the alternative "altc" attributeincludeincludes an RTCP alternate port number. 4.2.2. Usage of ALTC in an SDP Answer The SDP answer SHOULD NOT contain "altc" attributes,asbecause the answer's'c='"c=" line implicitly and definitively chooses the address family from the offer and includes it in "c=" and "m=" lines of the answer. Furthermore, this avoids establishing several sessions simultaneously between the participating peers. Any solution requiring the use of ALTC in the SDP answer SHOULD document its usage, in particular how sessions are established between the participating peers. 4.2.3. Interaction with ICE Since ICE [RFC5245] also includes address and port number information in its candidate attributes, a potential problem arises: which one wins. Since ICE also includes specific ICE attributes in the SDP answer, the problem is easily avoided: if the SDP offerer supports both ALTC and ICE, it may include both sets of attributes in the same SDP offer. A legacy ICE-only answerer will simply ignore theALTC attributes,"altc" attributes and use ICE. An ALTC-only answerer will ignore the ICE attributes and reply without them. An answererwhichthat supports both MUST choose one and only one of the mechanisms to use: either ICE orALTC (unlessALTC. However, if the'm='"m=" or'c=' lines were"c=" line was changed by a middlebox,in which casethe rules for both ALTC and ICE would make the answerer revert to basic SDPsemantics).semantics. 4.2.4. Interaction with SDP-Cap-Neg The ALTC mechanism is orthogonal to SDPCapNeg [RFC5939]. If the offerer supports both ALTC and SDPCapNeg, it may offer both. 5. IANA ConsiderationsThis document requestsPer this document, the following new SDPattribute:attribute has been assigned. SDP Attribute ("att-field"): Attribute name altc Long form Alternate Connectivity Type of name att-field Type of attribute Media level only Subject to charset No Purpose SeeSection 1.2, SectionSections 1.2 and 3 Specification Section 4 The contact person for this registration is Mohamed Boucadair (email: mohamed.boucadair@orange.com; phone: +33 2 99 12 43 71). 6. Security Considerations The security implications for ALTC are effectively the same as they are for SDP in general [RFC4566]. 7. Acknowledgements Many thanks to T. Taylor, F.AndreasenAndreasen, and G. Camarillo for their review and comments. 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. [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. [RFC3605] Huitema, C., "Real Time Control Protocol (RTCP) attribute in Session Description Protocol (SDP)", RFC 3605, October 2003. [RFC4566] Handley, M., Jacobson, V., and C. Perkins, "SDP: Session Description Protocol", RFC 4566, July 2006. [RFC5234] Crocker, D. and P. Overell, "Augmented BNF for Syntax Specifications: ABNF", STD 68, RFC 5234, January 2008. [RFC5761] Perkins, C. and M. Westerlund, "Multiplexing RTP Data and Control Packets on a Single Port", RFC 5761, April 2010. 8.2. Informative References[I-D.boucadair-pcp-nat64-experiments] Abdesselam, M.,[ADDR-ACQ] Tsou, T., Clauberg, A., Boucadair, M.,Hasnaoui, A., and J. Queiroz, "PCP NAT64 Experiments", draft-boucadair-pcp-nat64-experiments-00 (work in progress), September 2012. [I-D.ietf-behave-lsn-requirements] Perreault, S., Yamagata, I., Miyakawa,Venaas, S.,Nakagawa, A.,andH. Ashida, "Common requirements for Carrier Grade NATs (CGNs)", draft-ietf-behave-lsn-requirements-10 (workQ. Sun, "Address Acquisition For Multicast Content When Source and Receiver Support Differing IP Versions", Work inprogress), December 2012. [I-D.ietf-mboned-64-multicast-address-format]Progress, January 2013. [ADDR-FORMAT] Boucadair, M., Ed., Qin, J., Lee, Y., Venaas, S., Li, X., and M. Xu, "IPv6 Multicast Address With Embedded IPv4 Multicast Address",draft-ietf-mboned-64-multicast-address-format-04 (workWork inprogress), August 2012. [I-D.ietf-mboned-multrans-addr-acquisition] Tsou, T., Clauberg, A., Boucadair, M.,Progress, April 2013. [MULTRANS-FW] Venaas, S., Li, X., andQ. Sun, "Address Acquisition ForC. Bao, "Framework for IPv4/IPv6 MulticastContent When Source and Receiver Support Differing IP Versions", draft-ietf-mboned-multrans-addr-acquisition-01 (workTranslation", Work inprogress), January 2013. [I-D.ietf-mboned-v4v6-mcast-ps]Progress, June 2011. [MULTRANS-PS] Jacquenet, C., Boucadair, M., Lee, Y., Qin, J., Tsou, T., and Q. Sun, "IPv4-IPv6 Multicast: Problem Statement and Use Cases",draft-ietf-mboned-v4v6-mcast-ps-01 (workWork inprogress), November 2012. [I-D.venaas-behave-v4v6mc-framework] Venaas, S., Li, X.,Progress, March 2013. [NAT64-EXP] Abdesselam, M., Boucadair, M., Hasnaoui, A., andC. Bao, "Framework for IPv4/IPv6 Multicast Translation", draft-venaas-behave-v4v6mc-framework-03 (workJ. Queiroz, "PCP NAT64 Experiments", Work inprogress), June 2011.Progress, September 2012. [RFC2871] Rosenberg, J. and H. Schulzrinne, "A Framework for Telephony Routing over IP", RFC 2871, June 2000. [RFC4091] Camarillo, G. and J. Rosenberg, "The Alternative Network Address Types (ANAT) Semantics for the Session Description Protocol (SDP) Grouping Framework", RFC 4091, June 2005. [RFC4092] Camarillo, G. and J. Rosenberg, "Usage of the Session Description Protocol (SDP) Alternative Network Address Types (ANAT) Semantics in the Session Initiation Protocol (SIP)", RFC 4092, June 2005. [RFC5245] Rosenberg, J., "Interactive Connectivity Establishment (ICE): A Protocol for Network Address Translator (NAT) Traversal for Offer/Answer Protocols", RFC 5245, April 2010. [RFC5853] Hautakorpi, J., Camarillo, G., Penfield, R., Hawrylyshen, A., and M. Bhatia, "Requirements from Session Initiation Protocol (SIP) Session Border Control (SBC) Deployments", RFC 5853, April 2010. [RFC5939] Andreasen, F., "Session Description Protocol (SDP) Capability Negotiation", RFC 5939, September 2010. [RFC6146] Bagnulo, M., Matthews, P., and I. van Beijnum, "Stateful NAT64: Network Address and Protocol Translation from IPv6 Clients to IPv4 Servers", RFC 6146, April 2011. [RFC6157] Camarillo, G., El Malki, K., and V. Gurbani, "IPv6 Transition in the Session Initiation Protocol (SIP)", RFC 6157, April 2011. [RFC6333] Durand, A., Droms, R., Woodyatt, J., and Y. Lee, "Dual- Stack Lite Broadband Deployments Following IPv4 Exhaustion", RFC 6333, August 2011. [RFC6406] Malas, D. and J. Livingood, "Session PEERing for Multimedia INTerconnect (SPEERMINT) Architecture", RFC 6406, November 2011. [RFC6888] Perreault, S., Yamagata, I., Miyakawa, S., Nakagawa, A., and H. Ashida, "Common Requirements for Carrier-Grade NATs (CGNs)", BCP 127, RFC 6888, April 2013. Appendix A. ALTC Use Cases A.1. Terminology The following terms areused:used when discussing the ALTC use cases: o SBE (Signaling Path Border Element) denotes a functional element, located at the boundaries of an ITAD (IP Telephony AdministrativeDomain, [RFC2871]), whichDomain) [RFC2871], that is responsible for intercepting signaling flows received fromUser AgentsUAs andrelayrelaying them to the core service platform.AAn SBE may be located at the access segment (i.e., be the service contact point forUser Agents)UAs), or be located at the interconnection with adjacent domains([RFC6406]). A[RFC6406]. An SBE controls one or more DBEs. The SBE and DBE may be located in the same device (e.g., the SBC [RFC5853]) or be separated. o DBE (Data Path Border Element) denotes a functional element, located at the boundaries of an ITAD,whichthat is responsible for intercepting media/data flows received fromUser AgentsUAs andrelayrelaying them to another DBE (or media servers, e.g., an announcement server or IVR). An example of a DBE is a media gatewayinterceptingthat intercepts RTP flows. An SBE may be located at the access segment (i.e., be the service contact point forUser Agents)UAs) or be located at the interconnection with adjacent domains ([RFC6406]). o Core service platform ("core SPF") is a macro functional block including session routing, interfaces to advancedservicesservices, and access control. Figure 2 provides an overview of the overallarchitecturearchitecture, including the SBE,DBEDBE, andCorecore service platform. +----------+ | Core SIP | +--------->| SPF |<---------+ | SIP +----------+ SIP | v v +-----------+ +-----------+ +-----+ SIP | SBE | | SBE | SIP | S |<----->| | | |<-----> | I | +-----------+ +-----------+ | P | || || | | +-----------+ +-----------+ | U | RTP | DBE | RTP | DBE | RTP | A |<----->| |<----------------->| | <-----> +-----+ +-----------+ +-----------+ SIP UA can be embedded in the CPE or in a host behind the CPE Figure 2: ServiceArchitecture:Architecture Overview A.2. Multicast Use Case Recently, a significant effort has been undertaken within the IETF to specify new mechanisms to interconnect IPv6-only hosts to IPv4-only servers (e.g., [RFC6146]). This effortcoveredexclusively covered unicast transfer mode. An ongoing initiative, calledmultrans,"multrans", has been launched to cover multicast issuesto bethat are encountered during IPv6 transition. The overall problem statement is documented in[I-D.ietf-mboned-v4v6-mcast-ps].[MULTRANS-PS]. A particular issue encountered in the context of IPv4/IPv6co- existencecoexistence and IPv6 transition of multicast services is the discovery of the multicast group and source (refer to Section 3.4 of[I-D.ietf-mboned-v4v6-mcast-ps]): 1. An[MULTRANS-PS]): o For an IPv6-only receiver requesting multicast content generated by an IPv4-only source:(1.1)* An ALG is required to helpanthe IPv6 receivertoselect the appropriate IP address when only the IPv4 address is advertised (e.g., usingSDP); otherwise theSDP). Otherwise, access to the IPv4 multicast contentcan notcannot be offered to the IPv6 receiver. The ALG may be located downstream of the receiver. As such, the ALG does not know in advance whether the receiver is dual-stack or IPv6-only. The ALG may be tuned to insert both the original IPv4 address and the corresponding IPv6 multicast addressusingusing, forinstanceinstance, the ALTC SDP attribute.(1.2) In order to* To avoid involving an ALG in the path, anIPv4- onlyIPv4-only source can advertise both its IPv4 address andIPv4- embeddedits IPv4-embedded IPv6 multicast address[I-D.ietf-mboned-64-multicast-address-format] using[ADDR-FORMAT] using, forinstanceinstance, the ALTC SDPattribute. 2. Aattribute. o For a dual-stack source sending its multicast content over IPv4 andIPv6:IPv6, both IPv4 and IPv6 addresses need to be inserted in the SDP part. A means(e.g,(e.g., ALTC) is needed for this purpose. A.3. Introducing IPv6 intoSIP-basedSIP-Based Architectures A.3.1.AvoidAvoiding Crossing CGN Devices Some service providers are in the process of enabling DS-Lite [RFC6333] as a means to continue delivering IPv4 services to their customers. To avoiding crossing four levels of NAT whenplacingestablishing a media session(2 NAT(two NATs in the DS-LiteAFTR + 2 NATAddress Family Transition Router (AFTR) and two NATs in the DBE), it is recommended to enable IPv6 functions in some SBEs/DBEs.ThereforeThen, DS-Lite AFTRswon'twill not be crossed for DS-Lite serviced customers if their UA is IPv6-enabled: o For a SIP UA embedded in the CPE, this is easy to implement since the SIP UA [RFC3261] can be tuned to behave as an IPv6-only UA when DS-Lite is enabled. No ALTC is required forthatthis use case. oBut forFor SIPUser AgentsUAs located behind the CPE, a solution to indicate both IPv4 and IPv6 (e.g., ALTC) is required in order to avoid crossing the DS-Lite CGN. A.3.2. Basic Scenario for IPv6 SIP Service Delivery A basic solution to deliver SIP-based services using an IPv4-only core service platform to an IPv6-enabled UA is toenabledenable the IPv4/IPv6 interworking function in the SBE/DBE. Signaling and media between two SBEs and DBEs is maintained over IPv4. IPv6 is used between anIPv6- enabledIPv6-enabled UA andaan SBE/DBE. Figure 3 shows the results of session establishment between UAs. In this scenario, the IPv4/IPv6 interworking function is invoked even when both involved UAs are IPv6-enabled. +----------+ | Core SIP | +--->|SPF (IPv4)|<---+ IPv4 SIP | +----------+ |IPv4 SIP v v +-----------+ +-----------+ | SBE | | SBE | SIP +------->|IPv4/v6 IWF| | |<-------+ |IPv6 +-----------+ +-----------+ IPv4| | SIP SIP| +----+ | +-----------+ +-----------+ | +----+ |IPv6|-+IPv6 RTP| DBE |IPv4 RTP| DBE |IPv4 RTP+-|IPv4| | UA |<-------->|IPv4/v6 IWF|<------>| |<-------->| UA | +----+ +-----------+ +-----------+ +----+ +----------+ | Core SIP | +--->|SPF (IPv4)|<---+ IPv4 SIP | +----------+ |IPv4 SIP v v +-----------+ +-----------+ | SBE | | SBE | SIP +------->|IPv4/v6 IWF| |IPv4/v6 IWF|<-------+ |IPv6 +-----------+ +-----------+ IPv6| | SIP SIP| +----+ | +-----------+ +-----------+ | +----+ |IPv6|-+IPv6 RTP| DBE |IPv4 RTP| DBE |IPv6 RTP+-|IPv6| | UA |<-------->|IPv4/v6 IWF|<------>|IPv4/v6 IWF|<-------->| UA | +----+ +-----------+ +-----------+ +----+ Figure 3: Basicscenario SolutionsScenario It may be valuable for service providers to consider solutions that avoid redundant IPv4/IPv6NATNATs and that avoid involving severalDBEs may be valuable to consider by service providers.DBEs. A.3.3.AvoidAvoiding IPv4/IPv6 InterworkingFor servicesA solution to indicate both IPv4 and IPv4 addresses is required for service providerswanting:that want the following: 1.MeansA means to promote the invocation of IPv6 transfer capabilities that can beenabledenabled, while no parsingerror is to beerrors are experienced by core servicenodeslegacynodesnodes. 2.OptimizeTo optimize the cost related to IPv4-IPv6 translationlicenseslicenses. 3.ReduceTo reduce the dual-stacklifetimelifetime. 4.MaintainTo maintain an IPv4-onlycorecore. 5.OnlyTo have a set ofSBE/DBESBEs/DBEs that areIPv6-enabled A solution to indicate both IPv4 and IPv6 addresses is required.IPv6-enabled. This section provides an overview ofthis procedure:the procedure to avoid IPv4/IPv6 interworking. Whenaan SBE receives an INVITE, it instantiates in its DBE anIPv6- IPv6IPv6-IPv6 context and an IPv6-IPv4 context. Both an IPv6 address and an IPv4 address arereturnedreturned, together with other information such as port numbers. The SBE builds an SDPofferoffer, including both the IPv4 andIPv6- relatedIPv6-related information usingALTCthe "altc" attribute. IPv6 is indicated as the preferred connectivitytype.type; see Figure 4. o=- 25678 753849 IN IP4 192.0.2.2 c=IN IP4 192.0.2.2 m=audio 12340 RTP/AVP 0 8 a=altc:1 IP6 2001:db8::2 6000 a=altc:2 IP4 192.0.2.2 12340 Figure 4: SDPoffer updatedOffer Updated by the SBE The request is then forwarded to the coreSPF whichSPF, which, inits turnturn, forwardsthe requestsit to the terminating SBE. o If this SBE is a legacy one, then it will ignoreALTC"altc" attributes and use"c"the "c=" line. o If the terminating SBE is IPv6-enabled: * If the called UA isIPv4-only,IPv4 only, then an IPv6-IPv4 context is created in the corresponding DBE. * If the called UA is IPv6-enabled, then an IPv6-IPv6 context is created in the corresponding DBE. Figure 5 shows theresultresults of the procedure when placing a session between an IPv4 and IPv6UAsUAs, while Figure 6 shows the results of establishing a session between two IPv6-enabled UAs. The result is still notoptimaoptimal since redundant NAT66 is required (Appendix A.3.4). +----------+ | Core SIP | +--->|SPF (IPv4)|<---+ IPv4 SIP | +----------+ |IPv4 SIP v v +-----------+ +-----------+ | SBE | | SBE | SIP +------->|IPv4/v6 IWF| |IPv4/v6 IWF|<-------+ |IPv6 +-----------+ +-----------+ IPv4| | SIP SIP| +----+ | +-----------+ +-----------+ | +----+ |IPv6|-+IPv6 RTP| DBE |IPv6 RTP| DBE |IPv4 RTP+-|IPv4| | UA |<-------->| NAT66 |<------>|IPv4/v6 IWF|<-------->| UA | +----+ +-----------+ +-----------+ +----+ 2001:db8::2 Figure 5: SessionestablishementEstablishment between IPv4 and IPv6 UAs +----------+ | Core SIP | +--->|SPF (IPv4)|<---+ IPv4 SIP | +----------+ |IPv4 SIP v v +-----------+ +-----------+ | SBE | | SBE | SIP +------->|IPv4/v6 IWF| |IPv4/v6 IWF|<-------+ |IPv6 +-----------+ +-----------+ IPv6| | SIP SIP| +----+ | +-----------+ +-----------+ | +----+ |IPv6|-+IPv6 RTP| DBE |IPv6 RTP| DBE |IPv6 RTP+-|IPv6| | UA |<-------->| NAT66 |<------>| NAT66 |<-------->| UA | +----+ +-----------+ +-----------+ +----+ 2001:db8::2 Figure 6: SessionestablishementEstablishment between IPv6 UAs A.3.4. DBE Bypass Procedure For service providers wanting to involve only one DBE in the mediapath,path when not allSBE/DBESBEs/DBEs and UAs are IPv6-enabled, a means to indicate both IPv4 and IPv6 addresses without inducing session failures is required.Below is proposedThis section proposes an exampleof a proposedprocedure usingALTCthe "altc" attribute. When the originating SBE receives an INVITE from an IPv6-enabled UA, it instantiates in its DBE an IPv6-IPv6 context and an IPv6-IPv4 context. Both an IPv6 address and an IPv4 address arereturnedreturned, together with otherinformationinformation, such as port numbers. The SBE builds an SDPofferoffer, including both IPv4 and IPv6-related information usingALTCthe "altc" attribute (Figure 7). IPv6 is indicated as preferred connectivity type. o=- 25678 753849 IN IP4 192.0.2.2 c=IN IP4 192.0.2.2 m=audio 12340 RTP/AVP 0 8 a=altc:1 IP6 2001:db8::2 6000 a=altc:2 IP4 192.0.2.2 12340 Figure 7: SDPoffer updatedOffer Updated by the SBE The request is then forwarded to the coreSPF whichSPF, which, inits turnturn, forwardsthe requestsit to the terminating SBE: o If the destination UA is IPv6 or reachable with a public IPv4 address, the SBEs only forwards the request without altering the SDP offer. No parsing error is experienced by core service nodes since ALTC is backward compatible. o If the terminating SBE does not support ALTC, it will ignore this attributean usesand use the legacy procedure. As a consequence, only one DBE is maintained in the path when one of the involved parties is IPv6-enabled. Figure 8 shows the overall procedure when the involved UAs are IPv6-enabled. +----------+ | Core SIP | +--->|SPF (IPv4)|<---+ IPv4 SIP | +----------+ |IPv4 SIP v v +-----------+ +-----------+ | SBE | | SBE | SIP +------->|IPv4/v6 IWF| |IPv4/v6 IWF|<-------+ |IPv6 +-----------+ +-----------+ IPv6| | SIP SIP| +----+ | +-----------+ | +----+ |IPv6|-+IPv6 RTP| DBE | IPv6 RTP +-|IPv6| | UA |<-------->| NAT66 |<----------------------------->| UA | +----+ +-----------+ +----+ 2001:db8::1 2001:db8::2 Figure 8: DBE Bypass Overview The main advantages of suchsolutionsa solution are as follows: o DBE resources areoptimizedoptimized. o No redundant NAT is maintained in the path when IPv6-enabled UAs areinvolvedinvolved. o End-to-end delay isoptimizedoptimized. o The robustness of the service is optimized since the delivery of the service relies on fewernodesnodes. o The signaling path isalsoalos optimized since no communication between the SBE(through SPDF in TISPAN/IMS context)and DBE at the terminating side is required for some sessions. (That communication would be through the Service Policy Decision Function (SPDF) in a Telecoms and Internet converged Services and Protocols for Advanced Networks/IP Multimedia Subsystem (TISPAN/IMS) context.) A.3.5. Direct CommunicationsBetween IPv6-enabledbetween IPv6-Enabled User Agents For service providers wanting to allow direct IPv6 communications between IPv6-enabled UAs, when not allSBE/DBESBEs/DBEs andUAUAs areIPv6- enabled,IPv6-enabled, a means to indicate both the IPv4 and IPv6 addresses without inducing session failures is required. Below isproposedan example of a proposed procedure usingALTCthe "altc" attribute. At the SBE originating side, when the SBE receives an INVITE from the calling IPv6 UA (Figure 9), it uses ALTC to indicate two IP addresses: 1. An IPv4 address belonging to its controlledDBEDBE. 2. The same IPv6 address and port as received in the initial offer made by the callingIPv6IPv6. Figure 9 shows an excerpted example of the SDP offer of the calling UA, and Figure 10 shows anexcerptexcerpted example of the updated SDP offer generated by the originating SBE. o=- 25678 753849 IN IP6 2001:db8::1 c=IN IP6 2001:db8::1 m=audio 6000 RTP/AVP 0 8 Figure 9: SDPofferOffer of thecallingCalling UA o=- 25678 753849 IN IP4 192.0.2.2 c=IN IP4 192.0.2.2 m=audio 12340 RTP/AVP 0 8 a=altc:1 IP6 2001:db8::1 6000 a=altc:2 IP4 192.0.2.2 12340 Figure 10: SDPoffer updatedOffer Updated by the SBE The INVITE message will be routed appropriately to the destination SBE: 1. If the SBE is a legacy device (i.e.,IPv4-only);IPv4-only), it will ignore IPv6 addresses andcontactswill contact its DBE to instantiate an IPv4-IPv4 context. 2. If the SBE is IPv6-enabled, it will onlyforwardsforward the INVITE to the address of contact of the called party:A.a. If the called party is IPv6-enabled, the communication will be placed using IPv6. Assuchsuch, no DBE is involved in the datapathpath, as illustrated in Figure 11.B. If not,b. Otherwise, IPv4 will be used between the originating DBE and the called UA. +----------+ | Core SIP | +--->|SPF (IPv4)|<---+ IPv4 SIP | +----------+ |IPv4 SIP v v +-----------+ +-----------+ | SBE | | SBE | SIP +------->|IPv4/v6 IWF| |IPv4/v6 IWF|<-------+ |IPv6 +-----------+ +-----------+ IPv6| | SIP SIP| +----+ | | +----+ |IPv6|-+ IPv6 RTP +-|IPv6| | UA |<---------------------------------------------------->| UA | +----+ +----+ 2001:db8::1 Figure 11: Direct IPv6communicationCommunication Authors' Addresses Mohamed Boucadair France Telecom Rennes 35000 FranceEmail:EMail: mohamed.boucadair@orange.com Hadriel Kaplan Acme Packet 71 Third Ave. Burlington, MA 01803 USAEmail:EMail: hkaplan@acmepacket.com Robert R Gilman IndependentEmail:EMail: bob_gilman@comcast.netURI:Simo Veikkolainen NokiaEmail:EMail: Simo.Veikkolainen@nokia.comURI: