rfc8909xml2.original.xml   rfc8909.xml 
<?xml version="1.0" encoding="US-ASCII"?> <?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd"> <!DOCTYPE rfc SYSTEM "rfc2629-xhtml.ent">
<?rfc toc="yes"?>
<?rfc tocompact="yes"?> <rfc xmlns:xi="http://www.w3.org/2001/XInclude" category="std"
<?rfc tocdepth="4"?> consensus="true" number="8909" docName="draft-ietf-dots-signal-filter-contr
<?rfc tocindent="yes"?> ol-07"
<?rfc symrefs="yes"?> ipr="trust200902" obsoletes="" updates="" submissionType="IETF"
<?rfc sortrefs="yes"?> xml:lang="en" tocInclude="true" tocDepth="4" symRefs="true"
<?rfc comments="yes"?> sortRefs="true" version="3">
<?rfc inline="yes"?>
<?rfc compact="yes"?> <!-- xml2rfc v2v3 conversion 2.46.0 -->
<?rfc subcompact="no"?>
<rfc category="std" docName="draft-ietf-dots-signal-filter-control-07"
ipr="trust200902">
<front> <front>
<title abbrev="DOTS Signal Filter Control">Controlling Filtering Rules <title abbrev="DOTS Signal Filter Control">Controlling Filtering Rules
Using Distributed Denial-of-Service Open Threat Signaling (DOTS) Signal Using Distributed Denial-of-Service Open Threat Signaling (DOTS) Signal
Channel</title> Channel</title>
<seriesInfo name="RFC" value="8909"/>
<author fullname="Kaname Nishizuka" initials="K." surname="Nishizuka"> <!-- [rfced] *AD, we note that the Security Considerations section of this
<organization>NTT Communications</organization> document does not contain the text at
https://trac.ietf.org/trac/ops/wiki/yang-security-guidelines. Please
review and let us know if this is acceptable or if updates are needed.
-->
<author fullname="Kaname Nishizuka" initials="K." surname="Nishizuka">
<organization>NTT Communications</organization>
<address> <address>
<postal> <postal>
<street>GranPark 16F 3-4-1 Shibaura, Minato-ku</street> <street>GranPark 16F 3-4-1 Shibaura, Minato-ku</street>
<code>108-8118</code>
<city>Tokyo</city> <region>Tokyo</region>
<region></region>
<code>108-8118</code>
<country>Japan</country> <country>Japan</country>
</postal> </postal>
<email>kaname@nttv6.jp</email> <email>kaname@nttv6.jp</email>
</address> </address>
</author> </author>
<author fullname="Mohamed Boucadair" initials="M." surname="Boucadair"> <author fullname="Mohamed Boucadair" initials="M." surname="Boucadair">
<organization>Orange</organization> <organization>Orange</organization>
<address> <address>
<postal> <postal>
<street></street> <street/>
<city>Rennes</city> <city>Rennes</city>
<code>35000</code> <code>35000</code>
<region/>
<country>France</country> <country>France</country>
</postal> </postal>
<email>mohamed.boucadair@orange.com</email> <email>mohamed.boucadair@orange.com</email>
</address> </address>
</author> </author>
<!-- [rfced] This question is for author Tirumaleswar Reddy. In RFCs 8768,
8782, and 8783, we see that your name appears as "T. Reddy.K" in the
document header and as "Tirumaleswar Reddy.K" in the Authors' Addresses
section. Would you like to use the same form for your name in this
document? Note that your name appears in three locations in the output
files for document: document header, Authors' Addresses, and the YANG
module.
Current
Document header:
T. Reddy
Authors' Addresses:
Tirumaleswar Reddy
YANG Module:
Konda, Tirumaleswar Reddy
Perhaps
Document header:
T. Reddy.K
Authors' Addresses:
Tirumaleswar Reddy.K
YANG Module:
Tirumaleswar Reddy.K
-->
<author fullname="Tirumaleswar Reddy" initials="T." surname="Reddy"> <author fullname="Tirumaleswar Reddy" initials="T." surname="Reddy">
<organization abbrev="McAfee">McAfee, Inc.</organization> <organization abbrev="McAfee">McAfee, Inc.</organization>
<address> <address>
<postal> <postal>
<street>Embassy Golf Link Business Park</street> <street>Embassy Golf Link Business Park</street>
<city>Bangalore</city> <city>Bangalore</city>
<region>Karnataka</region>
<code>560071</code> <code>560071</code>
<region>Karnataka</region>
<country>India</country> <country>India</country>
</postal> </postal>
<email>kondtir@gmail.com</email> <email>kondtir@gmail.com</email>
</address> </address>
</author> </author>
<author fullname="Takahiko Nagata" initials="T." surname="Nagata"> <author fullname="Takahiko Nagata" initials="T." surname="Nagata">
<organization>Lepidum</organization> <organization>Lepidum</organization>
<address> <address>
<postal> <postal>
<street></street> <street/>
<city/>
<city></city> <region/>
<code/>
<region></region>
<code></code>
<country>Japan</country> <country>Japan</country>
</postal> </postal>
<email>nagata@lepidum.co.jp</email> <email>nagata@lepidum.co.jp</email>
</address> </address>
</author> </author>
<date month="September" year="2020"/>
<date />
<workgroup>DOTS</workgroup> <workgroup>DOTS</workgroup>
<keyword>Mitigation</keyword> <keyword>Mitigation</keyword>
<keyword>Automation</keyword> <keyword>Automation</keyword>
<keyword>Filtering</keyword> <keyword>Filtering</keyword>
<keyword>Protective Networking</keyword> <keyword>Protective Networking</keyword>
<keyword>Protected Networks</keyword> <keyword>Protected Networks</keyword>
<keyword>Security</keyword> <keyword>Security</keyword>
<keyword>Anti-DDoS</keyword> <keyword>Anti-DDoS</keyword>
<keyword>Reactive</keyword> <keyword>Reactive</keyword>
<keyword>Collaborative Networking</keyword> <keyword>Collaborative Networking</keyword>
<keyword>Collaborative Security</keyword> <keyword>Collaborative Security</keyword>
<abstract> <abstract>
<t>This document specifies an extension to the Distributed <t>This document specifies an extension to the Distributed
Denial-of-Service Open Threat Signaling (DOTS) signal channel protocol Denial-of-Service Open Threat Signaling (DOTS) signal channel protocol
so that DOTS clients can control their filtering rules when an attack so that DOTS clients can control their filtering rules when an attack
mitigation is active.</t> mitigation is active.</t>
<t>Particularly, this extension allows a DOTS client to activate or <t>Particularly, this extension allows a DOTS client to activate or
de-activate existing filtering rules during a DDoS attack. The deactivate existing filtering rules during a Distributed
Denial-of-Service (DDoS) attack. The
characterization of these filtering rules is conveyed by a DOTS client characterization of these filtering rules is conveyed by a DOTS client
during an idle time (i.e., no mitigation is active) by means of the DOTS during an idle time (i.e., no mitigation is active) by means of the DOTS
data channel protocol.</t> data channel protocol.</t>
</abstract> </abstract>
<note title="Editorial Note (To be removed by RFC Editor)">
<t>Please update these statements within the document with the RFC
number to be assigned to this document:<list style="symbols">
<t>"This version of this YANG module is part of RFC XXXX;"</t>
<t>"RFC XXXX: Controlling Filtering Rules Using Distributed
Denial-of-Service Open Threat Signaling (DOTS) Signal Channel";</t>
<t>reference: RFC XXXX</t>
<t>[RFCXXXX]</t>
</list>Please update the "revision" date of the YANG module.</t>
</note>
</front> </front>
<middle> <middle>
<section anchor="introduction" title="Introduction"> <section anchor="introduction" numbered="true" toc="default">
<section anchor="problem" title="The Problem"> <name>Introduction</name>
<section anchor="problem" numbered="true" toc="default">
<name>The Problem</name>
<t>In the Distributed Denial-of-Service Open Threat Signaling (DOTS) <t>In the Distributed Denial-of-Service Open Threat Signaling (DOTS)
architecture <xref target="I-D.ietf-dots-architecture"></xref>, DOTS architecture <xref target="I-D.ietf-dots-architecture" format="default"/ >, DOTS
clients and servers communicate using both a signal channel protocol clients and servers communicate using both a signal channel protocol
<xref target="RFC8782"></xref> and a data channel protocol <xref <xref target="RFC8782" format="default"/> and a data channel protocol <x
target="RFC8783"></xref>.</t> ref target="RFC8783" format="default"/>.</t>
<t>The DOTS data channel protocol <xref target="RFC8783"></xref> is <!-- [rfced] Will readers understand what "its" refers to here? Would the
suggested text below improve readability?
Original:
Filter management is one of its tasks which enables a DOTS
client to retrieve the filtering capabilities of a DOTS server and to
manage filtering rules.
Perhaps:
Filter management, which is one of the tasks of the DOTS data channel
protocol, enables a DOTS client to retrieve the filtering
capabilities of a DOTS server and to manage filtering rules.
-->
<t>The DOTS data channel protocol <xref target="RFC8783" format="default
"/> is
used for bulk data exchange between DOTS agents to improve the used for bulk data exchange between DOTS agents to improve the
coordination of parties involved in the response to a Distributed coordination of parties involved in the response to a Distributed
Denial-of-Service (DDoS) attack. Filter management is one of its tasks Denial-of-Service (DDoS) attack. Filter management is one of its
which enables a DOTS client to retrieve the filtering capabilities of tasks, which
enables a DOTS client to retrieve the filtering capabilities of
a DOTS server and to manage filtering rules. Typically, these a DOTS server and to manage filtering rules. Typically, these
filtering rules are used for dropping or rate-limiting unwanted filtering rules are used for dropping or rate-limiting unwanted
traffic, and permitting accept-listed traffic.</t> traffic, and permitting accept-listed traffic.</t>
<t>The DOTS signal channel protocol <xref target="RFC8782" format="defau
<t>The DOTS signal channel protocol <xref target="RFC8782"></xref> is lt"/> is
designed to be resilient under extremely hostile network conditions designed to be resilient under extremely hostile network conditions
and provides continued contact between DOTS agents even as DDoS attack and provides continued contact between DOTS agents even as DDoS attack
traffic saturates the link. The DOTS signal channel can be established traffic saturates the link. The DOTS signal channel can be established
between two DOTS agents prior to or during an attack. At any time, the 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 <xref DOTS client may send mitigation requests (as per <xref
target="RFC8782"></xref>) to a DOTS server over the active signal target="RFC8782" sectionFormat="of" section="4.4"/>) to a DOTS server ove
r the active signal
channel. While mitigation is active, the DOTS server periodically channel. While mitigation is active, the DOTS server periodically
sends status messages to the DOTS client, including basic mitigation sends status messages to the DOTS client, including basic mitigation
feedback details. In case of a massive DDoS attack that saturates the feedback 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 <xref channel active (as described in <xref target="RFC8782"
target="RFC8782"></xref>).</t> sectionFormat="of" section="4.7"/>).</t>
<t>Unlike the DOTS signal channel protocol, the DOTS data channel <t>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 <xref target="Interop"></xref>.</t> operations <xref target="INTEROP" format="default"/>.</t>
<t>A typical case is a conflict between filtering rules installed by a <t>A typical case is a conflict between filtering rules installed by a
DOTS client and the mitigation actions of a DDoS mitigator. Consider, DOTS client and the mitigation actions of a DDoS mitigator. Consider,
for instance, a DOTS client that configures during 'idle' time (i.e., for instance, a DOTS client that configures during 'idle' time (i.e.,
no mitigation is active) some filtering rules using the DOTS data no mitigation is active) some filtering rules using the DOTS data
channel protocol to permit traffic from accept-listed sources. channel protocol to permit traffic from accept-listed sources.
However, during a volumetric DDoS attack the DDoS mitigator identifies However, during a volumetric DDoS attack, the DDoS mitigator identifies
the source addresses/prefixes in the accept-listed filtering rules are the source addresses/prefixes in the accept-listed filtering rules are
attacking the target. For example, an attacker can spoof the IP attacking the target. For example, an attacker can spoof the IP
addresses of accept-listed sources to generate attack traffic or the addresses of accept-listed sources to generate attack traffic, or the
attacker can compromise the accept-listed sources and program them to attacker can compromise the accept-listed sources and program them to
launch a DDoS attack.</t> launch a DDoS attack.</t>
<t><xref target="RFC8782"></xref> is designed so that the DDoS server <!-- [rfced] We note that Sections 9.6.2 and 9.6.4 of RFC 8782 define the
notifies the above conflict to the DOTS client (that is, status and conflict-cause codes. In the sentences below, sometimes the "Label" f
'conflict-cause' parameter set to 2 (Conflicts with an existing accept rom
list)), but the DOTS client may not be able to withdraw the these sections is used and sometimes the "Definition" is used. For
example, in the first sentence below, "Attack mitigation is in progress"
is the Description but "attack-mitigation-in-progress" is the Label. Should
this be consistent?
Original:
Assuming the DOTS client subscribed to asynchronous notifications,
when the DOTS server concludes that some of the attack sources belong
to 2001:db8:1234::/48, it sends a notification message with 'status'
code set to '1 (Attack mitigation is in progress)' and 'conflict-
cause' set to '2' (conflict-with-acceptlist) to the DOTS client to
indicate that this mitigation request is in progress, but a conflict
is detected.
...
As the attack mitigation evolves, the DOTS client may decide to
deactivate the rate-limit policy (e.g., upon receipt of notification
status change from 'attack-exceeded-capability' to 'attack-
mitigation-in-progress').
...
[RFC8782] is designed so that the DDoS server notifies the above
conflict to the DOTS client (that is, 'conflict-cause' parameter set
to 2 (Conflicts with an existing accept list)), but the DOTS client
may not be able to withdraw the accept-list rules during the attack
period due to the high-volume attack traffic saturating the inbound
link to the DOTS client domain.
Perhaps (using Label consistently):
Assuming the DOTS client subscribed to asynchronous notifications,
when the DOTS server concludes that some of the attack sources belong
to 2001:db8:1234::/48, it sends a notification message with 'status'
code set to 1 (attack-mitigation-in-progress) and 'conflict-
cause' set to 2 (conflict-with-acceptlist) to the DOTS client to
indicate that this mitigation request is in progress, but a conflict
is detected.
...
As the attack mitigation evolves, the DOTS client may decide to
deactivate the rate-limit policy (e.g., upon receipt of a notification
status change from 'attack-exceeded-capability' to 'attack-
mitigation-in-progress').
...
[RFC8782] is designed so that the DDoS server notifies the above
conflict to the DOTS client (that is, the 'conflict-cause' parameter set
to 2 (conflict-with-acceptlist)), but the DOTS client
may not be able to withdraw the accept-list rules during the attack
period due to the high-volume attack traffic saturating the inbound
link to the DOTS client domain.
-->
<t><xref target="RFC8782" format="default"/> is designed so that the
DDoS server notifies the above conflict to the DOTS client (that is, the
'conflict-cause' parameter set to 2 (Conflicts with an existing
accept-list)), but the DOTS client may not be able to withdraw the
accept-list rules during the attack period due to the high-volume accept-list rules during the attack period due to the high-volume
attack traffic saturating the inbound link to the DOTS client domain. attack traffic saturating the inbound link to the DOTS client domain.
In other words, the DOTS client cannot use the DOTS data channel In other words, the DOTS client cannot use the DOTS data channel
protocol to withdraw the accept-list filters when a DDoS attack is in protocol to withdraw the accept-list filters when a DDoS attack is in
progress.</t> progress.</t>
</section>
<section anchor="sol" </section>
title="Controlling Filtering Rules Using DOTS Signal Channel"> <section anchor="sol" numbered="true" toc="default">
<t>This specification addresses the problems discussed in <xref <name>Controlling Filtering Rules Using DOTS Signal Channel</name>
target="problem"></xref> by adding a capability for managing filtering <t>This specification addresses the problems discussed in <xref target="
problem" format="default"/> by adding a capability for managing filtering
rules using the DOTS signal channel protocol, which enables a DOTS rules using the DOTS signal channel protocol, which enables a DOTS
client to request the activation (or deactivation) of filtering rules client to request the activation (or deactivation) of filtering rules
during a DDoS attack. Note that creating these filtering rules is during a DDoS attack. Note that creating these filtering rules is
still the responsibility of the DOTS data channel <xref still the responsibility of the DOTS data channel <xref target="RFC8783"
target="RFC8783"></xref>.</t> format="default"/>.</t>
<t>The DOTS signal channel protocol is designed to enable a DOTS <t>The DOTS signal channel protocol is designed to enable a DOTS
client to contact a DOTS server for help even under severe network client 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.</t> the protection capability offered by DOTS protocols.</t>
<t><list style="empty"> <aside>
<t>Note: The experiment at the IETF103 hackathon <xref <t>Note: The experiment at the IETF 103 hackathon <xref
target="Interop"></xref> showed that even when the inbound link is target="INTEROP" format="default"/> showed that even when the
saturated by DDoS attack traffic, the DOTS client can signal inbound link is saturated by DDoS attack traffic, the DOTS client
mitigation requests using the DOTS signal channel over the can signal mitigation requests using the DOTS signal channel over
saturated link.</t> the saturated link.</t>
</list></t> </aside>
<t>Conflicts that are induced by filters installed by other DOTS <t>Conflicts that are induced by filters installed by other DOTS
clients of the same domain are not discussed in this clients of the same domain are not discussed in this
specification.</t> specification.</t>
<t>An augmentation to the DOTS signal channel YANG module is defined <t>An augmentation to the DOTS signal channel YANG module is defined
in <xref target="YANG"></xref>.</t> in <xref target="YANG" format="default"/>.</t>
<t>Sample examples are provided in <xref target="sample" format="default
<t>Sample examples are provided in <xref target="sample"></xref>, in "/>, in
particular: <list style="symbols"> particular: </t>
<t><xref target="sample1"></xref> illustrates how the filter <ul spacing="normal">
<li>
<xref target="sample1" format="default"/> illustrates how the filter
control extension is used when conflicts with Access Control Lists control extension is used when conflicts with Access Control Lists
(ACLs) are detected and reported by a DOTS server.</t> (ACLs) are detected and reported by a DOTS server.</li>
<li>
<t><xref target="sample2"></xref> shows how a DOTS client can <xref target="sample2" format="default"/> shows how a DOTS client ca
n
instruct a DOTS server to safely forward some specific traffic in instruct a DOTS server to safely forward some specific traffic in
'attack' time.</t> 'attack' time.</li>
<li>
<t><xref target="sample3"></xref> shows how a DOTS client can <xref target="sample3" format="default"/> shows how a DOTS client ca
n
react if the DDoS traffic is still being forwarded to the DOTS react if the DDoS traffic is still being forwarded to the DOTS
client domain even if mitigation requests were sent to a DOTS client domain even if mitigation requests were sent to a DOTS
server.</t> server.</li>
</list></t> </ul>
<t>The JavaScript Object Notation (JSON) encoding of YANG-modeled data <t>The JavaScript Object Notation (JSON) encoding of YANG-modeled data
<xref target="RFC7951"></xref> is used to illustrate the examples.</t> <xref target="RFC7951" format="default"/> is used to illustrate the exam ples.</t>
</section> </section>
</section> </section>
<section anchor="notation" numbered="true" toc="default">
<name>Terminology</name>
<section anchor="notation" title="Terminology"> <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>",
<t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>",
"OPTIONAL" in this document are to be interpreted as described in BCP 14 "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
<xref target="RFC2119"></xref> <xref target="RFC8174"></xref> when, and "<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are
to be interpreted as described in BCP&nbsp;14 <xref target="RFC2119"
format="default"/> <xref target="RFC8174" format="default"/> when, and
only when, they appear in all capitals, as shown here.</t> only when, they appear in all capitals, as shown here.</t>
<t>The reader should be familiar with the terms defined in <xref <t>The reader should be familiar with the terms defined in <xref
target="RFC8612"></xref>.</t> target="RFC8612" format="default"/>.</t>
<t>The terminology for describing YANG modules is defined in <xref target=
<t>The terminology for describing YANG modules is defined in <xref "RFC7950" format="default"/>. The meaning of the symbols in the tree diagram
target="RFC7950"></xref>. The meaning of the symbols in the tree diagram is defined in <xref target="RFC8340" format="default"/>.</t>
is defined in <xref target="RFC8340"></xref>.</t>
</section> </section>
<section numbered="true" toc="default">
<section title="Controlling Filtering Rules of a DOTS Client"> <name>Controlling Filtering Rules of a DOTS Client</name>
<section anchor="bind" title="Binding DOTS Data and Signal Channels"> <section anchor="bind" numbered="true" toc="default">
<name>Binding DOTS Data and Signal Channels</name>
<t>The filtering rules eventually managed using the DOTS signal <t>The filtering rules eventually managed using the DOTS signal
channel protocol are created a priori by the same DOTS client using channel protocol are created a priori by the same DOTS client using
the DOTS data channel protocol. Managing conflicts with filters the DOTS data channel protocol. Managing conflicts with filters
installed by other DOTS clients of the same domain is out of installed by other DOTS clients of the same domain is out of
scope.</t> scope.</t>
<t>As discussed in <xref target="RFC8782" sectionFormat="of"
<t>As discussed in Section 4.4.1 of <xref target="RFC8782"></xref>, a section="4.4.1"/>, a DOTS client must use the same 'cuid' for both the
DOTS client must use the same 'cuid' for both the DOTS signal and data DOTS signal and data channels. This requirement is meant to facilitate
channels. This requirement is meant to facilitate binding DOTS binding DOTS channels used by the same DOTS client.</t>
channels used by the same DOTS client.</t>
<t>The DOTS signal and data channels from a DOTS client may or may not <t>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 within server but to the DOTS server domain. To that aim, DOTS servers within
a domain are assumed to have a mechanism to coordinate the mitigation a domain are assumed to have a mechanism to coordinate the mitigation
requests, aliases, and filtering rules to coordinate their decisions requests, aliases, and filtering rules to coordinate their decisions
for better mitigation operation efficiency. The exact details about for better mitigation operation efficiency. The exact details about
such mechanism is out of the scope of this document.</t> such a mechanism is out of the scope of this document.</t>
<t>A filtering rule controlled by the DOTS signal channel is <t>A filtering rule controlled by the DOTS signal channel is
identified by its ACL name (Section 4.3 of <xref identified by its ACL name (<xref target="RFC8782"
target="RFC8782"></xref>). Note that an ACL name unambiguously sectionFormat="of" section="4.3"/>). Note that an ACL name unambiguously
identifies an ACL bound to a DOTS client, but the same name may be identifies an ACL bound to a DOTS client, but the same name may be
used by distinct DOTS clients.</t> used by distinct DOTS clients.</t>
<t>The activation or deactivation of an ACL by the DOTS signal channel <t>The activation or deactivation of an ACL by the DOTS signal channel
overrides the 'activation-type' (defined in Section 4.3 of <xref overrides the 'activation-type' (defined in <xref target="RFC8783"
target="RFC8783"></xref>) a priori conveyed with the filtering rules sectionFormat="of" section="4.3"/>) a priori conveyed with the
using the DOTS data channel protocol.</t> filtering rules using the DOTS data channel protocol.</t>
<t>Once the attack is mitigated, the DOTS client may use the data <t>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.</t> specific.</t>
</section> </section>
<section numbered="true" toc="default">
<section title="DOTS Signal Channel Extension"> <name>DOTS Signal Channel Extension</name>
<section anchor="filtering" title="Parameters and Behaviors"> <section anchor="filtering" numbered="true" toc="default">
<name>Parameters and Behaviors</name>
<t>This specification extends the mitigation request defined in <t>This specification extends the mitigation request defined in
Section 4.4.1 of <xref target="RFC8782"></xref> to convey the <xref target="RFC8782" sectionFormat="of" section="4.4.1"/> to
intended control of configured filtering rules. Concretely, the DOTS convey the intended control of configured filtering
client conveys 'acl-list' attribute with the following rules. Concretely, the DOTS client conveys the 'acl-list' attribute wi
sub-attributes in the CBOR body of a mitigation request (see the th
YANG structure in <xref target="tree"></xref>):<list style="hanging"> the following sub-attributes in the Concise Binary Object
<t hangText="acl-name:">A name of an access list defined using Representation (CBOR) body of a mitigation
the DOTS data channel (Section 4.3 of <xref request (see the YANG structure in <xref target="tree"
target="RFC8783"></xref>) that is associated with the DOTS format="default"/>):</t>
client.<vspace blankLines="1" />As a reminder, an ACL is an <dl newline="false" spacing="normal">
ordered list of Access Control Entries (ACE). Each ACE has a <dt>acl-name:</dt>
list of match criteria and a list of actions <xref <dd>
target="RFC8783"></xref>. The list of configured ACLs can be <t>A name of an access list defined using
retrieved using the DOTS data channel during 'idle' time.<vspace the DOTS data channel (<xref target="RFC8783"
blankLines="1" />This is a mandatory attribute when 'acl-list' sectionFormat="of" section="4.3"/>) that is associated with the DOT
S
client.</t>
<t>As a reminder, an ACL is an ordered list of Access Control
Entries (ACEs). Each ACE has a list of match criteria and a list
of actions <xref target="RFC8783" format="default"/>. The list
of configured ACLs can be retrieved using the DOTS data channel
during 'idle' time.</t>
<t>This is a mandatory attribute when 'acl-list'
is included.</t> is included.</t>
</dd>
<t hangText="activation-type:">Indicates the activation type of <dt>activation-type:</dt>
<dd>
<t>An attribute indicating the activation type of
an ACL overriding the existing 'activation-type' installed by an ACL overriding the existing 'activation-type' installed by
the DOTS client using the DOTS data channel. <vspace the DOTS client using the DOTS data channel. </t>
blankLines="1" />As a reminder, this attribute can be set to <t>As a reminder, this attribute can be set to
'deactivate', 'immediate', or 'activate-when-mitigating' as 'deactivate', 'immediate', or 'activate-when-mitigating' as
defined in <xref target="RFC8783"></xref>. <vspace defined in <xref target="RFC8783" format="default"/>. </t>
blankLines="1" />Note that both 'immediate' and <t>Note that both 'immediate' and
'activate-when-mitigating' have an immediate effect when a 'activate-when-mitigating' have an immediate effect when a
mitigation request is being processed by the DOTS server. mitigation request is being processed by the DOTS server.
<vspace blankLines="1" />This is an optional attribute.</t> </t>
</list></t> <t>This is an optional attribute.</t>
</dd>
</dl>
<t>By default, ACL-related operations are achieved using the DOTS <t>By default, ACL-related operations are achieved using the DOTS
data channel protocol when no attack is ongoing. DOTS clients MUST data channel protocol when no attack is ongoing. DOTS clients <bcp14>M
NOT use the filtering control over DOTS signal channel in 'idle' UST
time; such requests MUST be discarded by DOTS servers with 4.00 (Bad NOT</bcp14> use the filtering control over the DOTS signal channel in
'idle'
time; such requests <bcp14>MUST</bcp14> be discarded by DOTS servers w
ith 4.00 (Bad
Request).</t> Request).</t>
<t>During an attack time, DOTS clients may include 'acl-list', <t>During an attack time, DOTS clients may include 'acl-list',
'acl-name', and 'activation-type' attributes in a mitigation 'acl-name', and 'activation-type' attributes in a mitigation
request. This request may be the initial mitigation request for a request. This request may be the initial mitigation request for a
given mitigation scope or a new one overriding an existing request. given mitigation scope or a new one overriding an existing request.
In both cases, a new 'mid' MUST be used. Nevertheless, it is NOT In both cases, a new 'mid' <bcp14>MUST</bcp14> be used. Nevertheless,
RECOMMENDED to include ACL attributes in an initial mitigation it is <bcp14>NOT
RECOMMENDED</bcp14> 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.</t> attributes.</t>
<t>As the attack evolves, DOTS clients can adjust the <t>As the attack evolves, DOTS clients can adjust the
'activation-type' of an ACL conveyed in a mitigation request or 'activation-type' of an ACL conveyed in a mitigation request or
control other filters as necessary. This can be achieved by sending control other filters as necessary. This can be achieved by sending
a PUT request with a new 'mid' value.</t> a PUT request with a new 'mid' value.</t>
<t>It is <bcp14>RECOMMENDED</bcp14> for a DOTS client to subscribe
<t>It is RECOMMENDED for a DOTS client to subscribe to asynchronous to asynchronous notifications of the attack mitigation, as detailed
notifications of the attack mitigation, as detailed in Section in <xref target="RFC8782" sectionFormat="of" section="4.4.2.1"/>. If
4.4.2.1 of <xref target="RFC8782"></xref>. If not, the polling not, the polling mechanism in <xref target="RFC8782"
mechanism in Section 4.4.2.2 of <xref target="RFC8782"></xref> has sectionFormat="of" section="4.4.2.2"/> has to be followed by the
to be followed by the DOTS client.</t> DOTS client.</t>
<t>A DOTS client relies on the information received from the DOTS <t>A DOTS client relies on the information received from the DOTS
server and/or local information to the DOTS client domain to trigger server and/or local information to the DOTS client domain to trigger
a filter control request. Only filters that are pertinent for an a 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.</t> DOTS signal channel.</t>
<t>'acl-list', 'acl-name', and 'activation-type' are defined as <t>'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 <xref
of <xref target="RFC8782"></xref>, if the DOTS server does not target="RFC8782" sectionFormat="of" section="6"/>, if the DOTS
understand the 'acl-list' or 'acl-name' or 'activation-type' server does not understand the 'acl-list', 'acl-name', or
attributes, it responds with a "4.00 (Bad Request)" error response 'activation-type' attributes, it responds with a 4.00 (Bad
code.</t> Request) error response code.</t>
<t>If the DOTS server does not find the ACL name ('acl-name') <t>If the DOTS server does not find the ACL name ('acl-name')
conveyed in the mitigation request for this DOTS client, it MUST conveyed in the mitigation request for this DOTS client, it <bcp14>MUS
respond with 4.04 (Not Found) error response code.</t> T</bcp14>
respond with a 4.04 (Not Found) error response code.</t>
<t>If the DOTS server finds the ACL name for this DOTS client, and <t>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 assuming the request passed the validation checks in <xref
of <xref target="RFC8782"></xref>, the DOTS server MUST proceed with target="RFC8782" sectionFormat="of" section="4.4.1"/>, the DOTS
the 'activation-type' update. The update is immediately enforced by server <bcp14>MUST</bcp14> proceed with the 'activation-type'
the DOTS server and will be maintained as the new activation type update. The update is immediately enforced by the DOTS server and
for the ACL name even after the termination of the mitigation will be maintained as the new activation type for the ACL name even
request. In addition, the DOTS server MUST update the lifetime of after the termination of the mitigation request. In addition, the
the corresponding ACL similar to the update when a refresh request DOTS server <bcp14>MUST</bcp14> update the lifetime of the
is received using the DOTS data channel (Section 7.2 of <xref corresponding ACL similar to the update when a refresh request is
target="RFC8783"></xref>). If, for some reason, the DOTS server received using the DOTS data channel (<xref target="RFC8783"
fails to apply the filter update, it MUST respond with 5.03 (Service sectionFormat="of" section="7.2"/>). If, for some reason, the DOTS
Unavailable) error response code and include the failed ACL update server fails to apply the filter update, it <bcp14>MUST</bcp14>
in the diagnostic payload of the response (an example is shown in respond with a 5.03 (Service Unavailable) error response code and
<xref target="diag"></xref>). Else, the DOTS server replies with the include the failed ACL update in the diagnostic payload of the
appropriate response code defined in Section 4.4.1 of <xref response (an example is shown in <xref target="diag"
target="RFC8782"></xref>.</t> format="default"/>). Else, the DOTS server replies with the
appropriate response code defined in <xref target="RFC8782"
<t><figure align="center" anchor="diag" sectionFormat="of" section="4.4.1"/>.</t>
title="Example of a Diagnostic Payload Including Failed ACL Update <figure anchor="diag">
"> <name>Example of a Diagnostic Payload Including Failed ACL Update</n
<artwork><![CDATA[{ ame>
<sourcecode>
{
"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"
} }
] ]
} }
] ]
} }
}]]></artwork> }
</figure></t> </sourcecode>
</figure>
<t>The JSON/YANG mappings for DOTS filter control attributes are <t>The JSON/YANG mappings for DOTS filter control attributes are
shown in Table 1. As a reminder, the mapping for 'acl-name' is shown in <xref target="table1"/>. As a reminder, the mapping for 'acl-
defined in Table 5 of <xref target="RFC8782"></xref>.</t> name' is
defined in Table 5 of <xref target="RFC8782"/>.</t>
<t><figure> <table anchor="table1">
<artwork><![CDATA[+-------------------+------------+--------+----- <name>JSON/YANG Mapping to CBOR for Filter Control Attributes</name>
----------+--------+
| Parameter Name | YANG | CBOR | CBOR Major | JSON | <thead>
| | Type | Key | Type & | Type | <tr>
| | | | Information | | <th>Parameter Name</th>
+===================+============+========+===============+========+ <th>YANG Type</th>
| activation-type | enumeration| TBA1 | 0 unsigned | String | <th>CBOR Type</th>
+-------------------+------------+--------+---------------+--------+ <th>CBOR Major Type &amp; Information</th>
| ietf-dots-signal- | | | | | <th>JSON Type</th>
| control:acl-list | list | TBA2 | 4 array | Array | </tr>
+-------------------+------------+--------+---------------+--------+ </thead>
| acl-name | leafref | 23 | 3 text string | String | <tbody>
+-------------------+------------+--------+---------------+--------+ <tr>
Table 1: JSON/YANG Mapping to CBOR for Filter Control Attributes]]></artwork> <td>activation-type</td>
</figure></t> <td>enumeration</td>
<td>52</td>
<td>0 unsigned</td>
<td>String</td>
</tr>
<tr>
<td>ietf-dots-signal-control:acl-list</td>
<td>list</td>
<td>53</td>
<td>4 array</td>
<td>Array</td>
</tr>
<tr>
<td>acl-name</td>
<td>leafref</td>
<td>23</td>
<td>3 text string</td>
<td>String</td>
</tr>
</tbody>
</table>
<t>If the DOTS client receives a 5.03 (Service Unavailable) with a <t>If the DOTS client receives a 5.03 (Service Unavailable) with a
diagnostic payload indicating a failed ACL update as a response to diagnostic payload indicating a failed ACL update as a response to
an initial mitigation or a mitigation with adjusted scope, the DOTS an initial mitigation or a mitigation with adjusted scope, the DOTS
client MUST immediately send a new request which repeats all the client <bcp14>MUST</bcp14> immediately send a new request that
parameters as sent in the failed mitigation request but without repeats all the parameters as sent in the failed mitigation request
including the ACL attributes. After the expiry of Max-Age returned but without including the ACL attributes. After the expiry of
in the 5.03 (Service Unavailable) response, the DOTS client retries Max-Age returned in the 5.03 (Service Unavailable) response, the
with a new mitigation request (i.e., a new 'mid') that repeats all DOTS client retries with a new mitigation request (i.e., a new
the parameters as sent in the failed mitigation request (i.e., the 'mid') that repeats all the parameters as sent in the failed
one including the ACL attributes).</t> mitigation request (i.e., the one including the ACL attributes).</t>
<t>If, during an active mitigation, the 'activation-type' is changed <t>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 at 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 ACL bound to a DOTS client, the DOTS server notifies that DOTS
client of the change by including the corresponding ACL parameters client of the change by including the corresponding ACL parameters
in an asynchronous notification (the DOTS client is observing the in an asynchronous notification (the DOTS client is observing the
active mitigation) or in a response to a polling request (Section active mitigation) or in a response to a polling request (<xref
4.4.2.2 of <xref target="RFC8782"></xref>).</t> target="RFC8782" sectionFormat="of" section="4.4.2.2"/>).</t>
<t>If the DOTS signal and data channels of a DOTS client are not <t>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 <xref target="bind"></xref>.</t> coordination mechanism discussed in <xref target="bind" format="defaul
t"/>.</t>
<t>This specification does not require any modification to the <t>This specification does not require any modification to the
efficacy update and the withdrawal procedures defined in <xref efficacy update and the withdrawal procedures defined in <xref target=
target="RFC8782"></xref>. In particular, ACL-related clauses are not "RFC8782" format="default"/>. In particular, ACL-related clauses are not
included in a PUT request used to send an efficacy update and DELETE included in a PUT request used to send an efficacy update and DELETE
requests.</t> requests.</t>
</section> </section>
<section anchor="YANG" numbered="true" toc="default">
<section anchor="YANG" title="DOTS Signal Filtering Control Module "> <name>DOTS Signal Filtering Control Module</name>
<section anchor="tree" title="Tree Structure"> <section anchor="tree" numbered="true" toc="default">
<name>Tree Structure</name>
<t>This document augments the "ietf-dots-signal-channel" YANG <t>This document augments the "ietf-dots-signal-channel" YANG
module defined in <xref target="RFC8782"></xref> for managing module defined in <xref target="RFC8782" format="default"/> for mana ging
filtering rules.</t> filtering rules.</t>
<t>This document defines the YANG module <t>This document defines the YANG module
"ietf-dots-signal-control", which has the following tree "ietf-dots-signal-control", which has the following tree
structure:<figure> structure:</t>
<artwork><![CDATA[module: ietf-dots-signal-control
<sourcecode type="yangtree">
module: ietf-dots-signal-control
augment /ietf-signal:dots-signal/ietf-signal:message-type augment /ietf-signal:dots-signal/ietf-signal:message-type
/ietf-signal:mitigation-scope/ietf-signal:scope: /ietf-signal:mitigation-scope/ietf-signal:scope:
+--rw acl-list* [acl-name] {control-filtering}? +--rw acl-list* [acl-name] {control-filtering}?
+--rw acl-name +--rw acl-name
| -> /ietf-data:dots-data/dots-client/acls/acl/name | -> /ietf-data:dots-data/dots-client/acls/acl/name
+--rw activation-type? ietf-data:activation-type +--rw activation-type? ietf-data:activation-type
</sourcecode >
]]></artwork>
</figure></t>
</section> </section>
<section numbered="true" toc="default">
<section title="YANG Module"> <name>YANG Module</name>
<t>This YANG module is not intended to be used via <t>This YANG module is not intended to be used via
NETCONF/RESTCONF for DOTS server management purposes; such module NETCONF/RESTCONF for DOTS server management purposes; such a module
is out of the scope of this document. It serves only to provide a is out of the scope of this document. It serves only to provide a
data model and encoding, but not a management data model.</t> data model and encoding, but not a management data model.</t>
<t>This module uses types defined in <xref target="RFC8783" format=" default"/>.</t>
<t>This module uses types defined in <xref <!-- [rfced] Please note that we have updated the format of the YANG module
target="RFC8783"></xref>.</t> using the formatting option of pyang. We have created the following diff
file so you can view the changes. Let us know any objections.
<t><figure> https://www.rfc-editor.org/authors/ietf-dots-signal-control-format-diff.html
<artwork><![CDATA[<CODE BEGINS> file "ietf-dots-signal-control@2 -->
019-05-13.yang"
<sourcecode name="ietf-dots-signal-control@2020-09-10.yang" type="yang" markers ="true"><![CDATA[
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 ietf-signal;
reference reference
"RFC 8782: Distributed Denial-of-Service Open Threat "RFC 8782: Distributed Denial-of-Service Open Threat
Signaling (DOTS) Signal Channel Specification"; Signaling (DOTS) Signal Channel Specification";
} }
import ietf-dots-data-channel { import ietf-dots-data-channel {
prefix ietf-data; prefix ietf-data;
skipping to change at line 555 skipping to change at line 621
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: Konda, Tirumaleswar Reddy
<mailto:TirumaleswarReddy_Konda@McAfee.com> <mailto:TirumaleswarReddy_Konda@McAfee.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) 2020 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 8909; see
the RFC itself for full legal notices."; the RFC itself for full legal notices.";
revision 2019-05-13 { revision 2020-09-10 {
description description
"Initial revision."; "Initial revision.";
reference reference
"RFC XXXX: Controlling Filtering Rules Using Distributed "RFC 8909: 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 { feature control-filtering {
description description
"This feature means that the DOTS signal channel is able "This feature means that the DOTS signal channel is able
to manage the filtering rules created by the same DOTS to manage the filtering rules created by the same DOTS
client using the DOTS data channel."; client using the DOTS data channel.";
} }
augment "/ietf-signal:dots-signal/ietf-signal:message-type" augment "/ietf-signal:dots-signal/ietf-signal:message-type"
+ "/ietf-signal:mitigation-scope/ietf-signal:scope" { + "/ietf-signal:mitigation-scope/ietf-signal:scope" {
if-feature control-filtering; 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 "/ietf-data:dots-data/ietf-data:dots-client"
+ "/ietf-data:acls/ietf-data:acl/ietf-data:name"; + "/ietf-data:acls/ietf-data:acl/ietf-data: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 ietf-data: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> ]]></sourcecode>
]]></artwork>
</figure></t>
</section> </section>
</section> </section>
</section> </section>
</section> </section>
<section anchor="sample" numbered="true" toc="default">
<section anchor="sample" title="Some Examples"> <name>Some Examples</name>
<t>This section provides some examples to illustrate the behavior <t>This section provides some examples to illustrate the behavior
specified in <xref target="filtering"></xref>. These examples are specified in <xref target="filtering" format="default"/>. These examples a re
provided for illustration purposes; they should not be considered as provided for illustration purposes; they should not be considered as
deployment recommendations.</t> deployment recommendations.</t>
<section anchor="sample1" numbered="true" toc="default">
<section anchor="sample1" title="Conflict Handling"> <name>Conflict Handling</name>
<t>Let's consider a DOTS client which contacts its DOTS server during <t>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 example, forwarded to 2001:db8:6401::2/127. It does so by sending, for example,
a PUT request shown in <xref target="PUT"></xref>.</t> a PUT request as shown in <xref target="PUT" format="default"/>.</t>
<figure anchor="PUT">
<t><figure anchor="PUT" <name>DOTS Data Channel Request to Create a Filter</name>
title="DOTS Data Channel Request to Create a Filter"> <sourcecode>
<artwork align="left"><![CDATA[PUT /restconf/data/ietf-dots-data-cha PUT /restconf/data/ietf-dots-data-channel:dots-data\
nnel: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": [
{ {
"name": "an-accept-list", "name": "an-accept-list",
skipping to change at line 682 skipping to change at line 747
}, },
"actions": { "actions": {
"forwarding": "accept" "forwarding": "accept"
} }
} }
] ]
} }
} }
] ]
} }
}]]></artwork> }
</figure></t> </sourcecode>
</figure>
<t>Sometime later, consider that a DDoS attack is detected by the DOTS <t>Sometime later, consider that a DDoS attack is detected by the DOTS
client on 2001:db8:6401::2/127. Consequently, the DOTS client sends a client on 2001:db8:6401::2/127. Consequently, the DOTS client sends a
mitigation request to its DOTS server as shown in <xref mitigation request to its DOTS server as shown in <xref target="mitigate
target="mitigate"></xref>.</t> " format="default"/>.</t>
<figure anchor="mitigate">
<t><figure anchor="mitigate" <name>DOTS Signal Channel Mitigation Request</name>
title="DOTS Signal Channel Mitigation Request"> <sourcecode>
<artwork align="left"><![CDATA[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=123" Uri-Path: "mid=123"
Content-Format: "application/dots+cbor" Content-Format: "application/dots+cbor"
{ {
"ietf-dots-signal-channel:mitigation-scope": { "ietf-dots-signal-channel:mitigation-scope": {
"scope": [ "scope": [
skipping to change at line 715 skipping to change at line 779
"2001:db8:6401::2/127" "2001:db8:6401::2/127"
], ],
"target-protocol": [ "target-protocol": [
17 17
], ],
"lifetime": 3600 "lifetime": 3600
} }
] ]
} }
} }
]]></artwork> </sourcecode>
</figure></t> </figure>
<t>The DOTS server immediately accepts the request by replying with
<t>The DOTS server accepts immediately the request by replying with 2.01 (Created) (<xref target="response" format="default"/> depicts the m
2.01 (Created) (<xref target="response"></xref> depicts the message essage
body of the response).</t> body of the response).</t>
<figure anchor="response">
<t><figure anchor="response" title="Status Response (Message Body)"> <name>Status Response (Message Body)</name>
<artwork align="left"><![CDATA[{ <sourcecode>
{
"ietf-dots-signal-channel:mitigation-scope": { "ietf-dots-signal-channel:mitigation-scope": {
"scope": [ "scope": [
{ {
"mid": 123, "mid": 123,
"lifetime": 3600 "lifetime": 3600
} }
] ]
} }
} }
]]></artwork> </sourcecode>
</figure></t> </figure>
<t>Assuming the DOTS client subscribed to asynchronous notifications, <t>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 code set to 1 (Attack mitigation is in progress) and
'conflict-cause' set to '2' (conflict-with-acceptlist) to the DOTS 'conflict-cause' set to 2 (conflict-with-acceptlist) to the DOTS
client to indicate that this mitigation request is in progress, but a client to indicate that this mitigation request is in progress, but a
conflict is detected.</t> conflict is detected.</t>
<t>Upon receipt of the notification message from the DOTS server, the <t>Upon receipt of the notification message from the DOTS server, the
DOTS client sends a PUT request to deactivate the "an-accept-list" ACL DOTS client sends a PUT request to deactivate the "an-accept-list" ACL
as shown in <xref target="control"></xref>.</t> as shown in <xref target="control" format="default"/>.</t>
<t>The DOTS client can also decide to send a PUT request to deactivate <t>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 <xref target="control"></xref>.</t> is the same as the one shown in <xref target="control" format="default"/
>.</t>
<t><figure anchor="control" <figure anchor="control">
title="PUT for Deactivating a Conflicting Filter"> <name>PUT for Deactivating a Conflicting Filter</name>
<artwork align="left"><![CDATA[Header: PUT (Code=0.03) <sourcecode>
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"
{ {
"ietf-dots-signal-channel:mitigation-scope": { "ietf-dots-signal-channel:mitigation-scope": {
"scope": [ "scope": [
skipping to change at line 784 skipping to change at line 845
{ {
"acl-name": "an-accept-list", "acl-name": "an-accept-list",
"activation-type": "deactivate" "activation-type": "deactivate"
} }
], ],
"lifetime": 3600 "lifetime": 3600
} }
] ]
} }
} }
]]></artwork> </sourcecode>
</figure></t> </figure>
<t>Then, the DOTS server deactivates the "an-accept-list" ACL and replie
<t>Then, the DOTS server deactivates "an-accept-list" ACL and replies s
with 2.04 (Changed) response to the DOTS client to confirm the with a 2.04 (Changed) response to the DOTS client to confirm the
successful operation. The message body is similar to the one depicted successful operation. The message body is similar to the one depicted
in <xref target="response"></xref>.</t> in <xref target="response" format="default"/>.</t>
<t>Once the attack is mitigated, the DOTS client may use the data <t>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 <xref target="GET-2"></xref>, the activation type is set to in <xref target="GET-2" format="default"/>, the activation type is set t
'deactivate' as set by the DOTS signal channel (<xref o
target="control"></xref>) instead of the type initially set using the 'deactivate' as set by the DOTS signal channel (<xref target="control" f
DOTS data channel (<xref target="PUT"></xref>).</t> ormat="default"/>) instead of the type initially set using the
DOTS data channel (<xref target="PUT" format="default"/>).</t>
<t><figure anchor="GET-2" <figure anchor="GET-2">
title="DOTS Data Channel GET Response after Mitigation (Message Body <name>DOTS Data Channel GET Response after Mitigation (Message Body)</
)"> name>
<artwork align="left"><![CDATA[{ <sourcecode>
{
"ietf-dots-data-channel:acls": { "ietf-dots-data-channel:acls": {
"acl": [ "acl": [
{ {
"name": "an-accept-list", "name": "an-accept-list",
"type": "ipv6-acl-type", "type": "ipv6-acl-type",
"activation-type": "deactivate", "activation-type": "deactivate",
"pending-lifetime": 10021, "pending-lifetime": 10021,
"aces": { "aces": {
"ace": [ "ace": [
{ {
skipping to change at line 834 skipping to change at line 892
}, },
"actions": { "actions": {
"forwarding": "accept" "forwarding": "accept"
} }
} }
] ]
} }
} }
] ]
} }
}]]></artwork> }
</figure></t> </sourcecode>
</figure>
</section> </section>
<section anchor="sample2" numbered="true" toc="default">
<section anchor="sample2" <name>On-Demand Activation of an Accept-List Filter</name>
title="On-Demand Activation of an Accept-List Filter"> <t>Let's consider a DOTS client that contacts its DOTS server during
<t>Let's consider a DOTS client which 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 <xref does so by sending, for example, a PUT request shown in <xref
target="PUT1"></xref>. The DOTS server installs this filter with a target="PUT1" format="default"/>. The DOTS server installs this filter
"deactivated" state.</t> with a "deactivated" state.</t>
<figure anchor="PUT1">
<t><figure anchor="PUT1" <name>DOTS Data Channel Request to Create an Accept-List Filter</name>
title="DOTS Data Channel Request to Create an Accept-List Filter"> <sourcecode>
<artwork align="left"><![CDATA[PUT /restconf/data/ietf-dots-data-cha PUT /restconf/data/ietf-dots-data-channel:dots-data\
nnel: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
{ {
"ietf-dots-data-channel:acls": { "ietf-dots-data-channel:acls": {
"acl": [ "acl": [
{ {
"name": "my-accept-list", "name": "my-accept-list",
skipping to change at line 882 skipping to change at line 940
}, },
"actions": { "actions": {
"forwarding": "accept" "forwarding": "accept"
} }
} }
] ]
} }
} }
] ]
} }
}]]></artwork> }
</figure></t> </sourcecode>
</figure>
<t>Sometime later, consider that a UDP DDoS attack is detected by the <t>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 <xref request to its DOTS server as shown in <xref target="mitigate1" format="
target="mitigate1"></xref>.</t> default"/>.</t>
<figure anchor="mitigate1">
<t><figure anchor="mitigate1" <name>DOTS Signal Channel Mitigation Request with a Filter Control</na
title="DOTS Signal Channel Mitigation Request with a Filter Control" me>
> <sourcecode>
<artwork align="left"><![CDATA[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"
{ {
"ietf-dots-signal-channel:mitigation-scope": { "ietf-dots-signal-channel:mitigation-scope": {
"scope": [ "scope": [
skipping to change at line 923 skipping to change at line 980
{ {
"acl-name": "my-accept-list", "acl-name": "my-accept-list",
"activation-type": "immediate" "activation-type": "immediate"
} }
], ],
"lifetime": 3600 "lifetime": 3600
} }
] ]
} }
} }
]]></artwork> </sourcecode>
</figure></t> </figure>
<t>The DOTS server activates the "my-accept-list" ACL and replies with
<t>The DOTS server activates "my-accept-list" ACL and replies with a 2.01 (Created) response to the DOTS client to confirm the successful
2.01 (Created) response to the DOTS client to confirm the successful
operation.</t> operation.</t>
</section> </section>
<section anchor="sample3" <section anchor="sample3" numbered="true" toc="default">
title="DOTS Servers/Mitigators Lacking Capacity"> <name>DOTS Servers/Mitigators Lacking Capacity</name>
<t>This section describes a scenario in which a DOTS client activates <t>This section describes a scenario in which a DOTS client activates
a drop-list or a rate-limit filter during an attack.</t> a drop-list or a rate-limit filter during an attack.</t>
<t>Consider a DOTS client that contacts its DOTS server during 'idle' <t>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 resort thereof) traffic to be forwarded to 2001:db8:123::/48 as a last resort
countermeasure whenever required. Installing the accept-list can be countermeasure whenever required. Installing the accept-list can be
done by sending, for example, the PUT request shown in <xref done by sending, for example, the PUT request shown in <xref
target="rate"></xref>. The DOTS server installs this filter with a target="rate" format="default"/>. The DOTS server installs this filter
"deactivated" state.</t> with a "deactivated" state.</t>
<figure anchor="rate">
<t><figure anchor="rate" <name>DOTS Data Channel Request to Create a Rate-Limit Filter</name>
title="DOTS Data Channel Request to Create a Rate-Limit Filter"> <sourcecode>
<artwork><![CDATA[PUT /restconf/data/ietf-dots-data-channel:dots-dat PUT /restconf/data/ietf-dots-data-channel:dots-data\
a\
/dots-client=OopPisZqo4SLv64TLPXrxA/acls\ /dots-client=OopPisZqo4SLv64TLPXrxA/acls\
/acl=my-ratelimit-list HTTP/1.1 /acl=my-ratelimit-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": [
{ {
"name": "my-ratelimit-list", "name": "my-ratelimit-list",
skipping to change at line 979 skipping to change at line 1034
"forwarding": "accept", "forwarding": "accept",
"rate-limit": "20000.00" "rate-limit": "20000.00"
} }
} }
] ]
} }
} }
] ]
} }
} }
]]></artwork> </sourcecode>
</figure></t> </figure>
<t>Consider now that a DDoS attack is detected by the DOTS client on <t>Consider now that a DDoS attack is detected by the DOTS client on
2001:db8:123::/48. Consequently, the DOTS client sends a mitigation 2001:db8:123::/48. Consequently, the DOTS client sends a mitigation
request to its DOTS server (<xref target="ratel"></xref>).</t> request to its DOTS server (<xref target="ratel" format="default"/>).</t
>
<t><figure anchor="ratel" <figure anchor="ratel">
title="DOTS Signal Channel Mitigation Request"> <name>DOTS Signal Channel Mitigation Request</name>
<artwork><![CDATA[Header: PUT (Code=0.03) <sourcecode>
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=85" Uri-Path: "mid=85"
Content-Format: "application/dots+cbor" Content-Format: "application/dots+cbor"
{ {
"ietf-dots-signal-channel:mitigation-scope": { "ietf-dots-signal-channel:mitigation-scope": {
"scope": [ "scope": [
{ {
"target-prefix": [ "target-prefix": [
"2001:db8:123::/48" "2001:db8:123::/48"
], ],
"lifetime": 3600 "lifetime": 3600
} }
] ]
} }
} }
]]></artwork> </sourcecode>
</figure></t> </figure>
<t>For some reason (e.g., the DOTS server, or the mitigator, is <t>For some reason (e.g., the DOTS server, or the mitigator, is
lacking a capability or capacity), the DOTS client is still receiving lacking a capability or capacity), the DOTS client is still receiving
attack traffic which saturates available links. To soften the problem, attack traffic, which saturates available links. To soften the
the DOTS client decides to activate the filter that rate-limits the problem, the DOTS client decides to activate the filter that
traffic destined to the DOTS client domain. To that aim, the DOTS rate-limits the traffic destined to the DOTS client domain. To that
client sends the mitigation request to its DOTS server shown in <xref aim, the DOTS client sends the mitigation request to its DOTS server
target="rateres"></xref>.</t> shown in <xref target="rateres" format="default"/>.</t>
<figure anchor="rateres">
<t><figure anchor="rateres" <name>DOTS Signal Channel Mitigation Request to Activate a Rate-Limit
title="DOTS Signal Channel Mitigation Request to Activate a Rate-Lim Filter</name>
it Filter"> <sourcecode>
<artwork><![CDATA[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=86" Uri-Path: "mid=86"
Content-Format: "application/dots+cbor" Content-Format: "application/dots+cbor"
{ {
"ietf-dots-signal-channel:mitigation-scope": { "ietf-dots-signal-channel:mitigation-scope": {
"scope": [ "scope": [
skipping to change at line 1047 skipping to change at line 1100
{ {
"acl-name": "my-ratelimit-list", "acl-name": "my-ratelimit-list",
"activation-type": "immediate" "activation-type": "immediate"
} }
], ],
"lifetime": 3600 "lifetime": 3600
} }
] ]
} }
} }
]]></artwork> </sourcecode>
</figure></t> </figure>
<t>Then, the DOTS server activates the "my-ratelimit-list" ACL and repli
<t>Then, the DOTS server activates "my-ratelimit-list" ACL and replies es
with 2.04 (Changed) response to the DOTS client to confirm the with a 2.04 (Changed) response to the DOTS client to confirm the
successful operation.</t> successful operation.</t>
<t>As the attack mitigation evolves, the DOTS client may decide to <t>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 notification
status change from 'attack-exceeded-capability' to status change from 'attack-exceeded-capability' to
'attack-mitigation-in-progress'). Based on the mitigation status 'attack-mitigation-in-progress'). Based on the mitigation status
conveyed by the DOTS server, the DOTS client can de-activate the conveyed by the DOTS server, the DOTS client can deactivate the
rate-limit action. It does so by sending the request shown in <xref rate-limit action. It does so by sending the request shown in <xref targ
target="rateres2"></xref>.</t> et="rateres2" format="default"/>.</t>
<figure anchor="rateres2">
<t><figure anchor="rateres2" <name>DOTS Signal Channel Mitigation Request to Deactivate a Rate-Limi
title="DOTS Signal Channel Mitigation Request to Deactivate a Rate-L t Filter</name>
imit Filter"> <sourcecode type="cbor">
<artwork><![CDATA[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"
{ {
"ietf-dots-signal-channel:mitigation-scope": { "ietf-dots-signal-channel:mitigation-scope": {
"scope": [ "scope": [
skipping to change at line 1090 skipping to change at line 1140
{ {
"acl-name": "my-ratelimit-list", "acl-name": "my-ratelimit-list",
"activation-type": "deactivate" "activation-type": "deactivate"
} }
], ],
"lifetime": 3600 "lifetime": 3600
} }
] ]
} }
} }
]]></artwork> </sourcecode>
</figure></t> </figure>
</section> </section>
</section> </section>
<section anchor="IANA" numbered="true" toc="default">
<section anchor="IANA" title="IANA Considerations"> <!-- [rfced] Would it be helpful to update these section titles as follows? Both
<section anchor="map" title="DOTS Signal Channel CBOR Mappings Registry"> are subsctions in the IANA Considerations section.
<t>This specification registers the following parameters in the IANA
"DOTS Signal Channel CBOR Key Values" registry <xref
target="Key-Map"></xref>.</t>
<t><list style="symbols"> Original:
<t>Note to the RFC Editor: Please delete (TBA1-TBA2) once the CBOR 5.1. DOTS Signal Channel CBOR Mappings Registry
keys are assigned from the 1-16383 range. Please update Table 1 5.2. DOTS Signal Filtering Control YANG Module
accordingly.</t>
</list></t>
<t><figure align="center"> Perhaps: ("Key Values" rather than "Mappings"; "Signal Control" rather than
<artwork><![CDATA[ +--------------------+--------+-------+-------- "Signal Filtering Control"):
----+---------------+ 5.1. DOTS Signal Channel CBOR Key Values Subregistry
| Parameter Name | CBOR | CBOR | Change | Specification | 5.2. DOTS Signal Control YANG Module
| | 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] |
+--------------------+--------+-------+------------+---------------+
]]></artwork>
</figure></t>
</section>
<section anchor="yang-iana" <name>IANA Considerations</name>
title="DOTS Signal Filtering Control YANG Module"> <section anchor="map" numbered="true" toc="default">
<t>This document requests IANA to register the following URI in the <name>DOTS Signal Channel CBOR Mappings Registry</name>
"ns" subregistry within the "IETF XML Registry" <xref <t>Per this specification, IANA has registered the following parameters
target="RFC3688"></xref>:</t> in the
"DOTS Signal Channel CBOR Key Values" subregistry within the
"Distributed Denial-of-Service Open Threat Signaling (DOTS) Signal
Channel" registry <xref target="Key-Map" format="default"/>.</t>
<t><figure> <table anchor="table2">
<artwork><![CDATA[ URI: urn:ietf:params:xml:ns:yang:ietf-dots-signa
l-control
Registrant Contact: The IESG.
XML: N/A; the requested URI is an XML namespace.
]]></artwork> <thead>
</figure></t> <tr>
<th>Parameter Name</th>
<th>CBOR Key Value</th>
<th>CBOR Major Type</th>
<th>Change Controller</th>
<th>Specification Document(s)</th>
</tr>
</thead>
<tbody>
<tr>
<td>activation-type</td>
<td>52</td>
<td>0</td>
<td>IESG</td>
<td>RFC 8909</td>
</tr>
<tr>
<td>ietf-dots-signal-control:acl-list</td>
<td>53</td>
<td>4</td>
<td>IESG</td>
<td>RFC 8909</td>
</tr>
<t>This document requests IANA to register the following YANG module </tbody>
in the "YANG Module Names" subregistry <xref target="RFC7950"></xref> </table>
within the "YANG Parameters" registry.</t>
<t><figure> </section>
<artwork><![CDATA[ Name: ietf-dots-signal-control <section anchor="yang-iana" numbered="true" toc="default">
Namespace: urn:ietf:params:xml:ns:yang:ietf-dots-signal-control <name>DOTS Signal Filtering Control YANG Module</name>
Maintained by IANA: N <t>IANA has registered the following URI in the
Prefix: dots-control "ns" subregistry within the "IETF XML Registry" <xref target="RFC3688" f
Reference: RFC XXXX ormat="default"/>:</t>
]]></artwork> <dl newline="false" spacing="compact">
</figure></t> <dt>URI:</dt><dd>urn:ietf:params:xml:ns:yang:ietf-dots-signal-control</dd>
<dt>Registrant Contact:</dt><dd>The IESG.</dd>
<dt>XML:</dt><dd>N/A; the requested URI is an XML namespace.</dd>
</dl>
<!-- [rfced] We have updated the citation in the following sentence for the
"YANG Module Names" registry from [RFC7950] to [RFC6020] as RFC 6020 is
the RFC that defines the registry (see
https://www.iana.org/assignments/yang-parameters/). Also, we have placed
the reference entry for RFC 6020 in the Normative References
section. Please let us know if it should be informative instead.
Original:
This document requests IANA to register the following YANG module in the
"YANG Module Names" subregistry [RFC7950] within the "YANG Parameters"
registry.
-->
<t>IANA has registered the following YANG module
in the "YANG Module Names" subregistry <xref target="RFC6020" format="de
fault"/>
within the "YANG Parameters" registry.</t>
<dl newline="false" spacing="compact">
<dt>Name:</dt><dd>ietf-dots-signal-control</dd>
<dt>Namespace:</dt><dd>urn:ietf:params:xml:ns:yang:ietf-dots-signal-control</dd>
<dt>Maintained by IANA:</dt><dd>N</dd>
<dt>Prefix:</dt><dd>dots-control</dd>
<dt>Reference:</dt><dd>RFC 8909</dd>
</dl>
</section> </section>
</section> </section>
<section anchor="security" numbered="true" toc="default">
<name>Security Considerations</name>
<section anchor="security" title="Security Considerations">
<t>The security considerations for the DOTS signal channel protocol are <t>The security considerations for the DOTS signal channel protocol are
discussed in Section 10 of <xref target="RFC8782"></xref>, while those discussed in <xref target="RFC8782" sectionFormat="of" section="10"/>,
for the DOTS data channel protocol are discussed in Section 10 of <xref while those for the DOTS data channel protocol are discussed in <xref
target="RFC8783"></xref>. The following discusses the security target="RFC8783" sectionFormat="of" section="10"/>. The following
considerations that are specific to the DOTS signal channel extension discusses the security considerations that are specific to the DOTS
defined in this document.</t> signal channel extension defined in this document.</t>
<t>This specification does not allow the creation of new filtering rules,
<t>This specification does not allow to create new filtering rules,
which is the responsibility of the DOTS data channel. DOTS client which is the responsibility of the DOTS data channel. DOTS client
domains should be adequately prepared prior to an attack, e.g., by domains should be adequately prepared prior to an attack, e.g., by
creating filters that will be activated on demand when an attack is creating filters that will be activated on demand when an attack is
detected.</t> detected.</t>
<t>A DOTS client is entitled to access only the resources it creates. In <t>A DOTS client is entitled to access only the resources it creates. In
particular, a DOTS client can not tweak filtering rules created by other particular, a DOTS client can not tweak filtering rules created by other
DOTS clients of the same DOTS client domain. As a reminder, DOTS servers DOTS clients of the same DOTS client domain. As a reminder, DOTS servers
must associate filtering rules with the DOTS client that created these must associate filtering rules with the DOTS client that created these
resources. Failure to ensure such association by a DOTS server will have resources. Failure to ensure such association by a DOTS server will have
severe impact on DOTS client domains.</t> severe impact on DOTS client domains.</t>
<t>A compromised DOTS client can use the filtering control capability to <t>A compromised DOTS client can use the filtering control capability to
exacerbate an ongoing attack. Likewise, such a compromised DOTS client exacerbate an ongoing attack. Likewise, such a compromised DOTS client
may abstain from reacting to an ACL conflict notification received from may abstain from reacting to an ACL conflict notification received from
the DOTS server during attacks. These are not new attack vectors, but the DOTS server during attacks. These are not new attack vectors, but
variations of threats discussed in <xref target="RFC8782"></xref> and variations of threats discussed in <xref target="RFC8782"
<xref target="RFC8783"></xref>. DOTS operators should carefully monitor format="default"/> and <xref target="RFC8783" format="default"/>. DOTS
and audit DOTS agents to detect misbehaviors and to deter misuses.</t> operators should carefully monitor and audit DOTS agents to detect
misbehaviors and deter misuses.</t>
</section> </section>
<section anchor="ack" title="Acknowledgements">
<t>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.</t>
<t>Thanks to Benjamin Kaduk for the AD review.</t>
</section>
</middle> </middle>
<back> <back>
<references title="Normative References">
<?rfc include="reference.RFC.2119"?>
<?rfc include="reference.RFC.7950"?>
<?rfc include="reference.RFC.3688"?>
<?rfc include='reference.RFC.8174'?> <displayreference target="I-D.ietf-dots-architecture" to="DOTS-ARCH"/>
<references>
<name>References</name>
<references>
<name>Normative References</name>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
FC.2119.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
FC.7950.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
FC.3688.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
FC.6020.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
FC.8174.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
FC.8782.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
FC.8783.xml"/>
</references>
<references>
<name>Informative References</name>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
FC.8612.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
FC.7951.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
FC.8340.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml3/reference.
I-D.ietf-dots-architecture.xml"/>
<?rfc include="reference.RFC.8782"?> <reference anchor="INTEROP" target="https://datatracker.ietf.org/meeting
/103/materials/slides-103-dots-interop-report-from-ietf-103-hackathon-00">
<front>
<title>DOTS Interop test report, IETF 103 Hackathon</title>
<author fullname="Kaname Nishizuka" initials="K." surname="Nishizuka
">
<organization>NTT Communications</organization>
<address>
<postal>
<street>GranPark 16F 3-4-1 Shibaura, Minato-ku</street>
<city>Tokyo</city>
<region/>
<code>108-8118</code>
<country>Japan</country>
</postal>
<email>kaname@nttv6.jp</email>
</address>
</author>
<author fullname="Jon Shallow" initials="J." surname=" Shallow">
<organization>J.NCC Group</organization>
<address>
<postal>
<street/>
<city/>
<region/>
<code/>
<country/>
</postal>
<phone/>
<email/>
<uri/>
</address>
</author>
<author fullname="Liang Xia" initials="L." surname="Xia ">
<organization>Huawei</organization>
<address>
<postal>
<street/>
<city/>
<region/>
<code/>
<country/>
</postal>
<phone/>
<email/>
<uri/>
</address>
</author>
<date month="November" year="2018"/>
</front>
</reference>
<?rfc include="reference.RFC.8783" ?> <reference anchor="Key-Map" target="https://www.iana.org/assignments/dot
s">
<front>
<title>Distributed Denial-of-Service Open Threat Signaling (DOTS)
Signal Channel</title>
<author fullname="IANA">
<organization/>
</author>
</front>
</reference>
</references>
<?rfc ?>
</references> </references>
<references title="Informative References"> <section anchor="ack" numbered="false" toc="default">
<?rfc include="reference.RFC.8612"?> <name>Acknowledgements</name>
<t>Many thanks to <contact fullname="Wei Pan"/>, <contact fullname="Xia
<?rfc include='reference.RFC.7951'?> Liang"/>, <contact fullname="Jon Shallow"/>, <contact fullname="Dan
Wing"/>, <contact fullname="Christer
<?rfc include='reference.RFC.8340'?> Holmberg"/>, <contact fullname="Shawn Emery"/>, <contact fullname="Tim
Chown"/>, <contact fullname="Murray Kucherawy"/>, <contact
<?rfc include='reference.I-D.ietf-dots-architecture'?> fullname="Roman Danyliw"/>, <contact fullname="Erik
Kline"/>, and <contact fullname="Éric Vyncke"/> for the comments.</t>
<reference anchor="Interop" <t>Thanks to <contact fullname="Benjamin Kaduk"/> for the AD review.</t>
target="https://datatracker.ietf.org/meeting/103/materials/slid </section>
es-103-dots-interop-report-from-ietf-103-hackathon-00"> </back>
<front>
<title>DOTS Interop test report, IETF 103 Hackathon</title>
<author fullname="Kaname Nishizuka" initials="K."
surname="Nishizuka">
<organization>NTT Communications</organization>
<address>
<postal>
<street>GranPark 16F 3-4-1 Shibaura, Minato-ku</street>
<city>Tokyo</city>
<region></region>
<code>108-8118</code>
<country>Japan</country>
</postal>
<email>kaname@nttv6.jp</email>
</address>
</author>
<author fullname="Jon Shallow" initials="J." surname=" Shallow">
<organization>J.NCC Group</organization>
<address>
<postal>
<street></street>
<city></city>
<region></region>
<code></code>
<country></country>
</postal>
<phone></phone>
<facsimile></facsimile>
<email></email>
<uri></uri>
</address>
</author>
<author fullname="Liang Xia" initials="L." surname="Xia ">
<organization>Huawei</organization>
<address>
<postal>
<street></street>
<city></city>
<region></region>
<code></code>
<country></country> <!-- [rfced] Please review the sourcecode elements in the XML file. Should any
</postal> of these be artwork or something else instead? If they should remain
sourcecode, please review whether the "type" attribute should be set. If
the current list of preferred values for "type"
(https://www.rfc-editor.org/materials/sourcecode-types.txt) does not
contain an applicable type, then feel free to suggest a new one. Also,
it is acceptable to leave the "type" attribute not set.
<phone></phone> Note that the "type" attribute has been set for some sourcecode elements;
please review these to confirm that they are correct.
-->
<facsimile></facsimile> <!-- [rfced] Terminology
<email></email> a) Please review the use of "accept-listed" and "accept-list" when used as an
adjective before a noun. We see the following uses in the document and
question if these should be consistent. Let us know if any updates are needed.
<uri></uri> accept-listed traffic
</address> accept-listed sources
</author> accept-listed filtering rules
<date month="November" year="2018" /> accept-list rules
</front> accept-list filter
</reference>
<reference anchor="Key-Map" b) We note inconsistencies in the term below throughout the text. Should
target="https://www.iana.org/assignments/dots/dots.xhtml#dots-s the usage be uniform? If so, please let us know which form is preferred.
ignal-channel-cbor-key-values">
<front>
<title>DOTS Signal Channel CBOR Key Values</title>
<author fullname="IANA"> idle time vs. 'idle' time
<organization></organization> -->
</author>
<date />
</front>
</reference>
</references>
</back>
</rfc> </rfc>
 End of changes. 182 change blocks. 
619 lines changed or deleted 739 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/