Internet DRAFT - draft-ietf-straw-sip-traceroute
draft-ietf-straw-sip-traceroute
STRAW Working Group H. Kaplan
Internet Draft Oracle
Intended status: Standards Track July 10, 2014
Expires: January 10, 2015
A Media-based Traceroute Function for
the Session Initiation Protocol (SIP)
draft-ietf-straw-sip-traceroute-03
Abstract
SIP already provides the ability to perform hop-by-hop traceroute
for SIP messages using the Max-Forwards header field to determine
the reachability path of requests to a target. A mechanism for
media-loopback calls has also been defined separately, which enables
test calls to be generated that result in media being looped back to
the originator. This document describes a means of performing hop-
by-hop traceroute-style test calls using the media-loopback
mechanism to test the media path when SIP sessions go through media-
relaying B2BUAs.
Status of this Memo
This Internet-Draft is submitted to IETF in full conformance with
the provisions of BCP 78 and BCP 79.
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.
This Internet-Draft will expire on January 10, 2015.
Kaplan Expires January 2015 [Page 1]
Internet-Draft Media-Traceroute for SIP July 2014
Copyright Notice
Copyright (c) 2014 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................................................2
2. Terminology.................................................3
3. The SIP Traceroute Mechanism................................4
3.1. Processing a Received Max-Forwards Header Field........4
3.2. Answering the INVITE...................................5
4. Security Considerations.....................................5
5. IANA Considerations.........................................6
6. Acknowledgments.............................................6
7. References..................................................6
7.1. Normative References...................................6
Author's Address..................................................7
1. Introduction
In many deployments, the media for SIP-created sessions does not
flow directly from the originating user's UAC to the answering
user's UAS. Often, SIP B2BUAs in the SIP signaling path also insert
themselves in the media plane path by manipulating SDP, either for
injecting media such as rich ringtones or music-on-hold, or for
relaying media in order to provide functions such as transcoding,
IPv4-IPv6 conversion, NAT traversal, SRTP termination, media
steering, etc.
As more SIP domains get deployed and interconnected, the odds of a
SIP session crossing such media-plane B2BUAs increases, as well as
the number of such B2BUAs any given SIP session may go through. In
other words, any given SIP session may cross any number of B2BUA's
both in the SIP signaling plane as well as media plane.
When a failure or degradation occurs in the media plane, it is
difficult to determine where in the media path they occurred. In
Kaplan Expires - January 2015 [Page 2]
Internet-Draft Media-Traceroute for SIP July 2014
order to aid managing and troubleshooting SIP-based sessions and
media traversing such B2BUAs, it would be useful to progressively
test the media path as it reaches successive B2BUAs with a test
controlled in a single-ended way from the source UA. A mechanism to
perform media-loopback test sessions has been defined in [RFC6849],
but it cannot be used directly to test B2BUAs because typically the
B2BUAs do not have an Address of Record (AoR) to be targeted, nor is
it known a priori which B2BUAs will be traversed for any given
session.
For example, suppose calls from Alice to Bob have media problems.
Alice would like to test the media path to each B2BUA in the path to
Bob separately, to determine which segment has the issues. Alice
cannot target the B2BUAs directly for each test call, because she
doesn't know which URIs to use to target them; nor would using such
URIs guarantee the same media path be used as a call to Bob. A
better solution would be to make a test call targeted to Bob, but
with a SIP traceroute-type mechanism that makes the call terminate
at the B2BUAs, such that she can perform test sessions to test the
media path to each downstream B2BUA.
This document defines how such a mechanism can be employed, using
the [RFC6849] mechanism along with the Max-Forwards SIP header field
such that a SIP User Agent can make multiple test calls, each
reaching a B2BUA further downstream. Each B2BUA in the path that
supports the mechanism in [RFC6849] would answer the media-loopback
call, and thus the originating SIP UA can test the media path up to
that B2BUA.
2. Terminology
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 [RFC2119].
B2BUA: a SIP Back-to-Back User Agent, which is the logical
combination of a User Agent Server (UAS) and User Agent Client
(UAC).
UAS: a SIP User Agent Server.
UAC: a SIP User Agent Client.
Traceroute: a mechanism to trace a path of hops from an originator
to a destination. For IP, this is typically done using the TTL
field of the IP header, starting at the value 1 and incrementing by
1 as each IP hop responds with an ICMP error. For SIP this can be
done using Max-Forwards header field starting with the value 0, in a
similar fashion to the TTL field.
Kaplan Expires - January 2015 [Page 3]
Internet-Draft Media-Traceroute for SIP July 2014
It is assumed the reader is already familiar with media-loopback
[RFC6849].
3. The SIP Traceroute Mechanism
The Max-Forwards header field can already be used to perform a
simple SIP-request traceroute mechanism by generating a SIP request
initially using a Max-Forwards value of 0, receiving a 483 Too Many
Hops response from the next-hop, and then incrementing the value for
subsequent SIP requests, thereby reaching SIP devices further and
further downstream and receiving 483 from each of them.
The mechanism described in this document uses such a Max-Forwards
style traceroute to perform media-loopback testing. To perform a
SIP media-plane traceroute, the originating UAC (Alice) generates a
SIP INVITE to a target AoR (Bob), with a Max-Forwards header field
value of 0 and with SDP based on [RFC6849]. The SIP next-hop will
either reject the request with a 483 Too Many Hops response, or if
the next-hop is a B2BUA that supports this mechanism, and if the
B2BUA allows such testing from the requesting UAC, then the B2BUA
will answer the INVITE to establish the dialog and create a media-
loopback session.
The originating UAC can then end the media-loopback session,
generate another INVITE to the same target AoR with a Max-Forwards
header field value of 1, which will reach the second SIP next hop,
and so on.
A defined [RFC3326] SIP Reason header field cause value of '483'
will be in the 200 answer from each B2BUA answering the INVITE,
until the INVITE reaches the final UAS (Bob), which does not use the
Reason cause value. (see Section 3.2 for details)
Using this mechanism a SIP UAC can test the path from itself to each
successive B2BUA on the path to a target. Such a mechanism could
also be useful for establishing a permanent test call between an
Enterprise and a Service Provider across a SIP Trunk, for example,
or for automated measurement systems to test the media path between
domains, etc.
3.1. Processing a Received Max-Forwards Header Field
As currently defined in [RFC3261], the UAS half of a B2BUA does not
technically need to inspect the Max-Forwards header field value for
received requests - only Proxies do. This behavior was updated by
[draft-loop-detection], such that a compliant B2BUA needs to both
inspect the value in order to prevent loops, as well as copy and
decrement the value as if it were a Proxy. This document also
Kaplan Expires - January 2015 [Page 4]
Internet-Draft Media-Traceroute for SIP July 2014
requires such behavior in order for the mechanism to succeed;
therefore a B2BUA supporting the traceroute mechanism defined in
this document MUST also comply with [draft-loop-detection].
3.2. Answering the INVITE
If a SIP B2BUA receives a dialog-creating INVITE request with a Max-
Forwards header value of 0, with SDP for media-loopback based on
[RFC6849], and the policies of the B2BUA allow it to answer such a
request, then it is answered as if the original target of the
request were the local SIP B2BUA. The normal procedures of SIP
apply, as well as [RFC6849], as if the request had been targeted at
the local B2BUA device as the intended destination all along.
In the 200 response for the INVITE, the B2BUA MUST also add a Reason
header, per [RFC3326], with a protocol field value of "SIP", a cause
field value of "483", and a reason-text value of "Traceroute
Response". The purpose of the Reason header is to indicate to the
UAC that the request is being answered due to reaching a Max-
Forwards of 0, rather than being answered due to reaching the final
UAS. When the ultimate target UAS answers a loopback-based INVITE
with a Max-Forwards greater than or equal to 0, the Reason header
would not be added to the response and the UAC will know the
traceroute is complete.
If a B2BUA receives an INVITE with media-loopback SDP and a Max-
Forwards header field value of 0 as defined in this document, and it
does not accept the session (e.g., due to local policy), then it
SHOULD respond with a 483 Too Many Hops response, per normal
[RFC3261] rules as it would previously. In other words, in such a
case it behaves no differently than it would have if it did not
support this document's new behavior.
4. Security Considerations
There are security implications for the mechanism defined in this
document. Answering media-loopback calls in a B2BUA consumes
resources on the B2BUA, and network bandwidth in between, and thus
exposes a vector for denial of service attacks; therefore, B2BUAs
should provide configuration options to control who can make such
test calls, how many concurrent calls can be established and
maintained, and for how long. Entities that deploy B2BUAs should
set these options to values that reduce the denial-of-service risk
to an acceptable level. A B2BUA might perform digest-challenge
authentication with specific credentials for such calls, for
example; or it might only allow specific sources to make such calls,
at a specific time. Such policies are typically vendor-specific
based on local policies and deployment usage scenarios, and cannot
to be explicitly defined in this document.
Kaplan Expires - January 2015 [Page 5]
Internet-Draft Media-Traceroute for SIP July 2014
The security considerations of [RFC6849] also apply to this
document. Since B2BUAs are not end user devices, there is no human
user to monitor the loopback session activity on the B2BUA as
recommended in [RFC6849]; instead, B2BUAs should log such events, or
provide some form of administrative notification.
5. IANA Considerations
This document makes no request of IANA.
6. Acknowledgments
The general concept of performing media-loopback on a hop-by-hop
basis using a decrementing header traceroute style approach came out
of discussions several years ago, between the author, Kaynam
Hedayat, Nagarjuna Venna, and Patrick MeLampy. Other people that
have contributed to the topic over the years since then: Brett Tate,
Paul Kyzivat, Peter Dawes, Zaid Ally, Dianna Stiller, Jon Boone, and
several others whom I have lost the names of since.
Funding for the RFC Editor function is provided by the IETF
Administrative Support Activity (IASA).
7. References
7.1. Normative References
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", RFC 2119, March 1997.
[RFC3261] Rosenberg, J., et al, "SIP: Session Initiation
Protocol", RFC 3261, June 2002.
[RFC3326] Schulzrinne, H., Oran, D., and Camarillo, G., "The
Reason Header Field for the Session Initiation Protocol
(SIP)", RFC 3326, December 2002.
[RFC6849] Kaplan, H., et al, "An Extension to the Session
Description Protocol (SDP) for Media Loopback", RFC 6849,
February 2013.
[draft-loop-detection] Kaplan, H., and Pascual, V., "Loop Detection
Mechanisms for Session Initiation Protocol (SIP) Back-to-Back
User Agents (B2BUAs)", draft-ietf-straw-b2bua-loop-detection-
02, September 2013.
Kaplan Expires - January 2015 [Page 6]
Internet-Draft Media-Traceroute for SIP July 2014
Author's Address
Hadriel Kaplan
Oracle
Email: hadrielk@yahoo.com
Kaplan Expires - January 2015 [Page 7]