Internet DRAFT - draft-donovan-doic-agent-cases
draft-donovan-doic-agent-cases
Internet Engineering Task Force S. Donovan
Internet-Draft B. Campbell
Intended status: Informational Oracle
Expires: January 4, 2015 July 3, 2014
Analysis of Agent Use Cases for Diameter Overload Information Conveyance
(DOIC)
draft-donovan-doic-agent-cases-00
Abstract
The Diameter Overload Information Conveyance (DOIC) solution
describes a mechanism for exchanging information about Diameter
Overload among Diameter nodes. A DOIC node is a Diameter node that
acts as either a reporting node are a reacting node. A reporting
node originates overload reports, requesting reacting nodes to reduce
the amount of traffic sent. DOIC allows Diameter agents to act as
reporting nodes, reacting nodes, or both, but does not describe agent
behavior. This document explores several use cases for agents to
participate in overload control, and makes recommendations for
certain agent behaviors to be added to DOIC.
Status of This Memo
This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet-
Drafts is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress."
This Internet-Draft will expire on January 4, 2015.
Copyright Notice
Copyright (c) 2014 IETF Trust and the persons identified as the
document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of
Donovan & Campbell Expires January 4, 2015 [Page 1]
Internet-Draft Abbreviated Title July 2014
publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License.
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2
1.1. Terminology and Abbreviations . . . . . . . . . . . . . . 3
2. Deployment Architectures . . . . . . . . . . . . . . . . . . 4
3. Diameter Routing . . . . . . . . . . . . . . . . . . . . . . 5
4. Overload Abatement Methods . . . . . . . . . . . . . . . . . 6
5. DOIC Use Cases . . . . . . . . . . . . . . . . . . . . . . . 7
5.1. Simple Agent . . . . . . . . . . . . . . . . . . . . . . 9
5.1.1. Capability Announcement . . . . . . . . . . . . . . . 9
5.1.2. Overload Report Handling . . . . . . . . . . . . . . 11
5.1.3. DOIC Specification Impacts . . . . . . . . . . . . . 17
5.2. Mixed Capabilities . . . . . . . . . . . . . . . . . . . 17
5.2.1. Capability Announcement . . . . . . . . . . . . . . . 17
5.2.2. Mixed Abatement Algorithms . . . . . . . . . . . . . 18
5.2.3. DOIC Specification Impacts . . . . . . . . . . . . . 20
5.3. Non-Supporting Nodes . . . . . . . . . . . . . . . . . . 20
5.3.1. Non-Supporting Transaction Client . . . . . . . . . . 20
5.3.2. Non-supporting Transaction Server . . . . . . . . . . 24
5.3.3. Non-Supporting Agent . . . . . . . . . . . . . . . . 26
5.3.4. DOIC Specification Impacts . . . . . . . . . . . . . 27
5.4. Inter Domain Authentication . . . . . . . . . . . . . . . 27
5.4.1. DOIC Specification Impacts . . . . . . . . . . . . . 29
6. Recommendations . . . . . . . . . . . . . . . . . . . . . . . 29
6.1. General Recommendations . . . . . . . . . . . . . . . . . 30
6.2. Agent Behavior Recommendations . . . . . . . . . . . . . 30
6.2.1. Capabilites Exchange Behaviors . . . . . . . . . . . 30
6.2.2. Overload Report Behaviors . . . . . . . . . . . . . . 31
7. Security Considerations . . . . . . . . . . . . . . . . . . . 32
8. References . . . . . . . . . . . . . . . . . . . . . . . . . 33
8.1. Normative References . . . . . . . . . . . . . . . . . . 33
8.2. Informative References . . . . . . . . . . . . . . . . . 33
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 34
1. Introduction
The Diameter Overload Information Conveyance (DOIC)
[I-D.ietf-dime-ovli] solution describes a mechanism for exchanging
diameter overload information among Diameter nodes. DOIC defines the
concept of a DOIC endpoint (referred to as a "DOIC node" in this
document.) A DOIC node is a Diameter node that acts as either a
Donovan & Campbell Expires January 4, 2015 [Page 2]
Internet-Draft Abbreviated Title July 2014
reporting node or a reacting node. A reporting node originates
overload reports, requesting reacting nodes to reduce the offered
load. An overload report has a "type". The type of overload report
determines the scope of the request for traffic reduction, and
possibly other semantics.
DOIC nodes do not necessarily correspond to Diameter clients and
servers. Any Diameter node that supports DOIC is a DOIC node. This
includes Diameter agents, as well as Diameter clients and servers.
However, DOIC does not currently describe how agents should behave as
part of an overload control solution. This document explores several
use cases for agents to participate in overload control, and makes
recommendations for certain agent behaviors to be added to DOIC.
1.1. Terminology and Abbreviations
Diameter Node: A Diameter client, agent or server.
DOIC node: A Diameter node that supports DOIC. A DOIC node can
simultaneously be both a reacting node and a reporting node.
Reacting node: A DOIC node that can receive overload reports from a
reporting node and ensures that the overload reports are honored.
Reporting node: A DOIC node that can send overload reports,
requesting overload abatement.
Abating node: A reacting node that directly performs overload
abatement.
Transaction Client (TC) A diameter node that originates a Diameter
request. This is distinct from "Diameter Client" as used in RFC
6733. Note that a Diameter Server acts as a TC if and when it
originates a request towards a Diameter Client.
TransactionServer (TS) A diameter node that consumes a Diameter
request, and responds with a Diameter answer. This is distinct
from "Diameter Server" as used in RFC 6733. Note that a Diameter
Client acts as a TS if and when it answers a request sent by a
Diameter Server.
Client Application The application that uses Diameter for various
Authentication, Authorization, and/or Accounting (AAA) functions.
For example, a Network Access Server (NAS) performs certain
network attachment services, detachment services, packet
forwarding, etc. These are collectively the NAS client
application, which depends on Diameter for AAA services.
Donovan & Campbell Expires January 4, 2015 [Page 3]
Internet-Draft Abbreviated Title July 2014
Overload Abatement: Actions taken by a reacting node to reduce the
load offered to an overloaded Diameter node. The specific actions
required to perform overload abatement are described by the DOIC
algorithm. Overload abatement actions may involve local traffic
reduction, or delegation of actions towards the client. Local
traffic reduction can be achieved by either throttling a request
or routing a request to a different destination.
Throttling Overload abatement through the rejection of some number
of requests. Throttling at an agent requires the agent to reject
requests with appropriate error codes. Throttling at a
transaction client requires the client to indicate appropriate
errors to the client application
Diversion Overload abatement through the routing of some number of
requests away from an overloaded node towards one or more
appropriate nodes that are less-overloaded.
2. Deployment Architectures
This section outlines the deployment architectures used to determine
agent related Diameter DOIC requirements.
These deployment architectures include the use of Diameter agents to
route Diameter requests between Diameter clients and Diameter
servers.
In all cases, a small number of client and server nodes are shown for
simplicity. Adding additional clients and/or servers does not change
the fundamental characteristics of the deployments.
Figure 1 shows an architecture with a single agent sitting between
Diameter clients and Diameter servers.
+--+ +--+
|C1|----- -----|S1|
+--+ \+--+/ +--+
|A1|
+--+ /+--+\ +--+
|C2|----- -----|S2|
+--+ +--+
Figure 1
Donovan & Campbell Expires January 4, 2015 [Page 4]
Internet-Draft Abbreviated Title July 2014
Figure 2 shows an architecture with multiple agents sitting between
Diameter clients and Diameter servers.
+--+ +--+
|C1|----- -----|S1|
+--+ \+--+ +--+/ +--+
|A1|------|A2|
+--+ /+--+ +--+\ +--+
|C2|----- -----|S2|
+--+ +--+
Figure 2
This document focuses on use cases that involve agents, and does not
therefore include scenarios with no agent(s) between the transaction
client and transaction server. It is, however, important that any
changes to the DOIC solution introduced to support networks that
contain agents also work when there is no agent sitting between
Diameter clients and servers.
3. Diameter Routing
Diameter supports two primary methods [RFC6733] for nodes to select
the next hop for a request . Normally, Diameter nodes base peer-
selection on the Destination-Realm and Application-Id AVP values.
That is, they select a next hop from their Diameter peer table entry
that matches the realm and application of the request. For the sake
of this analysis, we refer to requests routed by this method as
"realm-routed requests"
A Diameter TC may also control the final destination of a request by
inserting a Destination-Host AVP. When a node forwards a request
that includes Destination-Host, it checks to see if it has a matching
Diameter identity in its peer table. If so, it forwards the request
to that peer. Otherwise, it follows the normal peer-selection for
the realm and application. We refer to requests routed this way as
"host-routed requests".
In general, throttling (Section 4) is the the only abatement
technique that works for host-routed requests. Diversion (Section 4)
is typically not possible, since only a single TS can handle any
given request.
There may be some exceptions to this rule. For example, a node
might have multiple peer table entries that share the same
Donovan & Campbell Expires January 4, 2015 [Page 5]
Internet-Draft Abbreviated Title July 2014
Diameter Identity. A node might map Diameter identities in a way
that results in multiple next-hop destinations for a given
Destination-Host value.
On the other hand, diversion is often useful for abating realm-routed
traffic. Since realm-routed requests are not bound to a particular
TS, it is often be possible to divert a number of them to other
servers that are less overloaded.
4. Overload Abatement Methods
When a Diameter node becomes overloaded, there often must be a
reduction of the number of both realm-routed and host-routed
requests, in order to have the desired reduction of the overall
offered-load. We refer to this reductions as "Overload Abatement".
There are two ways to perform overload abatement. The first is to
reject some number of Diameter requests, also known as "throttling".
When a TC throttles traffic, it rejects or defers certain client
application requests, as appropriate for the client application.
When an agent or TS throttles traffic, it rejects Diameter requests
with an appropriate error code, so that the TC can behave correctly
at the client application layer.
The second way to abate overload is to move some number of requests
from an overloaded node to one or more eligible nodes that are less
overloaded. For the purposes of this draft, we refer to this
abatement method as "Diversion".
Either method, separately or in combination, continue over the
duration of the overload condition.
There are a few architectural principles that should be considered
when building Diameter networks to be resilient to overload, or when
deploying DOIC into existing Diameter network.
All things being equal, diversion is better than throttling.
Diversion potentially allows more requests to succeed, which will
almost always have less negative impact on the client application.
However, there are situations where diversion is not possible. For
example, diversion is usually not possible for host-routed requests
(see Section 3). Diversion may not be helpful if all potential
destinations are overloaded. If proprietary load balancing
mechanisms are in use, diversion for DOIC purposes may be redundant
with those mechanisms.
If diversion is performed, the diversion should occur as close as
possible to the TS, but not at the TS itself (since this would defeat
Donovan & Campbell Expires January 4, 2015 [Page 6]
Internet-Draft Abbreviated Title July 2014
the point of overload abatement.) Diversion should optimally occur
at an immediate peer to the TS; that is, a node that shares a direct
transport connection with the TS. A directly connected peer will
have the most knowledge of alternative destinations and their current
loads. If nodes further from the TS attempt to diversion, topology
knowledge and overload state knowledge must be pushed further down
the chain. Even then, a node usually cannot control how a realm-
routed request might be routed upstream of the immediate peer.
Throttling should occur at, or as close as possible, to the TC. The
TC has the best knowledge of the client application and its current
state. The TC can choose to reject requests that have the lease
impact on the client application, or provide the most effect for
traffic reduction over time. Furthermore, throttling at the TC
completely avoids Diameter overhead for rejected requests. Each
additional hop traversed by requests that will eventually be rejected
increases the impact of those requests.
5. DOIC Use Cases
This section outlines example use cases involving agents. Each of
these use cases is evaluated with the goal of identifying any
required changes to [I-D.ietf-dime-ovli] needed to support the use
case.
The following is the list of use cases considered. This is not an
exhaustive list of DOIC use cases but is rather a list of use cases
identified by the authors as being impacted by the presence of agents
in the deployment.
o Simple Agent - Overload capability announcement and overload
report handling in a deployment with a single agent as illustrated
in Figure 1. In this case all Diameter nodes are assumed to
support DOIC. This use case is discussed in Section 5.1.
This use case includes four sub-cases:
1. OC Capability Announcement where the TC and Agent support the
same OC capabilities.
2. Host overload report handling for host-routed requests. This
case illustrates throttling of host-routed requests at the
transaction client and throttling of realm-routed reqeusts at
the agent.
3. Host overload report handling realm-routed requests when there
is a second TS to which requests can be diverted when one of
the servers is in an overload state.
Donovan & Campbell Expires January 4, 2015 [Page 7]
Internet-Draft Abbreviated Title July 2014
4. Multiple host overload reports resulting in a realm overload
report.
o Mixed Capabilities - Overload capability announcement and overload
report handling in deployments where agents support capabilities
that are not included in the set of capabilities advertised by
reacting nodes. This use case is discussed in Section 5.2.
This use case illustrates one scenario where an agent consumes an
overload report and replaces it with a new overload report of a
different type.
o Non-supporting DOIC nodes - Agent behavior in the face of Diameter
nodes that do not support the DOIC solution. These use cases are
addressed in Section 5.3. There are four sub-use cases that are
addressed:
* Non-supporting TC. In this case a DOIC supporting agent
handles overload abatement on behalf of the non-supporting TC.
An agent or a reporting node can detect if there is a reacting
node in the path of a request by the presence of the OC-
Supported-Features AVP in the request message. This use case
is discussed in Section 5.3.1.
* Non-supporting TS. In this case a DOIC supporting agent may
act as the reporting node on behalf of the TS. In this case a
DOIC supporting agent can detect if there is a reporting node
in the path of the transaction by the presence of the OC-
Supported-Features AVP in the answer message for the
transaction. This use case is discussed in Section 5.3.2.
* Non-supporting agent between the TC and a supporting agent.
* Non-supporting agent between a supporting agent and the TS. In
this case, the agent that supports DOIC cannot reliably divert
requests as a result of a host report. This use case is
discussed in Section 5.3.3.
This use case illustrates when this deployment scenario is not
recommended.
o Inter domain or untrusted node authorization.
This use case illustrates one case where a node needs to know if
an OC-S-F AVP came from a supported peer, or was forwarded by a
non-supporting peer. This use case is discussed in Section 5.4.
Donovan & Campbell Expires January 4, 2015 [Page 8]
Internet-Draft Abbreviated Title July 2014
5.1. Simple Agent
This section addresses overload capability announcement and overload
report handling in a deployment with a single agent as illustrated in
Figure 1.
This use case assumes that all nodes support DOIC and that all nodes
support the same set of overload features.
This use case includes four sub-cases:
1. OC Capability Announcement where the TC and Agent support the
same OC capabilities.
2. Host overload report handling for host-routed requests. This
case illustrates throttling of host-routed requests at the
transaction client and throttling of realm-routed reqeusts at the
agent.
3. Host overload report handling realm-routed requests when there is
a second TS to which requests can be diverted when one of the
servers is in an overload state.
4. Multiple host overload reports resulting in a realm overload
report.
5.1.1. Capability Announcement
This section explores capability announcement for the simple agent
use case.
This use case assumes that the capabilities supported by the TC and
those supported by the agent are the same. (A scenario with
differing capabilities is supported in discussed in Section 5.2.)
Figure 3 shows the message flow for this use case.
The nomenclature OC-S-F:x is short for OC-Supported-Feature with the
":x" indicating the Diameter node that inserted the AVP into the
message.
Donovan & Campbell Expires January 4, 2015 [Page 9]
Internet-Draft Abbreviated Title July 2014
+--+ +-+ +--+
|TC| |A| |TS|
+--+ +-+ +--+
| | |
1> |-- xxR OC-S-F:C---------->| |
| | |
2> | |-- xxR OC-S-F:C---------->|
| | |
3> | |<---------- xxA OC-S-F:S--|
| | |
4> |<-------- xxA OC-S-F:S----| |
| | |
Figure 3
1. The transaction client (TC) originates a request. The TC
supports DOIC and, as such, includes the OC-Supported-Features
AVP in all requests. The OC-S-F AVP contains the clients
capabilities.
2. The agent inspects the OC-S-F AVP and determines that the agent
supports the same set of OC features. The agent relays the
request unchanged to the server.
Note: It is an open question whether the agent needs to
include an indication that it also supports DOIC or if
attribution of the OC-S-F is needed. One could also question
whether the agent forwarded OC-S-F:C unchanged, rather than
consuming the OC-S-F, and inserted another identical one.
This is likely a purely philosophical difference, but might
impact the inter-domain authorization use case (Section 5.4).
3. The transaction server (TS), acting as the reporting node,
inspects the OC-S-F AVP in the request and generates an OC-S-F to
be included in the answer message. This is done according to the
behavior defined in the DOIC specification [I-D.ietf-dime-ovli].
4. The agent relays the answer message unchanged.
The presence of the OC-S-F header in the answer message indicates
to the TC that it needs to be prepared for overload reports in
subsequent requests of the same type.
With the loss algorithm defined in [I-D.ietf-dime-ovli] there
is no explicit action required of the TC. Stateful abatement
algorithms will likely require action to be taken by the TC to
be able to handle subsequent overload reports.
Donovan & Campbell Expires January 4, 2015 [Page 10]
Internet-Draft Abbreviated Title July 2014
5.1.2. Overload Report Handling
This section addresses overload report handling in a deployment with
a single agent as illustrated in Figure 1.
The following three scenarios are illustrated:
o Figure 4 shows a message flow illustrating handling of host
reports for host-routed requests and realm-routed requests when
there is a single TS.
o Figure 5 shows the handling of realm-routed requests when there is
a second TS to which requests can be diverted when one of the
servers is in an overload state.
o Figure 6 illustrates the agents behavior when it has received a
host report from all servers. In this case the agent generates a
Realm report. This is only possible when the agent knows the
overload state of all TSs for the given realm and application.
In these message flows, "xxR" indicates a Diameter request, and "xxA"
indicates an answer. "HR" under a request indicates that the request
is host-routed. "RR" indicates the request is realm-routed. If
neither is present for a request, then it can be either host or realm
routed. "OLR:Host" indicates an overload report of type Host.
"OLR:Realm" indicates an overload report of type Realm.
+-+ +-+ +-+
|C| |A| |S|
+-+ +-+ +-+
| | |
1> |-- xxR OC-S-F:C----->| |
| | |
2> | |-- xxR OC-S-F:C----->|
| | |
3> | |<----- xxA OC-S-F:S--|
| | OLR:Host |
4> |<--- xxA OC-S-F:S----| |
| OLR:Host | |
| | |
5> |-- xxR OC-S-F:C---X | |
| HR | |
| | |
6> |-- xxR OC-S-F:C----->| |
| HR | |
| | |
7> | |-- xxR OC-S-F:C----->|
Donovan & Campbell Expires January 4, 2015 [Page 11]
Internet-Draft Abbreviated Title July 2014
| | |
| | |
8> | |<----- xxA OC-S-F:S--|
| | OLR:Host |
| | |
9> |<--- xxA OC-S-F:S----| |
| OLR:Host | |
| | |
10>|-- xxR OC-S-F:C----->| |
| RR | |
11>| |-- xxR OC-S-F:C---X |
| | RR |
| | |
12>|<--- xxA Throttled---| |
| | |
| | |
13>|-- xxR OC-S-F:C----->| |
| RR | |
| | |
14>| |-- xxR OC-S-F:C----->|
| | RR |
| | |
15>| |<----- xxA OC-S-F:S--|
| | OLR:Host |
| | |
16>|<--- xxA OC-S-F:S----| |
| OLR:Host | |
| | |
Figure 4
1. Same as in Figure 3.
2. Same as in Figure 3.
3. S, acting as a reporting node, has determined that it needs to
request a reduction in traffic. S includes the OC-S-F AVP per
[I-D.ietf-dime-ovli], and selects the loss algorithm for the
included report. S also includes the OC-OLR AVP to indicate the
requested reduction in traffic.
4. A saves the overload state of S based on the OC-OLR AVP. A will
use this overload state for handling of future realm routed
requests.
This behavior is not yet specified in the DOIC specification.
It is based on the principle that only nodes with a direct
Donovan & Campbell Expires January 4, 2015 [Page 12]
Internet-Draft Abbreviated Title July 2014
transport connection to an overloaded host should throttle
those requests as other nodes earlier in the requests path do
not have the topology knowledge to know if diversion of the
request would have been successful.
A relays the answer message without change to OC-S-F or OC-OLR.
Upon receipt of the answer, C saves overload state based on the
overload report.
5. C invokes the "loss" algorithm on host-routed requests. This
step illustrates a host-routed request that is rejected locally
by C due to throttling. C gives application appropriate
feedback to the client application.
6. This step represents a Host-routed requests that survived
abatement. Such requests are handled the same as if there where
no overload report for the host to which the request is routed.
7. A relays the request based on the included Destination-Host AVP.
8. A generates an answer which includes the OC-S-F AVP and OC-OLR
AVP.
9. If the OC-OLR is new, then A updates the overload state
associated with the report. A relays the answer without change
to OC-S-F or OC-OLR.
C determines if the OC-OLR is new. If so, C updates its locally
stored overload state for S.
10. C originates a realm-routed request. C does not apply abatement
to this request since it does not match any locally stored
overload state (in this scenario, a realm overload report has
not yet been sent.)
11. A determines that there is overload state associated with this
request (the host report received from S). A uses this overload
state as input to routing decisions for the request. In this
case it is assumed that there is no alternative route to divert
request toward and, as such, A applies throttling, and rejects
the request.
12. A generates an error response indicating that the request was
throttled and should not be retried.
13. C originates another realm-routed request.
Donovan & Campbell Expires January 4, 2015 [Page 13]
Internet-Draft Abbreviated Title July 2014
14. A determines that there is overload state associated with this
request (the host report received from S). A uses this overload
state as input to routing decisions for the request. This
request survives abatement and is routed to S.
15. S generates an answer message.
16. A relays the answer.
The following shows the case of host overload report handling of
realm-routed requests when there is a second TS to which requests can
be diverted when one of the servers is in an overload state.
+-+ +-+ +--+ +--+
|C| |A| |S1| |S2|
+-+ +-+ +--+ +--+
| | | |
1> |-- xxR OC-S-F:C----->| | |
| | | |
2> | |-- xxR OC-S-F:C----->| |
| | | |
3> | |<----- xxA OC-S-F:S--| |
| | OLR:Host | |
4> |<--- xxA OC-S-F:S----| | |
| OLR:Host | | |
| | | |
5> |-- xxR OC-S-F:C----->| | |
| RR | | |
6> | |-- xxR OC-S-F:C--------------------------->|
| | RR | |
| | | |
7> | |<--------------------------- xxA OC-S-F:S--|
| | | |
8> |<--- xxA OC-S-F:S----| | |
| | | |
Figure 5
1. Same as in Figure 3.
2. Same as in Figure 3.
3. Same as in Figure 4.
4. Same as in Figure 4.
Donovan & Campbell Expires January 4, 2015 [Page 14]
Internet-Draft Abbreviated Title July 2014
5. C originates a realm-routed request. C does not apply overload
abatement to this request as it does not match any locally stored
overload state (the assumption for this scenario is that a realm
overload report has not yet been sent.)
6. A determines that there is overload state associated with this
request (the host report received from S1). A uses this overload
state as input to routing decisions for the request. In this
case, it is assumed that the request would have been normally
routed to S1 but is instead routed to S2 as a result of the
overload report.
7. S2 generates an answer message.
8. A relays the answer.
The following illustrates the agents behavior when it has received a
host report from all servers. In this case the agent generates a
Realm report. This is only possible when the agent knows the
overload state of all TSs for the given realm and application.
Donovan & Campbell Expires January 4, 2015 [Page 15]
Internet-Draft Abbreviated Title July 2014
+-+ +-+ +--+ +--+
|C| |A| |S1| |S2|
+-+ +-+ +--+ +--+
| | | |
1> |-- xxR OC-S-F:C----->| | |
| | | |
2> | |-- xxR OC-S-F:C----->| |
| | | |
| | | |
3> | |<----- xxA OC-S-F:S--| |
| | OLR:Host | |
4> |<--- xxA OC-S-F:S----| | |
| OLR:Host | | |
| | | |
5> |-- xxR OC-S-F:C----->| | |
| RR | | |
| | | |
6> | |-- xxR OC-S-F:C--------------------------->|
| | | |
7> | |<--------------------------- xxA OC-S-F:S--|
| | | OLR:Host |
8> |<--- xxA OC-S-F:S----| | |
| OLR:Host | | |
| OLR:Realm | | |
| | | |
Figure 6
1. Same as in Figure 4.
2. Same as in Figure 4.
3. Same as in Figure 4.
4. Same as in Figure 4.
5. Same as in Figure 4.
6. Same as in Figure 4.
7. Same as in Figure 4, with the addition that S2 also includes an
overload report in the answer message.
8. A determines that the available capacity of all servers in the
realm has been reduced to the degree that it must generate a
realm report. A adds this report to the answer message, in
Donovan & Campbell Expires January 4, 2015 [Page 16]
Internet-Draft Abbreviated Title July 2014
addition to the existing host report from S2 . C saves overload
state associated with the new Realm overload report. For the
duration of the realm report the client performs the requested
abatement on realm-routed requests.
5.1.3. DOIC Specification Impacts
The following is a list of behavior that needs to be reflected in the
DOIC specification.
o There can be multiple abating nodes for a single overload report.
In this use case, A TC handles abatement of host-routed requests.
An agent with a direct transport connection to an overloaded node
handles abatement of realm-routed requests that would normally be
routed to that node.
o
Note: It is also possible that an agent will handle abatement
of host-routed requests, as illustrated in Section 5.3.1.
o Syntax for the OC-OLR AVP must support multiple OC-OLR AVPs in
answer messages.
o The working group must define a Diameter-Throttled error response
that indicates that the request was rejected due to overload and
that the request should not be retried.
5.2. Mixed Capabilities
This use case explores the impact of having a different set of DOIC
capabilities supported by the TC and one or more agents in the path
of the request.
5.2.1. Capability Announcement
Figure 7 illustrates the case. In this figure, "OC-S-F:C" indicates
it carries the set of capabilities supported by C. "OC-S-FC:AC"
indicates the set of capabilities that A declares to S. "OC-S-FC:S"
indicates S's response to the AC set of capabilities. OC-S-FC:AS
indicates A's modification to the capabilities selected by S. This
is needed in the case where S's capabilities are not compatible with
C's.
"OC-S-FC:AC" could indicate the merged capabilities of C and A,
based on local policies at A. For example, A could indicate a
union or intersection of the its local capabilities with those of
C. Alternately, it A could declare an entirely different set of
Donovan & Campbell Expires January 4, 2015 [Page 17]
Internet-Draft Abbreviated Title July 2014
capabilities towards S. If the capabilites selected between A and
S differ from those selected between C and A, A becomes
responsible for mapping any overload information it receives from
S to fit the capabilities it negotiated with C.
+-+ +-+ +-+
|C| |A| |S|
+-+ +-+ +-+
| | |
1> |-- xxR OC-S-F:C---------->| |
| | |
2> | |-- xxR OC-S-F:AC--------->|
| | |
3> | |<---------- xxA OC-S-F:S--|
| | |
4> |<-------- xxA OC-S-F:AS---| |
| | |
Figure 7
1. C originates a request including OC-S-F:C, indicating the DOIC
features supported by C.
2. A inspects OC-S-F:C and determines that A supports features not
included. A relays the request, replacing OC-S-F:C APV with an
OC-S-F:AC.
3. S responds to the set of advertised features with the OC-S-F:S
AVP. There is no change in S's behavior beyond what is specified
in [I-D.ietf-dime-ovli] and any other extensions documenting the
features in the received OC-S-F AVP.
4. A inspects OC-S-F:S. If necessary A replaces OC-S-F:S with OC-
S-F:AS'.
Section 5.2.2 illustrates one example were A needs to OC-S-F:S
with OC-S-F:AS'.
5.2.2. Mixed Abatement Algorithms
Figure 8 illustrates one specific type of mixed capabilities. In
this case, C only supports the loss abatement algorithm, A supports
both loss and rate and S selects rate.
Donovan & Campbell Expires January 4, 2015 [Page 18]
Internet-Draft Abbreviated Title July 2014
+-+ +-+ +-+
|C| |A| |S|
+-+ +-+ +-+
| | |
1> |-- xxR OC-S-F:C---------->| |
| loss | |
| | |
2> | |-- xxR OC-S-F:AC--------->|
| | loss, rate |
| | |
3> | |<---------- xxA OC-S-F:S--|
| | rate |
| | OC-OLR:S |
| | rate |
| | |
4> |<-------- xxA OC-S-F:AS---| |
| loss | |
| OC-OLR:A | |
| loss | |
Figure 8
1. C originates a request with OC-S-F:C, indicating support for only
the "loss" algorithm.
2. A inspects OC-S-F:C and determines it needs to advertise support
for additional capabilities. A removes OC-S-F:C and inserts OC-
S-F:AC, indicating support for both the "loss" and "rate"
algorithms. A stores the state from OC-S-F:C to be referenced
when it receives the associated answer.
3. S responds with OC-S-F:S, indicating that the rate algorithm will
be used for overload reports, and OC-OLR:rate, indicating an
overload condition with a specific requested rate-limit.
4. A recalls that C did not indicate support the rate algorithm and
replaces OC-S-F:S with OC-S-F:AS, which indicates that the loss
abatement algorithm will be used for overload reports sent to C.
A must enforce the rate limit locally, so it removes OC-OLR:rate.
If C's offered load exceeds what A can handle without violating
the requested rate-limit, it inserts OC-OLR:A, requesting a
traffic reduction using the "loss" algorithm.
This flow assumes that A is able to handle rate-based overload
reports, even though the TC cannot. How this is done in practice is
implementation specific. In this example, A applies local rate-
Donovan & Campbell Expires January 4, 2015 [Page 19]
Internet-Draft Abbreviated Title July 2014
limiting, but send loss-based OLRs to C if A cannot handle C's
offered load without violating the rate-limit.
If A chose to apply local throttling to enforce the rate limit,
instead of sending load-based OLRs back to the TC, the scenario would
be closer to that for a TC that did not support DOIC (Section 5.3.1).
5.2.3. DOIC Specification Impacts
An agent must have the ability to replace the OC-S-F AVP in request
messages.
An agent must have the ability to remove or replace the OC-S-F AVP in
answer messages.
An agent must have the ability to remove or replace the OC-OLR AVP in
answer messages.
5.3. Non-Supporting Nodes
This section outlines the impact of agent based scenarios where there
is a node that does not support DOIC in the path of a request. There
are five variations of this use case:
1. Non-supporting TC.
2. Non-supporting TS.
3. Non-supporting agent between the TC and a DOIC agent.
4. Non-supporting agent between a DOIC agent and the TS.
5. Non-supporting agent between DOIC agents.
5.3.1. Non-Supporting Transaction Client
This section outlines the handling of non-supporting transaction
client.
This use case is illustrated in Figure 9. In this case assume that
C1 supports DOIC and C2 does not.
Donovan & Campbell Expires January 4, 2015 [Page 20]
Internet-Draft Abbreviated Title July 2014
+--+ +--+
|C1|----- -----|S1|
+--+ \+--+/ +--+
|A1|
**** /+--+\ +--+
*C2*----- -----|S2|
**** +--+
Figure 9
Figure 10 illustrates capability announcement for both the supporting
and non-supporting client. This scenario assumes that the
capabilities supported by C1 and A are the same.
There is no change from the simple agent use case for transactions
originated by C1.
For transactions originated by the non-supporting reacting node C2,
A1 determines that C2 does not support DOIC by the absence of an OC-
S-F AVP and inserts an OC-S-F AVP indicating the OC features
supported by A1.
+--+ **** +-+ +-+
|C1| *C2* |A| |S|
+--+ **** +-+ +-+
| | | |
1> |-- xxR OC-S-F:C--------------------------->|-- xxR OC-S-F:C----->|
| | | |
2> |<---------------------------xxA OC-S-F:S---|<-----xxA OC-S-F:S---|
| | | |
3> | |-- xxR ------------->| |
| | | |
4> | | |-- xxR OC-S-F:A----->|
| | | |
5> | | |<-----xxA OC-S-F:S---|
| | | |
6> | |<------------- xxA---| |
| | | |
Figure 10
Donovan & Campbell Expires January 4, 2015 [Page 21]
Internet-Draft Abbreviated Title July 2014
1. C1 supports DOIC and, as such, includes the OC-S-F AVP in all
request messages sent. A relays the request to S based on normal
request handling.
2. S supports DOIC and, as such, includes the OC-S-F AVP in all
response messages sent. A relays the answer to C1 based on
normal answer handling.
3. C2 does not support DOIC and, as such, does not insert the OC-S-F
AVP into request messages.
4. A recognizes that C2 does not support DOIC, since the request
does not contain the OC-S-F AVP. A inserts an OC-S-F AVP that
reflects the OC capabilities of A.
5. S does normal DOIC capability announcement handling, inserting
the OC-S-F AVP in the answer.
6. A removes the OC-S-F AVP from the answer given that C2 does not
support DOIC.
Figure 11 illustrates overload report handling for this scenario.
There is no change in overload handling for requests originated by
C1. C1 is responsible for abatement of host routed requests and A is
responsible for abatement of realm-routed requests.
For requests originated by C2, it becomes the responsibility of A to
handle overload abatement requested by S. In this case A is
responsible for abatement of both host-routed and realm-routed
requests, as A has a direct transport connection to S. The way an
agent handles this in practice is implementation specific. Depending
on the algorithm, an agent might be able to treat requests from all
non-supporting clients as a pool. More complex implementations might
maintain (and certain algorithms might require) the agent to maintain
an overload control state machine for each known non-supporting
client.
If there were an upstream DOIC agent between A and S then A would
no longer have a direct transport connection and would not be able
to do abatement of realm-routed requests. It would become the
responsibility of the upstream DOIC agent with the transport
connection to handle abatement of realm-routed requests.
Donovan & Campbell Expires January 4, 2015 [Page 22]
Internet-Draft Abbreviated Title July 2014
+--+ **** +-+ +-+
|C1| *C2* |A| |S|
+--+ **** +-+ +-+
| | | |
1> |-- xxR OC-S-F:C--------------------------->|-- xxR OC-S-F:C----->|
| | | |
2> |<---------------------------xxA OC-S-F:S---|<-----xxA OC-S-F:S---|
| | OLR | OLR |
| | | |
|HR abatement handled by C1 |RR abatement handled by A
| | | |
3> | |-- xxR ------------->|-- xxR OC-S-F:A----->|
| | | |
4> | |<------------- xxA---|<-----xxA OC-S-F:S---|
| | | OLR |
| | | |
| | | HR and RR abatement |
| | | handled by A |
| | | |
5> | |-- xxR ------------->|-- xxR OC-S-F:A----->|
| | | |
6> | |<------------- xxA---|<-----xxA OC-S-F:S---|
| | | OLR |
| | | |
7> | |-- xxR ------------->| |
| | | |
8> | |<------------- xxA---| |
| | Diameter-Throttled |
| | | |
Figure 11
1. Request from C1, a supporting TC.
2. Response indicating S is requesting a reduction in traffic sent
due to an overload condition. C1 becomes responsible for
abatement of host-routed requests and A becomes responsible for
abatement of realm-routed requests.
3. Request from C2, a non-supporting TC. A inserts an OC-S-F AVP.
4. Response indicating that S is overloaded. A stores overload
state based on the content of the overload report. A also
removed the OC-S-F and OC-OLR AVPs from the answer message. A
becomes responsible for abatement handling of all requests
originated by C2.
Donovan & Campbell Expires January 4, 2015 [Page 23]
Internet-Draft Abbreviated Title July 2014
5. Request from non-supporting node originated after the overload
report is received. This request survives abatement by A.
6. Response for message that survived abatement by A.
7. Request from non-supporting node originated after the overload
report is received. This request does not survive abatement and
is rejected by A.
8. Response for request that did not survive abatement by A, with an
appropriate error code to indicate the request was throttled and
should not be retried.
5.3.2. Non-supporting Transaction Server
This section shows the case where there is a mix of transaction
servers that support DOIC and those that do not support DOIC.
In this case, it becomes the responsibility of a DOIC agent to become
the reporting node for the non-supporting transaction server. The
method the agent uses to determine if abatement of traffic is
required for the non-supporting node is implementation specific.
(For example, an agent may infer that a TS is overloaded by observing
Diameter or transport errors, or it may have some proprietary, out-
of-band mechanism for learning about TS overload.)
+--+ +--+
|C1|----- -----|S1|
+--+ \+--+/ +--+
|A1|
+--+ /+--+\ ****
|C2|----- -----*S2*
+--+ ****
Figure 12
Donovan & Campbell Expires January 4, 2015 [Page 24]
Internet-Draft Abbreviated Title July 2014
+-+ --- +--+ ****
|C| |A| |S1| *S2*
+-+ --- +--+ ****
| | | |
1> |-- xxR OC-S-F:C----->|-- xxR OC-S-F:C----->| |
| | | |
2> |<-----xxA OC-S-F:S---|<-----xxA OC-S-F:S---| |
| | OLR | |
| | | |
3> |-- xxR OC-S-F:C----->| | |
| | | |
4> | |-- xxR OC-S-F:C--------------------------->|
| | | |
5> | |<-----------------------------------xxA ---|
| | | |
6> |<-----xxA OC-S-F:A---| | |
| OLR | | |
| | | |
Figure 13
1. Normal DOIC processing resulting in the request being routed to
S1.
2. Normal DOIC processing.
3. Normal DOIC processing
4. Normal DOIC processing resulting in the request being routed to
S2. The agent doesn't know yet that S2 doesn't support DOIC.
5. S2 does not support DOIC and, as a result, does not insert the
OC-S-F AVP in the answer message.
6. A takes on responsibility for becoming the reporting node for S2,
and inserts an OC-S-F AVP. In this case A has determined that S2
is in an overload condition and inserts an OC-OLR AVP in the
answer message.
C handles the OC-OLR overload report in the same way it handles
all OC-OLR reports.
Donovan & Campbell Expires January 4, 2015 [Page 25]
Internet-Draft Abbreviated Title July 2014
5.3.3. Non-Supporting Agent
There are two sub-cases for non-supporting agents.
Figure 14 illustrates the first non-supporting agent case, where the
first agent in a chain of agents does not support DOIC.
In this case, A2 picks up the responsibility of handling overload
abatement in the case that either C1 or C2 do not support DOIC.
A2 is also responsible for abating realm-routed requests for host
reports received from S1 or S2.
+--+ +--+
|C1|----- -----|S1|
+--+ \**** +--+/ +--+
*A1*------|A2|
+--+ /**** +--+\ +--+
|C2|----- -----|S2|
+--+ +--+
Figure 14
Figure 15 illustrates the second non-supporting agent case, where the
last agent in the chain does not support DOIC.
In this scenario, there is no DOIC node that has a direct transport
connection with S1 and S2. As a result, there is no DOIC node that
can correctly handle abatement of realm-routed requests resulting.
In the example, A1 cannot perform diversion, because it cannot
control whether any given request goes to S1 or S2. And it cannot
correctly determine how much to throttle unless it has advance
knowledge of the topology behind A2, which is currently out of scope
for DOIC.
As a result, this deployment scenario should be avoided.
Donovan & Campbell Expires January 4, 2015 [Page 26]
Internet-Draft Abbreviated Title July 2014
+--+ +--+
|C1|----- -----|S1|
+--+ \+--+ ****/ +--+
|A1|------*A2*
+--+ /+--+ ****\ +--+
|C2|----- -----|S2|
+--+ +--+
Figure 15
5.3.4. DOIC Specification Impacts
o Agents must be allowed to insert OC-S-F AVPs into request and
answer messages.
o Agents must be allowed to remove OC-S-F AVPs from request and
answer messages.
o Agents must be able to insert OC-OLR AVPs of type "Host Report"
into answer messages. (The ability to insert OC-ORL AVPs of type
"Realm Report" is already assumed.)
o Agents must be allowed to remove OC-OLR AVPs from answer messages.
o Agents must be allowed to abate host-routed requests.
5.4. Inter Domain Authentication
Figure 16 shows three administrative domains, Dom 1, Dom 2, and Dom
3. Dom 3 does not wish information about the condition of it's
network to be shared with Dom 1, but is willing to share overload
information with Dom 2 in order to optimize inter-domain traffic.
Donovan & Campbell Expires January 4, 2015 [Page 27]
Internet-Draft Abbreviated Title July 2014
+--------------------+ +-----------+ +--------------------+
| Dom 1 | | Dom 2 | | Dom 3 |
| +--+ | | | | +--+ |
| |C1|----- | | +---+ | | -----|S1| |
| +--+ \+--+--------|A2A|---------+--+/ +--+ |
| |A1| | | +---+ | | |A3| |
| +--+ /| | | | ***** | | | |\ +--+ |
| |C2|----- +--+--------*A2B*---------+--+ -----|S2| |
| +--+ | | ***** | | +--+ |
| | | | | |
+--------------------+ +-----------+ +--------------------+
Figure 16
Dom 2 in in the process of incremental deployment of DOIC. Agent A2A
supports DOIC, but A2B does not. A1 and A3 are configured so that
Diameter requests between them may traverse either A2A or A2B.
Figure 17 shows a Diameter message exchange for each potential route.
The originating TC and selected TS are not relevant for the example,
so they are omitted from the diagram.
+--+ +---+ ***** +--+
|A1| |A2A| *A2B* |A3|
+--+ +---+ ***** +--+
| | | |
1> |-- xxR OC-S-F:A1---->|------xxR OC-S-F:A1----------------------->|
| | | |
2> |<---------------xxA--|<---------------------------xxA OC-S-F:A3--|
| | | |
3> |---xxR OC-S-F:A1-------------------------->|-xxR OC-S-F:A1------>|
| | | |
4> |<---------------------------xxA OC-S-F:A3--|<-----xxA OC-S-F:A3--|
| | | |
Figure 17
1. A1 sends a request that contains OC-S-F:A1 to A2A. A2A supports
the same DOIC capabilities, so it forwards the request with OC-
S-F:A1 unchanged.
2. A3 receives the answer from the TC. It forwards the response to
A2A, including it's capabilities in OC-S-F:A3. A2A is configured
to enforce Dom 3's wishes that it's overload information not be
Donovan & Campbell Expires January 4, 2015 [Page 28]
Internet-Draft Abbreviated Title July 2014
sent to Dom 1, so it strips the AVP before forwarding the
response back to A1.
3. A1 again sends a request including OC-S-F:A1, but this one
traverses A2B. Since A2B does not support DOIC at all, it treats
the AVP as an unknown AVP and forwards it unchanged to A3. Note
that the OC-S-F AVP observed by A3 is identical to that from step
1.
4. A3 receives the answer from the TC. It mistakenly believes A2B
supports DOIC, and therefore forwards the response with it's DOIC
capabilities in OC-S-F:A3. Since A2B does not recognize the AVP,
it forwards it back to A1 without change.
This is a somewhat contrived example, but it shows a case where Dom 3
leaked information to an untrusted domain, because it could not tell
the difference between an OC-S-F AVP received from a trusted peer
that supports DOIC, or one forwarded from downstream by a non-
supporting peer.
5.4.1. DOIC Specification Impacts
A DOIC supporting node must be able to distinguish between an OC-S-F
AVP sent by a peer that supports DOIC, and one sent by a non-adjacent
node and forwarded by a non-supporting peer. That is not possible in
DOIC at the time of this writing.
The ability to limit overload information to nodes that are
authorized to receive it may require the ability to fully
attribute a given OC-S-F AVP to the node that included the AVP.
Whether this is required, and how an AVP that is forwarded by a
DOIC supporting relay is for further study.
6. Recommendations
This section summarizes the recommendations made in previous
sections. These recommendations are presented without normative
language, but the authors expect that some of the recommendations
will require new normative language in [I-D.ietf-dime-ovli]. Others
may result in non-normative guidance.
As noted earlier, nothing in this draft should imply that relays are
required to deploy DOIC. The majority of these recommendations
should be interpreted to allow certain relay behaviors, but not to
require them, and to offer architectural guidance on how an operator
can best utilize relays in a DOIC deployment if they choose to do so.
Donovan & Campbell Expires January 4, 2015 [Page 29]
Internet-Draft Abbreviated Title July 2014
6.1. General Recommendations
This section describes recommendations that apply to the DOIC
mechanism in general:
The working group should define a "Diameter-Throttled" error code,
that indicates a request has failed due to overload, and should not
be retried.[Section 5.1.3] TCs need to recognize the Diameter-
Throttled error code, and interpret it as a final failure for the
transaction.
The OC-OLR AVP syntax must allow multiple occurrences in the same
Diameter answer message. [Section 5.1.3]
6.2. Agent Behavior Recommendations
The discussion in Section 4, Section 3, and Section 5 suggest certain
recommendations for DOIC supporting Diameter relay behavior. The
authors recommend that language be added to [I-D.ietf-dime-ovli] to
the general effect of the following sections:
6.2.1. Capabilites Exchange Behaviors
This section describes recommended Agent behaviors with respect to
the OC-Supported-Features AVP.
A DOIC supporting agent may act as a reporting-node, a reacting-node,
or both.
An agent may act as a reporting node on behalf of a non-supporting
TS, an abating node on behalf of a non-supporting TC.[Section 5.3]
An agent that acts as a reacting node must include an OC-Supported-
Features in each Diameter request that it forwards in that role. If
the inbound request included an OC-Supported-Features AVP, the relay
may copy its content to the one in the outbound request, or may
replace the contents if it wishes to indicate different DOIC
capabilities to upstream nodes. If an inbound request does not
contain an OC-Supported-Features AVP, the agent must insert one into
the outbound request, indicating the DOIC capabilities of the agent
itself.
An agent that acts as a reporting node must include an OC-Supported-
Features AVP in each Diameter answer that it forwards in that role.
If the agent modified the OC-Supported-Features AVP in the associated
request, it must perform a reciprocal modification of the OC-
Supported-Features AVP in the response.
Donovan & Campbell Expires January 4, 2015 [Page 30]
Internet-Draft Abbreviated Title July 2014
An agent that does not support the DOIC mechanism is likely to
forward an OC-Supported-Features AVP without modification. A DOIC
node must be able to tell between an OC-Supported-Features AVP that
was forwarded by such a non-supporting agent, and one inserted or
copied by a DOIC-supporting node.[Section 5.4]
6.2.2. Overload Report Behaviors
When a DOIC-supporting relay inserts an OC-Supported-Features AVP (or
passes through one received from downstream), it becomes responsible
for ensuring that any OLRs it receives from upstream nodes are
honored. It can honor an OLR by locally performing overload
abatement, delegating abatement to downstream nodes, or a combination
of both.
If a relay can honor the OLR by locally diverting traffic, it should
do so before resorting to throttling. For example, if a relay
receives a realm report from its upstream peer, and has other less-
overloaded peers that are valid for the realm and application, it
diverts traffic to the less overloaded peers as needed. The relay
should apply any knowledge it has of the peers' relative load and
capacity in determining how to divert traffic. Note that only a
relay that has a direct peer relationship with the servers in
question can effectively perform diversion, since a Diameter node
cannot directly control how upstream relays will route
requests.[Section 5.1]
When an overload condition requires throttling of traffic, an agent
should delegate that throttling to downstream nodes if at all
possible. Depending on local policy and the nature of the overload
condition, this means the agent either originates a new OLR to send
downstream, or forwards an OLR received from upstream. For example,
if a relay receives a host report (which usually requires traffic
throttling), the relay typically forwards that report downstream.
The relay may modify the report based on local policy.
If an agent needs to perform local throttling, it must explicitly
reject each throttled request with a "Diameter-Throttled" error
code.[Section 5.1]
There may be circumstances where an agent must perform local
throttling. An obvious example is when downstream nodes do not
support DOIC, that is, requests from downstream nodes do not
contain OC-Supported-Features AVPs. Mismatched upstream and
downstream capabilities may require local throttling. For
example, if a relay uses a rate-limiting abatement algorithm
upstream, but downstream devices do not support rate-limiting, it
may have to locally throttle traffic to meet its upstream
Donovan & Campbell Expires January 4, 2015 [Page 31]
Internet-Draft Abbreviated Title July 2014
abatement commitment. It might still invoke the "loss" algorithm
downstream in order to reduce the amount of traffic that must be
locally throttled.[Section 5.2, Section 5.3]
A relay should apply all the information at hand to determine
upstream overload. For example, if a relay receives a host-report
from a directly attached TS, that relay can reasonable infer that the
overload condition applies to all traffic for the realm, and perform
local abatement by diverting realm-routed traffic to other servers.
If there is insufficient capacity to do so, then it can generate
realm-reports downstream. A relay might also have knowledge of the
overload or load state of other nodes through some non-DOIC
mechanism.[Section 5.1]
Finally, a relay should not generate or forward OLRs in a way likely
to cause redundant abatement. For example, if a relay locally
throttles traffic due to a "loss" algorithm OLR, it should not
forward the OLR downstream where other nodes will also apply
abatement to the same traffic. [Section 5.3]
The idea of redundant abatement is at least somewhat specific to
the algorithm. For example, a rate-limiting algorithm might allow
both local and delegated abatement, since the algorithm creates a
maximum rate limit. On the other hand, the "loss" algorithm
requests a percentage reduction. If a relay receives an OLR for a
10 percentage reduction, applies local throttling, and also
forwards the OLR downstream, the 10% reduction may be applied
twice.
7. Security Considerations
Several use cases in this document involve Agents inserting,
removing, or modifying DOIC related AVPs. [RFC6733] does not allow
"relay" agents to modify any part of a Diameter message except for
routing information. This has one of two implications; either relay
agents cannot take an active role in DOIC, or the DOIC AVPs should be
designated as "routing AVPs". The authors recommend the second.
But regardless of whether a relay is allowed to modify DOIC AVPs,
proxy agents will almost certainly need to do so. Diameter currently
only offers hop-by-hop integrity protection of message contents, but
the DIME working group is considering requirements for end-to-end
protection [I-D.ietf-dime-e2e-sec-req] at the time of this writing.
Those requirements currently recognize that different AVPs may
require different security treatments. The working group should
carefully consider how DOIC will interact with end-to-end security
when it is completed.
Donovan & Campbell Expires January 4, 2015 [Page 32]
Internet-Draft Abbreviated Title July 2014
Until such end-to-end protection is deployed, Diameter follows a
fundamentally transitive trust model. Adjacent nodes can
authenticate each other's identity, and protect exchanged messages
from tampering or eavesdropping. But Diameter nodes have no way of
authenticating message content received from non-adjacent nodes,
other than trusting the immediate peer to do the right thing.
DOIC related information may be sensitive, and could be destructive
if forged or modified by unauthorized parties. DOIC nodes must trust
DOIC supporting peers to ensure that no unauthorized parties insert
overload reports, and to ensure that reports are not delivered to
unauthorized parties. Peers that do not support DOIC cannot be
expected to enforce such policies.
At the time of this writing, DOIC provides no way for a supporting
node to distinguish between a DOIC AVP from a immediate peer that
supports DOIC, and one forwarded by a non-supporting peer. This
issue needs to be addressed before DOIC can meet requirements 27, 28,
and 29 of [RFC7068]
8. References
8.1. Normative References
[DOIC-rate]
Donovan, S. and E. Noel, "Diameter Agent Overload",
February 2014.
[I-D.ietf-dime-ovli]
Korhonen, J., Donovan, S., Campbell, B., and L. Morand,
"Diameter Overload Indication Conveyance", draft-ietf-
dime-ovli-02 (work in progress), March 2014.
[RFC4006] Hakala, H., Mattila, L., Koskinen, J-P., Stura, M., and J.
Loughney, "Diameter Credit-Control Application", RFC 4006,
August 2005.
[RFC6733] Fajardo, V., Arkko, J., Loughney, J., and G. Zorn,
"Diameter Base Protocol", RFC 6733, October 2012.
[agent-overload]
Donovan, S., "Diameter Agent Overload", March 2014.
8.2. Informative References
Donovan & Campbell Expires January 4, 2015 [Page 33]
Internet-Draft Abbreviated Title July 2014
[I-D.ietf-dime-e2e-sec-req]
Tschofenig, H., Korhonen, J., Zorn, G., and K. Pillay,
"Diameter AVP Level Security: Scenarios and Requirements",
draft-ietf-dime-e2e-sec-req-01 (work in progress), October
2013.
[RFC2629] Rose, M., "Writing I-Ds and RFCs using XML", RFC 2629,
June 1999.
[RFC3552] Rescorla, E. and B. Korver, "Guidelines for Writing RFC
Text on Security Considerations", BCP 72, RFC 3552, July
2003.
[RFC7068] McMurry, E. and B. Campbell, "Diameter Overload Control
Requirements", RFC 7068, November 2013.
Authors' Addresses
Steve Donovan
Oracle
Frisco, Texas
USA
Phone: +1
Email: srdonovan@usdonovans.com
Ben Campbell
Oracle
Frisco, Texas
USA
Phone: +1
Email: ben@nostrum.com
Donovan & Campbell Expires January 4, 2015 [Page 34]