It represents the consensus of the IETF community. All rights reserved. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. However, this support does not fully extend to the highly hybridized environments that are characteristic of the transitional migratory phase from IPv4 to IPv6 networks.
|Published (Last):||28 June 2007|
|PDF File Size:||8.95 Mb|
|ePub File Size:||16.25 Mb|
|Price:||Free* [*Free Regsitration Required]|
It represents the consensus of the IETF community. All rights reserved. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. However, this support does not fully extend to the highly hybridized environments that are characteristic of the transitional migratory phase from IPv4 to IPv6 networks. During this phase, many server and client implementations run on dual-stack hosts.
In such environments, a dual-stack host will likely suffer greater connection delay, and by extension an inferior user experience, than an IPv4-only host. The need to remedy this diminished performance of dual-stack hosts led to the development of the "Happy Eyeballs" [ RFC ] algorithm, which has since been implemented in many protocols and applications.
Happy Eyeballs will provide enhanced performance, and consequently enhanced user experience, in highly hybridized dual- stack SIP networks. The procedures described herein are such that a dual-stack client should look up both A and AAAA records in DNS and then select the best way to set up a network flow. The details of how the latter is done is considered out of scope for this document.
See the Happy Eyeballs algorithm and implementation and design considerations in RFC [ RFC ] for more information about issues with setting up dual-stack network flows.
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.
While this document focuses on the dual-stack situation described in RFC and other documents, concerning the migration from an IPv4-only network to a network supporting both IPv4 and IPv6, the techniques described can be used in other situations.
Possible situations include when a device has multiple interfaces with distinct addressing characteristics and when additional IP address families are created in the future.
This document uses the general term "dual-stack" to include all situations where the client has access to multiple communication methods that have distinct addressing characteristics. The term "address records" means the DNS records that translate a domain name into addresses within the address family or families that the entity supports as A records provide IPv4 addresses and AAAA records provide IPv6 addresses , regardless of whether the address family was defined before or after this document was approved.
This specification introduces two normative DNS lookup procedures. The piece relevant to this discussion is:. The result will be a list of IP addresses, each of which can be contacted at the specific port from the URI and transport protocol determined previously. Section 4. The result will be a list of IP addresses, each of which can be contacted using the transport protocol determined previously, at the default port for that transport. Processing then proceeds as described above for an explicit port once the A or AAAA records have been looked up.
Happy Eyeballs [ RFC ] documents that looking up the "A or AAAA record" is not an effective practice for dual-stack clients and that it can add significant connection delay and greatly degrade user experience. Therefore, this document makes the following normative addendum to the DNS lookup procedures in Section 4. The dual-stack client SHOULD look up address records for all address families that it supports for the domain name and add the resulting addresses to the list of IP addresses to be contacted.
A client MUST be prepared for the existence of DNS resource records containing addresses in families that it does not support; if such records may be returned by the client's DNS queries, such records MUST be ignored as unusable and the supported addresses used as specified herein.
This is because the client can initiate two TCP connections to the server, one using IPv4 and one using IPv6, and then use the connection that completes first. Unfortunately, in common SIP situations, it is not possible to "race" simultaneous request attempts using two address families.
If the SIP requests are transmitted as single UDP packets, sending two copies of the request to two different addresses risks having two copies of the request propagating through the SIP network at the same time.
To convey information on why the request was rejected to the originator, the client can include a descriptive reason phrase, for example, "Merged Request". However, issuing the response is not sufficient to prevent user-visible differences in behavior. A proxy that is upstream of the second request to arrive at the client may almost immediately!
In this common scenario, it is often necessary for a dual-stack client to indicate a preference for either IPv4 or IPv6. A server that wishes to do this can use the lowest SRV priority to publish host names that only resolve in IPv6 and the next priority with host names that resolve in both address families. Note that host names that have addresses in only one address family are discouraged by [ RFC ].
Such special-purpose host names SHOULD be used only as described in this section, as targets of SRV records for an aggregate host name, where the aggregate host name ultimately resolves to addresses in all families supported by the client.
Section 5 of [ RFC ] specifies that the addresses from the address records for a single target DNS name for a server's DNS name must be contacted in the order specified by the source and destination address selection algorithms defined in [ RFC ]. Thus, if SRV lookup on the server's DNS name is successful, the major ordering of the complete list of destination addresses is determined by the priority and weight fields of the SRV records as specified in [ RFC ] , and the minor ordering among the destinations derived from the "target" field of a single SRV record is determined by [ RFC ].
For example, consider a server with DNS name example. The relevant SRV records for example. The processing of [ RFC ] results in this ordered list of target domain names:. In particular, the destination addresses derived from sip This would be true even if the two SRV records had the same priority and were randomly ordered based on their weights, as the address records of two target DNS names are never interleaved.
Neither of these changes introduce any new security considerations because it has always been assumed that a client desiring to send to a URI may contact any of its targets that are listed in DNS. Adam Roach devised the example in Section 4. Text version. Johansson Edvina AB G. Salgueiro Cisco Systems V. Worley, Ed. Ariadne September Table of Contents 1. Clarification of Interaction with RFC Security Considerations. Normative References.
Informative References. The processing of [ RFC ] results in this ordered list of target domain names: sip References 6. Authors' Addresses Olle E.
Session Initiation Protocol (SIP) industry standards compliance
SIP and Open Standards
Locating Session Initiation Protocol (SIP) Servers
Netzarchitekturen mit SIP