rfc9387.original | rfc9387.txt | |||
---|---|---|---|---|
DOTS Y. Hayashi | Internet Engineering Task Force (IETF) Y. Hayashi | |||
Internet-Draft NTT | Request for Comments: 9387 NTT | |||
Intended status: Informational M. Chen | Category: Informational M. Chen | |||
Expires: 26 April 2023 Li. Su | ISSN: 2070-1721 L. Su | |||
CMCC | China Mobile | |||
23 October 2022 | April 2023 | |||
Use Cases for DDoS Open Threat Signaling (DOTS) Telemetry | Use Cases for DDoS Open Threat Signaling (DOTS) Telemetry | |||
draft-ietf-dots-telemetry-use-cases-15 | ||||
Abstract | Abstract | |||
DDoS Open Threat Signaling (DOTS) Telemetry enriches the base DOTS | DDoS Open Threat Signaling (DOTS) telemetry enriches the base DOTS | |||
protocols to assist the mitigator in using efficient DDoS attack | protocols to assist the mitigator in using efficient DDoS attack | |||
mitigation techniques in a network. This document presents sample | mitigation techniques in a network. This document presents sample | |||
use cases for DOTS Telemetry. It discusses what components are | use cases for DOTS telemetry. It discusses what components are | |||
deployed in the network, how they cooperate, and what information is | deployed in the network, how they cooperate, and what information is | |||
exchanged to effectively use these techniques. | exchanged to effectively use these techniques. | |||
Status of This Memo | Status of This Memo | |||
This Internet-Draft is submitted in full conformance with the | This document is not an Internet Standards Track specification; it is | |||
provisions of BCP 78 and BCP 79. | published for informational purposes. | |||
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 https://datatracker.ietf.org/drafts/current/. | ||||
Internet-Drafts are draft documents valid for a maximum of six months | This document is a product of the Internet Engineering Task Force | |||
and may be updated, replaced, or obsoleted by other documents at any | (IETF). It represents the consensus of the IETF community. It has | |||
time. It is inappropriate to use Internet-Drafts as reference | received public review and has been approved for publication by the | |||
material or to cite them other than as "work in progress." | 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. | ||||
This Internet-Draft will expire on 26 April 2023. | Information about the current status of this document, any errata, | |||
and how to provide feedback on it may be obtained at | ||||
https://www.rfc-editor.org/info/rfc9387. | ||||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2022 IETF Trust and the persons identified as the | Copyright (c) 2023 IETF Trust and the persons identified as the | |||
document authors. All rights reserved. | document authors. All rights reserved. | |||
This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
Provisions Relating to IETF Documents (https://trustee.ietf.org/ | Provisions Relating to IETF Documents | |||
license-info) in effect on the date of publication of this document. | (https://trustee.ietf.org/license-info) in effect on the date of | |||
Please review these documents carefully, as they describe your rights | publication of this document. Please review these documents | |||
and restrictions with respect to this document. Code Components | carefully, as they describe your rights and restrictions with respect | |||
extracted from this document must include Revised BSD License text as | to this document. Code Components extracted from this document must | |||
described in Section 4.e of the Trust Legal Provisions and are | include Revised BSD License text as described in Section 4.e of the | |||
provided without warranty as described in the Revised BSD License. | Trust Legal Provisions and are provided without warranty as described | |||
in the Revised BSD License. | ||||
Table of Contents | Table of Contents | |||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Introduction | |||
2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3 | 2. Terminology | |||
3. Telemetry Use Cases . . . . . . . . . . . . . . . . . . . . . 3 | 3. Telemetry Use Cases | |||
3.1. Mitigation Resources Assignment . . . . . . . . . . . . . 3 | 3.1. Mitigation Resources Assignment | |||
3.1.1. Mitigating Attack Flow of Top-talker | 3.1.1. Mitigating Attack Flow of Top Talker Preferentially | |||
Preferentially . . . . . . . . . . . . . . . . . . . 4 | 3.1.2. DMS Selection for Mitigation | |||
3.1.2. DMS Selection for Mitigation . . . . . . . . . . . . 6 | 3.1.3. Path Selection for Redirection | |||
3.1.3. Path Selection for Redirection . . . . . . . . . . . 9 | 3.1.4. Short but Extreme Volumetric Attack Mitigation | |||
3.1.4. Short but Extreme Volumetric Attack Mitigation . . . 11 | 3.1.5. Selecting Mitigation Technique Based on Attack Type | |||
3.1.5. Selecting Mitigation Technique Based on Attack | 3.2. Detailed DDoS Mitigation Report | |||
Type . . . . . . . . . . . . . . . . . . . . . . . . 14 | 3.3. Tuning Mitigation Resources | |||
3.2. Detailed DDoS Mitigation Report . . . . . . . . . . . . . 18 | 3.3.1. Supervised Machine Learning of Flow Collector | |||
3.3. Tuning Mitigation Resources . . . . . . . . . . . . . . . 21 | 3.3.2. Unsupervised Machine Learning of Flow Collector | |||
3.3.1. Supervised Machine Learning of Flow Collector . . . . 21 | 4. Security Considerations | |||
3.3.2. Unsupervised Machine Learning of Flow Collector . . . 24 | 5. IANA Considerations | |||
4. Security Considerations . . . . . . . . . . . . . . . . . . . 26 | 6. References | |||
5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 26 | 6.1. Normative References | |||
6. Acknowledgement . . . . . . . . . . . . . . . . . . . . . . . 26 | 6.2. Informative References | |||
7. References . . . . . . . . . . . . . . . . . . . . . . . . . 26 | Acknowledgements | |||
7.1. Normative References . . . . . . . . . . . . . . . . . . 26 | Authors' Addresses | |||
7.2. Informative References . . . . . . . . . . . . . . . . . 26 | ||||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 28 | ||||
1. Introduction | 1. Introduction | |||
Distributed Denial-of-Service (DDoS) attacks, such as volumetric | Distributed Denial-of-Service (DDoS) attacks, such as volumetric | |||
attacks and resource-consumption attacks, are critical threats to be | attacks and resource-consuming attacks, are critical threats to be | |||
handled by service providers. When such DDoS attacks occur, service | handled by service providers. When such DDoS attacks occur, service | |||
providers have to mitigate them immediately to protect or recover | providers have to mitigate them immediately to protect or recover | |||
their services. | their services. | |||
Therefore, for service providers to immediately protect their network | For service providers to immediately protect their network services | |||
services from DDoS attacks, DDoS mitigation needs to be highly | from DDoS attacks, DDoS mitigation needs to be highly automated. To | |||
automated. To that aim, multivendor components involved in DDoS | that aim, multivendor components involved in DDoS attack detection | |||
attack detection and mitigation should cooperate and support standard | and mitigation should cooperate and support standard interfaces. | |||
interfaces. | ||||
DDoS Open Threat Signaling (DOTS) is a set of protocols for real-time | DDoS Open Threat Signaling (DOTS) is a set of protocols for real-time | |||
signaling, threat-handling requests, and data filtering between the | signaling, threat-handling requests, and data filtering between the | |||
multivendor elements [RFC9132][RFC8783]. DOTS Telemetry enriches the | multivendor elements [RFC9132] [RFC8783]. DOTS telemetry enriches | |||
DOTS protocols with various telemetry attributes allowing optimal | the DOTS protocols with various telemetry attributes allowing optimal | |||
DDoS attack mitigation [RFC9244]. This document presents sample use | DDoS attack mitigation [RFC9244]. This document presents sample use | |||
cases for DOTS Telemetry which makes concrete overview and purpose | cases for DOTS telemetry to enhance the overview and the purpose | |||
described in [RFC9244]. This document also presents what components | described in [RFC9244]. This document also presents what components | |||
are deployed in the network, how they cooperate, and what information | are deployed in the network, how they cooperate, and what information | |||
is exchanged to effectively use attack-mitigation techniques. | is exchanged to effectively use attack-mitigation techniques. | |||
2. Terminology | 2. Terminology | |||
The readers should be familiar with the terms defined in [RFC8612], | Readers should be familiar with the terms defined in [RFC8612], | |||
[RFC8903] and [RFC9244]. | [RFC8903], and [RFC9244]. | |||
In addition, this document uses the following terms: | In addition, this document uses the following terms: | |||
Top-talker: A list of attack sources that are involved in an attack | ||||
and which are generating an important part of the attack traffic. | ||||
Supervised Machine Learning: A machine-learning technique in which | Supervised Machine Learning: A machine-learning technique in which | |||
labeled data is used to train the algorithms (the input and output | labeled data is used to train the algorithms (the input and output | |||
data are known). | data are known). | |||
Unsupervised Machine Learning: A machine learning technique in which | Unsupervised Machine Learning: A machine-learning technique in which | |||
unlabeled data is used to train the algorithms (the data has no | unlabeled data is used to train the algorithms (the data has no | |||
historical labels). | historical labels). | |||
3. Telemetry Use Cases | 3. Telemetry Use Cases | |||
This section describes DOTS telemetry use cases that use attributes | This section describes DOTS telemetry use cases that use telemetry | |||
included in the DOTS telemetry specification [RFC9244]. | attributes included in the DOTS telemetry specification [RFC9244]. | |||
The following subsections assume that once the DOTS signal channel is | The following subsections assume that once the DOTS signal channel is | |||
established, DOTS clients proceed with the telemetry setup | established, DOTS clients will proceed with the telemetry setup | |||
configuration as detailed in Section 7 of [RFC9244]. The following | configuration detailed in Section 7 of [RFC9244]. The following | |||
telemetry parameters are used: | telemetry parameters are used: | |||
* 'measurement-interval' to define the period during which | * "measurement-interval" defines the period during which percentiles | |||
percentiles are computed. | are computed. | |||
* 'measurement-sample' to define the time distribution for measuring | * "measurement-sample" defines the time distribution for measuring | |||
values that are used to compute percentiles. | values that are used to compute percentiles. | |||
3.1. Mitigation Resources Assignment | 3.1. Mitigation Resources Assignment | |||
3.1.1. Mitigating Attack Flow of Top-talker Preferentially | ||||
Some transit providers have to mitigate large-scale DDoS attacks by | 3.1.1. Mitigating Attack Flow of Top Talker Preferentially | |||
using DDoS Mitigation Systems (DMSes) with limited resources, which | ||||
are already deployed in their network. For example, recently | Some transit providers have to mitigate large-scale DDoS attacks | |||
reported large DDoS attacks exceeded several Tbps. [DOTS_Overview] | using DDoS Mitigation Systems (DMSes) with limited resources that are | |||
already deployed in their network. For example, recently reported | ||||
large DDoS attacks exceeded several Tbps [DOTS_Overview]. | ||||
This use case enables transit providers to use their DMS efficiently | This use case enables transit providers to use their DMS efficiently | |||
under volume-based DDoS attacks whose volume is more than the | under volume-based DDoS attacks whose volume is more than the | |||
available capacity of the DMS. To enable this, the attack traffic of | available capacity of the DMS. To enable this, the attack traffic of | |||
top-talkers is redirected to the DMS preferentially by cooperation | top talkers is redirected to the DMS preferentially by cooperation | |||
among forwarding nodes, flow collectors, and orchestrators. | among forwarding nodes, flow collectors, and orchestrators. | |||
Figure 1 gives an overview of this use case. Figure 2 provides an | Figure 1 gives an overview of this use case. Figure 2 provides an | |||
example of a DOTS telemetry message body that is used to signal top- | example of a DOTS telemetry message body that is used to signal top | |||
talkers (2001:db8:1::/48 and 2001:db8:2::/48). | talkers (2001:db8:1::/48 and 2001:db8:2::/48). | |||
(Internet Transit Provider) | (Internet Transit Provider) | |||
+-----------+ +--------------+ SNMP or YANG/NETCONF | +-----------+ +--------------+ SNMP or YANG/NETCONF | |||
IPFIX +-----------+| DOTS | |<--- | IPFIX +-----------+| DOTS | |<--- | |||
--->| Flow ||C<-->S| Orchestrator | BGP Flowspec | --->| Flow ||C<-->S| Orchestrator | BGP Flowspec | |||
| collector |+ | |---> (Redirect) | | collector |+ | |---> (Redirect) | |||
+-----------+ +--------------+ | +-----------+ +--------------+ | |||
+-------------+ | +-------------+ | |||
IPFIX +-------------+| BGP Flowspec (Redirect) | IPFIX +-------------+| BGP Flowspec (Redirect) | |||
<---| Forwarding ||<--- | <---| Forwarding ||<--- | |||
| nodes || | | nodes || | |||
| || DDoS Attack | | || DDoS Attack | |||
[ Target(s) ]<========================================== | [ Target(s) ]<========================================== | |||
| ++=========================[top-talker] | | ++=========================[top talker] | |||
| || ++======================[top-talker] | | || ++======================[top talker] | |||
+----|| ||---+ | +----|| ||----+ | |||
|| || | || || | |||
|| || | || || | |||
|/ |/ | |/ |/ | |||
+----x--x----+ | +----x--x----+ | |||
| DDoS | SNMP or YANG/NETCONF | | DDoS | SNMP or YANG/NETCONF | |||
| mitigation |<--- | | mitigation |<--- | |||
| system | | | system | | |||
+------------+ | +------------+ | |||
* C is for DOTS client functionality | C: DOTS client functionality | |||
* S is for DOTS server functionality | S: DOTS server functionality | |||
Figure 1: Mitigating Attack Flow of Top Talker Preferentially | ||||
Figure 1: Mitigating DDoS Attack Flow of Top-talkers Preferentially | ||||
{ | { | |||
"ietf-dots-telemetry:telemetry": { | "ietf-dots-telemetry:telemetry": { | |||
"pre-or-ongoing-mitigation": [ | "pre-or-ongoing-mitigation": [ | |||
{ | { | |||
"target": { | "target": { | |||
"target-prefix": [ | "target-prefix": [ | |||
"2001:db8::1/128" | "2001:db8::1/128" | |||
] | ] | |||
}, | }, | |||
"total-attack-traffic-protocol": [ | "total-attack-traffic-protocol": [ | |||
skipping to change at page 6, line 4 ¶ | skipping to change at line 226 ¶ | |||
"mid-percentile-g": "90" | "mid-percentile-g": "90" | |||
} | } | |||
] | ] | |||
} | } | |||
] | ] | |||
} | } | |||
} | } | |||
] | ] | |||
} | } | |||
] | ] | |||
} | } | |||
} | } | |||
Figure 2: An Example of Message Body to Signal Top-Talkers | Figure 2: Example of Message Body to Signal Top Talkers | |||
The forwarding nodes send traffic statistics to the flow collectors, | The forwarding nodes send traffic statistics to the flow collectors, | |||
e.g., using IP Flow Information Export (IPFIX) [RFC7011]. When DDoS | e.g., using IP Flow Information Export (IPFIX) [RFC7011]. When DDoS | |||
attacks occur, the flow collectors identify the attack traffic and | attacks occur, the flow collectors identify the attack traffic and | |||
send information about the top-talkers to the orchestrator using the | send information about the top talkers to the orchestrator using the | |||
"target-prefix" and "top-talkers" DOTS telemetry attributes. The | "target-prefix" and "top-talkers" DOTS telemetry attributes. The | |||
orchestrator then checks the available capacity of the DMSes by using | orchestrator then checks the available capacity of the DMSes using a | |||
a network management protocol, such as Simple Network Management | network management protocol, such as the Simple Network Management | |||
Protocol (SNMP) [RFC3413] or YANG with Network Configuration Protocol | Protocol (SNMP) [RFC3413] or YANG with the Network Configuration | |||
(YANG/NETCONF) [RFC7950]. After that, the orchestrator orders the | Protocol (YANG/NETCONF) [RFC7950]. After that, the orchestrator | |||
forwarding nodes to redirect as much of the top-talker's traffic to | orders the forwarding nodes to redirect as much of the top talker's | |||
each DMS as that DMS can handle by dissemination of Flow | traffic to the DMSes as they can handle by dissemination of Flow | |||
Specifications using tools such as Border Gateway Protocol | Specifications using tools such as Border Gateway Protocol | |||
Dissemination of Flow Specification Rules (BGP Flowspec) [RFC8955]. | Dissemination of Flow Specification Rules (BGP Flowspec) [RFC8955]. | |||
The flow collector implements a DOTS client while the orchestrator | The flow collector implements a DOTS client while the orchestrator | |||
implements a DOTS server. | implements a DOTS server. | |||
3.1.2. DMS Selection for Mitigation | 3.1.2. DMS Selection for Mitigation | |||
Transit providers can deploy their DMSes in clusters. Then, they can | Transit providers can deploy their DMSes in clusters. Then, they can | |||
select the DMS to be used to mitigate a DDoS attack at the time of an | select the DMS to be used to mitigate a DDoS attack at the time of an | |||
attack. | attack. | |||
This use case enables transit providers to select a DMS with | This use case enables transit providers to select a DMS with | |||
sufficient capacity for mitigation based on the volume of the attack | sufficient capacity for mitigation based on the volume of the attack | |||
traffic and the capacity of a DMS. Figure 3 gives an overview of | traffic and the capacity of the DMS. Figure 3 gives an overview of | |||
this use case. Figure 4 provides an example of a DOTS telemetry | this use case. Figure 4 provides an example of a DOTS telemetry | |||
message body that is used to signal various attack traffic | message body that is used to signal percentiles for total attack | |||
percentiles. | traffic. | |||
(Internet Transit Provider) | (Internet Transit Provider) | |||
+-----------+ +--------------+ SNMP or YANG/NETCONF | +-----------+ +--------------+ SNMP or YANG/NETCONF | |||
IPFIX +-----------+| DOTS | |<--- | IPFIX +-----------+| DOTS | |<--- | |||
--->| Flow ||C<-->S| Orchestrator | BGP (Redirect) | --->| Flow ||C<-->S| Orchestrator | BGP (Redirect) | |||
| collector |+ | |---> | | collector |+ | |---> | |||
+-----------+ +--------------+ | +-----------+ +--------------+ | |||
+------------+ | +------------+ | |||
skipping to change at page 7, line 32 ¶ | skipping to change at line 288 ¶ | |||
++====++ || (congested DMS) | ++====++ || (congested DMS) | |||
|| || +-----------+ | || || +-----------+ | |||
|| |/ | DMS3 | | || |/ | DMS3 | | |||
|| +-----x------+ |<--- SNMP or YANG/NETCONF | || +-----x------+ |<--- SNMP or YANG/NETCONF | |||
|/ | DMS2 |--------+ | |/ | DMS2 |--------+ | |||
+--x---------+ |<--- SNMP or YANG/NETCONF | +--x---------+ |<--- SNMP or YANG/NETCONF | |||
| DMS1 |------+ | | DMS1 |------+ | |||
| |<--- SNMP or YANG/NETCONF | | |<--- SNMP or YANG/NETCONF | |||
+------------+ | +------------+ | |||
* C is for DOTS client functionality | C: DOTS client functionality | |||
* S is for DOTS server functionality | S: DOTS server functionality | |||
Figure 3: DMS Selection for Mitigation | ||||
Figure 3: DMS Selection for Mitigation | ||||
{ | { | |||
"ietf-dots-telemetry:telemetry": { | "ietf-dots-telemetry:telemetry": { | |||
"pre-or-ongoing-mitigation": [ | "pre-or-ongoing-mitigation": [ | |||
{ | { | |||
"target": { | "target": { | |||
"target-prefix": [ | "target-prefix": [ | |||
"192.0.2.3/32" | "192.0.2.3/32" | |||
] | ] | |||
}, | }, | |||
"total-attack-traffic": [ | "total-attack-traffic": [ | |||
skipping to change at page 8, line 28 ¶ | skipping to change at line 317 ¶ | |||
"high-percentile-g": "1000", | "high-percentile-g": "1000", | |||
"peak-g":"1100", | "peak-g":"1100", | |||
"current-g":"700" | "current-g":"700" | |||
} | } | |||
] | ] | |||
} | } | |||
] | ] | |||
} | } | |||
} | } | |||
Figure 4: Example of Message Body with Total Attack Traffic | Figure 4: Example of Message Body with Total Attack Traffic | |||
The forwarding nodes send traffic statistics to the flow collectors, | The forwarding nodes send traffic statistics to the flow collectors, | |||
e.g., using IPFIX. When DDoS attacks occur, the flow collectors | e.g., using IPFIX. When DDoS attacks occur, the flow collectors | |||
identify the attack traffic and send information about the attack | identify the attack traffic and send information about the attack | |||
traffic volume to the orchestrator by using the "target-prefix" and | traffic volume to the orchestrator using the "target-prefix" and | |||
"total-attack-traffic" DOTS telemetry attributes. The orchestrator | "total-attack-traffic" DOTS telemetry attributes. The orchestrator | |||
then checks the available capacity of the DMSes by using a network | then checks the available capacity of the DMSes using a network | |||
management protocol, such as Simple Network Management Protocol | management protocol, such as the Simple Network Management Protocol | |||
(SNMP) [RFC3413] or YANG with Network Configuration Protocol (YANG/ | (SNMP) [RFC3413] or YANG with the Network Configuration Protocol | |||
NETCONF) [RFC7950]. After that, the orchestrator selects a DMS with | (YANG/NETCONF) [RFC7950]. After that, the orchestrator selects a DMS | |||
sufficient capacity to which attack traffic should be redirected. | with sufficient capacity to which attack traffic should be | |||
For example, a simple DMS selection algorithm is to choose a DMS | redirected. For example, a simple DMS selection algorithm can be | |||
whose available capacity is greater than the "peak-g" attribute | used to choose a DMS whose available capacity is greater than the | |||
indicated in the DOTS telemetry message. The orchestrator orders the | "peak-g" telemetry attribute indicated in the DOTS telemetry message. | |||
appropriate forwarding nodes to redirect the attack traffic to the | The orchestrator orders the appropriate forwarding nodes to redirect | |||
DMS relying upon routing policies, such as BGP [RFC4271]. | the attack traffic to the DMS relying upon routing policies, such as | |||
BGP [RFC4271]. | ||||
The detailed DMS selection algorithm is out of the scope of this | The detailed DMS selection algorithm is out of the scope of this | |||
document. | document. | |||
The flow collector implements a DOTS client while the orchestrator | The flow collector implements a DOTS client while the orchestrator | |||
implements a DOTS server. | implements a DOTS server. | |||
3.1.3. Path Selection for Redirection | 3.1.3. Path Selection for Redirection | |||
A transit provider network has multiple paths to convey attack | A transit provider network has multiple paths to convey attack | |||
traffic to a DMS. In such a network, the attack traffic can be | traffic to a DMS. In such a network, the attack traffic can be | |||
conveyed while avoiding congested links by adequately selecting an | conveyed while avoiding congested links by adequately selecting an | |||
available path. | available path. | |||
This use case enables transit providers to select a path with | This use case enables transit providers to select a path with | |||
sufficient bandwidth for redirecting attack traffic to a DMS | sufficient bandwidth for redirecting attack traffic to a DMS | |||
according to the bandwidth of the attack traffic and total traffic. | according to the bandwidth of the attack traffic and total traffic. | |||
Figure 5 gives an overview of this use case. Figure 6 provides an | Figure 5 gives an overview of this use case. Figure 6 provides an | |||
example of a DOTS telemetry message body that is used to signal | example of a DOTS telemetry message body that is used to signal | |||
various attack traffic percentiles and total traffic percentiles. | percentiles for total traffic and total attack traffic. | |||
(Internet Transit Provider) | (Internet Transit Provider) | |||
+-----------+ +--------------+ DOTS | +-----------+ +--------------+ DOTS | |||
+-----------+| | |S<--- | +-----------+| | |S<--- | |||
IPFIX | Flow || DOTS | Orchestrator | | IPFIX | Flow || DOTS | Orchestrator | | |||
-->| collector ||C<-->S| | BGP Flowspec (Redirect) | -->| collector ||C<-->S| | BGP Flowspec (Redirect) | |||
| |+ | |---> | | |+ | |---> | |||
+-----------+ +--------------+ | +-----------+ +--------------+ | |||
skipping to change at page 9, line 46 ¶ | skipping to change at line 383 ¶ | |||
|| / | || / | |||
DOTS +-||----------------+ BGP Flowspec (Redirect) | DOTS +-||----------------+ BGP Flowspec (Redirect) | |||
--->C| || Forwarding |<--- | --->C| || Forwarding |<--- | |||
| ++=== node | | | ++=== node | | |||
+----||-------------+ | +----||-------------+ | |||
|/ | |/ | |||
+--x-----------+ | +--x-----------+ | |||
| DMS | | | DMS | | |||
+--------------+ | +--------------+ | |||
* C is for DOTS client functionality | C: DOTS client functionality | |||
* S is for DOTS server functionality | S: DOTS server functionality | |||
Figure 5: Path Selection for Redirection | ||||
Figure 5: Path Selection for Redirection | ||||
{ | { | |||
"ietf-dots-telemetry:telemetry": { | "ietf-dots-telemetry:telemetry": { | |||
"pre-or-ongoing-mitigation": [ | "pre-or-ongoing-mitigation": [ | |||
{ | { | |||
"target": { | "target": { | |||
"target-prefix": [ | "target-prefix": [ | |||
"2001:db8::1/128" | "2001:db8::1/128" | |||
] | ] | |||
}, | }, | |||
"total-traffic": [ | "total-traffic": [ | |||
skipping to change at page 10, line 35 ¶ | skipping to change at line 419 ¶ | |||
"high-percentile-g": "1000", | "high-percentile-g": "1000", | |||
"peak-g": "1100", | "peak-g": "1100", | |||
"current-g": "700" | "current-g": "700" | |||
} | } | |||
] | ] | |||
} | } | |||
] | ] | |||
} | } | |||
} | } | |||
Figure 6: An Example of Message Body with Total Attack | Figure 6: Example of Message Body with Total Attack Traffic and | |||
Traffic and Total Traffic | Total Traffic | |||
The forwarding nodes send traffic statistics to the flow collectors, | The forwarding nodes send traffic statistics to the flow collectors, | |||
e.g., using IPFIX. When DDoS attacks occur, the flow collectors | e.g., using IPFIX. When DDoS attacks occur, the flow collectors | |||
identify attack traffic and send information about the attack traffic | identify attack traffic and send information about the attack traffic | |||
volume to the orchestrator by using "target-prefix" and "total- | volume to the orchestrator using the "target-prefix" and "total- | |||
attack-traffic" DOTS telemetry attributes. The underlying forwarding | attack-traffic" DOTS telemetry attributes. The underlying forwarding | |||
nodes send the volume on the total traffic passing the node to the | nodes send the volume of the total traffic passing the node to the | |||
orchestrator by using "total-traffic" telemetry attributes. The | orchestrator using the "total-traffic" telemetry attributes. The | |||
orchestrator then selects a path with sufficient bandwidth to which | orchestrator then selects a path with sufficient bandwidth to which | |||
attack-traffic flow should be redirected. For example, the simple | the flow of attack traffic should be redirected. For example, a | |||
algorithm of the selection is to choose a path whose available | simple selection algorithm can be used to choose a path whose | |||
capacity is greater than the "peak-g" attribute that was indicated in | available capacity is greater than the "peak-g" telemetry attribute | |||
a DOTS telemetry message. After that, the orchestrator orders the | that was indicated in a DOTS telemetry message. After that, the | |||
appropriate forwarding nodes to redirect the attack traffic to the | orchestrator orders the appropriate forwarding nodes to redirect the | |||
DMS by dissemination of Flow Specifications using tools such as | attack traffic to the DMS by dissemination of Flow Specifications | |||
Border Gateway Protocol Dissemination of Flow Specification Rules | using tools such as BGP Flowspec [RFC8955]. | |||
(BGP Flowspec) [RFC8955]. | ||||
The detailed path selection algorithm is out of the scope of this | The detailed path selection algorithm is out of the scope of this | |||
document. | document. | |||
The flow collector and forwarding nodes implement a DOTS client while | The flow collector and forwarding nodes implement a DOTS client while | |||
the orchestrator implements a DOTS server. | the orchestrator implements a DOTS server. | |||
3.1.4. Short but Extreme Volumetric Attack Mitigation | 3.1.4. Short but Extreme Volumetric Attack Mitigation | |||
Short but extreme volumetric attacks, such as pulse wave DDoS | Short but extreme volumetric attacks, such as pulse wave DDoS | |||
attacks, are threats to Internet transit provider networks. These | attacks, are threats to Internet transit provider networks. These | |||
attacks start from zero and go to maximum values in a very short time | attacks start from zero and go to maximum values in a very short time | |||
span, then go back to zero, and then back to maximum, repeating in | span. The attacks go back to zero and then back to maximum values, | |||
continuous cycles at short intervals. It is difficult for the | repeating in continuous cycles at short intervals. It is difficult | |||
transit providers to mitigate such an attack with their DMSes using a | for transit providers to mitigate such an attack with their DMSes by | |||
redirecting attack flows because this may cause route flapping in the | redirecting attack flows because this may cause route flapping in the | |||
network. The practical way to mitigate short but extreme volumetric | network. The practical way to mitigate short but extreme volumetric | |||
attacks is to offload mitigation actions to a forwarding node. | attacks is to offload mitigation actions to a forwarding node. | |||
This use case enables transit providers to mitigate short but extreme | This use case enables transit providers to mitigate short but extreme | |||
volumetric attacks. Furthermore, the aim is to estimate the network- | volumetric attacks. Furthermore, the aim is to estimate the network- | |||
access success rate based on the bandwidth of the attack traffic. | access success rate based on the bandwidth of the attack traffic. | |||
Figure 7 gives an overview of this use case. Figure 8 provides an | Figure 7 gives an overview of this use case. Figure 8 provides an | |||
example of a DOTS telemetry message body that is used to signal total | example of a DOTS telemetry message body that is used to signal total | |||
pipe capacity. Figure 9 provides an example of a DOTS telemetry | pipe capacity. Figure 9 provides an example of a DOTS telemetry | |||
message body that is used to signal various attack traffic | message body that is used to signal various percentiles for total | |||
percentiles and total traffic percentiles. | traffic and total attack traffic. | |||
(Internet Transit Provider) | ||||
+------------+ +----------------+ | (Internet Transit Provider) | |||
| Network | DOTS | Administrative | | ||||
Alert ----->| Management |C<--->S| System | BGP Flowspec (Rate-Limit) | ||||
| System | | |---> | ||||
+------------+ +----------------+ | ||||
+------------+ +------------+ BGP Flowspec (Rate-Limit X bps) | +------------+ +----------------+ | |||
| Forwarding | | Forwarding |<--- | | Network | DOTS | Administrative | BGP Flowspec | |||
| node | | node | | Alert----->| Management |C<--->S| System | (Rate-Limit) | |||
Link1 | | | | DDoS & Normal traffic | | System | | |---> | |||
[Target]<------------------------------------================ | +------------+ +----------------+ | |||
Pipe +------------+ +------------+ Attack Traffic | BGP Flowspec | |||
Capability Bandwidth | +------------+ +------------+ (Rate-Limit X bps) | |||
X bps Y bps | | Forwarding | | Forwarding |<--- | |||
| node | | node | | ||||
Link1 | | | | DDoS & Normal traffic | ||||
[Target]<------------------------------------================ | ||||
Pipe +------------+ +------------+ Attack Traffic | ||||
Capability Bandwidth | ||||
X bps Y bps | ||||
Network access success rate | Network-access success rate | |||
X / (X + Y) | X / (X + Y) | |||
* C is for DOTS client functionality | C: DOTS client functionality | |||
* S is for DOTS server functionality | S: DOTS server functionality | |||
Figure 7: Short but Extreme Volumetric Attack Mitigation | Figure 7: Short but Extreme Volumetric Attack Mitigation | |||
{ | { | |||
"ietf-dots-telemetry:telemetry-setup": { | "ietf-dots-telemetry:telemetry-setup": { | |||
"telemetry": [ | "telemetry": [ | |||
{ | { | |||
"total-pipe-capacity": [ | "total-pipe-capacity": [ | |||
{ | { | |||
"link-id": "link1", | "link-id": "link1", | |||
"capacity": "1000", | "capacity": "1000", | |||
"unit": "megabit-ps" | "unit": "megabit-ps" | |||
} | } | |||
] | ] | |||
} | } | |||
] | ] | |||
} | } | |||
} | } | |||
Figure 8: Example of Message Body with Total Pipe Capacity | ||||
Figure 8: Example of Message Body with Total Pipe Capacity | ||||
{ | { | |||
"ietf-dots-telemetry:telemetry": { | "ietf-dots-telemetry:telemetry": { | |||
"pre-or-ongoing-mitigation": [ | "pre-or-ongoing-mitigation": [ | |||
{ | { | |||
"target": { | "target": { | |||
"target-prefix": [ | "target-prefix": [ | |||
"2001:db8::1/128" | "2001:db8::1/128" | |||
] | ] | |||
}, | }, | |||
"total-traffic": [ | "total-traffic": [ | |||
skipping to change at page 13, line 35 ¶ | skipping to change at line 539 ¶ | |||
"high-percentile-g": "500", | "high-percentile-g": "500", | |||
"peak-g": "600", | "peak-g": "600", | |||
"current-g": "400" | "current-g": "400" | |||
} | } | |||
] | ] | |||
} | } | |||
] | ] | |||
} | } | |||
} | } | |||
Figure 9: Example of Message Body with Total Attack Traffic, | Figure 9: Example of Message Body with Total Attack Traffic and | |||
and Total Traffic | Total Traffic | |||
When DDoS attacks occur, the network management system receives | When DDoS attacks occur, the network management system receives | |||
alerts. Then, it sends the target IP address(es) and volume of the | alerts. Then, it sends the target IP address(es) and volume of the | |||
DDoS attack traffic to the administrative system by using the | DDoS attack traffic to the administrative system using the "target- | |||
"target-prefix" and "total-attack-traffic" DOTS telemetry attributes. | prefix" and "total-attack-traffic" DOTS telemetry attributes. After | |||
After that, the administrative system orders relevant forwarding | that, the administrative system orders relevant forwarding nodes to | |||
nodes to carry out rate-limiting of all traffic destined to the | carry out rate-limiting of all traffic destined to the target based | |||
target based on the pipe capability by the dissemination of the Flow | on the pipe capability by the dissemination of the Flow | |||
Specifications using tools such as Border Gateway Protocol | Specifications using tools such as BGP Flowspec [RFC8955]. In | |||
Dissemination of Flow Specification Rules (BGP Flowspec) [RFC8955]. | addition, the administrative system estimates the network-access | |||
In addition, the administrative system estimates the network-access | ||||
success rate of the target, which is calculated by (total-pipe- | success rate of the target, which is calculated by (total-pipe- | |||
capability / (total-pipe-capability + total-attack-traffic)). | capability / (total-pipe-capability + total-attack-traffic)). | |||
Note that total pipe capability information can be gathered by | Note that total pipe capability information can be gathered by | |||
telemetry setup in advance (Section 7.2 of [RFC9244]). | telemetry setup in advance (Section 7.2 of [RFC9244]). | |||
The network management system implements a DOTS client while the | The network management system implements a DOTS client while the | |||
administrative system implements a DOTS server. | administrative system implements a DOTS server. | |||
3.1.5. Selecting Mitigation Technique Based on Attack Type | 3.1.5. Selecting Mitigation Technique Based on Attack Type | |||
Some volumetric attacks, such as DNS amplification attacks, can be | Some volumetric attacks, such as DNS amplification attacks, can be | |||
detected with high accuracy by checking the Layer 3 or Layer 4 | detected with high accuracy by checking the Layer 3 or Layer 4 | |||
information of attack packets. These attacks can be detected and | information of attack packets. These attacks can be detected and | |||
mitigated through cooperation among forwarding nodes and flow | mitigated through cooperation among forwarding nodes and flow | |||
collectors by using IPFIX. It may also be necessary to inspect the | collectors using IPFIX. It may also be necessary to inspect the | |||
Layer 7 information of suspicious packets to detect attacks such as | Layer 7 information of suspicious packets to detect attacks such as | |||
DNS Water Torture Attacks [DNS_Water_Torture_Attack]. To carry out | DNS water torture attacks [DNS_Water_Torture_Attack]. To carry out | |||
the DNS water torture attack, an attacker commands a botnet to make | the DNS water torture attack, an attacker commands a botnet to make | |||
thousands of DNS requests for fake subdomains against an | thousands of DNS requests for fake subdomains against an | |||
Authoritative Name Server. Such attack traffic should be detected | authoritative name server. Such attack traffic should be detected | |||
and mitigated at the DMS. | and mitigated at the DMS. | |||
This use case enables transit providers to select a mitigation | This use case enables transit providers to select a mitigation | |||
technique based on the type of attack traffic: amplification attack | technique based on the type of attack traffic, whether it is an | |||
or not. To use such a technique, the attack traffic is blocked by | amplification attack or not. To use such a technique, the attack | |||
forwarding nodes or redirected to a DMS based on the attack type | traffic is blocked by forwarding nodes or redirected to a DMS based | |||
through cooperation among forwarding nodes, flow collectors, and an | on the attack type through cooperation among forwarding nodes, flow | |||
orchestrator. | collectors, and an orchestrator. | |||
Figure 10 gives an overview of this use case. Figure 11 provides an | Figure 10 gives an overview of this use case. Figure 11 provides an | |||
example of attack mappings that are shared by using the DOTS data | example of attack mappings that are shared using the DOTS data | |||
channel in advance. Figure 12 provides an example of a DOTS | channel in advance. Figure 12 provides an example of a DOTS | |||
telemetry message body that is used to signal various attack traffic | telemetry message body that is used to signal percentiles for total | |||
percentiles, total traffic percentiles, total attack connection, and | attack traffic, total attack traffic protocol, and total attack | |||
attack type. | connection; it also shows attack details. | |||
The example in Figure 11 uses the folding defined in [RFC8792] for | The example in Figure 11 uses the folding defined in [RFC8792] for | |||
long lines. | long lines. | |||
(Internet Transit Provider) | (Internet Transit Provider) | |||
+-----------+ DOTS +--------------+ | +-----------+ DOTS +--------------+ | |||
+-----------+|<---->| | BGP (Redirect) | +-----------+|<---->| | BGP (Redirect) | |||
IPFIX | Flow ||C S| Orchestrator | BGP Flowspec (Drop) | IPFIX | Flow ||C S| Orchestrator | BGP Flowspec (Drop) | |||
--->| collector |+ | |---> | --->| collector |+ | |---> | |||
+-----------+ +--------------+ | +-----------+ +--------------+ | |||
+------------+ BGP (Redirect) | +------------+ BGP (Redirect) | |||
IPFIX +------------+| BGP Flowspec (Drop) | IPFIX +------------+| BGP Flowspec (Drop) | |||
<---| Forwarding ||<--- | <---| Forwarding ||<--- | |||
skipping to change at page 15, line 29 ¶ | skipping to change at line 615 ¶ | |||
| || |+x<==============[NTP Amp] | | || |+x<==============[NTP Amp] | |||
+-----||-----+ | +-----||-----+ | |||
|| | || | |||
|/ | |/ | |||
+-----x------+ | +-----x------+ | |||
| DDoS | | | DDoS | | |||
| mitigation | | | mitigation | | |||
| system | | | system | | |||
+------------+ | +------------+ | |||
* C is for DOTS client functionality | C: DOTS client functionality | |||
* S is for DOTS server functionality | S: DOTS server functionality | |||
* DNS Amp: DNS Amplification | DNS Amp: DNS Amplification | |||
* NTP Amp: NTP Amplification | NTP Amp: NTP Amplification | |||
Figure 10: Selecting Mitigation Technique Based on Attack Type | ||||
Figure 10: DDoS Mitigation Based on Attack Type | ||||
=============== NOTE: '\' line wrapping per RFC 8792 ================ | =============== NOTE: '\' line wrapping per RFC 8792 ================ | |||
{ | { | |||
"ietf-dots-mapping:vendor-mapping": { | "ietf-dots-mapping:vendor-mapping": { | |||
"vendor": [ | "vendor": [ | |||
{ | { | |||
"vendor-id": 32473, | "vendor-id": 32473, | |||
"vendor-name": "mitigator-c", | "vendor-name": "mitigator-c", | |||
"last-updated": "1629898958", | "last-updated": "1629898958", | |||
"attack-mapping": [ | "attack-mapping": [ | |||
skipping to change at page 16, line 34 ¶ | skipping to change at line 652 ¶ | |||
This attack is a type of reflection attack in which attackers \ | This attack is a type of reflection attack in which attackers \ | |||
spoof a target's IP address. The attackers abuse vulnerabilities \ | spoof a target's IP address. The attackers abuse vulnerabilities \ | |||
in NTP servers to turn small queries into larger payloads." | in NTP servers to turn small queries into larger payloads." | |||
} | } | |||
] | ] | |||
} | } | |||
] | ] | |||
} | } | |||
} | } | |||
Figure 11: Example of Message Body with Attack Mappings | Figure 11: Example of Message Body with Attack Mappings | |||
{ | { | |||
"ietf-dots-telemetry:telemetry": { | "ietf-dots-telemetry:telemetry": { | |||
"pre-or-ongoing-mitigation": [ | "pre-or-ongoing-mitigation": [ | |||
{ | { | |||
"target": { | "target": { | |||
"target-prefix": [ | "target-prefix": [ | |||
"2001:db8::1/128" | "2001:db8::1/128" | |||
] | ||||
}, | ||||
"total-attack-traffic": [ | ||||
{ | ||||
"unit": "megabit-ps", | ||||
"low-percentile-g": "600", | ||||
"mid-percentile-g": "800", | ||||
"high-percentile-g": "1000", | ||||
"peak-g": "1100", | ||||
"current-g": "700" | ||||
} | ||||
], | ||||
"total-attack-traffic-protocol": [ | ||||
{ | ||||
"protocol": 17, | ||||
"unit": "megabit-ps", | ||||
"mid-percentile-g": "500" | ||||
}, | ||||
{ | ||||
"protocol": 15, | ||||
"unit": "megabit-ps", | ||||
"mid-percentile-g": "200" | ||||
} | ||||
], | ||||
"total-attack-connection": [ | ||||
{ | ||||
"mid-percentile-l": [ | ||||
{ | ||||
"protocol": 15, | ||||
"connection": 200 | ||||
} | ||||
], | ||||
"high-percentile-l": [ | ||||
{ | ||||
"protocol": 17, | ||||
"connection": 300 | ||||
} | ||||
] | ] | |||
} | }, | |||
], | "total-attack-traffic": [ | |||
"attack-detail": [ | { | |||
{ | "unit": "megabit-ps", | |||
"vendor-id": 32473, | "low-percentile-g": "600", | |||
"attack-id": 77, | "mid-percentile-g": "800", | |||
"start-time": "1641169211", | "high-percentile-g": "1000", | |||
"attack-severity": "high" | "peak-g": "1100", | |||
}, | "current-g": "700" | |||
{ | } | |||
"vendor-id": 32473, | ], | |||
"attack-id": 92, | "total-attack-traffic-protocol": [ | |||
"start-time": "1641172809", | { | |||
"attack-severity": "high" | "protocol": 17, | |||
} | "unit": "megabit-ps", | |||
] | "mid-percentile-g": "500" | |||
} | }, | |||
] | { | |||
} | "protocol": 15, | |||
"unit": "megabit-ps", | ||||
} | "mid-percentile-g": "200" | |||
} | ||||
], | ||||
"total-attack-connection": [ | ||||
{ | ||||
"mid-percentile-l": [ | ||||
{ | ||||
"protocol": 15, | ||||
"connection": 200 | ||||
} | ||||
], | ||||
"high-percentile-l": [ | ||||
{ | ||||
"protocol": 17, | ||||
"connection": 300 | ||||
} | ||||
] | ||||
} | ||||
], | ||||
"attack-detail": [ | ||||
{ | ||||
"vendor-id": 32473, | ||||
"attack-id": 77, | ||||
"start-time": "1641169211", | ||||
"attack-severity": "high" | ||||
}, | ||||
{ | ||||
"vendor-id": 32473, | ||||
"attack-id": 92, | ||||
"start-time": "1641172809", | ||||
"attack-severity": "high" | ||||
} | ||||
] | ||||
} | ||||
] | ||||
} | ||||
} | ||||
Figure 12: Example of Message Body with Total Attack Traffic, | Figure 12: Example of Message Body with Total Attack Traffic, | |||
Total Attack Traffic Protocol, Total Attack Connection and Attack Type | Total Attack Traffic Protocol, Total Attack Connection, and | |||
Attack Detail | ||||
Attack mappings are shared by using the DOTS data channel in advance | Attack mappings are shared using the DOTS data channel in advance | |||
(Section 8.1.6 of [RFC9244]). The forwarding nodes send traffic | (Section 8.1.6 of [RFC9244]). The forwarding nodes send traffic | |||
statistics to the flow collectors, e.g., using IPFIX. When DDoS | statistics to the flow collectors, e.g., using IPFIX. When DDoS | |||
attacks occur, the flow collectors identify attack traffic and send | attacks occur, the flow collectors identify attack traffic and send | |||
attack type information to the orchestrator by using "vendor-id" and | attack type information to the orchestrator using the "vendor-id" and | |||
"attack-id" telemetry attributes. The orchestrator then resolves | "attack-id" telemetry attributes. The orchestrator then resolves | |||
abused port numbers and orders relevant forwarding nodes to block the | abused port numbers and orders relevant forwarding nodes to block the | |||
amplification attack traffic flow by dissemination of Flow | amplification attack traffic flow by dissemination of Flow | |||
Specifications using tools such as Border Gateway Protocol | Specifications using tools such as BGP Flowspec [RFC8955]. Also, the | |||
Dissemination of Flow Specification Rules (BGP Flowspec) [RFC8955]. | orchestrator orders relevant forwarding nodes to redirect traffic | |||
Also, the orchestrator orders relevant forwarding nodes to redirect | other than the amplification attack traffic using a routing protocol, | |||
other traffic than the amplification attack traffic by using a | such as BGP [RFC4271]. | |||
routing protocol, such as BGP [RFC4271]. | ||||
The flow collector implements a DOTS client while the orchestrator | The flow collector implements a DOTS client while the orchestrator | |||
implements a DOTS server. | implements a DOTS server. | |||
3.2. Detailed DDoS Mitigation Report | 3.2. Detailed DDoS Mitigation Report | |||
It is possible for the transit provider to add value to the DDoS | It is possible for the transit provider to add value to the DDoS | |||
mitigation service by reporting ongoing and detailed DDoS | mitigation service by reporting ongoing and detailed DDoS | |||
countermeasure status to the enterprise network. In addition, it is | countermeasure status to the enterprise network. In addition, it is | |||
possible for the transit provider to know whether the DDoS | possible for the transit provider to know whether the DDoS | |||
countermeasure is effective or not by receiving reports from the | countermeasure is effective or not by receiving reports from the | |||
enterprise network. | enterprise network. | |||
This use case enables sharing of information about ongoing DDoS | This use case enables the mutual sharing of information about ongoing | |||
countermeasures between the transit provider and the enterprise | DDoS countermeasures between the transit provider and the enterprise | |||
network mutually. Figure 13 gives an overview of this use case. | network. Figure 13 gives an overview of this use case. Figure 14 | |||
Figure 14 provides an example of a DOTS telemetry message body that | provides an example of a DOTS telemetry message body that is used to | |||
is used to signal total pipe capacity from the enterprise network | signal total pipe capacity from the enterprise network administrator | |||
administrator to the orchestrator in the ISP. Figure 15 provides an | to the orchestrator in the ISP. Figure 15 provides an example of a | |||
example of a DOTS telemetry message body that is used to signal | DOTS telemetry message body that is used to signal percentiles for | |||
various total traffic percentiles, total attack traffic percentiles, | total traffic and total attack traffic as well as attack details from | |||
and attack details from the orchestrator to the network. | the orchestrator to the network. | |||
+------------------+ +------------------------+ | +------------------+ +------------------------+ | |||
| Enterprise | | Upstream | | | Enterprise | | Upstream | | |||
| Network | | Internet Transit | | | Network | | Internet Transit | | |||
| +------------+ | | Provider | | | +------------+ | | Provider | | |||
| | Network |C | | S+--------------+ | | | | Network |C | | S+--------------+ | | |||
| | admini- |<-----DOTS---->| Orchestrator | | | | | admini- |<-----DOTS---->| Orchestrator | | | |||
| | strator | | | +--------------+ | | | | strator | | | +--------------+ | | |||
| +------------+ | | C ^ | | | +------------+ | | C ^ | | |||
| | | | DOTS | | | | | | DOTS | | |||
skipping to change at page 19, line 26 ¶ | skipping to change at line 780 ¶ | |||
| | | | DMS |+======= | | | | | DMS |+======= | |||
| | | +---------------+ | | | | | +---------------+ | | |||
| | | || Clean | | | | | || Clean | | |||
| | | |/ Traffic | | | | | |/ Traffic | | |||
| +---------+ | | +---------------+ | | | +---------+ | | +---------------+ | | |||
| | DDoS | | | | Forwarding | Normal Traffic | | | DDoS | | | | Forwarding | Normal Traffic | |||
| | Target |<================| Node |======== | | | Target |<================| Node |======== | |||
| +---------+ | Link1 | +---------------+ | | | +---------+ | Link1 | +---------------+ | | |||
+------------------+ +------------------------+ | +------------------+ +------------------------+ | |||
* C is for DOTS client functionality | C: DOTS client functionality | |||
* S is for DOTS server functionality | S: DOTS server functionality | |||
Figure 13: Detailed DDoS Mitigation Report | Figure 13: Detailed DDoS Mitigation Report | |||
{ | { | |||
"ietf-dots-telemetry:telemetry-setup": { | "ietf-dots-telemetry:telemetry-setup": { | |||
"telemetry": [ | "telemetry": [ | |||
{ | { | |||
"total-pipe-capacity": [ | "total-pipe-capacity": [ | |||
{ | { | |||
"link-id": "link1", | "link-id": "link1", | |||
"capacity": "1000", | "capacity": "1000", | |||
"unit": "megabit-ps" | "unit": "megabit-ps" | |||
} | } | |||
] | ] | |||
} | } | |||
] | ] | |||
} | } | |||
} | } | |||
Figure 14: An Example of Message Body with Total Pipe Capacity | ||||
Figure 14: Example of Message Body with Total Pipe Capacity | ||||
{ | { | |||
"ietf-dots-telemetry:telemetry": { | "ietf-dots-telemetry:telemetry": { | |||
"pre-or-ongoing-mitigation": [ | "pre-or-ongoing-mitigation": [ | |||
{ | { | |||
"tmid": 567, | "tmid": 567, | |||
"target": { | "target": { | |||
"target-prefix": [ | "target-prefix": [ | |||
"2001:db8::1/128" | "2001:db8::1/128" | |||
] | ] | |||
}, | }, | |||
skipping to change at page 20, line 42 ¶ | skipping to change at line 841 ¶ | |||
"attack-id": 77, | "attack-id": 77, | |||
"start-time": "1644819611", | "start-time": "1644819611", | |||
"attack-severity": "high" | "attack-severity": "high" | |||
} | } | |||
] | ] | |||
} | } | |||
] | ] | |||
} | } | |||
} | } | |||
Figure 15: An Example of Message Body with Total Traffic, | Figure 15: Example of Message Body with Total Traffic, Total | |||
Total Attack Traffic Protocol, and Attack Detail | Attack Traffic, and Attack Detail | |||
The network management system in the enterprise network reports | The network management system in the enterprise network reports | |||
limits of incoming traffic volume from the transit provider to the | limits of incoming traffic volume from the transit provider to the | |||
orchestrator in the transit provider in advance. It is reported by | orchestrator in the transit provider in advance. It is reported | |||
using the "total-pipe-capacity" telemetry attribute in the DOTS | using the "total-pipe-capacity" telemetry attribute in the DOTS | |||
telemetry setup. | telemetry setup. | |||
When DDoS attacks occur, DDoS mitigation orchestration [RFC8903] is | When DDoS attacks occur, DDoS mitigation orchestration [RFC8903] is | |||
carried out in the transit provider. Then, the DDoS mitigation | carried out in the transit provider. Then, the DDoS mitigation | |||
systems report the status of DDoS countermeasures to the orchestrator | systems report the status of DDoS countermeasures to the orchestrator | |||
by sending "attack-detail" telemetry attributes. After that, the | by sending "attack-detail" telemetry attributes. After that, the | |||
orchestrator integrates the reports from the DDoS mitigation systems, | orchestrator integrates the reports from the DDoS mitigation systems, | |||
while removing duplicate contents, and sends the integrated report to | while removing duplicate contents, and sends the integrated report to | |||
a network administrator by using DOTS telemetry periodically. | a network administrator using DOTS telemetry periodically. | |||
During the DDoS mitigation, the orchestrator in the transit provider | During the DDoS mitigation, the orchestrator in the transit provider | |||
retrieves link congestion status from the network manager in the | retrieves the link congestion status from the network manager in the | |||
enterprise network by using "total-traffic" telemetry attributes. | enterprise network using the "total-traffic" telemetry attributes. | |||
Then, the orchestrator checks whether the DDoS countermeasures are | Then, the orchestrator checks whether or not the DDoS countermeasures | |||
effective or not by comparing the "total-traffic" and the "total- | are effective by comparing the "total-traffic" and the "total-pipe- | |||
pipe-capacity" attributes. | capacity" telemetry attributes. | |||
The DMS implements a DOTS server while the orchestrator behaves as a | The DMS implements a DOTS server while the orchestrator behaves as a | |||
DOTS client and a server in the transit provider. In addition, the | DOTS client and a server in the transit provider. In addition, the | |||
network administrator implements a DOTS client. | network administrator implements a DOTS client. | |||
3.3. Tuning Mitigation Resources | 3.3. Tuning Mitigation Resources | |||
3.3.1. Supervised Machine Learning of Flow Collector | 3.3.1. Supervised Machine Learning of Flow Collector | |||
DDoS detection based on tools, such as IPFIX, is a lighter weight | DDoS detection based on tools, such as IPFIX, is a lighter-weight | |||
method of detecting DDoS attacks than DMSes in Internet transit | method of detecting DDoS attacks compared to DMSes in Internet | |||
provider networks. DDoS detection based on the DMSes is a more | transit provider networks. DDoS detection based on the DMSes is a | |||
accurate method for detecting attack traffic than flow monitoring. | more accurate method for detecting attack traffic than flow | |||
monitoring. | ||||
The aim of this use case is to increase flow collectors' detection | The aim of this use case is to increase flow collectors' detection | |||
accuracy by carrying out supervised machine-learning techniques | accuracy by carrying out supervised machine-learning techniques | |||
according to attack detail reported by the DMSes. To use such a | according to attack detail reported by the DMSes. To use such a | |||
technique, forwarding nodes, flow collectors, and a DMS should | technique, forwarding nodes, flow collectors, and a DMS should | |||
cooperate. Figure 16 gives an overview of this use case. Figure 17 | cooperate. Figure 16 gives an overview of this use case. Figure 17 | |||
provides an example of a DOTS telemetry message body that is used to | provides an example of a DOTS telemetry message body that is used to | |||
signal various total attack traffic percentiles and attack detail. | signal attack detail. | |||
+-----------+ | +-----------+ | |||
+-----------+| DOTS | +-----------+| DOTS | |||
IPFIX | Flow ||S<--- | IPFIX | Flow ||S<--- | |||
--->| collector || | --->| collector || | |||
+-----------++ | +-----------++ | |||
+------------+ | +------------+ | |||
IPFIX +------------+| | IPFIX +------------+| | |||
<---| Forwarding || | <---| Forwarding || | |||
skipping to change at page 22, line 27 ¶ | skipping to change at line 909 ¶ | |||
| || || ++======================== | | || || ++======================== | |||
+---||-|| ||-+ | +---||-|| ||-+ | |||
|| || || | || || || | |||
|/ |/ |/ | |/ |/ |/ | |||
DOTS +---X--X--X--+ | DOTS +---X--X--X--+ | |||
--->C| DDoS | | --->C| DDoS | | |||
| mitigation | | | mitigation | | |||
| system | | | system | | |||
+------------+ | +------------+ | |||
* C is for DOTS client functionality | C: DOTS client functionality | |||
* S is for DOTS server functionality | S: DOTS server functionality | |||
Figure 16: Supervised Machine Learning of Flow Collector | ||||
Figure 16: Training Supervised Machine Learning of Flow Collectors | ||||
{ | { | |||
"ietf-dots-telemetry:telemetry": { | "ietf-dots-telemetry:telemetry": { | |||
"pre-or-ongoing-mitigation": [ | "pre-or-ongoing-mitigation": [ | |||
{ | { | |||
"target": { | "target": { | |||
"target-prefix": [ | "target-prefix": [ | |||
"2001:db8::1/128" | "2001:db8::1/128" | |||
] | ] | |||
}, | }, | |||
"attack-detail": [ | "attack-detail": [ | |||
skipping to change at page 23, line 33 ¶ | skipping to change at line 943 ¶ | |||
} | } | |||
] | ] | |||
} | } | |||
} | } | |||
] | ] | |||
} | } | |||
] | ] | |||
} | } | |||
} | } | |||
Figure 17: An Example of Message Body with Attack Type | Figure 17: Example of Message Body with Attack Detail and Top Talkers | |||
and top-talkers | ||||
The forwarding nodes send traffic statistics to the flow collectors, | The forwarding nodes send traffic statistics to the flow collectors, | |||
e.g., using IPFIX. When DDoS attacks occur, DDoS mitigation | e.g., using IPFIX. When DDoS attacks occur, DDoS mitigation | |||
orchestration is carried out (as per Section 3.3 of [RFC8903]) and | orchestration is carried out (as per Section 3.3 of [RFC8903]), and | |||
the DMS mitigates all attack traffic destined for a target. The DDoS | the DMS mitigates all attack traffic destined for a target. The DDoS | |||
mitigation system reports the "vendor-id", "attack-id", and "top- | mitigation system reports the "vendor-id", "attack-id", and "top- | |||
talker" telemetry attributes to a flow collector. | talker" telemetry attributes to a flow collector. | |||
After mitigating a DDoS attack, the flow collector attaches outputs | After mitigating a DDoS attack, the flow collector attaches outputs | |||
of the DMS as labels to the statistics of traffic flow of top- | of the DMS as labels to the statistics of the traffic flow of top | |||
talkers. The outputs, for example, are the "attack-id" telemetry | talkers. The outputs, for example, are the "attack-id" telemetry | |||
attributes. The flow collector then carries out supervised machine | attributes. The flow collector then carries out supervised machine | |||
learning to increase its detection accuracy, setting the statistics | learning to increase its detection accuracy, setting the statistics | |||
as an explanatory variable and setting the labels as an objective | as an explanatory variable and setting the labels as an objective | |||
variable. | variable. | |||
The DMS implements a DOTS client while the flow collector implements | The DMS implements a DOTS client while the flow collector implements | |||
a DOTS server. | a DOTS server. | |||
3.3.2. Unsupervised Machine Learning of Flow Collector | 3.3.2. Unsupervised Machine Learning of Flow Collector | |||
DMSes can detect DDoS attack traffic, which means DMSes can also | DMSes can detect DDoS attack traffic, which means DMSes can also | |||
identify clean traffic. This use case supports unsupervised machine- | identify clean traffic. This use case supports unsupervised machine | |||
learning for anomaly detection according to a baseline reported by | learning for anomaly detection according to a baseline reported by | |||
the DMSes. To use such a technique, forwarding nodes, flow | the DMSes. To use such a technique, forwarding nodes, flow | |||
collectors, and a DMS should cooperate. Figure 18 gives an overview | collectors, and a DMS should cooperate. Figure 18 gives an overview | |||
of this use case. Figure 19 provides an example of a DOTS telemetry | of this use case. Figure 19 provides an example of a DOTS telemetry | |||
message body that is used to signal baseline. | message body that is used to signal baseline. | |||
+-----------+ | +-----------+ | |||
+-----------+| | +-----------+| | |||
DOTS | Flow || | DOTS | Flow || | |||
--->S| collector || | --->S| collector || | |||
skipping to change at page 24, line 40 ¶ | skipping to change at line 995 ¶ | |||
| || |+ | | || |+ | |||
+---||-------+ | +---||-------+ | |||
|| | || | |||
|/ | |/ | |||
DOTS +---X--------+ | DOTS +---X--------+ | |||
--->C| DDoS | | --->C| DDoS | | |||
| mitigation | | | mitigation | | |||
| system | | | system | | |||
+------------+ | +------------+ | |||
* C is for DOTS client functionality | C: DOTS client functionality | |||
* S is for DOTS server functionality | S: DOTS server functionality | |||
Figure 18: Unsupervised Machine Learning of Flow Collector | ||||
Figure 18: Training Unsupervised Machine Learning of Flow Collectors | ||||
{ | { | |||
"ietf-dots-telemetry:telemetry-setup": { | "ietf-dots-telemetry:telemetry-setup": { | |||
"telemetry": [ | "telemetry": [ | |||
{ | { | |||
"baseline": [ | "baseline": [ | |||
{ | { | |||
"id": 1, | "id": 1, | |||
"target-prefix": [ | "target-prefix": [ | |||
"2001:db8:6401::1/128" | "2001:db8:6401::1/128" | |||
], | ], | |||
skipping to change at page 25, line 38 ¶ | skipping to change at line 1034 ¶ | |||
"peak-g": "70" | "peak-g": "70" | |||
} | } | |||
] | ] | |||
} | } | |||
] | ] | |||
} | } | |||
] | ] | |||
} | } | |||
} | } | |||
Figure 19: An Example of Message Body with Traffic Baseline | Figure 19: Example of Message Body with Traffic Baseline | |||
The forwarding nodes carry out traffic mirroring to copy the traffic | The forwarding nodes carry out traffic mirroring to copy the traffic | |||
destined an IP address and to monitor the traffic by a DMS. The DMS | destined to an IP address and to monitor the traffic by a DMS. The | |||
then identifies "clean" traffic and reports the baseline attributes | DMS then identifies clean traffic and reports the baseline telemetry | |||
to the flow collector by using DOTS telemetry. | attributes to the flow collector using DOTS telemetry. | |||
The flow collector then carries out unsupervised machine learning to | The flow collector then carries out unsupervised machine learning to | |||
be able to carry out anomaly detection. | be able to carry out anomaly detection. | |||
The DMS implements a DOTS client while the flow collector implements | The DMS implements a DOTS client while the flow collector implements | |||
a DOTS server. | a DOTS server. | |||
4. Security Considerations | 4. Security Considerations | |||
DOTS telemetry security considerations are discussed in Section 14 of | Security considerations for DOTS telemetry are discussed in | |||
[RFC9244]. These considerations apply for the communication | Section 14 of [RFC9244]. These considerations apply to the | |||
interfaces where DOTS is used. | communication interfaces where DOTS is used. | |||
Some use cases involve controllers, orchestrators, and programmable | Some use cases involve controllers, orchestrators, and programmable | |||
interfaces. These interfaces can be misused by misbehaving nodes to | interfaces. These interfaces can be misused by misbehaving nodes to | |||
further exacerbate DDoS attacks. The considerations are for end-to- | further exacerbate DDoS attacks. The considerations are for end-to- | |||
end systems for DoS mitigation, so the mechanics are outside the | end systems for DoS mitigation, so the mechanics are outside the | |||
scope of DOTS protocols. Section 5 of [RFC7149] discusses some | scope of DOTS protocols. Section 5 of [RFC7149] discusses some | |||
generic security considerations to take into account in such contexts | generic security considerations to take into account in such contexts | |||
(e.g., reliable access control). Specific security measures depend | (e.g., reliable access control). Specific security measures depend | |||
on the actual mechanism used to control underlying forwarding nodes | on the actual mechanism used to control underlying forwarding nodes | |||
and other controlled elements. For example, Section 13 of [RFC8955] | and other controlled elements. For example, Section 12 of [RFC8955] | |||
discusses security considerations that are relevant to BGP Flowspec. | discusses security considerations that are relevant to BGP Flowspec. | |||
IPFIX-specific considerations are discussed in Section 11 of | IPFIX-specific considerations are discussed in Section 11 of | |||
[RFC7011]. | [RFC7011]. | |||
5. IANA Considerations | 5. IANA Considerations | |||
This document does not require any action from IANA. | This document has no IANA actions. | |||
6. Acknowledgement | ||||
The authors would like to thank Mohamed Boucadair and Valery Smyslov | ||||
for their valuable feedback. | ||||
Thanks to Paul Wouters for the detailed AD review. | ||||
Many thanks to Donald Eastlake, Phillip Hallam-Baker, Sean Turner, | ||||
and Peter Yee for the AD review. | ||||
Thanks to Lars Eggert, Murray Kucherawy, Roman Danyliw, Robert | ||||
Wiltonm, and Eric Vyncke for the IESG review. | ||||
7. References | 6. References | |||
7.1. Normative References | 6.1. Normative References | |||
[RFC9244] Boucadair, M., Ed., Reddy.K, T., Ed., Doron, E., Chen, M., | [RFC9244] Boucadair, M., Ed., Reddy.K, T., Ed., Doron, E., Chen, M., | |||
and J. Shallow, "Distributed Denial-of-Service Open Threat | and J. Shallow, "Distributed Denial-of-Service Open Threat | |||
Signaling (DOTS) Telemetry", RFC 9244, | Signaling (DOTS) Telemetry", RFC 9244, | |||
DOI 10.17487/RFC9244, June 2022, | DOI 10.17487/RFC9244, June 2022, | |||
<https://www.rfc-editor.org/info/rfc9244>. | <https://www.rfc-editor.org/info/rfc9244>. | |||
7.2. Informative References | 6.2. Informative References | |||
[DNS_Water_Torture_Attack] | [DNS_Water_Torture_Attack] | |||
Xi, L., "A Large Scale Analysis of DNS Water Torture | Luo, X., Wang, L., Xu, Z., Chen, K., Yang, J., and T. | |||
Attack", DOI 10.1145/3297156.3297272, December 2018, | Tian, "A Large Scale Analysis of DNS Water Torture | |||
Attack", CSAI '18: Proceedings of the 2018 2nd | ||||
International Conference on Computer Science and | ||||
Artificial Intelligence, pp. 168-173, | ||||
DOI 10.1145/3297156.3297272, December 2018, | ||||
<https://dl.acm.org/doi/10.1145/3297156.3297272>. | <https://dl.acm.org/doi/10.1145/3297156.3297272>. | |||
[DOTS_Overview] | [DOTS_Overview] | |||
Reddy, T. and M. Boucadair, "DOTS Overview (RFCs 8782, | Reddy, T. and M. Boucadair, "DDoS Open Threat Signaling | |||
8783)", July 2020, | (DOTS)", July 2020, | |||
<https://datatracker.ietf.org/meeting/108/materials/ | <https://datatracker.ietf.org/meeting/108/materials/ | |||
slides-108-saag-dots-overview-00>. | slides-108-saag-dots-overview-00>. | |||
[RFC3413] Levi, D., Meyer, P., and B. Stewart, "Simple Network | [RFC3413] Levi, D., Meyer, P., and B. Stewart, "Simple Network | |||
Management Protocol (SNMP) Applications", STD 62, | Management Protocol (SNMP) Applications", STD 62, | |||
RFC 3413, DOI 10.17487/RFC3413, December 2002, | RFC 3413, DOI 10.17487/RFC3413, December 2002, | |||
<https://www.rfc-editor.org/info/rfc3413>. | <https://www.rfc-editor.org/info/rfc3413>. | |||
[RFC4271] Rekhter, Y., Ed., Li, T., Ed., and S. Hares, Ed., "A | [RFC4271] Rekhter, Y., Ed., Li, T., Ed., and S. Hares, Ed., "A | |||
Border Gateway Protocol 4 (BGP-4)", RFC 4271, | Border Gateway Protocol 4 (BGP-4)", RFC 4271, | |||
skipping to change at page 28, line 26 ¶ | skipping to change at line 1153 ¶ | |||
Bacher, "Dissemination of Flow Specification Rules", | Bacher, "Dissemination of Flow Specification Rules", | |||
RFC 8955, DOI 10.17487/RFC8955, December 2020, | RFC 8955, DOI 10.17487/RFC8955, December 2020, | |||
<https://www.rfc-editor.org/info/rfc8955>. | <https://www.rfc-editor.org/info/rfc8955>. | |||
[RFC9132] Boucadair, M., Ed., Shallow, J., and T. Reddy.K, | [RFC9132] Boucadair, M., Ed., Shallow, J., and T. Reddy.K, | |||
"Distributed Denial-of-Service Open Threat Signaling | "Distributed Denial-of-Service Open Threat Signaling | |||
(DOTS) Signal Channel Specification", RFC 9132, | (DOTS) Signal Channel Specification", RFC 9132, | |||
DOI 10.17487/RFC9132, September 2021, | DOI 10.17487/RFC9132, September 2021, | |||
<https://www.rfc-editor.org/info/rfc9132>. | <https://www.rfc-editor.org/info/rfc9132>. | |||
Acknowledgements | ||||
The authors would like to thank Mohamed Boucadair and Valery Smyslov | ||||
for their valuable feedback. | ||||
Thanks to Paul Wouters for the detailed AD review. | ||||
Many thanks to Donald Eastlake 3rd, Phillip Hallam-Baker, Sean | ||||
Turner, and Peter Yee for their reviews. | ||||
Thanks to Lars Eggert, Murray Kucherawy, Roman Danyliw, Robert | ||||
Wilton, and Éric Vyncke for the IESG review. | ||||
Authors' Addresses | Authors' Addresses | |||
Yuhei Hayashi | Yuhei Hayashi | |||
NTT | NTT | |||
3-9-11, Midori-cho, Tokyo | 3-9-11, Midori-cho, Tokyo | |||
180-8585 | 180-8585 | |||
Japan | Japan | |||
Email: yuuhei.hayashi@gmail.com | Email: yuuhei.hayashi@gmail.com | |||
Meiling Chen | Meiling Chen | |||
CMCC | China Mobile | |||
32, Xuanwumen West | 32, Xuanwumen West | |||
BeiJing | Beijing | |||
BeiJing, 100053 | 100053 | |||
China | China | |||
Email: chenmeiling@chinamobile.com | Email: chenmeiling@chinamobile.com | |||
Li Su | Li Su | |||
CMCC | China Mobile | |||
32, Xuanwumen West | 32, Xuanwumen West | |||
BeiJing, BeiJing | Beijing | |||
100053 | 100053 | |||
China | China | |||
Email: suli@chinamobile.com | Email: suli@chinamobile.com | |||
End of changes. 105 change blocks. | ||||
331 lines changed or deleted | 336 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. |