Internet Engineering Task Force (IETF) H. Kaplan
Request for Comments: 7332 Oracle
Category: Standards Track V. Pascual
ISSN: 2070-1721 Quobis
August 2014
Loop Detection Mechanisms for Session Initiation Protocol (SIP) Back-to-Back User Agents (B2BUAs)
Kaplan & Pascual Standards Track [Page 1]
RFC 7332 Loop Detection for B2BUAs August 2014
Table of Contents
1. Introduction
SIP provides a means of preventing infinite request forwarding loops in [RFC3261], and a means of mitigating parallel forking amplification floods in [RFC5393]. Neither document normatively defines specific behavior for B2BUAs, however.
2. Conventions
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 BCP 14, RFC 2119 [RFC2119].
Kaplan & Pascual Standards Track [Page 2]
RFC 7332 Loop Detection for B2BUAs August 2014 3. BackgroundWithin the context of B2BUAs, the scope of the SIP protocol ends at the User Agent Server (UAS) side of the B2BUA, and a new one begins on the UAC side. A B2BUA is thus capable of choosing what it wishes to do on its UAC side independently of its UAS side, and still remains compliant with [RFC3261] and its extensions. For example, any B2BUA type defined in [RFC7092] other than Proxy-B2BUA may create the SIP request on its UAC side without copying any of the Via header field values received on its UAS side. Indeed there are valid reasons for it to do so; however, this prevents the Via-based loop- detection mechanism defined in [RFC3261] and updated by [RFC5393] from detecting SIP request loops any earlier than by reaching a Max- Forwards limit.
4. B2BUA Loop-Detection Behavior
It is RECOMMENDED that B2BUAs implement the loop-detection mechanism for the Via header field, as defined for a proxy in [RFC5393].
Kaplan & Pascual Standards Track [Page 3]
RFC 7332 Loop Detection for B2BUAs August 2014 5. B2BUA Max-Forwards BehaviorThis section applies for dialog-forming and out-of-dialog SIP requests. B2BUAs MAY perform the same actions for in-dialog requests, but doing so may cause issues with devices that set Max- Forwards values based upon the number of received Via or Record-Route headers.
6. B2BUA Max-Breadth Behavior
All B2BUA types MUST copy the received Max-Breadth header field from the received SIP request on their UAS side, to any request(s) they generate on their UAC side, as if they were a proxy following the requirements described in [RFC5393].
7. Security Considerations
The security implications for parallel forking amplification are documented in Section 7 of [RFC5393]. This document does not introduce any additional issues beyond those discussed in [RFC5393].
Kaplan & Pascual Standards Track [Page 4]
RFC 7332 Loop Detection for B2BUAs August 2014 8. AcknowledgmentsThanks to Brett Tate (Broadsoft), Andrew Hutton (Unify), and Anton Roman (Quobis) for their review of the document.
9. References 9.1. Normative References[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
9.2. Informative References
[RFC7092] Kaplan, H. and V. Pascual, "A Taxonomy of Session