idnits 2.17.1 draft-ietf-speermint-architecture-09.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- ** The document seems to lack a License Notice according IETF Trust Provisions of 28 Dec 2009, Section 6.b.i or Provisions of 12 Sep 2009 Section 6.b -- however, there's a paragraph with a matching beginning. Boilerplate error? -- It seems you're using the 'non-IETF stream' Licence Notice instead Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- ** There are 148 instances of too long lines in the document, the longest one being 11 characters in excess of 72. == There are 9 instances of lines with non-RFC6890-compliant IPv4 addresses in the document. If these are example addresses, they should be changed. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year == The document seems to lack the recommended RFC 2119 boilerplate, even if it appears to use RFC 2119 keywords. (The document does seem to have the reference to RFC 2119 which the ID-Checklist requires). -- The document seems to lack a disclaimer for pre-RFC5378 work, but may have content which was first submitted before 10 November 2008. If you have contacted all the original authors and they are all willing to grant the BCP78 rights to the IETF Trust, then this is fine, and you can ignore this comment. If not, you may need to add the pre-RFC5378 disclaimer. (See the Legal Provisions document at https://trustee.ietf.org/license-info for more information.) -- The document date (November 10, 2009) is 5278 days in the past. Is this intentional? Checking references for intended status: Informational ---------------------------------------------------------------------------- -- Looks like a reference, but probably isn't: 'RFC2119' on line 107 -- Looks like a reference, but probably isn't: 'RFC 5486' on line 353 -- Looks like a reference, but probably isn't: 'SBC RFC' on line 175 == Unused Reference: '1' is defined on line 401, but no explicit reference was found in the text == Unused Reference: '2' is defined on line 404, but no explicit reference was found in the text == Unused Reference: '3' is defined on line 407, but no explicit reference was found in the text == Unused Reference: '5' is defined on line 414, but no explicit reference was found in the text == Unused Reference: '6' is defined on line 418, but no explicit reference was found in the text == Unused Reference: '7' is defined on line 422, but no explicit reference was found in the text == Unused Reference: '12' is defined on line 437, but no explicit reference was found in the text == Unused Reference: '15' is defined on line 449, but no explicit reference was found in the text == Unused Reference: '16' is defined on line 452, but no explicit reference was found in the text == Unused Reference: '17' is defined on line 455, but no explicit reference was found in the text == Unused Reference: '18' is defined on line 458, but no explicit reference was found in the text == Unused Reference: '19' is defined on line 461, but no explicit reference was found in the text == Unused Reference: '20' is defined on line 465, but no explicit reference was found in the text == Unused Reference: '21' is defined on line 469, but no explicit reference was found in the text == Unused Reference: '22' is defined on line 473, but no explicit reference was found in the text == Unused Reference: '23' is defined on line 476, but no explicit reference was found in the text ** Obsolete normative reference: RFC 2915 (ref. '2') (Obsoleted by RFC 3401, RFC 3402, RFC 3403, RFC 3404) ** Obsolete normative reference: RFC 4366 (ref. '5') (Obsoleted by RFC 5246, RFC 6066) == Outdated reference: A later version (-17) exists of draft-ietf-speermint-terminology-16 == Outdated reference: A later version (-11) exists of draft-ietf-speermint-requirements-04 == Outdated reference: A later version (-05) exists of draft-ietf-speermint-flows-02 == Outdated reference: A later version (-01) exists of draft-penno-sipping-peering-package-00 == Outdated reference: A later version (-07) exists of draft-ietf-sip-domain-certs-00 Summary: 4 errors (**), 0 flaws (~~), 24 warnings (==), 6 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 1 Speermint Working Group A.Uzelac(Ed.) 2 Internet Draft Global Crossing 3 Intended status: Informational 4 Expires: May 2010 5 November 10, 2009 7 SPEERMINT Peering Architecture 8 draft-ietf-speermint-architecture-09 10 Status of this Memo 12 This Internet-Draft is submitted to IETF in full conformance with the 13 provisions of BCP 78 and BCP 79. 15 Internet-Drafts are working documents of the Internet Engineering 16 Task Force (IETF), its areas, and its working groups. Note that 17 other groups may also distribute working documents as Internet- 18 Drafts. 20 Internet-Drafts are draft documents valid for a maximum of six months 21 and may be updated, replaced, or obsoleted by other documents at any 22 time. It is inappropriate to use Internet-Drafts as reference 23 material or to cite them other than as "work in progress." 25 The list of current Internet-Drafts can be accessed at 26 http://www.ietf.org/ietf/1id-abstracts.txt. 28 The list of Internet-Draft Shadow Directories can be accessed at 29 http://www.ietf.org/shadow.html. 31 This Internet-Draft will expire on May 26, 2010. 33 Copyright Notice 35 Copyright (c) 2009 IETF Trust and the persons identified as the 36 document authors. All rights reserved. 38 This document is subject to BCP 78 and the IETF Trust's Legal Provisions 39 Relating to IETF Documents (http://trustee.ietf.org/license-info) 40 in effect on the date of publication of this document. Please 41 review these documents carefully, as they describe your rights and 42 restrictions with respect to this document. Code Components 43 extracted from this document must include Simplified BSD License 44 text as described in Section 4.e of the Trust Legal Provisions and 45 are provided without warranty as described in the BSD License." 47 Abstract 49 This document defines the SPEERMINT peering architecture, its functional 50 components and peering interface functions. It also describes the steps taken 51 to establish a session between two peering domains in the context of the 52 functions defined. 54 Table of Contents 56 1. Introduction...................................................2 57 2. Reference SPEERMINT Architecture...............................4 58 3. Procedures of Inter-domain SSP Session Establishment...........4 59 3.1. Relationships between functions/elements..................5 60 4. Recommended SSP Procedures.....................................5 61 4.1. Originating SSP Procedures................................5 62 4.1.1. The Look-Up Function (LUF)...........................5 63 4.1.1.1. Target Address Analysis.........................6 64 4.1.1.2. ENUM Lookup.....................................6 65 4.1.2. Location Routing Function (LRF)......................6 66 4.1.2.1. DNS Resolution..................................7 67 4.1.2.2. Routing Table...................................7 68 4.1.2.3. LRF to LRF Routing..............................7 69 4.1.3. The Signaling Path Border Element (SBE)..............7 70 4.1.3.1. Establishing a Trusted Relationship.............8 71 4.1.3.2. Sending the SIP request.........................8 72 4.2. Target SSP Procedures.....................................8 73 4.2.1. The Ingress Signaling Path Border Element (SBE)......8 74 4.2.1.1. TLS.............................................8 75 4.2.1.2. Receive SIP requests............................9 76 4.3. Data Path Border Element (DBE)............................9 77 5. Address space considerations...................................9 78 6. Security Considerations........................................9 79 7. IANA Considerations...........................................10 80 8. Acknowledgments...............................................10 81 9. References....................................................11 82 9.1. Normative References.....................................11 83 9.2. Informative References...................................12 84 Author's Addresses...............................................13 86 1. Introduction 88 The objective of this document is to define a reference peering architecture in 89 the context of Session PEERing for Multimedia INTerconnect (SPEERMINT). In this 90 process, we define the peering reference architecture, its functional 91 components, and peering interface functions from the perspective of a SIP 92 Service provider's (SSP) network. 94 This architecture allows the interconnection of two SSPs in layer 5 peering as 95 defined in the SPEERMINT Requirements [14] and Terminology [13] documents. 97 Layer 3 peering is outside the scope of this document. Hence, the figures in 98 this document do not show routers so that the focus is on Layer 5 protocol 99 aspects. 101 This document uses terminology defined in the SPEERMINT Terminology document 102 [13], so the reader should be familiar with all the terms defined there. 104 In this document, the key words "MUST", "MUST NOT", "REQUIRED", "SHALL", 105 "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" are 106 to be interpreted as described in [RFC2119]. 108 2. Reference SPEERMINT Architecture 110 Figure 2 depicts the SPEERMINT architecture and logical functions that form the 111 peering between two SSPs. 113 --------------- --------------- 114 / \ / \ 115 | +--LUF-+ | +------+ | +--LUF-+ | 116 | |->| | | | ENUM | | | |<-| | 117 | | | +------------>| TN DB|<------------+ | | | 118 | | | | | +------+ | | | | | 119 | | +------+ | | +------+ | | 120 | | | | | | 121 | | +--LRF-+ | +--------+ | +--LRF-+ | | 122 | |->| | | | DNS | | | |<-| | 123 | | | +----------->|IP Addrs|<-----------+ | | | 124 | | | | | +--------+ | | | | | 125 | | +------+ | | +------+ | | 126 | | | | | | 127 | | | | | | 128 | | +-------+ +-------+ | | 129 | ----------->| | | |<----------- | 130 | | SBE |<------------>| SBE | | 131 | | | | | | 132 | +-------+ +-------+ | 133 | SSP1 | | SSP2 | 134 | +-------+ +-------+ | 135 | | | | | | 136 | | DBE |<------------>| DBE | | 137 | | | | | | 138 | +-------+ +-------+ | 139 \ / \ / 140 --------------- --------------- 141 Figure 1: Reference SPEERMINT Architecture 143 For further details on the elements and functions described in this figure, 144 please refer to [RFC 5486]. 146 3. Procedures of Inter-domain SSP Session Establishment 148 This document assumes that in order for a session to be established from a UA 149 in the Originating SSP's network to an UA in the Target SSP's network the 150 following steps are taken: 152 1. Determine the target SSP via the LUF. 154 a. If the target address represents an intra-SSP resource, the 155 behavior is out-of-scope with respect to this draft. 157 2. Determine the address of the SF of the target SSP via the LRF. 159 3. Establish the session 161 4. Exchange the media, which could include voice, video, tec, etc. 163 5. End the session (BYE) 165 The originating SSP would likely perform steps 1-4, and the target SSP would 166 likely perform steps 4-5. 168 In the case the target SSP changes, then steps 1-4 would be repeated. This is 169 reflected in Figure 2 that shows the target SSP with its own peering functions. 171 3.1. Relationships between functions/elements 173 - An SBE can contain a SF function. 174 - An SF can perform LUF and LRF functions. 175 - As an additional consideration, a Session Border Controller [SBC RFC], can 176 contain an SF, SBE and DBE, and may perform the LUF and LRF functions. 177 - The following functions can communicate as follows, depending upon various 178 real-world implementations: 179 o SF can communicate with LUF, LRF, SBE and SF 180 o LUF can communicator with SF and SBE 181 o LRF can communicate with SF and SBE 183 4. Recommended SSP Procedures 185 This section describes the functions in more detail and provides some 186 recommendations on the role they would play in a SIP call in a Layer 5 peering 187 scenario. 189 Some of the information in the section is taken from [14] and is put here for 190 continuity purposes. 192 4.1. Originating SSP Procedures 194 4.1.1. The Look-Up Function (LUF) 196 Purpose is to determine the SF of the target domain of a given request and 197 optionally develop Session Establishment Data. 199 4.1.1.1. Target Address Analysis 201 When the originating SSP receives a request to communicate, it analyzes the 202 target URI to determine whether the call needs to be routed internal or 203 external to its network. The analysis method is internal to the SSP; thus, 204 outside the scope of SPEERMINT. 206 If the target address does not represent a resource inside the originating 207 SSP's administrative domain or federation of domains, then the originating SSP 208 performs a Lookup Function (LUF) to determine a target address, and then is 209 resolves the call routing data by using the Location routing Function (LRF). 211 For example, if the request to communicate is for an im: or pres: URI type, the 212 originating SSP follows the procedures in [8]. If the highest priority 213 supported URI scheme is sip: or sips: the originating SSP skips to SIP DNS 214 resolution in Section 5.1.3. Likewise, if the target address is already a sip: 215 or sips: URI in an external domain, the originating SSP skips to SIP DNS 216 resolution in Section 4.1.2.1. 218 If the target address corresponds to a specific E.164 address, the SSP may need 219 to perform some form of number plan mapping according to local policy. For 220 example, in the United States, a dial string beginning "011 44" could be 221 converted to "+44", or in the United Kingdom "00 1" could be converted to "+1". 222 Once the SSP has an E.164 address, it can use ENUM. 224 4.1.1.2. ENUM Lookup 226 If an external E.164 address is the target, the originating SSP consults the 227 public "User ENUM" rooted at e164.arpa, according to the procedures described 228 in RFC 3761. The SSP must query for the "E2U+sip" enumservice as described in 229 RFC 3764 [11], but MAY check for other enumservices. The originating SSP MAY 230 consult a cache or alternate representation of the ENUM data rather than actual 231 DNS queries. Also, the SSP may skip actual DNS queries if the originating SSP 232 is sure that the target address country code is not represented in e164.arpa. 233 If a sip: or sips: URI is chosen the SSP skips to Section 5.1.6. 235 If an im: or pres: URI is chosen for based on an "E2U+im" [8] or "E2U+pres" [9] 236 enumserver, the SSP follows the procedures for resolving these URIs to URIs for 237 specific protocols such a SIP or XMPP as described in the previous section. 239 4.1.2. Location Routing Function (LRF) 241 The LRF of an Originating SSP analyzes target address and target domain 242 identified by the LUF, and discovers the next hop signaling function (SF) in a 243 peering relationship. The resource to determine the SF of the target domain 244 might be provided by a third-party as in the assisted-peering case. The 245 following sections define mechanisms which may be used by the LRF. These are 246 not in any particular order and, importantly, not all of them may be used. 248 4.1.2.1. DNS Resolution 250 The originating SSP uses the procedures in RFC 3263 [4] Section 4 to determine 251 how to contact the receiving SSP. To summarize the RFC 3263 procedure: unless 252 these are explicitly encoded in the target URI, a transport is chosen using 253 NAPTR records, a port is chosen using SRV records, and an address is chosen 254 using A or AAAA records. 256 When communicating with another SSP, entities compliant to this document should 257 select a TLS-protected transport for communication from the originating SSP to 258 the receiving SSP if available. 260 4.1.2.2. Routing Table 262 If there are no End User ENUM records and the Originating SSP cannot discover 263 the carrier-of-record or if the Originating SSP cannot reach the carrier-of- 264 record via SIP peering, the Originating SSP may deliver the call to the PSTN or 265 reject it. Note that the originating SSP may forward the call to another SSP 266 for PSTN gateway termination by prior arrangement using the routing table. 268 If so, the originating SSP rewrites the Request-URI to address the gateway 269 resource in the target SSP's domain and MAY forward the request on to that SSP 270 using the procedures described in the remainder of these steps. 272 4.1.2.3. LRF to LRF Routing 274 Communications between the LRF of two interconnecting SSPs may use DNS or 275 statically provisioned IP Addresses for reachability. Other inputs to 276 determine the path may be code-based routing, method-based routing, Time of 277 day, least cost and/or source-based routing. 279 4.1.3. The Signaling Path Border Element (SBE) 281 The purpose of signaling function is to perform routing of SIP messages as well 282 as optionally implement security and policies on SIP messages, and to assist in 283 discovery/exchange of parameters to be used by the Media Function (MF). 285 The signaling function performs the routing of SIP messages. The optional 286 termination and re-initiation of calls may be performed by the signaling path 287 Session Border Element (SBE), or other signaling elements. 289 Optionally, a SF may perform additional functions such as Session Admission 290 Control, SIP Denial of Service protection, SIP Topology Hiding, SIP header 291 normalization, SIP security, privacy, and encryption. 293 The SF of a SBE can also process SDP payloads for media information such as 294 media type, bandwidth, and type of codec; then, communicate this information to 295 the media function. Signaling function may optionally communicate with the 296 network to pass Layer 3 related policies [10] 298 4.1.3.1. Establishing a Trusted Relationship 300 Depending on the security needs and trust relationships between SSPs, different 301 security mechanism can be used to establish SIP calls. These are discussed in 302 the following subsections. 304 4.1.3.1.1. IPSec 306 In certain deployments the use of IPSec between the signaling functions of the 307 originating and terminating domains can be used as a security mechanism instead 308 of TLS. 310 4.1.3.1.2. Co-Location 312 In this scenario the SFs are co-located in a physically secure location and/or 313 are members of a segregated network. In this case messages between the 314 originating and terminating SSPs would be sent as clear text. 316 4.1.3.2. Sending the SIP request 318 Once a trust relationship between the peers is established, the originating SSP 319 sends the request. 321 4.2. Target SSP Procedures 323 4.2.1. The Ingress Signaling Path Border Element (SBE) 325 4.2.1.1. TLS 327 When the receiving SSP receives a TLS client hello, it responds with its 328 certificate. The Target SSP certificate should be valid and rooted in a well- 329 known certificate authority. The procedures to authenticate the SSP's 330 originating domain are specified in [24]. 332 The SF of the Target SSP verifies that the Identity header is valid, 333 corresponds to the message, corresponds to the Identity-Info header, and that 334 the domain in the From header corresponds to one of the domains in the TLS 335 client certificate. 337 4.2.1.2. Receive SIP requests 339 Once a trust relationship is established, the Target SSP is prepared to receive 340 incoming SIP requests. For new requests (dialog forming or not) the receiving 341 SSP verifies if the target (request-URI) is a domain that for which it is 342 responsible. For these requests, there should be no remaining Route header 343 field values. For in-dialog requests, the receiving SSP can verify that it 344 corresponds to the top-most Route header field value. 346 The receiving SSP may reject incoming requests due to local policy. When a 347 request is rejected because the originating SSP is not authorized to peer, the 348 receiving SSP should respond with a 403 response with the reason phrase 349 "Unsupported Peer". 351 4.3. Data Path Border Element (DBE) 353 The purpose of the DBE [RFC 5486] is to perform media related functions such as 354 media transcoding and media security implementation between two SSPs. 356 An Example of this is to transform a voice payload from one codec (e.g., G.711) 357 to another (e.g., EvRC). Additionally, the MF may perform media relaying, 358 media security, privacy, and encryption. 360 5. Address space considerations 362 Peering must occur in a common IP address space, which is defined by the 363 federation, which may be entirely on the public Internet, or some private 364 address space. The origination or termination networks may or may not entirely 365 be in the same address space. If they are not, then a network address 366 translation (NAT) or similar may be needed before the signaling or media is 367 presented correctly to the federation. The only requirement is that all 368 associated entities across the peering interface are reachable. 370 6. Security Considerations 372 In all cases, cryptographic-based security should be maintained as an optional 373 requirement between peering providers conditioned on the presence or absence of 374 underlying physical security of SSP connections, e.g. within the same secure 375 physical building. 377 In order to maintain a consistent approach, unique and specialized security 378 requirements common for the majority of peering relationships, should be 379 standardized within the IETF. These standardized methods may enable 380 capabilities such as dynamic peering relationships across publicly maintained 381 interconnections. 383 7. IANA Considerations 385 There are no IANA considerations at this time. 387 8. Acknowledgments 389 The working group thanks Sohel Khan for his initial architecture 390 draft that helped to initiate work on this draft. 392 A significant portion of this draft is taken from [14] with 393 permission from the author R. Mahy. The other important contributor 394 is Otmar Lendl. Special thanks to Jim McEachern for detailed comments and 395 feedback. 397 9. References 399 9.1. Normative References 401 [1] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", 402 BCP 14, RFC 2119, March 1997. 404 [2] Mealling, M. and R. Daniel, "The Naming Authority Pointer (NAPTR) DNS 405 Resource Record", RFC 2915, September 2000. 407 [3] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston, A., Peterson, 408 J., Sparks, R., Handley, M., and E. Schooler, "SIP: Session Initiation 409 Protocol", RFC 3261, June 2002. 411 [4] Rosenberg, J. and H. Schulzrinne, "Session Initiation Protocol (SIP): 412 Locating SIP Servers", RFC 3263, June 2002. 414 [5] Blake-Wilson, S., Nystrom, M., Hopwood, D., Mikkelsen, J., and T. 415 Wright, "Transport Layer Security (TLS) Extensions", RFC 4366, April 416 2006. 418 [6] Schulzrinne, H., Casner, S., Frederick, R., and V. Jacobson, "RTP: A 419 Transport Protocol for Real-Time Applications", STD 64, RFC 3550, July 420 2003. 422 [7] Peterson, J., Liu, H., Yu, J., and B. Campbell, "Using E.164 numbers 423 with the Session Initiation Protocol (SIP)", RFC 3824, June 2004. 425 [8] Peterson, J., "Address Resolution for Instant Messaging and 426 Presence",RFC 3861, August 2004. 428 [9] Peterson, J., "Telephone Number Mapping (ENUM) Service Registration for 429 Presence Services", RFC 3953, January 2005. 431 [10] ETSI TS 102 333: " Telecommunications and Internet converged Services 432 and Protocols for Advanced Networking (TISPAN); Gate control protocol". 434 [11] Peterson, J., "enumservice registration for Session Initiation Protocol 435 (SIP) Addresses-of-Record", RFC 3764, April 2004. 437 [12] Livingood, J. and R. Shockey, "IANA Registration for an 438 Enumservice Containing PSTN Signaling Information", RFC 4769, November 439 2006. 441 9.2. Informative References 443 [13] Malas, D., "SPEERMINT Terminology", draft-ietf-speermint-terminology-16 444 (work in progress), February 2008. 446 [14] Mule, J-F., "SPEERMINT Requirements for SIP-based VoIP Interconnection", 447 draft-ietf-speermint-requirements-04.txt, February 2008. 449 [15] Mahy, R., "A Minimalist Approach to Direct Peering", draft- 450 mahy-speermint-direct-peering-02.txt, July 2007. 452 [16] Penno, R., et al., "SPEERMINT Routing Architecture Message 453 Flows", draft-ietf-speermint-flows-02.txt", April 2007. 455 [17] Houri, A., et al., "RTC Provisioning Requirements", draft- 456 houri-speermint-rtc-provisioning-reqs-00.txt, June, 2006. 458 [18] Habler, M., et al., "A Federation based VOIP Peering 459 Architecture", draft-lendl-speermint-federations-03.txt, September 2006. 461 [19] Mahy, R., "A Telephone Number Mapping (ENUM) Service 462 Registration for Instant Messaging (IM) Services", draft-ietf- 463 enum-im-service-03 (work in progress), March 2006. 465 [20] Haberler, M. and R. Stastny, "Combined User and Carrier ENUM in the 466 e164.arpa tree", draft-haberler-carrier-enum-03 (work in progress), 467 March 2006. 469 [21] Penno, R., Malas D., and Melampy, P., "A Session Initiation 470 Protocol (SIP) Event package for Peering", draft-penno-sipping-peering- 471 package-00 (work in progress), September 2006. 473 [22] Hollander, D., Bray, T., and A. Layman, "Namespaces in XML", W3C REC 474 REC-xml-names-19990114, January 1999. 476 [23] Burger, E (Ed.), "A Mechanism for Content Indirection in 477 Session Initiation Protocol (SIP) Messages", RFC 4483, May 2006 479 [24] Gurbani, V., Lawrence, S., and B. Laboratories, "Domain Certificates in 480 the Session Initiation Protocol (SIP)", draft-ietf-sip-domain-certs-00 481 (work in progress), November 2007. 483 Author's Addresses 485 Adam Uzelac 486 Global Crossing 487 Rochester, NY - USA 488 Email: adam.uzelac@globalcrossing.com 490 Reinaldo Penno 491 Juniper Networks 492 Sunnyvale, CA - USA 493 Email: rpenno@juniper.net 495 Mike Hammer 496 Cisco Systems 497 Herndon, VA - USA 498 Email: mhammer@cisco.com 500 Sohel Khan, Ph.D. 501 Comcast Cable Communications 502 USA 503 Email: sohel_khan@cable.comcast.com 505 Daryl Malas 506 CableLabs 507 Louisville, CO - USA 508 Email: d.malas@cablelabs.com 510 Hadriel Kaplan 511 Acme Packet 512 Email: hkaplan@acmepacket.com 514 Jason Livingood 515 Comcast 516 Email: Jason_livingood@cable.comcast.com 518 David Schwartz 519 Kayote Systems 520 Email: david.schwartz@kayote.com 522 Rich Shockey 523 Unaffiliated 524 Email: Richard@shockey.us