RFC 8811: DDoS Open Threat Signaling (DOTS) Architecture
- A. Mortensen, Ed.,
- T. Reddy.K, Ed.,
- F. Andreasen,
- N. Teague,
- R. Compton
Abstract
This document describes an architecture for establishing and
maintaining Distributed Denial
Status of This Memo
This document is not an Internet Standards Track specification; it is published for informational purposes.¶
This document is a product of the Internet Engineering Task Force (IETF). It represents the consensus of the IETF community. It has received public review and has been approved for publication by the Internet Engineering Steering Group (IESG). Not all documents approved by the IESG are candidates for any level of Internet Standard; see Section 2 of RFC 7841.¶
Information about the current status of this document, any
errata, and how to provide feedback on it may be obtained at
https://
Copyright Notice
Copyright (c) 2020 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
(https://
1. Context and Motivation
Signaling the need for help to defend against an active distributed
denial
This document describes an architecture used in establishing, maintaining, or terminating a DOTS relationship within a domain or between domains.¶
1.1. Terminology
1.1.1. Key Words
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here.¶
1.2. Scope
In this architecture, DOTS clients and servers communicate using DOTS signal channel [RFC8782] and data channel [RFC8783] protocols.¶
The DOTS architecture presented here is applicable across network administrative domains, for example, between an enterprise domain and the domain of a third-party attack mitigation service, as well as to a single administrative domain. DOTS is generally assumed to be most effective when aiding coordination of attack response between two or more participating networks, but single domain scenarios are valuable in their own right, as when aggregating intra-domain DOTS client signals for an inter-domain coordinated attack response.¶
This document does not address any administrative or business agreements that may be established between involved DOTS parties. Those considerations are out of scope. Regardless, this document assumes necessary authentication and authorization mechanisms are put in place so that only authorized clients can invoke the DOTS service.¶
A detailed set of DOTS requirements are discussed in [RFC8612], and the DOTS architecture is designed to follow those requirements. Only new behavioral requirements are described in this document.¶
1.3. Assumptions
This document makes the following assumptions:¶
2. DOTS Architecture
The basic high-level DOTS architecture is illustrated in Figure 1:¶
A simple example instantiation of the DOTS architecture could be an enterprise as the attack target for a volumetric DDoS attack and an upstream DDoS mitigation service as the mitigator. The service provided by the mitigator is called "DDoS mitigation service". The enterprise (attack target) is connected to the Internet via a link that is getting saturated, and the enterprise suspects it is under DDoS attack. The enterprise has a DOTS client, which obtains information about the DDoS attack and signals the DOTS server for help in mitigating the attack. In turn, the DOTS server invokes one or more mitigators, which are tasked with mitigating the actual DDoS attack and, hence, aim to suppress the attack traffic while allowing valid traffic to reach the attack target.¶
The scope of the DOTS specifications is the interfaces between the DOTS client and DOTS server. The interfaces to the attack target and the mitigator are out of scope of DOTS. Similarly, the operation of both the attack target and the mitigator is out of scope of DOTS. Thus, DOTS specifies neither how an attack target decides it is under DDoS attack nor does DOTS specify how a mitigator may actually mitigate such an attack. A DOTS client's request for mitigation is advisory in nature and might not lead to any mitigation at all, depending on the DOTS server domain's capacity and willingness to mitigate on behalf of the DOTS client domain.¶
The DOTS client may be provided with a list of DOTS servers, each associated with one or more IP addresses. These addresses may or may not be of the same address family. The DOTS client establishes one or more sessions by connecting to the provided DOTS server addresses.¶
As illustrated in Figure 2, there are two interfaces between a DOTS server and a DOTS client: a signal channel and (optionally) a data channel.¶
The primary purpose of the signal channel is for a DOTS client to ask
a DOTS server for help in mitigating an attack and for the DOTS server
to inform the DOTS client about the status of such mitigation. The DOTS
client does this by sending a client signal that contains information
about the attack target(s). The client signal may also include telemetry
information about the attack, if the DOTS client has such information
available. In turn, the DOTS server sends a server signal to inform the
DOTS client of whether it will honor the mitigation request. Assuming it
will, the DOTS server initiates attack mitigation and periodically
informs the DOTS client about the status of the mitigation. Similarly,
the DOTS client periodically informs the DOTS server about the client's
status, which, at a minimum, provides client (attack target) health
information; it should also include efficacy information about the
attack mitigation as it is now seen by the client. At some point, the
DOTS client may decide to terminate the server-side attack mitigation,
which it indicates to the DOTS server over the signal channel. A
mitigation may also be terminated if a DOTS client
While DOTS is able to request mitigation with just the signal channel, the addition of the DOTS data channel provides for additional, more efficient capabilities. The primary purpose of the data channel is to support DOTS-related configuration and policy information exchange between the DOTS client and the DOTS server. Examples of such information include, but are not limited to:¶
Note that, while it is possible to exchange the above information before, during, or after a DDoS attack, DOTS requires reliable delivery of this information and does not provide any special means for ensuring timely delivery of it during an attack. In practice, this means that DOTS deployments should rely on such information being exchanged only under normal traffic conditions.¶
2.1. DOTS Operations
DOTS does not prescribe any specific deployment models; however, DOTS is designed with some specific requirements around the different DOTS agents and their relationships.¶
First of all, a DOTS agent belongs to a domain that has an identity that can be authenticated and authorized. DOTS agents communicate with each other over a mutually authenticated signal channel and (optionally) data channel. However, before they can do so, a service relationship needs to be established between them. The details and means by which this is done is outside the scope of DOTS; however, an example would be for an enterprise A (DOTS client) to sign up for DDoS service from provider B (DOTS server). This would establish a (service) relationship between the two that enables enterprise A's DOTS client to establish a signal channel with provider B's DOTS server. A and B will authenticate each other, and B can verify that A is authorized for its service.¶
From an operational and design point of view, DOTS assumes that the above relationship is established prior to a request for DDoS attack mitigation. In particular, it is assumed that bidirectional communication is possible at this time between the DOTS client and DOTS server. Furthermore, it is assumed that additional service provisioning, configuration, and information exchange can be performed by use of the data channel if operationally required. It is not until this point that the mitigation service is available for use.¶
Once the mutually authenticated signal channel has been established, it will remain active. This is done to increase the likelihood that the DOTS client can signal the DOTS server for help when the attack target is being flooded, and similarly raise the probability that DOTS server signals reach the client regardless of inbound link congestion. This does not necessarily imply that the attack target and the DOTS client have to be co-located in the same administrative domain, but it is expected to be a common scenario.¶
DDoS mitigation with the help of an upstream mitigator may involve some form of traffic redirection whereby traffic destined for the attack target is steered towards the mitigator. Common mechanisms to achieve this redirection depend on BGP [RFC4271] and DNS [RFC1035]. In turn, the mitigator inspects and scrubs the traffic and forwards the resulting (hopefully non-attack) traffic to the attack target. Thus, when a DOTS server receives an attack mitigation request from a DOTS client, it can be viewed as a way of causing traffic redirection for the attack target indicated.¶
DOTS relies on mutual authentication and the pre-established service relationship between the DOTS client domain and the DOTS server domain to provide authorization. The DOTS server should enforce authorization mechanisms to restrict the mitigation scope a DOTS client can request, but such authorization mechanisms are deployment specific.¶
Although co-location of DOTS server and mitigator within the same domain is expected to be a common deployment model, it is assumed that operators may require alternative models. Nothing in this document precludes such alternatives.¶
2.2. Components
2.2.1. DOTS Client
A DOTS client is a DOTS agent from which requests for help coordinating an attack response originate. The requests may be in response to an active, ongoing attack against a target in the DOTS client domain, but no active attack is required for a DOTS client to request help. Operators may wish to have upstream mitigators in the network path for an indefinite period and are restricted only by business relationships when it comes to duration and scope of requested mitigation.¶
The DOTS client requests attack response coordination from a DOTS server over the signal channel, including in the request the DOTS client's desired mitigation scoping, as described in [RFC8612] (SIG-008). The actual mitigation scope and countermeasures used in response to the attack are up to the DOTS server and mitigator operators, as the DOTS client may have a narrow perspective on the ongoing attack. As such, the DOTS client's request for mitigation should be considered advisory: guarantees of DOTS server availability or mitigation capacity constitute Service Level Agreements (SLAs) and are out of scope for this document.¶
The DOTS client adjusts mitigation scope and provides available mitigation feedback (e.g., mitigation efficacy) at the direction of its local administrator. Such direction may involve manual or automated adjustments in response to updates from the DOTS server.¶
To provide a metric of signal health and distinguish an idle signal channel from a disconnected or defunct session, the DOTS client sends a heartbeat over the signal channel to maintain its half of the channel. The DOTS client similarly expects a heartbeat from the DOTS server and may consider a session terminated in the extended absence of a DOTS server heartbeat.¶
2.2.2. DOTS Server
A DOTS server is a DOTS agent capable of receiving, processing, and possibly acting on requests for help coordinating attack responses from DOTS clients. The DOTS server authenticates and authorizes DOTS clients as described in Section 3.1 and maintains session state, tracks requests for mitigation, reports on the status of active mitigations, and terminates sessions in the extended absence of a client heartbeat or when a session times out.¶
Assuming the preconditions discussed below exist, a DOTS client maintaining an active session with a DOTS server may reasonably expect some level of mitigation in response to a request for coordinated attack response.¶
For a given DOTS client
A DOTS server is in regular contact with one or more mitigators. If a DOTS server accepts a DOTS client's request for help, the DOTS server forwards a translated form of that request to the mitigator(s) responsible for scrubbing attack traffic. Note that the form of the translated request passed from the DOTS server to the mitigator is not in scope; it may be as simple as an alert to mitigator operators, or highly automated using vendor or open application programming interfaces supported by the mitigator. The DOTS server MUST report the actual scope of any mitigation enabled on behalf of a client.¶
The DOTS server SHOULD retrieve available metrics for any mitigations activated on behalf of a DOTS client and SHOULD include them in server signals sent to the DOTS client originating the request for mitigation.¶
To provide a metric of signal health and distinguish an idle signal channel from a disconnected or defunct channel, the DOTS server MUST send a heartbeat over the signal channel to maintain its half of the channel. The DOTS server similarly expects a heartbeat from the DOTS client and MAY consider a session terminated in the extended absence of a DOTS client heartbeat.¶
2.2.3. DOTS Gateway
Traditional client/server relationships may be expanded by chaining DOTS sessions. This chaining is enabled through "logical concatenation" of a DOTS server and a DOTS client, resulting in an application analogous to the Session Initiation Protocol (SIP) [RFC3261] logical entity of a Back-to-Back User Agent (B2BUA) [RFC7092]. The term "DOTS gateway" is used here in the descriptions of selected scenarios involving this application.¶
A DOTS gateway may be deployed client side, server side, or both. The gateway may terminate multiple discrete client connections and may aggregate these into a single or multiple DOTS session(s).¶
The DOTS gateway will appear as a server to its downstream agents and as a client to its upstream agents, a functional concatenation of the DOTS client and server roles, as depicted in Figure 3:¶
The DOTS gateway MUST perform full stack DOTS session termination and reorigination between its client and server side. The details of how this is achieved are implementation specific.¶
2.3. DOTS Agent Relationships
So far, we have only considered a relatively simple scenario of a single DOTS client associated with a single DOTS server; however, DOTS supports more advanced relationships.¶
A DOTS server may be associated with one or more DOTS clients, and those DOTS clients may belong to different domains. An example scenario is a mitigation provider serving multiple attack targets (Figure 4).¶
A DOTS client may be associated with one or more DOTS servers, and those DOTS servers may belong to different domains. This may be to ensure high availability or coordinate mitigation with more than one directly connected ISP. An example scenario is for an enterprise to have DDoS mitigation service from multiple providers, as shown in Figure 5.¶
Deploying a multihomed client requires extra care and planning, as the DOTS servers with which the multihomed client communicates might not be affiliated. Should the multihomed client simultaneously request for mitigation from all servers with which it has established signal channels, the client may unintentionally inflict additional network disruption on the resources it intends to protect. In one of the worst cases, a multihomed DOTS client could cause a permanent routing loop of traffic destined for the client's protected services, as the uncoordinated DOTS servers' mitigators all try to divert that traffic to their own scrubbing centers.¶
The DOTS protocol itself provides no fool-proof method to prevent such self-inflicted harms as a result of deploying multihomed DOTS clients. If DOTS client implementations nevertheless include support for multihoming, they are expected to be aware of the risks, and consequently to include measures aimed at reducing the likelihood of negative outcomes. Simple measures might include:¶
2.3.1. Gatewayed Signaling
As discussed in Section 2.2.3, a DOTS gateway is a logical function chaining DOTS sessions through concatenation of a DOTS server and DOTS client.¶
An example scenario, as shown in Figure 6 and Figure 7, is for an
enterprise to have deployed multiple DOTS-capable devices that are
able to signal intra-domain using TCP [RFC0793] on uncongested links to a DOTS gateway that may
then transform these to a UDP [RFC0768] transport inter-domain where connection
This may similarly be deployed in the inverse scenario where the gateway resides in the server-side domain and may be used to terminate and/or aggregate multiple clients to a single transport as shown in Figure 8 and Figure 9.¶
This document anticipates scenarios involving multiple DOTS gateways. An example is a DOTS gateway at the network client's side and another one at the server side. The first gateway can be located at Customer Premises Equipment (CPE) to aggregate requests from multiple DOTS clients enabled in an enterprise network. The second DOTS gateway is deployed on the provider side. This scenario can be seen as a combination of the client-side and server-side scenarios.¶
3. Concepts
3.1. DOTS Sessions
In order for DOTS to be effective as a vehicle for DDoS mitigation requests, one or more DOTS clients must establish ongoing communication with one or more DOTS servers. While the preconditions for enabling DOTS in or among network domains may also involve business relationships, SLAs, or other formal or informal understandings between network operators, such considerations are out of scope for this document.¶
A DOTS session is established to support bilateral exchange of data between an associated DOTS client and a DOTS server. In the DOTS architecture, data is exchanged between DOTS agents over signal and data channels. As such, a DOTS session can be a DOTS signal channel session, a DOTS data channel session, or both. The DOTS server couples the DOTS signal and data channel sessions using the DOTS client identity. The DOTS session is further elaborated in the DOTS signal channel protocol defined in [RFC8782] and the DOTS data channel protocol defined in [RFC8783].¶
A DOTS agent can maintain one or more DOTS sessions.¶
A DOTS signal channel session is associated with a single transport connection (TCP or UDP session) and a security association (a TLS or DTLS session). Similarly, a DOTS data channel session is associated with a single TCP connection and a TLS security association.¶
Mitigation requests created using the DOTS signal channel are not bound to the DOTS signal channel session. Instead, mitigation requests are associated with a DOTS client and can be managed using different DOTS signal channel sessions.¶
3.1.1. Preconditions
Prior to establishing a DOTS session between agents, the owners of the networks, domains, services or applications involved are assumed to have agreed upon the terms of the relationship involved. Such agreements are out of scope for this document but must be in place for a functional DOTS architecture.¶
It is assumed that, as part of any DOTS service agreement, the
DOTS client is provided with all data and metadata required to
establish communication with the DOTS server. Such data and metadata
would include any cryptographic information necessary to meet the
message confidentiality
3.1.2. Establishing the DOTS Session
With the required business agreements in place, the DOTS client initiates a DOTS session by contacting its DOTS server(s) over the signal channel and (possibly) the data channel. To allow for DOTS service flexibility, neither the order of contact nor the time interval between channel creations is specified. A DOTS client MAY establish the signal channel first, and then the data channel, or vice versa.¶
The methods by which a DOTS client receives the address and associated service details of the DOTS server are not prescribed by this document. For example, a DOTS client may be directly configured to use a specific DOTS server IP address and port, and be directly provided with any data necessary to satisfy the Peer Mutual Authentication requirement (SEC-001) in [RFC8612], such as symmetric or asymmetric keys, usernames, passwords, etc. All configuration and authentication information in this scenario is provided out of band by the domain operating the DOTS server.¶
At the other extreme, the architecture in this document allows
for a form of DOTS client auto
The DOTS client SHOULD successfully authenticate and exchange messages with the DOTS server over both the signal and (if used) data channel as soon as possible to confirm that both channels are operational.¶
As described in [RFC8612] (DM-008), the DOTS client can configure preferred values for acceptable signal loss, mitigation lifetime, and heartbeat intervals when establishing the DOTS signal channel session. A DOTS signal channel session is not active until DOTS agents have agreed on the values for these DOTS session parameters, a process defined by the protocol.¶
Once the DOTS client begins receiving DOTS server signals, the DOTS session is active. At any time during the DOTS session, the DOTS client may use the data channel to manage aliases, manage drop- and accept-listed prefixes or addresses, leverage vendor-specific extensions, and so on. Note that unlike the signal channel, there is no requirement that the data channel remains operational in attack conditions. (See "Data Channel Requirements" Section 2.3 of [RFC8612]).¶
3.1.3. Maintaining the DOTS Session
DOTS clients and servers periodically send heartbeats to each other over the signal channel, discussed in [RFC8612] (SIG-004). DOTS agent operators SHOULD configure the heartbeat interval such that the frequency does not lead to accidental denials of service due to the overwhelming number of heartbeats a DOTS agent must field.¶
Either DOTS agent may consider a DOTS signal channel session terminated in the extended absence of a heartbeat from its peer agent. The period of that absence will be established in the protocol definition.¶
3.2. Modes of Signaling
This section examines the modes of signaling between agents in a DOTS architecture.¶
3.2.1. Direct Signaling
A DOTS session may take the form of direct signaling between the DOTS clients and servers, as shown in Figure 10.¶
In a direct DOTS session, the DOTS client and server are communicating directly. Direct signaling may exist inter- or intra-domain. The DOTS session is abstracted from the underlying networks or network elements the signals traverse; in direct signaling, the DOTS client and server are logically adjacent.¶
3.2.2. Redirected Signaling
In certain circumstances, a DOTS server may want to redirect a DOTS client to an alternative DOTS server for a DOTS signal channel session. Such circumstances include but are not limited to:¶
A basic redirected DOTS signal channel session resembles the following, as shown in Figure 11.¶
3.2.3. Recursive Signaling
DOTS is centered around improving the speed and efficiency of a coordinated response to DDoS attacks. One scenario not yet discussed involves coordination among federated domains operating DOTS servers and mitigators.¶
In the course of normal DOTS operations, a DOTS client communicates the need for mitigation to a DOTS server, and that server initiates mitigation on a mitigator with which the server has an established service relationship. The operator of the mitigator may in turn monitor mitigation performance and capacity, as the attack being mitigated may grow in severity beyond the mitigating domain's capabilities.¶
The operator of the mitigator has limited options in the event a DOTS
client
A recursive signaling model as shown in Figure 12 offers an alternative. In a variation of the use case "Upstream DDoS Mitigation by an Upstream Internet Transit Provider" described in [DOTS-USE-CASES], a domain operating a DOTS server and mitigator also operates a DOTS client. This DOTS client has an established DOTS session with a DOTS server belonging to a separate administrative domain.¶
With these preconditions in place, the operator of the mitigator being overwhelmed or otherwise performing inadequately may request mitigation for the attack target from this separate DOTS-aware domain. Such a request recurses the originating mitigation request to the secondary DOTS server in the hope of building a cumulative mitigation against the attack.¶
In Figure 12, client Cc signals a request for mitigation across inter-domain DOTS session 1 to the DOTS server Sn belonging to the example.net domain. DOTS server Sn enables mitigation on mitigator Mn. DOTS server Sn is half of DOTS gateway Gn, being deployed logically back to back with DOTS client Cn, which has preexisting inter-domain DOTS session 2 with the DOTS server So belonging to the example.org domain. At any point, DOTS server Sn MAY recurse an ongoing mitigation request through DOTS client Cn to DOTS server So, in the expectation that mitigator Mo will be activated to aid in the defense of the attack target.¶
Recursive signaling is opaque to the DOTS client. To maximize mitigation visibility to the DOTS client, however, the recursing domain SHOULD provide recursed mitigation feedback in signals reporting on mitigation status to the DOTS client. For example, the recursing domain's DOTS server should incorporate available metrics such as dropped packet or byte counts from the recursed domain's DOTS server into mitigation status messages.¶
DOTS clients involved in recursive signaling must be able to withdraw requests for mitigation without warning or justification per SIG-006 in [RFC8612].¶
Operators recursing mitigation requests MAY
maintain the recursed mitigation for a brief protocol
Deployment of recursive signaling may result in traffic redirection, examination, and mitigation extending beyond the initial bilateral relationship between DOTS client and DOTS server. As such, client control over the network path of mitigated traffic may be reduced. DOTS client operators should be aware of any privacy concerns and work with DOTS server operators employing recursive signaling to ensure shared sensitive material is suitably protected. Typically, there is a contractual SLA negotiated among the DOTS client domain, the recursed domain, and the recursing domain to meet the privacy requirements of the DOTS client domain and authorization for the recursing domain to request mitigation for the resources controlled by the DOTS client domain.¶
3.2.4. Anycast Signaling
The DOTS architecture does not assume the availability of anycast within a DOTS deployment, but neither does the architecture exclude it. Domains operating DOTS servers MAY deploy DOTS servers with an anycast Service Address as described in BCP 126 [RFC4786]. In such a deployment, DOTS clients connecting to the DOTS Service Address may be communicating with distinct DOTS servers, depending on the network configuration at the time the DOTS clients connect. Among other benefits, anycast signaling potentially offers the following:¶
3.2.4.1. Anycast Signaling Considerations
As long as network configuration remains stable, anycast DOTS signaling is to the individual DOTS client indistinct from direct signaling. However, the operational challenges inherent in anycast signaling are anything but negligible, and DOTS server operators must carefully weigh the risks against the benefits before deploying.¶
While the DOTS signal channel primarily operates over UDP per SIG-001 in [RFC8612], the signal channel also requires mutual authentication between DOTS agents, with associated security state on both ends.¶
Network instability is of particular concern with anycast signaling, as DOTS signal channels are expected to be long lived and potentially operating under congested network conditions caused by a volumetric DDoS attack.¶
For example, a network configuration altering the route to the DOTS server during active anycast signaling may cause the DOTS client to send messages to a DOTS server other than the one with which it initially established a signaling session. That second DOTS server might not have the security state of the existing session, forcing the DOTS client to initialize a new DOTS session. This challenge might in part be mitigated by use of resumption via a pre-shared key (PSK) in TLS 1.3 [RFC8446] and DTLS 1.3 [DTLS-PROTOCOL] (session resumption in TLS 1.2 [RFC5246] and DTLS 1.2 [RFC6347]), but keying material must then be available to all DOTS servers sharing the anycast Service Address, which has operational challenges of its own.¶
While the DOTS client will try to establish a new DOTS session with the DOTS server now acting as the anycast DOTS Service Address, the link between DOTS client and server may be congested with attack traffic, making signal session establishment difficult. In such a scenario, anycast Service Address instability becomes a sort of signal session flapping, with obvious negative consequences for the DOTS deployment.¶
Anycast signaling deployments similarly must also take into account active mitigations. Active mitigations initiated through a DOTS session may involve diverting traffic to a scrubbing center. If the DOTS session flaps due to anycast changes as described above, mitigation may also flap as the DOTS servers sharing the anycast DOTS service address toggles mitigation on detecting DOTS session loss, depending on whether or not the client has configured mitigation on loss of signal (Section 3.3.3).¶
3.2.5. Signaling Considerations for Network Address Translation
Network address translators (NATs) are expected to be a common feature of DOTS deployments. The middlebox traversal guidelines in [RFC8085] include general NAT considerations that are applicable to DOTS deployments when the signal channel is established over UDP.¶
Additional DOTS-specific considerations arise when NATs are part of the DOTS architecture. For example, DDoS attack detection behind a NAT will detect attacks against internal addresses. A DOTS client subsequently asked to request mitigation for the attacked scope of addresses cannot reasonably perform the task, due to the lack of externally routable addresses in the mitigation scope.¶
The following considerations do not cover all possible scenarios but are meant rather to highlight anticipated common issues when signaling through NATs.¶
3.2.5.1. Direct Provisioning of Internal-to-External Address Mappings
Operators may circumvent the problem of translating internal addresses or prefixes to externally routable mitigation scopes by directly provisioning the mappings of external addresses to internal protected resources on the DOTS client. When the operator requests mitigation scoped for internal addresses, directly or through automated means, the DOTS client looks up the matching external addresses or prefixes and issues a mitigation request scoped to that externally routable information.¶
When directly provisioning the address mappings, operators must ensure the mappings remain up to date or they risk losing the ability to request accurate mitigation scopes. To that aim, the DOTS client can rely on mechanisms such as [RFC8512] or [RFC7658] to retrieve static explicit mappings. This document does not prescribe the method by which mappings are maintained once they are provisioned on the DOTS client.¶
3.2.5.2. Resolving Public Mitigation Scope with Port Control Protocol (PCP)
Port Control Protocol (PCP) [RFC6887] may be used to retrieve the external
addresses
A DOTS client can use the information retrieved by means of PCP to feed the DOTS
protocol(s) messages that will be sent to a DOTS server. These messages will
convey the external addresses
PCP also enables discovery and configuration of the lifetime of port mappings instantiated in intermediate NAT devices. Discovery of port mapping lifetimes can reduce the dependency on heartbeat messages to maintain mappings and, therefore, reduce the load on DOTS servers and the network.¶
3.2.5.3. Resolving Public Mitigation Scope with Session Traversal Utilities (STUN)
An internal resource, e.g., a web server, can discover its reflexive transport
address through a STUN Binding request
In order to prevent an attacker from modifying the STUN messages in transit, the
STUN client and server must use the message
3.2.5.4. Resolving Requested Mitigation Scope with DNS
DOTS supports mitigation scoped to DNS names. As discussed in [RFC3235], using DNS names instead of IP addresses potentially avoids the address translation problem, as long as the same domain name is internally and externally resolvable. For example, a detected attack's internal target address can be mapped to a DNS name through a reverse lookup. The DNS name returned by the reverse lookup can then be provided to the DOTS client as the external scope for mitigation. For the reverse DNS lookup, DNS Security Extensions (DNSSEC) [RFC4033] must be used where the authenticity of response is critical.¶
3.3. Triggering Requests for Mitigation
[RFC8612] places no limitation on the circumstances in which a DOTS client operator may request mitigation, nor does it demand justification for any mitigation request, thereby reserving operational control over DDoS defense for the domain requesting mitigation. This architecture likewise does not prescribe the network conditions and mechanisms triggering a mitigation request from a DOTS client.¶
However, considering selected possible mitigation triggers from an architectural perspective offers a model for alternative or unanticipated triggers for DOTS deployments. In all cases, what network conditions merit a mitigation request are at the discretion of the DOTS client operator.¶
The mitigation request itself is defined by DOTS; however, the interfaces required to trigger the mitigation request in the following scenarios are implementation specific.¶
3.3.1. Manual Mitigation Request
A DOTS client operator may manually prepare a request for mitigation, including scope and duration, and manually instruct the DOTS client to send the mitigation request to the DOTS server. In context, a manual request is a request directly issued by the operator without automated decision making performed by a device interacting with the DOTS client. Modes of manual mitigation requests include an operator entering a command into a text interface, or directly interacting with a graphical interface to send the request.¶
An operator might do this, for example, in response to notice of an attack delivered by attack detection equipment or software, and the alerting detector lacks interfaces or is not configured to use available interfaces to translate the alert to a mitigation request automatically.¶
In a variation of the above scenario, the operator may have preconfigured on the DOTS client mitigation requests for various resources in the operator's domain. When notified of an attack, the DOTS client operator manually instructs the DOTS client to send the relevant preconfigured mitigation request for the resources under attack.¶
A further variant involves recursive signaling, as described in Section 3.2.3. The DOTS client in this case is the second half of a DOTS gateway (back-to-back DOTS server and client). As in the previous scenario, the scope and duration of the mitigation request are preexisting but, in this case, are derived from the mitigation request received from a downstream DOTS client by the DOTS server. Assuming the preconditions required by Section 3.2.3 are in place, the DOTS gateway operator may at any time manually request mitigation from an upstream DOTS server, sending a mitigation request derived from the downstream DOTS client's request.¶
The motivations for a DOTS client operator to request mitigation manually are not prescribed by this architecture but are expected to include some of the following:¶
3.3.2. Automated Conditional Mitigation Request
Unlike manual mitigation requests, which depend entirely on the DOTS client operator's capacity to react with speed and accuracy to every detected or detectable attack, mitigation requests triggered by detected attack conditions reduce the operational burden on the DOTS client operator and minimize the latency between attack detection and the start of mitigation.¶
Mitigation requests are triggered in this scenario by operator
When automated conditional mitigation requests are enabled, violations of any of
the above conditions, or any additional operator
3.3.3. Automated Mitigation on Loss of Signal
To maintain a DOTS signal channel session, the DOTS client and the DOTS server exchange regular but infrequent messages across the signal channel. In the absence of an attack, the probability of message loss in the signaling channel should be extremely low. Under attack conditions, however, some signal loss may be anticipated as attack traffic congests the link, depending on the attack type.¶
While [RFC8612] specifies the DOTS protocol be robust when signaling under attack conditions, there are nevertheless scenarios in which the DOTS signal is lost in spite of protocol best efforts. To handle such scenarios, a DOTS operator may request one or more mitigations, which are triggered only when the DOTS server ceases receiving DOTS client heartbeats beyond the miss count or interval permitted by the protocol.¶
The impact of mitigating due to loss of signal in either direction must be considered carefully before enabling it. Attack traffic congesting links is not the only reason why signal could be lost, and as such, mitigation requests triggered by signal channel degradation in either direction may incur unnecessary costs due to scrubbing traffic, adversely impact network performance and operational expense alike.¶
4. IANA Considerations
This document has no IANA actions.¶
5. Security Considerations
This section describes identified security considerations for the DOTS architecture.¶
Security considerations and security requirements discussed in [RFC8612] need to be taken into account.¶
DOTS is at risk from three primary attack vectors: agent impersonation, traffic injection, and signal blocking. These vectors may be exploited individually or in concert by an attacker to confuse, disable, take information from, or otherwise inhibit DOTS agents.¶
Any attacker with the ability to impersonate a legitimate DOTS client
or server or, indeed, inject false messages into the stream may
potentially trigger
DOTS agents MUST perform mutual authentication to ensure authenticity of each other, and DOTS servers MUST verify that the requesting DOTS client is authorized to request mitigation for specific target resources (see Section 2.2.2).¶
A man
An attacker with control of a DOTS client may negatively influence network traffic by requesting and withdrawing requests for mitigation for particular prefixes, leading to route or DNS flapping. DOTS operators should carefully monitor and audit DOTS clients to detect misbehavior and deter misuse.¶
Any attack targeting the availability of DOTS servers may disrupt the ability of the system to receive and process DOTS signals resulting in failure to fulfill a mitigation request. DOTS servers MUST be given adequate protections in accordance with best current practices for network and host security.¶
6. References
6.1. Normative References
- [RFC2119]
-
Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10
.17487 , , <https:///RFC2119 www >..rfc -editor .org /info /rfc2119 - [RFC4033]
-
Arends, R., Austein, R., Larson, M., Massey, D., and S. Rose, "DNS Security Introduction and Requirements", RFC 4033, DOI 10
.17487 , , <https:///RFC4033 www >..rfc -editor .org /info /rfc4033 - [RFC4786]
-
Abley, J. and K. Lindqvist, "Operation of Anycast Services", BCP 126, RFC 4786, DOI 10
.17487 , , <https:///RFC4786 www >..rfc -editor .org /info /rfc4786 - [RFC6887]
-
Wing, D., Ed., Cheshire, S., Boucadair, M., Penno, R., and P. Selkirk, "Port Control Protocol (PCP)", RFC 6887, DOI 10
.17487 , , <https:///RFC6887 www >..rfc -editor .org /info /rfc6887 - [RFC8174]
-
Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words", BCP 14, RFC 8174, DOI 10
.17487 , , <https:///RFC8174 www >..rfc -editor .org /info /rfc8174 - [RFC8612]
-
Mortensen, A., Reddy, T., and R. Moskowitz, "DDoS Open Threat Signaling (DOTS) Requirements", RFC 8612, DOI 10
.17487 , , <https:///RFC8612 www >..rfc -editor .org /info /rfc8612
6.2. Informative References
- [DOTS-USE-CASES]
-
Dobbins, R., Migault, D., Moskowitz, R., Teague, N., Xia, L., and K. Nishizuka, "Use cases for DDoS Open Threat Signaling", Work in Progress, Internet-Draft, draft
-ietf , , <https://-dots -use -cases -25 tools >..ietf .org /html /draft -ietf -dots -use -cases -25 - [DTLS-PROTOCOL]
-
Rescorla, E., Tschofenig, H., and N. Modadugu, "The Datagram Transport Layer Security (DTLS) Protocol Version 1.3", Work in Progress, Internet-Draft, draft
-ietf , , <https://-tls -dtls13 -38 tools >..ietf .org /html /draft -ietf -tls -dtls13 -38 - [RFC0768]
-
Postel, J., "User Datagram Protocol", STD 6, RFC 768, DOI 10
.17487 , , <https:///RFC0768 www >..rfc -editor .org /info /rfc768 - [RFC0793]
-
Postel, J., "Transmission Control Protocol", STD 7, RFC 793, DOI 10
.17487 , , <https:///RFC0793 www >..rfc -editor .org /info /rfc793 - [RFC1035]
-
Mockapetris, P., "Domain names - implementation and specification", STD 13, RFC 1035, DOI 10
.17487 , , <https:///RFC1035 www >..rfc -editor .org /info /rfc1035 - [RFC2782]
-
Gulbrandsen, A., Vixie, P., and L. Esibov, "A DNS RR for specifying the location of services (DNS SRV)", RFC 2782, DOI 10
.17487 , , <https:///RFC2782 www >..rfc -editor .org /info /rfc2782 - [RFC3235]
-
Senie, D., "Network Address Translator (NAT)-Friendly Application Design Guidelines", RFC 3235, DOI 10
.17487 , , <https:///RFC3235 www >..rfc -editor .org /info /rfc3235 - [RFC3261]
-
Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston, A., Peterson, J., Sparks, R., Handley, M., and E. Schooler, "SIP: Session Initiation Protocol", RFC 3261, DOI 10
.17487 , , <https:///RFC3261 www >..rfc -editor .org /info /rfc3261 - [RFC4271]
-
Rekhter, Y., Ed., Li, T., Ed., and S. Hares, Ed., "A Border Gateway Protocol 4 (BGP-4)", RFC 4271, DOI 10
.17487 , , <https:///RFC4271 www >..rfc -editor .org /info /rfc4271 - [RFC4732]
-
Handley, M., Ed., Rescorla, E., Ed., and IAB, "Internet Denial
-of , RFC 4732, DOI 10-Service Considerations" .17487 , , <https:///RFC4732 www >..rfc -editor .org /info /rfc4732 - [RFC5128]
-
Srisuresh, P., Ford, B., and D. Kegel, "State of Peer-to-Peer (P2P) Communication across Network Address Translators (NATs)", RFC 5128, DOI 10
.17487 , , <https:///RFC5128 www >..rfc -editor .org /info /rfc5128 - [RFC5246]
-
Dierks, T. and E. Rescorla, "The Transport Layer Security (TLS) Protocol Version 1.2", RFC 5246, DOI 10
.17487 , , <https:///RFC5246 www >..rfc -editor .org /info /rfc5246 - [RFC5780]
-
MacDonald, D. and B. Lowekamp, "NAT Behavior Discovery Using Session Traversal Utilities for NAT (STUN)", RFC 5780, DOI 10
.17487 , , <https:///RFC5780 www >..rfc -editor .org /info /rfc5780 - [RFC6347]
-
Rescorla, E. and N. Modadugu, "Datagram Transport Layer Security Version 1.2", RFC 6347, DOI 10
.17487 , , <https:///RFC6347 www >..rfc -editor .org /info /rfc6347 - [RFC6763]
-
Cheshire, S. and M. Krochmal, "DNS-Based Service Discovery", RFC 6763, DOI 10
.17487 , , <https:///RFC6763 www >..rfc -editor .org /info /rfc6763 - [RFC7092]
-
Kaplan, H. and V. Pascual, "A Taxonomy of Session Initiation Protocol (SIP) Back-to-Back User Agents", RFC 7092, DOI 10
.17487 , , <https:///RFC7092 www >..rfc -editor .org /info /rfc7092 - [RFC7094]
-
McPherson, D., Oran, D., Thaler, D., and E. Osterweil, "Architectural Considerations of IP Anycast", RFC 7094, DOI 10
.17487 , , <https:///RFC7094 www >..rfc -editor .org /info /rfc7094 - [RFC7350]
-
Petit-Huguenin, M. and G. Salgueiro, "Datagram Transport Layer Security (DTLS) as Transport for Session Traversal Utilities for NAT (STUN)", RFC 7350, DOI 10
.17487 , , <https:///RFC7350 www >..rfc -editor .org /info /rfc7350 - [RFC7658]
-
Perreault, S., Tsou, T., Sivakumar, S., and T. Taylor, "Deprecation of MIB Module NAT-MIB: Managed Objects for Network Address Translators (NATs)", RFC 7658, DOI 10
.17487 , , <https:///RFC7658 www >..rfc -editor .org /info /rfc7658 - [RFC8085]
-
Eggert, L., Fairhurst, G., and G. Shepherd, "UDP Usage Guidelines", BCP 145, RFC 8085, DOI 10
.17487 , , <https:///RFC8085 www >..rfc -editor .org /info /rfc8085 - [RFC8446]
-
Rescorla, E., "The Transport Layer Security (TLS) Protocol Version 1.3", RFC 8446, DOI 10
.17487 , , <https:///RFC8446 www >..rfc -editor .org /info /rfc8446 - [RFC8489]
-
Petit-Huguenin, M., Salgueiro, G., Rosenberg, J., Wing, D., Mahy, R., and P. Matthews, "Session Traversal Utilities for NAT (STUN)", RFC 8489, DOI 10
.17487 , , <https:///RFC8489 www >..rfc -editor .org /info /rfc8489 - [RFC8512]
-
Boucadair, M., Ed., Sivakumar, S., Jacquenet, C., Vinapamula, S., and Q. Wu, "A YANG Module for Network Address Translation (NAT) and Network Prefix Translation (NPT)", RFC 8512, DOI 10
.17487 , , <https:///RFC8512 www >..rfc -editor .org /info /rfc8512 - [RFC8555]
-
Barnes, R., Hoffman
-Andrews, , McCarney, D., and J. Kasten, "Automatic Certificate Management Environment (ACME)", RFC 8555, DOI 10J. .17487 , , <https:///RFC8555 www >..rfc -editor .org /info /rfc8555 - [RFC8738]
-
Shoemaker, R.B., "Automated Certificate Management Environment (ACME) IP Identifier Validation Extension", RFC 8738, DOI 10
.17487 , , <https:///RFC8738 www >..rfc -editor .org /info /rfc8738 - [RFC8782]
-
Reddy.K, T., Ed., Boucadair, M., Ed., Patil, P., Mortensen, A., and N. Teague, "Distributed Denial
-of , RFC 8782, DOI 10-Service Open Threat Signaling (DOTS) Signal Channel Specification" .17487 , , <https:///RFC8782 www >..rfc -editor .org /info /rfc8782 - [RFC8783]
-
Boucadair, M., Ed. and T. Reddy.K, Ed., "Distributed Denial
-of , RFC 8783, DOI 10-Service Open Threat Signaling (DOTS) Data Channel Specification" .17487 , , <https:///RFC8783 www >..rfc -editor .org /info /rfc8783
Acknowledgments
Thanks to Matt Richardson, Roman Danyliw, Frank Xialiang, Roland Dobbins, Wei Pan, Kaname Nishizuka, Jon Shallow, Paul Kyzivat, Warren Kumari, Benjamin Kaduk, and Mohamed Boucadair for their comments and suggestions.¶
Special thanks to Roman Danyliw for the AD review.¶