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 [
RFC 8782] and the DOTS data channel protocol defined in [
RFC 8783].
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.
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, integrity, and authenticity requirement (SEC-002) in [
RFC 8612] and might also include the pool of DOTS server addresses and ports the DOTS client should use for signal and data channel messaging.
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 [
RFC 8612], 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-provisioning. For example, the domain operating the DOTS server or servers might provide the client domain only with symmetric or asymmetric keys to authenticate the provisioned DOTS clients. Only the keys would then be directly configured on DOTS clients, but the remaining configuration required to provision the DOTS clients could be learned through mechanisms similar to DNS SRV [
RFC 2782] or DNS Service Discovery [
RFC 6763].
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 [
RFC 8612] (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
RFC 8612).
DOTS clients and servers periodically send heartbeats to each other over the signal channel, discussed in [
RFC 8612] (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.
This section examines the modes of signaling between agents in a DOTS architecture.
A DOTS session may take the form of direct signaling between the DOTS clients and servers, as shown in
Figure 10.
+-------------+ +-------------+
| DOTS client |<------signal session------>| DOTS server |
+-------------+ +-------------+
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.
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:
-
Maximum number of DOTS signal channel sessions with clients has been reached;
-
Mitigation capacity exhaustion in the mitigator with which the specific DOTS server is communicating;
-
Mitigator outage or other downtime such as scheduled maintenance;
-
Scheduled DOTS server maintenance;
-
Scheduled modifications to the network path between DOTS server and DOTS client.
A basic redirected DOTS signal channel session resembles the following, as shown in
Figure 11.
+-------------+ +---------------+
| |<-(1)--- DOTS signal ------>| |
| | channel session 1 | |
| |<=(2)== redirect to B ======| |
| DOTS client | | DOTS server A |
| |X-(4)--- DOTS signal ------X| |
| | channel session 1 | |
| | | |
+-------------+ +---------------+
^
|
(3) DOTS signal channel
| session 2
v
+---------------+
| DOTS server B |
+---------------+
-
Previously established DOTS signal channel session 1 exists between a DOTS client and DOTS server A.
-
DOTS server A sends a server signal redirecting the client to DOTS server B.
-
If the DOTS client does not already have a separate DOTS signal channel session with the redirection target, the DOTS client initiates and establishes DOTS signal channel session 2 with DOTS server B.
-
Having redirected the DOTS client, DOTS server A ceases sending server signals. The DOTS client likewise stops sending client signals to DOTS server A. DOTS signal channel session 1 is terminated.
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-requested mitigation is being overwhelmed by the severity of the attack. Out-of-scope business or SLAs may permit the mitigating domain to drop the mitigation and let attack traffic flow unchecked to the target, but this only encourages attack escalation. In the case where the mitigating domain is the upstream service provider for the attack target, this may mean the mitigating domain and its other services and users continue to suffer the incidental effects of the attack.
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.
example.net domain
. . . . . . . . . . . . . . . . .
. Gn .
+----+ 1 . +----+ +-----------+ .
| Cc |<--------->| Sn |~~~~~~~| Mitigator | .
+----+ . +====+ | Mn | .
. | Cn | +-----------+ .
example.com . +----+ .
client . ^ .
. . .|. . . . . . . . . . . . . .
|
2 |
|
. . .|. . . . . . . . . . . . . .
. v .
. +----+ +-----------+ .
. | So |~~~~~~~| Mitigator | .
. +----+ | Mo | .
. +-----------+ .
. .
. . . . . . . . . . . . . . . . .
example.org domain
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 [
RFC 8612].
Operators recursing mitigation requests
MAY maintain the recursed mitigation for a brief protocol-defined period in the event the DOTS client originating the mitigation withdraws its request for help, as per the discussion of managing mitigation toggling in SIG-006 of [
RFC 8612].
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.
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 [
RFC 4786]. 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:
-
Simplified DOTS client configuration, including service discovery through the methods described in [RFC 7094]. In this scenario, the "instance discovery" message would be a DOTS client initiating a DOTS session to the DOTS server anycast Service Address, to which the DOTS server would reply with a redirection to the DOTS server unicast address the client should use for DOTS.
-
Region- or customer-specific deployments, in which the DOTS Service Addresses route to distinct DOTS servers depending on the client region or the customer network in which a DOTS client resides.
-
Operational resiliency, spreading DOTS signaling traffic across the DOTS server domain's networks, and thereby also reducing the potential attack surface, as described in BCP 126 [RFC 4786].
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 [
RFC 8612], 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 [
RFC 8446] and DTLS 1.3 [
DTLS-PROTOCOL] (session resumption in TLS 1.2 [
RFC 5246] and DTLS 1.2 [
RFC 6347]), 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).
Network address translators (NATs) are expected to be a common feature of DOTS deployments. The middlebox traversal guidelines in [
RFC 8085] 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.
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 [
RFC 8512] or [
RFC 7658] 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.
Port Control Protocol (PCP) [
RFC 6887] may be used to retrieve the external addresses/prefixes and/or port numbers if the NAT function embeds a PCP server.
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/prefixes as set by the NAT.
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.
An internal resource, e.g., a web server, can discover its reflexive transport address through a STUN Binding request/response transaction, as described in [
RFC 8489]. After learning its reflexive transport address from the STUN server, the internal resource can export its reflexive transport address and internal transport address to the DOTS client, thereby enabling the DOTS client to request mitigation with the correct external scope, as depicted in
Figure 13. The mechanism for providing the DOTS client with the reflexive transport address and internal transport address is unspecified in this document.
In order to prevent an attacker from modifying the STUN messages in transit, the STUN client and server must use the message-integrity mechanism discussed in
Section 9 of
RFC 8489 or use STUN over DTLS [
RFC 7350] or STUN over TLS. If the STUN client is behind a NAT that performs Endpoint-Dependent Mapping [
RFC 5128], the internal service cannot provide the DOTS client with the reflexive transport address discovered using STUN. The behavior of a NAT between the STUN client and the STUN server could be discovered using the experimental techniques discussed in [
RFC 5780], but note that there is currently no standardized way for a STUN client to reliably determine if it is behind a NAT that performs Endpoint-Dependent Mapping.
Binding Binding
+--------+ request +---+ request +--------+
| STUN |<----------| N |<----------| STUN |
| server | | A | | client |
| |---------->| T |---------->| |
+--------+ Binding +---+ Binding +--------+
response response |
| reflexive transport address
| & internal transport address
v
+--------+
| DOTS |
| client |
+--------+
DOTS supports mitigation scoped to DNS names. As discussed in [
RFC 3235], 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) [
RFC 4033] must be used where the authenticity of response is critical.
[
RFC 8612] 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.
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:
-
Notice of an attack delivered via email or alternative messaging
-
Notice of an attack delivered via phone call
-
Notice of an attack delivered through the interface(s) of networking monitoring software deployed in the operator's domain
-
Manual monitoring of network behavior through network monitoring software
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-specified network conditions. Attack detection is deployment specific and not constrained by this architecture. Similarly, the specifics of a condition are left to the discretion of the operator, though common conditions meriting mitigation include the following:
-
Detected attack exceeding a rate in packets per second (pps).
-
Detected attack exceeding a rate in bytes per second (bps).
-
Detected resource exhaustion in an attack target.
-
Detected resource exhaustion in the local domain's mitigator.
-
Number of open connections to an attack target.
-
Number of attack sources in a given attack.
-
Number of active attacks against targets in the operator's domain.
-
Conditional detection developed through arbitrary statistical analysis or deep learning techniques.
-
Any combination of the above.
When automated conditional mitigation requests are enabled, violations of any of the above conditions, or any additional operator-defined conditions, will trigger a mitigation request from the DOTS client to the DOTS server. The interfaces between the application detecting the condition violation and the DOTS client are implementation specific.
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 [
RFC 8612] 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.