draft-ietf-speermint-architecture-05.txt   draft-ietf-speermint-architecture-06.txt 
Speermint Working Group R. Penno Speermint Working Group R. Penno
Internet Draft Juniper Networks Internet Draft Juniper Networks
Intended status: Informational D. Malas Intended status: Informational D. Malas
Expires: August 2008 Level 3 Expires: September 2008 CableLabs
S. Khan S. Khan
Comcast Comcast
A. Uzelac A. Uzelac
Global Crossing Global Crossing
February 24, 2008 M. Hammer
Cisco Systems
May 2, 2008
SPEERMINT Peering Architecture SPEERMINT Peering Architecture
draft-ietf-speermint-architecture-05 draft-ietf-speermint-architecture-06
Status of this Memo Status of this Memo
By submitting this Internet-Draft, each author represents that By submitting this Internet-Draft, each author represents that
any applicable patent or other IPR claims of which he or she is 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 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 becomes aware will be disclosed, in accordance with Section 6 of
BCP 79. BCP 79.
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
skipping to change at page 2, line 8 skipping to change at page 2, line 9
Abstract Abstract
This document defines the SPEERMINT peering architecture, its This document defines the SPEERMINT peering architecture, its
functional components and peering interface functions. It also functional components and peering interface functions. It also
describes the steps taken to establish a session between two peering describes the steps taken to establish a session between two peering
domains in the context of the functions defined. domains in the context of the functions defined.
Conventions used in this document Conventions used in this document
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", The key words "must", "must NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this "should", "should NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in RFC 2119[1] document are to be interpreted as described in RFC-2119[1]
Table of Contents Table of Contents
1. Introduction...................................................3 1. Introduction...................................................3
2. Network Context................................................4 2. Network Context................................................3
3. Procedures.....................................................5 3. Procedures.....................................................6
4. Reference SPEERMINT Architecture...............................6 4. Reference SPEERMINT Architecture...............................6
5. Peer Function Examples.........................................8 5. Recommended SSP Procedures.....................................8
5.1. The Location Function (LF) of an Initiating Provider......8 5.1. Originating SSP Procedures................................8
5.1.1. Target address analysis..............................8 5.1.1. The Look-Up Function (LUF)...........................8
5.1.2. User ENUM Lookup.....................................9 5.1.1.1. Target address analysis.........................8
5.1.3. Carrier ENUM lookup.................................10 5.1.1.2. User ENUM Lookup................................9
5.1.4. Routing Table.......................................10 5.1.1.3. Infrastructure ENUM lookup......................9
5.1.5. SIP DNS Resolution..................................10 5.1.2. Location Routing Function (LRF).....................10
5.1.6. SIP Redirect Server.................................11 5.1.2.1. Routing Table..................................10
5.2. The Location Function (LF) of a Receiving Provider.......11 5.1.2.2. SIP DNS Resolution.............................10
5.2.1. Publish ENUM records................................11 5.1.2.3. SIP Redirect Server............................11
5.2.2. Publish SIP DNS records.............................11 5.1.3. The Signaling Function (SF).........................11
5.2.3. Subscribe Notify....................................11 5.1.3.1. Establishing a Trusted Relationship............11
5.3. Signaling Function (SF)..................................11 5.1.3.2. Sending the SIP request........................12
5.4. The Signaling Function (SF) of an Initiating Provider....12 5.2. Terminating SSP Procedures...............................12
5.4.1. Setup TLS connection................................12 5.2.1. The Location Function (LF)..........................12
5.4.2. IPSec...............................................12 5.2.1.1. Publish ENUM records...........................12
5.4.3. Co-Location.........................................12 5.2.1.2. Publish SIP DNS records........................13
5.4.4. Send the SIP request................................12 5.2.1.3. Subscribe Notify...............................13
5.5. The Signaling Function (SF) of an Initiating Provider....14 5.2.2. Signaling Function (SF).............................13
5.5.1. Verify TLS connection...............................14 5.2.2.1. TLS............................................13
5.5.2. Receive SIP requests................................14 5.2.2.2. Receive SIP requests...........................13
5.6. Media Function (MF)......................................15 5.3. Target SSP Procedures....................................14
5.7. Policy Considerations....................................15 5.3.1. Signaling Function (SF).............................14
6. Call Control and Media Control Deployment Options.............16 5.3.1.1. TLS............................................14
5.3.1.2. Receive SIP requests...........................14
5.4. Media Function (MF)......................................14
5.5. Policy Considerations....................................14
6. Call Control and Media Control Deployment Options.............15
7. Address space considerations..................................17 7. Address space considerations..................................17
8. Security Considerations.......................................17 8. Security Considerations.......................................17
9. IANA Considerations...........................................18 9. IANA Considerations...........................................17
10. Acknowledgments..............................................18 10. Acknowledgments..............................................17
11. References...................................................19 11. References...................................................18
11.1. Normative References....................................19 11.1. Normative References....................................18
11.2. Informative References..................................20 11.2. Informative References..................................19
Author's Addresses...............................................21 Author's Addresses...............................................20
Intellectual Property Statement..................................21 Intellectual Property Statement..................................20
Disclaimer of Validity...........................................22 Disclaimer of Validity...........................................21
1. Introduction 1. Introduction
The objective of this document is to define a reference peering The objective of this document is to define a reference peering
architecture in the context of Session PEERing for Multimedia architecture in the context of Session PEERing for Multimedia
INTerconnect (SPEERMINT). In this process, we define the peering INTerconnect (SPEERMINT). In this process, we define the peering
reference architecture (reference, for short), it's functional reference architecture (reference, for short), it's functional
components, and peering interface functions from the perspective of components, and peering interface functions from the perspective of
a SIP [3] Service provider's (SSP) network. a SIP Service provider's (SSP) network.
This architecture allows the interconnection of two SSPs in layer 5 This architecture allows the interconnection of two SSPs in layer 5
peering as defined in the SPEERMINT Requirements [13] and peering as defined in the SPEERMINT Requirements [13] and
Terminology [12] documents. Terminology [12] documents.
Layer 3 peering is outside the scope of this document. Hence, the Layer 3 peering is outside the scope of this document. Hence, the
figures in this document do not show routers so that the focus is on figures in this document do not show routers so that the focus is on
Layer 5 protocol aspects. Layer 5 protocol aspects.
This document uses terminology defined in the SPEERMINT Terminology This document uses terminology defined in the SPEERMINT Terminology
skipping to change at page 4, line 40 skipping to change at page 5, line 8
The members of a federation may jointly use a set of functions such The members of a federation may jointly use a set of functions such
as location function, signaling function, media function, ENUM as location function, signaling function, media function, ENUM
database or SIP Registrar, SIP proxies, and/or functions that database or SIP Registrar, SIP proxies, and/or functions that
synthesize various SIP and non-SIP based applications. Similarly, synthesize various SIP and non-SIP based applications. Similarly,
two SSPs may jointly use a set of functions. The functions can be two SSPs may jointly use a set of functions. The functions can be
either public or private. either public or private.
+-------------------+ +-------------------+
| | | |
| Public | | Public |
| SIP |
| Peering | | Peering |
| Function |
| | | |
+-------------------+ +-------------------+
| |
----- -----
+-----------+ / \ +-----------+ +-----------+ / \ +-----------+
|Enterprise | -- -- |Enterprise | |Enterprise | -- -- |Enterprise |
|Provider A |-----------/ \-----------|Provider B | |Provider A |-----------/ \-----------|Provider B |
+-----------+ -- -- +-----------+ +-----------+ -- -- +-----------+
/ Public \ / Public \
| Internet | | Internet |
\ (Layer 3) / \ (Layer 3) /
+-----------+ -- -- +-----------+ +-----------+ -- -- +-----------+
|Service |-----------\ /-----------|Service | | SSP C |-----------\ /-----------| SSP D |
|Provider C | -- -- |Provider D | | | -- -- | |
+-----------+ \_____/ +-----------+ +-----------+ \_____/ +-----------+
| Layer 3 Peering | Layer 3 Peering
| Point (out of scope) | Point (out of scope)
----- -----
+-----------+ / \ +-----------+ +-----------+ / \ +-----------+
|Enterprise | -- -- |Enterprise | |Enterprise | -- -- |Enterprise |
|Provider E |-----------/ \-----------|Provider F | |Provider E |-----------/ \-----------|Provider F |
+-----------+ -- Private -- +-----------+ +-----------+ -- Private -- +-----------+
/ Network \ / Network \
| (Layer 3) | | (Layer 3) |
skipping to change at page 5, line 36 skipping to change at page 6, line 7
| Private | | Private |
| SIP | | SIP |
| Peering | | Peering |
| | | |
+-------------------+ +-------------------+
Figure 1: SPEERMINT Network Context Figure 1: SPEERMINT Network Context
3. Procedures 3. Procedures
This document assumes that a call from a UAC end user in the This document assumes that in order for call to be establish from a
initiating peer's network goes through the following steps to UAC end user in the initiating peer's network to a UAS in the
establish a call to a UAS in the receiving peer's network: receiving peer's network the following steps are taken:
1. The analysis of a target address. 1. The analysis of the target address.
a. If the target address represents an intra-SSP resource, . If the target address represents an intra-SSP resource, the
we go directly to step 4. behavior is out-of-scope with respect to this draft.
2. the discovery of the receiving peering point address, 2. the determination of the target SSP,
3. the enforcement of authentication and potentially other 3. the determination of the SF next-hop in the target SSP,
policies,
4. the discovery of the UAS, 4. the enforcement of authentication and potentially other
policies,
5. the routing of SIP messages, 5. the determination of the UAS,
6. the session establishment, 6. the session establishment,
7. the transfer of media which could include voice, video, text 7. the transfer of media which could include voice, video, text
and others, and others,
8. and the session termination. 8. and the session termination.
The originating SSP would likely perform steps 1-4, and the
terminating SSP would likely perform steps 4-5.
In the case the target SSP is different from the terminating SSP it
would repeat steps 1-4. This is reflected in Figure 2 that shows the
target SSP with its own peering functions.
4. Reference SPEERMINT Architecture 4. Reference SPEERMINT Architecture
Figure 2 depicts the SPEERMINT architecture and logical functions Figure 2 depicts the SPEERMINT architecture and logical functions
that form the peering between two SSPs. that form the peering between two SSPs.
+------+ +------+
| DNS, | | DNS, |
+---------->| Db, |<---------+ +---------->| Db, |<---------+
| | etc | | | | etc | |
| +------+ | | +------+ |
| | | |
------|-------- -------|------- ------|-------- -------|-------
/ v \ / v \ / v \ / v \
| +--LUF-+ | | +--LUF-+ | | +--LUF-+ | | +--LUF-+ |
| | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | |
| +------+ | | +------+ | | +------+ | | +------+ |
| | | | | | | | | |
| | | | | |
| v | | v |
| +--LRF-+ | | +--LRF-+ | | +--LRF-+ | | +--LRF-+ |
| | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | |
| +------+ | | +------+ | | +------+ | | +------+ |
| \ | | / | | | | |
| `. | | / | | | | |
| \ | | .' | | +---SF--+ +---SF--+ |
| `. +---SF--+ +---SF--+ / | | | | | | |
| \| | | | / |
| | SBE | | SBE | | | | SBE | | SBE | |
| Originating | | | | Target | | Originating | | | | Target |
| +---SF--+ +---SF--+ | | +---SF--+ +---SF--+ |
| SSP | | SSP | | SSP | | SSP |
| +---MF--+ +---MF--+ | | +---MF--+ +---MF--+ |
| | | | | | | | | | | |
| | DBE | | DBE | | | | DBE | | DBE | |
| | | | | | | | | | | |
| +---MF--+ +---MF--+ | | +---MF--+ +---MF--+ |
\ / \ / \ / \ /
--------------- --------------- --------------- ---------------
Figure 2: Reference SPEERMINT Architecture Figure 2: Reference SPEERMINT Architecture
The procedures presented in Chapter 3 are implemented by a set of The procedures presented in section 3 are implemented by a set of
peering functions: peering functions:
The Look-Up Function (LUF) provides a mechanism for determining for The Look-Up Function (LUF) provides a mechanism for determining for
a given request the target domain to which the request should be a given request the target domain to which the request should be
routed. routed.
The Location Routing Function (LRF) determines for the target domain The Location Routing Function (LRF) determines for the target domain
of a given request the location of the SF in that domain and of a given request the location of the SF in that domain and
optionally develops other SED required to route the request to that optionally develops other Session Establishment Data (SED) required
domain. to route the request to that domain.
Location Function (LF): The Location functions is composed of the
LUF and LRF functions
Signaling Function (SF): Purpose is to perform SIP call routing, to Signaling Function (SF): Purpose is to perform SIP call routing, to
optionally perform termination and re-initiation of call, to optionally perform termination and re-initiation of call, to
optionally implement security and policies on SIP messages, and to optionally implement security and policies on SIP messages, and to
assist in discovery/exchange of parameters to be used by the Media assist in discovery/exchange of parameters to be used by the Media
Function (MF). Function (MF).
Media Function (MF): Purpose is to perform media related function Media Function (MF): Purpose is to perform media related function
such as media transcoding and media security implementation between such as media transcoding and media security implementation between
two SIP providers. two SIP providers.
The intention of defining these functions is to provide a framework The intention of defining these functions is to provide a framework
for design segmentation and allow each one to evolve independently. for design segmentation and allow each one to evolve independently.
5. Peer Function Examples 5. Recommended SSP Procedures
This section describes the functions in more detail and provides This section describes the functions in more detail and provides
some examples on the role they would play in a SIP call in a Layer 5 some recommendations on the role they would play in a SIP call in a
peering scenario. Layer 5 peering scenario.
Some of the information in the chapter is taken from [14] and is put Some of the information in the chapter is taken from [14] and is put
here for continuity purposes. here for continuity purposes.
5.1. The Location Function (LF) of an Initiating Provider 5.1. Originating SSP Procedures
5.1.1. The Look-Up Function (LUF)
Purpose is to determine the SF of the target domain of a given Purpose is to determine the SF of the target domain of a given
request and optionally develop Session Establishment Data (SED) request and optionally develop Session Establishment Data (SED)
[12]. The LF of an Initiating SSP analyzes target address and [12].
discovers the next hop signaling function (SF) in a peering
relationship using the Look-Up Function. The resource to determine 5.1.1.1. Target address analysis
the SF of the target domain might be provided by a third-party as in
the assisted-peering case.
5.1.1. Target address analysis
When the initiating SSP receives a request to communicate, it When the initiating SSP receives a request to communicate, it
analyzes the target state data to determine whether the call needs analyzes the target URI to determine whether the call needs to be
to be terminated internal or external to its network. The analysis terminated internally or externally to its network. The analysis
method is internal to the SSP; thus, outside the scope of SPEERMINT. method is internal to the SSP; thus, outside the scope of SPEERMINT.
Note that the SSP is free to consult any manner of private data Note that the SSP is free to consult any manner of private data
sources to make this determination. sources to make this determination.
If the target address does not represent a resource inside the If the target address does not represent a resource inside the
initiating SSP's administrative domain or federation of domains, the initiating SSP's administrative domain or federation of domains, the
initiating SSP resolves the call routing data by using the Location initiating SSP resolves the call routing data by using the Location
Function (LF). Routing Function (LRF).
If the request to communicate is for an im: or pres: URI type, the For example, if the request to communicate is for an im: or pres:
initiating peer follows the procedures in [8]. If the highest URI type, the initiating peer follows the procedures in [8]. If the
priority supported URI scheme is sip: or sips:, the initiating peer highest priority supported URI scheme is sip: or sips:, the
skips to SIP DNS resolution in Section 5.1.5. Likewise, if the initiating peer skips to SIP DNS resolution in Section 5.1.3.
target address is already a sip: or sips: URI in an external domain, Likewise, if the target address is already a sip: or sips: URI in an
the initiating peer skips to SIP DNS resolution in Section 5.1.5. external domain, the initiating peer skips to SIP DNS resolution in
Section 5.1.2.2.
If the target address corresponds to a specific E.164 address, the If the target address corresponds to a specific E.164 address, the
peer may need to perform some form of number plan mapping according peer may need to perform some form of number plan mapping according
to local policy. For example, in the United States, a dial string to local policy. For example, in the United States, a dial string
beginning "011 44" could be converted to "+44", or in the United 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 Kingdom "00 1" could be converted to "+1". Once the peer has an
E.164 address, it can use ENUM. E.164 address, it can use ENUM.
5.1.2. User ENUM Lookup 5.1.1.2. User ENUM Lookup
If an external E.164 address is the target, the initiating peer If an external E.164 address is the target, the initiating peer
consults the public "User ENUM" rooted at e164.arpa, according to consults the public "User ENUM" rooted at e164.arpa, according to
the procedures described in RFC 3761. The peer MUST query for the the procedures described in RFC 3761. The peer must query for the
"E2U+sip" enumservice as described in RFC 3764 [11], but MAY check "E2U+sip" enumservice as described in RFC 3764 [11], but MAY check
for other enumservices. The initiating peer MAY consult a cache or for other enumservices. The initiating peer MAY consult a cache or
alternate representation of the ENUM data rather than actual DNS alternate representation of the ENUM data rather than actual DNS
queries. Also, the peer MAY skip actual DNS queries if the queries. Also, the peer may skip actual DNS queries if the
initiating peer is sure that the target address country code is not 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 represented in e164.arpa. If a sip: or sips: URI is chosen the peer
skips to Section 5.1.5. skips to Section 5.1.6.
If an im: or pres: URI is chosen for based on an "E2U+im" [10] or If an im: or pres: URI is retrieved based on an "E2U+im" [10] or
"E2U+pres" [9] enumserver, the peer follows the procedures for "E2U+pres" [9] enumserver, the peer follows the procedures for
resolving these URIs to URIs for specific protocols such a SIP or resolving these URIs to URIs for specific protocols such a SIP or
XMPP as described in the previous section. XMPP as described in the previous section.
5.1.3. Infrastructure ENUM lookup 5.1.1.3. Infrastructure ENUM lookup
Next the initiating peer checks for a carrier-of-record in a carrier Next the initiating peer checks for a carrier-of-record in a carrier
ENUM domain according to the procedures described in [12]. As in ENUM domain according to the procedures described in [12]. As in
the previous step, the peer MAY consult a cache or alternate the previous step, the peer may consult a cache or alternate
representation of the ENUM data in lieu of actual DNS queries. The representation of the ENUM data in lieu of actual DNS queries. The
peer first checks for records for the "E2U+sip" enumservice, then peer first checks for records for the "E2U+sip" enumservice, then
for the "E2U+pstn" enumservice as defined in [21]. If a terminal for the "E2U+pstn" enumservice as defined in [21]. If a terminal
record is found with a sip: or sips: URI, the peer skips to Section record is found with a sip: or sips: URI, the peer skips to Section
5.1.5, otherwise the peer continues processing according to the next 5.1.2.2. , otherwise the peer continues processing according to the
section. next section.
5.1.4. Routing Table 5.1.2. Location Routing Function (LRF)
The LRF of an Initiating SSP analyzes target address and discovers
the next hop signaling function (SF) in a peering relationship. The
resource to determine the SF of the target domain might be provided
by a third-party as in the assisted-peering case.
5.1.2.1. Routing Table
If there is no user ENUM records and the initiating peer cannot If there is no user ENUM records and the initiating peer cannot
discover the carrier-of-record or if the initiating peer cannot discover the carrier-of-record or if the initiating peer cannot
reach the carrier-of-record via SIP peering, the initiating peer reach the carrier-of-record via SIP peering, the initiating peer
still needs to deliver the call to the PSTN or reject it. Note that still needs to deliver the call to the PSTN or reject it. Note that
the initiating peer MAY still forward the call to another SSP for the initiating peer may still forward the call to another SSP for
PSTN gateway termination by prior arrangement using the routing PSTN gateway termination by prior arrangement using the routing
table. table.
If so, the initiating peer rewrites the Request-URI to address the If so, the initiating peer may rewrite the Request-URI to address
gateway resource in the target SSP's domain and MAY forward the the gateway resource in the target SSP's domain and may forward the
request on to that SSP using the procedures described in the request on to that SSP using the procedures described in the
remainder of these steps. remainder of these steps.
5.1.5. SIP DNS Resolution Alternatively to Request-URI re-writing, the initiating peer may
populate the Route header with the address of the gateway resource
in the target SSP's domain and forward the request on to that SSP
using the procedures described in the remainder of these steps, but
applied to the Route header.
5.1.2.2. SIP DNS Resolution
Once a sip: or sips: in an external domain is selected as the Once a sip: or sips: in an external domain is selected as the
target, the initiating peer MAY apply local policy to decide whether target, the initiating peer may apply local policy to decide whether
forwarding requests to the target domain is acceptable. If so, the forwarding requests to the target domain is acceptable. If so, the
initiating peer uses the procedures in RFC 3263 [4] Section 4 to initiating peer uses the procedures in RFC 3263 [4] Section 4 to
determine how to contact the receiving peer. To summarize the RFC determine how to contact the receiving peer. To summarize the RFC
3263 procedure: unless these are explicitly encoded in the target 3263 procedure: unless these are explicitly encoded in the target
URI, a transport is chosen using NAPTR records, a port is chosen 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. using SRV records, and an address is chosen using A or AAAA records.
Note that these are queries of records in the global DNS. Note that these are queries of records in the global DNS.
When communicating with a public external peer, entities compliant When communicating with another SSP, entities compliant to this
to this document MUST only select a TLS-protected transport for document should select a TLS-protected transport for communication
communication from the initiating peer to the receiving peer. Note from the initiating peer to the receiving peer if available. Note
that this is a single-hop requirement. Either peer MAY insist on that this is a single-hop requirement.
using a sips: URI which asserts that each hop is TLS-protected, but
this document does not require protection over each hop.
5.1.6. SIP Redirect Server
A SIP Redirect Server may help in resolving the current address of a
UAS.
5.2. The Location Function (LF) of a Receiving Provider
5.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. When the receiving peer does not want to accept
traffic from specific initiating peers, it MAY still reject requests
on a call-by-call basis.
5.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 LF relevant to the peer's SF.
5.2.3. Subscribe Notify 5.1.2.3. SIP Redirect Server
Policies function may also be optionally implemented by dynamic A SIP Redirect Server may help in resolving the current address of
subscribe, notify, and exchange of policy information and feature the next-hop SF in the target domain.
information among SSPs [22].
5.3. Signaling Function (SF) 5.1.3. The Signaling Function (SF)
The purpose of signaling function is to perform routing of SIP The purpose of signaling function is to perform routing of SIP
messages, to optionally perform termination and re-initiation of a messages, to optionally perform termination and re-initiation of a
call, to optionally implement security and policies on SIP messages, call, to optionally implement security and policies on SIP messages,
and to assist in discovery/exchange of parameters to be used by the and to assist in discovery/exchange of parameters to be used by the
Media Function (MF). Media Function (MF).
The signaling function perform the routing of SIP messages. The The signaling function performs the routing of SIP messages. The
optional termination and re-initiation of calls are performed by the optional termination and re-initiation of calls are performed by the
signaling path border element (SBE). signaling path border element (SBE).
Optionally, a SF may perform additional functions such as Session Optionally, a SF may perform additional functions such as Session
Admission Control, SIP Denial of Service protection, SIP Topology Admission Control, SIP Denial of Service protection, SIP Topology
Hiding, SIP header normalization, and SIP security, privacy and Hiding, SIP header normalization, and SIP security, privacy and
encryption. encryption.
The SF can also process SDP payloads for media information such as The SF can also process SDP payloads for media information such as
media type, bandwidth, and type of codec; then, communicate this media type, bandwidth, and type of codec; then, communicate this
information to the media function. Signaling function may optionally information to the media function. Signaling function may optionally
communicate with the network to pass Layer 3 related policies [10] communicate with the network to pass Layer 3 related policies [10]
5.4. The Signaling Function (SF) of an Initiating Provider 5.1.3.1. Establishing a Trusted Relationship
5.4.1. Setup TLS connection Depending on the security needs and trust relationship between SSPs,
different security mechanism can be used to establish SIP calls.
These are discussed in the following subsections.
5.1.3.1.1. TLS connection
Once a transport, port, and address are found, the initiating SSP Once a transport, port, and address are found, the initiating SSP
will open or find a reusable TLS connection to the peer. The will open or find a reusable TLS connection to the peer. The
initiating provider MUST verify the server certificate that SHOULD procedures to authenticate the SSP's target domain is specified in
be rooted in a well-known certificate authority. The initiating SSP [24]
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.
5.4.2. IPSec 5.1.3.1.2. IPSec
In certain deployments the use of IPSec between the signaling In certain deployments, the use of IPSec between the signaling
functions of the originating and terminating domains can be used as functions of the originating and terminating domains can be used as
a security mechanism instead of TLS. a security mechanism instead of TLS.
5.4.3. Co-Location 5.1.3.1.3. Co-Location
In this scenario the SFs are co-located in a In this scenario, the SFs are co-located in a physically secure
physically secure location and/or are members of a segregated location and/or are members of a segregated network. In this case
network. In this case messages between the originating and messages between the originating and terminating SSPs would be sent
terminating SSPs would be sent as clear text. as clear text.
5.4.4. Send the SIP request 5.1.3.2. Sending the SIP request
Once a TLS connection between the peers is established, the Once a trust relationship between the peers is established, the
initiating peer sends the request. When sending some requests, the initiating peer sends the request.
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 5.1.3.2.1. TLS
which was present in the certificate provided 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 and the first three are encouraged:
From: "John Doe" john.doe@example.net If the trust relationship was established through TLS, the
initiating peer can optionally verify and assert the sender's
identity using the SIP Identity mechanism.
From: "+12125551212" <+12125551212@example.net;user=phone> In addition, new requests should contain a valid Identity and
Identity-Info header as described in [12]. The Identity-Info header
must present a domain name that is represented in the certificate
provided when 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.
From: "Anonymous" <anonymous@example.net> 5.2. Terminating SSP Procedures
From: <4092;phone-context=+12125554000@example.net;user=phone> 5.2.1. The Location Function (LF)
From: "5551212" <5551212@example.net> 5.2.1.1. Publish ENUM records
The following are not acceptable: The receiving peer should publish "E2U+SIP" and "E2U+pstn" records
with sip: or sips: URIs wherever a public carrier ENUM root is
available. In the event that a public root is not available, a
publishing to a common ENUM registry with the originating peer will
suffice.
From: "2125551212" <2125551212@example.net;user=phone> This assumes that the receiving peer wants to peer by default. When
the receiving peer does not want to accept traffic from specific
initiating peers, it may still reject requests on a call-by-call
basis.
From: "Anonymous" <anonymous@anonymous.invalid> 5.2.1.2. Publish SIP DNS records
In addition, new requests MUST contain a valid Identity and To receive peer requests, the receiving peer must ensure that it
Identity-Info header as described in [12]. The Identity-Info header publishes appropriate NAPTR, SRV, and address (A and/or AAAA)
must present a domain name that is represented in the certificate records in the LF relevant to the originating peer's SF.
provided when 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, 5.2.1.3. Subscribe Notify
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.
5.5. The Signaling Function (SF) of an Target Provider A policy notification function may also be optionally implemented by
dynamic subscribe, notify, and exchange of policy information and
feature information among SSPs [21].
5.5.1. Verify TLS connection 5.2.2. Signaling Function (SF)
When the receiving peer receives a TLS client hello, it responds 5.2.2.1. TLS
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.
Once the initiating peer has been authenticated, the receiving peer When the receiving peer receives a TLS client hello, it responds
can authorize communication from this peer based on the domain name with its certificate. The target SSP certificate should be valid
of the peer and the root of its certificate. This allows two and rooted in a well-known certificate authority. The procedures to
authorization models to be used, together or separately. In the authenticate the SSP's originating domain are specified in [24].
domain-based model, the receiving peer can allow communication from
peers with some trusted administrative domains that use general-
purpose certificate authorities, without explicitly permitting all
domains with certificates rooted in the same authority. It also
allows a certificate authority (CA) based model where every domain
with a valid certificate rooted in some list of CAs is automatically
authorized.
5.5.2. Receive SIP requests The terminating SF 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.
Once a TLS connection is established, the receiving peer is prepared 5.2.2.2. Receive SIP requests
to receive incoming SIP requests. For new requests (dialog forming
or not) the receiving peer verifies that the target (request-URI) is
a domain that for which it is responsible. For these requests, there
should be no remaining Route header field values. Next the receiving
verifies that the Identity header is valid, corresponds to the
message, and 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.
Once a trust relationship is established, the receiving peer is
prepared to receive incoming SIP requests. For new requests (dialog
forming or not) the receiving peer verifies if the target (request-
URI) is a domain that for which it is responsible. For these
requests, there should be no remaining Route header field values.
For in-dialog requests, the receiving peer can verify that it For in-dialog requests, the receiving peer can verify that it
corresponds to the top-most Route header field value. The peer also corresponds to the top-most Route header field value.
validates any Identity header if present.
The receiving peer MAY reject incoming requests due to local policy. The receiving peer may reject incoming requests due to local policy.
When a request is rejected because the initiating peer is not When a request is rejected because the initiating peer is not
authorized to peer, the receiving peer SHOULD respond with a 403 authorized to peer, the receiving peer should respond with a 403
response with the reason phrase "Unsupported Peer". response with the reason phrase "Unsupported Peer".
5.6. Media Function (MF) 5.3. Target SSP Procedures
5.3.1. Signaling Function (SF)
5.3.1.1. TLS
When the receiving peer receives a TLS client hello, it responds
with its certificate. The target SSP certificate should be valid
and rooted in a well-known certificate authority. The procedures to
authenticate the SSP's originating domain are specified in [24].
If the requests should contain a valid Identity and Identity-Info
header as described in [12] the target SF 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.
5.3.1.2. Receive SIP requests
The procedures of the SF of the target SSP are the same as the ones
described in section 5.2.2.2 with the addition that it might
establish a connection to another target SSP, and in this case use
the procedures recommended to an originating SSP (section 5.1).
5.4. Media Function (MF)
The purpose of the MF is to perform media related functions such as The purpose of the MF is to perform media related functions such as
media transcoding and media security implementation between two media transcoding and media security implementation between two
SSPs. SSPs.
An Example of this is to transform a voice payload from one codec An Example of this is to transform a voice payload from one codec
(e.g., G.711) to another (e.g., EvRC). Additionally, the MF MAY (e.g., G.711) to another (e.g., EvRC). Additionally, the MF may
perform media relaying, media security, privacy, and encryption. perform media relaying, media security, privacy, and encryption.
5.7. Policy Considerations 5.5. Policy Considerations
In the context of the SPEERMINT working group when two SSPs peer, In the context of the SPEERMINT working group when two SSPs peer,
there MAY be a desire to exchange peering policy information there MAY be a desire to exchange peering policy information
dynamically. There are specifications in progress in the SIPPING dynamically. There are specifications in progress in the SIPPING
working group to define policy exchange between an UA and a domain working group to define policy exchange between an UA and a domain
[23] and providing profile data to SIP user agents [24] These [23] and providing profile data to SIP user agents [24] These
considerations borrow from both. considerations borrow from both.
Following the terminology introduced in [12], this package uses the Following the terminology introduced in [12], this package uses the
terms Peering Session-Independent and Session-Specific policies in terms Peering Session-Independent and Session-Specific policies in
skipping to change at page 15, line 40 skipping to change at page 15, line 17
amongst others. The time period between Peering Session- amongst others. The time period between Peering Session-
Independent policy changes is much greater than the time it Independent policy changes is much greater than the time it
takes to establish a call. takes to establish a call.
o Peering Session-Specific polices includes supported o Peering Session-Specific polices includes supported
connection/call rate, total number of connections/calls connection/call rate, total number of connections/calls
available, current utilization, amongst others. Peering available, current utilization, amongst others. Peering
Session-specific policies can change within the time it takes Session-specific policies can change within the time it takes
to establish a call. to establish a call.
These policies can be Peer dependent or independent, creating the Likewise, but orthogonal to session dependency, an SSP may have
following peering policy tree definition: policies that may be peer-dependent or peer-independent. That is,
the session-dependent and session-independent policies may by
o Peer Independent further sub-divided and modified by additional controls that depend
Session dependent on which peer SSP or federation with which communications is being
Session independent established.
o Peer Dependent
Session dependent
Session independent
6. Call Control and Media Control Deployment Options 6. Call Control and Media Control Deployment Options
The peering functions can either be deployed along the following two The peering functions can be deployed along the following two
dimensions depending upon how the signaling function and the media dimensions depending upon how the signaling and the media functions
function along with IP functions are implemented: along with IP layer are implemented:
Composed or Decomposed: Addresses the question whether the media Composed or Decomposed: Addresses the question whether the media
must flow through the same physical and geographic elements as SIP must flow through the same physical and geographic elements as SIP
dialogs and sessions. dialogs and sessions.
Centralized or Distributed: Addresses the question whether the Centralized or Distributed: Addresses the question whether the
logical and physical peering points are in one geographical location logical and physical interconnections are in one geographical
or distributed to multiple physical locations on the SSP's network. location or distributed to multiple physical locations on the SSP's
network.
In a composed model, SF and MF functions are implemented in one In a composed model, SF and MF functions are implemented in one
peering logical element. peering logical element.
Provider A Provider B Provider A Provider B
---------- . . ---------- ---------- . . ----------
/ \ . . / \ / \ . . / \
| | . _ . | | | | . _ . | |
| +----+ . / \_ . +----+ | | +----+ . / \_ . +----+ |
| | SF |<-----/ \------| SF | | | | SF |<-----/ \------| SF | |
skipping to change at page 17, line 15 skipping to change at page 16, line 39
scalability. scalability.
In a decomposed model, SF and MF are implemented in separate peering In a decomposed model, SF and MF are implemented in separate peering
logical elements. SFs are implemented in a proxy and MFs are logical elements. SFs are implemented in a proxy and MFs are
implemented in another logical element. The scaling of signaling implemented in another logical element. The scaling of signaling
versus scaling of media may differ between applications. versus scaling of media may differ between applications.
Decomposing allows each to follow a separate migration path. Decomposing allows each to follow a separate migration path.
This model allows the implementation of M:N model where one SF is This model allows the implementation of M:N model where one SF is
associated with multiple peering MF and one peering MF is associated associated with multiple peering MF and one peering MF is associated
with multiple peering proxies. Generally, a vertical protocol with multiple SFs. Generally, a vertical protocol associates the
associates the relationship between a SF and a MF. This architecture relationship between a SF and a MF. This architecture reduces the
reduces the potential of a single point of failure. It allows potential of a single point of failure. It allows separation of the
separation of the policy decision point and the policy enforcement policy decision point and the policy enforcement point. An example
point. An example of disadvantages is the scaling complexity because of disadvantages is the scaling complexity because of the M:N
of the M:N relationship and latency due to the vertical control relationship and latency due to the vertical control messages
messages between entities. between entities.
7. Address space considerations 7. Address space considerations
Peering must occur in a common address space, which is defined by Peering must occur in a common IP address space, which is defined by
the federation, which may be entirely on the public Internet, or the federation, which may be entirely on the public Internet, or
some private address space. The origination or termination networks some private address space. The origination or termination networks
may or may not entirely be in that same address space. If they are may or may not entirely be in the same address space. If they are
not, then a network address translation (NAT) or similar may be not, then a network address translation (NAT) or similar function
needed before the signaling or media is presented correctly to the may be needed before the signaling or media is presented correctly
federation. The only requirement is that all associated entities to the federation. The only requirement is that all associated
across the peering interface are reachable. entities across the peering interface are reachable.
8. Security Considerations 8. Security Considerations
In all cases, cryptographic-based security should be maintained as In all cases, cryptographic-based security should be maintained as
an optional requirement between peering providers conditioned on the an optional requirement between peering providers conditioned on the
presence or absence of underlying physical security of peer presence or absence of underlying physical security of peer
connections, e.g. within the same secure physical building. connections, e.g. within the same secure physical building.
In order to maintain a consistent approach, unique and specialized In order to maintain a consistent approach, unique and specialized
security requirements common for the majority of peering security requirements common for the majority of peering
skipping to change at page 18, line 16 skipping to change at page 17, line 40
9. IANA Considerations 9. IANA Considerations
There are no IANA considerations at this time. There are no IANA considerations at this time.
10. Acknowledgments 10. Acknowledgments
The working group thanks Sohel Khan for his initial architecture The working group thanks Sohel Khan for his initial architecture
draft that helped to initiate work on this draft. draft that helped to initiate work on this draft.
A significant portion of this draft is taken from [14] with A portion of this draft is taken from [14] with permission from the
permission from the author R. Mahy. The other important contributor author R. Mahy. The other important contributor is Otmar Lendl.
is Otmar Lendl.
11. References References
11.1. Normative References 10.1. Normative References
[1] Bradner, S., "Key words for use in RFCs to Indicate [1] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997. Requirement Levels", BCP 14, RFC 2119, March 1997.
[2] Mealling, M. and R. Daniel, "The Naming Authority Pointer [2] Mealling, M. and R. Daniel, "The Naming Authority Pointer
(NAPTR) DNS Resource Record", RFC 2915, September 2000. (NAPTR) DNS Resource Record", RFC 2915, September 2000.
[3] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston, A., [3] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston, A.,
Peterson, J., Sparks, R., Handley, M., and E. Schooler, "SIP: Peterson, J., Sparks, R., Handley, M., and E. Schooler, "SIP:
Session Initiation Protocol", RFC 3261, June 2002. Session Initiation Protocol", RFC 3261, June 2002.
skipping to change at page 20, line 5 skipping to change at page 19, line 5
Services and Protocols for Advanced Networking (TISPAN); Gate Services and Protocols for Advanced Networking (TISPAN); Gate
control protocol". control protocol".
[11] Peterson, J., "enumservice registration for Session Initiation [11] Peterson, J., "enumservice registration for Session Initiation
Protocol (SIP) Addresses-of-Record", RFC 3764, April 2004. Protocol (SIP) Addresses-of-Record", RFC 3764, April 2004.
[12] Livingood, J. and R. Shockey, "IANA Registration for an [12] Livingood, J. and R. Shockey, "IANA Registration for an
Enumservice Containing PSTN Signaling Information", RFC 4769, Enumservice Containing PSTN Signaling Information", RFC 4769,
November 2006. November 2006.
11.2. Informative References 10.2. Informative References
[13] Malas, D., "SPEERMINT Terminology", draft-ietf-speermint- [13] Malas, D., "SPEERMINT Terminology", draft-ietf-speermint-
terminology-16 (work in progress), February 2008. terminology-16 (work in progress), February 2008.
[14] Mule, J-F., "SPEERMINT Requirements for SIP-based VoIP [14] Mule, J-F., "SPEERMINT Requirements for SIP-based VoIP
Interconnection", draft-ietf-speermint-requirements-03.txt, Interconnection", draft-ietf-speermint-requirements-04.txt,
November 2007. February 2008.
[15] Mahy, R., "A Minimalist Approach to Direct Peering", draft- [15] Mahy, R., "A Minimalist Approach to Direct Peering", draft-
mahy-speermint-direct-peering-02.txt, July 2007. mahy-speermint-direct-peering-02.txt, July 2007.
[16] Penno, R., et al., "SPEERMINT Routing Architecture Message [16] Penno, R., et al., "SPEERMINT Routing Architecture Message
Flows", draft-ietf-speermint-flows-02.txt", April 2007. Flows", draft-ietf-speermint-flows-02.txt", April 2007.
[17] Houri, A., et al., "RTC Provisioning Requirements", draft- [17] Houri, A., et al., "RTC Provisioning Requirements", draft-
houri-speermint-rtc-provisioning-reqs-00.txt, June, 2006. houri-speermint-rtc-provisioning-reqs-00.txt, June, 2006.
[18] Habler, M., et al., "A Federation based VOIP Peering [18] Habler, M., et al., "A Federation based VOIP Peering
Architecture", draft-lendl-speermint-federations-03.txt, Architecture", draft-lendl-speermint-federations-03.txt,
September 2006. September 2006.
[19] Mahy, R., "A Telephone Number Mapping (ENUM) Service [19] Mahy, R., "A Telephone Number Mapping (ENUM) Service
Registration for Instant Messaging (IM) Services", RFC 5028 Registration for Instant Messaging (IM) Services", draft-ietf-
enum-im-service-03 (work in progress), March 2006.
[20] Haberler, M. and R. Stastny, "Combined User and Carrier ENUM [20] Haberler, M. and R. Stastny, "Combined User and Carrier ENUM
in the e164.arpa tree", draft-haberler-carrier-enum-03 (work in the e164.arpa tree", draft-haberler-carrier-enum-03 (work
in progress), March 2006. in progress), March 2006.
[21] Penno, R., Malas D., and Melampy, P., "A Session Initiation [21] Penno, R., Malas D., and Melampy, P., "A Session Initiation
Protocol (SIP) Event package for Peering", draft-penno- Protocol (SIP) Event package for Peering", draft-penno-
sipping-peering-package-01 (work in progress), September 2006. sipping-peering-package-00 (work in progress), September 2006.
[22] Hollander, D., Bray, T., and A. Layman, "Namespaces in XML", [22] Hollander, D., Bray, T., and A. Layman, "Namespaces in XML",
W3C REC REC-xml-names-19990114, January 1999. W3C REC REC-xml-names-19990114, January 1999.
[23] Burger, E (Ed.), "A Mechanism for Content Indirection in [23] Burger, E (Ed.), "A Mechanism for Content Indirection in
Session Initiation Protocol (SIP) Messages", RFC 4483, May Session Initiation Protocol (SIP) Messages", RFC 4483, May
2006 2006
[24] Gurbani, V., Lawrence, S., and B. Laboratories, "Domain
Certificates in the Session Initiation Protocol (SIP)", draft-
ietf-sip-domain-certs-00 (work in progress), November 2007.
Author's Addresses Author's Addresses
Reinaldo Penno (Editor)
Juniper Networks
1194 N Mathilda Avenue
Sunnyvale, CA
USA
Email: rpenno@juniper.net
Mike Hammer Mike Hammer
Cisco Systems Cisco Systems
13615 Dulles Technology Drive 13615 Dulles Technology Drive
Herndon, VA 20171 Herndon, VA 20171
USA USA
Email: mhammer@cisco.com Email: mhammer@cisco.com
Sohel Khan, Ph.D. Sohel Khan, Ph.D.
Comcast Cable Communications Comcast Cable Communications
U.S.A U.S.A
Email: sohel_khan@cable.comcast.com Email: sohel_khan@cable.comcast.com
Daryl Malas Daryl Malas
Level 3 Communications LLC CableLabs
1025 Eldorado Blvd. 858 Coal Creek Circle
Broomfield, CO 80021 Louisville, CO 80027
USA Email: d.malas@cablelabs.com
EMail: daryl.malas@level3.com
Reinaldo Penno (Editor)
Juniper Networks
1194 N Mathilda Avenue
Sunnyvale, CA
USA
Email: rpenno@juniper.net
Adam Uzelac Adam Uzelac
Global Crossing Global Crossing
1120 Pittsford Victor Road 1120 Pittsford Victor Road
PITTSFORD, NY 14534 PITTSFORD, NY 14534
USA USA
Email: adam.uzelac@globalcrossing.com Email: adam.uzelac@globalcrossing.com
Intellectual Property Statement Intellectual Property Statement
 End of changes. 98 change blocks. 
279 lines changed or deleted 277 lines changed or added

This html diff was produced by rfcdiff 1.34. The latest version is available from http://tools.ietf.org/tools/rfcdiff/