One document matched: draft-mahy-speermint-direct-peering-00.txt
SPEERMINT WG R. Mahy
Internet-Draft Plantronics
Expires: December 21, 2006 June 19, 2006
A Minimalist Approach to Direct Peering
draft-mahy-speermint-direct-peering-00.txt
Status of this Memo
By submitting this Internet-Draft, each author represents that any
applicable patent or other IPR claims of which he or she is aware
have been or will be disclosed, and any of which he or she becomes
aware will be disclosed, in accordance with Section 6 of 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 December 21, 2006.
Copyright Notice
Copyright (C) The Internet Society (2006).
Abstract
This document describes a concrete example of a peering convention
for domains and federations of domain which use SIP for
communications, especially in conjunction with E.164 addresses
(telephone numbers). The author hopes this example mechanism will
promote and facilitate discussion within the speermint working group.
Mahy Expires December 21, 2006 [Page 1]
Internet-Draft Direct Peering June 2006
Table of Contents
1. Conventions . . . . . . . . . . . . . . . . . . . . . . . . . 3
2. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3
3. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
4. Procedures . . . . . . . . . . . . . . . . . . . . . . . . . . 4
4.1 Initiating Peer . . . . . . . . . . . . . . . . . . . . . 4
4.1.1 Analyzing target address . . . . . . . . . . . . . . . 4
4.1.2 User ENUM lookup . . . . . . . . . . . . . . . . . . . 4
4.1.3 Carrier ENUM lookup . . . . . . . . . . . . . . . . . 5
4.1.4 Target by routing table . . . . . . . . . . . . . . . 5
4.1.5 SIP DNS resolution . . . . . . . . . . . . . . . . . . 5
4.1.6 Setup TLS connection . . . . . . . . . . . . . . . . . 6
4.1.7 Send the SIP request . . . . . . . . . . . . . . . . . 6
4.2 Receiving Peer . . . . . . . . . . . . . . . . . . . . . . 7
4.2.1 Publish ENUM records . . . . . . . . . . . . . . . . . 7
4.2.2 Publish SIP DNS records . . . . . . . . . . . . . . . 7
4.2.3 Verify TLS connection . . . . . . . . . . . . . . . . 7
4.2.4 Receive SIP requests . . . . . . . . . . . . . . . . . 7
4.2.5 Record Routing . . . . . . . . . . . . . . . . . . . . 8
5. Security Considerations . . . . . . . . . . . . . . . . . . . 8
6. IANA Consideration . . . . . . . . . . . . . . . . . . . . . . 8
7. References . . . . . . . . . . . . . . . . . . . . . . . . . . 8
7.1 Normative References . . . . . . . . . . . . . . . . . . . 8
7.2 Informational References . . . . . . . . . . . . . . . . . 10
Author's Address . . . . . . . . . . . . . . . . . . . . . . . 10
Intellectual Property and Copyright Statements . . . . . . . . 11
Mahy Expires December 21, 2006 [Page 2]
Internet-Draft Direct Peering June 2006
1. 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 RFC-2119 [3].
2. Introduction
The Session PEERing for Multimedia INTerconnect (SPEERMINT) Working
Group is chartered to document conventions for routing real-time
sessions, such as VoIP telephone calls, at the application layer.
The speermint terminology document [16] describes this as "layer 5
peering". This document will use the term "peering" to describe this
layer 5 peering.
This document describes a concrete example of a peering convention.
This example approach is intentionally minimalistic in its approach,
and leaves many issues as local policy decisions. This "less is
more" philosophy hopefully encourages addition of new features only
when the vast majority of peers would benefits from them. The author
hopes that the example will facilitate discussion about speermint
requirements.
3. Overview
The approach described here assumes that the initiating peer first
discovers a SIP [2] target URI handled by the receiving peer, then
sends SIP requests directly to the receiving peer.
When the initiating peer receives a request to contact a resource
addressed in its domain using an "external" telephone number (one for
which the peer is not responsible), the peer first consults "User"
ENUM [1] records, then carrier ENUM [14] records, and finally it may
optionally consult a local routing table to determine the appropriate
target URI. Requests to im: or pres: resources in external domains
can resolve to SIP URIs using the procedures defined in RFC 3861 [8].
Requests which already address a SIP URI in an external domain need
no additional peer discovery.
Once the initiating peer discovers a SIP URI corresponding to the
receiving peer, the initiating peer finds the correct SIP server for
the receiving peer according to the DNS resolution procedures for SIP
in RFC 3263 [2]. Peers send all SIP messages to each other over a
TLS [5] protected channel and use the SIP Identity [12] mechanism to
verifiably assert an identity for the sender of most messages.
Note that in a federation of domains, the initiating peer role can be
logically decomposed. Domain A1 can forward requests to domain A2,
Mahy Expires December 21, 2006 [Page 3]
Internet-Draft Direct Peering June 2006
so that A2 actually opens a TLS connection to the receiving peer.
Likewise, the receiving peer function can be similarly decomposed.
How functions are distributed between or among domains or nodes is
not subject to this specification as long as the requirements
described in this document are met.
4. Procedures
4.1 Initiating Peer
4.1.1 Analyzing target address
Before the initiating peer is even aware that it will peer, it
receives a request to communicate. If the target address does not
represent a resource inside the initiating peer's administrative
domain or federation of domains, the request may need to be sent to a
peer. How the peer determines a resource is external is the subject
of local policy. Note that the peer is free to consult any manner of
private data sources to make this determination, including for
example those using ENUM technology with private roots.
If the request is for an im: or pres: URI type, the initiating peer
follows the procedures in [8]. If the highest priority supported URI
scheme is sip: or sips:, the initiating peer skips to SIP DNS
resolution. Likewise, if the target address is already a sip: or
sips: URI in an external domain, the initiating peer skips to
Section 4.1.5.
If the target address corresponds to a specific E.164 address, the
peer may need to perform some form of number plan mapping according
to local policy. For example, in the United States, a dial string
beginning "011 44" could be converted to "+44", or in the United
Kingdom "00 1" could be converted to "+1". Once the peer has an
E.164 address, it can continue to the next step.
4.1.2 User ENUM lookup
If an external E.164 address is the target, the initiating peer
consults the public "User ENUM" rooted at e164.arpa, according to the
procedures described in RFC 3761. The peer MUST query for the "E2U+
sip" enumservice as described in RFC 3674 [11], but MAY check for
other enumservices. The initiating peer MAY consult a cache or
alternate representation of the ENUM data rather than actual DNS
queries. Also, the peer MAY skip actual DNS queries if the
initiating peer is sure that the target address country code is not
represented in e164.arpa. If a sip: or sips: URI is chosen, the peer
skips to Section 4.1.5.
Mahy Expires December 21, 2006 [Page 4]
Internet-Draft Direct Peering June 2006
If an im: or pres: URI is chosen for based on an "E2U+im" [15] or
"E2U+pres" [4] enumserver, the peer follows the procedures for
resolving these URIs to URIs for specific protocols such a SIP or
XMPP as described in the previous section.
4.1.3 Carrier ENUM lookup
Next the initiating peer checks for a carrier-of-record in a carrier
ENUM domain according to the procedures described in [14]. As in the
previous step, the peer MAY consult a cache or alternate
representation of the ENUM data in lieu of actual DNS queries. The
peer first checks for records for the "E2U+sip" enumservice, then for
the "E2U+pstn" enumservice as defined in [13]. If a terminal record
is found with a sip: or sips: URI, the peer skips to Section 4.1.5,
otherwise the peer continues processing according to the next
section.
4.1.4 Target by routing table
If there are no user ENUM records, and the initiating carrier cannot
discover the carrier-of-record or if the initiating peer cannot reach
the carrier-of-record via SIP peering, the initiating peer still
needs to deliver the call to the PSTN or reject the call. Note that
the initiating peer MAY still send the call to another carrier for
PSTN gateway termination by prior arrangement. If so, the initiating
peer rewrites the Request-URI to address the gateway resource in the
target carrier's domain and MAY forward the request on to that
carrier using the procedures described in the remainder of these
steps.
4.1.5 SIP DNS resolution
Once a sip: or sips: in an external domain is selected as the target,
the initiating peer uses the procedures in RFC 3263 [6] Section 4.
To summarize the RFC 3263 procedure: unless these are explicitly
encoded in the target URI, a transport is chosen using NAPTR records,
a port is chosen using SRV records, and an address is chosen using A
or AAAA records. Note that these are queries of records in the
global DNS.
When communicating with a public external peer, entities compliant to
this document MUST only select a TLS-protected transport for
communication from the initiating peer to the receiving peer. Note
that this is a single-hop requirement. Either peer MAY insist on
using a sips: URI which asserts that each hop is TLS-protected, but
this document does not require protection over each hop.
Mahy Expires December 21, 2006 [Page 5]
Internet-Draft Direct Peering June 2006
4.1.6 Setup TLS connection
Once a transport, port, and address are found, the initiating peer
will open or find a reusable TLS connection to the peer. The
initiating provider MUST verify the server certificate which SHOULD
be rooted in a well-known certificate authority. The initiating
provider MUST be prepared to provide a TLS client certificate upon
request during the TLS handshake. The client certificate MUST
contain a DNS or URI choice type in the subjectAltName which
corresponds to the domain asserted in the host production of the From
header URI. The certificate SHOULD be valid and rooted in a well-
known certificate authority.
Note that the client certificate MAY contain a list of entries in the
subjectAltName, only one of which has to match the domain in the From
header URI.
4.1.7 Send the SIP request
Once a TLS connection between the peers is established, the
initiating peer sends the request. When sending some requests, the
initiating peer MUST verify and assert the senders identity using the
SIP Identity mechanism.
The domain name in the URI of the From: header MUST be a domain which
was present in the certificate presented when establishing the TLS
connection for this request, even if the user part has an anonymous
value. If the From header contains the user URI parameter with the
value of "phone", the user part of the From header URI MUST be a
complete and valid tel: URI [9] telephone-subscriber production, and
SHOULD be a global-number. For example, the following are all
acceptable, the first three are encouraged:
From: "John Doe" <john.doe@example.net>
From: "+12125551212" <+12125551212@example.net;user=phone>
From: "Anonymous" <anonymous@example.net>
From: <4092;phone-context=+12125554000@example.net;user=phone>
From: "5551212" <5551212@example.net>
The following are not acceptable:
From: "2125551212" <2125551212@example.net;user=phone>
From: "Anonymous" <anonymous@anonymous.invalid>
In addition, for new dialog-forming requests and non-dialog-forming
requests, the request MUST contain a valid Identity and Identity-Info
header as described in [12]. The Identity-Info header must present a
domain name which is represented in the certificate presented when
Mahy Expires December 21, 2006 [Page 6]
Internet-Draft Direct Peering June 2006
establishing the TLS connection over which the request is sent. The
initiating peer SHOULD include an Identity header on in-dialog
requests as well, if the From header field value matches an identity
the initiating peer is willing to assert.
The initiating peer MAY include any SIP option-tags in Supported,
Require, or Proxy-Require headers according to procedures in
standards-track SIP extensions. Note however that the initiating
peer MUST be prepared to fallback to baseline SIP functionality as
defined by the mandatory-to-implement features of RFC 3261, RFC 3263,
and RFC 3264 [7], except that peers implementing this specification
MUST implement SIP over TLS using the sip: URI scheme, the SIP
Identity header, and RFC 4320 [10] non-INVITE transaction fixes.
4.2 Receiving Peer
4.2.1 Publish ENUM records
The receiving peer SHOULD participate by publishing "E2U+sip" and
"E2U+pstn" records with sip: or sips: URIs wherever a public carrier
ENUM root is available. This assumes that the receiving peer wants
to peer by default. Even when the receiving peer does not want to
accept traffic from specific initiating peers, it MAY still reject
requests on a case-by-case basis.
4.2.2 Publish SIP DNS records
To receive peer requests, the receiving peer MUST insure that it
publishes appropriate NAPTR, SRV, and address (A and/or AAAA) records
in the global DNS that resolve an appropriate transport, port, and
address to a relevant SIP server. The transport actually used for
external public peering MUST be TLS protected.
4.2.3 Verify TLS connection
When the receiving peer receives a TLS client hello, it responds with
its certificate. The receiving peer certificate SHOULD be valid and
rooted in a well-known certificate authority. The receiving peer
MUST request and verify the client certificate during the TLS
handshake.
4.2.4 Receive SIP requests
Once a TLS connection is established, the receiving peer is prepared
to receive incoming SIP requests. For new dialog-forming requests
and out-of-dialog requests, the receiving peer verifies that the
target (request-URI) is a domain which for which it is responsible.
(For these requests, there should be no remaining Route header field
Mahy Expires December 21, 2006 [Page 7]
Internet-Draft Direct Peering June 2006
values.) Next the receiving verifies that the Identity header is
valid, corresponds to the message, corresponds to the Identity-Info
header, and that the domain in the From header corresponds to one of
the domains in the TLS client certificate.
For in-dialog requests, the receiving peer can verify that it
corresponds to the top-most Route header field value. The peer also
validates any Identity header if present.
The receiving peer MAY reject incoming requests due to local policy.
When a request is rejected because the initiating peer is not
authorized to peer, the receiving peer SHOULD respond with a 403
response with the reason phrase "Unsupported Peer".
4.2.5 Record Routing
The receiving peer MAY add a Record-Route header field value
corresponding to itself. This insures that subsequent in-dialog
requests are sent through a node associated with the receiving peer.
5. Security Considerations
This document does not introduce any new security concerns, but the
overall security of a peering system using this mechanism is worth
discussing separately. The security and privacy implications of
using user and carrier ENUM are primarily discussed in RFC 3761 [1]
and [14] respectively. User ENUM records are only added at the
discretion of the user. Carrier ENUM records should be deployed for
an entire number range so that no user-specific information can be
gleaned. Note that in some countries, knowledge of the carrier-of-
record for a specific phone number is not public knowledge.
This document requires peers use a TLS-protected channel and the SIP
Identity mechanism. This section needs to be completed in more
detail later.
6. IANA Consideration
This document requires no action by IANA.
7. References
7.1 Normative References
[1] Faltstrom, P. and M. Mealling, "The E.164 to Uniform Resource
Identifiers (URI) Dynamic Delegation Discovery System (DDDS)
Application (ENUM)", RFC 3761, April 2004.
Mahy Expires December 21, 2006 [Page 8]
Internet-Draft Direct Peering June 2006
[2] 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.
[3] Bradner, S., "Key words for use in RFCs to Indicate Requirement
Levels", BCP 14, RFC 2119, March 1997.
[4] Peterson, J., "Telephone Number Mapping (ENUM) Service
Registration for Presence Services", RFC 3953, January 2005.
[5] Dierks, T. and C. Allen, "The TLS Protocol Version 1.0",
RFC 2246, January 1999.
[6] Rosenberg, J. and H. Schulzrinne, "Session Initiation Protocol
(SIP): Locating SIP Servers", RFC 3263, June 2002.
[7] Rosenberg, J. and H. Schulzrinne, "An Offer/Answer Model with
Session Description Protocol (SDP)", RFC 3264, June 2002.
[8] Peterson, J., "Address Resolution for Instant Messaging and
Presence", RFC 3861, August 2004.
[9] Schulzrinne, H., "The tel URI for Telephone Numbers", RFC 3966,
December 2004.
[10] Sparks, R., "Actions Addressing Identified Issues with the
Session Initiation Protocol's (SIP) Non-INVITE Transaction",
RFC 4320, January 2006.
[11] Peterson, J., "enumservice registration for Session Initiation
Protocol (SIP) Addresses-of-Record", RFC 3764, April 2004.
[12] Peterson, J. and C. Jennings, "Enhancements for Authenticated
Identity Management in the Session Initiation Protocol (SIP)",
draft-ietf-sip-identity-06 (work in progress), October 2005.
[13] Livingood, J. and R. Shockey, "IANA Registration for an
Enumservice Containing PSTN Signaling Information",
draft-ietf-enum-pstn-04 (work in progress), May 2006.
[14] Haberler, M. and R. Stastny, "Combined User and Carrier ENUM in
the e164.arpa tree", draft-haberler-carrier-enum-02 (work in
progress), March 2006.
[15] Mahy, R., "A Telephone Number Mapping (ENUM) Service
Registration for Instant Messaging (IM) Services",
draft-ietf-enum-im-service-00 (work in progress), March 2006.
Mahy Expires December 21, 2006 [Page 9]
Internet-Draft Direct Peering June 2006
7.2 Informational References
[16] Meyer, D., "SPEERMINT Terminology",
draft-ietf-speermint-terminology-00 (work in progress),
May 2006.
Author's Address
Rohan Mahy
Plantronics
Email: rohan@ekabal.com
Mahy Expires December 21, 2006 [Page 10]
Internet-Draft Direct Peering June 2006
Intellectual Property Statement
The IETF takes no position regarding the validity or scope of any
Intellectual Property Rights 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; nor does it represent that it has
made any independent effort to identify any such rights. Information
on the procedures with respect to rights in RFC documents can be
found in BCP 78 and BCP 79.
Copies of IPR disclosures made to the IETF Secretariat 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 implementers or users of this
specification can be obtained from the IETF on-line IPR repository at
http://www.ietf.org/ipr.
The IETF invites any interested party to bring to its attention any
copyrights, patents or patent applications, or other proprietary
rights that may cover technology that may be required to implement
this standard. Please address the information to the IETF at
ietf-ipr@ietf.org.
Disclaimer of Validity
This document and the information contained herein are provided on an
"AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET
ENGINEERING TASK FORCE DISCLAIM 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.
Copyright Statement
Copyright (C) The Internet Society (2006). This document is subject
to the rights, licenses and restrictions contained in BCP 78, and
except as set forth therein, the authors retain all their rights.
Acknowledgment
Funding for the RFC Editor function is currently provided by the
Internet Society.
Mahy Expires December 21, 2006 [Page 11]
| PAFTECH AB 2003-2026 | 2026-04-23 17:20:50 |