SIPPING Working Group Internet Draft J. Mulahusic H. Persson Expires: August 2003 Telia February 2003 SIP Issues in Dual-stack Environments draft-persson-sipping-sip-issues-dual-stack-00.txt Status of this Memo This document is an Internet-Draft and is in full conformance with all provisions of Section 10 of RFC2026 [i]. 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. Copyright Notice Copyright (C) The Internet Society (2003). All Rights Reserved. Abstract The advent of IPv6 in addition to IPv4 makes hosts and servers dual- stack. SIP communications can be used in both environments but there is little understanding what will happen if some nodes are dual-stack while others, presently the majority, is IPv4 only enabled. This document describes some scenarios and associated issues when dual- stack users and servers try to communicate with IPv4 only hosts using SIP. It is not evident that interoperability is achieved, and if that is not the case, this would severely limit the usability of both SIP and IPv6. 1. Introduction Mulahusic & Persson Expires - August 2003 [Page 1] SIP Issues in Dual-stack Environments February 2003 Currently, the vast majority of the Internet hosts are IPv4-only. As the IPv6 adoption on the Internet is growing, more and more hosts are going to be dual-stack enabled, i.e. they will support both IPv4 and IPv6. A relatively easy step to make services available to all clients regardless of which network protocol they are utilizing (IPv4-only or dual-stack clients) is to have servers understand both IP versions, i.e. have servers be dual-stack. Note that making servers available over both network protocols will still not solve the NAT-related end-to-end issues, as some clients may still be located behind NAT boxes. The SIP communication between IPv4-only hosts and dual-stack enabled hosts, but which is bypassing dual-stack enabled servers, can in some perfectly regular cases according to SIP operation, introduce failure modes not described in the SIP standard [RFC3261]. This may lead to inability to initiate and set-up sessions between pairs of hosts, which in practice should be possible since the hosts support same IP versions. One of the basic presumptions made here is that IPv6 is being gradually deployed in an IPv4 environment by upgrading existing IPv4 nodes to dual-stack or deploying new dual-stack nodes. Accordingly, IPv4 servers have been made available to dual-stack clients by being upgraded to dual-stack servers. However, there may exist a number of clients that cannot be upgraded to dual-stack and will thus not be able to support the new IP protocol. Deploying IPv6-only clients and SIP communication between IPv4-only and IPv6-only clients has not been considered as interesting and has not been analyzed in this document. Perhaps a more interesting case for the nearer future would be to consider dual-stack SIP servers and single-stack (IPv4-only) SIP servers and scenarios derived from this case. However, the scenarios described here are felt to be more general and the case with single- stack SIP servers is considered to be a sub-set of the more general scenario cases described in this document. The inability to initiate communication between the hosts supporting several IP versions can have two causes. Either the host initiating the session can not in advance find out what IP version a peer on the other end is supporting or the inability of the other side to unambiguously signal that the IP version chosen by the host initiating the session is not supported by the target host. The inability to in advance find out what IP version(s) the target host is supporting cannot be done as this information is only known to, possibly, the SIP server with which the target host has registered or, usually the case, the client itself. The SIP does not have any mechanism defined to acquire such information in advance. Mulahusic & Persson Expires - August 2003 [Page 2] SIP Issues in Dual-stack Environments February 2003 There exist a number of final responses that might be used to signal that the target client do not support the IP version chosen by the initiating host, but none of the available responses are felt to unambiguously describe the failure reason. The purpose of this document is to highlight the issue when dual- stack hosts initiate SIP sessions towards IPv4-only hosts. Specifying mechanisms to cope with these events would greatly increase the interoperability between hosts/networks of dual-stack type and IPv4- only hosts/networks. 2. Scenario I, First try IPv6 and if error try IPv4 This is scenario when both users that wish to communicate are located behind dual-stack SIP servers. The host initiating the session is registered with its SIP server with both IPv4 and IPv6 addresses. The target user is on the other hand IPv4-only and is therefore registered only with its IPv4 address, even though the SIP server it is registered with is dual-stack. When the originating host initiates a session it will, perhaps due to local policy or some other valid reason, choose IPv6 as the default network protocol to send initial INVITE to the first hop SIP server which is in this case dual-stack. Choosing IPv6 as the default network protocol can mean that the contact address in the SIP header will be an IPv6 address. The SIP server will, after elsewhere defined SIP mechanisms [RFC3261], forward the request to the next hop SIP server, which is again dual-stack in this case. When finally, the request reaches SIP server of the destination host, the contact address in the request may be the IPv6 address of the host originating the request. The target hostÆs SIP server will be able to process and understand the request, according to the SIP procedures described elsewhere [RFC3261], since this server is also a dual-stack server. However, the target SIP server may or may not be able to discover that the request contains IPv6 addresses, which the target host may not understand. If the server is able to find out that the request cannot be understood by the target host, e.g. the target host has only registered with an IPv4 address; the server may choose to reply with some type of response to the originating host. Likewise, the server may choose to forward the message and let the target host deal with the request. If the target SIP server has chosen to respond with a final response, it will respond to the originating host to try again with another Mulahusic & Persson Expires - August 2003 [Page 3] SIP Issues in Dual-stack Environments February 2003 version of the network protocol as this one is not supported by the target host. example1.com . . . example2.com . proxy proxy . . dual-stack dual-stack . Alice's . . . . . . . . . . . . . . . . . . . . Bob's softphone SIP Phone dual-stack IPv4-only | | | | | INVITE (IPv6) | | | |--------------->| INVITE (IPv6) | | | 100 Trying |--------------->| | |<---------------|Error Try (IPv4)| | | Error Try(IPv4)|<-------------- | | |<---------------| | | | INVITE (IPv4) | | | |--------------->| INVITE (IPv4) | | | 100 Trying |--------------->| INVITE (IPv4) | |<---------------| 100 Trying |--------------->| | |<---------------| 180 Ringing | | | 180 Ringing |<---------------| | |<---------------| | . . . Figure 1: Scenario I setup example Figure 1 illustrates the example when a dual-stack host is initiating a SIP session towards an IPv4-only host. Since proxy servers involved in the communication are dual-stack, the SIP signaling will reach the last proxy server as it is the only server, except the target host itself, that can tell which IP version the target host is using. Similarly would happen if the last hop proxy server forwarded request to the target host and had the target host itself handle the request and found an error. 2.1 Analysis of final responses This is a short analysis of available final responses and which of these could be used to inform originating client that the target host cannot be contacted using the IP version in the request. The server should however signal in the response that the client could be reached using alternative IP version. Redirection 3XX Redirection 3XX type responses seem to have what is needed to inform the originating host that the target host is not reachable at that Mulahusic & Persson Expires - August 2003 [Page 4] SIP Issues in Dual-stack Environments February 2003 address and what address should alternatively be probed. However, there might exist some issues with 3XX responses as different IP versions are being mixed. ô301 Moved Permanentlyö is probably too strong to signal back to the originating host as the client may register with IPv6 address at some later point in time. ô302 Moved Temporarilyö is quite close to what is being looked for in this case. The alternative IPv4 address of the client where it can be reached is signaled back to the originating host informing the originating host to use alternative address and protocol. Again, the issue is that the server may not be able to find out that the IP version used in the request is not supported by the target host. ô380 Alternative Serviceö could be used if ôserviceö also includes network protocols. Even this response has the same issue as previous one, i.e. how does the server knows that there might be a problem with the IP version? Request Failure 4XX The nearest one when analyzing 4XX final responses is probably the ô480 Temporarily unavailableö, but 480 means that the calleeÆs end system has been successfully contacted which is not true in this case. 480 also means that the proxy recognizes the user, but does not have a valid forwarding location, which also is not completely true. Server Failure 5XX Can this type of responses be used as this is not exactly a server error? ô505 Version Not Supportedö is really close, but this is only about SIP version, but not IP version? 2.2 Analysis of Warnings The Warning header field described in [RFC3261] have the right semantics to signal this types of errors. However, as defined today, available warnings are closely tied to signaling SDP related errors and not general SIP errors caused by mismatch in network protocols between peers. 3. Scenario II, Try IPv4 and IPv6 simultaneously Scenario II has the same presumptions as the first one. A dual-stack host tries to set up a session with an IPv4-only host. The SIP signaling is traversing dual-stack SIP servers. Mulahusic & Persson Expires - August 2003 [Page 5] SIP Issues in Dual-stack Environments February 2003 In Scenario II, instead of first sending IPv6 request and waiting for response before eventually sending out an IPv4 response, the host sends both requests simultaneously. When the first response is received, it is the one used to set-up the session. One issue with Scenario II is the handling of simultaneous requests if the target host also is a dual-stack host. The target host will somehow have to recognize that the requests are actually for the same session except that they have been sent utilizing different IP transports. Is it sufficient if call-idÆs are the same for both requests? What will happen with the request that is not accepted? 4. Conclusions As shown in the two examples above, there may exist issues with operation of SIP in dual-stack environments. As dual-stack hosts have been deployed on the Internet for some time now, and as more are to be deployed in the future, it might be useful to clarify how SIP is meant to operate in such environments in order to avoid unexpected interoperability problems. The scenarios illustrated above are should not be seen as a complete list of all cases with interoperability issues. There may exist other and more complex issues not described here. The scenarios above are only two basic cases described with purpose to show that there exist cases where interoperability may be an issue. If found necessary, this document can provide a basis for further investigation of SIP issues in dual-stack environments and in making a more thoroughly list of scenario of interest to consider when finding a solution. Such a work would eventually lead to providing clarifications for implementers and networks administrators about what to consider when implementing and deploying SIP and SIP applications to be used in dual-stack environments. Security Considerations Since the purpose of this document is to only highlight some of the existing issues with previously defined standards, the document does not introduce any new security threats. References [RFC3261] Rosenberg, J., et.al., öSIP: Session Initiation Protocolö, RFC 3261, June 2002. Mulahusic & Persson Expires - August 2003 [Page 6] SIP Issues in Dual-stack Environments February 2003 Authors' Addresses Jasminko Mulahusic Telia Vitsandsgatan 9 123 86 Farsta Sweden Phone: +46 8 713 82 94 Email: Jasminko.W.Mulahusic@telia.se H…kan Persson Telia Vitsandsgatan 9 123 86 Farsta Sweden Phone: +46 8 713 82 33 Email: Hakan.N.Persson@telia.se Mulahusic & Persson Expires - August 2003 [Page 7] SIP Issues in Dual-stack Environments February 2003 Intellectual Property Statement The IETF takes no position regarding the validity or scope of any intellectual property or other rights that might be claimed to pertain to the implementation or use of the technology described in this document or the extent to which any license under such rights might or might not be available; neither does it represent that it has made any effort to identify any such rights. Information on the IETF's procedures with respect to rights in standards-track and standards-related documentation can be found in BCP-11. Copies of claims of rights made available for publication and any assurances of licenses to be made available, or the result of an attempt made to obtain a general license or permission for the use of such proprietary rights by implementors or users of this specification can be obtained from the IETF Secretariat. The IETF invites any interested party to bring to its attention any copyrights, patents or patent applications, or other proprietary rights which may cover technology that may be required to practice this standard. Please address the information to the IETF Executive Director. Full Copyright Statement Copyright (C) The Internet Society (2003). All Rights Reserved. This document and translations of it may be copied and furnished to others, and derivative works that comment on or otherwise explain it or assist in its implementation may be prepared, copied, published and distributed, in whole or in part, without restriction of any kind, provided that the above copyright notice and this paragraph are included on all such copies and derivative works. However, this document itself may not be modified in any way, such as by removing the copyright notice or references to the Internet Society or other Internet organizations, except as needed for the purpose of developing Internet standards in which case the procedures for copyrights defined in the Internet Standards process must be Mulahusic & Persson Expires - August 2003 [Page 8] SIP Issues in Dual-stack Environments February 2003 followed, or as required to translate it into languages other than English. The limited permissions granted above are perpetual and will not be revoked by the Internet Society or its successors or assignees. This document and the information contained herein is provided on an "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Acknowledgments Funding for the RFC Editor function is currently provided by the Internet Society. Mulahusic & Persson Expires - August 2003 [Page 9]