draft-ietf-dime-nat-control-01.txt   draft-ietf-dime-nat-control-02.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: April 26, 2010 V. Singh Expires: September 8, 2010 V. Singh
Mavenir Systems Mavenir Systems
V. Fajardo V. Fajardo
Telcordia Technologies Telcordia Technologies
October 23, 2009 March 7, 2010
Diameter NAT Control Application Diameter Network Address and Port Translation Control Application
draft-ietf-dime-nat-control-01 draft-ietf-dime-nat-control-02
Abstract
This document describes the framework, messages, and procedures for
the Diameter Network Address and Port Translation Control Application
(DNCA), allowing for per-endpoint control of large scale NAT/NAPT
devices, which are put in place to cope with IPv4-address space
completion. The DNCA allows external devices to configure and manage
a NAT device - expanding the existing Diameter-based AAA and policy
control capabilities with a NAT/NAPT control component. These
external devices can be network elements in the data plane such as a
Network Access Server (NAS), or can be more centralized control plane
devices such as AAA-servers. DNCA establishes a context to commonly
identify and manage endpoints on a gateway or server, and a large
scale NAPT/NAT device. This includes, for example, the control of
the total number of NAT-bindings allowed or the allocation of a
specific NAT-binding for a particular endpoint. In addition, it
allows large scale NAT devices to provide information relevant to
accounting purposes.
Status of this Memo Status of this Memo
This Internet-Draft is submitted to IETF in full conformance with the This Internet-Draft is submitted to IETF in full conformance with the
provisions of BCP 78 and BCP 79. provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF), its areas, and its working groups. Note that Task Force (IETF), its areas, and its working groups. Note that
other groups may also distribute working documents as Internet- other groups may also distribute working documents as Internet-
Drafts. Drafts.
skipping to change at page 1, line 36 skipping to change at page 2, line 9
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."
The list of current Internet-Drafts can be accessed at The list of current Internet-Drafts can be accessed at
http://www.ietf.org/ietf/1id-abstracts.txt. http://www.ietf.org/ietf/1id-abstracts.txt.
The list of Internet-Draft Shadow Directories can be accessed at The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html. http://www.ietf.org/shadow.html.
This Internet-Draft will expire on April 26, 2010. This Internet-Draft will expire on September 8, 2010.
Copyright Notice Copyright Notice
Copyright (c) 2009 IETF Trust and the persons identified as the Copyright (c) 2010 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents in effect on the date of Provisions Relating to IETF Documents
publication of this document (http://trustee.ietf.org/license-info). (http://trustee.ietf.org/license-info) in effect on the date of
Please review these documents carefully, as they describe your rights publication of this document. Please review these documents
and restrictions with respect to this document. carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must
Abstract include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as
This document describes the framework, messages, and procedures for described in the BSD License.
the Diameter NAT Control Application (DNCA), allowing for per-
endpoint control of large scale NAT devices, which are put in place
to cope with IPv4-address space completion. The Diameter NAT Control
Application allows external devices to configure and manage a Large
Scale NAT (LSN) device - expanding the existing Diameter-based AAA
and policy control capabilities with a NAT control component. These
external devices can be network elements in the data plane such as a
Network Access Server (NAS), or can be more centralized control plane
devices such as AAA-servers. DNCA establishes a context to commonly
identify and manage endpoints on a gateway or server, and a large
scale NAT device. This includes, for example, the control of the
total number of NAT-bindings allowed or the allocation of a specific
NAT-binding for a particular endpoint. In addition, it allows large
scale NAT devices to provide information relevant to accounting
purposes.
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 5 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 5
2. Conventions . . . . . . . . . . . . . . . . . . . . . . . . . 6 2. Conventions . . . . . . . . . . . . . . . . . . . . . . . . . 6
3. Deployment framework and DNCA capabilities . . . . . . . . . . 6 3. Deployment Framework . . . . . . . . . . . . . . . . . . . . . 7
3.1. Diameter NAT Control Application capabilities . . . . . . 6 3.1. Deployment Scenario . . . . . . . . . . . . . . . . . . . 7
3.2. LSN Control Deployment Framework . . . . . . . . . . . . . 7 3.2. Diameter NAPT Control Application Overview . . . . . . . . 8
3.2.1. LSN Deployment scenario . . . . . . . . . . . . . . . 8 3.3. Deployment Scenarios For The Diameter NAPT Control
3.2.2. Diameter NAT Control Application overview . . . . . . 9 Application . . . . . . . . . . . . . . . . . . . . . . . 8
3.2.3. Deployment scenarios for the Diameter NAT Control
Application . . . . . . . . . . . . . . . . . . . . . 9
4. Diameter NAT Control Application Session Establishment and 4. Diameter NAT Control Application Session Establishment and
Management . . . . . . . . . . . . . . . . . . . . . . . . . . 12 Management . . . . . . . . . . . . . . . . . . . . . . . . . . 11
4.1. Parties involved . . . . . . . . . . . . . . . . . . . . . 12 4.1. Parties Involved . . . . . . . . . . . . . . . . . . . . . 11
4.2. Session Establishment . . . . . . . . . . . . . . . . . . 12 4.2. Session Establishment . . . . . . . . . . . . . . . . . . 11
4.3. Session Re-Authorization . . . . . . . . . . . . . . . . . 14 4.3. Session Re-Authorization . . . . . . . . . . . . . . . . . 13
4.4. Session and Binding Query . . . . . . . . . . . . . . . . 16 4.4. Session And Binding Query . . . . . . . . . . . . . . . . 15
4.5. Session Termination . . . . . . . . . . . . . . . . . . . 18 4.5. Session Termination . . . . . . . . . . . . . . . . . . . 17
4.6. DNCA Manager/Agent failures . . . . . . . . . . . . . . . 19 4.6. DNCA Manager/Agent Failures . . . . . . . . . . . . . . . 18
5. Use of the DIAMETER base protocol . . . . . . . . . . . . . . 20 5. Use Of The Diameter Base Protocol . . . . . . . . . . . . . . 19
5.1. Securing DIAMETER messages . . . . . . . . . . . . . . . . 20 5.1. Securing Diameter Messages . . . . . . . . . . . . . . . . 19
5.2. Accounting functionality . . . . . . . . . . . . . . . . . 21 5.2. Accounting Functionality . . . . . . . . . . . . . . . . . 20
5.3. Use of sessions . . . . . . . . . . . . . . . . . . . . . 21 5.3. Use Of Sessions . . . . . . . . . . . . . . . . . . . . . 20
5.4. Routing considerations . . . . . . . . . . . . . . . . . . 21 5.4. Routing Considerations . . . . . . . . . . . . . . . . . . 20
5.5. Advertising Application support . . . . . . . . . . . . . 21 5.5. Advertising Application Support . . . . . . . . . . . . . 20
6. Diameter NAT Control Application Commands . . . . . . . . . . 22 6. Diameter NAT Control Application Commands . . . . . . . . . . 20
6.1. NAT-Control Request (NCR) Command . . . . . . . . . . . . 22 6.1. NAT-Control Request (NCR) Command . . . . . . . . . . . . 21
6.2. NAT-Control Answer (NCA) Command . . . . . . . . . . . . . 22 6.2. NAT-Control Answer (NCA) Command . . . . . . . . . . . . . 21
7. Diameter NAT Control Application AVPs . . . . . . . . . . . . 23 7. Diameter NAT Control Application AVPs . . . . . . . . . . . . 22
7.1. Reused Base Protocol AVPs . . . . . . . . . . . . . . . . 23 7.1. Reused Base Protocol AVPs . . . . . . . . . . . . . . . . 22
7.2. Additional Result-Code AVP values . . . . . . . . . . . . 24 7.2. Additional Result-Code AVP Values . . . . . . . . . . . . 23
7.2.1. Success . . . . . . . . . . . . . . . . . . . . . . . 24 7.2.1. Success . . . . . . . . . . . . . . . . . . . . . . . 23
7.2.2. Transient failures . . . . . . . . . . . . . . . . . . 25 7.2.2. Transient Failures . . . . . . . . . . . . . . . . . . 24
7.2.3. Permanent failures . . . . . . . . . . . . . . . . . . 25 7.2.3. Permanent Failures . . . . . . . . . . . . . . . . . . 24
7.3. Reused NASREQ Diameter application AVPs . . . . . . . . . 26 7.3. Reused NASREQ Diameter Application AVPs . . . . . . . . . 25
7.4. Reused from RFC 4675 . . . . . . . . . . . . . . . . . . . 26 7.4. Reused from RFC 4675 . . . . . . . . . . . . . . . . . . . 25
7.5. Reused from Diameter QoS Application . . . . . . . . . . . 27 7.5. Reused from Diameter QoS Application . . . . . . . . . . . 26
7.6. Reused from ETSI ES 283 034, e4 Diameter application . . . 27 7.6. Reused From ETSI ES 283 034, e4 Diameter Application . . . 26
7.7. Diameter NAT Control Application Defined AVPs . . . . . . 28 7.7. Diameter NAT Control Application Defined AVPs . . . . . . 27
7.7.1. NC-Request-Type AVP . . . . . . . . . . . . . . . . . 28 7.7.1. NC-Request-Type AVP . . . . . . . . . . . . . . . . . 27
7.7.2. NAT-Control-Install AVP . . . . . . . . . . . . . . . 29 7.7.2. NAT-Control-Install AVP . . . . . . . . . . . . . . . 28
7.7.3. NAT-Control-Remove AVP . . . . . . . . . . . . . . . . 29 7.7.3. NAT-Control-Remove AVP . . . . . . . . . . . . . . . . 28
7.7.4. NAT-Control-Definition AVP . . . . . . . . . . . . . . 30 7.7.4. NAT-Control-Definition AVP . . . . . . . . . . . . . . 29
7.7.5. NAT-Internal-Address AVP . . . . . . . . . . . . . . . 30 7.7.5. NAT-Internal-Address AVP . . . . . . . . . . . . . . . 29
7.7.6. NAT-External-Address AVP . . . . . . . . . . . . . . . 31 7.7.6. NAT-External-Address AVP . . . . . . . . . . . . . . . 30
7.7.7. Max-NAT-Bindings . . . . . . . . . . . . . . . . . . . 31 7.7.7. Max-NAT-Bindings . . . . . . . . . . . . . . . . . . . 30
7.7.8. NAT-Control-Binding-Rule AVP . . . . . . . . . . . . . 31 7.7.8. NAT-Control-Binding-Rule AVP . . . . . . . . . . . . . 30
7.7.9. Duplicate-Session-Id AVP . . . . . . . . . . . . . . . 31 7.7.9. Duplicate-Session-Id AVP . . . . . . . . . . . . . . . 30
8. Accounting Commands . . . . . . . . . . . . . . . . . . . . . 30
8. Accounting Commands . . . . . . . . . . . . . . . . . . . . . 31 8.1. NAT Control Accounting Messages . . . . . . . . . . . . . 31
8.1. NAT Control Accounting Messages . . . . . . . . . . . . . 32 8.2. NAT Control Accounting AVPs . . . . . . . . . . . . . . . 31
8.2. NAT Control Accounting AVPs . . . . . . . . . . . . . . . 32 8.2.1. NAT-Control-Record . . . . . . . . . . . . . . . . . . 31
8.2.1. NAT-Control-Record . . . . . . . . . . . . . . . . . . 32 8.2.2. NAT-Control-Binding-Status . . . . . . . . . . . . . . 31
8.2.2. NAT-Control-Binding-Status . . . . . . . . . . . . . . 32 8.2.3. Current-NAT-Bindings . . . . . . . . . . . . . . . . . 32
8.2.3. Current-NAT-Bindings . . . . . . . . . . . . . . . . . 33 9. AVP Occurrence Table . . . . . . . . . . . . . . . . . . . . . 32
9. AVP Occurrence Table . . . . . . . . . . . . . . . . . . . . . 33
9.1. DNCA AVP Table for NAT control initial and update 9.1. DNCA AVP Table for NAT control initial and update
requests . . . . . . . . . . . . . . . . . . . . . . . . . 34 requests . . . . . . . . . . . . . . . . . . . . . . . . . 33
9.2. DNCA AVP Table for Session Query request . . . . . . . . . 34 9.2. DNCA AVP Table for Session Query request . . . . . . . . . 33
9.3. DNCA AVP Table for NAT Control Terminate requests . . . . 34 9.3. DNCA AVP Table for NAT Control Terminate requests . . . . 33
9.4. DNCA AVP Table for accounting message . . . . . . . . . . 35 9.4. DNCA AVP Table For Accounting Message . . . . . . . . . . 34
10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 35 10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 34
10.1. Command Codes . . . . . . . . . . . . . . . . . . . . . . 35 10.1. Command Codes . . . . . . . . . . . . . . . . . . . . . . 34
10.2. AVP Codes . . . . . . . . . . . . . . . . . . . . . . . . 36 10.2. AVP Codes . . . . . . . . . . . . . . . . . . . . . . . . 35
10.3. AVP Values . . . . . . . . . . . . . . . . . . . . . . . . 36 10.3. AVP Values . . . . . . . . . . . . . . . . . . . . . . . . 35
10.3.1. Result-Code AVP Values . . . . . . . . . . . . . . . . 36 10.3.1. Result-Code AVP Values . . . . . . . . . . . . . . . . 35
10.4. Application IDs . . . . . . . . . . . . . . . . . . . . . 37 10.4. Application IDs . . . . . . . . . . . . . . . . . . . . . 36
11. Security Considerations . . . . . . . . . . . . . . . . . . . 37 11. Security Considerations . . . . . . . . . . . . . . . . . . . 36
12. Change history (to be removed prior to publication as an 12. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 37
RFC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 13. Change History (to be removed prior to publication as an
13. References . . . . . . . . . . . . . . . . . . . . . . . . . . 38 RFC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
13.1. Normative References . . . . . . . . . . . . . . . . . . . 38 14. References . . . . . . . . . . . . . . . . . . . . . . . . . . 38
13.2. Informative References . . . . . . . . . . . . . . . . . . 39 14.1. Normative References . . . . . . . . . . . . . . . . . . . 38
14.2. Informative References . . . . . . . . . . . . . . . . . . 38
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 39 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 39
1. Introduction 1. Introduction
With the foreseeable depletion of available IPv4 addresses from the Internet service providers have started to deploy Network Address
IANA pool, service providers are starting to consider network designs Translators (NATs) and Network Address and Port Translators (NAPTs)
which no longer assign unique global IPv4 addresses to their at the edge of their networks to deal with the depletion of available
subscribers. One of the approaches considered, is the deployment of public IPv4 addresses. This document defines a Diameter application
a provider-operated large scale NAT device between the end-users and for providers deploying such NATs and NAPT devices. The use of a
the Internet. Nishitani et al. [I-D.nishitani-cgn] call this NAT Diameter application allows for simple integration into the existing
device a "Large Scale NAT (LSN)". AAA environment of a provider.
LSNs will be inserted into the existing subscriber access and The Diameter NAPT Control Application (DNCA) offers the following
aggregation networks which typically provide for per-endpoint service capabilities:
management and control as well as per-endpoint accounting. Per-
endpoint rules include those which relate to service offerings of the
SP (e.g. access bandwidth, time or volume based access restrictions)
as well as rules which follow legal regulations of the "National
Regulation Authorities (NRA)". The introduction of a LSN impacts the
per-endpoint service offerings as well as the regulatory requirements
and gives rise to new control requirements within the service
provider network: Service providers need to manage the behavior of
the LSN on a per-endpoint basis.
The per-endpoint management capabilities of a LSN comprise, for 1. Limit/Define the number of NAPT/NAT-bindings made available to an
example the control of the number of NAT-address-port pairs (often individual subscriber or end point.
called "NAT-bindings" or simply "bindings") allocated to a single
endpoint. Given that global IPv4 address-port pairs are becoming a
scarce resource, several service providers intend to restrict the
number of NAT-bindings on a per endpoint basis and thus increase
address utilization efficiency. The number of bindings an endpoint
can consume becomes another parameter within a tiered-service
offering. In addition, the service provider might offer static
bindings to endpoints or pre-allocate external IP-address/port-ranges
to certain endpoints. One of the NRA requirements is that a service
provider needs to provide the identity of a user (which e.g.
translates to the public IP address and ports leveraged by the user
at a given point in time) upon request.
Dynamic per-endpoint management at the LSN requires an associated 2. Support the allocation of specific NAPT/NAT-bindings. Two types
interface that has to be tightly integrated with the existing per- of specific bindings can be distinguished:
endpoint authentication, authorization, and accounting (AAA)
environment of the service provider.
This document describes the framework, messages and procedures for * Allocation of a pre-defined NAT-binding. Both the internal as
the Diameter carrier-grade NAT Control Application (DNCA). The DNCA well as the external IP-address/port pair are specified within
interacts with the LSN to coordinate per-endpoint configuration and the request. Some deployment cases, such as access to a web-
management of subscriber traffic traversing the LSN. Use of a server within a user's home network with IP-address and port,
Diameter application allows for simple integration into the existing benefit from statically configured bindings.
AAA environment of a service provider.
* Allocation of an external IP-address for a given internal IP-
address. The allocated external IP-address will be reported
back to the requestor. In some deployment scenarios, the
application requires immediate knowledge of the allocated
binding for a given internal IP-address but does not control
the allocation of the external IP-address (e.g. SIP-proxy
server deployments).
3. Define the external address-pool(s) to be used for allocating an
external IP-address. External address-pools can either be pre-
assigned at the NAPT/NAT, or specified within a request. If pre-
assigned address-pools are used, a request needs to include a
reference to identify the pool. Otherwise, the request will
contain a description of the IP- address pool(s) to be used (e.g.
list of IP-subnets).
4. Accounting/Reporting: Report established bindings for a
particular user. The collected information is used by accounting
systems, for statistical purposes, etc.
5. Query functionality to retrieve details about bindings on demand.
This feature complements the previously mentioned accounting
functionality mentioned above (see item 4). The query
functionality complements alternative information query
mechanisms such as SNMP-based mechanisms, if available.
6. Common identification of a subscriber or endpoint on multiple
network devices such as the NAPT/NAT device, the AAA server, or
the Network Access Server (NAS). Endpoint identification is
facilitated through a Global Endpoint ID. Endpoints are
identified through a single or a set of classifiers such as IP
address, VLAN identifier, or interface identifier which uniquely
identify the traffic associated with a particular global endpoint
This document is structured as follows: Section 2 lists terminology,
while Section 3 provides an introduction to the Diameter NAPT Control
Application and its overall deployment framework. Sections 4 to 8
cover the DNCA specifics, with Section 4 describing session
management, Section 5 the use of the Diameter base protocol, Section
6 new commands, Section 7 the respective AVPs used, and Section 8
accounting aspects. Section 9 presents an AVP occurance table. IANA
and security considerations are addressed in Sections 10 and 11.
2. Conventions 2. Conventions
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in [RFC2119]. document are to be interpreted as described in [RFC2119].
Abbreviations are used in this document: Abbreviations are used in this document:
AAA: Authentication, Authorization, Accounting AAA: Authentication, Authorization, Accounting
DNCA: Diameter NAT Control Application DNCA: Diameter NAT Control Application
LSN: Large Scale NAT device NAPT: Network Address and Port Translation
NAT: Network Address Translation
NAS: Network Access Server NAT: Network Address Translation (NAT and NAPT are used in this
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
NRA: National Regulatory Authority NAS: Network Access Server
3. Deployment framework and DNCA capabilities
3.1. Diameter NAT Control Application capabilities
The Diameter NAT control application offers the following
capabilities:
1. Limit the number of NAT-bindings per endpoint: Define/restrict
the maximum number of NAT-bindings on a per-endpoint basis. This
enables service providers to offer differentiated services based
on the number of bindings and hence optimize the consumption of
IP-address/port-ranges.
2. Request the allocation of specific NAT-bindings: Under normal
operation the LSN would allocate NAT-bindings based on rules and
algorithms local to the LSN. Fixed or pre-defined bindings would
be the exception rather than the rule but are essential for
certain deployment scenarios. Requests for NAT-binding
allocation could happen either at or after initial session
establishment. Two cases could be distinguished:
* Request the allocation of a pre-defined NAT-binding. Both the
internal as well as the external IP-address/port pair are
specified within the request. Some deployment cases, such as
access to a web-server within a user's home network with IP-
address and port, benefit from statically configured bindings.
* Request the allocation of an external IP-address for a given
internal IP-address and report the allocated external IP-
address back to the requestor. In some deployment scenarios,
the application requires immediate knowledge of the allocated
binding for a given internal IP-address but does not control
the allocation of the external IP-address (e.g. SIP-proxy
server deployments).
3. Define the external address-pool(s) to be used for allocating an
external IP-address. External address-pools can either be pre-
defined on the LSN, or specified within a request. If pre-
defined address-pools are used, a request would just include a
reference (e.g. name) to an already defined address pool on LSN.
Otherwise, the request will contain a description of the IP-
address pool(s) to be used (e.g. list of IP-subnets).
4. Accounting/Reporting: Report established bindings for a
particular user. Apart from statistical and charging purposes,
binding reporting is also required for legal reasons. Most
National Regulatory Authorities (NRA) require that service
providers provide the identity of a user upon request. The
service provider needs to be able to correlate a tuple (public
IP-address, port, time) to a particular user or endpoint.
5. Flexible Information Query: Report details and statistics of
bindings for a single endpoint or a set of endpoints through an
external interface which integrates with the overall per-endpoint
management suite. Hence this information query capability of the
DNCA potentially complements alternative information query
mechanisms such as SNMP-based mechanisms.
6. Global Endpoint ID: The global endpoint ID will allow for common 3. Deployment Framework
identification of an endpoint on a LSN as well as other endpoint-
or subscriber-aware devices such as a Network Access Server (NAS)
or an AAA system. Endpoints are identified through a single or a
set of classifiers such as IP address, VLAN identifier, or
interface identifier which uniquely identify the traffic
associated with a particular global endpoint.
3.2. LSN Control Deployment Framework 3.1. Deployment Scenario
3.2.1. LSN Deployment scenario
Figure 1 shows a typical network deployment for internet access. A Figure 1 shows a typical network deployment for internet access. A
user's IPv4-host gains access to the internet though a Network Access user's IPv4-host gains access to the internet though a Network Access
Server (NAS) which facilitates the authentication of the endpoint and Server (NAS) which facilitates the authentication of the endpoint and
configures the user's connection according to the authorization and configures the user's connection according to the authorization and
configuration data received from the AAA-server upon successful configuration data received from the AAA-server upon successful
authentication. Public IPv4 addresses are used throughout the authentication. Public IPv4 addresses are used throughout the
network. network.
+---------+
| |
| AAA |
| |
+---------+
|
|
|
|
+---------+ +---------+ +----------+
| IPv4 | | | | IPv4 |
| Host |----------| NAS |-------------| Internet |
| | | | | |
+---------+ +---------+ +----------+
<-------------------- Public IPv4 ---------------------->
Figure 1: Typical network deployment for internet access
Figure 2 depicts the deployment scenario when a service provider
introduces a LSN to increase the efficiency of the global IPv4
address pool utilization. The objective is to provide the customer
with connectivity to the public IPv4 Internet. The LSN performs
network address translation between private IPv4 addresses and public
IPv4 addresses. If the LSN would be put in place without any
endpoint awareness, the service offerings of the service provider
would be hampered. Provisioning static NAT-bindings for particular
endpoints, using different public IP-address pools for different set
of endpoints (e.g. residential or business customers), as well as
reporting on the allocated bindings on a per-endpoint basis would be
burdensome for a service provider if the LSN would not be aware of
endpoints and allow for per-endpoint control and management which
easily integrates with the already existing per-endpoint management
infrastructure of the service provider.
+---------+ +---------+
| | | |
| AAA | | AAA |
| | | |
+---------+ +---------+
| |
| |
| |
| |
+--------+ +---------+ +---------+ +----------+ +---------+ +---------+ +----------+
| IPv4 | | | | | | IPv4 | | IPv4 | | | | IPv4 |
| Host |----| NAS |----| LSN |----| Internet | | Host |----------| NAS |-------------| Internet |
| | | | | | | | | | | | | |
+--------+ +---------+ +---------+ +----------+ +---------+ +---------+ +----------+
<-------- Private IPv4 -----------><--- Public IPv4 ---> <-------------------- Public IPv4 ---------------------->
Figure 1: Typical network deployment for internet access
Figure 2 depicts the deployment scenario when a service provider
introduces a NAT device to increase the efficiency of the global IPv4
address pool utilization. The objective is to provide the customer
with connectivity to the public IPv4 Internet. The NAT device
performs network address (and optionally protocol) translation,
depending on whether the access network uses private IPv4 addresses
or public IPv6 addresses, to public IPv4 addresses. If the NAT
device would be put in place without any endpoint awareness, the
service offerings of the service provider would be hampered.
Provisioning static NAT-bindings for particular endpoints, using
different public IP-address pools for different set of endpoints
(e.g. residential or business customers), as well as reporting on the
allocated bindings on a per-endpoint basis would be burdensome for a
service provider if the NAT device would not be aware of endpoints
and allow for per-endpoint control and management which easily
integrates with the already existing per-endpoint management
infrastructure of the service provider.
+---------+
| |
| AAA |
| |
+---------+
|
|
|
|
+--------+ +---------+ +---------+ +----------+
| IPv4 | | | | | | IPv4 |
| Host |----| NAS |----| NAT |----| Internet |
| | | | | | | |
+--------+ +---------+ +---------+ +----------+
<-------- Private IPv4 -----------><--- Public IPv4 --->
<-------- Public IPv6 -----------><--- Public IPv4 --->
Figure 2: Access network deployment with LSN Figure 2: Access network deployment with LSN
3.2.2. Diameter NAT Control Application overview 3.2. Diameter NAPT Control Application Overview
The Diameter NAT Control Application runs between a Diameter NAT The Diameter NAT Control Application runs between a Diameter NAT
Control Application Agent on the LSN and the Diameter NAT Control Control Application Agent on the NAT and the Diameter NAT Control
Application Manager. DNCA allows for per-endpoint control and Application Manager. DNCA allows for per-endpoint control and
management of a LSN. Being based on Diameter, DNCA integrates well management of a NAT. Being based on Diameter, DNCA integrates well
with the suite of Diameter applications deployed for per-endpoint with the suite of Diameter applications deployed for per-endpoint
authentication, authorization, accounting, and policy control in authentication, authorization, accounting, and policy control in
service provider networks. service provider networks.
DNCA offers request and answer commands to control the allowed number DNCA offers request and answer commands to control the allowed number
of NAT-bindings per endpoint, to request the allocation of specific of NAT-bindings per endpoint, to request the allocation of specific
bindings for an endpoint, to define the address pool to be used for bindings for an endpoint, to define the address pool to be used for
an endpoint, to provide per endpoint reporting on the allocated NAT- an endpoint, to provide per endpoint reporting on the allocated NAT-
bindings, as well as to provide for unique identification of an bindings, as well as to provide for unique identification of an
endpoint on both LSN, AAA-server and NAS, thus simplifying the endpoint on both NAT, AAA-server and NAS, thus simplifying the
correlation of accounting data streams. correlation of accounting data streams.
DNCA allows for controlling the behavior of a LSN on a per-endpoint DNCA allows for controlling the behavior of a NAT device on a per-
basis during initial session establishment as well as at later stages endpoint basis during initial session establishment as well as at
by providing an update procedure for already established sessions. later stages by providing an update procedure for already established
Using DNCA, per-endpoint NAT-binding information can be retrieved sessions. Using DNCA, per-endpoint NAT-binding information can be
either using accounting mechanisms or through an explicit session retrieved either using accounting mechanisms or through an explicit
query to the LSN. session query to the NAT.
3.2.3. Deployment scenarios for the Diameter NAT Control Application 3.3. Deployment Scenarios For The Diameter NAPT Control Application
Deployment dependent, the role of the Diameter NAT Control Manager Deployment dependent, the role of the Diameter NAT Control Manager
can be fulfilled by either the NAS or by an external server such as can be fulfilled by either the NAS or by an external server such as
an AAA-server. The two deployment scenarios are outlined in Figure 3 an AAA-server. The two deployment scenarios are outlined in Figure 3
("integrated deployment") and Figure 4 ("autonomous deployment"). ("integrated deployment") and Figure 4 ("autonomous deployment").
Within the figures (M) denotes the network element which takes on the Within the figures (M) denotes the network element which takes on the
DNCA manager role. Similarly, (A) identifies the network element DNCA manager role. Similarly, (A) identifies the network element
which performs the DNCA agent role. which performs the DNCA agent role.
The integrated deployment approach hides the existence of the LSN The integrated deployment approach hides the existence of the NAT
from external servers such as the AAA-server as much as possible. It device from external servers such as the AAA-server as much as
is suited for environments where minimal changes to the existing AAA possible. It is suited for environments where minimal changes to the
deployment are desired. The NAS, taking the role of the DNCA existing AAA deployment are desired. The NAS, taking the role of the
manager, is in charge of initiating and managing the session to the DNCA manager, is in charge of initiating and managing the session to
LSN, exchanging LSN specific configuration information as well as the NAT device, exchanging NAT specific configuration information as
handling reporting and accounting information. The NAS receives well as handling reporting and accounting information. The NAS
reporting and accounting information from LSN. This way the NAS can receives reporting and accounting information from NAT device. This
provide for a single accounting record for the user, offloading way the NAS can provide for a single accounting record for the user,
external accounting systems from correlating accounting information offloading external accounting systems from correlating accounting
received from multiple sources. information received from multiple sources.
An example network attachment for an integrated LSN deployment could An example network attachment for an integrated NAT deployment could
be described as follows: An endpoint connects to the network, with be described as follows: An endpoint connects to the network, with
the NAS being the point of attachment. After successful the NAS being the point of attachment. After successful
authentication, NAS receives endpoint related authorization data from authentication, NAS receives endpoint related authorization data from
the AAA-server. A portion of the authorization data applies to per- the AAA-server. A portion of the authorization data applies to per-
endpoint configuration on the NAS itself, another portion describes endpoint configuration on the NAS itself, another portion describes
authorization and configuration information for NAT control aimed at authorization and configuration information for NAT control aimed at
the LSN. NAS will initiate a DNCA session to the LSN and send the the NAT. NAS will initiate a DNCA session to the NAT and send the
relevant authorization and configuration information for the relevant authorization and configuration information for the
particular endpoint to the LSN. This could comprise e.g. NAT- particular endpoint to the NAT device. This could comprise e.g.
bindings which have to be pre-established for the endpoint, or NAT-bindings which have to be pre-established for the endpoint, or
management related configuration, such as the maximum number of NAT- management related configuration, such as the maximum number of NAT-
bindings allowed for the endpoint or accounting requirements. The bindings allowed for the endpoint or accounting requirements. The
LSN will send its per-endpoint accounting information to the NAS NAT device will send its per-endpoint accounting information to the
which aggregates the accounting information received from the LSN NAS which aggregates the accounting information received form the NAT
with its local accounting information for the endpoint into a single with its local accounting information for the endpoint into a single
accounting stream towards the AAA-server. accounting stream towards the AAA-server.
+---------+ +---------+
| | | |
| AAA | | AAA |
| | | |
+---------+ +---------+
| |
| |
| |
+--------+ +---------+ +---------+ +----------+ +--------+ +---------+ +---------+ +----------+
| IPv4 | | (M) | | (A) | | IPv4 | | IPv4 | | (M) | | (A) | | IPv4 |
| Host |----| NAS |----| LSN |----| Internet | | Host |----| NAS |----| NAT |----| Internet |
| | | | | | | | | | | | | | | |
+--------+ +---------+ +---------+ +----------+ +--------+ +---------+ +---------+ +----------+
<-------- Public IPv6 ----------><--- Public IPv4 ---->
<-------- Private IPv4 ----------><--- Public IPv4 ----> <-------- Private IPv4 ----------><--- Public IPv4 ---->
Figure 3: LSN Control deployment: Integrated deployment Figure 3: LSN Control deployment: Integrated deployment
The autonomous deployment approach decouples user management on NAS The autonomous deployment approach decouples user management on NAS
and LSN. The AAA system performing the role of the DNCA manager and NAT device. The AAA system performing the role of the DNCA
manages the connection to the LSN, controls the per-endpoint manager manages the connection to the NAT device, controls the per-
configuration, and also receives accounting and reporting information endpoint configuration, and also receives accounting and reporting
from LSN. Different from the integrated deployment scenario, the information from the NAT device. Different from the integrated
autonomous deployment scenario does not "hide" the existence of the deployment scenario, the autonomous deployment scenario does not
LSN from the AAA infrastructure. Here two accounting streams are "hide" the existence of the NAT device from the AAA infrastructure.
received by the AAA-server for one particular endpoint, one from the Here two accounting streams are received by the AAA-server for one
NAS, and one from the LSN. particular endpoint, one from the NAS, and one from the NAT device.
+---------+
+---------+ | (M) |
| (M) | | AAA |
| AAA | | |
| | +---------+
+---------+ |
| |
| |
| +--------+ +---------+ +---------+ +----------+
+--------+ +---------+ +---------+ +----------+ | IPv4 | | | | (A) | | IPv4 |
| IPv4 | | | | (A) | | IPv4 | | Host |----| NAS |----| NAT |----| Internet |
| Host |----| NAS |----| LSN |----| Internet | | | | | | | | |
| | | | | | | | +--------+ +---------+ +---------+ +----------+
+--------+ +---------+ +---------+ +----------+ <-------- Public IPv6 ----------><---- Public IPv4 --->
<-------- Private IPv4 ----------><---- Public IPv4 --->
<-------- Private IPv4 ----------><---- Public IPv4 --->
Figure 4: LSN Control deployment: Autonomous deployment Figure 4: LSN Control deployment: Autonomous deployment
4. Diameter NAT Control Application Session Establishment and 4. Diameter NAT Control Application Session Establishment and
Management Management
Note that this section forward references some of the commands and Note that this section forward references some of the commands and
AVPs defined for the DNCA. Please refer to Section 6 and Section 7 AVPs defined for the DNCA. Please refer to Section 6 and Section 7
for details. for details.
4.1. Parties involved 4.1. Parties Involved
Authorization and control models supported by this application Authorization and control models supported by this application
include the following parties: include the following parties:
o Diameter NAT Control Application (DNCA) agent: The DNCA agent is o Diameter NAT Control Application (DNCA) agent: The DNCA agent is
part of the Large scale NAT (LSN) device part of the Large scale NAT (NAT) device
o Diameter NAT Control Application (DNCA) manager o Diameter NAT Control Application (DNCA) manager
The current version of the draft assumes that the NAT control The NAT control requesting entity is always the DNCA manager.
requesting entity is always the DNCA manager. Sessions will always Sessions will always be initiated, updated, or terminated by the DNCA
be initiated, updated, or terminated by the DNCA manager. This mode manager. This mode of operation is sometimes also referred to as
of operation is sometimes also referred to as "push mode". Session "push mode".
initiation by the DNCA agent (sometimes referred to as "pull mode")
will be covered in a future version of this draft. DNCA manager can be NAS or AAA Server. DNCA manager will initiate a
session with DNCA agent when it learns about the subscriber. DNCA
manager may learn about a subscriber when it receives authentication,
authorization or accounting request for that subscriber or by some
other means such as on the box configuration to identify subscriber
w.r.t IP packets.
4.2. Session Establishment 4.2. Session Establishment
The DNCA manager establishes a session to the DNCA agent to control The DNCA manager establishes a session to the DNCA agent to control
the behavior of the NAT device. During session establishment, the the behavior of the NAT device. During session establishment, the
DNCA manager will pass along configuration information to the DNCA DNCA manager will pass along configuration information to the DNCA
agent. Session configuration information could for example comprise agent. Session configuration information could for example comprise
the maximum number of bindings allowed for the endpoint associated the maximum number of bindings allowed for the endpoint associated
with this session, a set of pre-defined NAT-bindings to be with this session, a set of pre-defined NAT-bindings to be
established for this endpoint, or a description of the address pool, established for this endpoint, or a description of the address pool,
skipping to change at page 12, line 52 skipping to change at page 12, line 8
message to the DNCA agent with NC-Request-Type AVP set to message to the DNCA agent with NC-Request-Type AVP set to
INITIAL_REQUEST. On receipt of the NCR the DNCA agent will setup a INITIAL_REQUEST. On receipt of the NCR the DNCA agent will setup a
new session for the endpoint associated with the endpoint new session for the endpoint associated with the endpoint
classifier(s) contained in the NCR. The DNCA agent notifies the DNCA classifier(s) contained in the NCR. The DNCA agent notifies the DNCA
manager about successful session setup using a NAT-Control Answer manager about successful session setup using a NAT-Control Answer
(NCA) message with Result-Code set to DIAMETER_SUCCESS. Figure 5 (NCA) message with Result-Code set to DIAMETER_SUCCESS. Figure 5
shows the protocol interaction between the DNCA manager and the DNCA shows the protocol interaction between the DNCA manager and the DNCA
agent. agent.
The initial NAT-Control-Request can contain configuration information The initial NAT-Control-Request can contain configuration information
for the session which specifies the behavior of the LSN for the for the session which specifies the behavior of the NAT for the
session. Configuration information which can be included comprises: session. Configuration information which can be included comprises:
o A list of NAT-bindings which should be pre-allocated for the o A list of NAT-bindings which should be pre-allocated for the
session (e.g. in case a subscriber requires a fixed external IP- session (e.g. in case a subscriber requires a fixed external IP-
address/port pair for one of his applications). address/port pair for one of his applications).
o The maximum number of NAT bindings allowed for an endpoint. o The maximum number of NAT bindings allowed for an endpoint.
o A description of the external address pool(s) to be used for the o A description of the external address pool(s) to be used for the
session. session.
o A reference to a predefined binding rule on DNCA agent that will o A reference to a predefined binding rule on DNCA agent that will
be applied to the session. Such a predefined binding rule on DNCA be applied to the session. Such a predefined binding rule on DNCA
agent may contain, for example, the name of the IP-address pool agent may contain, for example, the name of the IP-address pool
that the external IP-addresses should be allocated from, the that external IP-addresses should be allocated from, maximum
maximum number of bindings permitted for the endpoint etc. number of bindings permitted for the endpoint etc.
In certain cases, the DNCA agent may not be able to perform the tasks In certain cases, the DNCA agent may not be able to perform the tasks
requested within the NCR. These include the following: requested within the NCR. These include the following:
o If a DNCA agent receives a NCR from a DNCA manager with NC- o If a DNCA agent receives a NCR from a DNCA manager with NC-
Request-Type AVP set to INITIAL_REQUEST that identifies an already Request-Type AVP set to INITIAL_REQUEST that identifies an already
existing session (i.e. DNCA manager and endpoint identifier match existing session (i.e. DNCA manager and endpoint identifier match
an already existing session), the DNCA agent will return NCA with an already existing session), the DNCA agent will return NCA with
Result-Code set to SESSION_EXISTS, and provides Session-Id of the Result-Code set to SESSION_EXISTS, and provides Session-Id of the
existing session in Duplicate-Session-Id AVP. existing session in Duplicate-Session-Id AVP.
o If a DNCA agent receives an NCR from a DNCA manager with NC- o If a DNCA agent receives an NCR from a DNCA manager with NC-
Request-Type AVP set to INITIAL_REQUEST that matches more than one Request-Type AVP set to INITIAL_REQUEST that matches more than one
of the already existing sessions (i.e. DNCA manager and endpoint of the already existing sessions (i.e. DNCA manager and endpoint
identifier match already existing sessions), the DNCA agent will identifier match already existing sessions), the DNCA agent will
return a NCA with Result-Code set to Insufficient- Classifiers. return a NCA with Result-Code set to Insufficient-Classifiers. In
In case a DNCA manager receives a NCA that reports Insufficient- case a DNCA manager receives a NCA that reports Insufficient-
Classifiers, it may choose to retry establishing a new session Classifiers, it may choose to retry establishing a new session
using additional/more specific classifiers. using additional/more specific classifiers.
o If the NCR contains a binding rule not defined on the LSN, the o If the NCR contains a binding rule not defined on the NAT, the
DNCA agent will return a NCA with Result-Code AVP set to DNCA agent will return a NCA with Result-Code AVP set to
UNKNOWN_BINDING_RULE. UNKNOWN_BINDING_RULE.
o In case the DNCA agent is unable to establish all of the bindings o In case the DNCA agent is unable to establish all of the bindings
requested in the NCR, it will return a NCA with Result-Code set to requested in the NCR, it will return a NCA with Result-Code set to
BINDING_FAILURE. The DNCA agent (i.e. LSN) treats a NCR as an BINDING_FAILURE. The DNCA agent (i.e. NAT) treats a NCR as an
atomic operation; hence none of the requested bindings will be atomic operation; hence none of the requested bindings will be
established by LSN. Either all requested actions within a NCR are established by NAT. Either all requested actions within a NCR are
completed successfully, or the entire request fails. completed successfully, or the entire request fails.
o If DNCA agent does not have sufficient resources to process a o If DNCA agent does not have sufficient resources to process a
request, it will return NCA with Result-Code set to request, it will return NCA with Result-Code set to
RESOURCE_FAILURE. RESOURCE_FAILURE.
o In case Max-NAT-Binding and Nat-Control-Definition are included in o In case Max-NAT-Binding and Nat-Control-Definition are included in
the NCR along with a reference to a binding rule (i.e. a the NCR along with a reference to a binding rule (i.e. a
predefined template on LSN) and the values in Max-NAT-Binding and predefined template on NAT) and the values in Max-NAT-Binding and
NAT-Control-Definition contradict those specified in the pre- NAT-Control-Definition 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
override the values specified in the binding rule. override the values specified in the binding rule.
DNCA Manager DNCA Agent DNCA Manager DNCA Agent
| | | |
| | | |
| | | |
Trigger | Trigger |
| | | |
skipping to change at page 14, line 42 skipping to change at page 13, line 45
|<------------------------------------------| |<------------------------------------------|
| (result code) | | (result code) |
| | | |
| | | |
Figure 5: Initial NAT Control request and session establishment Figure 5: Initial NAT Control request and session establishment
4.3. Session Re-Authorization 4.3. Session Re-Authorization
Session re-authorization is performed if the DNCA manager desires to Session re-authorization is performed if the DNCA manager desires to
change the behavior of the LSN 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 NAT-Control Request (NCR) message to the The DNCA manager generates a NAT-Control Request (NCR) message to the
DNCA agent with NC-Request-Type AVP set to UPDATE_REQUEST upon DNCA agent with NC-Request-Type AVP set to UPDATE_REQUEST upon
receiving a trigger signal. In case the session is updated receiving a trigger signal. In case the session is updated
successfully, the DNCA agent notifies the DNCA manager about successfully, the DNCA agent notifies the DNCA manager about
successful session update using a NAT-Control Answer (NCA) message successful session update using a NAT-Control Answer (NCA) message
with Result-Code set to DIAMETER_SUCCESS. Figure 6 shows the with Result-Code set to DIAMETER_SUCCESS. Figure 6 shows the
protocol interaction between the DNCA manager and the DNCA agent. protocol interaction between the DNCA manager and the DNCA agent.
In certain cases, the DNCA agent may not be able to perform the tasks In certain cases, the DNCA agent may not be able to perform the 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/query request for non-existent o If DNCA agent receives a NCR update/query request for non-existent
session it will set error code in answer, to session it will set error code in answer, to
DIAMETER_UNKNOWN_SESSION_ID. DIAMETER_UNKNOWN_SESSION_ID.
o If the NCR contains a binding rule not defined on the LSN, the o If the NCR contains a binding rule not defined on the NAT, the
DNCA agent will return a NCA with Result-Code AVP set to DNCA agent will return a NCA with Result-Code AVP set to
UNKNOWN_BINDING_RULE. UNKNOWN_BINDING_RULE.
o If the DNCA agent cannot establish the requested binding because o If the DNCA agent cannot establish the requested binding because
the maximum number of allowed bindings has been reached for the the maximum number of allowed bindings has been reached for the
Endpoint Classifier, it will return NCA with Result-Code AVP set Endpoint Classifier, it will return NCA with Result-Code AVP set
to MAXIMUM_BINDINGS_REACHED_FOR_ENDPOINT. to MAXIMUM_BINDINGS_REACHED_FOR_ENDPOINT.
o In case the DNCA agent cannot establish some or all of the o In case the DNCA agent cannot establish some or all of the
bindings requested in a NCR, but has not yet reached the maximum bindings requested in a NCR, but has not yet reached the maximum
number of allowed bindings for the subscriber, it will return a number of allowed bindings for the subscriber, it will return a
NCA with Result-Code set to BINDING_FAILURE. The DNCA agent (i.e. NCA with Result-Code set to BINDING_FAILURE. The DNCA agent (i.e.
LSN) treats a NCR as an atomic operation; hence none of the NAT) treats a NCR as an atomic operation; hence none of the
requested bindings will be established by LSN. Either all requested bindings will be established by NAT. Either all
requested actions within a NCR are completed successfully, or the requested actions within a NCR are completed successfully, or the
entire request fails. entire request fails.
o If DNCA agent does not have sufficient resources to process a o If DNCA agent does not have sufficient resources to process a
request, it will return a NCA with Result-Code set to request, it will return a NCA with Result-Code set to
RESOURCE_FAILURE. RESOURCE_FAILURE.
o If a NCR redefines the maximum number of NAT bindings allowed for o If a NCR redefines the maximum number of NAT bindings allowed for
the endpoint, the new value will override any previously defined the endpoint, the new value will override any previously defined
limit on NAT-bindings. It depends on the implementation of the limit on NAT-bindings. It depends on the implementation of the
LSN how LSN would cope with a case where the new value is lower NAT how NAT would cope with a case where the new value is lower
than the actual number of allocated bindings. Typically the LSN than the actual number of allocated bindings. Typically the NAT
would refrain from enforcing the new limit immediately (i.e. would refrain from enforcing the new limit immediately (i.e.
actively remove bindings) but rather disallow the establishment of actively remove bindings) but rather disallow the establishment of
new bindings until the current number of bindings is lower than new bindings until the current number of bindings is lower than
the newly established maximum number of allowed bindings. the newly established maximum number of allowed bindings.
o If a NCR specifies a new binding rule, predefined on the DNCA o If a NCR specifies a new binding rule, predefined on the DNCA
agent, the binding rule will override any previously defined rules agent, the binding rule will override any previously defined rules
for the session. for the session.
o In case Max-NAT-Binding and Nat-Control-Definition are included in o In case Max-NAT-Binding and Nat-Control-Definition AVPs are
the NCR along with a reference to a binding rule (i.e. a included in the NCR along with a reference to a binding rule (i.e.
predefined template on LSN) and the values in Max-NAT-Binding and a predefined template on NAT) and the values in Max-NAT-Binding
Nat-Control-Definition contradict those specified in the pre- and Nat-Control-Definition AVPs contradict those specified in the
defined binding rule, Max-NAT-Binding and NAT-Control-Definition pre-defined binding rule, Max-NAT-Binding and NAT-Control-
override the values specified in the binding rule. Definition AVPs override the values specified in the binding rule.
DNCA Manager DNCA Agent DNCA Manager DNCA Agent
| | | |
| | | |
| | | |
Change of session | Change of session |
attributes | attributes |
| | | |
| NCR | | NCR |
|------------------------------------------>| |------------------------------------------>|
skipping to change at page 16, line 33 skipping to change at page 15, line 36
| | | |
| | | |
| NCA | | NCA |
|<------------------------------------------| |<------------------------------------------|
| (result code) | | (result code) |
| | | |
| | | |
Figure 6: NAT Control request for session update Figure 6: NAT Control request for session update
4.4. Session and Binding Query 4.4. Session And Binding Query
Session query can be used by the DNCA manager to either retrieve Session query can be used by the DNCA manager to either retrieve
information on the current bindings for a particular session at the information on the current bindings for a particular session at the
LSN or discover the session identifier for a particular external IP- NAT or discover the session identifier for a particular external IP-
address/port pair. address/port pair.
The DNCA manager initiates a session query by sending a NAT-Control The DNCA manager initiates a session query by sending a NAT-Control
Request (NCR) message to the DNCA agent with NC-Request-Type AVP set Request (NCR) message to the DNCA agent with NC-Request-Type AVP set
to QUERY_REQUEST. Figure 7 shows the protocol interaction between to QUERY_REQUEST. Figure 7 shows the protocol interaction between
the DNCA manager and the DNCA agent. the DNCA manager and the DNCA agent.
Two types of query requests exist. The first type of query request Two types of query requests exist. The first type of query request
uses the session ID as input parameter to the query. It is to allow uses the session ID as input parameter to the query. It is to allow
the DNCA manager retrieve the current set of bindings for a specific the DNCA manager retrieve the current set of bindings for a specific
skipping to change at page 18, line 31 skipping to change at page 17, line 31
|<------------------------------------------| |<------------------------------------------|
| (result code) | | (result code) |
| | | |
| | | |
Figure 7: Session Query Figure 7: Session Query
4.5. Session Termination 4.5. Session Termination
The DNCA manager generates a NAT-Control Request (NCR) message to the The DNCA manager generates a NAT-Control Request (NCR) message to the
DNCA agent with NC-Request-Type AVP set to TERMINATE REQUEST upon DNCA agent with NC-Request-Type AVP set to TERMINATE_REQUEST upon
receiving a trigger signal. The DNCA agent sends accounting stop receiving a trigger signal. The DNCA agent sends accounting stop
record reporting all the bindings and notifies the DNCA manager about record reporting all the bindings and notifies the DNCA manager about
successful session termination using a NAT-Control Answer (NCA) successful session termination using a NAT-Control Answer (NCA)
message with Result-Code set to DIAMETER_SUCCESS. Figure 8 shows the message with Result-Code set to DIAMETER_SUCCESS. Figure 8 shows the
protocol interaction between the DNCA manager and the DNCA agent. protocol interaction between the DNCA manager and the DNCA agent.
If a DNCA agent receives a NCR from a DNCA manager with NC-Request- If a DNCA agent receives a NCR from a DNCA manager with NC-Request-
Type AVP set to Terminate REQUEST and fails to find a matching Type AVP set to TERMINATE_REQUEST and fails to find a matching
session, the DNCA agent returns DIAMETER_UNKNOWN_SESSION_ID error. session, the DNCA agent returns DIAMETER_UNKNOWN_SESSION_ID error.
DNCA Manager DNCA Agent DNCA Manager DNCA Agent
| | | |
| | | |
Trigger | Trigger |
| | | |
| NCR | | NCR |
|------------------------------------------->| |------------------------------------------->|
| (TERMINATE_REQUEST, session id) | | (TERMINATE_REQUEST, session id) |
skipping to change at page 19, line 35 skipping to change at page 18, line 35
| | | |
| | | |
| | | |
| NCA | | NCA |
|<-------------------------------------------| |<-------------------------------------------|
| (result code) | | (result code) |
| | | |
Figure 8: Terminate NAT Control session Figure 8: Terminate NAT Control session
4.6. DNCA Manager/Agent failures 4.6. DNCA Manager/Agent Failures
Disclaimer: This version of the draft does not cover details in case This document does not cover details in case DNCA manager and DNCA
DNCA manager and DNCA agent go out of sync, which could happen for agent go out of sync, which could happen for example due to DNCA
example due to DNCA manager or DNCA agent restart, (temporary) loss manager or DNCA agent restart, (temporary) loss of network
of network connectivity etc. Future versions of this draft will connectivity etc. DNCA application will rely on DNCA Manager and
cover failure cases and corresponding behavior of DNCA manager and DNCA Agent to have builtin redundancy support to recover state in
DNCA agent in detail. case of failure.
Example failure cases include the following: Example failure cases include the following:
o The DNCA manager loses session state (e.g. due to a restart). In o The DNCA manager loses session state (e.g. due to a restart). In
this case, this case,
* the DNCA agent may receive a NCR with NC-Request-Type AVP set * the DNCA agent may receive a NCR with NC-Request-Type AVP set
to INITIAL_REQUEST that matches an existing session of DNCA to INITIAL_REQUEST that matches an existing session of DNCA
agent. The DNCA agent will return an error that contains agent. The DNCA agent will return an error that contains
Duplicate-Session-Id AVP to report Session-Id of existing Duplicate-Session-Id AVP to report Session-Id of existing
skipping to change at page 20, line 22 skipping to change at page 19, line 22
o The DNCA agent loses session state. In such a case, the DNCA o The DNCA agent loses session state. In such a case, the DNCA
agent could receive a NCR with NC-Request-Type AVP set to agent could receive a NCR with NC-Request-Type AVP set to
UPDATE_REQUEST for a non-existent session. The DNCA agent will UPDATE_REQUEST for a non-existent session. The DNCA agent will
return NCA with error code set to DIAMETER_UNKNOWN_SESSION_ID. return NCA with error code set to DIAMETER_UNKNOWN_SESSION_ID.
State recovery procedures of the DNCA agent will be covered in a State recovery procedures of the DNCA agent will be covered in a
future version of this document. future version of this document.
o The DNCA manager is unreachable (as e.g. detected by Diameter o The DNCA manager is unreachable (as e.g. detected by Diameter
watchdog) or down and accounting requests from the DNCA agent fail watchdog) or down and accounting requests from the DNCA agent fail
to get a response. The current version of the draft does not to get a response. The mechanism to ensure that a DNCA manager no
specify procedures for DNCA agent session state clean up or longer has associated state for a session being cleared at the
recovery. The mechanism to ensure that a DNCA manager no longer DNCA agent is beyond the scope of this document.
has associated state for a session being cleared at the DNCA agent
is beyond the scope of this document.
o The DNCA agent is unreachable or down and NCR requests fail to get o The DNCA agent is unreachable or down and NCR requests fail to get
a response. Handling of this case depends on the actual service a response. Handling of this case depends on the actual service
offering of the service provider. The service provider could, for offering of the service provider. The service provider could, for
example, choose to terminate the access session to the endpoint. example, choose to terminate the access session to the endpoint.
5. Use of the DIAMETER base protocol 5. Use Of The Diameter Base Protocol
The DIAMETER Base Protocol defined by [RFC3588] shall apply, with the The Diameter Base Protocol defined by [RFC3588] shall apply, with the
clarifications listed in the present specification. clarifications listed in the present specification.
5.1. Securing DIAMETER messages 5.1. Securing Diameter Messages
For secure transport of DIAMETER messages, IPSec may be used. For secure transport of Diameter messages, IPSec MAY be used.
The DNCA agent may verify the identity of the DNCA Manager during the The DNCA agent MAY verify the identity of the DNCA Manager during the
Capabilities Exchange Request procedure. Capabilities Exchange Request procedure.
The DNCA agent may verify if the DNCA Manager that issues a NCR The DNCA agent MAY verify if the DNCA Manager that issues a NCR
command is allowed to do so, based on: command is allowed to do so, based on:
o The Identity of the DNCA Manager o The Identity of the DNCA Manager
o The Type of NCR Command
o The Type of NCR Command
o The content of the NCR Command o The content of the NCR Command
o Any combination of the above o Any combination of the above
5.2. Accounting functionality 5.2. Accounting Functionality
Accounting functionality (Accounting Session State Machine, related Accounting functionality (Accounting Session State Machine, related
command codes and AVPs) is defined in Section 8 below. command codes and AVPs) is defined in Section 8 below.
5.3. Use of sessions 5.3. Use Of Sessions
Each DNCA session MUST have a globally unique Session-Id as defined Each DNCA session MUST have a globally unique Session-Id as defined
in [RFC3588], which MUST NOT be changed during the lifetime of a DNCA in [RFC3588], which MUST NOT be changed during the lifetime of a DNCA
session. The Diameter Session-Id serves as the global endpoint session. The Diameter Session-Id serves as the global endpoint
identifier (see also capabilities Section 3.1). The DNCA agent and identifier. The DNCA agent and DNCA manager maintain state
DNCA manager maintain state associated with the Session-Id. This associated with the Session-Id. This globally unique Session-Id is
globally unique Session-Id is used for updating, accounting for and used for updating, accounting for and terminating the session. DNCA
terminating the session. DNCA session MUST NOT have more than one session MUST NOT have more than one outstanding request at any given
outstanding request at any given instant. The DNCA agent sends an instant. The DNCA agent sends an Abort-Session-Request as defined in
Abort-Session-Request as defined in [RFC3588] if it is unable to [RFC3588] if it is unable to maintain sessions due to resource
maintain sessions due to resource limitation. limitation.
5.4. Routing considerations 5.4. Routing Considerations
It is assumed that the DNCA manager knows the address/name of the It is assumed that the DNCA manager knows the DiameterIdentity of the
DNCA agent for a given endpoint. Both the Destination-Realm and DNCA agent for a given endpoint. Both the Destination-Realm and
Destination-Host AVPs are present in the Request from the DNCA Destination-Host AVPs are present in the Request from the DNCA
manager to the DNCA agent. manager to the DNCA agent.
5.5. Advertising Application support 5.5. Advertising Application Support
Diameter applications conforming to this specification MUST advertise Diameter applications conforming to this specification MUST advertise
support by including the value of TBD in: support by including the value of TBD in:
o Auth-Application-Id and Acct-Application-Id of Capabilities- o Auth-Application-Id and Acct-Application-Id of Capabilities-
Exchange-Request (CER) Exchange-Request (CER)
o Auth-Application-Id of NC-request (NCR), NC-Answer (NCA), Abort- o Auth-Application-Id of NC-request (NCR), NC-Answer (NCA), Abort-
Session-Request(ASR), Abort-Session-Answer (AAA) messages Session-Request(ASR), Abort-Session-Answer (AAA) messages
o Acct-Application-Id in Accounting-Request (ACR) and Accounting- o Acct-Application-Id in Accounting-Request (ACR) and Accounting-
Answer (AAA) messages. Answer (AAA) messages.
6. Diameter NAT Control Application Commands 6. Diameter NAT Control Application Commands
The following commands are used to establish, maintain and clear LSN The following commands are used to establish, maintain and clear NAT
bindings. bindings.
6.1. NAT-Control Request (NCR) Command 6.1. NAT-Control Request (NCR) Command
The NAT-Control Request (NCR) command, indicated by the command field The NAT-Control Request (NCR) command, indicated by the command field
set to TBD and the "R" bit set in the Command Flags field, is sent set to TBD and the "R" bit set in the Command Flags field, is sent
from the DNCA manager to the DNCA agent in order to install NAT from the DNCA manager to the DNCA agent in order to install NAT
bindings. bindings.
Message Format: User-Name, Logical-Access-Id, Physical-Access-ID, Framed-IP-Address,
Framed-IPv6-Prefix , Framed-Interface-Id, EGRESS-VLANID, NAS-Port-ID,
Address-Realm, Calling-Station-ID AVPs serve as identifiers for the
subscriber.
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 ]
[ Auth-Session-State ] [ Auth-Session-State ]
* [ NAT-Control-Remove ] * [ NAT-Control-Remove ]
* [ NAT-Control-Install ] * [ NAT-Control-Install ]
[ User-Name ] [ User-Name ]
[ Logical-Access-Id ] [ Logical-Access-Id ]
[ Physical-Access-ID ] [ Physical-Access-ID ]
[ Framed-IP-Address ] [ Framed-IP-Address ]
[ Framed-IPv6-Prefix ]
[ Framed-Interface-Id ] [ Framed-Interface-Id ]
[ EGRESS-VLANID] [ EGRESS-VLANID]
[ NAS-Port-ID] [ NAS-Port-ID]
[ Address-Realm ] [ Address-Realm ]
[ Called-Station-ID ] [ Calling-Station-ID ]
* [ Proxy-Info ] * [ Proxy-Info ]
* [ Route-Record ] * [ Route-Record ]
* [ AVP ] * [ AVP ]
6.2. NAT-Control Answer (NCA) Command 6.2. NAT-Control Answer (NCA) Command
The NAT-Control-Answer (NCA) command, indicated by the Command-Code The NAT-Control-Answer (NCA) command, indicated by the Command-Code
field set to TBD and the "R" bit cleared in the Command Flags field, field set to TBD and the "R" bit cleared in the Command Flags field,
is sent by the DNCA agent in response to NAT-Control-Request command. is sent by the DNCA agent in response to NAT-Control-Request command.
skipping to change at page 23, line 19 skipping to change at page 22, line 19
{ 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 ]
[ Error-Reporting-Host ] [ Error-Reporting-Host ]
* [ Failed-AVP ] * [ Failed-AVP ]
* [ Proxy-Info ] * [ Proxy-Info ]
[ Duplicate-Session-ID ] [ Duplicate-Session-ID ]
* [ Redirect-Host]
[ Redirect-Host-Usage ]
[ Redirect-Max-Cache-Time ]
* [ Proxy-Info ]
* [ Route-Record ]
* [ Failed-AVP ]
* [ AVP ]
* [ AVP ] * [ AVP ]
7. Diameter NAT Control Application AVPs 7. Diameter NAT Control Application AVPs
7.1. Reused Base Protocol AVPs 7.1. Reused Base Protocol AVPs
AVPs reused from Diameter Base Protocol [RFC3588] are listed below. AVPs reused from Diameter Base Protocol [RFC3588] are listed below.
+-------------------+ +-------------------+
| AVP Flag rules | | AVP Flag rules |
skipping to change at page 24, line 40 skipping to change at page 23, line 40
| message, which carries this AVP, to be accepted. | | message, which carries this AVP, to be accepted. |
|P - Indicates the need for encryption for end-to-end security. | |P - Indicates the need for encryption for end-to-end security. |
+-------------------------------------------------------------------+ +-------------------------------------------------------------------+
Figure 9: DIAMETER AVPs used from Diameter base Figure 9: DIAMETER AVPs used from Diameter base
The Auth-Application-Id AVP (AVP Code 258) is assigned by IANA to The Auth-Application-Id AVP (AVP Code 258) is assigned by IANA to
Diameter applications. The value of the Auth-Application-Id for the Diameter applications. The value of the Auth-Application-Id for the
Diameter NAT Control Application is TBD. Diameter NAT Control Application is TBD.
7.2. Additional Result-Code AVP values 7.2. Additional Result-Code AVP Values
This section defines new values for the Result-Code AVP which SHALL This section defines new values for the Result-Code AVP which SHALL
be supported by all DIAMETER implementations that conform to the be supported by all Diameter implementations that conform to the
present document. present document.
7.2.1. Success 7.2.1. Success
No new Result-Code AVP value is defined within this category. No new Result-Code AVP value is defined within this category.
7.2.2. Transient failures 7.2.2. Transient Failures
Result-Code AVP values that fall within the transient failures Result-Code AVP values that fall within the transient failures
category are those used to inform a peer that the request could not category are those used to inform a peer that the request could not
be satisfied at the time that it was received. The request may be be satisfied at the time that it was received. The request may be
able to be satisfied in the future. able to be satisfied in the future.
The following new values of the Result-Code AVP are defined: The following new values of the Result-Code AVP are defined:
RESOURCE_FAILURE (TBD) RESOURCE_FAILURE (TBD)
The DNCA agent indicates that the binding could not be The DNCA agent indicates that the binding could not be
installed or a new session could not be created due to resource installed or a new session could not be created due to resource
shortage. shortage.
7.2.3. Permanent failures 7.2.3. Permanent Failures
Result-Code AVP values that fall within the permanent failures Result-Code AVP values that 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)
skipping to change at page 26, line 11 skipping to change at page 25, line 11
it already has a DNCA session that uses the same set of it already has a DNCA session that uses the same set of
classifiers as indicated by DNCA manager in the new session classifiers as indicated by DNCA manager in the new session
init request. init request.
INSUFFICIENT_CLASSIFIERS (TBD) INSUFFICIENT_CLASSIFIERS (TBD)
The DNCA agent defines request to initialize a new session, if The DNCA agent defines request to initialize a new session, if
the classifiers in the request match more than one of the the classifiers in the request match more than one of the
existing sessions on DNCA agent. existing sessions on DNCA agent.
7.3. Reused NASREQ Diameter application AVPs 7.3. Reused NASREQ Diameter Application AVPs
The following AVPs are reused from Diameter Network Access Server The following AVPs are reused from Diameter Network Access Server
Application [RFC4005]. Application [RFC4005].
+---------------------+ +---------------------+
| AVP Flag rules | | AVP Flag rules |
+------------------+------+------------|----+-----+----+-----|----+ +------------------+------+------------|----+-----+----+-----|----+
| | AVP | | | |SHLD| MUST| | | | AVP | | | |SHLD| MUST| |
| Attribute Name | Code | Value Type|MUST| MAY | NOT| NOT|Encr| | Attribute Name | Code | Value Type|MUST| MAY | NOT| NOT|Encr|
|------------------|------|------------|----+-----+----+-----|----| |------------------|------|------------|----+-----+----+-----|----|
| NAS-Port | 5 | Unsigned32 | M | P | | V | Y | | NAS-Port | 5 | Unsigned32 | M | P | | V | Y |
| NAS-Port-Id | 87 | UTF8String | M | P | | V | Y | | NAS-Port-Id | 87 | UTF8String | M | P | | V | Y |
| Called-Station-Id| 30 | UTF8String | M | P | | V | Y |
| Calling-Station- | 31 | UTF8String | M | P | | V | Y | | Calling-Station- | 31 | UTF8String | M | P | | V | Y |
| Id | | | | | | | | | Id | | | | | | | |
| Framed-IP-Address| 8 | OctetString| M | P | | V | Y | | Framed-IP-Address| 8 | OctetString| M | P | | V | Y |
| Framed-Interface-| 96 | Unsigned64 | M | P | | V | Y | | Framed-Interface-| 96 | Unsigned64 | M | P | | V | Y |
| ID | | | | | | | | | ID | | | | | | | |
| Framed-IPv6- | 97 | OctetString| M | P | | V | Y |
| Prefix | | | | | | | |
+------------------+------+------------|----+-----+----+-----|----+ +------------------+------+------------|----+-----+----+-----|----+
Figure 10: Reused NASREQ Diameter application AVPs Figure 10: Reused NASREQ Diameter application AVPs
7.4. Reused from RFC 4675 7.4. Reused from RFC 4675
The following AVPs are reused from "RADIUS Attributes for Virtual LAN The following AVPs are reused from "RADIUS Attributes for Virtual LAN
and Priority Support" specification [RFC4675]. and Priority Support" specification [RFC4675].
+---------------------+ +---------------------+
| 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|
|------------------|------|------------|----+-----+----+-----|----| |------------------|------|------------|----+-----+----+-----|----|
| Egress-VLANID | 56 | OctetString| M | P | | V | Y | | Egress-VLANID | 56 | OctetString| M | P | | V | Y |
+------------------+------+------------|----+-----+----+-----|----+ +------------------+------+------------|----+-----+----+-----|----+
Figure 11: Reused attributes from RFC 4675 Figure 11: Reused attributes from RFC 4675
skipping to change at page 27, line 28 skipping to change at page 26, line 28
|Direction TBD Enumerated | M | P | Y | |Direction TBD Enumerated | M | P | Y |
+-----------------------------------------------+-----+---+---------+ +-----------------------------------------------+-----+---+---------+
|M - Mandatory bit. An AVP with "M" bit set and its value MUST be | |M - Mandatory bit. An AVP with "M" bit set and its value MUST be |
| supported and recognized by a Diameter entity in order the | | supported and recognized by a Diameter entity in order the |
| message, which carries this AVP, to be accepted. | | message, which carries this AVP, to be accepted. |
|P - Indicates the need for encryption for end-to-end security. | |P - Indicates the need for encryption for end-to-end security. |
+-------------------------------------------------------------------+ +-------------------------------------------------------------------+
Figure 12: Reused QoS-attributes Figure 12: Reused QoS-attributes
7.6. Reused from ETSI ES 283 034, e4 Diameter application 7.6. Reused From ETSI ES 283 034, e4 Diameter Application
The following AVPs are reused from the Diameter e4 Application The following AVPs are reused from the Diameter e4 Application
[ETSIES283034]. [ETSIES283034].
+-------------------+ +-------------------+
| AVP Flag rules | | AVP Flag rules |
+-----------------------------------------------|-----+---+---------+ +-----------------------------------------------|-----+---+---------+
| AVP | | | May | | AVP | | | May |
| Attribute Name Code Data Type |MUST |MAY| encrypt | | Attribute Name Code Data Type |MUST |MAY| encrypt |
+-----------------------------------------------+-----+---+---------+ +-----------------------------------------------+-----+---+---------+
|Address-Realm 301 OctetString | M,V | | Y | |Address-Realm 301 OctetString | M,V | | Y |
|Logical-Access-Id 302 OctetString | V | M | Y | |Logical-Access-Id 302 OctetString | V | M | Y |
|Physical-Access-ID 313 UTF8String | V | M | Y | |Physical-Access-ID 313 UTF8String | V | M | Y |
+-----------------------------------------------+-----+---+---------+ +-----------------------------------------------+-----+---+---------+
skipping to change at page 30, line 45 skipping to change at page 29, line 42
{ NAT-Internal-Address } { NAT-Internal-Address }
[ Protocol ] [ Protocol ]
[ Direction ] [ Direction ]
[ NAT-External-Address ] [ NAT-External-Address ]
[ Session-Id ] [ Session-Id ]
* [ AVP ] * [ AVP ]
7.7.5. NAT-Internal-Address AVP 7.7.5. NAT-Internal-Address AVP
The NAT-Internal-Address AVP (AVP code TBD) is of type Grouped, and The NAT-Internal-Address AVP (AVP code TBD) is of type Grouped, and
it describes the internal IP address and port for a binding. it describes the internal IP address and port for a binding. Framed-
IPV6-Prefix and Framed-IP-Address AVPs are mutually exclusive.
AVP format: AVP format:
NAT-Internal-Address ::= < AVP Header: TBD > NAT-Internal-Address ::= < AVP Header: TBD >
[ Framed-IP-Address ] [ Framed-IP-Address ]
[ Framed-IPv6-Prefix ]
[ Port] [ Port]
[ AVP ] * [ AVP ]
7.7.6. NAT-External-Address AVP 7.7.6. NAT-External-Address AVP
The NAT-External-Address AVP (AVP code TBD) is of type Grouped, and The NAT-External-Address AVP (AVP code TBD) is of type Grouped, and
it describes the external IP address and port for a binding. IP- it describes the external IP address and port for a binding. IP-
Address-Mask AVP can only be specified when Framed-IP-Address AVP is Address-Mask AVP can only be specified when Framed-IP-Address AVP is
present. present.
AVP format: AVP format:
NAT-External-Address ::= < AVP Header: TBD > NAT-External-Address ::= < AVP Header: TBD >
[ Framed-IP-Address ] [ Framed-IP-Address ]
[ IP-Address-Mask ] [ IP-Address-Mask ]
[ Port ] [ Port ]
[ AVP ] * [ AVP ]
7.7.7. Max-NAT-Bindings 7.7.7. Max-NAT-Bindings
The Max-NAT-Bindings AVP (AVP code TBD) is of type Unsigned32, and it The Max-NAT-Bindings AVP (AVP code TBD) is of type Unsigned32, and it
indicates the maximum number of NAT bindings allowed. indicates the maximum number of NAT bindings allowed.
7.7.8. NAT-Control-Binding-Rule AVP 7.7.8. NAT-Control-Binding-Rule AVP
The NAT-Control-Binding-Rule AVP (AVP code TBD) is of type is of type The NAT-Control-Binding-Rule AVP (AVP code TBD) is of type is of type
OctetString, and it defines a name for a policy template that will be OctetString, and it defines a name for a policy template that will be
predefined at LSN. Details on the contents and structure of the predefined at NAT. Details on the contents and structure of the
template as well as how it would be configured are outside the scope template as well as how it would be configured are outside the scope
of this document. The policy to which this AVP refers to may contain of this document. The policy to which this AVP refers to may contain
NAT Bindings, address pool for external address allocation of NAT NAT Bindings, address pool for external address allocation of NAT
binding, maximum allowed NAT bindings etc. binding, maximum allowed NAT bindings etc.
7.7.9. Duplicate-Session-Id AVP 7.7.9. Duplicate-Session-Id AVP
The Duplicate-Session-Id AVP (AVP Code TBD) is of is of type The Duplicate-Session-Id AVP (AVP Code TBD) is of is of type
UTF8String. It is used to report error and contains the Session-Id UTF8String. It is used to report error and contains the Session-Id
of an existing session. of an existing session.
skipping to change at page 32, line 21 skipping to change at page 31, line 20
The function of correlating the multiple bindings used by an endpoint The function of correlating the multiple bindings used by an endpoint
at any given time is relegated to the post processor. at any given time is relegated to the post processor.
The DNCA agent may trigger an interim accounting record when maximum The DNCA agent may trigger an interim accounting record when maximum
number of bindings, if received in NCR, is reached. number of bindings, if received in NCR, is reached.
8.1. NAT Control Accounting Messages 8.1. NAT Control Accounting Messages
The ACR and ACA messages are reused as defined in Diameter Base The ACR and ACA messages are reused as defined in Diameter Base
Protocol [RFC3588] for exchanging endpoint NAT binding details Protocol [RFC3588] for exchanging endpoint NAT binding details
between the DNCA agent and the CDF. ACR will contain one or more between the DNCA agent and the CDF. DNCA Application ID is used in
optional NAT-Control-Record AVP to report the bindings. The DNCA the accounting commands. ACR will contain one or more optional NAT-
agent indicates the number of the currently allocated NAT bindings to Control-Record AVP to report the bindings. The DNCA agent indicates
the DNCA manager using the Current-NAT-Bindings AVP. This number the number of the currently allocated NAT bindings to the DNCA
needs to match the number of bindings identified as active within the manager using the Current-NAT-Bindings AVP. This number needs to
NAT-Control-Record AVP. match the number of bindings identified as active within the NAT-
Control-Record AVP.
8.2. NAT Control Accounting AVPs 8.2. NAT Control Accounting AVPs
In addition to AVPs for ACR specified in [RFC3588], the DNCA agent In addition to AVPs for ACR specified in [RFC3588], the DNCA agent
must add the NAT-Control-Record AVP. must add the NAT-Control-Record AVP.
8.2.1. NAT-Control-Record 8.2.1. NAT-Control-Record
The NAT-Control-Record AVP (AVP code TBD) is of type Grouped, and it The NAT-Control-Record AVP (AVP code TBD) is of type Grouped, and it
describes a binding and its status. Event-Timestamp indicates the describes a binding and its status. Event-Timestamp indicates the
skipping to change at page 33, line 23 skipping to change at page 32, line 22
Indicates that NAT binding is active. Indicates that NAT binding is active.
Removed (3) Removed (3)
Indicates that the NAT binding was removed. Indicates that the NAT binding was removed.
8.2.3. Current-NAT-Bindings 8.2.3. Current-NAT-Bindings
The Current-NAT-Bindings AVP (AVP code TBD) is of type Unsigned32, The Current-NAT-Bindings AVP (AVP code TBD) is of type Unsigned32,
and it indicates number of NAT bindings active on LSN. and it indicates number of NAT bindings active on NAT.
9. AVP Occurrence Table 9. AVP Occurrence Table
The following sections presents the AVPs defined in this document and The following sections presents the AVPs defined in this document and
specifies in which Diameter messages they MAY be present. Note that specifies in which Diameter messages they MAY be present. Note that
AVPs that can only be present within a Grouped AVP are not AVPs that can only be present within a Grouped AVP are not
represented in this table. represented in this table.
The table uses the following symbols: The table uses the following symbols:
skipping to change at page 35, line 19 skipping to change at page 34, line 19
+-------------------------------------------------------+ +-------------------------------------------------------+
|NC-Request-Type 1 1 | |NC-Request-Type 1 1 |
|NAT-Control-Install 0 0 | |NAT-Control-Install 0 0 |
|NAT-Control-Remove 0 0 | |NAT-Control-Remove 0 0 |
|NAT-Control-Definition 0 0 | |NAT-Control-Definition 0 0 |
|NAT-Control-Record 0 0 | |NAT-Control-Record 0 0 |
|Current-NAT-Bindings 0 0 | |Current-NAT-Bindings 0 0 |
|Duplicate-Session-Id 0 0 | |Duplicate-Session-Id 0 0 |
+-------------------------------------------------------+ +-------------------------------------------------------+
9.4. DNCA AVP Table for accounting message 9.4. DNCA AVP Table For Accounting Message
Following table presents which NAT control application specific AVPs Following table presents which NAT control application specific AVPs
May or May Not be present in ACR/ACA messages. May or May Not be present in ACR/ACA messages.
+-------------------+ +-------------------+
| Command Code | | Command Code |
+-----------------------------------+-------------------+ +-----------------------------------+-------------------+
| Attribute Name ACR ACA | | Attribute Name ACR ACA |
+-------------------------------------------------------+ +-------------------------------------------------------+
|NC-Request-Type 0 0 | |NC-Request-Type 0 0 |
|NAT-Control-Install 0 0 | |NAT-Control-Install 0 0 |
|NAT-Control-Remove 0 0 | |NAT-Control-Remove 0 0 |
|NAT-Control-Definition 0 0 | |NAT-Control-Definition 0 0 |
|NAT-Control-Record 0+ 0 | |NAT-Control-Record 0+ 0 |
skipping to change at page 36, line 47 skipping to change at page 35, line 47
Table 2: AVP codes Table 2: AVP codes
10.3. AVP Values 10.3. AVP Values
10.3.1. Result-Code AVP Values 10.3.1. Result-Code AVP Values
Section 7.2 defines several new values for the Result-Code AVP for Section 7.2 defines several new values for the Result-Code AVP for
transient failures and permanent failures. IANA is requested to transient failures and permanent failures. IANA is requested to
allocate the corresponding values from the ranges for transient allocate the corresponding values from the ranges for transient
(4xxx) and permanent (5xxx) failures. (4xxx) and permantent (5xxx) failures.
+-----------+---------------------------------------+---------------+ +-----------+---------------------------------------+---------------+
| Code | Name | Reference | | Code | Name | Reference |
| Value | | | | Value | | |
+-----------+---------------------------------------+---------------+ +-----------+---------------------------------------+---------------+
| to be | RESOURCE_FAILURE | Section 7.2.2 | | to be | RESOURCE_FAILURE | Section 7.2.2 |
| assigned | | | | assigned | | |
| (4xxx) | | |
| to be | UNKNOWN_BINDING_RULE_NAME | Section 7.2.3 | | to be | UNKNOWN_BINDING_RULE_NAME | Section 7.2.3 |
| assigned | | | | assigned | | |
| (5xxx) | | |
| to be | BINDING_FAILURE | Section 7.2.3 | | to be | BINDING_FAILURE | Section 7.2.3 |
| assigned | | | | assigned | | |
| (5xxx) | | |
| to be | MAXIMUM_BINDINGS_REACHED_FOR_ENDPOINT | Section 7.2.3 | | to be | MAXIMUM_BINDINGS_REACHED_FOR_ENDPOINT | Section 7.2.3 |
| assigned | | | | assigned | | |
| (5xxx) | | |
| to be | SESSION_EXISTS | Section 7.2.3 | | to be | SESSION_EXISTS | Section 7.2.3 |
| assigned | | | | assigned | | |
| (5xxx) | | |
| to be | INSUFFICIENT_CLASSIFIERS | Section 7.2.3 | | to be | INSUFFICIENT_CLASSIFIERS | Section 7.2.3 |
| assigned | | | | assigned | | |
| (5xxx) | | |
+-----------+---------------------------------------+---------------+ +-----------+---------------------------------------+---------------+
Table 3: Result Code AVP Values Table 3: Result Code AVP Values
10.4. Application IDs 10.4. Application IDs
IANA is requested to allocate the following application ID using the IANA is requested to allocate the following application ID using the
next value from the 7-16777215 range. next value from the 7-16777215 range.
Registry: Registry:
skipping to change at page 38, line 8 skipping to change at page 37, line 14
entity which is non-local to the device performing network address entity which is non-local to the device performing network address
translation. The security considerations for the Diameter QoS translation. The security considerations for the Diameter QoS
application (see [I-D.ietf-dime-diameter-qos] section 11) apply in a application (see [I-D.ietf-dime-diameter-qos] section 11) apply in a
similar way to the DNCA. Securing the information exchange between similar way to the DNCA. Securing the information exchange between
the authorizing entity (the DNCA manager) as well as the NAT device the authorizing entity (the DNCA manager) as well as the NAT device
requires bilateral authentication of the involved parties, requires bilateral authentication of the involved parties,
authorization of the involved parties to perform the required authorization of the involved parties to perform the required
procedures and functions, as well as procedures to ensure integrity procedures and functions, as well as procedures to ensure integrity
and confidentiality of the information exchange. DNCA makes use of and confidentiality of the information exchange. DNCA makes use of
the capabilities offered by Diameter as well as the underlying the capabilities offered by Diameter as well as the underlying
transport protocols to deliver on these requirements (see transport protocols to deliver on these requirements (see Section 5.1
Section 5.1). ).
It is assumed that the DNCA agent and DNCA manager are in the same It is assumed that the DNCA agent and DNCA manager are in the same
domain and have a mutual trust set up. Authorization between the domain and have a mutual trust set up. Authorization between the
DNCA agent and DNCA manager is beyond the scope of this document. DNCA agent and DNCA manager is beyond the scope of this document.
12. Change history (to be removed prior to publication as an RFC) 12. Acknowledgements
The authors would like to thank Jouni Korhonen, Avi Lior, Chris Metz,
Hannes Tschofenig, Greg Weber, and Glen Zorn for their input on this
document.
13. Change History (to be removed prior to publication as an RFC)
Changes from -00 to -01 Changes from -00 to -01
a. new values for Result-Code AVP used - instead of Experimental- a. new values for Result-Code AVP used - instead of Experimental-
Result AVP Result AVP
b. added support for transport specific binding (UDP/TCP) b. added support for transport specific binding (UDP/TCP)
c. added support for twice-NAT c. added support for twice-NAT
d. clarified the use of the two different types of query-requests d. clarified the use of the two different types of query-requests
13. References Changes from -01 to -02
13.1. Normative References a. Reference to pull mode removed, session initiation event
clarified in section 4.1
b. added Redirect-* AVPs in NCA command
c. Removed reference to Called-Station-Id AVP in NCR command
d. Editorial changes (shorted intro section
e. added support for bindings providing AFT (NAT64)
14. References
14.1. Normative References
[ETSIES283034] [ETSIES283034]
ETSI, "Telecommunications and Internet Converged Services ETSI, "Telecommunications and Internet Converged Services
and Protocols for Advanced Networks (TISPAN),Network and Protocols for Advanced Networks (TISPAN),Network
Attachment Sub-System (NASS),e4 interface based on the Attachment Sub-System (NASS),e4 interface based on the
Diameter protocol.", September 2008. Diameter protocol.", September 2008.
[I-D.ietf-dime-qos-attributes]
Korhonen, J., Tschofenig, H., Arumaithurai, M., Jones, M.,
and A. Lior, "Quality of Service Attributes for Diameter",
draft-ietf-dime-qos-attributes-13 (work in progress),
July 2009.
[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.
[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.
13.2. Informative References [RFC5777] Korhonen, J., Tschofenig, H., Arumaithurai, M., Jones, M.,
and A. Lior, "Traffic Classification and Quality of
Service (QoS) Attributes for Diameter", RFC 5777,
February 2010.
14.2. Informative References
[I-D.ietf-dime-diameter-qos] [I-D.ietf-dime-diameter-qos]
Sun, D., McCann, P., Tschofenig, H., ZOU), T., Doria, A., Sun, D., McCann, P., Tschofenig, H., ZOU), T., Doria, A.,
and G. Zorn, "Diameter Quality of Service Application", and G. Zorn, "Diameter Quality of Service Application",
draft-ietf-dime-diameter-qos-11 (work in progress), draft-ietf-dime-diameter-qos-14 (work in progress),
August 2009. February 2010.
[I-D.ietf-dime-qos-parameters] [I-D.narten-iana-considerations-rfc2434bis]
Korhonen, J., Tschofenig, H., and E. Davies, "Quality of Narten, T. and H. Alvestrand, "Guidelines for Writing an
Service Parameters for Usage with Diameter", IANA Considerations Section in RFCs",
draft-ietf-dime-qos-parameters-11 (work in progress), draft-narten-iana-considerations-rfc2434bis-09 (work in
May 2009. progress), March 2008.
[I-D.nishitani-cgn] [I-D.nishitani-cgn]
Nishitani, T., Miyakawa, S., Nakagawa, A., and H. Ashida, Nishitani, T., Yamagata, I., Miyakawa, S., Nakagawa, A.,
"Common Functions of Large Scale NAT (LSN)", and H. Ashida, "Common Functions of Large Scale NAT
draft-nishitani-cgn-02 (work in progress), June 2009. (LSN)", draft-nishitani-cgn-03 (work in progress),
November 2009.
[RFC4005] Calhoun, P., Zorn, G., Spence, D., and D. Mitton, [RFC4005] Calhoun, P., Zorn, G., Spence, D., and D. Mitton,
"Diameter Network Access Server Application", RFC 4005, "Diameter Network Access Server Application", RFC 4005,
August 2005. August 2005.
[RFC5624] Korhonen, J., Tschofenig, H., and E. Davies, "Quality of
Service Parameters for Usage with Diameter", RFC 5624,
August 2009.
[TS32299] "3rd Generation Partnership Project; Technical [TS32299] "3rd Generation Partnership Project; Technical
Specification Group Service and System Aspects; Specification Group Service and System Aspects;
Telecommunication management; Charging management; Telecommunication management; Charging management;
"Diameter charging applications", 3GPP TS 32.299 Version "Diameter charging applications", 3GPP TS 32.299 Version
6.3.0.2", 2008. 6.3.0.2", 2008.
Authors' Addresses Authors' Addresses
Frank Brockners Frank Brockners
Cisco Cisco
skipping to change at page 40, line 19 skipping to change at page 40, line 4
Email: shwethab@cisco.com Email: shwethab@cisco.com
Vaneeta Singh Vaneeta Singh
Mavenir Systems Mavenir Systems
Sharda Towers, 56/13 Nandidurga Road Sharda Towers, 56/13 Nandidurga Road
Bangalore 560046 Bangalore 560046
India India
Email: vaneeta@mavenir.com Email: vaneeta@mavenir.com
Victor Fajardo Victor Fajardo
Telcordia Technologies Telcordia Technologies
1 Telcordia Drive #1S-222 1 Telcordia Drive #1S-222
Piscataway, NJ 08854 Piscataway, NJ 08854
USA USA
Email: vfajardo@research.telcordia.com Email: vf0213@gmail.com
 End of changes. 118 change blocks. 
435 lines changed or deleted 430 lines changed or added

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