| rfc9133.original | rfc9133.txt | |||
|---|---|---|---|---|
| DOTS K. Nishizuka | Internet Engineering Task Force (IETF) K. Nishizuka | |||
| Internet-Draft NTT Communications | Request for Comments: 9133 NTT Communications | |||
| Intended status: Standards Track M. Boucadair | Category: Standards Track M. Boucadair | |||
| Expires: December 27, 2020 Orange | ISSN: 2070-1721 Orange | |||
| T. Reddy | T. Reddy.K | |||
| McAfee | Akamai | |||
| T. Nagata | T. Nagata | |||
| Lepidum | Lepidum | |||
| June 25, 2020 | September 2021 | |||
| Controlling Filtering Rules Using Distributed Denial-of-Service Open | Controlling Filtering Rules Using Distributed Denial-of-Service Open | |||
| Threat Signaling (DOTS) Signal Channel | Threat Signaling (DOTS) Signal Channel | |||
| draft-ietf-dots-signal-filter-control-07 | ||||
| Abstract | Abstract | |||
| This document specifies an extension to the Distributed Denial-of- | This document specifies an extension to the Distributed Denial-of- | |||
| Service Open Threat Signaling (DOTS) signal channel protocol so that | Service Open Threat Signaling (DOTS) signal channel protocol so that | |||
| DOTS clients can control their filtering rules when an attack | DOTS clients can control their filtering rules when an attack | |||
| mitigation is active. | mitigation is active. | |||
| Particularly, this extension allows a DOTS client to activate or de- | Particularly, this extension allows a DOTS client to activate or | |||
| activate existing filtering rules during a DDoS attack. The | deactivate existing filtering rules during a Distributed Denial-of- | |||
| characterization of these filtering rules is conveyed by a DOTS | Service (DDoS) attack. The characterization of these filtering rules | |||
| client during an idle time (i.e., no mitigation is active) by means | is conveyed by a DOTS client during an 'idle' time (i.e., no | |||
| of the DOTS data channel protocol. | mitigation is active) by means of the DOTS data channel protocol. | |||
| Editorial Note (To be removed by RFC Editor) | ||||
| Please update these statements within the document with the RFC | ||||
| number to be assigned to this document: | ||||
| o "This version of this YANG module is part of RFC XXXX;" | ||||
| o "RFC XXXX: Controlling Filtering Rules Using Distributed Denial- | ||||
| of-Service Open Threat Signaling (DOTS) Signal Channel"; | ||||
| o reference: RFC XXXX | ||||
| o [RFCXXXX] | ||||
| Please update the "revision" date of the YANG module. | ||||
| Status of This Memo | Status of This Memo | |||
| This Internet-Draft is submitted in full conformance with the | This is an Internet Standards Track document. | |||
| provisions of BCP 78 and BCP 79. | ||||
| Internet-Drafts are working documents of the Internet Engineering | ||||
| Task Force (IETF). Note that other groups may also distribute | ||||
| working documents as Internet-Drafts. The list of current Internet- | ||||
| Drafts is at 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). Further information on | |||
| Internet Standards is available in Section 2 of RFC 7841. | ||||
| This Internet-Draft will expire on December 27, 2020. | 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/rfc9133. | ||||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2020 IETF Trust and the persons identified as the | Copyright (c) 2021 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 | Provisions Relating to IETF Documents | |||
| (https://trustee.ietf.org/license-info) in effect on the date of | (https://trustee.ietf.org/license-info) in effect on the date of | |||
| publication of this document. Please review these documents | publication of this document. Please review these documents | |||
| carefully, as they describe your rights and restrictions with respect | carefully, as they describe your rights and restrictions with respect | |||
| to this document. Code Components extracted from this document must | to this document. Code Components extracted from this document must | |||
| include Simplified BSD License text as described in Section 4.e of | include Simplified BSD License text as described in Section 4.e of | |||
| the Trust Legal Provisions and are provided without warranty as | the Trust Legal Provisions and are provided without warranty as | |||
| described in the Simplified BSD License. | described in the Simplified BSD License. | |||
| Table of Contents | Table of Contents | |||
| 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | 1. Introduction | |||
| 1.1. The Problem . . . . . . . . . . . . . . . . . . . . . . . 3 | 1.1. The Problem | |||
| 1.2. Controlling Filtering Rules Using DOTS Signal Channel . . 4 | 1.2. Controlling Filtering Rules Using DOTS Signal Channel | |||
| 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 5 | 2. Terminology | |||
| 3. Controlling Filtering Rules of a DOTS Client . . . . . . . . 5 | 3. Controlling Filtering Rules of a DOTS Client | |||
| 3.1. Binding DOTS Data and Signal Channels . . . . . . . . . . 5 | 3.1. Binding DOTS Data and Signal Channels | |||
| 3.2. DOTS Signal Channel Extension . . . . . . . . . . . . . . 6 | 3.2. DOTS Signal Channel Extension | |||
| 3.2.1. Parameters and Behaviors . . . . . . . . . . . . . . 6 | 3.2.1. Parameters and Behaviors | |||
| 3.2.2. DOTS Signal Filtering Control Module . . . . . . . . 9 | 3.2.2. DOTS Signal Filtering Control Module | |||
| 3.2.2.1. Tree Structure . . . . . . . . . . . . . . . . . 10 | 3.2.2.1. Tree Structure | |||
| 3.2.2.2. YANG Module . . . . . . . . . . . . . . . . . . . 10 | 3.2.2.2. YANG Module | |||
| 4. Some Examples . . . . . . . . . . . . . . . . . . . . . . . . 12 | 4. Some Examples | |||
| 4.1. Conflict Handling . . . . . . . . . . . . . . . . . . . . 12 | 4.1. Conflict Handling | |||
| 4.2. On-Demand Activation of an Accept-List Filter . . . . . . 17 | 4.2. On-Demand Activation of an Accept-List Filter | |||
| 4.3. DOTS Servers/Mitigators Lacking Capacity . . . . . . . . 18 | 4.3. DOTS Servers/Mitigators Lacking Capacity | |||
| 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 22 | 5. IANA Considerations | |||
| 5.1. DOTS Signal Channel CBOR Mappings Registry . . . . . . . 22 | 5.1. DOTS Signal Channel CBOR Key Values Subregistry | |||
| 5.2. DOTS Signal Filtering Control YANG Module . . . . . . . . 23 | 5.2. A New YANG Module | |||
| 6. Security Considerations . . . . . . . . . . . . . . . . . . . 23 | 6. Security Considerations | |||
| 7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 24 | 7. References | |||
| 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 24 | 7.1. Normative References | |||
| 8.1. Normative References . . . . . . . . . . . . . . . . . . 24 | 7.2. Informative References | |||
| 8.2. Informative References . . . . . . . . . . . . . . . . . 25 | Acknowledgements | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 25 | Authors' Addresses | |||
| 1. Introduction | 1. Introduction | |||
| 1.1. The Problem | 1.1. The Problem | |||
| In the Distributed Denial-of-Service Open Threat Signaling (DOTS) | In the Distributed Denial-of-Service Open Threat Signaling (DOTS) | |||
| architecture [I-D.ietf-dots-architecture], DOTS clients and servers | architecture [RFC8811], DOTS clients and servers communicate using | |||
| communicate using both a signal channel protocol [RFC8782] and a data | both a signal channel protocol [RFC9132] and a data channel protocol | |||
| channel protocol [RFC8783]. | [RFC8783]. | |||
| The DOTS data channel protocol [RFC8783] is used for bulk data | The DOTS data channel protocol [RFC8783] is used for bulk data | |||
| exchange between DOTS agents to improve the coordination of parties | exchange between DOTS agents to improve the coordination of parties | |||
| involved in the response to a Distributed Denial-of-Service (DDoS) | involved in the response to a Distributed Denial-of-Service (DDoS) | |||
| attack. Filter management is one of its tasks which enables a DOTS | attack. Filter management, which is one of the tasks of the DOTS | |||
| client to retrieve the filtering capabilities of a DOTS server and to | data channel protocol, enables a DOTS client to retrieve the | |||
| manage filtering rules. Typically, these filtering rules are used | filtering capabilities of a DOTS server and to manage filtering | |||
| for dropping or rate-limiting unwanted traffic, and permitting | rules. Typically, these filtering rules are used for dropping or | |||
| accept-listed traffic. | rate-limiting unwanted traffic, and permitting accept-listed traffic. | |||
| The DOTS signal channel protocol [RFC8782] is designed to be | The DOTS signal channel protocol [RFC9132] is designed to be | |||
| resilient under extremely hostile network conditions and provides | resilient under extremely hostile network conditions and provides | |||
| continued contact between DOTS agents even as DDoS attack traffic | continued contact between DOTS agents even as DDoS attack traffic | |||
| saturates the link. The DOTS signal channel can be established | saturates the link. The DOTS signal channel can be established | |||
| between two DOTS agents prior to or during an attack. At any time, | between two DOTS agents prior to or during an attack. At any time, | |||
| the DOTS client may send mitigation requests (as per Section 4.4 of | the DOTS client may send mitigation requests (as per Section 4.4 of | |||
| [RFC8782]) to a DOTS server over the active signal channel. While | [RFC9132]) to a DOTS server over the active signal channel. While | |||
| mitigation is active, the DOTS server periodically sends status | mitigation is active, the DOTS server periodically sends status | |||
| messages to the DOTS client, including basic mitigation feedback | messages to the DOTS client, including basic mitigation feedback | |||
| details. In case of a massive DDoS attack that saturates the | details. In case of a massive DDoS attack that saturates the | |||
| incoming link(s) to the DOTS client, all traffic from the DOTS server | incoming link(s) to the DOTS client, all traffic from the DOTS server | |||
| to the DOTS client will likely be dropped. However, the DOTS server | to the DOTS client will likely be dropped. However, the DOTS server | |||
| may still receive DOTS messages sent from the DOTS client over the | may still receive DOTS messages sent from the DOTS client over the | |||
| signalling channel thanks to the heartbeat requests keeping the | signaling channel thanks to the heartbeat requests keeping the | |||
| channel active (as described in Section 4.7 of [RFC8782]). | channel active (as described in Section 4.7 of [RFC9132]). | |||
| Unlike the DOTS signal channel protocol, the DOTS data channel | Unlike the DOTS signal channel protocol, the DOTS data channel | |||
| protocol is not expected to deal with attack conditions. As such, an | protocol is not expected to deal with attack conditions. As such, an | |||
| issue that might be encountered in some deployments is when filters | issue that might be encountered in some deployments is when filters | |||
| installed by means of the DOTS data channel protocol may not function | installed by means of the DOTS data channel protocol may not function | |||
| as expected during DDoS attacks or, worse, exacerbate an ongoing DDoS | as expected during DDoS attacks or, worse, exacerbate an ongoing DDoS | |||
| attack. In such conditions the DOTS data channel protocol cannot be | attack. In such conditions, the DOTS data channel protocol cannot be | |||
| used to change these filters, which may complicate DDoS mitigation | used to change these filters, which may complicate DDoS mitigation | |||
| operations [Interop]. | operations [INTEROP]. | |||
| A typical case is a conflict between filtering rules installed by a | A typical case is a conflict between filtering rules installed by a | |||
| DOTS client and the mitigation actions of a DDoS mitigator. | DOTS client and the mitigation actions of a DDoS mitigator. | |||
| Consider, for instance, a DOTS client that configures during 'idle' | Consider, for instance, a DOTS client that configures during 'idle' | |||
| time (i.e., no mitigation is active) some filtering rules using the | time (i.e., no mitigation is active) some filtering rules using the | |||
| DOTS data channel protocol to permit traffic from accept-listed | DOTS data channel protocol to permit traffic from accept-listed | |||
| sources. However, during a volumetric DDoS attack the DDoS mitigator | sources. However, during a volumetric DDoS attack, the DDoS | |||
| identifies the source addresses/prefixes in the accept-listed | mitigator identifies the source addresses/prefixes in the accept- | |||
| filtering rules are attacking the target. For example, an attacker | listed filtering rules are attacking the target. For example, an | |||
| can spoof the IP addresses of accept-listed sources to generate | attacker can spoof the IP addresses of accept-listed sources to | |||
| attack traffic or the attacker can compromise the accept-listed | generate attack traffic, or the attacker can compromise the accept- | |||
| sources and program them to launch a DDoS attack. | listed sources and program them to launch a DDoS attack. | |||
| [RFC8782] is designed so that the DDoS server notifies the above | [RFC9132] is designed so that the DDoS server notifies the above | |||
| conflict to the DOTS client (that is, 'conflict-cause' parameter set | conflict to the DOTS client (that is, the 'conflict-cause' parameter | |||
| to 2 (Conflicts with an existing accept list)), but the DOTS client | is set to 2 (conflict-with-acceptlist)), but the DOTS client may not | |||
| may not be able to withdraw the accept-list rules during the attack | be able to withdraw the accept-list rules during the attack period | |||
| period due to the high-volume attack traffic saturating the inbound | due to the high-volume attack traffic saturating the inbound link to | |||
| link to the DOTS client domain. In other words, the DOTS client | the DOTS client domain. In other words, the DOTS client cannot use | |||
| cannot use the DOTS data channel protocol to withdraw the accept-list | the DOTS data channel protocol to withdraw the accept-list filters | |||
| filters when a DDoS attack is in progress. | when a DDoS attack is in progress. | |||
| 1.2. Controlling Filtering Rules Using DOTS Signal Channel | 1.2. Controlling Filtering Rules Using DOTS Signal Channel | |||
| This specification addresses the problems discussed in Section 1.1 by | This specification addresses the problems discussed in Section 1.1 by | |||
| adding a capability for managing filtering rules using the DOTS | adding a capability for managing filtering rules using the DOTS | |||
| signal channel protocol, which enables a DOTS client to request the | signal channel protocol, which enables a DOTS client to request the | |||
| activation (or deactivation) of filtering rules during a DDoS attack. | activation (or deactivation) of filtering rules during a DDoS attack. | |||
| Note that creating these filtering rules is still the responsibility | Note that creating these filtering rules is still the responsibility | |||
| of the DOTS data channel [RFC8783]. | of the DOTS data channel [RFC8783]. | |||
| The DOTS signal channel protocol is designed to enable a DOTS client | The DOTS signal channel protocol is designed to enable a DOTS client | |||
| to contact a DOTS server for help even under severe network | to contact a DOTS server for help even under severe network | |||
| congestion conditions. Therefore, extending the DOTS signal channel | congestion conditions. Therefore, extending the DOTS signal channel | |||
| protocol to manage the filtering rules during an attack will enhance | protocol to manage the filtering rules during an attack will enhance | |||
| the protection capability offered by DOTS protocols. | the protection capability offered by DOTS protocols. | |||
| Note: The experiment at the IETF103 hackathon [Interop] showed | | Note: The experiment at the IETF 103 hackathon [INTEROP] showed | |||
| that even when the inbound link is saturated by DDoS attack | | that even when the inbound link is saturated by DDoS attack | |||
| traffic, the DOTS client can signal mitigation requests using the | | traffic, the DOTS client can signal mitigation requests using | |||
| DOTS signal channel over the saturated link. | | the DOTS signal channel over the saturated link. | |||
| Conflicts that are induced by filters installed by other DOTS clients | Conflicts that are induced by filters installed by other DOTS clients | |||
| of the same domain are not discussed in this specification. | of the same domain are not discussed in this specification. | |||
| An augmentation to the DOTS signal channel YANG module is defined in | An augmentation to the DOTS signal channel YANG module is defined in | |||
| Section 3.2.2. | Section 3.2.2. | |||
| Sample examples are provided in Section 4, in particular: | Sample examples are provided in Section 4, in particular: | |||
| o Section 4.1 illustrates how the filter control extension is used | * Section 4.1 illustrates how the filter control extension is used | |||
| when conflicts with Access Control Lists (ACLs) are detected and | when conflicts with Access Control Lists (ACLs) are detected and | |||
| reported by a DOTS server. | reported by a DOTS server. | |||
| o Section 4.2 shows how a DOTS client can instruct a DOTS server to | * Section 4.2 shows how a DOTS client can instruct a DOTS server to | |||
| safely forward some specific traffic in 'attack' time. | safely forward some specific traffic in 'attack' time. | |||
| o Section 4.3 shows how a DOTS client can react if the DDoS traffic | * Section 4.3 shows how a DOTS client can react if the DDoS traffic | |||
| is still being forwarded to the DOTS client domain even if | is still being forwarded to the DOTS client domain even if | |||
| mitigation requests were sent to a DOTS server. | mitigation requests were sent to a DOTS server. | |||
| The JavaScript Object Notation (JSON) encoding of YANG-modeled data | The JavaScript Object Notation (JSON) encoding of YANG-modeled data | |||
| [RFC7951] is used to illustrate the examples. | [RFC7951] is used to illustrate the examples. | |||
| 2. Terminology | 2. Terminology | |||
| The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
| "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | |||
| "OPTIONAL" in this document are to be interpreted as described in BCP | "OPTIONAL" in this document are to be interpreted as described in | |||
| 14 [RFC2119] [RFC8174] when, and only when, they appear in all | BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all | |||
| capitals, as shown here. | capitals, as shown here. | |||
| The reader should be familiar with the terms defined in [RFC8612]. | The reader should be familiar with the terms defined in [RFC8612]. | |||
| The terminology for describing YANG modules is defined in [RFC7950]. | The terminology for describing YANG modules is defined in [RFC7950]. | |||
| The meaning of the symbols in the tree diagram is defined in | The meaning of the symbols in the tree diagram is defined in | |||
| [RFC8340]. | [RFC8340] and [RFC8791]. | |||
| 3. Controlling Filtering Rules of a DOTS Client | 3. Controlling Filtering Rules of a DOTS Client | |||
| 3.1. Binding DOTS Data and Signal Channels | 3.1. Binding DOTS Data and Signal Channels | |||
| The filtering rules eventually managed using the DOTS signal channel | The filtering rules eventually managed using the DOTS signal channel | |||
| protocol are created a priori by the same DOTS client using the DOTS | protocol are created a priori by the same DOTS client using the DOTS | |||
| data channel protocol. Managing conflicts with filters installed by | data channel protocol. Managing conflicts with filters installed by | |||
| other DOTS clients of the same domain is out of scope. | other DOTS clients of the same domain is out of scope. | |||
| As discussed in Section 4.4.1 of [RFC8782], a DOTS client must use | As discussed in Section 4.4.1 of [RFC9132], a DOTS client must use | |||
| the same 'cuid' for both the DOTS signal and data channels. This | the same 'cuid' for both the DOTS signal and data channels. This | |||
| requirement is meant to facilitate binding DOTS channels used by the | requirement is meant to facilitate binding DOTS channels used by the | |||
| same DOTS client. | same DOTS client. | |||
| The DOTS signal and data channels from a DOTS client may or may not | The DOTS signal and data channels from a DOTS client may or may not | |||
| use the same DOTS server. Nevertheless, the scope of the mitigation | use the same DOTS server. Nevertheless, the scope of the mitigation | |||
| request, alias, and filtering rules are not restricted to the DOTS | request, alias, and filtering rules are not restricted to the DOTS | |||
| server but to the DOTS server domain. To that aim, DOTS servers | server but to the DOTS server domain. To that aim, DOTS servers | |||
| within a domain are assumed to have a mechanism to coordinate the | within a domain are assumed to have a mechanism to coordinate the | |||
| mitigation requests, aliases, and filtering rules to coordinate their | mitigation requests, aliases, and filtering rules to coordinate their | |||
| decisions for better mitigation operation efficiency. The exact | decisions for better mitigation operation efficiency. The exact | |||
| details about such mechanism is out of the scope of this document. | details about such a mechanism is out of the scope of this document. | |||
| A filtering rule controlled by the DOTS signal channel is identified | A filtering rule controlled by the DOTS signal channel is identified | |||
| by its ACL name (Section 4.3 of [RFC8782]). Note that an ACL name | by its ACL name (Section 4.3 of [RFC8783]). Note that an ACL name | |||
| unambiguously identifies an ACL bound to a DOTS client, but the same | unambiguously identifies an ACL bound to a DOTS client, but the same | |||
| name may be used by distinct DOTS clients. | name may be used by distinct DOTS clients. | |||
| The activation or deactivation of an ACL by the DOTS signal channel | The activation or deactivation of an ACL by the DOTS signal channel | |||
| overrides the 'activation-type' (defined in Section 4.3 of [RFC8783]) | overrides the 'activation-type' (defined in Section 4.3 of [RFC8783]) | |||
| a priori conveyed with the filtering rules using the DOTS data | a priori conveyed with the filtering rules using the DOTS data | |||
| channel protocol. | channel protocol. | |||
| Once the attack is mitigated, the DOTS client may use the data | Once the attack is mitigated, the DOTS client may use the data | |||
| channel to control the 'activation-type' (e.g., revert to a default | channel to control the 'activation-type' (e.g., revert to a default | |||
| value) of some of the filtering rules controlled by the DOTS signal | value) of some of the filtering rules controlled by the DOTS signal | |||
| channel or delete some of these filters. This behavior is deployment | channel or delete some of these filters. This behavior is deployment | |||
| specific. | specific. | |||
| 3.2. DOTS Signal Channel Extension | 3.2. DOTS Signal Channel Extension | |||
| 3.2.1. Parameters and Behaviors | 3.2.1. Parameters and Behaviors | |||
| This specification extends the mitigation request defined in | This specification extends the mitigation request defined in | |||
| Section 4.4.1 of [RFC8782] to convey the intended control of | Section 4.4.1 of [RFC9132] to convey the intended control of | |||
| configured filtering rules. Concretely, the DOTS client conveys | configured filtering rules. Concretely, the DOTS client conveys the | |||
| 'acl-list' attribute with the following sub-attributes in the CBOR | 'acl-list' attribute with the following sub-attributes in the Concise | |||
| body of a mitigation request (see the YANG structure in | Binary Object Representation (CBOR) body of a mitigation request (see | |||
| Section 3.2.2.1): | the YANG structure in Section 3.2.2.1): | |||
| acl-name: A name of an access list defined using the DOTS data | acl-name: A name of an access list defined using the DOTS data | |||
| channel (Section 4.3 of [RFC8783]) that is associated with the | channel (Section 4.3 of [RFC8783]) that is associated with the | |||
| DOTS client. | DOTS client. | |||
| As a reminder, an ACL is an ordered list of Access Control Entries | As a reminder, an ACL is an ordered list of Access Control Entries | |||
| (ACE). Each ACE has a list of match criteria and a list of | (ACEs). Each ACE has a list of match criteria and a list of | |||
| actions [RFC8783]. The list of configured ACLs can be retrieved | actions [RFC8783]. The list of configured ACLs can be retrieved | |||
| using the DOTS data channel during 'idle' time. | using the DOTS data channel during 'idle' time. | |||
| This is a mandatory attribute when 'acl-list' is included. | This is a mandatory attribute when 'acl-list' is included. | |||
| activation-type: Indicates the activation type of an ACL overriding | activation-type: An attribute indicating the activation type of an | |||
| the existing 'activation-type' installed by the DOTS client using | ACL overriding the existing 'activation-type' installed by the | |||
| the DOTS data channel. | DOTS client using the DOTS data channel. | |||
| As a reminder, this attribute can be set to 'deactivate', | As a reminder, this attribute can be set to 'deactivate', | |||
| 'immediate', or 'activate-when-mitigating' as defined in | 'immediate', or 'activate-when-mitigating' as defined in | |||
| [RFC8783]. | [RFC8783]. | |||
| Note that both 'immediate' and 'activate-when-mitigating' have an | Note that both 'immediate' and 'activate-when-mitigating' have an | |||
| immediate effect when a mitigation request is being processed by | immediate effect when a mitigation request is being processed by | |||
| the DOTS server. | the DOTS server. | |||
| This is an optional attribute. | This is an optional attribute. | |||
| By default, ACL-related operations are achieved using the DOTS data | By default, ACL-related operations are achieved using the DOTS data | |||
| channel protocol when no attack is ongoing. DOTS clients MUST NOT | channel protocol when no attack is ongoing. DOTS clients MUST NOT | |||
| use the filtering control over DOTS signal channel in 'idle' time; | use the filtering control over the DOTS signal channel in 'idle' | |||
| such requests MUST be discarded by DOTS servers with 4.00 (Bad | time; such requests MUST be discarded by DOTS servers with 4.00 (Bad | |||
| Request). | Request). | |||
| During an attack time, DOTS clients may include 'acl-list', 'acl- | During an attack time, DOTS clients may include 'acl-list', 'acl- | |||
| name', and 'activation-type' attributes in a mitigation request. | name', and 'activation-type' attributes in a mitigation request. | |||
| This request may be the initial mitigation request for a given | This request may be the initial mitigation request for a given | |||
| mitigation scope or a new one overriding an existing request. In | mitigation scope or a new one overriding an existing request. In | |||
| both cases, a new 'mid' MUST be used. Nevertheless, it is NOT | both cases, a new 'mid' MUST be used. Nevertheless, it is NOT | |||
| RECOMMENDED to include ACL attributes in an initial mitigation | RECOMMENDED to include ACL attributes in an initial mitigation | |||
| request for a given mitigation scope or in a mitigation request | request for a given mitigation scope or in a mitigation request | |||
| adjusting the mitigation scope. This recommendation is meant to | adjusting the mitigation scope. This recommendation is meant to | |||
| avoid delaying attack mitigations because of failures to process ACL | avoid delaying attack mitigations because of failures to process ACL | |||
| attributes. | attributes. | |||
| As the attack evolves, DOTS clients can adjust the 'activation-type' | As the attack evolves, DOTS clients can adjust the 'activation-type' | |||
| of an ACL conveyed in a mitigation request or control other filters | of an ACL conveyed in a mitigation request or control other filters | |||
| as necessary. This can be achieved by sending a PUT request with a | as necessary. This can be achieved by sending a PUT request with a | |||
| new 'mid' value. | new 'mid' value. | |||
| It is RECOMMENDED for a DOTS client to subscribe to asynchronous | It is RECOMMENDED for a DOTS client to subscribe to asynchronous | |||
| notifications of the attack mitigation, as detailed in | notifications of the attack mitigation, as detailed in | |||
| Section 4.4.2.1 of [RFC8782]. If not, the polling mechanism in | Section 4.4.2.1 of [RFC9132]. If not, the polling mechanism in | |||
| Section 4.4.2.2 of [RFC8782] has to be followed by the DOTS client. | Section 4.4.2.2 of [RFC9132] has to be followed by the DOTS client. | |||
| A DOTS client relies on the information received from the DOTS server | A DOTS client relies on the information received from the DOTS server | |||
| and/or local information to the DOTS client domain to trigger a | and/or local information to the DOTS client domain to trigger a | |||
| filter control request. Only filters that are pertinent for an | filter control request. Only filters that are pertinent for an | |||
| ongoing mitigation should be controlled by a DOTS client using the | ongoing mitigation should be controlled by a DOTS client using the | |||
| DOTS signal channel. | DOTS signal channel. | |||
| 'acl-list', 'acl-name', and 'activation-type' are defined as | 'acl-list', 'acl-name', and 'activation-type' are defined as | |||
| comprehension-required parameters. Following the rules in Section 6 | comprehension-required parameters. Following the rules in Section 6 | |||
| of [RFC8782], if the DOTS server does not understand the 'acl-list' | of [RFC9132], if the DOTS server does not understand the 'acl-list', | |||
| or 'acl-name' or 'activation-type' attributes, it responds with a | 'acl-name', or 'activation-type' attributes, it responds with a 4.00 | |||
| "4.00 (Bad Request)" error response code. | (Bad Request) error response code. | |||
| If the DOTS server does not find the ACL name ('acl-name') conveyed | If the DOTS server does not find the ACL name ('acl-name') conveyed | |||
| in the mitigation request for this DOTS client, it MUST respond with | in the mitigation request for this DOTS client, it MUST respond with | |||
| 4.04 (Not Found) error response code. | a 4.04 (Not Found) error response code. | |||
| If the DOTS server finds the ACL name for this DOTS client, and | If the DOTS server finds the ACL name for this DOTS client, and | |||
| assuming the request passed the validation checks in Section 4.4.1 of | assuming the request passed the validation checks in Section 4.4.1 of | |||
| [RFC8782], the DOTS server MUST proceed with the 'activation-type' | [RFC9132], the DOTS server MUST proceed with the 'activation-type' | |||
| update. The update is immediately enforced by the DOTS server and | update. The update is immediately enforced by the DOTS server and | |||
| will be maintained as the new activation type for the ACL name even | will be maintained as the new activation type for the ACL name even | |||
| after the termination of the mitigation request. In addition, the | after the termination of the mitigation request. In addition, the | |||
| DOTS server MUST update the lifetime of the corresponding ACL similar | DOTS server MUST update the lifetime of the corresponding ACL similar | |||
| to the update when a refresh request is received using the DOTS data | to the update when a refresh request is received using the DOTS data | |||
| channel (Section 7.2 of [RFC8783]). If, for some reason, the DOTS | channel (Section 7.2 of [RFC8783]). If, for some reason, the DOTS | |||
| server fails to apply the filter update, it MUST respond with 5.03 | server fails to apply the filter update, it MUST respond with a 5.03 | |||
| (Service Unavailable) error response code and include the failed ACL | (Service Unavailable) error response code and include the failed ACL | |||
| update in the diagnostic payload of the response (an example is shown | update in the diagnostic payload of the response (an example is shown | |||
| in Figure 1). Else, the DOTS server replies with the appropriate | in Figure 1). Else, the DOTS server replies with the appropriate | |||
| response code defined in Section 4.4.1 of [RFC8782]. | response code defined in Section 4.4.1 of [RFC9132]. | |||
| { | { | |||
| "ietf-dots-signal-channel:mitigation-scope": { | "ietf-dots-signal-channel:mitigation-scope": { | |||
| "scope": [ | "scope": [ | |||
| { | { | |||
| "mid": 123, | "mid": 123, | |||
| "ietf-dots-signal-control:acl-list": [ | "ietf-dots-signal-control:acl-list": [ | |||
| { | { | |||
| "acl-name": "an-accept-list", | "acl-name": "an-accept-list", | |||
| "activation-type": "deactivate" | "activation-type": "deactivate" | |||
| skipping to change at page 8, line 50 ¶ | skipping to change at line 357 ¶ | |||
| ] | ] | |||
| } | } | |||
| ] | ] | |||
| } | } | |||
| } | } | |||
| Figure 1: Example of a Diagnostic Payload Including Failed ACL Update | Figure 1: Example of a Diagnostic Payload Including Failed ACL Update | |||
| The JSON/YANG mappings for DOTS filter control attributes are shown | The JSON/YANG mappings for DOTS filter control attributes are shown | |||
| in Table 1. As a reminder, the mapping for 'acl-name' is defined in | in Table 1. As a reminder, the mapping for 'acl-name' is defined in | |||
| Table 5 of [RFC8782]. | Table 5 of [RFC9132]. | |||
| +-------------------+------------+--------+---------------+--------+ | +===================+=============+======+=================+========+ | |||
| | Parameter Name | YANG | CBOR | CBOR Major | JSON | | | Parameter Name | YANG Type | CBOR | CBOR Major Type | JSON | | |||
| | | Type | Key | Type & | Type | | | | | Key | & Information | Type | | |||
| | | | | Information | | | +===================+=============+======+=================+========+ | |||
| +===================+============+========+===============+========+ | | activation-type | enumeration | 52 | 0 unsigned | String | | |||
| | activation-type | enumeration| TBA1 | 0 unsigned | String | | +-------------------+-------------+------+-----------------+--------+ | |||
| +-------------------+------------+--------+---------------+--------+ | | ietf-dots- | list | 53 | 4 array | Array | | |||
| | ietf-dots-signal- | | | | | | | signal- | | | | | | |||
| | control:acl-list | list | TBA2 | 4 array | Array | | | control:acl-list | | | | | | |||
| +-------------------+------------+--------+---------------+--------+ | +-------------------+-------------+------+-----------------+--------+ | |||
| | acl-name | leafref | 23 | 3 text string | String | | | acl-name | leafref | 23 | 3 text string | String | | |||
| +-------------------+------------+--------+---------------+--------+ | +-------------------+-------------+------+-----------------+--------+ | |||
| Table 1: JSON/YANG Mapping to CBOR for Filter Control Attributes | ||||
| Table 1: JSON/YANG Mapping to CBOR for Filter Control Attributes | ||||
| If the DOTS client receives a 5.03 (Service Unavailable) with a | If the DOTS client receives a 5.03 (Service Unavailable) with a | |||
| diagnostic payload indicating a failed ACL update as a response to an | diagnostic payload indicating a failed ACL update as a response to an | |||
| initial mitigation or a mitigation with adjusted scope, the DOTS | initial mitigation or a mitigation with adjusted scope, the DOTS | |||
| client MUST immediately send a new request which repeats all the | client MUST immediately send a new request that repeats all the | |||
| parameters as sent in the failed mitigation request but without | parameters as sent in the failed mitigation request but without | |||
| including the ACL attributes. After the expiry of Max-Age returned | including the ACL attributes. After the expiry of Max-Age returned | |||
| in the 5.03 (Service Unavailable) response, the DOTS client retries | in the 5.03 (Service Unavailable) response, the DOTS client retries | |||
| with a new mitigation request (i.e., a new 'mid') that repeats all | with a new mitigation request (i.e., a new 'mid') that repeats all | |||
| the parameters as sent in the failed mitigation request (i.e., the | the parameters as sent in the failed mitigation request (i.e., the | |||
| one including the ACL attributes). | one including the ACL attributes). | |||
| If, during an active mitigation, the 'activation-type' is changed at | If, during an active mitigation, the 'activation-type' is changed at | |||
| the DOTS server (e.g., as a result of an external action) for an ACL | the DOTS server (e.g., as a result of an external action) for an ACL | |||
| bound to a DOTS client, the DOTS server notifies that DOTS client of | bound to a DOTS client, the DOTS server notifies that DOTS client of | |||
| the change by including the corresponding ACL parameters in an | the change by including the corresponding ACL parameters in an | |||
| asynchronous notification (the DOTS client is observing the active | asynchronous notification (the DOTS client is observing the active | |||
| mitigation) or in a response to a polling request (Section 4.4.2.2 of | mitigation) or in a response to a polling request (Section 4.4.2.2 of | |||
| [RFC8782]). | [RFC9132]). | |||
| If the DOTS signal and data channels of a DOTS client are not | If the DOTS signal and data channels of a DOTS client are not | |||
| established with the same DOTS server of a DOTS server domain, the | established with the same DOTS server of a DOTS server domain, the | |||
| above request processing operations are undertaken using the | above request processing operations are undertaken using the | |||
| coordination mechanism discussed in Section 3.1. | coordination mechanism discussed in Section 3.1. | |||
| This specification does not require any modification to the efficacy | This specification does not require any modification to the efficacy | |||
| update and the withdrawal procedures defined in [RFC8782]. In | update and the withdrawal procedures defined in [RFC9132]. In | |||
| particular, ACL-related clauses are not included in a PUT request | particular, ACL-related clauses are not included in a PUT request | |||
| used to send an efficacy update and DELETE requests. | used to send an efficacy update and DELETE requests. | |||
| 3.2.2. DOTS Signal Filtering Control Module | 3.2.2. DOTS Signal Filtering Control Module | |||
| 3.2.2.1. Tree Structure | 3.2.2.1. Tree Structure | |||
| This document augments the "ietf-dots-signal-channel" YANG module | This document augments the "ietf-dots-signal-channel" YANG module | |||
| defined in [RFC8782] for managing filtering rules. | defined in [RFC9132] for managing filtering rules. | |||
| This document defines the YANG module "ietf-dots-signal-control", | This document defines the YANG module "ietf-dots-signal-control", | |||
| which has the following tree structure: | which has the following tree structure: | |||
| module: ietf-dots-signal-control | module: ietf-dots-signal-control | |||
| augment /ietf-signal:dots-signal/ietf-signal:message-type | augment-structure /dots-signal:dots-signal/dots-signal:message-type | |||
| /ietf-signal:mitigation-scope/ietf-signal:scope: | /dots-signal:mitigation-scope/dots-signal:scope: | |||
| +--rw acl-list* [acl-name] {control-filtering}? | +-- acl-list* [acl-name] | |||
| +--rw acl-name | +-- acl-name | |||
| | -> /ietf-data:dots-data/dots-client/acls/acl/name | | -> /data-channel:dots-data/dots-client/acls/acl/name | |||
| +--rw activation-type? ietf-data:activation-type | +-- activation-type? data-channel:activation-type | |||
| 3.2.2.2. YANG Module | 3.2.2.2. YANG Module | |||
| This YANG module is not intended to be used via NETCONF/RESTCONF for | This YANG module is not intended to be used via NETCONF/RESTCONF for | |||
| DOTS server management purposes; such module is out of the scope of | DOTS server management purposes; such a module is out of the scope of | |||
| this document. It serves only to provide a data model and encoding, | this document. It serves only to provide a data model and encoding, | |||
| but not a management data model. | but not a management data model. | |||
| This module uses types defined in [RFC8783]. | This module uses types defined in [RFC8783]. | |||
| <CODE BEGINS> file "ietf-dots-signal-control@2019-05-13.yang" | <CODE BEGINS> file "ietf-dots-signal-control@2021-09-01.yang" | |||
| module ietf-dots-signal-control { | module ietf-dots-signal-control { | |||
| yang-version 1.1; | yang-version 1.1; | |||
| namespace | namespace "urn:ietf:params:xml:ns:yang:ietf-dots-signal-control"; | |||
| "urn:ietf:params:xml:ns:yang:ietf-dots-signal-control"; | ||||
| prefix dots-control; | prefix dots-control; | |||
| import ietf-dots-signal-channel { | import ietf-dots-signal-channel { | |||
| prefix ietf-signal; | prefix dots-signal; | |||
| reference | reference | |||
| "RFC 8782: Distributed Denial-of-Service Open Threat | "RFC 9132: Distributed Denial-of-Service Open Threat | |||
| Signaling (DOTS) Signal Channel Specification"; | Signaling (DOTS) Signal Channel Specification"; | |||
| } | } | |||
| import ietf-yang-structure-ext { | ||||
| prefix sx; | ||||
| reference | ||||
| "RFC 8791: YANG Data Structure Extensions"; | ||||
| } | ||||
| import ietf-dots-data-channel { | import ietf-dots-data-channel { | |||
| prefix ietf-data; | prefix data-channel; | |||
| reference | reference | |||
| "RFC 8783: Distributed Denial-of-Service Open Threat | "RFC 8783: Distributed Denial-of-Service Open Threat | |||
| Signaling (DOTS) Data Channel Specification"; | Signaling (DOTS) Data Channel Specification"; | |||
| } | } | |||
| organization | organization | |||
| "IETF DDoS Open Threat Signaling (DOTS) Working Group"; | "IETF DDoS Open Threat Signaling (DOTS) Working Group"; | |||
| contact | contact | |||
| "WG Web: <https://datatracker.ietf.org/wg/dots/> | "WG Web: <https://datatracker.ietf.org/wg/dots/> | |||
| WG List: <mailto:dots@ietf.org> | WG List: <mailto:dots@ietf.org> | |||
| Author: Kaname Nishizuka | Author: Kaname Nishizuka | |||
| <mailto:kaname@nttv6.jp> | <mailto:kaname@nttv6.jp> | |||
| Author: Mohamed Boucadair | Author: Mohamed Boucadair | |||
| <mailto:mohamed.boucadair@orange.com> | <mailto:mohamed.boucadair@orange.com> | |||
| Author: Konda, Tirumaleswar Reddy | Author: Tirumaleswar Reddy.K | |||
| <mailto:TirumaleswarReddy_Konda@McAfee.com> | <mailto:kondtir@gmail.com> | |||
| Author: Takahiko Nagata | Author: Takahiko Nagata | |||
| <mailto:nagata@lepidum.co.jp>"; | <mailto:nagata@lepidum.co.jp>"; | |||
| description | description | |||
| "This module contains YANG definition for the signaling | "This module contains YANG definition for the signaling | |||
| messages exchanged between a DOTS client and a DOTS server | messages exchanged between a DOTS client and a DOTS server | |||
| to control, by means of the DOTS signal channel, filtering | to control, by means of the DOTS signal channel, filtering | |||
| rules configured using the DOTS data channel. | rules configured using the DOTS data channel. | |||
| Copyright (c) 2020 IETF Trust and the persons identified as | Copyright (c) 2021 IETF Trust and the persons identified as | |||
| authors of the code. All rights reserved. | authors of the code. All rights reserved. | |||
| Redistribution and use in source and binary forms, with or | Redistribution and use in source and binary forms, with or | |||
| without modification, is permitted pursuant to, and subject | without modification, is permitted pursuant to, and subject | |||
| to the license terms contained in, the Simplified BSD License | to the license terms contained in, the Simplified BSD License | |||
| set forth in Section 4.c of the IETF Trust's Legal Provisions | set forth in Section 4.c of the IETF Trust's Legal Provisions | |||
| Relating to IETF Documents | Relating to IETF Documents | |||
| (http://trustee.ietf.org/license-info). | (https://trustee.ietf.org/license-info). | |||
| This version of this YANG module is part of RFC XXXX; see | This version of this YANG module is part of RFC 9133; see | |||
| the RFC itself for full legal notices."; | the RFC itself for full legal notices."; | |||
| revision 2019-05-13 { | revision 2021-09-01 { | |||
| description | description | |||
| "Initial revision."; | "Initial revision."; | |||
| reference | reference | |||
| "RFC XXXX: Controlling Filtering Rules Using Distributed | "RFC 9133: Controlling Filtering Rules Using Distributed | |||
| Denial-of-Service Open Threat Signaling (DOTS) | Denial-of-Service Open Threat Signaling (DOTS) | |||
| Signal Channel"; | Signal Channel"; | |||
| } | } | |||
| feature control-filtering { | sx:augment-structure "/dots-signal:dots-signal" | |||
| description | + "/dots-signal:message-type" | |||
| "This feature means that the DOTS signal channel is able | + "/dots-signal:mitigation-scope" | |||
| to manage the filtering rules created by the same DOTS | + "/dots-signal:scope" { | |||
| client using the DOTS data channel."; | ||||
| } | ||||
| augment "/ietf-signal:dots-signal/ietf-signal:message-type" | ||||
| + "/ietf-signal:mitigation-scope/ietf-signal:scope" { | ||||
| if-feature control-filtering; | ||||
| description "ACL name and activation type."; | description | |||
| "ACL name and activation type."; | ||||
| list acl-list { | list acl-list { | |||
| key "acl-name"; | key "acl-name"; | |||
| description | description | |||
| "List of ACLs as defined using the DOTS data | "List of ACLs as defined using the DOTS data | |||
| channel. ACLs bound to a DOTS client are uniquely | channel. ACLs bound to a DOTS client are uniquely | |||
| identified by a name."; | identified by a name."; | |||
| leaf acl-name { | leaf acl-name { | |||
| type leafref { | type leafref { | |||
| path "/ietf-data:dots-data/ietf-data:dots-client" | path "/data-channel:dots-data/data-channel:dots-client" | |||
| + "/ietf-data:acls/ietf-data:acl/ietf-data:name"; | + "/data-channel:acls/data-channel:acl" | |||
| + "/data-channel:name"; | ||||
| } | ||||
| description | ||||
| "Reference to the ACL name bound to a DOTS client."; | ||||
| } | } | |||
| description | leaf activation-type { | |||
| "Reference to the ACL name bound to a DOTS client."; | type data-channel:activation-type; | |||
| } | default "activate-when-mitigating"; | |||
| leaf activation-type { | description | |||
| type ietf-data:activation-type; | "Sets the activation type of an ACL."; | |||
| default "activate-when-mitigating"; | ||||
| description | ||||
| "Sets the activation type of an ACL."; | ||||
| } | } | |||
| } | } | |||
| } | } | |||
| } | } | |||
| <CODE ENDS> | <CODE ENDS> | |||
| 4. Some Examples | 4. Some Examples | |||
| This section provides some examples to illustrate the behavior | This section provides some examples to illustrate the behavior | |||
| specified in Section 3.2.1. These examples are provided for | specified in Section 3.2.1. These examples are provided for | |||
| illustration purposes; they should not be considered as deployment | illustration purposes; they should not be considered as deployment | |||
| recommendations. | recommendations. | |||
| 4.1. Conflict Handling | 4.1. Conflict Handling | |||
| Let's consider a DOTS client which contacts its DOTS server during | Let's consider a DOTS client that contacts its DOTS server during | |||
| 'idle' time to install an accept-list allowing for UDP traffic issued | 'idle' time to install an accept-list allowing for UDP traffic issued | |||
| from 2001:db8:1234::/48 with a destination port number 443 to be | from 2001:db8:1234::/48 with a destination port number 443 to be | |||
| forwarded to 2001:db8:6401::2/127. It does so by sending, for | forwarded to 2001:db8:6401::2/127. It does so by sending, for | |||
| example, a PUT request shown in Figure 2. | example, a PUT request as shown in Figure 2. | |||
| PUT /restconf/data/ietf-dots-data-channel:dots-data\ | PUT /restconf/data/ietf-dots-data-channel:dots-data\ | |||
| /dots-client=paL8p4Zqo4SLv64TLPXrxA/acls\ | /dots-client=paL8p4Zqo4SLv64TLPXrxA/acls\ | |||
| /acl=an-accept-list HTTP/1.1 | /acl=an-accept-list HTTP/1.1 | |||
| Host: example.com | Host: example.com | |||
| Content-Type: application/yang-data+json | Content-Type: application/yang-data+json | |||
| { | { | |||
| "ietf-dots-data-channel:acls": { | "ietf-dots-data-channel:acls": { | |||
| "acl": [ | "acl": [ | |||
| skipping to change at page 13, line 47 ¶ | skipping to change at line 591 ¶ | |||
| "forwarding": "accept" | "forwarding": "accept" | |||
| } | } | |||
| } | } | |||
| ] | ] | |||
| } | } | |||
| } | } | |||
| ] | ] | |||
| } | } | |||
| } | } | |||
| Figure 2: DOTS Data Channel Request to Create a Filter | Figure 2: DOTS Data Channel Request to Create a Filter | |||
| Sometime later, consider that a DDoS attack is detected by the DOTS | Sometime later, consider that a DDoS attack is detected by the DOTS | |||
| client on 2001:db8:6401::2/127. Consequently, the DOTS client sends | client on 2001:db8:6401::2/127. Consequently, the DOTS client sends | |||
| a mitigation request to its DOTS server as shown in Figure 3. | a mitigation request to its DOTS server as shown in Figure 3. | |||
| Header: PUT (Code=0.03) | Header: PUT (Code=0.03) | |||
| Uri-Path: ".well-known" | Uri-Path: ".well-known" | |||
| Uri-Path: "dots" | Uri-Path: "dots" | |||
| Uri-Path: "mitigate" | Uri-Path: "mitigate" | |||
| Uri-Path: "cuid=paL8p4Zqo4SLv64TLPXrxA" | Uri-Path: "cuid=paL8p4Zqo4SLv64TLPXrxA" | |||
| skipping to change at page 14, line 29 ¶ | skipping to change at line 621 ¶ | |||
| ], | ], | |||
| "target-protocol": [ | "target-protocol": [ | |||
| 17 | 17 | |||
| ], | ], | |||
| "lifetime": 3600 | "lifetime": 3600 | |||
| } | } | |||
| ] | ] | |||
| } | } | |||
| } | } | |||
| Figure 3: DOTS Signal Channel Mitigation Request | Figure 3: DOTS Signal Channel Mitigation Request | |||
| The DOTS server accepts immediately the request by replying with 2.01 | The DOTS server immediately accepts the request by replying with 2.01 | |||
| (Created) (Figure 4 depicts the message body of the response). | (Created) (Figure 4 depicts the message body of the response). | |||
| { | { | |||
| "ietf-dots-signal-channel:mitigation-scope": { | "ietf-dots-signal-channel:mitigation-scope": { | |||
| "scope": [ | "scope": [ | |||
| { | { | |||
| "mid": 123, | "mid": 123, | |||
| "lifetime": 3600 | "lifetime": 3600 | |||
| } | } | |||
| ] | ] | |||
| } | } | |||
| } | } | |||
| Figure 4: Status Response (Message Body) | Figure 4: Status Response (Message Body) | |||
| Assuming the DOTS client subscribed to asynchronous notifications, | Assuming the DOTS client subscribed to asynchronous notifications, | |||
| when the DOTS server concludes that some of the attack sources belong | when the DOTS server concludes that some of the attack sources belong | |||
| to 2001:db8:1234::/48, it sends a notification message with 'status' | to 2001:db8:1234::/48, it sends a notification message with 'status' | |||
| code set to '1 (Attack mitigation is in progress)' and 'conflict- | code set to 1 (attack-mitigation-in-progress) and 'conflict-cause' | |||
| cause' set to '2' (conflict-with-acceptlist) to the DOTS client to | set to 2 (conflict-with-acceptlist) to the DOTS client to indicate | |||
| indicate that this mitigation request is in progress, but a conflict | that this mitigation request is in progress, but a conflict is | |||
| is detected. | detected. | |||
| Upon receipt of the notification message from the DOTS server, the | Upon receipt of the notification message from the DOTS server, the | |||
| DOTS client sends a PUT request to deactivate the "an-accept-list" | DOTS client sends a PUT request to deactivate the "an-accept-list" | |||
| ACL as shown in Figure 5. | ACL as shown in Figure 5. | |||
| The DOTS client can also decide to send a PUT request to deactivate | The DOTS client can also decide to send a PUT request to deactivate | |||
| the "an-accept-list" ACL, if suspect traffic is received from an | the "an-accept-list" ACL if suspect traffic is received from an | |||
| accept-listed source (2001:db8:1234::/48). The structure of that PUT | accept-listed source (2001:db8:1234::/48). The structure of that PUT | |||
| is the same as the one shown in Figure 5. | is the same as the one shown in Figure 5. | |||
| Header: PUT (Code=0.03) | Header: PUT (Code=0.03) | |||
| Uri-Path: ".well-known" | Uri-Path: ".well-known" | |||
| Uri-Path: "dots" | Uri-Path: "dots" | |||
| Uri-Path: "mitigate" | Uri-Path: "mitigate" | |||
| Uri-Path: "cuid=paL8p4Zqo4SLv64TLPXrxA" | Uri-Path: "cuid=paL8p4Zqo4SLv64TLPXrxA" | |||
| Uri-Path: "mid=124" | Uri-Path: "mid=124" | |||
| Content-Format: "application/dots+cbor" | Content-Format: "application/dots+cbor" | |||
| skipping to change at page 15, line 48 ¶ | skipping to change at line 688 ¶ | |||
| } | } | |||
| ], | ], | |||
| "lifetime": 3600 | "lifetime": 3600 | |||
| } | } | |||
| ] | ] | |||
| } | } | |||
| } | } | |||
| Figure 5: PUT for Deactivating a Conflicting Filter | Figure 5: PUT for Deactivating a Conflicting Filter | |||
| Then, the DOTS server deactivates "an-accept-list" ACL and replies | Then, the DOTS server deactivates the "an-accept-list" ACL and | |||
| with 2.04 (Changed) response to the DOTS client to confirm the | replies with a 2.04 (Changed) response to the DOTS client to confirm | |||
| successful operation. The message body is similar to the one | the successful operation. The message body is similar to the one | |||
| depicted in Figure 4. | depicted in Figure 4. | |||
| Once the attack is mitigated, the DOTS client may use the data | Once the attack is mitigated, the DOTS client may use the data | |||
| channel to retrieve its ACLs maintained by the DOTS server. As shown | channel to retrieve its ACLs maintained by the DOTS server. As shown | |||
| in Figure 6, the activation type is set to 'deactivate' as set by the | in Figure 6, the activation type is set to 'deactivate' as set by the | |||
| DOTS signal channel (Figure 5) instead of the type initially set | DOTS signal channel (Figure 5) instead of the type initially set | |||
| using the DOTS data channel (Figure 2). | using the DOTS data channel (Figure 2). | |||
| { | { | |||
| "ietf-dots-data-channel:acls": { | "ietf-dots-data-channel:acls": { | |||
| skipping to change at page 16, line 46 ¶ | skipping to change at line 734 ¶ | |||
| "forwarding": "accept" | "forwarding": "accept" | |||
| } | } | |||
| } | } | |||
| ] | ] | |||
| } | } | |||
| } | } | |||
| ] | ] | |||
| } | } | |||
| } | } | |||
| Figure 6: DOTS Data Channel GET Response after Mitigation (Message | Figure 6: DOTS Data Channel GET Response after Mitigation | |||
| Body) | (Message Body) | |||
| 4.2. On-Demand Activation of an Accept-List Filter | 4.2. On-Demand Activation of an Accept-List Filter | |||
| Let's consider a DOTS client which contacts its DOTS server during | Let's consider a DOTS client that contacts its DOTS server during | |||
| 'idle' time to install an accept-list allowing for UDP traffic issued | 'idle' time to install an accept-list allowing for UDP traffic issued | |||
| from 2001:db8:1234::/48 to be forwarded to 2001:db8:6401::2/127. It | from 2001:db8:1234::/48 to be forwarded to 2001:db8:6401::2/127. It | |||
| does so by sending, for example, a PUT request shown in Figure 7. | does so by sending, for example, a PUT request shown in Figure 7. | |||
| The DOTS server installs this filter with a "deactivated" state. | The DOTS server installs this filter with a "deactivated" state. | |||
| PUT /restconf/data/ietf-dots-data-channel:dots-data\ | PUT /restconf/data/ietf-dots-data-channel:dots-data\ | |||
| /dots-client=ioiuLoZqo4SLv64TLPXrxA/acls\ | /dots-client=ioiuLoZqo4SLv64TLPXrxA/acls\ | |||
| /acl=my-accept-list HTTP/1.1 | /acl=my-accept-list HTTP/1.1 | |||
| Host: example.com | Host: example.com | |||
| Content-Type: application/yang-data+json | Content-Type: application/yang-data+json | |||
| skipping to change at page 17, line 52 ¶ | skipping to change at line 784 ¶ | |||
| } | } | |||
| } | } | |||
| ] | ] | |||
| } | } | |||
| } | } | |||
| Figure 7: DOTS Data Channel Request to Create an Accept-List Filter | Figure 7: DOTS Data Channel Request to Create an Accept-List Filter | |||
| Sometime later, consider that a UDP DDoS attack is detected by the | Sometime later, consider that a UDP DDoS attack is detected by the | |||
| DOTS client on 2001:db8:6401::2/127 but the DOTS client wants to let | DOTS client on 2001:db8:6401::2/127 but the DOTS client wants to let | |||
| the traffic from 2001:db8:1234::/48 to be accept-listed to the DOTS | the traffic from 2001:db8:1234::/48 be accept-listed to the DOTS | |||
| client domain. Consequently, the DOTS client sends a mitigation | client domain. Consequently, the DOTS client sends a mitigation | |||
| request to its DOTS server as shown in Figure 8. | request to its DOTS server as shown in Figure 8. | |||
| Header: PUT (Code=0.03) | Header: PUT (Code=0.03) | |||
| Uri-Path: ".well-known" | Uri-Path: ".well-known" | |||
| Uri-Path: "dots" | Uri-Path: "dots" | |||
| Uri-Path: "mitigate" | Uri-Path: "mitigate" | |||
| Uri-Path: "cuid=ioiuLoZqo4SLv64TLPXrxA" | Uri-Path: "cuid=ioiuLoZqo4SLv64TLPXrxA" | |||
| Uri-Path: "mid=4879" | Uri-Path: "mid=4879" | |||
| Content-Format: "application/dots+cbor" | Content-Format: "application/dots+cbor" | |||
| skipping to change at page 18, line 37 ¶ | skipping to change at line 818 ¶ | |||
| "acl-name": "my-accept-list", | "acl-name": "my-accept-list", | |||
| "activation-type": "immediate" | "activation-type": "immediate" | |||
| } | } | |||
| ], | ], | |||
| "lifetime": 3600 | "lifetime": 3600 | |||
| } | } | |||
| ] | ] | |||
| } | } | |||
| } | } | |||
| Figure 8: DOTS Signal Channel Mitigation Request with a Filter | Figure 8: DOTS Signal Channel Mitigation Request with a Filter | |||
| Control | Control | |||
| The DOTS server activates "my-accept-list" ACL and replies with 2.01 | The DOTS server activates the "my-accept-list" ACL and replies with a | |||
| (Created) response to the DOTS client to confirm the successful | 2.01 (Created) response to the DOTS client to confirm the successful | |||
| operation. | operation. | |||
| 4.3. DOTS Servers/Mitigators Lacking Capacity | 4.3. DOTS Servers/Mitigators Lacking Capacity | |||
| This section describes a scenario in which a DOTS client activates a | This section describes a scenario in which a DOTS client activates a | |||
| drop-list or a rate-limit filter during an attack. | drop-list or a rate-limit filter during an attack. | |||
| Consider a DOTS client that contacts its DOTS server during 'idle' | Consider a DOTS client that contacts its DOTS server during 'idle' | |||
| time to install an accept-list that rate-limits all (or a part | time to install an accept-list that rate-limits all (or a part | |||
| thereof) traffic to be forwarded to 2001:db8:123::/48 as a last | thereof) traffic to be forwarded to 2001:db8:123::/48 as a last | |||
| skipping to change at page 20, line 30 ¶ | skipping to change at line 903 ¶ | |||
| "lifetime": 3600 | "lifetime": 3600 | |||
| } | } | |||
| ] | ] | |||
| } | } | |||
| } | } | |||
| Figure 10: DOTS Signal Channel Mitigation Request | Figure 10: DOTS Signal Channel Mitigation Request | |||
| For some reason (e.g., the DOTS server, or the mitigator, is lacking | For some reason (e.g., the DOTS server, or the mitigator, is lacking | |||
| a capability or capacity), the DOTS client is still receiving attack | a capability or capacity), the DOTS client is still receiving attack | |||
| traffic which saturates available links. To soften the problem, the | traffic, which saturates available links. To soften the problem, the | |||
| DOTS client decides to activate the filter that rate-limits the | DOTS client decides to activate the filter that rate-limits the | |||
| traffic destined to the DOTS client domain. To that aim, the DOTS | traffic destined to the DOTS client domain. To that aim, the DOTS | |||
| client sends the mitigation request to its DOTS server shown in | client sends the mitigation request to its DOTS server shown in | |||
| Figure 11. | Figure 11. | |||
| Header: PUT (Code=0.03) | Header: PUT (Code=0.03) | |||
| Uri-Path: ".well-known" | Uri-Path: ".well-known" | |||
| Uri-Path: "dots" | Uri-Path: "dots" | |||
| Uri-Path: "mitigate" | Uri-Path: "mitigate" | |||
| Uri-Path: "cuid=OopPisZqo4SLv64TLPXrxA" | Uri-Path: "cuid=OopPisZqo4SLv64TLPXrxA" | |||
| skipping to change at page 21, line 32 ¶ | skipping to change at line 936 ¶ | |||
| "acl-name": "my-ratelimit-list", | "acl-name": "my-ratelimit-list", | |||
| "activation-type": "immediate" | "activation-type": "immediate" | |||
| } | } | |||
| ], | ], | |||
| "lifetime": 3600 | "lifetime": 3600 | |||
| } | } | |||
| ] | ] | |||
| } | } | |||
| } | } | |||
| Figure 11: DOTS Signal Channel Mitigation Request to Activate a Rate- | Figure 11: DOTS Signal Channel Mitigation Request to Activate a | |||
| Limit Filter | Rate-Limit Filter | |||
| Then, the DOTS server activates "my-ratelimit-list" ACL and replies | Then, the DOTS server activates the "my-ratelimit-list" ACL and | |||
| with 2.04 (Changed) response to the DOTS client to confirm the | replies with a 2.04 (Changed) response to the DOTS client to confirm | |||
| successful operation. | the successful operation. | |||
| As the attack mitigation evolves, the DOTS client may decide to | As the attack mitigation evolves, the DOTS client may decide to | |||
| deactivate the rate-limit policy (e.g., upon receipt of notification | deactivate the rate-limit policy (e.g., upon receipt of a | |||
| status change from 'attack-exceeded-capability' to 'attack- | notification status change from 'attack-exceeded-capability' to | |||
| mitigation-in-progress'). Based on the mitigation status conveyed by | 'attack-mitigation-in-progress'). Based on the mitigation status | |||
| the DOTS server, the DOTS client can de-activate the rate-limit | conveyed by the DOTS server, the DOTS client can deactivate the rate- | |||
| action. It does so by sending the request shown in Figure 12. | limit action. It does so by sending the request shown in Figure 12. | |||
| Header: PUT (Code=0.03) | Header: PUT (Code=0.03) | |||
| Uri-Path: ".well-known" | Uri-Path: ".well-known" | |||
| Uri-Path: "dots" | Uri-Path: "dots" | |||
| Uri-Path: "mitigate" | Uri-Path: "mitigate" | |||
| Uri-Path: "cuid=OopPisZqo4SLv64TLPXrxA" | Uri-Path: "cuid=OopPisZqo4SLv64TLPXrxA" | |||
| Uri-Path: "mid=87" | Uri-Path: "mid=87" | |||
| Content-Format: "application/dots+cbor" | Content-Format: "application/dots+cbor" | |||
| { | { | |||
| skipping to change at page 22, line 37 ¶ | skipping to change at line 982 ¶ | |||
| } | } | |||
| ] | ] | |||
| } | } | |||
| } | } | |||
| Figure 12: DOTS Signal Channel Mitigation Request to Deactivate a | Figure 12: DOTS Signal Channel Mitigation Request to Deactivate a | |||
| Rate-Limit Filter | Rate-Limit Filter | |||
| 5. IANA Considerations | 5. IANA Considerations | |||
| 5.1. DOTS Signal Channel CBOR Mappings Registry | 5.1. DOTS Signal Channel CBOR Key Values Subregistry | |||
| This specification registers the following parameters in the IANA | Per this specification, IANA has registered the following parameters | |||
| "DOTS Signal Channel CBOR Key Values" registry [Key-Map]. | in the "DOTS Signal Channel CBOR Key Values" subregistry within the | |||
| "Distributed Denial-of-Service Open Threat Signaling (DOTS) Signal | ||||
| Channel" registry [Key-Map]. | ||||
| o Note to the RFC Editor: Please delete (TBA1-TBA2) once the CBOR | +==================+==========+=======+============+===============+ | |||
| keys are assigned from the 1-16383 range. Please update Table 1 | | Parameter Name | CBOR Key | CBOR | Change | Specification | | |||
| accordingly. | | | Value | Major | Controller | Document(s) | | |||
| | | | Type | | | | ||||
| +==================+==========+=======+============+===============+ | ||||
| | activation-type | 52 | 0 | IESG | RFC 9133 | | ||||
| +------------------+----------+-------+------------+---------------+ | ||||
| | ietf-dots- | 53 | 4 | IESG | RFC 9133 | | ||||
| | signal- | | | | | | ||||
| | control:acl-list | | | | | | ||||
| +------------------+----------+-------+------------+---------------+ | ||||
| +--------------------+--------+-------+------------+---------------+ | Table 2 | |||
| | Parameter Name | CBOR | CBOR | Change | Specification | | ||||
| | | Key | Major | Controller | Document(s) | | ||||
| | | Value | Type | | | | ||||
| +====================+========+=======+============+===============+ | ||||
| | activation-type | 52 | | | | | ||||
| | | (TBA1) | 0 | IESG | [RFCXXXX] | | ||||
| +--------------------+--------+-------+------------+---------------+ | ||||
| | ietf-dots-signal- | 53 | | | | | ||||
| | control:acl-list | (TBA2) | 4 | IESG | [RFCXXXX] | | ||||
| +--------------------+--------+-------+------------+---------------+ | ||||
| 5.2. DOTS Signal Filtering Control YANG Module | 5.2. A New YANG Module | |||
| This document requests IANA to register the following URI in the "ns" | IANA has registered the following URI in the "ns" subregistry within | |||
| subregistry within the "IETF XML Registry" [RFC3688]: | the "IETF XML Registry" [RFC3688]: | |||
| URI: urn:ietf:params:xml:ns:yang:ietf-dots-signal-control | URI: urn:ietf:params:xml:ns:yang:ietf-dots-signal-control | |||
| Registrant Contact: The IESG. | Registrant Contact: The IESG. | |||
| XML: N/A; the requested URI is an XML namespace. | XML: N/A; the requested URI is an XML namespace. | |||
| This document requests IANA to register the following YANG module in | IANA has registered the following YANG module in the "YANG Module | |||
| the "YANG Module Names" subregistry [RFC7950] within the "YANG | Names" subregistry [RFC6020] within the "YANG Parameters" registry. | |||
| Parameters" registry. | ||||
| Name: ietf-dots-signal-control | Name: ietf-dots-signal-control | |||
| Namespace: urn:ietf:params:xml:ns:yang:ietf-dots-signal-control | Namespace: urn:ietf:params:xml:ns:yang:ietf-dots-signal-control | |||
| Maintained by IANA: N | Maintained by IANA: N | |||
| Prefix: dots-control | Prefix: dots-control | |||
| Reference: RFC XXXX | Reference: RFC 9133 | |||
| 6. Security Considerations | 6. Security Considerations | |||
| The security considerations for the DOTS signal channel protocol are | The security considerations for the DOTS signal channel protocol are | |||
| discussed in Section 10 of [RFC8782], while those for the DOTS data | discussed in Section 11 of [RFC9132], while those for the DOTS data | |||
| channel protocol are discussed in Section 10 of [RFC8783]. The | channel protocol are discussed in Section 10 of [RFC8783]. The | |||
| following discusses the security considerations that are specific to | following discusses the security considerations that are specific to | |||
| the DOTS signal channel extension defined in this document. | the DOTS signal channel extension defined in this document. | |||
| This specification does not allow to create new filtering rules, | This specification does not allow the creation of new filtering | |||
| which is the responsibility of the DOTS data channel. DOTS client | rules, which is the responsibility of the DOTS data channel. DOTS | |||
| domains should be adequately prepared prior to an attack, e.g., by | client domains should be adequately prepared prior to an attack, | |||
| creating filters that will be activated on demand when an attack is | e.g., by creating filters that will be activated on demand when an | |||
| detected. | attack is detected. | |||
| A DOTS client is entitled to access only the resources it creates. | A DOTS client is entitled to access only the resources it creates. | |||
| In particular, a DOTS client can not tweak filtering rules created by | In particular, a DOTS client can not tweak filtering rules created by | |||
| other DOTS clients of the same DOTS client domain. As a reminder, | other DOTS clients of the same DOTS client domain. As a reminder, | |||
| DOTS servers must associate filtering rules with the DOTS client that | DOTS servers must associate filtering rules with the DOTS client that | |||
| created these resources. Failure to ensure such association by a | created these resources. Failure to ensure such association by a | |||
| DOTS server will have severe impact on DOTS client domains. | DOTS server will have severe impact on DOTS client domains. | |||
| A compromised DOTS client can use the filtering control capability to | A compromised DOTS client can use the filtering control capability to | |||
| exacerbate an ongoing attack. Likewise, such a compromised DOTS | exacerbate an ongoing attack. Likewise, such a compromised DOTS | |||
| client may abstain from reacting to an ACL conflict notification | client may abstain from reacting to an ACL conflict notification | |||
| received from the DOTS server during attacks. These are not new | received from the DOTS server during attacks. These are not new | |||
| attack vectors, but variations of threats discussed in [RFC8782] and | attack vectors, but variations of threats discussed in [RFC9132] and | |||
| [RFC8783]. DOTS operators should carefully monitor and audit DOTS | [RFC8783]. DOTS operators should carefully monitor and audit DOTS | |||
| agents to detect misbehaviors and to deter misuses. | agents to detect misbehaviors and deter misuses. | |||
| 7. Acknowledgements | ||||
| Many thanks to Wei Pan, Xia Liang, Jon Shallow, Dan Wing, Christer | ||||
| Holmberg, Shawn Emery, Tim Chown, Murray Kucherawy, Roman Danyliw, | ||||
| Erik Kline, and Eric Vyncke for the comments. | ||||
| Thanks to Benjamin Kaduk for the AD review. | ||||
| 8. References | 7. References | |||
| 8.1. Normative References | 7.1. Normative References | |||
| [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
| Requirement Levels", BCP 14, RFC 2119, | Requirement Levels", BCP 14, RFC 2119, | |||
| DOI 10.17487/RFC2119, March 1997, | DOI 10.17487/RFC2119, March 1997, | |||
| <https://www.rfc-editor.org/info/rfc2119>. | <https://www.rfc-editor.org/info/rfc2119>. | |||
| [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, | [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, | |||
| DOI 10.17487/RFC3688, January 2004, | DOI 10.17487/RFC3688, January 2004, | |||
| <https://www.rfc-editor.org/info/rfc3688>. | <https://www.rfc-editor.org/info/rfc3688>. | |||
| [RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for | ||||
| the Network Configuration Protocol (NETCONF)", RFC 6020, | ||||
| DOI 10.17487/RFC6020, October 2010, | ||||
| <https://www.rfc-editor.org/info/rfc6020>. | ||||
| [RFC7950] Bjorklund, M., Ed., "The YANG 1.1 Data Modeling Language", | [RFC7950] Bjorklund, M., Ed., "The YANG 1.1 Data Modeling Language", | |||
| RFC 7950, DOI 10.17487/RFC7950, August 2016, | RFC 7950, DOI 10.17487/RFC7950, August 2016, | |||
| <https://www.rfc-editor.org/info/rfc7950>. | <https://www.rfc-editor.org/info/rfc7950>. | |||
| [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | |||
| 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | |||
| May 2017, <https://www.rfc-editor.org/info/rfc8174>. | May 2017, <https://www.rfc-editor.org/info/rfc8174>. | |||
| [RFC8782] Reddy.K, T., Ed., Boucadair, M., Ed., Patil, P., | ||||
| Mortensen, A., and N. Teague, "Distributed Denial-of- | ||||
| Service Open Threat Signaling (DOTS) Signal Channel | ||||
| Specification", RFC 8782, DOI 10.17487/RFC8782, May 2020, | ||||
| <https://www.rfc-editor.org/info/rfc8782>. | ||||
| [RFC8783] Boucadair, M., Ed. and T. Reddy.K, Ed., "Distributed | [RFC8783] Boucadair, M., Ed. and T. Reddy.K, Ed., "Distributed | |||
| Denial-of-Service Open Threat Signaling (DOTS) Data | Denial-of-Service Open Threat Signaling (DOTS) Data | |||
| Channel Specification", RFC 8783, DOI 10.17487/RFC8783, | Channel Specification", RFC 8783, DOI 10.17487/RFC8783, | |||
| May 2020, <https://www.rfc-editor.org/info/rfc8783>. | May 2020, <https://www.rfc-editor.org/info/rfc8783>. | |||
| 8.2. Informative References | [RFC8791] Bierman, A., Björklund, M., and K. Watsen, "YANG Data | |||
| Structure Extensions", RFC 8791, DOI 10.17487/RFC8791, | ||||
| June 2020, <https://www.rfc-editor.org/info/rfc8791>. | ||||
| [I-D.ietf-dots-architecture] | [RFC9132] Boucadair, M., Ed., Shallow, J., and T. Reddy.K, | |||
| Mortensen, A., Reddy.K, T., Andreasen, F., Teague, N., and | "Distributed Denial-of-Service Open Threat Signaling | |||
| R. Compton, "Distributed-Denial-of-Service Open Threat | (DOTS) Signal Channel Specification", RFC 9132, | |||
| Signaling (DOTS) Architecture", draft-ietf-dots- | DOI 10.17487/RFC9132, September 2021, | |||
| architecture-18 (work in progress), March 2020. | <https://www.rfc-editor.org/info/rfc9132>. | |||
| [Interop] Nishizuka, K., Shallow, J., and L. Xia , "DOTS Interop | 7.2. Informative References | |||
| test report, IETF 103 Hackathon", November 2018, | ||||
| [INTEROP] Nishizuka, K., Shallow, J., and L. Xia, "DOTS Interop test | ||||
| report, IETF 103 Hackathon", November 2018, | ||||
| <https://datatracker.ietf.org/meeting/103/materials/ | <https://datatracker.ietf.org/meeting/103/materials/ | |||
| slides-103-dots-interop-report-from-ietf-103-hackathon- | slides-103-dots-interop-report-from-ietf-103-hackathon- | |||
| 00>. | 00>. | |||
| [Key-Map] IANA, "DOTS Signal Channel CBOR Key Values", | [Key-Map] IANA, "Distributed Denial-of-Service Open Threat Signaling | |||
| <https://www.iana.org/assignments/dots/dots.xhtml#dots- | (DOTS) Signal Channel", | |||
| signal-channel-cbor-key-values>. | <https://www.iana.org/assignments/dots>. | |||
| [RFC7951] Lhotka, L., "JSON Encoding of Data Modeled with YANG", | [RFC7951] Lhotka, L., "JSON Encoding of Data Modeled with YANG", | |||
| RFC 7951, DOI 10.17487/RFC7951, August 2016, | RFC 7951, DOI 10.17487/RFC7951, August 2016, | |||
| <https://www.rfc-editor.org/info/rfc7951>. | <https://www.rfc-editor.org/info/rfc7951>. | |||
| [RFC8340] Bjorklund, M. and L. Berger, Ed., "YANG Tree Diagrams", | [RFC8340] Bjorklund, M. and L. Berger, Ed., "YANG Tree Diagrams", | |||
| BCP 215, RFC 8340, DOI 10.17487/RFC8340, March 2018, | BCP 215, RFC 8340, DOI 10.17487/RFC8340, March 2018, | |||
| <https://www.rfc-editor.org/info/rfc8340>. | <https://www.rfc-editor.org/info/rfc8340>. | |||
| [RFC8612] Mortensen, A., Reddy, T., and R. Moskowitz, "DDoS Open | [RFC8612] Mortensen, A., Reddy, T., and R. Moskowitz, "DDoS Open | |||
| Threat Signaling (DOTS) Requirements", RFC 8612, | Threat Signaling (DOTS) Requirements", RFC 8612, | |||
| DOI 10.17487/RFC8612, May 2019, | DOI 10.17487/RFC8612, May 2019, | |||
| <https://www.rfc-editor.org/info/rfc8612>. | <https://www.rfc-editor.org/info/rfc8612>. | |||
| [RFC8811] Mortensen, A., Ed., Reddy.K, T., Ed., Andreasen, F., | ||||
| Teague, N., and R. Compton, "DDoS Open Threat Signaling | ||||
| (DOTS) Architecture", RFC 8811, DOI 10.17487/RFC8811, | ||||
| August 2020, <https://www.rfc-editor.org/info/rfc8811>. | ||||
| Acknowledgements | ||||
| Many thanks to Wei Pan, Xia Liang, Jon Shallow, Dan Wing, Christer | ||||
| Holmberg, Shawn Emery, Tim Chown, Murray Kucherawy, Roman Danyliw, | ||||
| Erik Kline, and Éric Vyncke for the comments. | ||||
| Thanks to Benjamin Kaduk for the AD review. | ||||
| Authors' Addresses | Authors' Addresses | |||
| Kaname Nishizuka | Kaname Nishizuka | |||
| NTT Communications | NTT Communications | |||
| GranPark 16F 3-4-1 Shibaura, Minato-ku | GranPark 16F 3-4-1 Shibaura, Minato-ku, Tokyo | |||
| Tokyo 108-8118 | 108-8118 | |||
| Japan | Japan | |||
| Email: kaname@nttv6.jp | Email: kaname@nttv6.jp | |||
| Mohamed Boucadair | Mohamed Boucadair | |||
| Orange | Orange | |||
| Rennes 35000 | 35000 Rennes | |||
| France | France | |||
| Email: mohamed.boucadair@orange.com | Email: mohamed.boucadair@orange.com | |||
| Tirumaleswar Reddy | Tirumaleswar Reddy.K | |||
| McAfee, Inc. | Akamai | |||
| Embassy Golf Link Business Park | Embassy Golf Link Business Park | |||
| Bangalore, Karnataka 560071 | Bangalore 560071 | |||
| Karnataka | ||||
| India | India | |||
| Email: kondtir@gmail.com | Email: kondtir@gmail.com | |||
| Takahiko Nagata | Takahiko Nagata | |||
| Lepidum | Lepidum | |||
| Japan | Japan | |||
| Email: nagata@lepidum.co.jp | Email: nagata@lepidum.co.jp | |||
| End of changes. 108 change blocks. | ||||
| 292 lines changed or deleted | 284 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||