draft-ietf-dime-nat-control-06.txt | draft-ietf-dime-nat-control-07.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: July 14, 2011 V. Singh | Expires: August 20, 2011 V. Singh | |||
V. Fajardo | V. Fajardo | |||
Telcordia Technologies | Telcordia Technologies | |||
January 10, 2011 | February 16, 2011 | |||
Diameter Network Address and Port Translation Control Application | Diameter Network Address and Port Translation Control Application | |||
draft-ietf-dime-nat-control-06 | draft-ietf-dime-nat-control-07 | |||
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 | the Diameter Network address and port translation Control | |||
Application. This Diameter application allows per endpoint control | Application. This Diameter application allows per endpoint control | |||
of Network Address Translators and Network Address and Port | of Network Address Translators and Network Address and Port | |||
Translators, which are added to cope with IPv4-address space | Translators, which are added to cope with IPv4-address space | |||
completion. This Diameter application allows external devices to | completion. This Diameter application allows external devices to | |||
configure and manage a Network Address Translator device - expanding | configure and manage a Network Address Translator device - expanding | |||
skipping to change at page 2, line 7 | skipping to change at page 2, line 7 | |||
Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
Drafts is at http://datatracker.ietf.org/drafts/current/. | 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 July 14, 2011. | This Internet-Draft will expire on August 20, 2011. | |||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2011 IETF Trust and the persons identified as the | Copyright (c) 2011 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 | |||
skipping to change at page 3, line 29 | skipping to change at page 3, line 29 | |||
4.6. DNCA Manager and Agent Failures . . . . . . . . . . . . . 18 | 4.6. DNCA Manager and Agent Failures . . . . . . . . . . . . . 18 | |||
5. Use Of The Diameter Base Protocol . . . . . . . . . . . . . . 18 | 5. Use Of The Diameter Base Protocol . . . . . . . . . . . . . . 18 | |||
5.1. Securing Diameter Messages . . . . . . . . . . . . . . . . 19 | 5.1. Securing Diameter Messages . . . . . . . . . . . . . . . . 19 | |||
5.2. Accounting Functionality . . . . . . . . . . . . . . . . . 19 | 5.2. Accounting Functionality . . . . . . . . . . . . . . . . . 19 | |||
5.3. Use Of Sessions . . . . . . . . . . . . . . . . . . . . . 19 | 5.3. Use Of Sessions . . . . . . . . . . . . . . . . . . . . . 19 | |||
5.4. Routing Considerations . . . . . . . . . . . . . . . . . . 19 | 5.4. Routing Considerations . . . . . . . . . . . . . . . . . . 19 | |||
5.5. Advertising Application Support . . . . . . . . . . . . . 19 | 5.5. Advertising Application Support . . . . . . . . . . . . . 19 | |||
6. DNCA Commands . . . . . . . . . . . . . . . . . . . . . . . . 20 | 6. DNCA Commands . . . . . . . . . . . . . . . . . . . . . . . . 20 | |||
6.1. NAT-Control Request (NCR) Command . . . . . . . . . . . . 20 | 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. NAT Control Application Session State Machine . . . . . . . . 22 | 7. NAT Control Application Session State Machine . . . . . . . . 21 | |||
8. DNCA AVPs . . . . . . . . . . . . . . . . . . . . . . . . . . 25 | 8. DNCA AVPs . . . . . . . . . . . . . . . . . . . . . . . . . . 24 | |||
8.1. Reused Base Protocol AVPs . . . . . . . . . . . . . . . . 25 | 8.1. Reused Base Protocol AVPs . . . . . . . . . . . . . . . . 24 | |||
8.2. Additional Result-Code AVP Values . . . . . . . . . . . . 26 | 8.2. Additional Result-Code AVP Values . . . . . . . . . . . . 25 | |||
8.2.1. Success . . . . . . . . . . . . . . . . . . . . . . . 26 | 8.2.1. Success . . . . . . . . . . . . . . . . . . . . . . . 25 | |||
8.2.2. Transient Failures . . . . . . . . . . . . . . . . . . 26 | 8.2.2. Transient Failures . . . . . . . . . . . . . . . . . . 25 | |||
8.2.3. Permanent Failures . . . . . . . . . . . . . . . . . . 27 | 8.2.3. Permanent Failures . . . . . . . . . . . . . . . . . . 26 | |||
8.3. Reused NASREQ Diameter Application AVPs . . . . . . . . . 28 | 8.3. Reused NASREQ Diameter Application AVPs . . . . . . . . . 27 | |||
8.4. Reused from RFC 4675 . . . . . . . . . . . . . . . . . . . 28 | 8.4. Reused from RFC 4675 . . . . . . . . . . . . . . . . . . . 27 | |||
8.5. Reused from Diameter QoS Application . . . . . . . . . . . 28 | 8.5. Reused from Diameter QoS Application . . . . . . . . . . . 27 | |||
8.6. Reused from ETSI ES 283 034, e4 Diameter Application . . . 29 | 8.6. Reused from ETSI ES 283 034, e4 Diameter Application . . . 28 | |||
8.7. DNCA Defined AVPs . . . . . . . . . . . . . . . . . . . . 30 | 8.7. DNCA Defined AVPs . . . . . . . . . . . . . . . . . . . . 29 | |||
8.7.1. NC-Request-Type AVP . . . . . . . . . . . . . . . . . 30 | 8.7.1. NC-Request-Type AVP . . . . . . . . . . . . . . . . . 29 | |||
8.7.2. NAT-Control-Install AVP . . . . . . . . . . . . . . . 31 | 8.7.2. NAT-Control-Install AVP . . . . . . . . . . . . . . . 30 | |||
8.7.3. NAT-Control-Remove AVP . . . . . . . . . . . . . . . . 31 | 8.7.3. NAT-Control-Remove AVP . . . . . . . . . . . . . . . . 30 | |||
8.7.4. NAT-Control-Definition AVP . . . . . . . . . . . . . . 31 | 8.7.4. NAT-Control-Definition AVP . . . . . . . . . . . . . . 30 | |||
8.7.5. NAT-Internal-Address AVP . . . . . . . . . . . . . . . 32 | 8.7.5. NAT-Internal-Address AVP . . . . . . . . . . . . . . . 31 | |||
8.7.6. NAT-External-Address AVP . . . . . . . . . . . . . . . 32 | 8.7.6. NAT-External-Address AVP . . . . . . . . . . . . . . . 31 | |||
8.7.7. Max-NAT-Bindings . . . . . . . . . . . . . . . . . . . 33 | 8.7.7. Max-NAT-Bindings . . . . . . . . . . . . . . . . . . . 32 | |||
8.7.8. NAT-Control-Binding-Rule AVP . . . . . . . . . . . . . 33 | 8.7.8. NAT-Control-Binding-Rule AVP . . . . . . . . . . . . . 32 | |||
8.7.9. Duplicate-Session-Id AVP . . . . . . . . . . . . . . . 33 | 8.7.9. Duplicate-Session-Id AVP . . . . . . . . . . . . . . . 32 | |||
9. Accounting Commands . . . . . . . . . . . . . . . . . . . . . 33 | 9. Accounting Commands . . . . . . . . . . . . . . . . . . . . . 32 | |||
9.1. NAT Control Accounting Messages . . . . . . . . . . . . . 34 | 9.1. NAT Control Accounting Messages . . . . . . . . . . . . . 33 | |||
9.2. NAT Control Accounting AVPs . . . . . . . . . . . . . . . 34 | 9.2. NAT Control Accounting AVPs . . . . . . . . . . . . . . . 33 | |||
9.2.1. NAT-Control-Record . . . . . . . . . . . . . . . . . . 34 | 9.2.1. NAT-Control-Record . . . . . . . . . . . . . . . . . . 33 | |||
9.2.2. NAT-Control-Binding-Status . . . . . . . . . . . . . . 34 | 9.2.2. NAT-Control-Binding-Status . . . . . . . . . . . . . . 33 | |||
9.2.3. Current-NAT-Bindings . . . . . . . . . . . . . . . . . 35 | 9.2.3. Current-NAT-Bindings . . . . . . . . . . . . . . . . . 34 | |||
10. AVP Occurrence Table . . . . . . . . . . . . . . . . . . . . . 35 | 10. AVP Occurrence Table . . . . . . . . . . . . . . . . . . . . . 34 | |||
10.1. DNCA AVP Table for NAT Control Initial and Update | 10.1. DNCA AVP Table for NAT Control Initial and Update | |||
Requests . . . . . . . . . . . . . . . . . . . . . . . . . 35 | Requests . . . . . . . . . . . . . . . . . . . . . . . . . 34 | |||
10.2. DNCA AVP Table for Session Query request . . . . . . . . . 36 | 10.2. DNCA AVP Table for Session Query request . . . . . . . . . 35 | |||
10.3. DNCA AVP Table for Accounting Message . . . . . . . . . . 36 | 10.3. DNCA AVP Table for Accounting Message . . . . . . . . . . 35 | |||
11. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 36 | 11. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 35 | |||
11.1. Command Codes . . . . . . . . . . . . . . . . . . . . . . 37 | 11.1. Command Codes . . . . . . . . . . . . . . . . . . . . . . 36 | |||
11.2. AVP Codes . . . . . . . . . . . . . . . . . . . . . . . . 37 | 11.2. AVP Codes . . . . . . . . . . . . . . . . . . . . . . . . 36 | |||
11.3. AVP Values . . . . . . . . . . . . . . . . . . . . . . . . 37 | 11.3. AVP Values . . . . . . . . . . . . . . . . . . . . . . . . 36 | |||
11.3.1. Result-Code AVP Values . . . . . . . . . . . . . . . . 38 | 11.3.1. Result-Code AVP Values . . . . . . . . . . . . . . . . 37 | |||
11.4. Application IDs . . . . . . . . . . . . . . . . . . . . . 38 | 11.4. Application IDs . . . . . . . . . . . . . . . . . . . . . 37 | |||
12. Security Considerations . . . . . . . . . . . . . . . . . . . 39 | 12. Security Considerations . . . . . . . . . . . . . . . . . . . 38 | |||
13. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 39 | 13. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 38 | |||
14. Change History (to be removed prior to publication as an | 14. Change History (to be removed prior to publication as an | |||
RFC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 | RFC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 | |||
15. References . . . . . . . . . . . . . . . . . . . . . . . . . . 40 | 15. References . . . . . . . . . . . . . . . . . . . . . . . . . . 40 | |||
15.1. Normative References . . . . . . . . . . . . . . . . . . . 40 | 15.1. Normative References . . . . . . . . . . . . . . . . . . . 40 | |||
15.2. Informative References . . . . . . . . . . . . . . . . . . 41 | 15.2. Informative References . . . . . . . . . . . . . . . . . . 40 | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 41 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 40 | |||
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 NAT 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 | |||
Authentication, Authorization and Accounting (AAA) environment of a | Authentication, Authorization and Accounting (AAA) environment of a | |||
skipping to change at page 6, line 7 | skipping to change at page 6, line 7 | |||
list of IP-subnets. Such External address pools can be used to | list of IP-subnets. Such External address pools can be used to | |||
select external IP address in NAPT/NAT bindings for multiple | select external IP address in NAPT/NAT bindings for multiple | |||
subscribers. | subscribers. | |||
4. Generates reports and accounting records: Reports established | 4. Generates reports and accounting records: Reports established | |||
bindings for a particular user. The collected information is | bindings for a particular user. The collected information is | |||
used by accounting systems for statistical purposes. | used by accounting systems for statistical purposes. | |||
5. Queries and retrieves details about bindings on demand: This | 5. Queries and retrieves details about bindings on demand: This | |||
feature complements the previously mentioned accounting | feature complements the previously mentioned accounting | |||
functionality(see item 4). The query functionality complements | functionality(see item 4). | |||
alternative information query mechanisms, such as Simple Network | ||||
Management Protocol (SNMP) based mechanisms, if available. | ||||
6. Identifies a subscriber or endpoint on multiple network devices | 6. Identifies a subscriber or endpoint on multiple network devices | |||
(NAPT or NAT device, the AAA-server, or the Network Access Server | (NAPT or NAT device, the AAA-server, or the Network Access Server | |||
(NAS)): Endpoint identification is facilitated through a Global | (NAS)): Endpoint identification is facilitated through a Global | |||
Endpoint ID. Endpoints are identified through a single or a set | Endpoint ID. Endpoints are identified through a single or a set | |||
of classifiers, such as IP address, Virtual Local Area Network | of classifiers, such as IP address, Virtual Local Area Network | |||
(VLAN) identifier, or interface identifier which uniquely | (VLAN) identifier, or interface identifier which uniquely | |||
identify the traffic associated with a particular global endpoint | identify the traffic associated with a 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 DNCA and its overall | while Section 3 provides an introduction to DNCA and its overall | |||
deployment framework. Sections 4 to 8 cover the DNCA specifics, with | deployment framework. Sections 4 to 8 cover DNCA specifics, with | |||
Section 4 describing session management, Section 5 the use of the | Section 4 describing session management, Section 5 the use of the | |||
Diameter base protocol, Section 6 new commands, Section 7 AVPs used, | Diameter base protocol, Section 6 new commands, Section 7 AVPs used, | |||
and Section 8 accounting aspects. Section 9 presents an AVP | and Section 8 accounting aspects. Section 9 presents an AVP | |||
occurance table. IANA and security considerations are addressed in | occurance table. IANA 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 | |||
skipping to change at page 7, line 4 | skipping to change at page 6, line 49 | |||
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 | |||
NCR:NAT Control Request | ||||
NCR:NAT Control Request | ||||
NCA:NAT Control Answer | NCA:NAT Control Answer | |||
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 NAS, which | user's IPv4 host gains access to the Internet though a NAS, which | |||
facilitates the authentication of the endpoint and configures the | facilitates the authentication of the endpoint and configures the | |||
user's connection according to the authorization and configuration | user's connection according to the authorization and configuration | |||
skipping to change at page 8, line 24 | skipping to change at page 8, line 22 | |||
| | | | |||
| | | | |||
+--------+ +---------+ +---------+ +----------+ | +--------+ +---------+ +---------+ +----------+ | |||
| IPv4/ | | | | | | IPv4 | | | IPv4/ | | | | | | IPv4 | | |||
| IPv6 |----| NAS |----| NAT |----| Internet | | | IPv6 |----| NAS |----| NAT |----| Internet | | |||
| Host | | | | | | | | | Host | | | | | | | | |||
+--------+ +---------+ +---------+ +----------+ | +--------+ +---------+ +---------+ +----------+ | |||
<-------- 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 NAT | |||
3.2. Diameter NAPT Control Application Overview | 3.2. Diameter NAPT Control Application Overview | |||
The DNCA runs between a DNCA Agent on the NAT and the DNCA Manager. | DNCA runs between a DNCA Agent on the NAT and DNCA Manager. DNCA | |||
DNCA allows per endpoint control and management of NAT. Based on | allows per endpoint control and management of NAT. Based on | |||
Diameter, DNCA integrates well with the suite of Diameter | Diameter, DNCA integrates well with the suite of Diameter | |||
applications deployed for per endpoint authentication, authorization, | applications deployed for per endpoint authentication, authorization, | |||
accounting, and policy control in service provider networks. | accounting, and policy control in service provider networks. | |||
DNCA offers: | DNCA offers: | |||
o Request and answer commands to control the allowed number of NAT | o Request and answer commands to control the allowed number of NAT | |||
bindings per endpoint , to request the allocation of specific | bindings per endpoint , to request the allocation of specific | |||
bindings for an endpoint, to define the address pool to be used | bindings for an endpoint, to define the address pool to be used | |||
for an endpoint. | for an endpoint. | |||
skipping to change at page 9, line 8 | skipping to change at page 9, line 7 | |||
DNCA allows controlling the behavior of a NAT device on a per | DNCA allows controlling the behavior of a NAT device on a per | |||
endpoint basis during initial session establishment and at later | endpoint basis during initial session establishment and at later | |||
stages by providing an update procedure for already established | stages by providing an update procedure for already established | |||
sessions. Using DNCA, per endpoint NAT binding information can be | 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. | |||
3.3. Deployment Scenarios For DNCA | 3.3. Deployment Scenarios For DNCA | |||
The role of the Diameter NAT Control Manager can be fulfilled by | The role of DNCA can be fulfilled by either the NAS or by an external | |||
either the NAS or by an external server, such as AAA-server. The two | server, such as AAA-server. The two deployment scenarios are | |||
deployment scenarios are outlined in Figure 3 ("integrated | outlined in Figure 3 ("integrated deployment") and Figure 4 | |||
deployment") and Figure 4 ("autonomous deployment"). | ("autonomous deployment"). | |||
Within the figures (M) denotes the network element, which takes on | Within the figures (M) denotes the network element, which takes on | |||
the DNCA Manager role. Similarly, (A) identifies the network | DNCA Manager role. Similarly, (A) identifies the network element, | |||
element, which performs the DNCA Agent role. | which performs 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. As DNCA Manager the NAS, | existing AAA deployment are desired. As DNCA Manager the NAS, | |||
initiates and manages session with the NAT device, exchanges NAT | initiates and manages session with the NAT device, exchanges NAT | |||
specific configuration information and handles reporting and | specific configuration information and handles reporting and | |||
accounting information. The NAS receives reporting and accounting | accounting information. The NAS receives reporting and accounting | |||
information from NAT device. With this information, the NAS provides | information from NAT device. With this information, the NAS provides | |||
a single accounting record for the user. This reduces the usage of | a single accounting record for the user. This reduces the usage of | |||
skipping to change at page 10, line 21 | skipping to change at page 10, line 21 | |||
| | | | |||
| | | | |||
+--------+ +---------+ +---------+ +----------+ | +--------+ +---------+ +---------+ +----------+ | |||
| IPv4/ | | (M) | | (A) | | IPv4 | | | IPv4/ | | (M) | | (A) | | IPv4 | | |||
| IPv6 |----| NAS |----| NAT |----| Internet | | | IPv6 |----| NAS |----| NAT |----| Internet | | |||
| Host | | | | | | | | | Host | | | | | | | | |||
+--------+ +---------+ +---------+ +----------+ | +--------+ +---------+ +---------+ +----------+ | |||
<-------- 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: NAT 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 DNCA Manager | |||
Manager manages the connection to the NAT device, controls the per | manages the connection to the NAT device, controls the per endpoint | |||
endpoint configuration, and also receives accounting and reporting | configuration, and also receives accounting and reporting information | |||
information from the NAT device. Different from the integrated | from the NAT device. Different from the integrated deployment | |||
deployment scenario, the autonomous deployment scenario does not | scenario, the autonomous deployment scenario does not "hide" the | |||
"hide" the existence of the NAT device from the AAA infrastructure. | existence of the NAT device from the AAA infrastructure. Here two | |||
Here two accounting streams are received by the AAA-server for one | accounting streams are received by the AAA-server for one particular | |||
particular endpoint, one from the NAS, and one from the NAT device. | endpoint, one from the NAS, and one from the NAT device. | |||
+---------+ | +---------+ | |||
| (M) | | | (M) | | |||
| AAA |--------- | | AAA |--------- | |||
| | | | | | | | |||
+---------+ | | +---------+ | | |||
| | | | | | |||
| | | | | | |||
| | | | | | |||
+--------+ +---------+ +---------+ +----------+ | +--------+ +---------+ +---------+ +----------+ | |||
| IPv4/ | | | | (A) | | IPv4 | | | IPv4/ | | | | (A) | | IPv4 | | |||
| IPv6 |----| NAS |----| NAT |----| Internet | | | IPv6 |----| NAS |----| NAT |----| Internet | | |||
| Host | | | | | | | | | Host | | | | | | | | |||
+--------+ +---------+ +---------+ +----------+ | +--------+ +---------+ +---------+ +----------+ | |||
<-------- 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: NAT Control deployment: Autonomous deployment | |||
4. DNCA Session Establishment and Management | 4. DNCA Session Establishment and 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 8 | AVPs defined for DNCA. Please refer to Section 6 and Section 8 for | |||
for details. | 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 DNCA agent: The DNCA agent is part of the NAT device | o DNCA Agent: DNCA Agent is part of the NAT device | |||
o DNCA Manager | o DNCA Manager | |||
The NAT control requesting entity is always the DNCA Manager. The | The NAT control requesting entity is always DNCA Manager. DNCA | |||
DNCA Manager always initiates, updates, or terminates the sessions. | Manager always initiates, updates, or terminates the sessions. This | |||
This mode of operation is sometimes also referred to as "push mode". | mode of operation is sometimes also referred to as "push mode". | |||
The DNCA Manager can be NAS or AAA-server. The DNCA Manager | DNCA Manager can be NAS or AAA-server. DNCA Manager initiates a | |||
initiates a session with the DNCA agent when it learns about the | session with DNCA Agent when it learns about the subscriber. DNCA | |||
subscriber. The DNCA Manager may learn about a subscriber when it | Manager may learn about a subscriber when it receives authentication, | |||
receives authentication, authorization, or accounting request for | authorization, or accounting request for that subscriber or by some | |||
that subscriber or by some other means, such as on the box | other means, such as on the box configuration to identify a | |||
configuration to identify a subscriber with respect to his IP | subscriber with respect to his IP packets. | |||
packets. | ||||
4.2. Session Establishment | 4.2. Session Establishment | |||
The DNCA Manager establishes a session with the DNCA agent to control | DNCA Manager establishes a session with DNCA Agent to control the | |||
the behavior of the NAT device. During session establishment, the | behavior of the NAT device. During session establishment, DNCA | |||
DNCA Manager passes along configuration information to the DNCA | Manager passes along configuration information to DNCA Agent. The | |||
agent. The session configuration information comprises the maximum | session configuration information comprises the maximum number of | |||
number of bindings allowed for the endpoint associated with this | bindings allowed for the endpoint associated with this session, a set | |||
session, a set of pre-defined NAT bindings to be established for this | of pre-defined NAT bindings to be established for this endpoint, or a | |||
endpoint, or a description of the address pool, external addresses to | description of the address pool, external addresses to be allocated | |||
be allocated from. | from. | |||
The DNCA Manager initiates the Diameter NAT Control session to the | DNCA Manager initiates the Diameter NAT Control session to DNCA | |||
DNCA Agent. The DNCA Manager generates a NAT-Control Request (NCR) | Agent. DNCA Manager generates a NAT-Control Request (NCR) message to | |||
message to the DNCA Agent with NC-Request-Type AVP set to | DNCA Agent with NC-Request-Type AVP set to INITIAL_REQUEST. On | |||
INITIAL_REQUEST. On receipt of NCR the DNCA Agent sets up a new | receipt of NCR DNCA Agent sets up a new session for the endpoint | |||
session for the endpoint associated with the endpoint classifier(s) | associated with the endpoint classifier(s) contained in the NCR. | |||
contained in the NCR. The DNCA agent notifies the DNCA Manager about | DNCA Agent notifies DNCA Manager about successful session setup using | |||
successful session setup using a NAT-Control Answer (NCA) message | a NAT-Control Answer (NCA) message with Result-Code set to | |||
with Result-Code set to DIAMETER_SUCCESS. Figure 5 shows the | DIAMETER_SUCCESS. Figure 5 shows the initial protocol interaction | |||
protocol interaction between the DNCA Manager and the DNCA Agent. | between DNCA Manager and DNCA Agent. | |||
The initial NAT-Control-Request may contain configuration information | The initial NAT-Control-Request may contain configuration information | |||
for the session, which specifies the behavior of the NAT device for | for the session, which specifies the behavior of the NAT device for | |||
the session. The configuration information, which may be included, | the session. The configuration information, which may be included, | |||
comprises: | 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; for example, in case a subscriber requires a fixed | session; for example, in case a subscriber requires a fixed | |||
external IP- address/port pair for one of the 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 the DNCA Agent, which | o A reference to a predefined binding rule on DNCA Agent, which is | |||
is applied to the session. Such a predefined binding rule on the | applied to the session. Such a predefined binding rule on DNCA | |||
DNCA Agent may contain, for example, the name of the IP address | Agent may contain, for example, the name of the IP address pool | |||
pool that external IP addresses should be allocated from, maximum | 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, 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; that is, DNCA Manager and endpoint identifier | existing session; that is, DNCA Manager and endpoint identifier | |||
match an already existing session, the DNCA Agent returns NCA with | match an already existing session, DNCA Agent returns NCA with | |||
Result-Code set to SESSION_EXISTS, and provides the Session-Id of | Result-Code set to SESSION_EXISTS, and provides the Session-Id of | |||
the 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; that is, DNCA Manager and | of the already existing sessions; that is, DNCA Manager and | |||
endpoint identifier match already existing sessions, the DNCA | endpoint identifier match already existing sessions, DNCA Agent | |||
Agent returns a NCA with Result-Code set to INSUFFICIENT- | returns a NCA with Result-Code set to INSUFFICIENT-CLASSIFIERS. | |||
CLASSIFIERS. In case a DNCA Manager receives NCA that reports | In case a DNCA Manager receives NCA that reports Insufficient- | |||
Insufficient-Classifiers, it may choose to retry establishing a | Classifiers, it may choose to retry establishing a new session | |||
new session using additional and more specific classifiers. | using additional and more specific classifiers. | |||
o If the NCR contains a binding rule not defined on the NAT device, | o If the NCR contains a binding rule not defined on the NAT device, | |||
the DNCA Agent returns NCA with Result-Code AVP set to | 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 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, that is NAT device, treats a NCR | BINDING_FAILURE. DNCA Agent, that is NAT device, treats a NCR as | |||
as an atomic operation; hence none of the requested bindings will | an atomic operation; hence none of the requested bindings will be | |||
be established by the NAT device. Either all requested actions | established by the NAT device. Either all requested actions | |||
within a NCR are completed successfully, or the entire request | within a NCR are completed successfully, or the entire request | |||
fails. | 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 returns NCA with Result-Code set to RESOURCE_FAILURE. | request, it returns NCA with Result-Code set to 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; that is, a | the NCR along with a reference to a binding rule; that is, a | |||
predefined template on NAT device, and the values in Max-NAT- | predefined template on NAT device, and the values in Max-NAT- | |||
Binding and NAT-Control-Definition contradict those specified in | Binding and NAT-Control-Definition contradict those specified in | |||
skipping to change at page 13, line 42 | skipping to change at page 13, line 41 | |||
| 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 DNCA Manager desires to | |||
change the behavior of the NAT for an existing session. Re- | change the behavior of the NAT 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 NCR message to the DNCA Agent with NC- | DNCA Manager generates a NCR message to DNCA Agent with NC-Request- | |||
Request-Type AVP set to UPDATE_REQUEST upon receiving a trigger | Type AVP set to UPDATE_REQUEST upon receiving a trigger signal. In | |||
signal. In case the session is updated successfully, the DNCA Agent | case the session is updated successfully, DNCA Agent notifies DNCA | |||
notifies the DNCA Manager about successful session update using a | Manager about successful session update using a NAT-Control Answer | |||
NAT-Control Answer (NCA) message with Result-Code set to | (NCA) message with Result-Code set to DIAMETER_SUCCESS. Figure 6 | |||
DIAMETER_SUCCESS. Figure 6 shows the protocol interaction between | shows the protocol interaction between DNCA Manager and DNCA Agent. | |||
the DNCA Manager and the DNCA Agent. | ||||
In certain cases, the DNCA Agent may not be able to perfborm the | In certain cases, DNCA Agent may not be able to perform the tasks | |||
tasks requested within the NCR. These include the following: | requested within the NCR. These include the following: | |||
o If DNCA Agent receives a NCR update or query request for a non- | o If DNCA Agent receives a NCR update or query request for a non- | |||
existent session, it sets Result-Code in the 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 device, | o If the NCR contains a binding rule not defined on the NAT device, | |||
the DNCA Agent returns NCA with Result-Code AVP set to | 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 DNCA Agent cannot establish the requested binding because the | |||
the maximum number of allowed bindings has been reached for the | maximum number of allowed bindings has been reached for the | |||
Endpoint Classifier, it returns NCA with Result-Code AVP set to | Endpoint Classifier, it returns NCA with Result-Code AVP set to | |||
MAXIMUM_BINDINGS_REACHED_FOR_ENDPOINT. | MAXIMUM_BINDINGS_REACHED_FOR_ENDPOINT. | |||
o If the DNCA Agent cannot establish some or all of the bindings | o If DNCA Agent cannot establish some or all of the bindings | |||
requested in a NCR, but has not yet reached the maximum number of | requested in a NCR, but has not yet reached the maximum number of | |||
allowed bindings for the subscriber, it returns a NCA with Result- | allowed bindings for the subscriber, it returns a NCA with Result- | |||
Code set to BINDING_FAILURE. The DNCA Agent (i.e., NAT device) | Code set to BINDING_FAILURE. DNCA Agent (i.e., NAT device) treats | |||
treats a NCR as an atomic operation. Hence none of the requested | a NCR as an atomic operation. Hence none of the requested | |||
bindings will be established by NAT device. Either all requested | bindings will be established by NAT device. Either all requested | |||
actions within a NCR are either successful or failed completely. | actions within a NCR are either successful or failed completely. | |||
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 returns NCA with Result-Code set to RESOURCE_FAILURE. | request, it returns NCA with Result-Code set to 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 device on how the NAT device copes with a case where the new | NAT device on how the NAT device copes with a case where the new | |||
value is lower than the actual number of allocated bindings. | value is lower than the actual number of allocated bindings. | |||
Typically the NAT device refrains from enforcing the new limit | Typically the NAT device refrains from enforcing the new limit | |||
immediately; that is, actively remove bindings, but rather | immediately; that is, actively remove bindings, but rather | |||
disallow the establishment of new bindings until the current | disallow the establishment of new bindings until the current | |||
number of bindings is lower than the newly established maximum | number of bindings is lower than the newly established maximum | |||
number of allowed bindings. | 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 DNCA Agent, | |||
agent, the binding rule overrides any previously defined rules for | the binding rule overrides any previously defined rules for the | |||
the session. | session. | |||
o If Max-NAT-Binding and NAT-Control-Definition AVPs are included in | o If Max-NAT-Binding and NAT-Control-Definition AVPs are included in | |||
the NCR along with a reference to a binding rule (a predefined | the NCR along with a reference to a binding rule (a predefined | |||
template on NAT device) and the values in Max-NAT-Binding and NAT- | template on NAT device) and the values in Max-NAT-Binding and NAT- | |||
Control-Definition AVPs contradict those specified in the pre- | Control-Definition AVPs contradict those specified in the pre- | |||
defined binding rule, Max-NAT-Binding and NAT-Control-Definition | defined binding rule, Max-NAT-Binding and NAT-Control-Definition | |||
AVPs override the values specified in the binding rule. | AVPs override the values specified in the binding rule. | |||
Note: Already established bindings for the session will not be | ||||
affected. | ||||
DNCA Manager DNCA Agent | DNCA Manager DNCA Agent | |||
| | | | | | |||
| | | | | | |||
| | | | | | |||
Change of session | | Change of session | | |||
attributes | | attributes | | |||
| | | | | | |||
| NCR | | | NCR | | |||
|------------------------------------------>| | |------------------------------------------>| | |||
| (UPDATE_REQUEST session id, | | | (UPDATE_REQUEST session id, | | |||
skipping to change at page 15, line 35 | skipping to change at page 15, line 35 | |||
| 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 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 device or discover the session identifier for a particular | NAT device or discover the session identifier for a particular | |||
external IP address/port pair. | external IP address/port pair. | |||
The DNCA Manager initiates a session query by sending a NCR message | DNCA Manager initiates a session query by sending a NCR message to | |||
to the DNCA Agent with NC-Request-Type AVP set to QUERY_REQUEST. | DNCA Agent with NC-Request-Type AVP set to QUERY_REQUEST. Figure 7 | |||
Figure 7 shows the protocol interaction between the DNCA Manager and | shows the protocol interaction between DNCA Manager and 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 | DNCA Manager retrieve the current set of bindings for a specific | |||
session. The second type of query request is used 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 the sessions, which | criteria. This enables 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 on receiving NCR, looks up | particular session: DNCA Agent on receiving NCR, looks up session | |||
session information for the session ID contained in the NCR, and | information for the session ID contained in the NCR, and reports | |||
reports all currently active NAT bindings for the session using | all currently active NAT bindings for the session using NCA | |||
NCA message with Result-Code set to DIAMETER_SUCCESS. In this | message with Result-Code set to DIAMETER_SUCCESS. In this case | |||
case the NCR MUST NOT contain a NAT-Control-Definition AVP. Each | the NCR MUST NOT contain a NAT-Control-Definition AVP. Each NAT | |||
NAT binding is reported in a NAT-Control-Definition AVP. In case | binding is reported in a NAT-Control-Definition AVP. In case the | |||
the session ID is unknown, the DNCA Agent returns NCA with | session ID is unknown, DNCA Agent returns NCA with Result-Code | |||
Result-Code set to DIAMETER_UNKNOWN_SESSION_ID. | set to DIAMETER_UNKNOWN_SESSION_ID. | |||
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 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 is not included in the NCR or the NCA for | NCR. The session ID is not included in the NCR or the NCA for | |||
this type of a query. The DNCA Agent reports the NAT bindings | this type of a query. DNCA Agent reports the NAT bindings and | |||
and associated session IDs corresponding to the external IP | associated session IDs corresponding to the external IP address/ | |||
address/port pairs in a NCA message with Result-Code set to | port pairs in a NCA message with Result-Code set to | |||
DIAMETER_SUCCESS with the same session ID, which is used in NCR. | DIAMETER_SUCCESS with the same session ID, which is used in NCR. | |||
In case an external IP address/port pair has no associated | In case an external IP address/port pair has no associated | |||
existing NAT binding, the NAT-Control-Definition AVP contained in | existing NAT binding, the NAT-Control-Definition AVP contained in | |||
the reply just contains the NAT-External-Address AVP. | the reply just contains the NAT-External-Address AVP. | |||
DNCA Manager DNCA Agent | DNCA Manager DNCA Agent | |||
| | | | | | |||
| | | | | | |||
| | | | | | |||
DNCA Session Established | | DNCA Session Established | | |||
skipping to change at page 17, line 7 | 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 Session Terminate Request (STR) message | DNCA Manager generates a Session Terminate Request (STR) message to | |||
to the DNCA Agent upon receiving a trigger signal. The source of the | DNCA Agent upon receiving a trigger signal. The source of the | |||
trigger signal is outside the scope of this document. The DNCA Agent | trigger signal is outside the scope of this document. DNCA Agent | |||
sends accounting stop record reporting all the bindings and notifies | sends accounting stop record reporting all the bindings and notifies | |||
the DNCA Manager about successful session termination using a Session | DNCA Manager about successful session termination using a Session | |||
Terminate Answer (STA) message with Result-Code set to | Terminate Answer (STA) message with Result-Code set to | |||
DIAMETER_SUCCESS. Figure 8 shows the protocol interaction between | DIAMETER_SUCCESS. Figure 8 shows the protocol interaction between | |||
the DNCA Manager and the DNCA Agent. | DNCA Manager and DNCA Agent. | |||
If a DNCA Agent receives STR from a DNCA Manager and fails to find a | If a DNCA Agent receives STR from a DNCA Manager and fails to find a | |||
matching session, the DNCA Agent returns STA with Result-Code set to | matching session, DNCA Agent returns STA with Result-Code set to | |||
DIAMETER_UNKNOWN_SESSION_ID. | DIAMETER_UNKNOWN_SESSION_ID. | |||
DNCA Manager DNCA Agent | DNCA Manager DNCA Agent | |||
| | | | | | |||
| | | | | | |||
Trigger | | Trigger | | |||
| | | | | | |||
| STR | | | STR | | |||
|------------------------------------------->| | |------------------------------------------->| | |||
| (session id) | | | (session id) | | |||
skipping to change at page 18, line 8 | skipping to change at page 18, line 8 | |||
| STA | | | STA | | |||
|<-------------------------------------------| | |<-------------------------------------------| | |||
| (Result-Code) | | | (Result-Code) | | |||
| | | | | | |||
Figure 8: Terminate NAT Control session | Figure 8: Terminate NAT Control session | |||
4.6. DNCA Manager and 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 are out of sync. This happens when the DNCA Manager or DNCA | Agent are out of sync. This happens when DNCA Manager or DNCA Agent | |||
Agent restart, (temporary) loss of network connectivity etc. The | restart, (temporary) loss of network connectivity etc. DNCA Manager | |||
DNCA relies on DNCA Manager and DNCA Agent to have builtin redundancy | and DNCA Agent MUST have builtin redundancy support to recover state | |||
support to recover state in case of failure. | in 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 DNCA Manager loses session state (e.g. due to a restart). In this | |||
this case, | case, | |||
* The DNCA Agent may receive a NCR with NC-Request-Type AVP set | * DNCA Agent may receive a NCR with NC-Request-Type AVP set to | |||
to INITIAL_REQUEST that matches an existing session of DNCA | INITIAL_REQUEST that matches an existing session of DNCA Agent. | |||
agent. The DNCA Agent returns a Result-Code that contains | DNCA Agent returns a Result-Code that contains Duplicate- | |||
Duplicate-Session-Id AVP to report the Session-ID of existing | Session-Id AVP to report the Session-ID of existing session. | |||
session. The DNCA Manager may send an explicit Sesstion | DNCA Manager may send an explicit Sesstion Terminate Request | |||
Terminate Request (STR) for the older session, which was lost. | (STR) for the older session, which was lost. | |||
* The DNCA Manager may receive accounting records for a session | * DNCA Manager may receive accounting records for a session that | |||
that does not exist. The DNCA Manager sends an accounting | does not exist. DNCA Manager sends an accounting answer with | |||
answer with Result-Code set to DIAMETER_UNKNOWN_SESSION_ID. On | Result-Code set to DIAMETER_UNKNOWN_SESSION_ID. On receiving | |||
receiving this, the DNCA Agent clears the session and removes | this, DNCA Agent clears the session and removes the associated | |||
the associated session state. | session state. | |||
o The DNCA Agent loses session state. In such a case, the DNCA | o DNCA Agent loses session state. In such a case, DNCA Agent may | |||
Agent may receive a NCR with NC-Request-Type AVP set to | receive a NCR with NC-Request-Type AVP set to UPDATE_REQUEST for a | |||
UPDATE_REQUEST for a non-existent session. The DNCA Agent returns | non-existent session. DNCA Agent returns NCA with Result-Code set | |||
NCA with Result-Code set to DIAMETER_UNKNOWN_SESSION_ID. | to DIAMETER_UNKNOWN_SESSION_ID. | |||
o The DNCA Manager is unreachable, for example detected by Diameter | o DNCA Manager is unreachable, for example detected by Diameter | |||
watchdog, or down and accounting request from the DNCA Agent fails | watchdog, or down and accounting request from DNCA Agent fails to | |||
to get a response. The mechanism to ensure that a DNCA Manager no | get a response. The mechanism to ensure that a DNCA Manager no | |||
longer has associated state for a session being cleared by a DNCA | longer has associated state for a session being cleared by a 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 DNCA Agent is unreachable or down and NCR requests fail to get a | |||
a response. Handling of this case depends on the actual service | response. Handling of this case depends on the actual service | |||
offering of the service provider. The service provider can choose | offering of the service provider. The service provider can 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] applies 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 recommendations in | For secure transport of Diameter messages recommendations in | |||
[RFC3588] apply. | [RFC3588] apply. | |||
The DNCA Agent MAY verify the identity of the DNCA Manager during the | DNCA Agent MAY verify the identity of 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 | DNCA Agent MAY verify if DNCA Manager that issues a NCR command is | |||
command is allowed and it is based on: | allowed and it is based on: | |||
o The identity of the DNCA Manager | o The identity of 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 9 below. | command codes and AVPs) is defined in Section 9 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. DNCA Agent and DNCA Manager maintain state associated | |||
associated with the Session-ID. This globally unique Session-ID is | with the Session-ID. This globally unique Session-ID is used for | |||
used for updating, accounting, and terminating the session. The DNCA | updating, accounting, and terminating the session. DNCA session MUST | |||
session MUST NOT have more than one outstanding request at any given | NOT have more than one outstanding request at any given instant. | |||
instant. The DNCA Agent sends an Abort-Session-Request as defined in | DNCA Agent sends an Abort-Session-Request as defined in [RFC3588] if | |||
[RFC3588] if it is unable to maintain sessions due to resource | 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 DNCA Manager knows the DiameterIdentity of DNCA | |||
DNCA Agent for a given endpoint. Both the Destination-Realm and | 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 DNCA Manager to | |||
Manager to the DNCA Agent. | DNCA Agent. | |||
5.5. Advertising Application Support | 5.5. Advertising Application Support | |||
Diameter applications conforming to this specification MUST advertise | Diameter nodes conforming to this specification MUST advertise | |||
support by including the value of TBD in: | support for DNCA by including the value of TBD in the Auth- | |||
Application-Id of the Capabilities-Exchange-Request and Capabilities- | ||||
o Auth-Application-Id and Acct-Application-Id of Capabilities- | Exchange-Answer command[RFC3588]. | |||
Exchange-Request (CER) | ||||
o Auth-Application-Id of NC-request (NCR), NC-Answer (NCA), Abort- | ||||
Session-Request(ASR), Abort-Session-Answer (ASA) messages | ||||
o Acct-Application-Id in Accounting-Request (ACR) and Accounting- | ||||
Answer (ACA) messages. | ||||
6. DNCA Commands | 6. DNCA Commands | |||
The following commands are used to establish, maintain and query NAT | The following commands are used to establish, maintain and query 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 DNCA Manager to 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 ] | |||
*1 [ NAT-Control-Remove ] | *1 [ NAT-Control-Remove ] | |||
skipping to change at page 21, line 34 | skipping to change at page 21, line 9 | |||
[ 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 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 ] | |||
[ Current-NAT-Bindings ] | [ Current-NAT-Bindings ] | |||
[ Origin-State-Id ] | [ Origin-State-Id ] | |||
[ Error-Message ] | [ Error-Message ] | |||
skipping to change at page 22, line 32 | skipping to change at page 21, line 39 | |||
* [ Proxy-Info ] | * [ Proxy-Info ] | |||
* [ Route-Record ] | * [ Route-Record ] | |||
* [ Failed-AVP ] | * [ Failed-AVP ] | |||
* [ AVP ] | * [ AVP ] | |||
* [ AVP ] | * [ AVP ] | |||
7. NAT Control Application Session State Machine | 7. NAT Control Application Session State Machine | |||
This section contains a set of finite state machines, representing | This section contains a set of finite state machines, representing | |||
the life cycle of DNCA session, which MUST be observed by all | the life cycle of DNCA session, which MUST be observed by all | |||
implementations of the DNCA Diameter application. DNCA Agent and | implementations of DNCA Diameter application. DNCA Agent and Manager | |||
Manager are stateful and the state machine maintained is similar to | are stateful and the state machine maintained is similar to the | |||
the stateful Client and Server authorization state machine described | stateful Client and Server authorization state machine described in | |||
in RFC3588. When a session is moved to the Idle state, any resources | [RFC3588]. When a session is moved to the Idle state, any resources | |||
that were allocated for the particular session must be released. Any | that were allocated for the particular session must be released. Any | |||
event not listed in the state machines MUST be considered as an error | event not listed in the state machines MUST be considered as an error | |||
condition, and an answer, if applicable, MUST be returned to the | condition, and an answer, if applicable, MUST be returned to the | |||
originator of the message. | originator of the message. | |||
In the state table, the event 'Failure to send NCR' means that the | In the state table, the event 'Failure to send NCR' means that DNCA | |||
DNCA Manager is unable to send command NCR to the desired | Manager is unable to send command NCR to the desired destination. | |||
destination. This could be due to the peer being down, or due to the | This could be due to the peer being down, or due to the peer sending | |||
peer sending back a transient failure or temporary protocol error | back a transient failure or temporary protocol error notification | |||
notification DIAMETER_TOO_BUSY or DIAMETER_LOOP_DETECTED in the | DIAMETER_TOO_BUSY or DIAMETER_LOOP_DETECTED in the Result-Code AVP of | |||
Result-Code AVP of NCA. | NCA. | |||
In the state table "FAILED NCA" means that the DNCA Agent was not | In the state table "FAILED NCA" means that DNCA Agent was not able to | |||
able to honor corresponding NCR. This can happen due to any of the | honor corresponding NCR. This can happen due to any of the transient | |||
transient and permanent error at DNCA Agent indicated by the | and permanent error at DNCA Agent indicated by the following error | |||
following error Result-Code values - RESOURCE_FAILURE, | Result-Code values - RESOURCE_FAILURE, UNKNOWN_BINDING_RULE_NAME, | |||
UNKNOWN_BINDING_RULE_NAME, BINDING_FAILURE, | BINDING_FAILURE, MAXIMUM_BINDINGS_REACHED_FOR_ENDPOINT, | |||
MAXIMUM_BINDINGS_REACHED_FOR_ENDPOINT, SESSION_EXISTS, | SESSION_EXISTS, INSUFFICIENT_CLASSIFIERS | |||
INSUFFICIENT_CLASSIFIERS | ||||
The following state machine is observed by a DNCA Manager: | The following state machine is observed by a DNCA Manager: | |||
MANAGER | MANAGER | |||
State Event Action New State | State Event Action New State | |||
------------------------------------------------------------- | ------------------------------------------------------------- | |||
Idle New Host detected that Send Pending | Idle New Host detected that Send Pending | |||
requires NAT Control NCR | requires NAT Control NCR | |||
Initial | Initial | |||
Request | Request | |||
skipping to change at page 27, line 11 | skipping to change at page 26, line 11 | |||
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 | DNCA Agent indicates that the binding could not be installed or | |||
installed or a new session could not be created due to resource | a new session could not be created due to resource shortage. | |||
shortage. | ||||
8.2.3. Permanent Failures | 8.2.3. Permanent Failures | |||
The Result-Code AVP values, which 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 | DNCA Agent indicates that the binding could not be installed or | |||
installed or a new session could not be created due to resource | 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 | 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 | 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 | DNCA Agent denies request to initialize a new session, if it | |||
it already has a DNCA session that uses the same set of | 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 | |||
initialization request. | initialization request. | |||
INSUFFICIENT_CLASSIFIERS (TBD) | INSUFFICIENT_CLASSIFIERS (TBD) | |||
The DNCA Agent defines request to initialize a new session, if | DNCA Agent defines request to initialize a new session, if the | |||
the classifiers in the request match more than one of the | classifiers in the request match more than one of the existing | |||
existing sessions on DNCA Agent. | sessions on DNCA Agent. | |||
8.3. Reused NASREQ Diameter Application AVPs | 8.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 30, line 51 | skipping to change at page 29, line 51 | |||
8.7.1. NC-Request-Type AVP | 8.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 DNCA Agent on | |||
on a successful access session setup. | 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. | |||
QUERY_REQUEST (4) | QUERY_REQUEST (4) | |||
Query Request is used to query the DNCA Agent about the | Query Request is used to query DNCA Agent about the currently | |||
currently installed bindings for an endpoint classifier. | installed bindings for an endpoint classifier. | |||
8.7.2. NAT-Control-Install AVP | 8.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. | |||
skipping to change at page 31, line 51 | skipping to change at page 30, line 51 | |||
* [ NAT-Control-Definition ] | * [ NAT-Control-Definition ] | |||
[ NAT-Control-Binding-Rule ] | [ NAT-Control-Binding-Rule ] | |||
* [ AVP ] | * [ AVP ] | |||
8.7.4. NAT-Control-Definition AVP | 8.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 DNCA Agent and 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 the binding. | The Protocol AVP describes the transport protocol for the binding. | |||
The NAT-Control-Definition AVP can contain either zero or one | The NAT-Control-Definition AVP can contain either zero or one | |||
Protocol AVP. If the Protocol AVP is omitted and if both internal | Protocol AVP. If the Protocol AVP is omitted and if both internal | |||
and external address are specified then the binding reserves the | and external address are specified then the binding reserves the | |||
addresses for all transport protocols. | addresses for all transport protocols. | |||
skipping to change at page 33, line 36 | skipping to change at page 32, line 36 | |||
Control-Install AVPs of multiple subscribers. | Control-Install AVPs of multiple subscribers. | |||
8.7.9. Duplicate-Session-Id AVP | 8.7.9. Duplicate-Session-Id AVP | |||
The Duplicate-Session-Id AVP (AVP Code TBD) is of type UTF8String. | The Duplicate-Session-Id AVP (AVP Code TBD) is of type UTF8String. | |||
It is used to report error and contains the Session-Id of an existing | It is used to report error and contains the Session-Id of an existing | |||
session. | session. | |||
9. Accounting Commands | 9. Accounting Commands | |||
The DNCA reuses session based accounting as defined in Diameter Base | DNCA reuses session based accounting as defined in Diameter Base | |||
Protocol,[RFC3588] to report the bindings per endpoint. This | Protocol[RFC3588] to report the bindings per endpoint. This | |||
reporting is achieved by sending Diameter Accounting Requests (ACR) | reporting is achieved by sending Diameter Accounting Requests (ACR) | |||
[Start, Interim and Stop] from the DNCA Agent to DNCA Manager. | [Start, Interim and Stop] from DNCA Agent to DNCA Manager. | |||
The DNCA Agent sends an ACR Start on receiving an NCR with NC- | DNCA Agent sends an ACR Start on receiving an NCR with NC-Request- | |||
Request-Type AVP set to INITIAL_REQUEST for a session or on creation | Type AVP set to INITIAL_REQUEST for a session or on creation of the | |||
of the first binding for a session requested in an earlier NCR. The | first binding for a session requested in an earlier NCR. DNCA may | |||
DNCA may send ACR Interim updates, if required, either due to a | send ACR Interim updates, if required, either due to a change in | |||
change in bindings resulting from a NCR with NC-Request-Type AVP set | bindings resulting from a NCR with NC-Request-Type AVP set to | |||
to UPDATE_REQUEST, or periodically as specified in Acct-Interim- | UPDATE_REQUEST, or periodically as specified in Acct-Interim-Interval | |||
Interval by the DNCA Manager, or when it creates or tears down | by DNCA Manager, or when it creates or tears down bindings. An ACR | |||
bindings. An ACR Stop is sent by the DNCA Agent on receiving STR. | Stop is sent by DNCA Agent on receiving STR. | |||
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 | 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. | |||
9.1. NAT Control Accounting Messages | 9.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 DNCA Manager. The DNCA Application ID is | between DNCA Agent and DNCA Manager. DNCA Application ID is used in | |||
used in the accounting commands. ACR contains one or more optional | the accounting commands. ACR contains one or more optional NAT- | |||
NAT-Control-Record AVP to report the bindings. The DNCA Agent | Control-Record AVP to report the bindings. DNCA Agent indicates the | |||
indicates the number of allocated NAT bindings to the DNCA Manager | number of allocated NAT bindings to DNCA Manager using the Current- | |||
using the Current-NAT-Bindings AVP. This number needs to match the | NAT-Bindings AVP. This number needs to match the number of bindings | |||
number of bindings identified as active within the NAT-Control-Record | identified as active within the NAT-Control-Record AVP. | |||
AVP. | ||||
9.2. NAT Control Accounting AVPs | 9.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], DNCA Agent must | |||
must add the NAT-Control-Record AVP. | add the NAT-Control-Record AVP. | |||
9.2.1. NAT-Control-Record | 9.2.1. NAT-Control-Record | |||
The NAT-Control-Record AVP (AVP code TBD) is of type Grouped. It | The NAT-Control-Record AVP (AVP code TBD) is of type Grouped. It | |||
describes a binding and its status. If NAT-Control-Binding-Status is | describes a binding and its status. If NAT-Control-Binding-Status is | |||
set to Created, Event-Timestamp indicates the binding creation time. | set to Created, Event-Timestamp indicates the binding creation time. | |||
If NAT-Control-Binding-Status is set to Removed, Event-Timestamp | If NAT-Control-Binding-Status is set to Removed, Event-Timestamp | |||
indicates the binding removal time. If NAT-Control-Binding-Status is | indicates the binding removal time. If NAT-Control-Binding-Status is | |||
active, Event-Timestamp need not be present; if a value is present, | active, Event-Timestamp need not be present; if a value is present, | |||
it indicates that binding is active at the given time. | it indicates that binding is active at the given time. | |||
skipping to change at page 35, line 43 | skipping to change at page 34, line 40 | |||
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. | |||
10.1. DNCA AVP Table for NAT Control Initial and Update Requests | 10.1. DNCA AVP Table for NAT Control Initial and Update Requests | |||
The following table lists the DNCA specific AVPs that have to be | The following table lists DNCA specific AVPs that have to be present | |||
present in NCR and NCA with NC-Request-Type set to INITIAL_REQUEST or | in NCR and NCA with NC-Request-Type set to 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 | | |||
|Current-NAT-Bindings 0 0 | | |Current-NAT-Bindings 0 0 | | |||
|Duplicate-Session-Id 0 0-1 | | |Duplicate-Session-Id 0 0-1 | | |||
+-------------------------------------------------------+ | +-------------------------------------------------------+ | |||
10.2. DNCA AVP Table for Session Query request | 10.2. DNCA AVP Table for Session Query request | |||
The following table lists the DNCA specific AVPs that have to be | The following table lists DNCA specific AVPs that have to be present | |||
present in NCR and NCA with NC-Request-Type set to QUERY_REQUEST. | in NCR and NCA with NC-Request-Type set to 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+ | | |||
|Current-NAT-Bindings 0 1 | | |Current-NAT-Bindings 0 1 | | |||
|Duplicate-Session-Id 0 0 | | |Duplicate-Session-Id 0 0 | | |||
+-------------------------------------------------------+ | +-------------------------------------------------------+ | |||
10.3. DNCA AVP Table for Accounting Message | 10.3. DNCA AVP Table for Accounting Message | |||
The following table lists the DNCA specific AVPs, which may or may | The following table lists DNCA specific AVPs, which may or may not be | |||
not be present in ACR and ACA messages. | present in ACR and ACA messages. | |||
+-------------------+ | +-------------------+ | |||
| Command Code | | | Command Code | | |||
+-----------------------------------+-------------------+ | +-----------------------------------+-------------------+ | |||
| Attribute Name ACR ACA | | | Attribute Name ACR ACA | | |||
+-------------------------------------------------------+ | +-------------------------------------------------------+ | |||
|NAT-Control-Record 0+ 0 | | |NAT-Control-Record 0+ 0 | | |||
|Current-NAT-Bindings 1 0 | | |Current-NAT-Bindings 1 0 | | |||
+-------------------------------------------------------+ | +-------------------------------------------------------+ | |||
11. IANA Considerations | 11. IANA Considerations | |||
skipping to change at page 39, line 12 | skipping to change at page 38, line 12 | |||
Table 4: Diameter Application ID values | Table 4: Diameter Application ID values | |||
12. Security Considerations | 12. Security Considerations | |||
Similar to the impact of Diameter QoS application (see [RFC5866]) on | Similar to the impact of Diameter QoS application (see [RFC5866]) on | |||
authorization of QoS reservations, this document describes procedures | authorization of QoS reservations, this document describes procedures | |||
for authorizing NAT related attributes and parameters by an entity, | for authorizing NAT related attributes and parameters by an entity, | |||
which is non-local to the device performing NAT. The security | which is non-local to the device performing NAT. The security | |||
considerations for the Diameter QoS application (see [RFC5866] | considerations for the Diameter QoS application (see [RFC5866] | |||
section 11) apply in a similar way to the DNCA. Securing the | section 11) apply in a similar way to DNCA. To secure the | |||
information exchange between the authorizing entity (the DNCA | information exchange between the authorizing entity (DNCA Manager) | |||
Manager) and the NAT device requires bilateral authentication of the | and the NAT device (DNCA Agent) requires bilateral authentication of | |||
involved parties, authorization of the involved parties to perform | the involved parties, authorization of the involved parties to | |||
the required procedures and functions, and procedures to ensure | perform the required procedures and functions, and procedures to | |||
integrity and confidentiality of the information exchange. The DNCA | ensure integrity and confidentiality of the information exchange MAY | |||
makes use of the capabilities offered by Diameter and the underlying | be performed. DNCA makes use of the capabilities offered by Diameter | |||
transport protocols to deliver these requirements (see Section 5.1 ). | and the underlying transport 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 DNCA Agent and DNCA Manager are in the same domain | |||
domain and have a mutual trust set up. Authorization between the | and have a mutual trust set up. Authorization between DNCA Agent and | |||
DNCA Agent and DNCA Manager is beyond the scope of this document. | DNCA Manager is beyond the scope of this document. | |||
13. Acknowledgements | 13. Acknowledgements | |||
The authors would like to thank Jouni Korhonen, Avi Lior, Chris Metz, | The authors would like to thank Jouni Korhonen, Avi Lior, Chris Metz, | |||
Hannes Tschofenig, Greg Weber, and Glen Zorn for their input on this | Pallavi Mishra, Lionel Morand, Hannes Tschofenig, Shashank Vikram, | |||
document. | Greg Weber, and Glen Zorn for their input on this document. | |||
14. Change History (to be removed prior to publication as an RFC) | 14. 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 40, line 34 | skipping to change at page 39, line 37 | |||
multiple subscribers | multiple subscribers | |||
Changes from -04 to -05 | Changes from -04 to -05 | |||
a. Removed references to Large Scale NAT as per review comments | a. Removed references to Large Scale NAT as per review comments | |||
Changes from -05 to -06 | Changes from -05 to -06 | |||
a. Editorial changes | a. Editorial changes | |||
15. References | Changes from -06 to -07 | |||
a. Added a note in section 4.3 stating the state of pre-existing | ||||
bindings on update failure | ||||
b. Security considerations are made consistent between sections 5.1 | ||||
and 12 | ||||
c. Editorial changes | ||||
15. References | ||||
15.1. Normative References | 15.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. | |||
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
Requirement Levels", BCP 14, RFC 2119, March 1997. | Requirement Levels", BCP 14, RFC 2119, March 1997. | |||
[RFC3588] Calhoun, P., Loughney, J., Guttman, E., Zorn, G., and J. | [RFC3588] Calhoun, P., Loughney, J., Guttman, E., Zorn, G., and J. | |||
Arkko, "Diameter Base Protocol", RFC 3588, September 2003. | Arkko, "Diameter Base Protocol", RFC 3588, September 2003. | |||
[RFC4005] Calhoun, P., Zorn, G., Spence, D., and D. Mitton, | ||||
"Diameter Network Access Server Application", RFC 4005, | ||||
August 2005. | ||||
[RFC4675] Congdon, P., Sanchez, M., and B. Aboba, "RADIUS Attributes | [RFC4675] Congdon, P., Sanchez, M., and B. Aboba, "RADIUS Attributes | |||
for Virtual LAN and Priority Support", RFC 4675, | for Virtual LAN and Priority Support", RFC 4675, | |||
September 2006. | September 2006. | |||
[RFC5777] Korhonen, J., Tschofenig, H., Arumaithurai, M., Jones, M., | [RFC5777] Korhonen, J., Tschofenig, H., Arumaithurai, M., Jones, M., | |||
and A. Lior, "Traffic Classification and Quality of | and A. Lior, "Traffic Classification and Quality of | |||
Service (QoS) Attributes for Diameter", RFC 5777, | Service (QoS) Attributes for Diameter", RFC 5777, | |||
February 2010. | February 2010. | |||
15.2. Informative References | 15.2. Informative References | |||
[RFC4005] Calhoun, P., Zorn, G., Spence, D., and D. Mitton, | ||||
"Diameter Network Access Server Application", RFC 4005, | ||||
August 2005. | ||||
[RFC5866] Sun, D., McCann, P., Tschofenig, H., Tsou, T., Doria, A., | [RFC5866] Sun, D., McCann, P., Tschofenig, H., Tsou, T., Doria, A., | |||
and G. Zorn, "Diameter Quality-of-Service Application", | and G. Zorn, "Diameter Quality-of-Service Application", | |||
RFC 5866, May 2010. | RFC 5866, May 2010. | |||
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 | |||
End of changes. 97 change blocks. | ||||
298 lines changed or deleted | 290 lines changed or added | |||
This html diff was produced by rfcdiff 1.40. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |