draft-ietf-dime-nat-control-02.txt | draft-ietf-dime-nat-control-03.txt | |||
---|---|---|---|---|
Internet Engineering Task Force F. Brockners | Internet Engineering Task Force F. Brockners | |||
Internet-Draft S. Bhandari | Internet-Draft S. Bhandari | |||
Intended status: Standards Track Cisco | Intended status: Standards Track Cisco | |||
Expires: September 8, 2010 V. Singh | Expires: January 13, 2011 V. Singh | |||
Mavenir Systems | Mavenir Systems | |||
V. Fajardo | V. Fajardo | |||
Telcordia Technologies | Telcordia Technologies | |||
March 7, 2010 | July 12, 2010 | |||
Diameter Network Address and Port Translation Control Application | Diameter Network Address and Port Translation Control Application | |||
draft-ietf-dime-nat-control-02 | draft-ietf-dime-nat-control-03 | |||
Abstract | Abstract | |||
This document describes the framework, messages, and procedures for | This document describes the framework, messages, and procedures for | |||
the Diameter Network Address and Port Translation Control Application | the Diameter Network address and port translation Control Application | |||
(DNCA), allowing for per-endpoint control of large scale NAT/NAPT | (DNCA). The DNCA allows per endpoint control of large scale Network | |||
devices, which are put in place to cope with IPv4-address space | Address Translators (NATs) and Network Address and Port Translators | |||
completion. The DNCA allows external devices to configure and manage | (NAPTs), which are added to cope with IPv4-address space completion. | |||
a NAT device - expanding the existing Diameter-based AAA and policy | The DNCA allows external devices to configure and manage a NAT device | |||
control capabilities with a NAT/NAPT control component. These | - expanding the existing Diameter-based AAA and policy control | |||
external devices can be network elements in the data plane such as a | capabilities with a NAT and NAPT control component. These external | |||
Network Access Server (NAS), or can be more centralized control plane | devices can be network elements in the data plane such as a Network | |||
devices such as AAA-servers. DNCA establishes a context to commonly | Access Server (NAS), or can be more centralized control plane devices | |||
identify and manage endpoints on a gateway or server, and a large | such as AAA-servers. DNCA establishes a context to commonly identify | |||
scale NAPT/NAT device. This includes, for example, the control of | and manage endpoints on a gateway or server, and a large scale NAT/ | |||
the total number of NAT-bindings allowed or the allocation of a | NAPT device. This includes, for example, the control of the total | |||
specific NAT-binding for a particular endpoint. In addition, it | number of NAT bindings allowed or the allocation of a specific NAT | |||
allows large scale NAT devices to provide information relevant to | binding for a particular endpoint. In addition, it allows large | |||
accounting purposes. | scale NAT devices to provide information relevant to accounting | |||
purposes. | ||||
Status of this Memo | Status of this Memo | |||
This Internet-Draft is submitted to IETF in full conformance with the | This Internet-Draft is submitted in full conformance with the | |||
provisions of BCP 78 and BCP 79. | provisions of BCP 78 and BCP 79. | |||
Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
Task Force (IETF), its areas, and its working groups. Note that | Task Force (IETF). Note that other groups may also distribute | |||
other groups may also distribute working documents as Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
Drafts. | Drafts is at http://datatracker.ietf.org/drafts/current/. | |||
Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
This Internet-Draft will expire on January 13, 2011. | ||||
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 September 8, 2010. | ||||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2010 IETF Trust and the persons identified as the | Copyright (c) 2010 IETF Trust and the persons identified as the | |||
document authors. All rights reserved. | document authors. All rights reserved. | |||
This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
Provisions Relating to IETF Documents | Provisions Relating to IETF Documents | |||
(http://trustee.ietf.org/license-info) in effect on the date of | (http://trustee.ietf.org/license-info) in effect on the date of | |||
publication of this document. Please review these documents | publication of this document. Please review these documents | |||
carefully, as they describe your rights and restrictions with respect | carefully, as they describe your rights and restrictions with respect | |||
to this document. Code Components extracted from this document must | to this document. Code Components extracted from this document must | |||
include Simplified BSD License text as described in Section 4.e of | include Simplified BSD License text as described in Section 4.e of | |||
the Trust Legal Provisions and are provided without warranty as | the Trust Legal Provisions and are provided without warranty as | |||
described in the BSD License. | described in the Simplified BSD License. | |||
Table of Contents | Table of Contents | |||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 5 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 5 | |||
2. Conventions . . . . . . . . . . . . . . . . . . . . . . . . . 6 | 2. Conventions . . . . . . . . . . . . . . . . . . . . . . . . . 6 | |||
3. Deployment Framework . . . . . . . . . . . . . . . . . . . . . 7 | 3. Deployment Framework . . . . . . . . . . . . . . . . . . . . . 7 | |||
3.1. Deployment Scenario . . . . . . . . . . . . . . . . . . . 7 | 3.1. Deployment Scenario . . . . . . . . . . . . . . . . . . . 7 | |||
3.2. Diameter NAPT Control Application Overview . . . . . . . . 8 | 3.2. Diameter NAPT Control Application Overview . . . . . . . . 8 | |||
3.3. Deployment Scenarios For The Diameter NAPT Control | 3.3. Deployment Scenarios For DNCA . . . . . . . . . . . . . . 9 | |||
Application . . . . . . . . . . . . . . . . . . . . . . . 8 | 4. DNCA Session Establishment and Management . . . . . . . . . . 11 | |||
4. Diameter NAT Control Application Session Establishment and | ||||
Management . . . . . . . . . . . . . . . . . . . . . . . . . . 11 | ||||
4.1. Parties Involved . . . . . . . . . . . . . . . . . . . . . 11 | 4.1. Parties Involved . . . . . . . . . . . . . . . . . . . . . 11 | |||
4.2. Session Establishment . . . . . . . . . . . . . . . . . . 11 | 4.2. Session Establishment . . . . . . . . . . . . . . . . . . 11 | |||
4.3. Session Re-Authorization . . . . . . . . . . . . . . . . . 13 | 4.3. Session Re-Authorization . . . . . . . . . . . . . . . . . 13 | |||
4.4. Session And Binding Query . . . . . . . . . . . . . . . . 15 | 4.4. Session and Binding Query . . . . . . . . . . . . . . . . 15 | |||
4.5. Session Termination . . . . . . . . . . . . . . . . . . . 17 | 4.5. Session Termination . . . . . . . . . . . . . . . . . . . 17 | |||
4.6. DNCA Manager/Agent Failures . . . . . . . . . . . . . . . 18 | 4.6. DNCA Manager and Agent Failures . . . . . . . . . . . . . 18 | |||
5. Use Of The Diameter Base Protocol . . . . . . . . . . . . . . 19 | 5. Use Of The Diameter Base Protocol . . . . . . . . . . . . . . 18 | |||
5.1. Securing Diameter Messages . . . . . . . . . . . . . . . . 19 | 5.1. Securing Diameter Messages . . . . . . . . . . . . . . . . 19 | |||
5.2. Accounting Functionality . . . . . . . . . . . . . . . . . 20 | 5.2. Accounting Functionality . . . . . . . . . . . . . . . . . 19 | |||
5.3. Use Of Sessions . . . . . . . . . . . . . . . . . . . . . 20 | 5.3. Use Of Sessions . . . . . . . . . . . . . . . . . . . . . 19 | |||
5.4. Routing Considerations . . . . . . . . . . . . . . . . . . 20 | 5.4. Routing Considerations . . . . . . . . . . . . . . . . . . 19 | |||
5.5. Advertising Application Support . . . . . . . . . . . . . 20 | 5.5. Advertising Application Support . . . . . . . . . . . . . 19 | |||
6. Diameter NAT Control Application Commands . . . . . . . . . . 20 | 6. DNCA Commands . . . . . . . . . . . . . . . . . . . . . . . . 20 | |||
6.1. NAT-Control Request (NCR) Command . . . . . . . . . . . . 21 | 6.1. NAT-Control Request (NCR) Command . . . . . . . . . . . . 20 | |||
6.2. NAT-Control Answer (NCA) Command . . . . . . . . . . . . . 21 | 6.2. NAT-Control Answer (NCA) Command . . . . . . . . . . . . . 21 | |||
7. Diameter NAT Control Application AVPs . . . . . . . . . . . . 22 | 7. DNCA AVPs . . . . . . . . . . . . . . . . . . . . . . . . . . 22 | |||
7.1. Reused Base Protocol AVPs . . . . . . . . . . . . . . . . 22 | 7.1. Reused Base Protocol AVPs . . . . . . . . . . . . . . . . 22 | |||
7.2. Additional Result-Code AVP Values . . . . . . . . . . . . 23 | 7.2. Additional Result-Code AVP Values . . . . . . . . . . . . 23 | |||
7.2.1. Success . . . . . . . . . . . . . . . . . . . . . . . 23 | 7.2.1. Success . . . . . . . . . . . . . . . . . . . . . . . 23 | |||
7.2.2. Transient Failures . . . . . . . . . . . . . . . . . . 24 | 7.2.2. Transient Failures . . . . . . . . . . . . . . . . . . 24 | |||
7.2.3. Permanent Failures . . . . . . . . . . . . . . . . . . 24 | 7.2.3. Permanent Failures . . . . . . . . . . . . . . . . . . 24 | |||
7.3. Reused NASREQ Diameter Application AVPs . . . . . . . . . 25 | 7.3. Reused NASREQ Diameter Application AVPs . . . . . . . . . 25 | |||
7.4. Reused from RFC 4675 . . . . . . . . . . . . . . . . . . . 25 | 7.4. Reused from RFC 4675 . . . . . . . . . . . . . . . . . . . 25 | |||
7.5. Reused from Diameter QoS Application . . . . . . . . . . . 26 | 7.5. Reused from Diameter QoS Application . . . . . . . . . . . 26 | |||
7.6. Reused From ETSI ES 283 034, e4 Diameter Application . . . 26 | 7.6. Reused from ETSI ES 283 034, e4 Diameter Application . . . 26 | |||
7.7. Diameter NAT Control Application Defined AVPs . . . . . . 27 | 7.7. DNCA Defined AVPs . . . . . . . . . . . . . . . . . . . . 27 | |||
7.7.1. NC-Request-Type AVP . . . . . . . . . . . . . . . . . 27 | 7.7.1. NC-Request-Type AVP . . . . . . . . . . . . . . . . . 27 | |||
7.7.2. NAT-Control-Install AVP . . . . . . . . . . . . . . . 28 | 7.7.2. NAT-Control-Install AVP . . . . . . . . . . . . . . . 28 | |||
7.7.3. NAT-Control-Remove AVP . . . . . . . . . . . . . . . . 28 | 7.7.3. NAT-Control-Remove AVP . . . . . . . . . . . . . . . . 28 | |||
7.7.4. NAT-Control-Definition AVP . . . . . . . . . . . . . . 29 | 7.7.4. NAT-Control-Definition AVP . . . . . . . . . . . . . . 29 | |||
7.7.5. NAT-Internal-Address AVP . . . . . . . . . . . . . . . 29 | 7.7.5. NAT-Internal-Address AVP . . . . . . . . . . . . . . . 29 | |||
7.7.6. NAT-External-Address AVP . . . . . . . . . . . . . . . 30 | 7.7.6. NAT-External-Address AVP . . . . . . . . . . . . . . . 30 | |||
7.7.7. Max-NAT-Bindings . . . . . . . . . . . . . . . . . . . 30 | 7.7.7. Max-NAT-Bindings . . . . . . . . . . . . . . . . . . . 30 | |||
7.7.8. NAT-Control-Binding-Rule AVP . . . . . . . . . . . . . 30 | 7.7.8. NAT-Control-Binding-Rule AVP . . . . . . . . . . . . . 30 | |||
7.7.9. Duplicate-Session-Id AVP . . . . . . . . . . . . . . . 30 | 7.7.9. Duplicate-Session-Id AVP . . . . . . . . . . . . . . . 30 | |||
8. Accounting Commands . . . . . . . . . . . . . . . . . . . . . 30 | 8. Accounting Commands . . . . . . . . . . . . . . . . . . . . . 30 | |||
8.1. NAT Control Accounting Messages . . . . . . . . . . . . . 31 | 8.1. NAT Control Accounting Messages . . . . . . . . . . . . . 31 | |||
8.2. NAT Control Accounting AVPs . . . . . . . . . . . . . . . 31 | 8.2. NAT Control Accounting AVPs . . . . . . . . . . . . . . . 31 | |||
8.2.1. NAT-Control-Record . . . . . . . . . . . . . . . . . . 31 | 8.2.1. NAT-Control-Record . . . . . . . . . . . . . . . . . . 31 | |||
8.2.2. NAT-Control-Binding-Status . . . . . . . . . . . . . . 31 | 8.2.2. NAT-Control-Binding-Status . . . . . . . . . . . . . . 31 | |||
8.2.3. Current-NAT-Bindings . . . . . . . . . . . . . . . . . 32 | 8.2.3. Current-NAT-Bindings . . . . . . . . . . . . . . . . . 32 | |||
9. AVP Occurrence Table . . . . . . . . . . . . . . . . . . . . . 32 | 9. AVP Occurrence Table . . . . . . . . . . . . . . . . . . . . . 32 | |||
9.1. DNCA AVP Table for NAT control initial and update | 9.1. DNCA AVP Table for NAT Control Initial and Update | |||
requests . . . . . . . . . . . . . . . . . . . . . . . . . 33 | Requests . . . . . . . . . . . . . . . . . . . . . . . . . 33 | |||
9.2. DNCA AVP Table for Session Query request . . . . . . . . . 33 | 9.2. DNCA AVP Table for Session Query request . . . . . . . . . 33 | |||
9.3. DNCA AVP Table for NAT Control Terminate requests . . . . 33 | 9.3. DNCA AVP Table for NAT Control Terminate requests . . . . 33 | |||
9.4. DNCA AVP Table For Accounting Message . . . . . . . . . . 34 | 9.4. DNCA AVP Table for Accounting Message . . . . . . . . . . 34 | |||
10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 34 | 10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 34 | |||
10.1. Command Codes . . . . . . . . . . . . . . . . . . . . . . 34 | 10.1. Command Codes . . . . . . . . . . . . . . . . . . . . . . 34 | |||
10.2. AVP Codes . . . . . . . . . . . . . . . . . . . . . . . . 35 | 10.2. AVP Codes . . . . . . . . . . . . . . . . . . . . . . . . 35 | |||
10.3. AVP Values . . . . . . . . . . . . . . . . . . . . . . . . 35 | 10.3. AVP Values . . . . . . . . . . . . . . . . . . . . . . . . 35 | |||
10.3.1. Result-Code AVP Values . . . . . . . . . . . . . . . . 35 | 10.3.1. Result-Code AVP Values . . . . . . . . . . . . . . . . 35 | |||
10.4. Application IDs . . . . . . . . . . . . . . . . . . . . . 36 | 10.4. Application IDs . . . . . . . . . . . . . . . . . . . . . 36 | |||
11. Security Considerations . . . . . . . . . . . . . . . . . . . 36 | 11. Security Considerations . . . . . . . . . . . . . . . . . . . 36 | |||
12. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 37 | 12. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 37 | |||
13. Change History (to be removed prior to publication as an | 13. Change History (to be removed prior to publication as an | |||
RFC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 | RFC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 | |||
skipping to change at page 5, line 11 | skipping to change at page 5, line 11 | |||
14.1. Normative References . . . . . . . . . . . . . . . . . . . 38 | 14.1. Normative References . . . . . . . . . . . . . . . . . . . 38 | |||
14.2. Informative References . . . . . . . . . . . . . . . . . . 38 | 14.2. Informative References . . . . . . . . . . . . . . . . . . 38 | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 39 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 39 | |||
1. Introduction | 1. Introduction | |||
Internet service providers have started to deploy Network Address | Internet service providers have started to deploy Network Address | |||
Translators (NATs) and Network Address and Port Translators (NAPTs) | Translators (NATs) and Network Address and Port Translators (NAPTs) | |||
at the edge of their networks to deal with the depletion of available | at the edge of their networks to deal with the depletion of available | |||
public IPv4 addresses. This document defines a Diameter application | public IPv4 addresses. This document defines a Diameter application | |||
for providers deploying such NATs and NAPT devices. The use of a | for providers deploying such NAT and NAPT devices. The use of a | |||
Diameter application allows for simple integration into the existing | Diameter application allows for simple integration into the existing | |||
AAA environment of a provider. | AAA environment of a provider. | |||
The Diameter NAPT Control Application (DNCA) offers the following | The Diameter Network address and port translation Control Application | |||
capabilities: | (DNCA) offers the following capabilities: | |||
1. Limit/Define the number of NAPT/NAT-bindings made available to an | 1. Limits or defines the number of NAPT/NAT bindings made available | |||
individual subscriber or end point. | to an individual subscriber or end point. | |||
2. Support the allocation of specific NAPT/NAT-bindings. Two types | 2. Supports the allocation of specific NAPT/NAT bindings. Two types | |||
of specific bindings can be distinguished: | of specific bindings can be distinguished: | |||
* Allocation of a pre-defined NAT-binding. Both the internal as | * Allocation of a pre-defined NAT binding: Both the internal and | |||
well as the external IP-address/port pair are specified within | external IP address and port pair are specified within the | |||
the request. Some deployment cases, such as access to a web- | request. In some deployment cases, such as access to a web- | |||
server within a user's home network with IP-address and port, | server within a user's home network with IP address and port, | |||
benefit from statically configured bindings. | benefit from statically configured bindings. | |||
* Allocation of an external IP-address for a given internal IP- | * Allocation of an external IP address for a given internal IP | |||
address. The allocated external IP-address will be reported | address: The allocated external IP address is reported back to | |||
back to the requestor. In some deployment scenarios, the | the requestor. In some deployment scenarios, the application | |||
application requires immediate knowledge of the allocated | requires immediate knowledge of the allocated binding for a | |||
binding for a given internal IP-address but does not control | given internal IP address but does not control the allocation | |||
the allocation of the external IP-address (e.g. SIP-proxy | of the external IP address; for example, SIP-proxy server | |||
server deployments). | deployments. | |||
3. Define the external address-pool(s) to be used for allocating an | 3. Defines the external address pool(s) to be used for allocating an | |||
external IP-address. External address-pools can either be pre- | external IP address: External address pools can either be pre- | |||
assigned at the NAPT/NAT, or specified within a request. If pre- | assigned at the NAPT/NAT device, or specified within a request. | |||
assigned address-pools are used, a request needs to include a | If pre-assigned address pools are used, a request needs to | |||
reference to identify the pool. Otherwise, the request will | include a reference to identify the pool. Otherwise, the request | |||
contain a description of the IP- address pool(s) to be used (e.g. | contains a description of the IP address pool(s) to be used; for | |||
list of IP-subnets). | example, list of IP-subnets. | |||
4. Accounting/Reporting: Report established bindings for a | 4. Generates reports and accounting records: Reports established | |||
particular user. The collected information is used by accounting | bindings for a particular user. The collected information is | |||
systems, for statistical purposes, etc. | used by accounting systems for statistical purposes. | |||
5. Query functionality to retrieve details about bindings on demand. | 5. Queries and retrieves details about bindings on demand: This | |||
This feature complements the previously mentioned accounting | feature complements the previously mentioned accounting | |||
functionality mentioned above (see item 4). The query | functionality(see item 4). The query functionality complements | |||
functionality complements alternative information query | alternative information query mechanisms, such as SNMP-based | |||
mechanisms such as SNMP-based mechanisms, if available. | mechanism, if available. | |||
6. Common identification of a subscriber or endpoint on multiple | 6. Identifies a subscriber or endpoint on multiple network devices | |||
network devices such as the NAPT/NAT device, the AAA server, or | (NAPT or NAT device, the AAA-server, or the Network Access Server | |||
the Network Access Server (NAS). Endpoint identification is | (NAS)): Endpoint identification is facilitated through a Global | |||
facilitated through a Global Endpoint ID. Endpoints are | Endpoint ID. Endpoints are identified through a single or a set | |||
identified through a single or a set of classifiers such as IP | of classifiers, such as IP address, VLAN identifier, or interface | |||
address, VLAN identifier, or interface identifier which uniquely | identifier which uniquely identify the traffic associated with a | |||
identify the traffic associated with a particular global endpoint | particular global endpoint | |||
This document is structured as follows: Section 2 lists terminology, | This document is structured as follows: Section 2 lists terminology, | |||
while Section 3 provides an introduction to the Diameter NAPT Control | while Section 3 provides an introduction to the DNCA and its overall | |||
Application and its overall deployment framework. Sections 4 to 8 | deployment framework. Sections 4 to 8 cover the DNCA specifics, with | |||
cover the DNCA specifics, with Section 4 describing session | Section 4 describing session management, Section 5 the use of the | |||
management, Section 5 the use of the Diameter base protocol, Section | Diameter base protocol, Section 6 new commands, Section 7 AVPs used, | |||
6 new commands, Section 7 the respective AVPs used, and Section 8 | and Section 8 accounting aspects. Section 9 presents an AVP | |||
accounting aspects. Section 9 presents an AVP occurance table. IANA | occurance table. IANA and security considerations are addressed in | |||
and security considerations are addressed in Sections 10 and 11. | Sections 10 and 11. | |||
2. Conventions | 2. Conventions | |||
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 [RFC2119]. | document are to be interpreted as described in [RFC2119]. | |||
Abbreviations are used in this document: | Abbreviations used in this document: | |||
AAA: Authentication, Authorization, Accounting | AAA: Authentication, Authorization, Accounting | |||
DNCA: Diameter NAT Control Application | DNCA: Diameter Network address and port translation Control | |||
Application | ||||
NAPT: Network Address and Port Translation | NAPT: Network Address and Port Translation | |||
NAT: Network Address Translation (NAT and NAPT are used in this | NAT: Network Address Translation (NAT and NAPT are used in this | |||
document interchangeably) | document interchangeably) | |||
NAT-Binding or Binding: Association of two IP-address/port pairs | NAT Binding or Binding: Association of two IP address/port pairs | |||
(with one IP-address typically being private and the other one | (with one IP address typically being private and the other one | |||
public) to facilitate NAT | public) to facilitate NAT | |||
NAS: Network Access Server | NAS: Network Access Server | |||
3. Deployment Framework | 3. Deployment Framework | |||
3.1. Deployment Scenario | 3.1. Deployment Scenario | |||
Figure 1 shows a typical network deployment for internet access. A | Figure 1 shows a typical network deployment for Internet access. A | |||
user's IPv4-host gains access to the internet though a Network Access | user's IPv4 host gains access to the Internet though a NAS, which | |||
Server (NAS) which facilitates the authentication of the endpoint and | facilitates the authentication of the endpoint and configures the | |||
configures the user's connection according to the authorization and | user's connection according to the authorization and configuration | |||
configuration data received from the AAA-server upon successful | data received from the AAA-server upon successful authentication. | |||
authentication. Public IPv4 addresses are used throughout the | Public IPv4 addresses are used throughout the network. | |||
network. | ||||
+---------+ | +---------+ | |||
| | | | | | |||
| AAA | | | AAA | | |||
| | | | | | |||
+---------+ | +---------+ | |||
| | | | |||
| | | | |||
| | | | |||
| | | | |||
+---------+ +---------+ +----------+ | +---------+ +---------+ +----------+ | |||
skipping to change at page 7, line 39 | skipping to change at page 7, line 38 | |||
+---------+ +---------+ +----------+ | +---------+ +---------+ +----------+ | |||
<-------------------- Public IPv4 ----------------------> | <-------------------- Public IPv4 ----------------------> | |||
Figure 1: Typical network deployment for internet access | Figure 1: Typical network deployment for internet access | |||
Figure 2 depicts the deployment scenario when a service provider | Figure 2 depicts the deployment scenario when a service provider | |||
introduces a NAT device to increase the efficiency of the global IPv4 | introduces a NAT device to increase the efficiency of the global IPv4 | |||
address pool utilization. The objective is to provide the customer | address pool utilization. The objective is to provide the customer | |||
with connectivity to the public IPv4 Internet. The NAT device | with connectivity to the public IPv4 Internet. The NAT device | |||
performs network address (and optionally protocol) translation, | performs network address and port and optionally address family | |||
depending on whether the access network uses private IPv4 addresses | translation, depending on whether the access network uses private | |||
or public IPv6 addresses, to public IPv4 addresses. If the NAT | IPv4 addresses or public IPv6 addresses, to public IPv4 addresses. | |||
device would be put in place without any endpoint awareness, the | If the NAT device would be put in place without any endpoint | |||
service offerings of the service provider would be hampered. | awareness, the service offerings of the service provider could be | |||
Provisioning static NAT-bindings for particular endpoints, using | hampered. Provisioning static NAT bindings for particular endpoints, | |||
different public IP-address pools for different set of endpoints | using different public IP address pools for different sets of | |||
(e.g. residential or business customers), as well as reporting on the | endpoints; for example, residential or business customers, and | |||
allocated bindings on a per-endpoint basis would be burdensome for a | reporting allocated bindings on a per endpoint basis is burdensome | |||
service provider if the NAT device would not be aware of endpoints | for a service provider if the NAT device is not aware of endpoints | |||
and allow for per-endpoint control and management which easily | and allows per endpoint control and management, which easily | |||
integrates with the already existing per-endpoint management | integrates with the already existing per endpoint management | |||
infrastructure of the service provider. | infrastructure of the service provider. | |||
+---------+ | +---------+ | |||
| | | | | | |||
| AAA | | | AAA | | |||
| | | | | | |||
+---------+ | +---------+ | |||
| | | | |||
| | | | |||
| | | | |||
skipping to change at page 8, line 26 | skipping to change at page 8, line 26 | |||
| Host |----| NAS |----| NAT |----| Internet | | | Host |----| NAS |----| NAT |----| Internet | | |||
| | | | | | | | | | | | | | | | | | |||
+--------+ +---------+ +---------+ +----------+ | +--------+ +---------+ +---------+ +----------+ | |||
<-------- Private IPv4 -----------><--- Public IPv4 ---> | <-------- Private IPv4 -----------><--- Public IPv4 ---> | |||
<-------- Public IPv6 -----------><--- Public IPv4 ---> | <-------- Public IPv6 -----------><--- Public IPv4 ---> | |||
Figure 2: Access network deployment with LSN | Figure 2: Access network deployment with LSN | |||
3.2. Diameter NAPT Control Application Overview | 3.2. Diameter NAPT Control Application Overview | |||
The Diameter NAT Control Application runs between a Diameter NAT | The DNCA runs between a DNCA Agent on the NAT device and the DNCA | |||
Control Application Agent on the NAT and the Diameter NAT Control | Manager. DNCA allows per endpoint control and management of NAT. | |||
Application Manager. DNCA allows for per-endpoint control and | Being based on Diameter, DNCA integrates well with the suite of | |||
management of a NAT. Being based on Diameter, DNCA integrates well | Diameter applications deployed for per endpoint authentication, | |||
with the suite of Diameter applications deployed for per-endpoint | authorization, accounting, and policy control in service provider | |||
authentication, authorization, accounting, and policy control in | networks. | |||
service provider networks. | ||||
DNCA offers request and answer commands to control the allowed number | DNCA offers: | |||
of NAT-bindings per endpoint, to request the allocation of specific | ||||
bindings for an endpoint, to define the address pool to be used for | ||||
an endpoint, to provide per endpoint reporting on the allocated NAT- | ||||
bindings, as well as to provide for unique identification of an | ||||
endpoint on both NAT, AAA-server and NAS, thus simplifying the | ||||
correlation of accounting data streams. | ||||
DNCA allows for controlling the behavior of a NAT device on a per- | o Request and answer commands to control the allowed number of NAT | |||
endpoint basis during initial session establishment as well as at | bindings per endpoint , to request the allocation of specific | |||
later stages by providing an update procedure for already established | bindings for an endpoint, to define the address pool to be used | |||
sessions. Using DNCA, per-endpoint NAT-binding information can be | for an endpoint. | |||
o Provides per endpoint reporting of the allocated NAT bindings. | ||||
o Provides unique identification of an endpoint on NAT device, AAA- | ||||
server and NAS, to simplify correlation of accounting data | ||||
streams. | ||||
DNCA allows controlling the behavior of a NAT device on a per | ||||
endpoint basis during initial session establishment and at later | ||||
stages by providing an update procedure for already established | ||||
sessions. Using DNCA, per endpoint NAT binding information can be | ||||
retrieved either using accounting mechanisms or through an explicit | retrieved either using accounting mechanisms or through an explicit | |||
session query to the NAT. | session query to the NAT device. | |||
3.3. Deployment Scenarios For The Diameter NAPT Control Application | 3.3. Deployment Scenarios For DNCA | |||
Deployment dependent, the role of the Diameter NAT Control Manager | The role of the Diameter NAT Control Manager can be fulfilled by | |||
can be fulfilled by either the NAS or by an external server such as | either the NAS or by an external server, such as AAA-server. The two | |||
an AAA-server. The two deployment scenarios are outlined in Figure 3 | deployment scenarios are outlined in Figure 3 ("integrated | |||
("integrated deployment") and Figure 4 ("autonomous deployment"). | deployment") and Figure 4 ("autonomous deployment"). | |||
Within the figures (M) denotes the network element which takes on the | Within the figures (M) denotes the network element, which takes on | |||
DNCA manager role. Similarly, (A) identifies the network element | the DNCA Manager role. Similarly, (A) identifies the network | |||
which performs the DNCA agent role. | element, which performs the DNCA Agent role. | |||
The integrated deployment approach hides the existence of the NAT | The integrated deployment approach hides the existence of the NAT | |||
device from external servers such as the AAA-server as much as | device from external servers, such as the AAA-server as much as | |||
possible. It is suited for environments where minimal changes to the | possible. It is suited for environments where minimal changes to the | |||
existing AAA deployment are desired. The NAS, taking the role of the | existing AAA deployment are desired. As DNCA Manager the NAS, | |||
DNCA manager, is in charge of initiating and managing the session to | initiates and manages session with the NAT device, exchanges NAT | |||
the NAT device, exchanging NAT specific configuration information as | specific configuration information and handles reporting and | |||
well as handling reporting and accounting information. The NAS | accounting information. The NAS receives reporting and accounting | |||
receives reporting and accounting information from NAT device. This | information from NAT device. With this information, the NAS provides | |||
way the NAS can provide for a single accounting record for the user, | a single accounting record for the user. This reduces the usage of | |||
offloading external accounting systems from correlating accounting | an external accounting system for correlating the information | |||
information received from multiple sources. | received from multiple sources. | |||
An example network attachment for an integrated NAT deployment could | An example network attachment for an integrated NAT deployment can be | |||
be described as follows: An endpoint connects to the network, with | described as follows: An endpoint connects to the network, with the | |||
the NAS being the point of attachment. After successful | NAS being the point of attachment. After successful authentication, | |||
authentication, NAS receives endpoint related authorization data from | NAS receives endpoint related authorization data from the AAA-server. | |||
the AAA-server. A portion of the authorization data applies to per- | A portion of the authorization data applies to per endpoint | |||
endpoint configuration on the NAS itself, another portion describes | configuration on the NAS itself, another portion describes | |||
authorization and configuration information for NAT control aimed at | authorization and configuration information for NAT control aimed at | |||
the NAT. NAS will initiate a DNCA session to the NAT and send the | the NAT device. NAS will initiate a DNCA session to the NAT device | |||
relevant authorization and configuration information for the | and send the relevant authorization and configuration information for | |||
particular endpoint to the NAT device. This could comprise e.g. | the particular endpoint to the NAT device. This can comprise NAT | |||
NAT-bindings which have to be pre-established for the endpoint, or | bindings, which have to be pre-established for the endpoint, or | |||
management related configuration, such as the maximum number of NAT- | management related configuration, such as the maximum number of NAT | |||
bindings allowed for the endpoint or accounting requirements. The | bindings allowed for the endpoint or accounting requirements. The | |||
NAT device will send its per-endpoint accounting information to the | NAT device sends its per endpoint accounting information to the NAS, | |||
NAS which aggregates the accounting information received form the NAT | which aggregates the accounting information received form the NAT | |||
with its local accounting information for the endpoint into a single | device with its local accounting information for the endpoint into a | |||
accounting stream towards the AAA-server. | single accounting stream towards the AAA-server. | |||
+---------+ | +---------+ | |||
| | | | | | |||
| AAA | | | AAA | | |||
| | | | | | |||
+---------+ | +---------+ | |||
| | | | |||
| | | | |||
| | | | |||
+--------+ +---------+ +---------+ +----------+ | +--------+ +---------+ +---------+ +----------+ | |||
skipping to change at page 10, line 25 | skipping to change at page 10, line 25 | |||
| Host |----| NAS |----| NAT |----| Internet | | | Host |----| NAS |----| NAT |----| Internet | | |||
| | | | | | | | | | | | | | | | | | |||
+--------+ +---------+ +---------+ +----------+ | +--------+ +---------+ +---------+ +----------+ | |||
<-------- Public IPv6 ----------><--- Public IPv4 ----> | <-------- Public IPv6 ----------><--- Public IPv4 ----> | |||
<-------- Private IPv4 ----------><--- Public IPv4 ----> | <-------- Private IPv4 ----------><--- Public IPv4 ----> | |||
Figure 3: LSN Control deployment: Integrated deployment | Figure 3: LSN Control deployment: Integrated deployment | |||
The autonomous deployment approach decouples user management on NAS | The autonomous deployment approach decouples user management on NAS | |||
and NAT device. The AAA system performing the role of the DNCA | and NAT device. The AAA system performing the role of the DNCA | |||
manager manages the connection to the NAT device, controls the per- | Manager manages the connection to the NAT device, controls the per | |||
endpoint configuration, and also receives accounting and reporting | endpoint configuration, and also receives accounting and reporting | |||
information from the NAT device. Different from the integrated | information from the NAT device. Different from the integrated | |||
deployment scenario, the autonomous deployment scenario does not | deployment scenario, the autonomous deployment scenario does not | |||
"hide" the existence of the NAT device from the AAA infrastructure. | "hide" the existence of the NAT device from the AAA infrastructure. | |||
Here two accounting streams are received by the AAA-server for one | Here two accounting streams are received by the AAA-server for one | |||
particular endpoint, one from the NAS, and one from the NAT device. | particular endpoint, one from the NAS, and one from the NAT device. | |||
+---------+ | +---------+ | |||
| (M) | | | (M) | | |||
| AAA | | | AAA | | |||
| | | | | | |||
skipping to change at page 11, line 5 | skipping to change at page 11, line 5 | |||
+--------+ +---------+ +---------+ +----------+ | +--------+ +---------+ +---------+ +----------+ | |||
| IPv4 | | | | (A) | | IPv4 | | | IPv4 | | | | (A) | | IPv4 | | |||
| Host |----| NAS |----| NAT |----| Internet | | | Host |----| NAS |----| NAT |----| Internet | | |||
| | | | | | | | | | | | | | | | | | |||
+--------+ +---------+ +---------+ +----------+ | +--------+ +---------+ +---------+ +----------+ | |||
<-------- Public IPv6 ----------><---- Public IPv4 ---> | <-------- Public IPv6 ----------><---- Public IPv4 ---> | |||
<-------- Private IPv4 ----------><---- Public IPv4 ---> | <-------- Private IPv4 ----------><---- Public IPv4 ---> | |||
Figure 4: LSN Control deployment: Autonomous deployment | Figure 4: LSN Control deployment: Autonomous deployment | |||
4. Diameter NAT Control Application Session Establishment and | 4. DNCA Session Establishment and Management | |||
Management | ||||
Note that this section forward references some of the commands and | Note that this section forward references some of the commands and | |||
AVPs defined for the DNCA. Please refer to Section 6 and Section 7 | AVPs defined for the DNCA. Please refer to Section 6 and Section 7 | |||
for details. | for details. | |||
4.1. Parties Involved | 4.1. Parties Involved | |||
Authorization and control models supported by this application | Authorization and control models supported by this application | |||
include the following parties: | include the following parties: | |||
o Diameter NAT Control Application (DNCA) agent: The DNCA agent is | o DNCA Agent: The DNCA Agent is part of the Large Scale NAT (LSN) | |||
part of the Large scale NAT (NAT) device | device | |||
o Diameter NAT Control Application (DNCA) manager | o DNCA Manager | |||
The NAT control requesting entity is always the DNCA manager. | The NAT control requesting entity is always the DNCA Manager. The | |||
Sessions will always be initiated, updated, or terminated by the DNCA | DNCA Manager always initiates, updates, or terminates the sessions. | |||
manager. This mode of operation is sometimes also referred to as | This mode of operation is sometimes also referred to as "push mode". | |||
"push mode". | ||||
DNCA manager can be NAS or AAA Server. DNCA manager will initiate a | The DNCA Manager can be NAS or AAA-server. The DNCA Manager | |||
session with DNCA agent when it learns about the subscriber. DNCA | initiates a session with the DNCA Agent when it learns about the | |||
manager may learn about a subscriber when it receives authentication, | subscriber. The DNCA Manager may learn about a subscriber when it | |||
authorization or accounting request for that subscriber or by some | receives authentication, authorization, or accounting request for | |||
other means such as on the box configuration to identify subscriber | that subscriber or by some other means, such as on the box | |||
w.r.t IP packets. | configuration to identify a subscriber with respect to his IP | |||
packets. | ||||
4.2. Session Establishment | 4.2. Session Establishment | |||
The DNCA manager establishes a session to the DNCA agent to control | The DNCA Manager establishes a session with the DNCA Agent to control | |||
the behavior of the NAT device. During session establishment, the | the behavior of the NAT device. During session establishment, the | |||
DNCA manager will pass along configuration information to the DNCA | DNCA Manager passes along configuration information to the DNCA | |||
agent. Session configuration information could for example comprise | Agent. The session configuration information comprises the maximum | |||
the maximum number of bindings allowed for the endpoint associated | number of bindings allowed for the endpoint associated with this | |||
with this session, a set of pre-defined NAT-bindings to be | session, a set of pre-defined NAT bindings to be established for this | |||
established for this endpoint, or a description of the address pool, | endpoint, or a description of the address pool, external addresses to | |||
external addresses should be allocated from. | be allocated from. | |||
The DNCA manager initiates the Diameter NAT Control session to the | The DNCA Manager initiates the Diameter NAT Control session to the | |||
DNCA agent. The DNCA manager generates a NAT-Control Request (NCR) | DNCA Agent. The DNCA Manager generates a NAT-Control Request (NCR) | |||
message to the DNCA agent with NC-Request-Type AVP set to | message to the DNCA Agent with NC-Request-Type AVP set to | |||
INITIAL_REQUEST. On receipt of the NCR the DNCA agent will setup a | INITIAL_REQUEST. On receipt of NCR the DNCA Agent sets up a new | |||
new session for the endpoint associated with the endpoint | session for the endpoint associated with the endpoint classifier(s) | |||
classifier(s) contained in the NCR. The DNCA agent notifies the DNCA | contained in the NCR. The DNCA Agent notifies the DNCA Manager about | |||
manager about successful session setup using a NAT-Control Answer | successful session setup using a NAT-Control Answer (NCA) message | |||
(NCA) message with Result-Code set to DIAMETER_SUCCESS. Figure 5 | with Result-Code set to DIAMETER_SUCCESS. Figure 5 shows the | |||
shows the protocol interaction between the DNCA manager and the DNCA | protocol interaction between the DNCA Manager and the DNCA Agent. | |||
agent. | ||||
The initial NAT-Control-Request can contain configuration information | The initial NAT-Control-Request may contain configuration information | |||
for the session which specifies the behavior of the NAT for the | for the session, which specifies the behavior of the NAT device for | |||
session. Configuration information which can be included comprises: | the session. The configuration information, which may be included, | |||
comprises: | ||||
o A list of NAT-bindings which should be pre-allocated for the | o A list of NAT bindings, which should be pre-allocated for the | |||
session (e.g. in case a subscriber requires a fixed external IP- | session; for example, in case a subscriber requires a fixed | |||
address/port pair for one of his applications). | external IP- address/port pair for one of the applications. | |||
o The maximum number of NAT bindings allowed for an endpoint. | o The maximum number of NAT bindings allowed for an endpoint. | |||
o A description of the external address pool(s) to be used for the | o A description of the external address pool(s) to be used for the | |||
session. | session. | |||
o A reference to a predefined binding rule on DNCA agent that will | o A reference to a predefined binding rule on the DNCA Agent, which | |||
be applied to the session. Such a predefined binding rule on DNCA | is applied to the session. Such a predefined binding rule on the | |||
agent may contain, for example, the name of the IP-address pool | DNCA Agent may contain, for example, the name of the IP address | |||
that external IP-addresses should be allocated from, maximum | pool that external IP addresses should be allocated from, maximum | |||
number of bindings permitted for the endpoint etc. | number of bindings permitted for the endpoint etc. | |||
In certain cases, the DNCA agent may not be able to perform the tasks | In certain cases, the DNCA Agent may not be able to perform the tasks | |||
requested within the NCR. These include the following: | requested within the NCR. These include the following: | |||
o If a DNCA agent receives a NCR from a DNCA manager with NC- | o If a DNCA Agent receives a NCR from a DNCA Manager with NC- | |||
Request-Type AVP set to INITIAL_REQUEST that identifies an already | Request-Type AVP set to INITIAL_REQUEST that identifies an already | |||
existing session (i.e. DNCA manager and endpoint identifier match | existing session; that is, DNCA Manager and endpoint identifier | |||
an already existing session), the DNCA agent will return NCA with | match an already existing session, the DNCA Agent returns NCA with | |||
Result-Code set to SESSION_EXISTS, and provides Session-Id of the | Result-Code set to SESSION_EXISTS, and provides the Session-Id of | |||
existing session in Duplicate-Session-Id AVP. | the existing session in Duplicate-Session-Id AVP. | |||
o If a DNCA agent receives an NCR from a DNCA manager with NC- | o If a DNCA Agent receives an NCR from a DNCA Manager with NC- | |||
Request-Type AVP set to INITIAL_REQUEST that matches more than one | Request-Type AVP set to INITIAL_REQUEST that matches more than one | |||
of the already existing sessions (i.e. DNCA manager and endpoint | of the already existing sessions; that is, DNCA Manager and | |||
identifier match already existing sessions), the DNCA agent will | endpoint identifier match already existing sessions, the DNCA | |||
return a NCA with Result-Code set to Insufficient-Classifiers. In | Agent returns a NCA with Result-Code set to Insufficient- | |||
case a DNCA manager receives a NCA that reports Insufficient- | Classifiers. In case a DNCA Manager receives NCA that reports | |||
Classifiers, it may choose to retry establishing a new session | Insufficient-Classifiers, it may choose to retry establishing a | |||
using additional/more specific classifiers. | new session using additional or more specific classifiers. | |||
o If the NCR contains a binding rule not defined on the NAT, the | o If the NCR contains a binding rule not defined on the NAT device, | |||
DNCA agent will return a NCA with Result-Code AVP set to | the DNCA Agent returns NCA with Result-Code AVP set to | |||
UNKNOWN_BINDING_RULE. | UNKNOWN_BINDING_RULE. | |||
o In case the DNCA agent is unable to establish all of the bindings | o In case the DNCA Agent is unable to establish all of the bindings | |||
requested in the NCR, it will return a NCA with Result-Code set to | requested in the NCR, it will return a NCA with Result-Code set to | |||
BINDING_FAILURE. The DNCA agent (i.e. NAT) treats a NCR as an | BINDING_FAILURE. The DNCA Agent, that is NAT device, treats a NCR | |||
atomic operation; hence none of the requested bindings will be | as an atomic operation; hence none of the requested bindings will | |||
established by NAT. Either all requested actions within a NCR are | be established by the NAT device. Either all requested actions | |||
completed successfully, or the entire request fails. | within a NCR are completed successfully, or the entire request | |||
fails. | ||||
o If DNCA agent does not have sufficient resources to process a | o If DNCA Agent does not have sufficient resources to process a | |||
request, it will return NCA with Result-Code set to | request, it returns NCA with Result-Code set to RESOURCE_FAILURE. | |||
RESOURCE_FAILURE. | ||||
o In case Max-NAT-Binding and Nat-Control-Definition are included in | o In case Max-NAT-Binding and NAT-Control-Definition are included in | |||
the NCR along with a reference to a binding rule (i.e. a | the NCR along with a reference to a binding rule; that is, a | |||
predefined template on NAT) and the values in Max-NAT-Binding and | predefined template on NAT device, and the values in Max-NAT- | |||
NAT-Control-Definition contradict those specified in the pre- | Binding and NAT-Control-Definition contradict those specified in | |||
defined binding rule, Max-NAT-Binding and NAT-Control-Definition | the pre-defined binding rule, Max-NAT-Binding and NAT-Control- | |||
override the values specified in the binding rule. | Definition override the values specified in the binding rule. | |||
DNCA Manager DNCA Agent | DNCA Manager DNCA Agent | |||
| | | | | | |||
| | | | | | |||
| | | | | | |||
Trigger | | Trigger | | |||
| | | | | | |||
| NCR | | | NCR | | |||
|------------------------------------------>| | |------------------------------------------>| | |||
| (INITIAL_REQUEST, endpoint classifier, | | | (INITIAL_REQUEST, endpoint classifier, | | |||
skipping to change at page 13, line 44 | skipping to change at page 13, line 42 | |||
| NCA | | | NCA | | |||
|<------------------------------------------| | |<------------------------------------------| | |||
| (result code) | | | (result code) | | |||
| | | | | | |||
| | | | | | |||
Figure 5: Initial NAT Control request and session establishment | Figure 5: Initial NAT Control request and session establishment | |||
4.3. Session Re-Authorization | 4.3. Session Re-Authorization | |||
Session re-authorization is performed if the DNCA manager desires to | Session re-authorization is performed if the DNCA Manager desires to | |||
change the behavior of the NAT for an existing session. Re- | change the behavior of the NAT device for an existing session. Re- | |||
authorization could be used, for example, to change the number of | authorization could be used, for example, to change the number of | |||
allowed bindings for a particular session, or establish or remove a | allowed bindings for a particular session, or establish or remove a | |||
pre-defined binding. | pre-defined binding. | |||
The DNCA manager generates a NAT-Control Request (NCR) message to the | The DNCA Manager generates a NC message to the DNCA Agent with NC- | |||
DNCA agent with NC-Request-Type AVP set to UPDATE_REQUEST upon | Request-Type AVP set to UPDATE_REQUEST upon receiving a trigger | |||
receiving a trigger signal. In case the session is updated | signal. In case the session is updated successfully, the DNCA Agent | |||
successfully, the DNCA agent notifies the DNCA manager about | notifies the DNCA Manager about successful session update using a | |||
successful session update using a NAT-Control Answer (NCA) message | NAT-Control Answer (NCA) message with Result-Code set to | |||
with Result-Code set to DIAMETER_SUCCESS. Figure 6 shows the | DIAMETER_SUCCESS. Figure 6 shows the protocol interaction between | |||
protocol interaction between the DNCA manager and the DNCA agent. | the DNCA Manager and the DNCA Agent. | |||
In certain cases, the DNCA agent may not be able to perform the tasks | In certain cases, the DNCA Agent may not be able to perfborm the | |||
requested within the NCR. These include the following: | tasks requested within the NCR. These include the following: | |||
o If DNCA agent receives a NCR update/query request for non-existent | o If DNCA Agent receives a NCR update or query request for a non- | |||
session it will set error code in answer, to | existent session, it sets Result-Code in the answer to | |||
DIAMETER_UNKNOWN_SESSION_ID. | DIAMETER_UNKNOWN_SESSION_ID. | |||
o If the NCR contains a binding rule not defined on the NAT, the | o If the NCR contains a binding rule not defined on the NAT device, | |||
DNCA agent will return a NCA with Result-Code AVP set to | the DNCA Agent returns NCA with Result-Code AVP set to | |||
UNKNOWN_BINDING_RULE. | UNKNOWN_BINDING_RULE. | |||
o If the DNCA agent cannot establish the requested binding because | o If the DNCA Agent cannot establish the requested binding because | |||
the maximum number of allowed bindings has been reached for the | the maximum number of allowed bindings has been reached for the | |||
Endpoint Classifier, it will return NCA with Result-Code AVP set | Endpoint Classifier, it returns NCA with Result-Code AVP set to | |||
to MAXIMUM_BINDINGS_REACHED_FOR_ENDPOINT. | MAXIMUM_BINDINGS_REACHED_FOR_ENDPOINT. | |||
o In case the DNCA agent cannot establish some or all of the | o If the DNCA Agent cannot establish some or all of the bindings | |||
bindings requested in a NCR, but has not yet reached the maximum | requested in a NCR, but has not yet reached the maximum number of | |||
number of allowed bindings for the subscriber, it will return a | allowed bindings for the subscriber, it returns a NCA with Result- | |||
NCA with Result-Code set to BINDING_FAILURE. The DNCA agent (i.e. | Code set to BINDING_FAILURE. The DNCA Agent (i.e., NAT device) | |||
NAT) treats a NCR as an atomic operation; hence none of the | treats a NCR as an atomic operation. Hence none of the requested | |||
requested bindings will be established by NAT. Either all | bindings will be established by NAT device. Either all requested | |||
requested actions within a NCR are completed successfully, or the | actions within a NCR are either successful or failed completely.. | |||
entire request fails. | ||||
o If DNCA agent does not have sufficient resources to process a | o If DNCA Agent does not have sufficient resources to process a | |||
request, it will return a NCA with Result-Code set to | request, it returns NCA with Result-Code set to RESOURCE_FAILURE. | |||
RESOURCE_FAILURE. | ||||
o If a NCR redefines the maximum number of NAT bindings allowed for | o If a NCR redefines the maximum number of NAT bindings allowed for | |||
the endpoint, the new value will override any previously defined | the endpoint, the new value will override any previously defined | |||
limit on NAT-bindings. It depends on the implementation of the | limit on NAT bindings. It depends on the implementation of the | |||
NAT how NAT would cope with a case where the new value is lower | NAT device on how the NAT device copes with a case where the new | |||
than the actual number of allocated bindings. Typically the NAT | value is lower than the actual number of allocated bindings. | |||
would refrain from enforcing the new limit immediately (i.e. | Typically the NAT device refrains from enforcing the new limit | |||
actively remove bindings) but rather disallow the establishment of | immediately; that is, actively remove bindings, but rather | |||
new bindings until the current number of bindings is lower than | disallow the establishment of new bindings until the current | |||
the newly established maximum number of allowed bindings. | number of bindings is lower than the newly established maximum | |||
number of allowed bindings. | ||||
o If a NCR specifies a new binding rule, predefined on the DNCA | o If a NCR specifies a new binding rule, predefined on the DNCA | |||
agent, the binding rule will override any previously defined rules | Agent, the binding rule overrides any previously defined rules for | |||
for the session. | the session. | |||
o In case Max-NAT-Binding and Nat-Control-Definition AVPs are | o If Max-NAT-Binding and NAT-Control-Definition AVPs are included in | |||
included in the NCR along with a reference to a binding rule (i.e. | the NCR along with a reference to a binding rule (a predefined | |||
a predefined template on NAT) and the values in Max-NAT-Binding | template on NAT device) and the values in Max-NAT-Binding and NAT- | |||
and Nat-Control-Definition AVPs contradict those specified in the | Control-Definition AVPs contradict those specified in the pre- | |||
pre-defined binding rule, Max-NAT-Binding and NAT-Control- | defined binding rule, Max-NAT-Binding and NAT-Control-Definition | |||
Definition AVPs override the values specified in the binding rule. | AVPs override the values specified in the binding rule. | |||
DNCA Manager DNCA Agent | DNCA Manager DNCA Agent | |||
| | | | | | |||
| | | | | | |||
| | | | | | |||
Change of session | | Change of session | | |||
attributes | | attributes | | |||
| | | | | | |||
| NCR | | | NCR | | |||
|------------------------------------------>| | |------------------------------------------>| | |||
skipping to change at page 15, line 36 | skipping to change at page 15, line 33 | |||
| | | | | | |||
| | | | | | |||
| NCA | | | NCA | | |||
|<------------------------------------------| | |<------------------------------------------| | |||
| (result code) | | | (result code) | | |||
| | | | | | |||
| | | | | | |||
Figure 6: NAT Control request for session update | Figure 6: NAT Control request for session update | |||
4.4. Session And Binding Query | 4.4. Session and Binding Query | |||
Session query can be used by the DNCA manager to either retrieve | Session query can be used by the DNCA Manager to either retrieve | |||
information on the current bindings for a particular session at the | information on the current bindings for a particular session at the | |||
NAT or discover the session identifier for a particular external IP- | NAT device or discover the session identifier for a particular | |||
address/port pair. | external IP address/port pair. | |||
The DNCA manager initiates a session query by sending a NAT-Control | The DNCA Manager initiates a session query by sending a NCR message | |||
Request (NCR) message to the DNCA agent with NC-Request-Type AVP set | to the DNCA Agent with NC-Request-Type AVP set to QUERY_REQUEST. | |||
to QUERY_REQUEST. Figure 7 shows the protocol interaction between | Figure 7 shows the protocol interaction between the DNCA Manager and | |||
the DNCA manager and the DNCA agent. | the DNCA Agent. | |||
Two types of query requests exist. The first type of query request | Two types of query requests exist. The first type of query request | |||
uses the session ID as input parameter to the query. It is to allow | uses the session ID as input parameter to the query. It is to allow | |||
the DNCA manager retrieve the current set of bindings for a specific | the DNCA Manager retrieve the current set of bindings for a specific | |||
session. The second type of query request is used in to retrieve the | session. The second type of query request is used to retrieve the | |||
session identifiers, along with the associated bindings, matching a | session identifiers, along with the associated bindings, matching a | |||
criteria. This enables the DNCA manager to find out which sessions | criteria. This enables the DNCA Manager to find the sessions, which | |||
utilize a specific external IP address. | utilize a specific external IP address. | |||
1. Request a list of currently allocated NAT-bindings for a | 1. Request a list of currently allocated NAT bindings for a | |||
particular session: The DNCA agent will, on receipt of the NCR, | particular session: The DNCA Agent on receiving NCR, looks up | |||
lookup the session information for the session id contained in | session information for the session ID contained in the NCR, and | |||
the NCR, and will report all currently active NAT-bindings for | reports all currently active NAT bindings for the session using | |||
the session using a NAT-Control Answer (NCA) message with Result- | NCA message with Result-Code set to DIAMETER_SUCCESS. In this | |||
Code set to DIAMETER_SUCCESS. In this case the NCR MUST NOT | case the NCR MUST NOT contain a NAT-Control-Definition AVP. Each | |||
contain a NAT-Control-Definition AVP. Each NAT-Binding will be | NAT binding is reported in a NAT-Control-Definition AVP. In case | |||
reported in a NAT-Control-Definition AVP. In case the session id | the session ID is unknown, the DNCA Agent returns NCA with | |||
is unknown to the DNCA agent a DIAMETER_UNKNOWN_SESSION_ID error | Result-Code set to DIAMETER_UNKNOWN_SESSION_ID. | |||
is returned. | ||||
2. Retrieve session ids and internal IP-address/port pairs for one | 2. Retrieve session IDs and internal IP address/port pairs for one | |||
or multiple external IP-address/port pairs: If the DNCA manager | or multiple external IP address/port pairs: If the DNCA Manager | |||
wishes to retrieve the session id(s) for one or multiple external | wishes to retrieve the session ID(s) for one or multiple external | |||
IP-address/port pairs, it MUST include the external IP-address/ | IP address/port pairs, it MUST include the external IP address/ | |||
port pair(s) as part of the NAT-Control-Definition AVP of the | port pair(s) as part of the NAT-Control-Definition AVP of the | |||
NCR. The session id used within the NCR is not meaningful for | NCR. The session ID used within the NCR is not meaningful for | |||
this type of a query. The DNCA agent will report the NAT- | this type of a query. The DNCA Agent reports the NAT bindings | |||
bindings and associated session ids corresponding to the external | and associated session IDs corresponding to the external IP | |||
IP-address/port pairs in a NAT-Control Answer (NCA) message with | address/port pairs in a NCA message with Result-Code set to | |||
Result-Code set to DIAMETER_SUCCESS and the same session id as | DIAMETER_SUCCESS with the same session ID, which is used in NCR. | |||
the one used in the NCR. In case an external IP-address/port | In case an external IP address/port pair has no associated | |||
pair has no associated existing NAT-binding, the NAT-Control- | existing NAT binding, the NAT-Control-Definition AVP contained in | |||
Definition AVP contained in the reply just contains the NAT- | the reply just contains the NAT-External-Address AVP. | |||
External-Address AVP. | ||||
DNCA Manager DNCA Agent | DNCA Manager DNCA Agent | |||
| | | | | | |||
| | | | | | |||
| | | | | | |||
DNCA Session Established | | DNCA Session Established | | |||
| | | | | | |||
| NCR | | | NCR | | |||
|------------------------------------------>| | |------------------------------------------>| | |||
| (QUERY_REQUEST) | | | (QUERY_REQUEST) | | |||
skipping to change at page 17, line 30 | skipping to change at page 17, line 7 | |||
| NCA | | | NCA | | |||
|<------------------------------------------| | |<------------------------------------------| | |||
| (result code) | | | (result code) | | |||
| | | | | | |||
| | | | | | |||
Figure 7: Session Query | Figure 7: Session Query | |||
4.5. Session Termination | 4.5. Session Termination | |||
The DNCA manager generates a NAT-Control Request (NCR) message to the | The DNCA Manager generates a NAT-Control Request (NCR) message to the | |||
DNCA agent with NC-Request-Type AVP set to TERMINATE_REQUEST upon | DNCA Agent with NC-Request-Type AVP set to TERMINATE_REQUEST upon | |||
receiving a trigger signal. The DNCA agent sends accounting stop | receiving a trigger signal. The DNCA Agent sends accounting stop | |||
record reporting all the bindings and notifies the DNCA manager about | record reporting all the bindings and notifies the DNCA Manager about | |||
successful session termination using a NAT-Control Answer (NCA) | successful session termination using a NAT-Control Answer (NCA) | |||
message with Result-Code set to DIAMETER_SUCCESS. Figure 8 shows the | message with Result-Code set to DIAMETER_SUCCESS. Figure 8 shows the | |||
protocol interaction between the DNCA manager and the DNCA agent. | protocol interaction between the DNCA Manager and the DNCA Agent. | |||
If a DNCA agent receives a NCR from a DNCA manager with NC-Request- | If a DNCA Agent receives a NCR from a DNCA Manager with NC-Request- | |||
Type AVP set to TERMINATE_REQUEST and fails to find a matching | Type AVP set to TERMINATE_REQUEST and fails to find a matching | |||
session, the DNCA agent returns DIAMETER_UNKNOWN_SESSION_ID error. | session, the DNCA Agent returns NCA with Result-Code set to | |||
DIAMETER_UNKNOWN_SESSION_ID. | ||||
DNCA Manager DNCA Agent | DNCA Manager DNCA Agent | |||
| | | | | | |||
| | | | | | |||
Trigger | | Trigger | | |||
| | | | | | |||
| NCR | | | NCR | | |||
|------------------------------------------->| | |------------------------------------------->| | |||
| (TERMINATE_REQUEST, session id) | | | (TERMINATE_REQUEST, session id) | | |||
| | | | | | |||
| | | | | | |||
skipping to change at page 18, line 35 | skipping to change at page 18, line 5 | |||
| | | | | | |||
| | | | | | |||
| | | | | | |||
| NCA | | | NCA | | |||
|<-------------------------------------------| | |<-------------------------------------------| | |||
| (result code) | | | (result code) | | |||
| | | | | | |||
Figure 8: Terminate NAT Control session | Figure 8: Terminate NAT Control session | |||
4.6. DNCA Manager/Agent Failures | 4.6. DNCA Manager and Agent Failures | |||
This document does not cover details in case DNCA manager and DNCA | This document does not cover details in case DNCA Manager and DNCA | |||
agent go out of sync, which could happen for example due to DNCA | Agent are out of sync. This happens when the DNCA Manager or DNCA | |||
manager or DNCA agent restart, (temporary) loss of network | Agent restart, (temporary) loss of network connectivity etc. The | |||
connectivity etc. DNCA application will rely on DNCA Manager and | DNCA relies on DNCA Manager and DNCA Agent to have builtin redundancy | |||
DNCA Agent to have builtin redundancy support to recover state in | support to recover state in case of failure. | |||
case of failure. | ||||
Example failure cases include the following: | Example failure cases include the following: | |||
o The DNCA manager loses session state (e.g. due to a restart). In | o The DNCA Manager loses session state (e.g. due to a restart). In | |||
this case, | this case, | |||
* the DNCA agent may receive a NCR with NC-Request-Type AVP set | * The DNCA Agent may receive a NCR with NC-Request-Type AVP set | |||
to INITIAL_REQUEST that matches an existing session of DNCA | to INITIAL_REQUEST that matches an existing session of DNCA | |||
agent. The DNCA agent will return an error that contains | Agent. The DNCA Agent returns an error that contains | |||
Duplicate-Session-Id AVP to report Session-Id of existing | Duplicate-Session-Id AVP to report the Session-ID of existing | |||
session. The DNCA manager may then send an explicit | session. The DNCA Manager may send an explicit | |||
TERMINATE_REQUEST for the older session that was lost. | TERMINATE_REQUEST for the older session, which was lost. | |||
* the DNCA manager may receive accounting records for a session | * The DNCA Manager may receive accounting records for a session | |||
that does not exist. The DNCA manager will send an accounting | that does not exist. The DNCA Manager sends an accounting | |||
answer with error-code set to DIAMETER_UNKNOWN_SESSION_ID. On | answer with Result-Code set to DIAMETER_UNKNOWN_SESSION_ID. On | |||
receipt of which the DNCA agent clears the session and removes | receiving this, the DNCA Agent clears the session and removes | |||
the associated session state. | the associated session state. | |||
o The DNCA agent loses session state. In such a case, the DNCA | o The DNCA Agent loses session state. In such a case, the DNCA | |||
agent could receive a NCR with NC-Request-Type AVP set to | Agent may receive a NCR with NC-Request-Type AVP set to | |||
UPDATE_REQUEST for a non-existent session. The DNCA agent will | UPDATE_REQUEST for a non-existent session. The DNCA Agent returns | |||
return NCA with error code set to DIAMETER_UNKNOWN_SESSION_ID. | NCA with Result-Code set to DIAMETER_UNKNOWN_SESSION_ID. | |||
State recovery procedures of the DNCA agent will be covered in a | ||||
future version of this document. | ||||
o The DNCA manager is unreachable (as e.g. detected by Diameter | o The DNCA Manager is unreachable, for example detected by Diameter | |||
watchdog) or down and accounting requests from the DNCA agent fail | watchdog, or down and accounting request from the DNCA Agent fails | |||
to get a response. The mechanism to ensure that a DNCA manager no | to get a response. The mechanism to ensure that a DNCA Manager no | |||
longer has associated state for a session being cleared at the | longer has associated state for a session being cleared by a DNCA | |||
DNCA agent is beyond the scope of this document. | Agent is beyond the scope of this document. | |||
o The DNCA agent is unreachable or down and NCR requests fail to get | o The DNCA Agent is unreachable or down and NCR requests fail to get | |||
a response. Handling of this case depends on the actual service | a response. Handling of this case depends on the actual service | |||
offering of the service provider. The service provider could, for | offering of the service provider. The service provider can choose | |||
example, choose to terminate the access session to the endpoint. | to terminate the access session to the endpoint. | |||
5. Use Of The Diameter Base Protocol | 5. Use Of The Diameter Base Protocol | |||
The Diameter Base Protocol defined by [RFC3588] shall apply, with the | The Diameter Base Protocol defined by [RFC3588] applies with the | |||
clarifications listed in the present specification. | clarifications listed in the present specification. | |||
5.1. Securing Diameter Messages | 5.1. Securing Diameter Messages | |||
For secure transport of Diameter messages, IPSec MAY be used. | For secure transport of Diameter messages, IPSec MAY be used. | |||
The DNCA agent MAY verify the identity of the DNCA Manager during the | The DNCA Agent MAY verify the identity of the DNCA Manager during the | |||
Capabilities Exchange Request procedure. | Capabilities Exchange Request procedure. | |||
The DNCA agent MAY verify if the DNCA Manager that issues a NCR | The DNCA Agent MAY verify if the DNCA Manager that issues a NCR | |||
command is allowed to do so, based on: | command is allowed and it is based on: | |||
o The Identity of the DNCA Manager | o The identity of the DNCA Manager | |||
o The type of NCR Command | ||||
o The Type of NCR Command | ||||
o The content of the NCR Command | o The content of the NCR Command | |||
o Any combination of the above | o Any combination of the above | |||
5.2. Accounting Functionality | 5.2. Accounting Functionality | |||
Accounting functionality (Accounting Session State Machine, related | Accounting functionality (accounting session state machine, related | |||
command codes and AVPs) is defined in Section 8 below. | command codes and AVPs) is defined in Section 8 below. | |||
5.3. Use Of Sessions | 5.3. Use Of Sessions | |||
Each DNCA session MUST have a globally unique Session-Id as defined | Each DNCA session MUST have a globally unique Session-ID as defined | |||
in [RFC3588], which MUST NOT be changed during the lifetime of a DNCA | in [RFC3588], which MUST NOT be changed during the lifetime of a DNCA | |||
session. The Diameter Session-Id serves as the global endpoint | session. The Diameter Session-ID serves as the global endpoint | |||
identifier. The DNCA agent and DNCA manager maintain state | identifier. The DNCA Agent and DNCA Manager maintain state | |||
associated with the Session-Id. This globally unique Session-Id is | associated with the Session-ID. This globally unique Session-ID is | |||
used for updating, accounting for and terminating the session. DNCA | used for updating, accounting, and terminating the session. The DNCA | |||
session MUST NOT have more than one outstanding request at any given | session MUST NOT have more than one outstanding request at any given | |||
instant. The DNCA agent sends an Abort-Session-Request as defined in | instant. The DNCA Agent sends an Abort-Session-Request as defined in | |||
[RFC3588] if it is unable to maintain sessions due to resource | [RFC3588] if it is unable to maintain sessions due to resource | |||
limitation. | limitation. | |||
5.4. Routing Considerations | 5.4. Routing Considerations | |||
It is assumed that the DNCA manager knows the DiameterIdentity of the | It is assumed that the DNCA Manager knows the DiameterIdentity of the | |||
DNCA agent for a given endpoint. Both the Destination-Realm and | DNCA Agent for a given endpoint. Both the Destination-Realm and | |||
Destination-Host AVPs are present in the Request from the DNCA | Destination-Host AVPs are present in the request from the DNCA | |||
manager to the DNCA agent. | Manager to the DNCA Agent. | |||
5.5. Advertising Application Support | 5.5. Advertising Application Support | |||
Diameter applications conforming to this specification MUST advertise | Diameter applications conforming to this specification MUST advertise | |||
support by including the value of TBD in: | support by including the value of TBD in: | |||
o Auth-Application-Id and Acct-Application-Id of Capabilities- | o Auth-Application-Id and Acct-Application-Id of Capabilities- | |||
Exchange-Request (CER) | Exchange-Request (CER) | |||
o Auth-Application-Id of NC-request (NCR), NC-Answer (NCA), Abort- | o Auth-Application-Id of NC-request (NCR), NC-Answer (NCA), Abort- | |||
Session-Request(ASR), Abort-Session-Answer (AAA) messages | Session-Request(ASR), Abort-Session-Answer (AAA) messages | |||
o Acct-Application-Id in Accounting-Request (ACR) and Accounting- | o Acct-Application-Id in Accounting-Request (ACR) and Accounting- | |||
Answer (AAA) messages. | Answer (AAA) messages. | |||
6. Diameter NAT Control Application Commands | 6. DNCA Commands | |||
The following commands are used to establish, maintain and clear NAT | The following commands are used to establish, maintain and clear NAT | |||
bindings. | bindings. | |||
6.1. NAT-Control Request (NCR) Command | 6.1. NAT-Control Request (NCR) Command | |||
The NAT-Control Request (NCR) command, indicated by the command field | The NAT-Control Request (NCR) command, indicated by the command field | |||
set to TBD and the "R" bit set in the Command Flags field, is sent | set to TBD and the "R" bit set in the Command Flags field, is sent | |||
from the DNCA manager to the DNCA agent in order to install NAT | from the DNCA Manager to the DNCA Agent in order to install NAT | |||
bindings. | bindings. | |||
User-Name, Logical-Access-Id, Physical-Access-ID, Framed-IP-Address, | User-Name, Logical-Access-Id, Physical-Access-ID, Framed-IP-Address, | |||
Framed-IPv6-Prefix , Framed-Interface-Id, EGRESS-VLANID, NAS-Port-ID, | Framed-IPv6-Prefix , Framed-Interface-Id, EGRESS-VLANID, NAS-Port-ID, | |||
Address-Realm, Calling-Station-ID AVPs serve as identifiers for the | Address-Realm, Calling-Station-ID AVPs serve as identifiers for the | |||
subscriber. | subscriber. | |||
Message Format: | Message Format: | |||
< NC-Request > ::= < Diameter Header: TBD, REQ, PXY> | < NC-Request > ::= < Diameter Header: TBD, REQ, PXY> | |||
< Session-Id > | < Session-Id > | |||
{ Auth-Application-Id } | { Auth-Application-Id } | |||
{ Origin-Host } | { Origin-Host } | |||
{ Origin-Realm } | { Origin-Realm } | |||
{ Destination-Realm } | { Destination-Realm } | |||
{ Destination-Host } | { Destination-Host } | |||
{ NC-Request-Type } | { NC-Request-Type } | |||
[ Origin-State-Id ] | [ Origin-State-Id ] | |||
skipping to change at page 21, line 49 | skipping to change at page 21, line 36 | |||
[ Address-Realm ] | [ Address-Realm ] | |||
[ Calling-Station-ID ] | [ Calling-Station-ID ] | |||
* [ Proxy-Info ] | * [ Proxy-Info ] | |||
* [ Route-Record ] | * [ Route-Record ] | |||
* [ AVP ] | * [ AVP ] | |||
6.2. NAT-Control Answer (NCA) Command | 6.2. NAT-Control Answer (NCA) Command | |||
The NAT-Control-Answer (NCA) command, indicated by the Command-Code | The NAT-Control-Answer (NCA) command, indicated by the Command-Code | |||
field set to TBD and the "R" bit cleared in the Command Flags field, | field set to TBD and the "R" bit cleared in the Command Flags field, | |||
is sent by the DNCA agent in response to NAT-Control-Request command. | is sent by the DNCA Agent in response to NAT-Control-Request command. | |||
Message Format: | Message Format: | |||
<NC-Answer> ::= < Diameter Header: TBD, PXY > | <NC-Answer> ::= < Diameter Header: TBD, PXY > | |||
< Session-Id > | < Session-Id > | |||
{ Origin-Host } | { Origin-Host } | |||
{ Origin-Realm } | { Origin-Realm } | |||
{ NC-Request-Type } | { NC-Request-Type } | |||
[ Result-Code ] | [ Result-Code ] | |||
* [ NAT-Control-Definition ] | * [ NAT-Control-Definition ] | |||
skipping to change at page 22, line 28 | skipping to change at page 22, line 28 | |||
[ Duplicate-Session-ID ] | [ Duplicate-Session-ID ] | |||
* [ Redirect-Host] | * [ Redirect-Host] | |||
[ Redirect-Host-Usage ] | [ Redirect-Host-Usage ] | |||
[ Redirect-Max-Cache-Time ] | [ Redirect-Max-Cache-Time ] | |||
* [ Proxy-Info ] | * [ Proxy-Info ] | |||
* [ Route-Record ] | * [ Route-Record ] | |||
* [ Failed-AVP ] | * [ Failed-AVP ] | |||
* [ AVP ] | * [ AVP ] | |||
* [ AVP ] | * [ AVP ] | |||
7. Diameter NAT Control Application AVPs | 7. DNCA AVPs | |||
7.1. Reused Base Protocol AVPs | 7.1. Reused Base Protocol AVPs | |||
AVPs reused from Diameter Base Protocol [RFC3588] are listed below. | AVPs reused from Diameter Base Protocol [RFC3588] are listed below. | |||
+-------------------+ | +-------------------+ | |||
| AVP Flag rules | | | AVP Flag rules | | |||
+-----------------------------------------------|-----+---+---------+ | +-----------------------------------------------|-----+---+---------+ | |||
| AVP | | | May | | | AVP | | | May | | |||
| Attribute Name Code Data Type |MUST |MAY| encrypt | | | Attribute Name Code Data Type |MUST |MAY| encrypt | | |||
skipping to change at page 24, line 16 | skipping to change at page 24, line 16 | |||
Result-Code AVP values that fall within the transient failures | Result-Code AVP values that fall within the transient failures | |||
category are those used to inform a peer that the request could not | category are those used to inform a peer that the request could not | |||
be satisfied at the time that it was received. The request may be | be satisfied at the time that it was received. The request may be | |||
able to be satisfied in the future. | able to be satisfied in the future. | |||
The following new values of the Result-Code AVP are defined: | The following new values of the Result-Code AVP are defined: | |||
RESOURCE_FAILURE (TBD) | RESOURCE_FAILURE (TBD) | |||
The DNCA agent indicates that the binding could not be | The DNCA Agent indicates that the binding could not be | |||
installed or a new session could not be created due to resource | installed or a new session could not be created due to resource | |||
shortage. | shortage. | |||
7.2.3. Permanent Failures | 7.2.3. Permanent Failures | |||
Result-Code AVP values that fall within the permanent failures | The Result-Code AVP values, which fall within the permanent failures | |||
category are used to inform the peer that the request failed, and | category are used to inform the peer that the request failed, and | |||
should not be attempted again. The request may be able to be | should not be attempted again. The request may be able to be | |||
satisfied in the future. | satisfied in the future. | |||
The following new values of the Result-Code AVP are defined: | The following new values of the Result-Code AVP are defined: | |||
UNKNOWN_BINDING_RULE_NAME (TBD) | UNKNOWN_BINDING_RULE_NAME (TBD) | |||
The DNCA agent indicates that the binding could not be | The DNCA Agent indicates that the binding could not be | |||
installed or a new session could not be created due to resource | installed or a new session could not be created due to resource | |||
shortage. | shortage. | |||
BINDING_FAILURE (TBD) | BINDING_FAILURE (TBD) | |||
The DNCA indicates that the requested binding(s) could not be | The DNCA indicates that the requested binding(s) could not be | |||
installed. | installed. | |||
MAXIMUM_BINDINGS_REACHED_FOR_ENDPOINT (TBD) | MAXIMUM_BINDINGS_REACHED_FOR_ENDPOINT (TBD) | |||
The DNCA agent denies the request because the maximum number of | The DNCA Agent denies the request because the maximum number of | |||
allowed bindings has been reached for the specified Endpoint | allowed bindings has been reached for the specified Endpoint | |||
Classifier. | Classifier. | |||
SESSION_EXISTS (TBD) | SESSION_EXISTS (TBD) | |||
The DNCA agent denies request to initialize a new session, if | The DNCA Agent denies request to initialize a new session, if | |||
it already has a DNCA session that uses the same set of | it already has a DNCA session that uses the same set of | |||
classifiers as indicated by DNCA manager in the new session | classifiers as indicated by DNCA Manager in the new session | |||
init request. | initializationrequest. | |||
INSUFFICIENT_CLASSIFIERS (TBD) | INSUFFICIENT_CLASSIFIERS (TBD) | |||
The DNCA agent defines request to initialize a new session, if | The DNCA Agent defines request to initialize a new session, if | |||
the classifiers in the request match more than one of the | the classifiers in the request match more than one of the | |||
existing sessions on DNCA agent. | existing sessions on DNCA Agent. | |||
7.3. Reused NASREQ Diameter Application AVPs | 7.3. Reused NASREQ Diameter Application AVPs | |||
The following AVPs are reused from Diameter Network Access Server | The following AVPs are reused from Diameter Network Access Server | |||
Application [RFC4005]. | Application [RFC4005]. | |||
+---------------------+ | +---------------------+ | |||
| AVP Flag rules | | | AVP Flag rules | | |||
+------------------+------+------------|----+-----+----+-----|----+ | +------------------+------+------------|----+-----+----+-----|----+ | |||
| | AVP | | | |SHLD| MUST| | | | | AVP | | | |SHLD| MUST| | | |||
| Attribute Name | Code | Value Type|MUST| MAY | NOT| NOT|Encr| | | Attribute Name | Code | Value Type|MUST| MAY | NOT| NOT|Encr| | |||
skipping to change at page 26, line 28 | skipping to change at page 26, line 28 | |||
|Direction TBD Enumerated | M | P | Y | | |Direction TBD Enumerated | M | P | Y | | |||
+-----------------------------------------------+-----+---+---------+ | +-----------------------------------------------+-----+---+---------+ | |||
|M - Mandatory bit. An AVP with "M" bit set and its value MUST be | | |M - Mandatory bit. An AVP with "M" bit set and its value MUST be | | |||
| supported and recognized by a Diameter entity in order the | | | supported and recognized by a Diameter entity in order the | | |||
| message, which carries this AVP, to be accepted. | | | message, which carries this AVP, to be accepted. | | |||
|P - Indicates the need for encryption for end-to-end security. | | |P - Indicates the need for encryption for end-to-end security. | | |||
+-------------------------------------------------------------------+ | +-------------------------------------------------------------------+ | |||
Figure 12: Reused QoS-attributes | Figure 12: Reused QoS-attributes | |||
7.6. Reused From ETSI ES 283 034, e4 Diameter Application | 7.6. Reused from ETSI ES 283 034, e4 Diameter Application | |||
The following AVPs are reused from the Diameter e4 Application | The following AVPs are reused from the Diameter e4 Application | |||
[ETSIES283034]. | [ETSIES283034]. | |||
+-------------------+ | +-------------------+ | |||
| AVP Flag rules | | | AVP Flag rules | | |||
+-----------------------------------------------|-----+---+---------+ | +-----------------------------------------------|-----+---+---------+ | |||
| AVP | | | May | | | AVP | | | May | | |||
| Attribute Name Code Data Type |MUST |MAY| encrypt | | | Attribute Name Code Data Type |MUST |MAY| encrypt | | |||
+-----------------------------------------------+-----+---+---------+ | +-----------------------------------------------+-----+---+---------+ | |||
|Address-Realm 301 OctetString | M,V | | Y | | |Address-Realm 301 OctetString | M,V | | Y | | |||
|Logical-Access-Id 302 OctetString | V | M | Y | | |Logical-Access-Id 302 OctetString | V | M | Y | | |||
|Physical-Access-ID 313 UTF8String | V | M | Y | | |Physical-Access-ID 313 UTF8String | V | M | Y | | |||
+-----------------------------------------------+-----+---+---------+ | +-----------------------------------------------+-----+---+---------+ | |||
|M - Mandatory bit. An AVP with "M" bit set and its value MUST be | | |M - Mandatory bit. An AVP with "M" bit set and its value MUST be | | |||
| supported and recognized by a Diameter entity in order the | | | supported and recognized by a Diameter entity in order the | | |||
| message, which carries this AVP, to be accepted. | | | message, which carries this AVP, to be accepted. | | |||
|P - Indicates the need for encryption for end-to-end security. | | |P - Indicates the need for encryption for end-to-end security. | | |||
|V - Indicates whether the optional Vendor-ID field is present | | |V - Indicates whether the optional Vendor-ID field is present | | |||
| in the AVP header. Vendor-Id header of all AVPs in | | | in the AVP header. Vendor-Id header of all AVPs in | | |||
| this table will be set to ETSI (13019) | | | this table will be set to ETSI (13019). | | |||
+-------------------------------------------------------------------+ | +-------------------------------------------------------------------+ | |||
Figure 13: Reused AVPs from Diameter e4 application | Figure 13: Reused AVPs from Diameter e4 application | |||
7.7. Diameter NAT Control Application Defined AVPs | 7.7. DNCA Defined AVPs | |||
The following table describes the new Diameter AVPs used in the | The following table describes the new Diameter AVPs used in this | |||
present document, their AVP Code values, types, possible flag values | document. | |||
and whether the AVP may or not be encrypted. | ||||
+-------------------+ | +-------------------+ | |||
| AVP Flag rules | | | AVP Flag rules | | |||
+-----------------------------------------------|-----+---+---------+ | +-----------------------------------------------|-----+---+---------+ | |||
| AVP Section | | | May | | | AVP Section | | | May | | |||
| Attribute Name Code Defined Data Type |MUST |MAY| encrypt | | | Attribute Name Code Defined Data Type |MUST |MAY| encrypt | | |||
+-----------------------------------------------+-----+---+---------+ | +-----------------------------------------------+-----+---+---------+ | |||
|NC-Request-Type TBD 7.7.1 Enumerated | M | P | Y | | |NC-Request-Type TBD 7.7.1 Enumerated | M | P | Y | | |||
|NAT-Control-Install TBD 7.7.2 Grouped | M | P | Y | | |NAT-Control-Install TBD 7.7.2 Grouped | M | P | Y | | |||
|NAT-Control-Remove TBD 7.7.3 Grouped | M | P | Y | | |NAT-Control-Remove TBD 7.7.3 Grouped | M | P | Y | | |||
|NAT-Control-Definition TBD 7.7.4 Grouped | M | P | Y | | |NAT-Control-Definition TBD 7.7.4 Grouped | M | P | Y | | |||
skipping to change at page 27, line 37 | skipping to change at page 27, line 36 | |||
|NAT-Control-Record TBD 8.2.1 Grouped | M | P | Y | | |NAT-Control-Record TBD 8.2.1 Grouped | M | P | Y | | |||
|NAT-Control- TBD 8.2.2 Enumerated | M | P | Y | | |NAT-Control- TBD 8.2.2 Enumerated | M | P | Y | | |||
| Binding-Status | | | | | | Binding-Status | | | | | |||
|Current-NAT-Bindings TBD 8.2.3 Unsigned32 | M | P | Y | | |Current-NAT-Bindings TBD 8.2.3 Unsigned32 | M | P | Y | | |||
+-----------------------------------------------+-----+---+---------+ | +-----------------------------------------------+-----+---+---------+ | |||
|M - Mandatory bit. An AVP with "M" bit set and its value MUST be | | |M - Mandatory bit. An AVP with "M" bit set and its value MUST be | | |||
| supported and recognized by a Diameter entity in order the | | | supported and recognized by a Diameter entity in order the | | |||
| message, which carries this AVP, to be accepted. | | | message, which carries this AVP, to be accepted. | | |||
|P - Indicates the need for encryption for end-to-end security. | | |P - Indicates the need for encryption for end-to-end security. | | |||
|V - Vendor specific bit that indicates whether the optional | | |V - Vendor specific bit that indicates whether the optional | | |||
| Vendor-ID field is present in the AVP header | | | Vendor-ID field is present in the AVP header. | | |||
+-------------------------------------------------------------------+ | +-------------------------------------------------------------------+ | |||
Figure 14: New Diameter AVPs | Figure 14: New Diameter AVPs | |||
7.7.1. NC-Request-Type AVP | 7.7.1. NC-Request-Type AVP | |||
The NC-Request-Type AVP (AVP Code TBD) is of type Enumerated and | The NC-Request-Type AVP (AVP Code TBD) is of type Enumerated and | |||
contains the reason for sending the NAT-Control-Request command. It | contains the reason for sending the NAT-Control-Request command. It | |||
shall be present in all NAT-Control-Request messages. | shall be present in all NAT-Control-Request messages. | |||
The following values are defined: | The following values are defined: | |||
INITIAL_REQUEST (1) | INITIAL_REQUEST (1) | |||
An Initial Request is used to install binding at the DNCA agent | ||||
An Initial Request is used to install binding at the DNCA Agent | ||||
on a successful access session setup. | on a successful access session setup. | |||
UPDATE_REQUEST (2) | UPDATE_REQUEST (2) | |||
An Update Request is used to update bindings previously | An Update Request is used to update bindings previously | |||
installed on a given access session, to add new binding on a | installed on a given access session, to add new binding on a | |||
given access session, or to remove one or several binding(s) | given access session, or to remove one or several binding(s) | |||
activated on a given access session. | activated on a given access session. | |||
TERMINATION_REQUEST (3) | TERMINATION_REQUEST (3) | |||
Termination Request is used to deactivate and remove all | Termination Request is used to deactivate and remove all | |||
bindings previously activated on a given access session. | bindings previously activated on a given access session. | |||
QUERY_REQUEST (4) | QUERY_REQUEST (4) | |||
Query Request is used to query the DNCA agent about the | Query Request is used to query the DNCA Agent about the | |||
currently installed bindings for an endpoint classifier. | currently installed bindings for an endpoint classifier. | |||
7.7.2. NAT-Control-Install AVP | 7.7.2. NAT-Control-Install AVP | |||
The NAT-Control AVP (AVP code TBD) is of type Grouped, and it is used | The NAT-Control AVP (AVP code TBD) is of type Grouped, and it is used | |||
to activate or install NAT bindings. It also contains Max-NAT- | to activate or install NAT bindings. It also contains Max-NAT- | |||
Bindings that defines maximum number of NAT bindings to be allowed | Bindings that defines maximum number of NAT bindings to be allowed | |||
for a subscriber and NAT-Control-Binding-Rule that references | for a subscriber and NAT-Control-Binding-Rule that references | |||
predefined policy template on DNCA agent that may contain static | predefined policy template on DNCA Agent that may contain static | |||
bindings, maximum number of bindings to be allowed, address pool from | bindings, maximum number of bindings to be allowed, address pool from | |||
which external binding address should be allocated. | which external binding address should be allocated. | |||
AVP format: | AVP format: | |||
NAT-Control-Install ::= < AVP Header: TBD > | NAT-Control-Install ::= < AVP Header: TBD > | |||
* [ NAT-Control-Definition ] | * [ NAT-Control-Definition ] | |||
[ NAT-Control-Binding-Rule ] | [ NAT-Control-Binding-Rule ] | |||
[ Max-NAT-Bindings] | [ Max-NAT-Bindings] | |||
* [ AVP ] | * [ AVP ] | |||
skipping to change at page 29, line 11 | skipping to change at page 29, line 11 | |||
* [ NAT-Control-Definition ] | * [ NAT-Control-Definition ] | |||
[ NAT-Control-Binding-Rule ] | [ NAT-Control-Binding-Rule ] | |||
* [ AVP ] | * [ AVP ] | |||
7.7.4. NAT-Control-Definition AVP | 7.7.4. NAT-Control-Definition AVP | |||
The NAT-Control-Definition AVP (AVP code TBD) is of type Grouped, and | The NAT-Control-Definition AVP (AVP code TBD) is of type Grouped, and | |||
it describes a binding. | it describes a binding. | |||
The NAT-Control-Definition AVP uniquely identifies the binding | The NAT-Control-Definition AVP uniquely identifies the binding | |||
between the DNCA agent and the DNCA manager. | between the DNCA Agent and the DNCA Manager. | |||
If both the NAT-Internal-Address and NAT-External-Address AVP(s) are | If both the NAT-Internal-Address and NAT-External-Address AVP(s) are | |||
supplied, it is a pre-defined binding. | supplied, it is a pre-defined binding. | |||
The Protocol AVP describes the transport protocol for which the | The Protocol AVP describes the transport protocol for the binding. | |||
binding is created. Exactly zero or one Protocol AVP may be | The NAT-Control-Definition AVP can contain either zero or one | |||
contained within NAT-Control-Definition AVP. If the Protocol AVP is | Protocol AVP. If the Protocol AVP is omitted and if both internal | |||
omitted and if both internal and external address are specified then | and external address are specified then the binding reserves the | |||
the binding reserves the addresses for all transport protocols. | addresses for all transport protocols. | |||
The Direction AVP is of type Enumerated and specifies in which | The Direction AVP is of type Enumerated. It specifies the direction | |||
direction to apply the binding. The values of the enumeration | for the binding. The values of the enumeration applicable in this | |||
applicable in this context are: "IN","OUT". If Direction AVP is OUT | context are: "IN","OUT". If Direction AVP is OUT or absent, NAT- | |||
or absent NAT-Internal-Address refers to the address of the | Internal-Address refers to the address of the subscriber device that | |||
subscriber device that needs to be translated. If Direction AVP is | needs to be translated. If Direction AVP is "IN", NAT-Internal- | |||
"IN" NAT-Internal-Address is the destination address that has to be | Address is the destination address that has to be translated. | |||
translated. | ||||
AVP format: | AVP format: | |||
NAT-Control-Definition ::= < AVP Header: TBD > | NAT-Control-Definition ::= < AVP Header: TBD > | |||
{ NAT-Internal-Address } | { NAT-Internal-Address } | |||
[ Protocol ] | [ Protocol ] | |||
[ Direction ] | [ Direction ] | |||
[ NAT-External-Address ] | [ NAT-External-Address ] | |||
[ Session-Id ] | [ Session-Id ] | |||
* [ AVP ] | * [ AVP ] | |||
7.7.5. NAT-Internal-Address AVP | 7.7.5. NAT-Internal-Address AVP | |||
The NAT-Internal-Address AVP (AVP code TBD) is of type Grouped, and | The NAT-Internal-Address AVP (AVP code TBD) is of type Grouped. It | |||
it describes the internal IP address and port for a binding. Framed- | describes the internal IP address and port for a binding. Framed- | |||
IPV6-Prefix and Framed-IP-Address AVPs are mutually exclusive. | IPV6-Prefix and Framed-IP-Address AVPs are mutually exclusive. | |||
AVP format: | AVP format: | |||
NAT-Internal-Address ::= < AVP Header: TBD > | NAT-Internal-Address ::= < AVP Header: TBD > | |||
[ Framed-IP-Address ] | [ Framed-IP-Address ] | |||
[ Framed-IPv6-Prefix ] | [ Framed-IPv6-Prefix ] | |||
[ Port] | [ Port] | |||
* [ AVP ] | * [ AVP ] | |||
7.7.6. NAT-External-Address AVP | 7.7.6. NAT-External-Address AVP | |||
skipping to change at page 30, line 21 | skipping to change at page 30, line 21 | |||
AVP format: | AVP format: | |||
NAT-External-Address ::= < AVP Header: TBD > | NAT-External-Address ::= < AVP Header: TBD > | |||
[ Framed-IP-Address ] | [ Framed-IP-Address ] | |||
[ IP-Address-Mask ] | [ IP-Address-Mask ] | |||
[ Port ] | [ Port ] | |||
* [ AVP ] | * [ AVP ] | |||
7.7.7. Max-NAT-Bindings | 7.7.7. Max-NAT-Bindings | |||
The Max-NAT-Bindings AVP (AVP code TBD) is of type Unsigned32, and it | The Max-NAT-Bindings AVP (AVP code TBD) is of type Unsigned32. It | |||
indicates the maximum number of NAT bindings allowed. | indicates the maximum number of NAT bindings allowed. | |||
7.7.8. NAT-Control-Binding-Rule AVP | 7.7.8. NAT-Control-Binding-Rule AVP | |||
The NAT-Control-Binding-Rule AVP (AVP code TBD) is of type is of type | The NAT-Control-Binding-Rule AVP (AVP code TBD) is of type | |||
OctetString, and it defines a name for a policy template that will be | OctetString. It defines a name for a policy template that will be | |||
predefined at NAT. Details on the contents and structure of the | predefined at NAT. Details on the contents and structure of the | |||
template as well as how it would be configured are outside the scope | template and configuration are outside the scope of this document. | |||
of this document. The policy to which this AVP refers to may contain | The policy to which this AVP refers to may contain NAT bindings, | |||
NAT Bindings, address pool for external address allocation of NAT | address pool for external address allocation of NAT binding, and | |||
binding, maximum allowed NAT bindings etc. | maximum allowed NAT bindings. | |||
7.7.9. Duplicate-Session-Id AVP | 7.7.9. Duplicate-Session-Id AVP | |||
The Duplicate-Session-Id AVP (AVP Code TBD) is of is of type | The Duplicate-Session-Id AVP (AVP Code TBD) is of type UTF8String. | |||
UTF8String. It is used to report error and contains the Session-Id | It is used to report error and contains the Session-Id of an existing | |||
of an existing session. | session. | |||
8. Accounting Commands | 8. Accounting Commands | |||
The Diameter NAT Control Application reuses session based accounting | The DNCA reuses session based accounting as defined in Diameter Base | |||
as defined in Diameter Base Protocol [RFC3588] to report the bindings | Protocol,[RFC3588] to report the bindings per endpoint. This | |||
used per endpoint. This reporting is achieved by sending Diameter | reporting is achieved by sending Diameter Accounting Requests (ACR) | |||
Accounting Requests (ACR) [Start, Interim and Stop] from the DNCA | [Start, Interim and Stop] from the DNCA Agent to DNCA Manager. | |||
agent to DNCA manager. | ||||
The DNCA agent sends an ACR Start on receiving an NCR with NC- | The DNCA Agent sends an ACR Start on receiving an NCR with NC- | |||
Request-Type AVP set to INITIAL_REQUEST received for a session, or on | Request-Type AVP set to INITIAL_REQUEST for a session or on creation | |||
creation of the first binding for a session requested in an earlier | of the first binding for a session requested in an earlier NCR. The | |||
NCR. The DNCA may send ACR Interim updates, if required, either due | DNCA may send ACR Interim updates, if required, either due to a | |||
to a change in bindings resulting from an NCR with NC-Request-Type | change in bindings resulting from a NCR with NC-Request-Type AVP set | |||
AVP set to UPDATE_REQUEST, or periodically as specified in Acct- | to UPDATE_REQUEST, or periodically as specified in Acct-Interim- | |||
Interim-Interval by DNCA Manager or when it creates/tears down | Interval by the DNCA Manager, or when it creates or tears down | |||
bindings. An ACR Stop is sent by the DNCA agent on receiving an NCR | bindings. An ACR Stop is sent by the DNCA Agent on receiving an NCR | |||
with NC-Request-Type AVP set to TERMINATION_REQUEST. | with NC-Request-Type AVP set to TERMINATION_REQUEST. | |||
The function of correlating the multiple bindings used by an endpoint | The function of correlating the multiple bindings used by an endpoint | |||
at any given time is relegated to the post processor. | at any given time is relegated to the post processor. | |||
The DNCA agent may trigger an interim accounting record when maximum | The DNCA Agent may trigger an interim accounting record when maximum | |||
number of bindings, if received in NCR, is reached. | number of bindings, if received in NCR, is reached. | |||
8.1. NAT Control Accounting Messages | 8.1. NAT Control Accounting Messages | |||
The ACR and ACA messages are reused as defined in Diameter Base | The ACR and ACA messages are reused as defined in Diameter Base | |||
Protocol [RFC3588] for exchanging endpoint NAT binding details | Protocol [RFC3588] for exchanging endpoint NAT binding details | |||
between the DNCA agent and the CDF. DNCA Application ID is used in | between the DNCA Agent and DNCA Manager. The DNCA Application ID is | |||
the accounting commands. ACR will contain one or more optional NAT- | used in the accounting commands. ACR contains one or more optional | |||
Control-Record AVP to report the bindings. The DNCA agent indicates | NAT-Control-Record AVP to report the bindings. The DNCA Agent | |||
the number of the currently allocated NAT bindings to the DNCA | indicates the number of allocated NAT bindings to the DNCA Manager | |||
manager using the Current-NAT-Bindings AVP. This number needs to | using the Current-NAT-Bindings AVP. This number needs to match the | |||
match the number of bindings identified as active within the NAT- | number of bindings identified as active within the NAT-Control-Record | |||
Control-Record AVP. | AVP. | |||
8.2. NAT Control Accounting AVPs | 8.2. NAT Control Accounting AVPs | |||
In addition to AVPs for ACR specified in [RFC3588], the DNCA agent | In addition to AVPs for ACR specified in [RFC3588], the DNCA Agent | |||
must add the NAT-Control-Record AVP. | must add the NAT-Control-Record AVP. | |||
8.2.1. NAT-Control-Record | 8.2.1. NAT-Control-Record | |||
The NAT-Control-Record AVP (AVP code TBD) is of type Grouped, and it | The NAT-Control-Record AVP (AVP code TBD) is of type Grouped. It | |||
describes a binding and its status. Event-Timestamp indicates the | describes a binding and its status. If NAT-Control-Binding-Status is | |||
time at which binding was created if NAT-Control-Binding-Status is | set to Created, Event-Timestamp indicates the binding creation time. | |||
set to Created, or time at which the binding was removed if NAT- | If NAT-Control-Binding-Status is set to Removed, Event-Timestamp | |||
Control-Binding-Status is set to removed. If the NAT-Control- | indicates the binding removal time. If NAT-Control-Binding-Status is | |||
Binding-Status is active Event-Timestamp need not be present, if | active, Event-Timestamp need not be present; if a value is present, | |||
present it indicates that binding is active at the mentioned time. | it indicates that binding is active at the given time. | |||
NAT-Control-Record ::= < AVP Header: TBD > | NAT-Control-Record ::= < AVP Header: TBD > | |||
{ NAT-Control-Definition } | { NAT-Control-Definition } | |||
{ NAT-Control-Binding-Status } | { NAT-Control-Binding-Status } | |||
[ Event-Timestamp ] | [ Event-Timestamp ] | |||
8.2.2. NAT-Control-Binding-Status | 8.2.2. NAT-Control-Binding-Status | |||
The NAT-Control-Binding-Status AVP (AVP code TBD) is of type | The NAT-Control-Binding-Status AVP (AVP code TBD) is of type | |||
enumerated and it describes whether the binding being reported was | enumerated. It indicates the status of the binding - created, | |||
created or removed or simply indicates that it is active. | removed, or active. | |||
The following values are defined: | The following values are defined: | |||
Created (1) | Created (1) | |||
Indicates that NAT binding is created. | NAT binding is created. | |||
Active (2) | Active (2) | |||
Indicates that NAT binding is active. | NAT binding is active. | |||
Removed (3) | Removed (3) | |||
Indicates that the NAT binding was removed. | NAT binding was removed. | |||
8.2.3. Current-NAT-Bindings | 8.2.3. Current-NAT-Bindings | |||
The Current-NAT-Bindings AVP (AVP code TBD) is of type Unsigned32, | The Current-NAT-Bindings AVP (AVP code TBD) is of type Unsigned32. | |||
and it indicates number of NAT bindings active on NAT. | It indicates number of NAT bindings active on NAT device. | |||
9. AVP Occurrence Table | 9. AVP Occurrence Table | |||
The following sections presents the AVPs defined in this document and | The following sections presents the AVPs defined in this document and | |||
specifies in which Diameter messages they MAY be present. Note that | specifies the Diameter messages in which, they MAY be present. Note: | |||
AVPs that can only be present within a Grouped AVP are not | AVPs that can only be present within a Grouped AVP are not | |||
represented in this table. | represented in this table. | |||
The table uses the following symbols: | The table uses the following symbols: | |||
0 The AVP MUST NOT be present in the message. | 0 The AVP MUST NOT be present in the message. | |||
0+ Zero or more instances of the AVP MAY be present in the | 0+ Zero or more instances of the AVP MAY be present in the | |||
message. | message. | |||
0-1 Zero or one instance of the AVP MAY be present in the | 0-1 Zero or one instance of the AVP MAY be present in the | |||
message. It is considered an error if there is more | message. It is considered an error if there is more | |||
than one instance of the AVP. | than one instance of the AVP. | |||
1 One instance of the AVP MUST be present in the message. | 1 One instance of the AVP MUST be present in the message. | |||
1+ At least one instance of the AVP MUST be present in the | 1+ At least one instance of the AVP MUST be present in the | |||
message. | message. | |||
9.1. DNCA AVP Table for NAT control initial and update requests | 9.1. DNCA AVP Table for NAT Control Initial and Update Requests | |||
The following table presents which NAT control application specific | The following table lists the DNCA specific AVPs that have to be | |||
AVPs are to be present in NCR/NCA with NC-Request-Type set to | present in NCR and NCA with NC-Request-Type set to INITIAL_REQUEST or | |||
INITIAL_REQUEST or UPDATE_REQUEST. | UPDATE_REQUEST. | |||
+-------------------+ | +-------------------+ | |||
| Command Code | | | Command Code | | |||
+-----------------------------------+-------------------+ | +-----------------------------------+-------------------+ | |||
| Attribute Name NCR NCA | | | Attribute Name NCR NCA | | |||
+-------------------------------------------------------+ | +-------------------------------------------------------+ | |||
|NC-Request-Type 1 1 | | |NC-Request-Type 1 1 | | |||
|NAT-Control-Install 0-1 0 | | |NAT-Control-Install 0-1 0 | | |||
|NAT-Control-Remove 0-1 0 | | |NAT-Control-Remove 0-1 0 | | |||
|NAT-Control-Definition 0 0 | | |NAT-Control-Definition 0 0 | | |||
|NAT-Control-Record 0 0 | | |NAT-Control-Record 0 0 | | |||
|Current-NAT-Bindings 0 0 | | |Current-NAT-Bindings 0 0 | | |||
|Duplicate-Session-Id 0 0-1 | | |Duplicate-Session-Id 0 0-1 | | |||
+-------------------------------------------------------+ | +-------------------------------------------------------+ | |||
9.2. DNCA AVP Table for Session Query request | 9.2. DNCA AVP Table for Session Query request | |||
The following table presents which NAT control application specific | The following table lists the DNCA specific AVPs that have to be | |||
AVPs are to be present in NCR/NCA with NC-Request-Type set to | present in NCR and NCA with NC-Request-Type set to QUERY_REQUEST. | |||
QUERY_REQUEST. | ||||
+-------------------+ | +-------------------+ | |||
| Command Code | | | Command Code | | |||
+-----------------------------------+-------------------+ | +-----------------------------------+-------------------+ | |||
| Attribute Name NCR NCA | | | Attribute Name NCR NCA | | |||
+-------------------------------------------------------+ | +-------------------------------------------------------+ | |||
|NC-Request-Type 1 1 | | |NC-Request-Type 1 1 | | |||
|NAT-Control-Install 0 0 | | |NAT-Control-Install 0 0 | | |||
|NAT-Control-Remove 0 0 | | |NAT-Control-Remove 0 0 | | |||
|NAT-Control-Definition 0 0+ | | |NAT-Control-Definition 0 0+ | | |||
|NAT-Control-Record 0 0 | | |NAT-Control-Record 0 0 | | |||
|Current-NAT-Bindings 0 1 | | |Current-NAT-Bindings 0 1 | | |||
|Duplicate-Session-Id 0 0 | | |Duplicate-Session-Id 0 0 | | |||
+-------------------------------------------------------+ | +-------------------------------------------------------+ | |||
9.3. DNCA AVP Table for NAT Control Terminate requests | 9.3. DNCA AVP Table for NAT Control Terminate requests | |||
The following table presents which NAT control application specific | The following table lists the DNCA specific AVPs that have to be | |||
AVPs are to be present in NCR/NCA with NC-Request-Type set to | present in NCR and NCA with NC-Request-Type set to | |||
TERMINATION_REQUEST. | TERMINATION_REQUEST. | |||
+-------------------+ | +-------------------+ | |||
| Command Code | | | Command Code | | |||
+-----------------------------------+-------------------+ | +-----------------------------------+-------------------+ | |||
| Attribute Name NCR NCA | | | Attribute Name NCR NCA | | |||
+-------------------------------------------------------+ | +-------------------------------------------------------+ | |||
|NC-Request-Type 1 1 | | |NC-Request-Type 1 1 | | |||
|NAT-Control-Install 0 0 | | |NAT-Control-Install 0 0 | | |||
|NAT-Control-Remove 0 0 | | |NAT-Control-Remove 0 0 | | |||
|NAT-Control-Definition 0 0 | | |NAT-Control-Definition 0 0 | | |||
|NAT-Control-Record 0 0 | | |NAT-Control-Record 0 0 | | |||
|Current-NAT-Bindings 0 0 | | |Current-NAT-Bindings 0 0 | | |||
|Duplicate-Session-Id 0 0 | | |Duplicate-Session-Id 0 0 | | |||
+-------------------------------------------------------+ | +-------------------------------------------------------+ | |||
9.4. DNCA AVP Table For Accounting Message | 9.4. DNCA AVP Table for Accounting Message | |||
Following table presents which NAT control application specific AVPs | The following table lists the DNCA specific AVPs, which may or may | |||
May or May Not be present in ACR/ACA messages. | not be present in ACR and ACA messages. | |||
+-------------------+ | +-------------------+ | |||
| Command Code | | | Command Code | | |||
+-----------------------------------+-------------------+ | +-----------------------------------+-------------------+ | |||
| Attribute Name ACR ACA | | | Attribute Name ACR ACA | | |||
+-------------------------------------------------------+ | +-------------------------------------------------------+ | |||
|NC-Request-Type 0 0 | | |NC-Request-Type 0 0 | | |||
|NAT-Control-Install 0 0 | | |NAT-Control-Install 0 0 | | |||
|NAT-Control-Remove 0 0 | | |NAT-Control-Remove 0 0 | | |||
|NAT-Control-Definition 0 0 | | |NAT-Control-Definition 0 0 | | |||
|NAT-Control-Record 0+ 0 | | |NAT-Control-Record 0+ 0 | | |||
skipping to change at page 35, line 45 | skipping to change at page 35, line 45 | |||
| to be assigned | Current-NAT-Bindings | Section 8.2.3 | | | to be assigned | Current-NAT-Bindings | Section 8.2.3 | | |||
+----------------+----------------------------+---------------+ | +----------------+----------------------------+---------------+ | |||
Table 2: AVP codes | Table 2: AVP codes | |||
10.3. AVP Values | 10.3. AVP Values | |||
10.3.1. Result-Code AVP Values | 10.3.1. Result-Code AVP Values | |||
Section 7.2 defines several new values for the Result-Code AVP for | Section 7.2 defines several new values for the Result-Code AVP for | |||
transient failures and permanent failures. IANA is requested to | transient and permanent failures. IANA is requested to allocate the | |||
allocate the corresponding values from the ranges for transient | corresponding values from the ranges for transient (4xxx) and | |||
(4xxx) and permantent (5xxx) failures. | permantent (5xxx) failures. | |||
+-----------+---------------------------------------+---------------+ | +-----------+---------------------------------------+---------------+ | |||
| Code | Name | Reference | | | Code | Name | Reference | | |||
| Value | | | | | Value | | | | |||
+-----------+---------------------------------------+---------------+ | +-----------+---------------------------------------+---------------+ | |||
| to be | RESOURCE_FAILURE | Section 7.2.2 | | | to be | RESOURCE_FAILURE | Section 7.2.2 | | |||
| assigned | | | | | assigned | | | | |||
| (4xxx) | | | | | (4xxx) | | | | |||
| to be | UNKNOWN_BINDING_RULE_NAME | Section 7.2.3 | | | to be | UNKNOWN_BINDING_RULE_NAME | Section 7.2.3 | | |||
| assigned | | | | | assigned | | | | |||
skipping to change at page 36, line 48 | skipping to change at page 36, line 48 | |||
+----------------+----------------------------------+-----------+ | +----------------+----------------------------------+-----------+ | |||
| ID Value | Name | Reference | | | ID Value | Name | Reference | | |||
+----------------+----------------------------------+-----------+ | +----------------+----------------------------------+-----------+ | |||
| to be assigned | Diameter NAT Control Application | Section 4 | | | to be assigned | Diameter NAT Control Application | Section 4 | | |||
+----------------+----------------------------------+-----------+ | +----------------+----------------------------------+-----------+ | |||
Table 4: Diameter Application ID values | Table 4: Diameter Application ID values | |||
11. Security Considerations | 11. Security Considerations | |||
Similar to what the Diameter QoS application (see | Similar to the impact of Diameter QoS application (see | |||
[I-D.ietf-dime-diameter-qos]) does for authorization of QoS | [I-D.ietf-dime-diameter-qos]) on authorization of QoS reservations, | |||
reservations, this document describes procedures for authorizing | this document describes procedures for authorizing NAT related | |||
network address translation related attributes and parameters by an | attributes and parameters by an entity, which is non-local to the | |||
entity which is non-local to the device performing network address | device performing NAT. The security considerations for the Diameter | |||
translation. The security considerations for the Diameter QoS | QoS application (see [I-D.ietf-dime-diameter-qos] section 11) apply | |||
application (see [I-D.ietf-dime-diameter-qos] section 11) apply in a | in a similar way to the DNCA. Securing the information exchange | |||
similar way to the DNCA. Securing the information exchange between | between the authorizing entity (the DNCA Manager) and the NAT device | |||
the authorizing entity (the DNCA manager) as well as the NAT device | ||||
requires bilateral authentication of the involved parties, | requires bilateral authentication of the involved parties, | |||
authorization of the involved parties to perform the required | authorization of the involved parties to perform the required | |||
procedures and functions, as well as procedures to ensure integrity | procedures and functions, and procedures to ensure integrity and | |||
and confidentiality of the information exchange. DNCA makes use of | confidentiality of the information exchange. The DNCA makes use of | |||
the capabilities offered by Diameter as well as the underlying | the capabilities offered by Diameter and the underlying transport | |||
transport protocols to deliver on these requirements (see Section 5.1 | protocols to deliver these requirements (see Section 5.1 ). | |||
). | ||||
It is assumed that the DNCA agent and DNCA manager are in the same | It is assumed that the DNCA Agent and DNCA Manager are in the same | |||
domain and have a mutual trust set up. Authorization between the | domain and have a mutual trust set up. Authorization between the | |||
DNCA agent and DNCA manager is beyond the scope of this document. | DNCA Agent and DNCA Manager is beyond the scope of this document. | |||
12. Acknowledgements | 12. Acknowledgements | |||
The authors would like to thank Jouni Korhonen, Avi Lior, Chris Metz, | The authors would like to thank Ramya Balakrishna, Jouni Korhonen, | |||
Hannes Tschofenig, Greg Weber, and Glen Zorn for their input on this | Avi Lior, Chris Metz, Hannes Tschofenig, Greg Weber, and Glen Zorn | |||
document. | for their input on this document. | |||
13. Change History (to be removed prior to publication as an RFC) | 13. Change History (to be removed prior to publication as an RFC) | |||
Changes from -00 to -01 | Changes from -00 to -01 | |||
a. new values for Result-Code AVP used - instead of Experimental- | a. new values for Result-Code AVP used - instead of Experimental- | |||
Result AVP | Result AVP | |||
b. added support for transport specific binding (UDP/TCP) | b. added support for transport specific binding (UDP/TCP) | |||
skipping to change at page 38, line 4 | skipping to change at page 37, line 46 | |||
d. clarified the use of the two different types of query-requests | d. clarified the use of the two different types of query-requests | |||
Changes from -01 to -02 | Changes from -01 to -02 | |||
a. Reference to pull mode removed, session initiation event | a. Reference to pull mode removed, session initiation event | |||
clarified in section 4.1 | clarified in section 4.1 | |||
b. added Redirect-* AVPs in NCA command | b. added Redirect-* AVPs in NCA command | |||
c. Removed reference to Called-Station-Id AVP in NCR command | c. Removed reference to Called-Station-Id AVP in NCR command | |||
d. Editorial changes (shorted intro section | ||||
d. Editorial changes | ||||
e. added support for bindings providing AFT (NAT64) | e. added support for bindings providing AFT (NAT64) | |||
Changes from -02 to -03 | ||||
a. Editorial changes | ||||
14. References | 14. References | |||
14.1. Normative References | 14.1. Normative References | |||
[ETSIES283034] | [ETSIES283034] | |||
ETSI, "Telecommunications and Internet Converged Services | ETSI, "Telecommunications and Internet Converged Services | |||
and Protocols for Advanced Networks (TISPAN),Network | and Protocols for Advanced Networks (TISPAN),Network | |||
Attachment Sub-System (NASS),e4 interface based on the | Attachment Sub-System (NASS),e4 interface based on the | |||
Diameter protocol.", September 2008. | Diameter protocol.", September 2008. | |||
skipping to change at page 39, line 18 | skipping to change at page 39, line 20 | |||
August 2005. | August 2005. | |||
[RFC5624] Korhonen, J., Tschofenig, H., and E. Davies, "Quality of | [RFC5624] Korhonen, J., Tschofenig, H., and E. Davies, "Quality of | |||
Service Parameters for Usage with Diameter", RFC 5624, | Service Parameters for Usage with Diameter", RFC 5624, | |||
August 2009. | August 2009. | |||
[TS32299] "3rd Generation Partnership Project; Technical | [TS32299] "3rd Generation Partnership Project; Technical | |||
Specification Group Service and System Aspects; | Specification Group Service and System Aspects; | |||
Telecommunication management; Charging management; | Telecommunication management; Charging management; | |||
"Diameter charging applications", 3GPP TS 32.299 Version | "Diameter charging applications", 3GPP TS 32.299 Version | |||
6.3.0.2", 2008. | 9.4.0", 2008. | |||
Authors' Addresses | Authors' Addresses | |||
Frank Brockners | Frank Brockners | |||
Cisco | Cisco | |||
Hansaallee 249, 3rd Floor | Hansaallee 249, 3rd Floor | |||
DUESSELDORF, NORDRHEIN-WESTFALEN 40549 | DUESSELDORF, NORDRHEIN-WESTFALEN 40549 | |||
Germany | Germany | |||
Email: fbrockne@cisco.com | Email: fbrockne@cisco.com | |||
End of changes. 168 change blocks. | ||||
497 lines changed or deleted | 487 lines changed or added | |||
This html diff was produced by rfcdiff 1.38. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |