| rfc8811xml2.original.xml | rfc8811.xml | |||
|---|---|---|---|---|
| <?xml version="1.0" encoding="us-ascii"?> | <?xml version="1.0" encoding="UTF-8"?> | |||
| <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?> | ||||
| <!-- generated by https://github.com/cabo/kramdown-rfc2629 version 1.2.12 --> | ||||
| <!DOCTYPE rfc SYSTEM "rfc2629.dtd" [ | ||||
| <!ENTITY RFC2119 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refere | ||||
| nce.RFC.2119.xml"> | ||||
| <!ENTITY RFC8174 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refere | ||||
| nce.RFC.8174.xml"> | ||||
| <!ENTITY I-D.ietf-dots-use-cases SYSTEM "https://xml2rfc.tools.ietf.org/public/r | ||||
| fc/bibxml3/reference.I-D.ietf-dots-use-cases.xml"> | ||||
| <!ENTITY I-D.ietf-tls-dtls13 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/b | ||||
| ibxml3/reference.I-D.ietf-tls-dtls13.xml"> | ||||
| <!ENTITY I-D.ietf-tram-stunbis SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc | ||||
| /bibxml3/reference.I-D.ietf-tram-stunbis.xml"> | ||||
| <!ENTITY I-D.ietf-dots-signal-channel SYSTEM "https://xml2rfc.tools.ietf.org/pub | ||||
| lic/rfc/bibxml3/reference.I-D.ietf-dots-signal-channel.xml"> | ||||
| <!ENTITY I-D.ietf-dots-data-channel SYSTEM "https://xml2rfc.tools.ietf.org/publi | ||||
| c/rfc/bibxml3/reference.I-D.ietf-dots-data-channel.xml"> | ||||
| <!ENTITY I-D.ietf-acme-ip SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibx | ||||
| ml3/reference.I-D.ietf-acme-ip.xml"> | ||||
| <!ENTITY RFC0768 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refere | ||||
| nce.RFC.0768.xml"> | ||||
| <!ENTITY RFC0793 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refere | ||||
| nce.RFC.0793.xml"> | ||||
| <!ENTITY RFC1035 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refere | ||||
| nce.RFC.1035.xml"> | ||||
| <!ENTITY RFC2782 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refere | ||||
| nce.RFC.2782.xml"> | ||||
| <!ENTITY RFC3235 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refere | ||||
| nce.RFC.3235.xml"> | ||||
| <!ENTITY RFC3261 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refere | ||||
| nce.RFC.3261.xml"> | ||||
| <!ENTITY RFC4033 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refere | ||||
| nce.RFC.4033.xml"> | ||||
| <!ENTITY RFC4271 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refere | ||||
| nce.RFC.4271.xml"> | ||||
| <!ENTITY RFC4732 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refere | ||||
| nce.RFC.4732.xml"> | ||||
| <!ENTITY RFC4786 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refere | ||||
| nce.RFC.4786.xml"> | ||||
| <!ENTITY RFC5128 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refere | ||||
| nce.RFC.5128.xml"> | ||||
| <!ENTITY RFC5246 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refere | ||||
| nce.RFC.5246.xml"> | ||||
| <!ENTITY RFC5780 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refere | ||||
| nce.RFC.5780.xml"> | ||||
| <!ENTITY RFC6347 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refere | ||||
| nce.RFC.6347.xml"> | ||||
| <!ENTITY RFC6887 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refere | ||||
| nce.RFC.6887.xml"> | ||||
| <!ENTITY RFC6763 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refere | ||||
| nce.RFC.6763.xml"> | ||||
| <!ENTITY RFC7092 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refere | ||||
| nce.RFC.7092.xml"> | ||||
| <!ENTITY RFC7094 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refere | ||||
| nce.RFC.7094.xml"> | ||||
| <!ENTITY RFC7350 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refere | ||||
| nce.RFC.7350.xml"> | ||||
| <!ENTITY RFC8085 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refere | ||||
| nce.RFC.8085.xml"> | ||||
| <!ENTITY RFC8446 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refere | ||||
| nce.RFC.8446.xml"> | ||||
| <!ENTITY RFC8512 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refere | ||||
| nce.RFC.8512.xml"> | ||||
| <!ENTITY RFC7658 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refere | ||||
| nce.RFC.7658.xml"> | ||||
| <!ENTITY RFC8612 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refere | ||||
| nce.RFC.8612.xml"> | ||||
| <!ENTITY RFC8555 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refere | ||||
| nce.RFC.8555.xml"> | ||||
| ]> | ||||
| <?rfc rfcedstyle="yes"?> | <!DOCTYPE rfc SYSTEM "rfc2629-xhtml.ent"> | |||
| <?rfc toc="yes"?> | ||||
| <?rfc tocindent="yes"?> | ||||
| <?rfc sortrefs="yes"?> | ||||
| <?rfc symrefs="yes"?> | ||||
| <?rfc strict="yes"?> | ||||
| <?rfc comments="yes"?> | ||||
| <?rfc inline="yes"?> | ||||
| <?rfc docmapping="yes"?> | ||||
| <rfc docName="draft-ietf-dots-architecture-18" category="info"> | <rfc xmlns:xi="http://www.w3.org/2001/XInclude" | |||
| ipr="trust200902" | ||||
| docName="draft-ietf-dots-architecture-18" | ||||
| number="8811" | ||||
| submissionType="IETF" | ||||
| category="info" | ||||
| consensus="true" | ||||
| obsoletes="" | ||||
| updates="" | ||||
| xml:lang="en" | ||||
| tocInclude="true" | ||||
| sortRefs="true" | ||||
| symRefs="true" | ||||
| version="3"> | ||||
| <front> | <front> | |||
| <title abbrev="DOTS Architecture">Distributed-Denial-of-Service Open Threat | <title abbrev="DOTS Architecture">DDoS Open Threat Signaling (DOTS) Architec | |||
| Signaling (DOTS) Architecture</title> | ture</title> | |||
| <seriesInfo name="RFC" value="8811"/> | ||||
| <author initials="A." surname="Mortensen" fullname="Andrew Mortensen" role=" editor"> | <author initials="A." surname="Mortensen" fullname="Andrew Mortensen" role=" editor"> | |||
| <organization>Forcepoint</organization> | <organization>Forcepoint</organization> | |||
| <address> | <address> | |||
| <postal> | <postal> | |||
| <street></street> | <street/> | |||
| <city></city> | <city/> | |||
| <code></code> | <code/> | |||
| <country>United States</country> | <country>United States of America</country> | |||
| </postal> | </postal> | |||
| <email>andrewmortensen@gmail.com</email> | <email>andrewmortensen@gmail.com</email> | |||
| </address> | </address> | |||
| </author> | </author> | |||
| <author initials="T." surname="Reddy" fullname="Tirumaleswar Reddy" role="ed itor"> | <author initials="T." surname="Reddy.K" fullname="Tirumaleswar Reddy.K" role ="editor"> | |||
| <organization>McAfee, Inc.</organization> | <organization>McAfee, Inc.</organization> | |||
| <address> | <address> | |||
| <postal> | <postal> | |||
| <street>Embassy Golf Link Business Park</street> | <street>Embassy Golf Link Business Park</street> | |||
| <city>Bangalore, Karnataka</city> | <city>Bangalore</city><region>Karnataka</region> | |||
| <code>560071</code> | <code>560071</code> | |||
| <country>India</country> | <country>India</country> | |||
| </postal> | </postal> | |||
| <email>kondtir@gmail.com</email> | <email>kondtir@gmail.com</email> | |||
| </address> | </address> | |||
| </author> | </author> | |||
| <author initials="F." surname="Andreasen" fullname="Flemming Andreasen"> | <author initials="F." surname="Andreasen" fullname="Flemming Andreasen"> | |||
| <organization>Cisco</organization> | <organization>Cisco</organization> | |||
| <address> | <address> | |||
| <postal> | <postal> | |||
| <street></street> | <street/> | |||
| <city></city> | <city/> | |||
| <code></code> | <code/> | |||
| <country>United States</country> | <country>United States of America</country> | |||
| </postal> | </postal> | |||
| <email>fandreas@cisco.com</email> | <email>fandreas@cisco.com</email> | |||
| </address> | </address> | |||
| </author> | </author> | |||
| <author initials="N." surname="Teague" fullname="Nik Teague"> | <author initials="N." surname="Teague" fullname="Nik Teague"> | |||
| <organization>Iron Mountain</organization> | <organization>Iron Mountain</organization> | |||
| <address> | <address> | |||
| <postal> | <postal> | |||
| <street></street> | <street/> | |||
| <city></city> | <city/> | |||
| <code></code> | <code/> | |||
| <country>United States</country> | <country>United States of America</country> | |||
| </postal> | </postal> | |||
| <email>nteague@ironmountain.co.uk</email> | <email>nteague@ironmountain.co.uk</email> | |||
| </address> | </address> | |||
| </author> | </author> | |||
| <author initials="R." surname="Compton" fullname="Rich Compton"> | <author initials="R." surname="Compton" fullname="Rich Compton"> | |||
| <organization>Charter</organization> | <organization>Charter</organization> | |||
| <address> | <address> | |||
| <postal> | <postal> | |||
| <street></street> | <street/> | |||
| <city></city> | <city/> | |||
| <code></code> | <code/> | |||
| </postal> | </postal> | |||
| <email>Rich.Compton@charter.com</email> | <email>Rich.Compton@charter.com</email> | |||
| </address> | </address> | |||
| </author> | </author> | |||
| <date year="2020" month="August"/> | ||||
| <date /> | ||||
| <area>Security</area> | <area>Security</area> | |||
| <workgroup>DOTS</workgroup> | <workgroup>DOTS</workgroup> | |||
| <keyword>Internet-Draft</keyword> | ||||
| <abstract> | <abstract> | |||
| <t>This document describes an architecture for establishing and | ||||
| <t>This document describes an architecture for establishing and maintaining | maintaining Distributed Denial-of-Service (DDoS) Open Threat Signaling | |||
| Distributed Denial of Service (DDoS) Open Threat Signaling (DOTS) within and | (DOTS) within and between domains. The document does not specify | |||
| between domains. The document does not specify protocols or protocol | protocols or protocol extensions, instead focusing on defining | |||
| extensions, instead focusing on defining architectural relationships, components | architectural relationships, components, and concepts used in a DOTS | |||
| and concepts used in a DOTS deployment.</t> | deployment.</t> | |||
| </abstract> | </abstract> | |||
| </front> | </front> | |||
| <middle> | <middle> | |||
| <section anchor="context-and-motivation" title="Context and Motivation"> | <section anchor="context-and-motivation" numbered="true" toc="default"> | |||
| <name>Context and Motivation</name> | ||||
| <t>Signaling the need for help to defend against an active distributed denial | <t>Signaling the need for help to defend against an active distributed | |||
| of service (DDoS) attack requires a common understanding of mechanisms and | denial-of-service (DDoS) attack requires a common understanding of | |||
| roles among the parties coordinating defensive response. The signaling | mechanisms and roles among the parties coordinating a defensive | |||
| layer and supplementary messaging is the focus of DDoS Open Threat Signaling | response. The signaling layer and supplementary messaging are the focus | |||
| (DOTS). DOTS defines a method of coordinating defensive measures among willing | of DDoS Open Threat Signaling (DOTS). DOTS defines a method of | |||
| peers to mitigate attacks quickly and efficiently, enabling hybrid attack | coordinating defensive measures among willing peers to mitigate attacks | |||
| responses coordinated locally at or near the target of an active attack, or | quickly and efficiently, enabling hybrid attack responses coordinated | |||
| anywhere in-path between attack sources and target. Sample DOTS use cases | locally at or near the target of an active attack, or anywhere in path | |||
| are elaborated in <xref target="I-D.ietf-dots-use-cases"></xref>.</t> | between attack sources and target. Sample DOTS use cases are elaborated | |||
| in <xref target="I-D.ietf-dots-use-cases" format="default"/>.</t> | ||||
| <t>This document describes an architecture used in establishing, maintaining or | <t>This document describes an architecture used in establishing, | |||
| terminating a DOTS relationship within a domain or between domains.</t> | maintaining, or terminating a DOTS relationship within a domain or | |||
| between domains.</t> | ||||
| <section anchor="terminology" title="Terminology"> | <section anchor="terminology" numbered="true" toc="default"> | |||
| <name>Terminology</name> | ||||
| <section anchor="key-words" title="Key Words"> | <section anchor="key-words" numbered="true" toc="default"> | |||
| <name>Key Words</name> | ||||
| <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | ||||
| "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" | ||||
| in this | ||||
| document are to be interpreted as described in BCP 14 <xref target="RFC2119"/> < | ||||
| xref target="RFC8174"/> | ||||
| when, and only when, they appear in all capitals, as shown here.</t> | ||||
| </section> | ||||
| <section anchor="definition-of-terms" title="Definition of Terms"> | ||||
| <t>This document uses the terms defined in <xref target="RFC8612"></xref>.</t> | ||||
| </section> | ||||
| </section> | ||||
| <section anchor="scope" title="Scope"> | ||||
| <t>In this architecture, DOTS clients and servers communicate using DOTS | ||||
| signal channel <xref target="I-D.ietf-dots-signal-channel"></xref> and | ||||
| data channel <xref target="I-D.ietf-dots-data-channel"></xref> protocols.</t> | ||||
| <t>The DOTS architecture presented here is applicable across network administrat | ||||
| ive | ||||
| domains – for example, between an enterprise domain and the domain of a | ||||
| third-party attack mitigation service – as well as to a single administrat | ||||
| ive | ||||
| domain. DOTS is generally assumed to be most effective when aiding coordination | ||||
| of attack response between two or more participating networks, but single | ||||
| domain scenarios are valuable in their own right, as when aggregating | ||||
| intra-domain DOTS client signals for inter-domain coordinated attack response.</ | ||||
| t> | ||||
| <t>This document does not address any administrative or business agreements that | ||||
| may be established between involved DOTS parties. Those considerations are out | ||||
| of scope. Regardless, this document assumes necessary authentication and | ||||
| authorization mechanisms are put in place so that only authorized clients can | ||||
| invoke the DOTS service.</t> | ||||
| <t>A detailed set of DOTS requirements are discussed in <xref target="RFC8612">< | ||||
| /xref>, and the DOTS | ||||
| architecture is designed to follow those requirements. Only new behavioral | ||||
| requirements are described in this document.</t> | ||||
| </section> | ||||
| <section anchor="assumptions" title="Assumptions"> | ||||
| <t>This document makes the following assumptions:</t> | ||||
| <t><list style="symbols"> | ||||
| <t>All domains in which DOTS is deployed are assumed to offer the required | ||||
| connectivity between DOTS agents and any intermediary network elements, but | ||||
| the architecture imposes no additional limitations on the form of | ||||
| connectivity.</t> | ||||
| <t>Congestion and resource exhaustion are intended outcomes of a DDoS attack | ||||
| <xref target="RFC4732"/>. Some operators may utilize non-impacted paths or netwo | ||||
| rks for | ||||
| DOTS, but in general conditions should be assumed to be hostile and DOTS | ||||
| must be able to function in all circumstances, including when the signaling | ||||
| path is significantly impaired. Congestion control requirements are discussed in | ||||
| Section 3 of <xref target="RFC8612"></xref>. DOTS signal channel defined in | ||||
| <xref target="I-D.ietf-dots-signal-channel"></xref> is designed to be extremely | ||||
| resilient under extremely hostile network conditions and provides continued cont | ||||
| act between | ||||
| DOTS agents even as DDoS attack traffic saturates the link.</t> | ||||
| <t>There is no universal DDoS attack scale threshold triggering a coordinated | ||||
| response across administrative domains. A network domain administrator, or | ||||
| service or application owner may arbitrarily set attack scale threshold | ||||
| triggers, or manually send requests for mitigation.</t> | ||||
| <t>Mitigation requests may be sent to one or more upstream DOTS servers based | ||||
| on | ||||
| criteria determined by DOTS client administrators and the underlying network | ||||
| configuration. The number of DOTS servers with which a given DOTS client has | ||||
| established communications is determined by local policy and is | ||||
| deployment-specific. For example, a DOTS client of a multi-homed network may | ||||
| support built-in policies to establish DOTS relationships with DOTS servers | ||||
| located upstream of each interconnection link.</t> | ||||
| <t>The mitigation capacity and/or capability of domains receiving requests for | ||||
| coordinated attack response is opaque to the domains sending the request. The | ||||
| domain receiving the DOTS client signal may or may not have sufficient | ||||
| capacity or capability to filter any or all DDoS attack traffic directed at | ||||
| a target. In either case, the upstream DOTS server may redirect a request to | ||||
| another DOTS server. Redirection may be local to the redirecting DOTS server's | ||||
| domain, or may involve a third-party domain.</t> | ||||
| <t>DOTS client and server signals, as well as messages sent through the data | ||||
| channel, are sent across any transit networks with the same probability of | ||||
| delivery as any other traffic between the DOTS client domain and the DOTS | ||||
| server domain. Any encapsulation required for successful delivery is left | ||||
| untouched by transit network elements. DOTS server and DOTS client cannot | ||||
| assume any preferential treatment of DOTS signals. Such preferential treatment | ||||
| may be available in some deployments (e.g., intra-domain scenarios), and the | ||||
| DOTS architecture does not preclude its use when available. However, DOTS | ||||
| itself does not address how that may be done.</t> | ||||
| <t>The architecture allows for, but does not assume, the presence of Quality o | ||||
| f | ||||
| Service (QoS) policy agreements between DOTS-enabled peer networks or local | ||||
| QoS prioritization aimed at ensuring delivery of DOTS messages between DOTS | ||||
| agents. QoS is an operational consideration only, not a functional part of | ||||
| the DOTS architecture.</t> | ||||
| <t>The signal and data channels are loosely coupled, and might not terminate o | ||||
| n | ||||
| the same DOTS server. How the DOTS servers synchronize the DOTS configuration is | ||||
| out of scope of this specification. </t> | ||||
| </list></t> | ||||
| </section> | ||||
| </section> | ||||
| <section anchor="architecture" title="DOTS Architecture"> | ||||
| <t>The basic high-level DOTS architecture is illustrated in <xref target="fig-ba | <t> | |||
| sic-arch"/>:</t> | The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", | |||
| "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL | ||||
| NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", | ||||
| "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>", "<bcp14>MAY< | ||||
| /bcp14>", and | ||||
| "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as describe | ||||
| d in | ||||
| BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and | ||||
| only when, they appear in all capitals, as shown here. | ||||
| </t> | ||||
| <figure title="Basic DOTS Architecture" anchor="fig-basic-arch"><artwork><![CDAT | </section> | |||
| A[ | <section anchor="definition-of-terms" numbered="true" toc="default"> | |||
| <name>Definition of Terms</name> | ||||
| <t>This document uses the terms defined in <xref target="RFC8612" form | ||||
| at="default"/>.</t> | ||||
| </section> | ||||
| </section> | ||||
| <section anchor="scope" numbered="true" toc="default"> | ||||
| <name>Scope</name> | ||||
| <t>In this architecture, DOTS clients and servers communicate using | ||||
| DOTS signal channel <xref target="RFC8782" format="default"/> and data | ||||
| channel <xref target="RFC8783" format="default"/> protocols.</t> | ||||
| <t>The DOTS architecture presented here is applicable across network | ||||
| administrative domains, for example, between an enterprise domain and | ||||
| the domain of a third-party attack mitigation service, as well as to | ||||
| a single administrative domain. DOTS is generally assumed to be most | ||||
| effective when aiding coordination of attack response between two or | ||||
| more participating networks, but single domain scenarios are valuable | ||||
| in their own right, as when aggregating intra-domain DOTS client | ||||
| signals for an inter-domain coordinated attack response.</t> | ||||
| <t>This document does not address any administrative or business | ||||
| agreements that may be established between involved DOTS | ||||
| parties. Those considerations are out of scope. Regardless, this | ||||
| document assumes necessary authentication and authorization mechanisms | ||||
| are put in place so that only authorized clients can invoke the DOTS | ||||
| service.</t> | ||||
| <t>A detailed set of DOTS requirements are discussed in <xref | ||||
| target="RFC8612" format="default"/>, and the DOTS architecture is | ||||
| designed to follow those requirements. Only new behavioral | ||||
| requirements are described in this document.</t> | ||||
| </section> | ||||
| <section anchor="assumptions" numbered="true" toc="default"> | ||||
| <name>Assumptions</name> | ||||
| <t>This document makes the following assumptions:</t> | ||||
| <ul spacing="normal"> | ||||
| <li>All domains in which DOTS is deployed are assumed to offer the | ||||
| required connectivity between DOTS agents and any intermediary | ||||
| network elements, but the architecture imposes no additional | ||||
| limitations on the form of connectivity.</li> | ||||
| <li>Congestion and resource exhaustion are intended outcomes of a | ||||
| DDoS attack <xref target="RFC4732" format="default"/>. Some | ||||
| operators may utilize non-impacted paths or networks for | ||||
| DOTS. However, | ||||
| in general, conditions should be assumed to be hostile, and DOTS must | ||||
| be able to function in all circumstances, including when the | ||||
| signaling path is significantly impaired. Congestion control | ||||
| requirements are discussed in <xref target="RFC8612" | ||||
| sectionFormat="of" section="3"/>. The DOTS signal channel defined in < | ||||
| xref | ||||
| target="RFC8782" format="default"/> is designed to be extremely | ||||
| resilient under extremely hostile network conditions, and it | ||||
| provides | ||||
| continued contact between DOTS agents even as DDoS attack traffic | ||||
| saturates the link.</li> | ||||
| <li>There is no universal DDoS attack scale threshold triggering a | ||||
| coordinated response across administrative domains. A network domain | ||||
| administrator or service or application owner may arbitrarily set | ||||
| attack scale threshold triggers, or manually send requests for | ||||
| mitigation.</li> | ||||
| <li>Mitigation requests may be sent to one or more upstream DOTS | ||||
| servers based on criteria determined by DOTS client administrators | ||||
| and the underlying network configuration. The number of DOTS servers | ||||
| with which a given DOTS client has established communications is | ||||
| determined by local policy and is deployment specific. For example, | ||||
| a DOTS client of a multihomed network may support built-in policies | ||||
| to establish DOTS relationships with DOTS servers located upstream | ||||
| of each interconnection link.</li> | ||||
| <li>The mitigation capacity and/or capability of domains receiving | ||||
| requests for coordinated attack response is opaque to the domains | ||||
| sending the request. The domain receiving the DOTS client signal may | ||||
| or may not have sufficient capacity or capability to filter any or | ||||
| all DDoS attack traffic directed at a target. In either case, the | ||||
| upstream DOTS server may redirect a request to another DOTS | ||||
| server. Redirection may be local to the redirecting DOTS server's | ||||
| domain or may involve a third-party domain.</li> | ||||
| <li>DOTS client and server signals, as well as messages sent through | ||||
| the data channel, are sent across any transit networks with the same | ||||
| probability of delivery as any other traffic between the DOTS client | ||||
| domain and the DOTS server domain. Any encapsulation required for | ||||
| successful delivery is left untouched by transit network | ||||
| elements. DOTS servers and DOTS clients cannot assume any preferential | ||||
| treatment of DOTS signals. Such preferential treatment may be | ||||
| available in some deployments (e.g., intra-domain scenarios), and | ||||
| the DOTS architecture does not preclude its use when | ||||
| available. However, DOTS itself does not address how that may be | ||||
| done.</li> | ||||
| <li>The architecture allows for, but does not assume, the presence | ||||
| of Quality-of-Service (QoS) policy agreements between DOTS-enabled | ||||
| peer networks or local QoS prioritization aimed at ensuring delivery | ||||
| of DOTS messages between DOTS agents. QoS is an operational | ||||
| consideration only, not a functional part of the DOTS | ||||
| architecture.</li> | ||||
| <li>The signal and data channels are loosely coupled and might not | ||||
| terminate on the same DOTS server. How the DOTS servers synchronize | ||||
| the DOTS configuration is out of scope of this specification. </li> | ||||
| </ul> | ||||
| </section> | ||||
| </section> | ||||
| <section anchor="architecture" numbered="true" toc="default"> | ||||
| <name>DOTS Architecture</name> | ||||
| <t>The basic high-level DOTS architecture is illustrated in <xref target=" | ||||
| fig-basic-arch" format="default"/>:</t> | ||||
| <figure anchor="fig-basic-arch"> | ||||
| <name>Basic DOTS Architecture</name> | ||||
| <artwork name="" type="" align="left" alt=""><![CDATA[ | ||||
| +-----------+ +-------------+ | +-----------+ +-------------+ | |||
| | Mitigator | ~~~~~~~~~~ | DOTS Server | | | Mitigator | ~~~~~~~~~~ | DOTS Server | | |||
| +-----------+ +-------------+ | +-----------+ +-------------+ | |||
| | | | | |||
| | | | | |||
| | | | | |||
| +---------------+ +-------------+ | +---------------+ +-------------+ | |||
| | Attack Target | ~~~~~~ | DOTS Client | | | Attack Target | ~~~~~~ | DOTS Client | | |||
| +---------------+ +-------------+ | +---------------+ +-------------+ | |||
| ]]></artwork></figure> | ]]></artwork> | |||
| </figure> | ||||
| <t>A simple example instantiation of the DOTS architecture could be an enterpris | <t>A simple example instantiation of the DOTS architecture could be an | |||
| e | enterprise as the attack target for a volumetric DDoS attack and an | |||
| as the attack target for a volumetric DDoS attack, and an upstream DDoS | upstream DDoS mitigation service as the mitigator. The service provided | |||
| mitigation service as the mitigator. The service provided by the mitigator | by the mitigator is called "DDoS mitigation service". The enterprise | |||
| is called: DDoS mitigation service. The enterprise (attack target) is | (attack target) is connected to the Internet via a link that is getting | |||
| connected to the Internet via a link that is getting saturated, and the | saturated, and the enterprise suspects it is under DDoS attack. | |||
| enterprise suspects it is under DDoS attack. The enterprise has a DOTS client, | ||||
| which obtains information about the DDoS attack, and signals the DOTS server | ||||
| for help in mitigating the attack. The DOTS server in turn invokes one or more | ||||
| mitigators, which are tasked with mitigating the actual DDoS attack, and hence | ||||
| aim to suppress the attack traffic while allowing valid traffic to reach the | ||||
| attack target.</t> | ||||
| <t>The scope of the DOTS specifications is the interfaces between the DOTS | ||||
| client and DOTS server. The interfaces to the attack target and the mitigator | ||||
| are out of scope of DOTS. Similarly, the operation of both the attack target and | ||||
| the mitigator is out of scope of DOTS. Thus, DOTS specifies neither how an | ||||
| attack target decides it is under DDoS attack, nor does DOTS specify how a | ||||
| mitigator may actually mitigate such an attack. A DOTS client's request for | ||||
| mitigation is advisory in nature, and might not lead to any mitigation at all, | ||||
| depending on the DOTS server domain's capacity and willingness to mitigate on | ||||
| behalf of the DOTS client domain.</t> | ||||
| <t>The DOTS client may be provided with a list of DOTS servers, each associated | ||||
| with one or more IP addresses. These addresses may or may not be of the same | ||||
| address family. The DOTS client establishes one or more sessions by connecting | ||||
| to the provided DOTS server addresses.</t> | ||||
| <t>As illustrated in <xref target="fig-interfaces"/>, there are two interfaces b | ||||
| etween a | ||||
| DOTS server and a DOTS client; a signal channel and (optionally) a data channel. | ||||
| </t> | ||||
| <figure title="DOTS Interfaces" anchor="fig-interfaces"><artwork><![CDATA[ | ||||
| +---------------+ +---------------+ | ||||
| | | <------- Signal Channel ------> | | | ||||
| | DOTS Client | | DOTS Server | | ||||
| | | <======= Data Channel ======> | | | ||||
| +---------------+ +---------------+ | ||||
| ]]></artwork></figure> | ||||
| <t>The primary purpose of the signal channel is for a DOTS client to ask a | ||||
| DOTS server for help in mitigating an attack, and for the DOTS server to inform | ||||
| the DOTS client about the status of such mitigation. The DOTS client does this | ||||
| by sending a client signal, which contains information about the attack | ||||
| target(s). The client signal may also include telemetry information about the | ||||
| attack, if the DOTS client has such information available. The DOTS server in | ||||
| turn sends a server signal to inform the DOTS client of whether it will honor | ||||
| the mitigation request. Assuming it will, the DOTS server initiates attack | ||||
| mitigation, and periodically informs the DOTS client about the status of the | ||||
| mitigation. Similarly, the DOTS client periodically informs the DOTS server | ||||
| about the client's status, which at a minimum provides client (attack target) | ||||
| health information, but it should also include efficacy information about the | ||||
| attack mitigation as it is now seen by the client. At some point, the DOTS | ||||
| client may decide to terminate the server-side attack mitigation, which it | ||||
| indicates to the DOTS server over the signal channel. A mitigation may also be | ||||
| terminated if a DOTS client-specified mitigation lifetime is exceeded. Note that | ||||
| the signal channel may need to operate over a link that is experiencing a DDoS | ||||
| attack and hence is subject to severe packet loss and high latency.</t> | ||||
| <t>While DOTS is able to request mitigation with just the signal channel, the | ||||
| addition of the DOTS data channel provides for additional and more efficient | ||||
| capabilities. The primary purpose of the data channel is to support DOTS related | ||||
| configuration and policy information exchange between the DOTS client and the | ||||
| DOTS server. Examples of such information include, but are not limited to:</t> | ||||
| <t><list style="symbols"> | ||||
| <t>Creating identifiers, such as names or aliases, for resources for which | ||||
| mitigation may be requested. Such identifiers may then be used in subsequent | ||||
| signal channel exchanges to refer more efficiently to the resources under | ||||
| attack. </t> | ||||
| </list></t> | ||||
| <t><list style="symbols"> | ||||
| <t>Drop-list management, which enables a DOTS client to inform the DOTS server | ||||
| about sources to suppress.</t> | ||||
| <t>Accept-list management, which enables a DOTS client to inform the DOTS serv | ||||
| er | ||||
| about sources from which traffic is always accepted.</t> | ||||
| <t>Filter management, which enables a DOTS client to install or remove traffic | ||||
| filters dropping or rate-limiting unwanted traffic.</t> | ||||
| <t>DOTS client provisioning.</t> | ||||
| </list></t> | ||||
| <t>Note that while it is possible to exchange the above information before, duri | ||||
| ng | ||||
| or after a DDoS attack, DOTS requires reliable delivery of this information and | ||||
| does not provide any special means for ensuring timely delivery of it during an | ||||
| attack. In practice, this means that DOTS deployments should rely on such | ||||
| information being exchanged only under normal traffic conditions.</t> | ||||
| <section anchor="operations" title="DOTS Operations"> | ||||
| <t>DOTS does not prescribe any specific deployment models, however DOTS is desig | ||||
| ned | ||||
| with some specific requirements around the different DOTS agents and their | ||||
| relationships.</t> | ||||
| <t>First of all, a DOTS agent belongs to a domain that has an identity which can | ||||
| be | ||||
| authenticated and authorized. DOTS agents communicate with each other over a | ||||
| mutually authenticated signal channel and (optionally) data channel. However, | ||||
| before they can do so, a service relationship needs to be established between | ||||
| them. The details and means by which this is done is outside the scope of DOTS, | ||||
| however an example would be for an enterprise A (DOTS client) to sign up for | ||||
| DDoS service from provider B (DOTS server). This would establish a (service) | ||||
| relationship between the two that enables enterprise A's DOTS client to | ||||
| establish a signal channel with provider B's DOTS server. A and B will | ||||
| authenticate each other, and B can verify that A is authorized for its service.< | ||||
| /t> | ||||
| <t>From an operational and design point of view, DOTS assumes that the above | ||||
| relationship is established prior to a request for DDoS attack mitigation. In | ||||
| particular, it is assumed that bi-directional communication is possible at this | ||||
| time between the DOTS client and DOTS server. Furthermore, it is assumed that | ||||
| additional service provisioning, configuration and information exchange can be | ||||
| performed by use of the data channel, if operationally required. It is not until | ||||
| this point that the mitigation service is available for use.</t> | ||||
| <t>Once the mutually authenticated signal channel has been established, it will | ||||
| remain active. This is done to increase the likelihood that the DOTS client | ||||
| can signal the DOTS server for help when the attack target is being flooded, | ||||
| and similarly raise the probability that DOTS server signals reach the client | ||||
| regardless of inbound link congestion. This does not necessarily imply that the | ||||
| attack target and the DOTS client have to be co-located in the same | ||||
| administrative domain, but it is expected to be a common scenario.</t> | ||||
| <t>DDoS mitigation with the help of an upstream mitigator may involve some | ||||
| form of traffic redirection whereby traffic destined for the attack target is | ||||
| steered towards the mitigator. Common mechanisms to achieve this redirection | ||||
| depend on BGP <xref target="RFC4271"></xref> and DNS <xref target="RFC1035"></xr | ||||
| ef>. The mitigator in turn inspects and | ||||
| scrubs the traffic, and forwards the resulting (hopefully non-attack) traffic to | ||||
| the attack target. Thus, when a DOTS server receives an attack mitigation | ||||
| request from a DOTS client, it can be viewed as a way of causing traffic | ||||
| redirection for the attack target indicated.</t> | ||||
| <t>DOTS relies on mutual authentication and the pre-established service | ||||
| relationship between the DOTS client domain and the DOTS server domain to | ||||
| provide authorization. The DOTS server should enforce | ||||
| authorization mechanisms to restrict the mitigation scope a DOTS client can | ||||
| request, but such authorization mechanisms are deployment-specific.</t> | ||||
| <t>Although co-location of DOTS server and mitigator within the same domain is | ||||
| expected to be a common deployment model, it is assumed that operators may | ||||
| require alternative models. Nothing in this document precludes such | ||||
| alternatives.</t> | ||||
| </section> | ||||
| <section anchor="components" title="Components"> | ||||
| <section anchor="dots-client" title="DOTS Client"> | ||||
| <t>A DOTS client is a DOTS agent from which requests for help coordinating attac | ||||
| k | ||||
| response originate. The requests may be in response to an active, ongoing | ||||
| attack against a target in the DOTS client domain, but no active attack is | ||||
| required for a DOTS client to request help. Operators may wish to have upstream | ||||
| mitigators in the network path for an indefinite period, and are restricted only | ||||
| by business relationships when it comes to duration and scope of requested | ||||
| mitigation.</t> | ||||
| <t>The DOTS client requests attack response coordination from a DOTS server over | ||||
| the signal channel, including in the request the DOTS client's desired | ||||
| mitigation scoping, as described in <xref target="RFC8612"></xref> (SIG-008). T | ||||
| he actual mitigation | ||||
| scope and countermeasures used in response to the attack are up to the DOTS | ||||
| server and mitigator operators, as the DOTS client may have a narrow | ||||
| perspective on the ongoing attack. As such, the DOTS client's request for | ||||
| mitigation should be considered advisory: guarantees of DOTS server | ||||
| availability or mitigation capacity constitute service level agreements and are | ||||
| out of scope for this document.</t> | ||||
| <t>The DOTS client adjusts mitigation scope and provides available mitigation | ||||
| feedback (e.g., mitigation efficacy) at the direction of its local | ||||
| administrator. Such direction may involve manual or automated adjustments in | ||||
| response to updates from the DOTS server.</t> | ||||
| <t>To provide a metric of signal health and distinguish an idle signal channel | ||||
| from a disconnected or defunct session, the DOTS client sends a heartbeat over | ||||
| the signal channel to maintain its half of the channel. The DOTS client | ||||
| similarly expects a heartbeat from the DOTS server, and may consider a session | ||||
| terminated in the extended absence of a DOTS server heartbeat.</t> | ||||
| </section> | ||||
| <section anchor="dots-server" title="DOTS Server"> | ||||
| <t>A DOTS server is a DOTS agent capable of receiving, processing and possibly | ||||
| acting on requests for help coordinating attack response from DOTS clients. The | ||||
| DOTS server authenticates and authorizes DOTS clients as described in | ||||
| <xref target="dots-sessions"/>, and maintains session state, tracking requests f | ||||
| or | ||||
| mitigation, reporting on the status of active mitigations, and terminating | ||||
| sessions in the extended absence of a client heartbeat or when a session times | ||||
| out.</t> | ||||
| <t>Assuming the preconditions discussed below exist, a DOTS client maintaining a | ||||
| n | ||||
| active session with a DOTS server may reasonably expect some level of mitigation | ||||
| in response to a request for coordinated attack response.</t> | ||||
| <t>For a given DOTS client (administrative) domain, the DOTS server needs to be | ||||
| able to determine whether a given resource is in that domain. For | ||||
| example, this could take the form of associating a set of IP addresses and/or | ||||
| prefixes per DOTS client domain. The DOTS server enforces authorization of | ||||
| signals for mitigation, filtering rules and aliases for resources from DOTS clie | ||||
| nts. | ||||
| The mechanism of enforcement is not in scope for this | ||||
| document, but is expected to restrict mitigation requests, filtering rules and a | ||||
| liases | ||||
| scope to addresses, prefixes, and/or services owned by the DOTS client domain, s | ||||
| uch that a DOTS | ||||
| client from one domain is not able to influence the network path to another | ||||
| domain. A DOTS server MUST reject mitigation requests, filtering rules and alias | ||||
| es for | ||||
| resources not owned by the requesting DOTS client's administrative domain. The e | ||||
| xact mechanism | ||||
| for the DOTS servers to validate that the resources are within the scope of | ||||
| the DOTS client domain is deployment-specific. For example, if the DOTS client d | ||||
| omain uses Provider-Aggregatable prefixes for its resources and | ||||
| leverages the DDoS mitigation service of the Internet Transit Provider (ITP), th | ||||
| e ITP knows the prefixes assigned to the | ||||
| DOTS client domain because they are assigned by the ITP itself. However, if the | ||||
| DDoS Mitigation is offered by a | ||||
| third party DDoS mitigation service provider, it does not know the resources own | ||||
| ed by the DOTS client domain. The DDoS mitigation | ||||
| service provider and the DOTS client domain can opt to use the identifier valida | ||||
| tion | ||||
| challenges discussed in <xref target="RFC8555"/> and <xref target="I-D.ietf-acme | ||||
| -ip"></xref> | ||||
| to identify whether the DOTS client domain actually controls the resources. The | ||||
| challenges for validating control of resources must be performed when no attack | ||||
| traffic | ||||
| is present and works only for "dns" and "ip" identifier types. Further, if the D | ||||
| OTS client | ||||
| lies about the resources owned by the DOTS client domain, the DDoS mitigation se | ||||
| rvice provider | ||||
| can impose penalties for violating the service level agreement. A DOTS server MA | ||||
| Y also | ||||
| refuse a DOTS client's mitigation request for arbitrary reasons, within any limi | ||||
| ts | ||||
| imposed by business or service level agreements between client and server domain | ||||
| s. | ||||
| If a DOTS server refuses a DOTS client's request for mitigation, the DOTS server | ||||
| MUST | ||||
| include the refusal reason in the server signal sent to the client.</t> | ||||
| <t>A DOTS server is in regular contact with one or more mitigators. If a DOTS | ||||
| server accepts a DOTS client's request for help, the DOTS server forwards a | ||||
| translated form of that request to the mitigator(s) responsible for scrubbing | ||||
| attack traffic. Note that the form of the translated request passed from the | ||||
| DOTS server to the mitigator is not in scope: it may be as simple as an alert to | ||||
| mitigator operators, or highly automated using vendor or open application | ||||
| programming interfaces supported by the mitigator. The DOTS server MUST report | ||||
| the actual scope of any mitigation enabled on behalf of a client.</t> | ||||
| <t>The DOTS server SHOULD retrieve available metrics for any mitigations activat | ||||
| ed | ||||
| on behalf of a DOTS client, and SHOULD include them in server signals sent to | ||||
| the DOTS client originating the request for mitigation.</t> | ||||
| <t>To provide a metric of signal health and distinguish an idle signal channel | ||||
| from a disconnected or defunct channel, the DOTS server MUST send a heartbeat | ||||
| over the signal channel to maintain its half of the channel. The DOTS server | ||||
| similarly expects a heartbeat from the DOTS client, and MAY consider a session | ||||
| terminated in the extended absence of a DOTS client heartbeat.</t> | ||||
| </section> | The enterprise has a DOTS client, which obtains information about the | |||
| <section anchor="dots-gateway" title="DOTS Gateway"> | DDoS attack and signals the DOTS server for help in mitigating the | |||
| attack. In turn, the DOTS server invokes one or more mitigators, which | ||||
| are tasked with mitigating the actual DDoS attack and, hence, aim to | ||||
| suppress the attack traffic while allowing valid traffic to reach the | ||||
| attack target.</t> | ||||
| <t>The scope of the DOTS specifications is the interfaces between the | ||||
| DOTS client and DOTS server. The interfaces to the attack target and the | ||||
| mitigator are out of scope of DOTS. Similarly, the operation of both the | ||||
| attack target and the mitigator is out of scope of DOTS. Thus, DOTS | ||||
| specifies neither how an attack target decides it is under DDoS attack | ||||
| nor does DOTS specify how a mitigator may actually mitigate such an | ||||
| attack. A DOTS client's request for mitigation is advisory in nature | ||||
| and might not lead to any mitigation at all, depending on the DOTS | ||||
| server domain's capacity and willingness to mitigate on behalf of the | ||||
| DOTS client domain.</t> | ||||
| <t>The DOTS client may be provided with a list of DOTS servers, each | ||||
| associated with one or more IP addresses. These addresses may or may not | ||||
| be of the same address family. The DOTS client establishes one or more | ||||
| sessions by connecting to the provided DOTS server addresses.</t> | ||||
| <t>As illustrated in <xref target="fig-interfaces" format="default"/>, | ||||
| there are two interfaces between a DOTS server and a DOTS client: a | ||||
| signal channel and (optionally) a data channel.</t> | ||||
| <figure anchor="fig-interfaces"> | ||||
| <name>DOTS Interfaces</name> | ||||
| <artwork name="" type="" align="left" alt=""><![CDATA[ | ||||
| +---------------+ +---------------+ | ||||
| | | <------- Signal Channel ------> | | | ||||
| | DOTS Client | | DOTS Server | | ||||
| | | <======= Data Channel ======> | | | ||||
| +---------------+ +---------------+ | ||||
| ]]></artwork> | ||||
| </figure> | ||||
| <t>The primary purpose of the signal channel is for a DOTS client to ask | ||||
| a DOTS server for help in mitigating an attack and for the DOTS server | ||||
| to inform the DOTS client about the status of such mitigation. The DOTS | ||||
| client does this by sending a client signal that contains information | ||||
| about the attack target(s). The client signal may also include telemetry | ||||
| information about the attack, if the DOTS client has such information | ||||
| available. In turn, the DOTS server sends a server signal to inform the | ||||
| DOTS client of whether it will honor the mitigation request. Assuming it | ||||
| will, the DOTS server initiates attack mitigation and periodically | ||||
| informs the DOTS client about the status of the mitigation. Similarly, | ||||
| the DOTS client periodically informs the DOTS server about the client's | ||||
| status, which, at a minimum, provides client (attack target) health | ||||
| information; it should also include efficacy information about the | ||||
| attack mitigation as it is now seen by the client. At some point, the | ||||
| DOTS client may decide to terminate the server-side attack mitigation, | ||||
| which it indicates to the DOTS server over the signal channel. A | ||||
| mitigation may also be terminated if a DOTS client-specified mitigation | ||||
| lifetime is exceeded. Note that the signal channel may need to operate | ||||
| over a link that is experiencing a DDoS attack and, hence, is subject to | ||||
| severe packet loss and high latency.</t> | ||||
| <t>While DOTS is able to request mitigation with just the signal | ||||
| channel, the addition of the DOTS data channel provides for additional, | ||||
| more efficient capabilities. The primary purpose of the data channel is | ||||
| to support DOTS-related configuration and policy information exchange | ||||
| between the DOTS client and the DOTS server. Examples of such | ||||
| information include, but are not limited to:</t> | ||||
| <ul spacing="normal"> | ||||
| <li>Creating identifiers, such as names or aliases, for resources for | ||||
| which mitigation may be requested. Such identifiers may then be used | ||||
| in subsequent signal channel exchanges to refer more efficiently to | ||||
| the resources under attack. </li> | ||||
| </ul> | ||||
| <ul spacing="normal"> | ||||
| <li>Drop-list management, which enables a DOTS client to inform the | ||||
| DOTS server about sources to suppress.</li> | ||||
| <li>Accept-list management, which enables a DOTS client to inform the | ||||
| DOTS server about sources from which traffic is always accepted.</li> | ||||
| <li>Filter management, which enables a DOTS client to install or | ||||
| remove traffic filters dropping or rate-limiting unwanted | ||||
| traffic.</li> | ||||
| <li>DOTS client provisioning.</li> | ||||
| </ul> | ||||
| <t>Note that, while it is possible to exchange the above information | ||||
| before, during, or after a DDoS attack, DOTS requires reliable delivery | ||||
| of this information and does not provide any special means for ensuring | ||||
| timely delivery of it during an attack. In practice, this means that | ||||
| DOTS deployments should rely on such information being exchanged only | ||||
| under normal traffic conditions.</t> | ||||
| <section anchor="operations" numbered="true" toc="default"> | ||||
| <name>DOTS Operations</name> | ||||
| <t>DOTS does not prescribe any specific deployment models; however, | ||||
| DOTS is designed with some specific requirements around the different | ||||
| DOTS agents and their relationships.</t> | ||||
| <t>First of all, a DOTS agent belongs to a domain that has an identity | ||||
| that can be authenticated and authorized. DOTS agents communicate | ||||
| with each other over a mutually authenticated signal channel and | ||||
| (optionally) data channel. However, before they can do so, a service | ||||
| relationship needs to be established between them. The details and | ||||
| means by which this is done is outside the scope of DOTS; however, an | ||||
| example would be for an enterprise A (DOTS client) to sign up for DDoS | ||||
| service from provider B (DOTS server). This would establish a | ||||
| (service) relationship between the two that enables enterprise A's | ||||
| DOTS client to establish a signal channel with provider B's DOTS | ||||
| server. A and B will authenticate each other, and B can verify that A | ||||
| is authorized for its service.</t> | ||||
| <t>From an operational and design point of view, DOTS assumes that the | ||||
| above relationship is established prior to a request for DDoS attack | ||||
| mitigation. In particular, it is assumed that bidirectional | ||||
| communication is possible at this time between the DOTS client and | ||||
| DOTS server. Furthermore, it is assumed that additional service | ||||
| provisioning, configuration, and information exchange can be performed | ||||
| by use of the data channel if operationally required. It is not until | ||||
| this point that the mitigation service is available for use.</t> | ||||
| <t>Once the mutually authenticated signal channel has been | ||||
| established, it will remain active. This is done to increase the | ||||
| likelihood that the DOTS client can signal the DOTS server for help | ||||
| when the attack target is being flooded, and similarly raise the | ||||
| probability that DOTS server signals reach the client regardless of | ||||
| inbound link congestion. This does not necessarily imply that the | ||||
| attack target and the DOTS client have to be co-located in the same | ||||
| administrative domain, but it is expected to be a common scenario.</t> | ||||
| <t>DDoS mitigation with the help of an upstream mitigator may involve | ||||
| some form of traffic redirection whereby traffic destined for the | ||||
| attack target is steered towards the mitigator. Common mechanisms to | ||||
| achieve this redirection depend on BGP <xref target="RFC4271" | ||||
| format="default"/> and DNS <xref target="RFC1035" | ||||
| format="default"/>. In turn, the mitigator inspects and scrubs the | ||||
| traffic and forwards the resulting (hopefully non-attack) traffic to | ||||
| the attack target. Thus, when a DOTS server receives an attack | ||||
| mitigation request from a DOTS client, it can be viewed as a way of | ||||
| causing traffic redirection for the attack target indicated.</t> | ||||
| <t>DOTS relies on mutual authentication and the pre-established | ||||
| service relationship between the DOTS client domain and the DOTS | ||||
| server domain to provide authorization. The DOTS server should enforce | ||||
| authorization mechanisms to restrict the mitigation scope a DOTS | ||||
| client can request, but such authorization mechanisms are | ||||
| deployment specific.</t> | ||||
| <t>Although co-location of DOTS server and mitigator within the same | ||||
| domain is expected to be a common deployment model, it is assumed that | ||||
| operators may require alternative models. Nothing in this document | ||||
| precludes such alternatives.</t> | ||||
| </section> | ||||
| <section anchor="components" numbered="true" toc="default"> | ||||
| <name>Components</name> | ||||
| <t>Traditional client/server relationships may be expanded by chaining DOTS | <section anchor="dots-client" numbered="true" toc="default"> | |||
| sessions. This chaining is enabled through "logical concatenation" of a DOTS | <name>DOTS Client</name> | |||
| server and a DOTS client, resulting in an application analogous to the Session | <t>A DOTS client is a DOTS agent from which requests for help | |||
| Initiation Protocol (SIP) <xref target="RFC3261"/> logical entity of a Back-to-B | coordinating an attack response originate. The requests may be in | |||
| ack User | response to an active, ongoing attack against a target in the DOTS | |||
| Agent (B2BUA) <xref target="RFC7092"></xref>. The term DOTS gateway is used here | client domain, but no active attack is required for a DOTS client to | |||
| in the descriptions | request help. Operators may wish to have upstream mitigators in the | |||
| of selected scenarios involving this application.</t> | network path for an indefinite period and are restricted only by | |||
| business relationships when it comes to duration and scope of | ||||
| requested mitigation.</t> | ||||
| <t>The DOTS client requests attack response coordination from a DOTS | ||||
| server over the signal channel, including in the request the DOTS | ||||
| client's desired mitigation scoping, as described in <xref | ||||
| target="RFC8612" format="default"/> (SIG-008). The actual mitigation | ||||
| scope and countermeasures used in response to the attack are up to | ||||
| the DOTS server and mitigator operators, as the DOTS client may have | ||||
| a narrow perspective on the ongoing attack. As such, the DOTS | ||||
| client's request for mitigation should be considered advisory: | ||||
| guarantees of DOTS server availability or mitigation capacity | ||||
| constitute Service Level Agreements (SLAs) and are out of scope for th | ||||
| is | ||||
| document.</t> | ||||
| <t>The DOTS client adjusts mitigation scope and provides available | ||||
| mitigation feedback (e.g., mitigation efficacy) at the direction of | ||||
| its local administrator. Such direction may involve manual or | ||||
| automated adjustments in response to updates from the DOTS | ||||
| server.</t> | ||||
| <t>To provide a metric of signal health and distinguish an idle | ||||
| signal channel from a disconnected or defunct session, the DOTS | ||||
| client sends a heartbeat over the signal channel to maintain its | ||||
| half of the channel. The DOTS client similarly expects a heartbeat | ||||
| from the DOTS server and may consider a session terminated in the | ||||
| extended absence of a DOTS server heartbeat.</t> | ||||
| </section> | ||||
| <t>A DOTS gateway may be deployed client-side, server-side or both. The gateway | <section anchor="dots-server" numbered="true" toc="default"> | |||
| may terminate multiple discrete client connections and may aggregate these into | <name>DOTS Server</name> | |||
| a single or multiple DOTS sessions.</t> | ||||
| <t>The DOTS gateway will appear as a server to its downstream agents and as a | <t>A DOTS server is a DOTS agent capable of receiving, processing, | |||
| client to its upstream agents, a functional concatenation of the DOTS client and | and possibly acting on requests for help coordinating attack | |||
| server roles, as depicted in <xref target="fig-dots-gateway"/>:</t> | responses from DOTS clients. The DOTS server authenticates and | |||
| authorizes DOTS clients as described in <xref target="dots-sessions" | ||||
| format="default"/> and maintains session state, tracks requests | ||||
| for mitigation, reports on the status of active mitigations, and | ||||
| terminates sessions in the extended absence of a client heartbeat | ||||
| or when a session times out.</t> | ||||
| <t>Assuming the preconditions discussed below exist, a DOTS client | ||||
| maintaining an active session with a DOTS server may reasonably | ||||
| expect some level of mitigation in response to a request for | ||||
| coordinated attack response.</t> | ||||
| <figure title="DOTS gateway" anchor="fig-dots-gateway"><artwork><![CDATA[ | <t>For a given DOTS client (administrative) domain, the DOTS server | |||
| needs to be able to determine whether a given resource is in that | ||||
| domain. For example, this could take the form of associating a set | ||||
| of IP addresses and/or prefixes per DOTS client domain. The DOTS | ||||
| server enforces authorization of signals for mitigation, filtering | ||||
| rules, and aliases for resources from DOTS clients. The mechanism of | ||||
| enforcement is not in scope for this document but is expected to | ||||
| restrict mitigation requests, filtering rules, aliases for addresses | ||||
| and prefixes, and/or services owned by the DOTS client domain, such | ||||
| that a DOTS client from one domain is not able to influence the | ||||
| network path to another domain. A DOTS server <bcp14>MUST</bcp14> | ||||
| reject mitigation requests, filtering rules, and aliases for | ||||
| resources not owned by the requesting DOTS client's administrative | ||||
| domain. The exact mechanism for the DOTS servers to validate that | ||||
| the resources are within the scope of the DOTS client domain is | ||||
| deployment specific. For example, if the DOTS client domain uses | ||||
| Provider-Aggregatable prefixes for its resources and leverages the | ||||
| DDoS mitigation service of the Internet Transit Provider (ITP); the | ||||
| ITP knows the prefixes assigned to the DOTS client domain because | ||||
| they are assigned by the ITP itself. However, if the DDoS Mitigation | ||||
| is offered by a third-party DDoS mitigation service provider; it | ||||
| does not know the resources owned by the DOTS client domain. The | ||||
| DDoS mitigation service provider and the DOTS client domain can opt | ||||
| to use the identifier validation challenges discussed in <xref | ||||
| target="RFC8555" format="default"/> and <xref target="RFC8738" | ||||
| format="default"/> to identify whether or not the DOTS client domain | ||||
| actually controls the resources. The challenges for validating | ||||
| control of resources must be performed when no attack traffic is | ||||
| present and works only for "dns" and "ip" identifier types. Further, | ||||
| if the DOTS client lies about the resources owned by the DOTS client | ||||
| domain, the DDoS mitigation service provider can impose penalties | ||||
| for violating the SLA. A DOTS server <bcp14>MAY</bcp14> also refuse | ||||
| a DOTS client's mitigation request for arbitrary reasons, within any | ||||
| limits imposed by business or SLAs between client and server | ||||
| domains. If a DOTS server refuses a DOTS client's request for | ||||
| mitigation, the DOTS server <bcp14>MUST</bcp14> include the refusal | ||||
| reason in the server signal sent to the client.</t> | ||||
| <t>A DOTS server is in regular contact with one or more | ||||
| mitigators. If a DOTS server accepts a DOTS client's request for | ||||
| help, the DOTS server forwards a translated form of that request to | ||||
| the mitigator(s) responsible for scrubbing attack traffic. Note that | ||||
| the form of the translated request passed from the DOTS server to | ||||
| the mitigator is not in scope; it may be as simple as an alert to | ||||
| mitigator operators, or highly automated using vendor or open | ||||
| application programming interfaces supported by the mitigator. The | ||||
| DOTS server <bcp14>MUST</bcp14> report the actual scope of any | ||||
| mitigation enabled on behalf of a client.</t> | ||||
| <t>The DOTS server <bcp14>SHOULD</bcp14> retrieve available metrics | ||||
| for any mitigations activated on behalf of a DOTS client and | ||||
| <bcp14>SHOULD</bcp14> include them in server signals sent to the | ||||
| DOTS client originating the request for mitigation.</t> | ||||
| <t>To provide a metric of signal health and distinguish an idle | ||||
| signal channel from a disconnected or defunct channel, the DOTS | ||||
| server <bcp14>MUST</bcp14> send a heartbeat over the signal channel | ||||
| to maintain its half of the channel. The DOTS server similarly | ||||
| expects a heartbeat from the DOTS client and <bcp14>MAY</bcp14> | ||||
| consider a session terminated in the extended absence of a DOTS | ||||
| client heartbeat.</t> | ||||
| </section> | ||||
| <section anchor="dots-gateway" numbered="true" toc="default"> | ||||
| <name>DOTS Gateway</name> | ||||
| <t>Traditional client/server relationships may be expanded by | ||||
| chaining DOTS sessions. This chaining is enabled through "logical | ||||
| concatenation" of a DOTS server and a DOTS client, resulting in an | ||||
| application analogous to the Session Initiation Protocol (SIP) <xref | ||||
| target="RFC3261" format="default"/> logical entity of a Back-to-Back | ||||
| User Agent (B2BUA) <xref target="RFC7092" format="default"/>. The | ||||
| term "DOTS gateway" is used here in the descriptions of selected | ||||
| scenarios involving this application.</t> | ||||
| <t>A DOTS gateway may be deployed client side, server side, or both. | ||||
| The gateway may terminate multiple discrete client connections and | ||||
| may aggregate these into a single or multiple DOTS session(s).</t> | ||||
| <t>The DOTS gateway will appear as a server to its downstream agents | ||||
| and as a client to its upstream agents, a functional concatenation | ||||
| of the DOTS client and server roles, as depicted in <xref | ||||
| target="fig-dots-gateway" format="default"/>:</t> | ||||
| <figure anchor="fig-dots-gateway"> | ||||
| <name>DOTS Gateway</name> | ||||
| <artwork name="" type="" align="left" alt=""><![CDATA[ | ||||
| +-------------+ | +-------------+ | |||
| | | D | | | | | D | | | |||
| +----+ | | O | | +----+ | +----+ | | O | | +----+ | |||
| | c1 |----------| s1 | T | c2 |---------| s2 | | | c1 |----------| s1 | T | c2 |---------| s2 | | |||
| +----+ | | S | | +----+ | +----+ | | S | | +----+ | |||
| | | G | | | | | G | | | |||
| +-------------+ | +-------------+ | |||
| ]]></artwork></figure> | ]]></artwork> | |||
| </figure> | ||||
| <t>The DOTS gateway MUST perform full stack DOTS session termination and | <t>The DOTS gateway <bcp14>MUST</bcp14> perform full stack DOTS | |||
| reorigination between its client and server side. The details of how this is | session termination and reorigination between its client and server | |||
| achieved are implementation specific. </t> | side. The details of how this is achieved are implementation | |||
| specific. </t> | ||||
| </section> | </section> | |||
| </section> | </section> | |||
| <section anchor="agent-relationships" title="DOTS Agent Relationships"> | <section anchor="agent-relationships" numbered="true" toc="default"> | |||
| <name>DOTS Agent Relationships</name> | ||||
| <t>So far, we have only considered a relatively simple scenario of a single DOTS | <t>So far, we have only considered a relatively simple scenario of a | |||
| client associated with a single DOTS server, however DOTS supports more advanced | single DOTS client associated with a single DOTS server; however, DOTS | |||
| relationships.</t> | supports more advanced relationships.</t> | |||
| <t>A DOTS server may be associated with one or more DOTS clients, and th | ||||
| <t>A DOTS server may be associated with one or more DOTS clients, and those DOTS | ose DOTS | |||
| clients may belong to different domains. An example scenario is a mitigation | clients may belong to different domains. An example scenario is a mitigation | |||
| provider serving multiple attack targets (<xref target="fig-multi-client-server" | provider serving multiple attack targets (<xref target="fig-multi-client-server" | |||
| />).</t> | format="default"/>).</t> | |||
| <figure anchor="fig-multi-client-server"> | ||||
| <figure title="DOTS server with multiple clients" anchor="fig-multi-client-serve | <name>DOTS Server with Multiple Clients</name> | |||
| r"><artwork><![CDATA[ | <artwork name="" type="" align="left" alt=""><![CDATA[ | |||
| DOTS clients DOTS server | DOTS clients DOTS server | |||
| +---+ | +---+ | |||
| | c |----------- | | c |----------- | |||
| +---+ \ | +---+ \ | |||
| c1.example.org \ | c1.example.org \ | |||
| \ | \ | |||
| +---+ \ +---+ | +---+ \ +---+ | |||
| | c |----------------| S | | | c |----------------| S | | |||
| +---+ / +---+ | +---+ / +---+ | |||
| c1.example.com / dots1.example.net | c1.example.com / dots1.example.net | |||
| / | / | |||
| +---+ / | +---+ / | |||
| | c |----------- | | c |----------- | |||
| +---+ | +---+ | |||
| c2.example.com | c2.example.com | |||
| ]]></artwork></figure> | ]]></artwork> | |||
| </figure> | ||||
| <t>A DOTS client may be associated with one or more DOTS servers, and those DOTS | <t>A DOTS client may be associated with one or more DOTS servers, and th | |||
| ose DOTS | ||||
| servers may belong to different domains. This may be to ensure high | servers may belong to different domains. This may be to ensure high | |||
| availability or co-ordinate mitigation with more than one directly connected | availability or coordinate mitigation with more than one directly connected | |||
| ISP. An example scenario is for an enterprise to have DDoS mitigation service | ISP. An example scenario is for an enterprise to have DDoS mitigation service | |||
| from multiple providers, as shown in <xref target="fig-multi-homed-client"/>.</t | from multiple providers, as shown in <xref target="fig-multi-homed-client" forma | |||
| > | t="default"/>.</t> | |||
| <figure anchor="fig-multi-homed-client"> | ||||
| <figure title="Multi-Homed DOTS Client" anchor="fig-multi-homed-client"><artwork | <name>Multihomed DOTS Client</name> | |||
| ><![CDATA[ | <artwork name="" type="" align="left" alt=""><![CDATA[ | |||
| DOTS client DOTS servers | DOTS client DOTS servers | |||
| +---+ | +---+ | |||
| -----------| S | | -----------| S | | |||
| / +---+ | / +---+ | |||
| / dots1.example.net | / dots1.example.net | |||
| / | / | |||
| +---+/ +---+ | +---+/ +---+ | |||
| | c |---------------| S | | | c |---------------| S | | |||
| +---+\ +---+ | +---+\ +---+ | |||
| \ dots.example.org | \ dots.example.org | |||
| \ | \ | |||
| \ +---+ | \ +---+ | |||
| -----------| S | | -----------| S | | |||
| +---+ | +---+ | |||
| c.example.com dots2.example.net | c.example.com dots2.example.net | |||
| ]]></artwork></figure> | ]]></artwork> | |||
| </figure> | ||||
| <t>Deploying a multi-homed client requires extra care and planning, as the DOTS | <t>Deploying a multihomed client requires extra care and planning, as th | |||
| servers with which the multi-homed client communicates might not be affiliated. | e DOTS | |||
| Should the multi-homed client simultaneously request for mitigation from all | servers with which the multihomed client communicates might not be affiliated. | |||
| Should the multihomed client simultaneously request for mitigation from all | ||||
| servers with which it has established signal channels, the client may | servers with which it has established signal channels, the client may | |||
| unintentionally inflict additional network disruption on the resources it | unintentionally inflict additional network disruption on the resources it | |||
| intends to protect. In one of the worst cases, a multi-homed DOTS client could | intends to protect. In one of the worst cases, a multihomed DOTS client could | |||
| cause a permanent routing loop of traffic destined for the client's | cause a permanent routing loop of traffic destined for the client's | |||
| protected services, as the uncoordinated DOTS servers' mitigators all try to | protected services, as the uncoordinated DOTS servers' mitigators all try to | |||
| divert that traffic to their own scrubbing centers.</t> | divert that traffic to their own scrubbing centers.</t> | |||
| <t>The DOTS protocol itself provides no fool-proof method to prevent suc | ||||
| <t>The DOTS protocol itself provides no fool-proof method to prevent such | h | |||
| self-inflicted harms as a result deploying multi-homed DOTS clients. If | self-inflicted harms as a result of deploying multihomed DOTS clients. If | |||
| DOTS client implementations nevertheless include support for multi-homing, they | DOTS client implementations nevertheless include support for multihoming, they | |||
| are expected to be aware of the risks, and consequently to include measures | are expected to be aware of the risks, and consequently to include measures | |||
| aimed at reducing the likelihood of negative outcomes. Simple measures might | aimed at reducing the likelihood of negative outcomes. Simple measures might | |||
| include:</t> | include:</t> | |||
| <ul spacing="normal"> | ||||
| <t><list style="symbols"> | <li>Requesting mitigation serially, ensuring only one mitigation reque | |||
| <t>Requesting mitigation serially, ensuring only one mitigation request for | st for | |||
| a given address space is active at any given time;</t> | a given address space is active at any given time;</li> | |||
| <t>Dividing the protected resources among the DOTS servers, such that no two | <li>Dividing the protected resources among the DOTS servers, such that | |||
| mitigators will be attempting to divert and scrub the same traffic;</t> | no two | |||
| <t>Restricting multi-homing to deployments in which all DOTS servers are | mitigators will be attempting to divert and scrub the same traffic;</li> | |||
| coordinating management of a shared pool of mitigation resources.</t> | <li>Restricting multihoming to deployments in which all DOTS servers a | |||
| </list></t> | re | |||
| coordinating management of a shared pool of mitigation resources.</li> | ||||
| <section anchor="gatewayed-signaling" title="Gatewayed Signaling"> | </ul> | |||
| <section anchor="gatewayed-signaling" numbered="true" toc="default"> | ||||
| <t>As discussed in <xref target="dots-gateway"/>, a DOTS gateway is a logical fu | <name>Gatewayed Signaling</name> | |||
| nction chaining | <t>As discussed in <xref target="dots-gateway" format="default"/>, a | |||
| DOTS sessions through concatenation of a DOTS server and DOTS client.</t> | DOTS gateway is a logical function chaining DOTS sessions through | |||
| concatenation of a DOTS server and DOTS client.</t> | ||||
| <t>An example scenario, as shown in <xref target="fig-client-gateway-agg"/> and | <t>An example scenario, as shown in <xref | |||
| <xref target="fig-client-gateway-noagg"/>, is for an enterprise to have deployed | target="fig-client-gateway-agg" format="default"/> and <xref | |||
| multiple | target="fig-client-gateway-noagg" format="default"/>, is for an | |||
| DOTS capable devices which are able to signal intra-domain using TCP <xref targe | enterprise to have deployed multiple DOTS-capable devices that are | |||
| t="RFC0793"></xref> | able to signal intra-domain using TCP <xref target="RFC0793" | |||
| on un-congested links to a DOTS gateway which may then transform these to a UDP | format="default"/> on uncongested links to a DOTS gateway that may | |||
| <xref target="RFC0768"></xref> transport inter-domain where connection oriented | then transform these to a UDP <xref target="RFC0768" | |||
| transports may | format="default"/> transport inter-domain where connection-oriented | |||
| degrade; this applies to the signal channel only, as the data channel requires a | transports may degrade; this applies to the signal channel only, as | |||
| connection-oriented transport. The relationship between the gateway and its | the data channel requires a connection-oriented transport. The | |||
| upstream agents is opaque to the initial clients.</t> | relationship between the gateway and its upstream agents is opaque | |||
| to the initial clients.</t> | ||||
| <figure title="Client-Side Gateway with Aggregation" anchor="fig-client-gateway- | <figure anchor="fig-client-gateway-agg"> | |||
| agg"><artwork><![CDATA[ | <name>Client-Side Gateway with Aggregation</name> | |||
| <artwork name="" type="" align="left" alt=""><![CDATA[ | ||||
| +---+ | +---+ | |||
| | c |\ | | c |\ | |||
| +---+ \ +---+ | +---+ \ +---+ | |||
| \-----TCP-----| D | +---+ | \-----TCP-----| D | +---+ | |||
| +---+ | O | | | | +---+ | O | | | | |||
| | c |--------TCP-----| T |------UDP------| S | | | c |--------TCP-----| T |------UDP------| S | | |||
| +---+ | S | | | | +---+ | S | | | | |||
| /-----TCP-----| G | +---+ | /-----TCP-----| G | +---+ | |||
| +---+ / +---+ | +---+ / +---+ | |||
| | c |/ | | c |/ | |||
| +---+ | +---+ | |||
| example.com example.com example.net | example.com example.com example.net | |||
| DOTS clients DOTS gateway (DOTSG) DOTS server | DOTS clients DOTS gateway (DOTSG) DOTS server | |||
| ]]></artwork></figure> | ]]></artwork> | |||
| </figure> | ||||
| <figure title="Client-Side Gateway without Aggregation" anchor="fig-client-gatew | <figure anchor="fig-client-gateway-noagg"> | |||
| ay-noagg"><artwork><![CDATA[ | <name>Client-Side Gateway without Aggregation</name> | |||
| <artwork name="" type="" align="left" alt=""><![CDATA[ | ||||
| +---+ | +---+ | |||
| | c |\ | | c |\ | |||
| +---+ \ +---+ | +---+ \ +---+ | |||
| \-----TCP-----| D |------UDP------+---+ | \-----TCP-----| D |------UDP------+---+ | |||
| +---+ | O | | | | +---+ | O | | | | |||
| | c |--------TCP-----| T |------UDP------| S | | | c |--------TCP-----| T |------UDP------| S | | |||
| +---+ | S | | | | +---+ | S | | | | |||
| /-----TCP-----| G |------UDP------+---+ | /-----TCP-----| G |------UDP------+---+ | |||
| +---+ / +---+ | +---+ / +---+ | |||
| | c |/ | | c |/ | |||
| +---+ | +---+ | |||
| example.com example.com example.net | example.com example.com example.net | |||
| DOTS clients DOTS gateway (DOTSG) DOTS server | DOTS clients DOTS gateway (DOTSG) DOTS server | |||
| ]]></artwork></figure> | ]]></artwork> | |||
| </figure> | ||||
| <t>This may similarly be deployed in the inverse scenario where the gateway resi | <t>This may similarly be deployed in the inverse scenario where the ga | |||
| des | teway resides | |||
| in the server-side domain and may be used to terminate and/or aggregate multiple | in the server-side domain and may be used to terminate and/or aggregate multiple | |||
| clients to single transport as shown in figures <xref target="fig-server-gateway | clients to a single transport as shown in <xref target="fig-server-gateway-agg" | |||
| -agg"/> and | format="default"/> and | |||
| <xref target="fig-server-gateway-noagg"/>.</t> | <xref target="fig-server-gateway-noagg" format="default"/>.</t> | |||
| <figure anchor="fig-server-gateway-agg"> | ||||
| <figure title="Server-Side Gateway with Aggregation" anchor="fig-server-gateway- | <name>Server-Side Gateway with Aggregation</name> | |||
| agg"><artwork><![CDATA[ | <artwork name="" type="" align="left" alt=""><![CDATA[ | |||
| +---+ | +---+ | |||
| | c |\ | | c |\ | |||
| +---+ \ +---+ | +---+ \ +---+ | |||
| \-----UDP-----| D | +---+ | \-----UDP-----| D | +---+ | |||
| +---+ | O | | | | +---+ | O | | | | |||
| | c |--------TCP-----| T |------TCP------| S | | | c |--------TCP-----| T |------TCP------| S | | |||
| +---+ | S | | | | +---+ | S | | | | |||
| /-----TCP-----| G | +---+ | /-----TCP-----| G | +---+ | |||
| +---+ / +---+ | +---+ / +---+ | |||
| | c |/ | | c |/ | |||
| +---+ | +---+ | |||
| example.com example.net example.net | example.com example.net example.net | |||
| DOTS clients DOTS gateway (DOTSG) DOTS server | DOTS clients DOTS gateway (DOTSG) DOTS server | |||
| ]]></artwork></figure> | ]]></artwork> | |||
| </figure> | ||||
| <figure title="Server-Side Gateway without Aggregation" anchor="fig-server-gatew | <figure anchor="fig-server-gateway-noagg"> | |||
| ay-noagg"><artwork><![CDATA[ | <name>Server-Side Gateway without Aggregation</name> | |||
| <artwork name="" type="" align="left" alt=""><![CDATA[ | ||||
| +---+ | +---+ | |||
| | c |\ | | c |\ | |||
| +---+ \ +---+ | +---+ \ +---+ | |||
| \-----UDP-----| D |------TCP------+---+ | \-----UDP-----| D |------TCP------+---+ | |||
| +---+ | O | | | | +---+ | O | | | | |||
| | c |--------TCP-----| T |------TCP------| S | | | c |--------TCP-----| T |------TCP------| S | | |||
| +---+ | S | | | | +---+ | S | | | | |||
| /-----UDP-----| G |------TCP------+---+ | /-----UDP-----| G |------TCP------+---+ | |||
| +---+ / +---+ | +---+ / +---+ | |||
| | c |/ | | c |/ | |||
| +---+ | +---+ | |||
| example.com example.net example.net | example.com example.net example.net | |||
| DOTS clients DOTS gateway (DOTSG) DOTS server | DOTS clients DOTS gateway (DOTSG) DOTS server | |||
| ]]></artwork></figure> | ]]></artwork> | |||
| </figure> | ||||
| <t>This document anticipates scenarios involving multiple DOTS gateways. An exam | <t>This document anticipates scenarios involving multiple DOTS gateway | |||
| ple | s. An example | |||
| is a DOTS gateway at the network client's side, and another one at the server | is a DOTS gateway at the network client's side and another one at the server | |||
| side. The first gateway can be located at a Customer Premises Equipment (CPE) to | side. The first gateway can be located at Customer Premises Equipment (CPE) to a | |||
| aggregate requests from | ggregate requests from | |||
| multiple DOTS clients enabled in an enterprise network. The second DOTS gateway | multiple DOTS clients enabled in an enterprise network. The second DOTS gateway | |||
| is deployed on the provider side. This scenario can be seen as a combination of | is deployed on the provider side. This scenario can be seen as a combination of | |||
| the client-side and server-side scenarios.</t> | the client-side and server-side scenarios.</t> | |||
| </section> | ||||
| </section> | </section> | |||
| </section> | </section> | |||
| </section> | <section anchor="concepts" numbered="true" toc="default"> | |||
| <section anchor="concepts" title="Concepts"> | <name>Concepts</name> | |||
| <section anchor="dots-sessions" numbered="true" toc="default"> | ||||
| <section anchor="dots-sessions" title="DOTS Sessions"> | <name>DOTS Sessions</name> | |||
| <t>In order for DOTS to be effective as a vehicle for DDoS mitigation | ||||
| <t>In order for DOTS to be effective as a vehicle for DDoS mitigation requests, | requests, one or more DOTS clients must establish ongoing | |||
| one or more DOTS clients must establish ongoing communication with one or more | communication with one or more DOTS servers. While the preconditions | |||
| DOTS servers. While the preconditions for enabling DOTS in or among network | for enabling DOTS in or among network domains may also involve | |||
| domains may also involve business relationships, service level agreements, or | business relationships, SLAs, or other formal or | |||
| other formal or informal understandings between network operators, such | informal understandings between network operators, such considerations | |||
| considerations are out of scope for this document.</t> | are out of scope for this document.</t> | |||
| <t>A DOTS session is established to support bilateral exchange of data | ||||
| <t>A DOTS session is established to support bilateral exchange of data between a | between an associated DOTS client and a DOTS server. In the DOTS | |||
| n | architecture, data is exchanged between DOTS agents over signal and | |||
| associated DOTS client and a DOTS server. In the DOTS architecture, data is | data channels. As such, a DOTS session can be a DOTS signal channel | |||
| exchanged between DOTS agents over signal and data channels. As such, a DOTS | session, a DOTS data channel session, or both. The DOTS server couples | |||
| session can be a DOTS signal channel session, a DOTS data channel session, or | the DOTS signal and data channel sessions using the DOTS client | |||
| both. The DOTS server couples the DOTS signal and data channel sessions | identity. The DOTS session is further elaborated in the DOTS signal | |||
| using the DOTS client identity. The DOTS session is further elaborated in the | channel protocol defined in <xref target="RFC8782" format="default"/> | |||
| DOTS signal channel protocol defined in <xref target="I-D.ietf-dots-signal-chann | and the DOTS data channel protocol defined in <xref target="RFC8783" | |||
| el"></xref> | format="default"/>.</t> | |||
| and the DOTS data channel protocol defined in <xref target="I-D.ietf-dots-data-c | <t>A DOTS agent can maintain one or more DOTS sessions.</t> | |||
| hannel"></xref>.</t> | <t>A DOTS signal channel session is associated with a single transport | |||
| connection (TCP or UDP session) and a security association (a TLS or | ||||
| <t>A DOTS agent can maintain one or more DOTS sessions.</t> | DTLS session). Similarly, a DOTS data channel session is associated | |||
| with a single TCP connection and a TLS security association.</t> | ||||
| <t>A DOTS signal channel session is associated with a single transport connectio | <t>Mitigation requests created using the DOTS signal channel are not bou | |||
| n | nd | |||
| (TCP or UDP session) and an security association (a TLS or DTLS | to the DOTS signal channel session. Instead, mitigation requests are | |||
| session). Similarly, a DOTS data channel session is associated with a single | associated with a DOTS client and can be managed using different DOTS | |||
| TCP connection and an TLS security association.</t> | signal channel sessions.</t> | |||
| <section anchor="dots-session-preconditions" numbered="true" toc="defaul | ||||
| <t>Mitigation requests created using DOTS signal channel are not bound to the DO | t"> | |||
| TS | <name>Preconditions</name> | |||
| signal channel session. Instead, mitigation requests are associated with a DOTS | <t>Prior to establishing a DOTS session between agents, the owners | |||
| client and can be managed using different DOTS signal channel sessions.</t> | of the networks, domains, services or applications involved are | |||
| assumed to have agreed upon the terms of the relationship | ||||
| <section anchor="dots-session-preconditions" title="Preconditions"> | involved. Such agreements are out of scope for this document but | |||
| must be in place for a functional DOTS architecture.</t> | ||||
| <t>Prior to establishing a DOTS session between agents, the owners of the networ | <t>It is assumed that, as part of any DOTS service agreement, the | |||
| ks, | DOTS client is provided with all data and metadata required to | |||
| domains, services or applications involved are assumed to have agreed upon the | establish communication with the DOTS server. Such data and metadata | |||
| terms of the relationship involved. Such agreements are out of scope for this | would include any cryptographic information necessary to meet the | |||
| document, but must be in place for a functional DOTS architecture.</t> | message confidentiality, integrity, and authenticity requirement | |||
| (SEC-002) in <xref target="RFC8612" format="default"/> and might | ||||
| <t>It is assumed that as part of any DOTS service agreement, the DOTS client is | also include the pool of DOTS server addresses and ports the DOTS | |||
| provided with all data and metadata required to establish communication with the | client should use for signal and data channel messaging.</t> | |||
| DOTS server. Such data and metadata would include any cryptographic information | </section> | |||
| necessary to meet the message confidentiality, integrity and authenticity | <section anchor="establishing-dots-session" numbered="true" toc="default | |||
| requirement (SEC-002) in <xref target="RFC8612"></xref>, and might also include | "> | |||
| the pool of | <name>Establishing the DOTS Session</name> | |||
| DOTS server addresses and ports the DOTS client should use for signal and data | <t>With the required business agreements in place, the DOTS client | |||
| channel messaging.</t> | initiates a DOTS session by contacting its DOTS server(s) over the | |||
| signal channel and (possibly) the data channel. To allow for DOTS | ||||
| </section> | service flexibility, neither the order of contact nor the time | |||
| <section anchor="establishing-dots-session" title="Establishing the DOTS Session | interval between channel creations is specified. A DOTS client | |||
| "> | <bcp14>MAY</bcp14> establish the signal channel first, and then the | |||
| data channel, or vice versa.</t> | ||||
| <t>With the required business agreements in place, the DOTS client | <t>The methods by which a DOTS client receives the address and | |||
| initiates a DOTS session by contacting its DOTS server(s) over the signal | associated service details of the DOTS server are not prescribed by | |||
| channel and (possibly) the data channel. To allow for DOTS service flexibility, | this document. For example, a DOTS client may be directly configured | |||
| neither the order of contact nor the time interval between channel creations is | to use a specific DOTS server IP address and port, and be directly | |||
| specified. A DOTS client MAY establish signal channel first, and then data | provided with any data necessary to satisfy the Peer Mutual | |||
| channel, or vice versa.</t> | Authentication requirement (SEC-001) in <xref target="RFC8612" | |||
| format="default"/>, such as symmetric or asymmetric keys, usernames, | ||||
| <t>The methods by which a DOTS client receives the address and associated servic | passwords, etc. All configuration and authentication information | |||
| e | in this scenario is provided out of band by the domain operating the | |||
| details of the DOTS server are not prescribed by this document. For example, a | DOTS server.</t> | |||
| DOTS client may be directly configured to use a specific DOTS server IP address | <t>At the other extreme, the architecture in this document allows | |||
| and port, and directly provided with any data necessary to satisfy the Peer | for a form of DOTS client auto-provisioning. For example, the domain | |||
| Mutual Authentication requirement (SEC-001) in <xref target="RFC8612"></xref>, s | operating the DOTS server or servers might provide the client domain | |||
| uch as symmetric or | only with symmetric or asymmetric keys to authenticate the | |||
| asymmetric keys, usernames and passwords, etc. All configuration and | provisioned DOTS clients. Only the keys would then be directly | |||
| authentication information in this scenario is provided out-of-band by the | configured on DOTS clients, but the remaining configuration required | |||
| domain operating the DOTS server.</t> | to provision the DOTS clients could be learned through mechanisms | |||
| similar to DNS SRV <xref target="RFC2782" format="default"/> or DNS | ||||
| <t>At the other extreme, the architecture in this document allows for a form of | Service Discovery <xref target="RFC6763" format="default"/>.</t> | |||
| DOTS client auto-provisioning. For example, the domain operating the DOTS server | <t>The DOTS client <bcp14>SHOULD</bcp14> successfully authenticate | |||
| or servers might provide the client domain only with symmetric or asymmetric | and exchange messages with the DOTS server over both the signal and (i | |||
| keys to authenticate the provisioned DOTS clients. Only the keys would then be | f | |||
| directly configured on DOTS clients, but the remaining configuration required to | used) data channel as soon as possible to confirm that both channels | |||
| provision the DOTS clients could be learned through mechanisms similar to DNS | are operational.</t> | |||
| SRV <xref target="RFC2782"/> or DNS Service Discovery <xref target="RFC6763"/>.< | <t>As described in <xref target="RFC8612" format="default"/> | |||
| /t> | (DM-008), the DOTS client can configure preferred values for | |||
| acceptable signal loss, mitigation lifetime, and heartbeat intervals | ||||
| <t>The DOTS client SHOULD successfully authenticate and exchange messages with t | when establishing the DOTS signal channel session. A DOTS signal | |||
| he | channel session is not active until DOTS agents have agreed on the | |||
| DOTS server over both signal and (if used) data channel as soon as possible to | values for these DOTS session parameters, a process defined by the | |||
| confirm that both channels are operational.</t> | protocol.</t> | |||
| <t>Once the DOTS client begins receiving DOTS server signals, the | ||||
| <t>As described in <xref target="RFC8612"></xref> (DM-008), the DOTS client can | DOTS session is active. At any time during the DOTS session, the | |||
| configure | DOTS client may use the data channel to manage aliases, manage drop- | |||
| preferred values for acceptable signal loss, mitigation lifetime, and heartbeat | and accept-listed prefixes or addresses, leverage vendor-specific | |||
| intervals when establishing the DOTS signal channel session. A DOTS signal | extensions, and so on. Note that unlike the signal channel, there is | |||
| channel session is not active until DOTS agents have agreed on the values for | no requirement that the data channel remains operational in attack | |||
| these DOTS session parameters, a process defined by the protocol.</t> | conditions. (See "Data Channel Requirements" <xref | |||
| target="RFC8612" sectionFormat="of" section="2.3"/>).</t> | ||||
| <t>Once the DOTS client begins receiving DOTS server signals, the DOTS session | </section> | |||
| is active. At any time during the DOTS session, the DOTS client may use the | <section anchor="maintaining-dots-session" numbered="true" toc="default" | |||
| data channel to manage aliases, manage drop- and accept-listed | > | |||
| prefixes or addresses, leverage vendor-specific extensions, and so on. Note that | <name>Maintaining the DOTS Session</name> | |||
| unlike the signal channel, there is no requirement that the data channel remains | <t>DOTS clients and servers periodically send heartbeats to each | |||
| operational in attack conditions (See Data Channel Requirements, Section 2.3 of | other over the signal channel, discussed in <xref target="RFC8612" | |||
| <xref target="RFC8612"></xref>).</t> | format="default"/> (SIG-004). DOTS agent operators | |||
| <bcp14>SHOULD</bcp14> configure the heartbeat interval such that the | ||||
| </section> | frequency does not lead to accidental denials of service due to the | |||
| <section anchor="maintaining-dots-session" title="Maintaining the DOTS Session"> | overwhelming number of heartbeats a DOTS agent must field.</t> | |||
| <t>Either DOTS agent may consider a DOTS signal channel session | ||||
| <t>DOTS clients and servers periodically send heartbeats to each other over the | terminated in the extended absence of a heartbeat from its peer | |||
| signal channel, discussed in <xref target="RFC8612"></xref> (SIG-004). DOTS ag | agent. The period of that absence will be established in the | |||
| ent operators SHOULD | protocol definition.</t> | |||
| configure the heartbeat interval such that the frequency does not lead to | </section> | |||
| accidental denials of service due to the overwhelming number of heartbeats a | </section> | |||
| DOTS agent must field.</t> | <section anchor="modes-of-signaling" numbered="true" toc="default"> | |||
| <name>Modes of Signaling</name> | ||||
| <t>Either DOTS agent may consider a DOTS signal channel session terminated in th | <t>This section examines the modes of signaling between agents in a DOTS | |||
| e | ||||
| extended absence of a heartbeat from its peer agent. The period of that absence | ||||
| will be established in the protocol definition.</t> | ||||
| </section> | ||||
| </section> | ||||
| <section anchor="modes-of-signaling" title="Modes of Signaling"> | ||||
| <t>This section examines the modes of signaling between agents in a DOTS | ||||
| architecture.</t> | architecture.</t> | |||
| <section anchor="direct-signaling" numbered="true" toc="default"> | ||||
| <section anchor="direct-signaling" title="Direct Signaling"> | <name>Direct Signaling</name> | |||
| <t>A DOTS session may take the form of direct signaling between the DO | ||||
| <t>A DOTS session may take the form of direct signaling between the DOTS | TS | |||
| clients and servers, as shown in <xref target="fig-direct-signaling"/>.</t> | clients and servers, as shown in <xref target="fig-direct-signaling" format="def | |||
| ault"/>.</t> | ||||
| <figure title="Direct Signaling" anchor="fig-direct-signaling"><artwork><![CDATA | <figure anchor="fig-direct-signaling"> | |||
| [ | <name>Direct Signaling</name> | |||
| <artwork name="" type="" align="left" alt=""><![CDATA[ | ||||
| +-------------+ +-------------+ | +-------------+ +-------------+ | |||
| | DOTS client |<------signal session------>| DOTS server | | | DOTS client |<------signal session------>| DOTS server | | |||
| +-------------+ +-------------+ | +-------------+ +-------------+ | |||
| ]]></artwork></figure> | ]]></artwork> | |||
| </figure> | ||||
| <t>In a direct DOTS session, the DOTS client and server are communicating direct | <t>In a direct DOTS session, the DOTS client and server are | |||
| ly. | communicating directly. Direct signaling may exist inter- or | |||
| Direct signaling may exist inter- or intra-domain. The DOTS session is | intra-domain. The DOTS session is abstracted from the underlying | |||
| abstracted from the underlying networks or network elements the signals | networks or network elements the signals traverse; in direct | |||
| traverse: in direct signaling, the DOTS client and server are logically | signaling, the DOTS client and server are logically adjacent.</t> | |||
| adjacent.</t> | </section> | |||
| <section anchor="redirected-signaling" numbered="true" toc="default"> | ||||
| </section> | <name>Redirected Signaling</name> | |||
| <section anchor="redirected-signaling" title="Redirected Signaling"> | <t>In certain circumstances, a DOTS server may want to redirect a DOTS | |||
| client to | ||||
| <t>In certain circumstances, a DOTS server may want to redirect a DOTS client to | ||||
| an alternative DOTS server for a DOTS signal channel session. Such | an alternative DOTS server for a DOTS signal channel session. Such | |||
| circumstances include but are not limited to:</t> | circumstances include but are not limited to:</t> | |||
| <ul spacing="normal"> | ||||
| <t><list style="symbols"> | <li>Maximum number of DOTS signal channel sessions with clients has | |||
| <t>Maximum number of DOTS signal channel sessions with clients has been reache | been reached;</li> | |||
| d;</t> | <li>Mitigation capacity exhaustion in the mitigator with which the | |||
| <t>Mitigation capacity exhaustion in the mitigator with which the | specific DOTS server is communicating;</li> | |||
| specific DOTS server is communicating;</t> | <li>Mitigator outage or other downtime such as scheduled maintenance | |||
| <t>Mitigator outage or other downtime, such as scheduled maintenance;</t> | ;</li> | |||
| <t>Scheduled DOTS server maintenance;</t> | <li>Scheduled DOTS server maintenance;</li> | |||
| <t>Scheduled modifications to the network path between DOTS server and DOTS | <li>Scheduled modifications to the network path between DOTS server | |||
| client.</t> | and DOTS | |||
| </list></t> | client.</li> | |||
| </ul> | ||||
| <t>A basic redirected DOTS signal channel session resembles the following, as | <t>A basic redirected DOTS signal channel session resembles the follow | |||
| shown in <xref target="fig-redirected-signaling"/>.</t> | ing, as | |||
| shown in <xref target="fig-redirected-signaling" format="default"/>.</t> | ||||
| <figure title="Redirected Signaling" anchor="fig-redirected-signaling"><artwork> | <figure anchor="fig-redirected-signaling"> | |||
| <![CDATA[ | <name>Redirected Signaling</name> | |||
| <artwork name="" type="" align="left" alt=""><![CDATA[ | ||||
| +-------------+ +---------------+ | +-------------+ +---------------+ | |||
| | |<-(1)--- DOTS signal ------>| | | | |<-(1)--- DOTS signal ------>| | | |||
| | | channel session 1 | | | | | channel session 1 | | | |||
| | |<=(2)== redirect to B ======| | | | |<=(2)== redirect to B ======| | | |||
| | DOTS client | | DOTS server A | | | DOTS client | | DOTS server A | | |||
| | |X-(4)--- DOTS signal ------X| | | | |X-(4)--- DOTS signal ------X| | | |||
| | | channel session 1 | | | | | channel session 1 | | | |||
| | | | | | | | | | | |||
| +-------------+ +---------------+ | +-------------+ +---------------+ | |||
| ^ | ^ | |||
| | | | | |||
| (3) DOTS signal channel | (3) DOTS signal channel | |||
| | session 2 | | session 2 | |||
| v | v | |||
| +---------------+ | +---------------+ | |||
| | DOTS server B | | | DOTS server B | | |||
| +---------------+ | +---------------+ | |||
| ]]></artwork></figure> | ]]></artwork> | |||
| </figure> | ||||
| <t><list style="numbers"> | <ol spacing="normal" type="1"> | |||
| <t>Previously established DOTS signal channel session 1 exists between a DOTS | <li>Previously established DOTS signal channel session 1 exists betw | |||
| client and DOTS server A.</t> | een a DOTS | |||
| <t>DOTS server A sends a server signal redirecting the client to DOTS server B | client and DOTS server A.</li> | |||
| .</t> | <li>DOTS server A sends a server signal redirecting the client to DO | |||
| <t>If the DOTS client does not already have a separate DOTS signal channel | TS server B.</li> | |||
| <li>If the DOTS client does not already have a separate DOTS signal | ||||
| channel | ||||
| session with the redirection target, the DOTS client initiates and | session with the redirection target, the DOTS client initiates and | |||
| establishes DOTS signal channel session 2 with DOTS server B.</t> | establishes DOTS signal channel session 2 with DOTS server B.</li> | |||
| <t>Having redirected the DOTS client, DOTS server A ceases sending server | <li>Having redirected the DOTS client, DOTS server A ceases sending | |||
| server | ||||
| signals. The DOTS client likewise stops sending client signals to DOTS server | signals. The DOTS client likewise stops sending client signals to DOTS server | |||
| A. DOTS signal channel session 1 is terminated.</t> | A. DOTS signal channel session 1 is terminated.</li> | |||
| </list></t> | </ol> | |||
| </section> | ||||
| </section> | <section anchor="recursive-signaling" numbered="true" toc="default"> | |||
| <section anchor="recursive-signaling" title="Recursive Signaling"> | <name>Recursive Signaling</name> | |||
| <t>DOTS is centered around improving the speed and efficiency of | ||||
| <t>DOTS is centered around improving the speed and efficiency of coordinated | a coordinated response to DDoS attacks. One scenario not yet discussed | |||
| response to DDoS attacks. One scenario not yet discussed involves coordination | involves coordination among federated domains operating DOTS servers | |||
| among federated domains operating DOTS servers and mitigators.</t> | and mitigators.</t> | |||
| <t>In the course of normal DOTS operations, a DOTS client communicates | ||||
| <t>In the course of normal DOTS operations, a DOTS client communicates the need | the need for | |||
| for | ||||
| mitigation to a DOTS server, and that server initiates mitigation on a | mitigation to a DOTS server, and that server initiates mitigation on a | |||
| mitigator with which the server has an established service relationship. The | mitigator with which the server has an established service relationship. The | |||
| operator of the mitigator may in turn monitor mitigation performance and | operator of the mitigator may in turn monitor mitigation performance and | |||
| capacity, as the attack being mitigated may grow in severity beyond the | capacity, as the attack being mitigated may grow in severity beyond the | |||
| mitigating domain's capabilities.</t> | mitigating domain's capabilities.</t> | |||
| <t>The operator of the mitigator has limited options in the event a DO | ||||
| <t>The operator of the mitigator has limited options in the event a DOTS | TS | |||
| client-requested mitigation is being overwhelmed by the severity of the attack. | client-requested mitigation is being overwhelmed by the severity of the attack. | |||
| Out-of-scope business or service level agreements may permit the mitigating | Out-of-scope business or SLAs may permit the mitigating | |||
| domain to drop the mitigation and let attack traffic flow unchecked to the | domain to drop the mitigation and let attack traffic flow unchecked to the | |||
| target, but this only encourages attack escalation. In the case where | target, but this only encourages attack escalation. In the case where | |||
| the mitigating domain is the upstream service provider for the attack target, | the mitigating domain is the upstream service provider for the attack target, | |||
| this may mean the mitigating domain and its other services and users continue to | this may mean the mitigating domain and its other services and users continue to | |||
| suffer the incidental effects of the attack.</t> | suffer the incidental effects of the attack.</t> | |||
| <t>A recursive signaling model as shown in <xref target="fig-recursive | ||||
| <t>A recursive signaling model as shown in <xref target="fig-recursive-signaling | -signaling" format="default"/> offers | |||
| "/> offers | ||||
| an alternative. In a variation of the use case "Upstream DDoS Mitigation by an | an alternative. In a variation of the use case "Upstream DDoS Mitigation by an | |||
| Upstream Internet Transit Provider" described in <xref target="I-D.ietf-dots-use -cases"></xref>, a | Upstream Internet Transit Provider" described in <xref target="I-D.ietf-dots-use -cases" format="default"/>, a | |||
| domain operating a DOTS server and mitigator also operates a DOTS client. This | domain operating a DOTS server and mitigator also operates a DOTS client. This | |||
| DOTS client has an established DOTS session with a DOTS server belonging to a | DOTS client has an established DOTS session with a DOTS server belonging to a | |||
| separate administrative domain.</t> | separate administrative domain.</t> | |||
| <t>With these preconditions in place, the operator of the mitigator be | ||||
| <t>With these preconditions in place, the operator of the mitigator being | ing | |||
| overwhelmed or otherwise performing inadequately may request mitigation for the | overwhelmed or otherwise performing inadequately may request mitigation for the | |||
| attack target from this separate DOTS-aware domain. Such a request recurses the | attack target from this separate DOTS-aware domain. Such a request recurses the | |||
| originating mitigation request to the secondary DOTS server, in the hope of | originating mitigation request to the secondary DOTS server in the hope of | |||
| building a cumulative mitigation against the attack.</t> | building a cumulative mitigation against the attack.</t> | |||
| <figure anchor="fig-recursive-signaling"> | ||||
| <figure title="Recursive Signaling" anchor="fig-recursive-signaling"><artwork><! | <name>Recursive Signaling</name> | |||
| [CDATA[ | <artwork name="" type="" align="left" alt=""><![CDATA[ | |||
| example.net domain | example.net domain | |||
| . . . . . . . . . . . . . . . . . | . . . . . . . . . . . . . . . . . | |||
| . Gn . | . Gn . | |||
| +----+ 1 . +----+ +-----------+ . | +----+ 1 . +----+ +-----------+ . | |||
| | Cc |<--------->| Sn |~~~~~~~| Mitigator | . | | Cc |<--------->| Sn |~~~~~~~| Mitigator | . | |||
| +----+ . +====+ | Mn | . | +----+ . +====+ | Mn | . | |||
| . | Cn | +-----------+ . | . | Cn | +-----------+ . | |||
| example.com . +----+ . | example.com . +----+ . | |||
| client . ^ . | client . ^ . | |||
| . . .|. . . . . . . . . . . . . . | . . .|. . . . . . . . . . . . . . | |||
| skipping to change at line 943 ¶ | skipping to change at line 943 ¶ | |||
| | | | | |||
| . . .|. . . . . . . . . . . . . . | . . .|. . . . . . . . . . . . . . | |||
| . v . | . v . | |||
| . +----+ +-----------+ . | . +----+ +-----------+ . | |||
| . | So |~~~~~~~| Mitigator | . | . | So |~~~~~~~| Mitigator | . | |||
| . +----+ | Mo | . | . +----+ | Mo | . | |||
| . +-----------+ . | . +-----------+ . | |||
| . . | . . | |||
| . . . . . . . . . . . . . . . . . | . . . . . . . . . . . . . . . . . | |||
| example.org domain | example.org domain | |||
| ]]></artwork></figure> | ]]></artwork> | |||
| </figure> | ||||
| <t>In <xref target="fig-recursive-signaling"/>, client Cc signals a request for | <t>In <xref target="fig-recursive-signaling" format="default"/>, clien | |||
| mitigation | t Cc signals a request for mitigation | |||
| across inter-domain DOTS session 1 to the DOTS server Sn belonging to the | across inter-domain DOTS session 1 to the DOTS server Sn belonging to the | |||
| example.net domain. DOTS server Sn enables mitigation on mitigator Mn. DOTS | example.net domain. DOTS server Sn enables mitigation on mitigator Mn. DOTS | |||
| server Sn is half of DOTS gateway Gn, being deployed logically back-to-back with | server Sn is half of DOTS gateway Gn, being deployed logically back to back with | |||
| DOTS client Cn, which has pre-existing inter-domain DOTS session 2 with the DOTS | DOTS client Cn, which has preexisting inter-domain DOTS session 2 with the DOTS | |||
| server So belonging to the example.org domain. At any point, DOTS server Sn MAY | server So belonging to the example.org domain. At any point, DOTS server Sn <bcp | |||
| recurse an on-going mitigation request through DOTS client Cn to DOTS server So, | 14>MAY</bcp14> | |||
| recurse an ongoing mitigation request through DOTS client Cn to DOTS server So, | ||||
| in the expectation that mitigator Mo will be activated to aid in the defense of | in the expectation that mitigator Mo will be activated to aid in the defense of | |||
| the attack target.</t> | the attack target.</t> | |||
| <t>Recursive signaling is opaque to the DOTS client. To maximize mitig | ||||
| <t>Recursive signaling is opaque to the DOTS client. To maximize mitigation | ation | |||
| visibility to the DOTS client, however, the recursing domain SHOULD provide | visibility to the DOTS client, however, the recursing domain <bcp14>SHOULD</bcp1 | |||
| 4> provide | ||||
| recursed mitigation feedback in signals reporting on mitigation status to the | recursed mitigation feedback in signals reporting on mitigation status to the | |||
| DOTS client. For example, the recursing domain's DOTS server should incorporate | DOTS client. For example, the recursing domain's DOTS server should incorporate | |||
| into mitigation status messages available metrics such as dropped packet or byte | available metrics such as dropped packet or byte counts from the recursed | |||
| counts from the recursed domain's DOTS server.</t> | domain's DOTS server into mitigation status messages. | |||
| </t> | ||||
| <t>DOTS clients involved in recursive signaling must be able to withdraw request | ||||
| s | ||||
| for mitigation without warning or justification, per SIG-006 in <xref target="RF | ||||
| C8612"></xref>.</t> | ||||
| <t>Operators recursing mitigation requests MAY maintain the recursed mitigation | ||||
| for | ||||
| a brief, protocol-defined period in the event the DOTS client originating the | ||||
| mitigation withdraws its request for help, as per the discussion of managing | ||||
| mitigation toggling in SIG-006 of <xref target="RFC8612"></xref>.</t> | ||||
| <t>Deployment of recursive signaling may result in traffic redirection, examinat | ||||
| ion | ||||
| and mitigation extending beyond the initial bilateral relationship between DOTS | ||||
| client and DOTS server. As such, client control over the network path of | ||||
| mitigated traffic may be reduced. DOTS client operators should be aware of any | ||||
| privacy concerns, and work with DOTS server operators employing recursive | ||||
| signaling to ensure shared sensitive material is suitably protected. Typically t | ||||
| here | ||||
| is a contractual Service Level Agreement (SLA) negotiated among the DOTS client | ||||
| domain, | ||||
| the recursed domain and the recursing domain to meet the privacy requirements of | ||||
| the DOTS | ||||
| client domain and authorization for the recursing domain to request mitigation | ||||
| for the resources | ||||
| controlled by the DOTS client domain. </t> | ||||
| </section> | ||||
| <section anchor="anycast-signaling" title="Anycast Signaling"> | ||||
| <t>The DOTS architecture does not assume the availability of anycast within a DO | ||||
| TS | ||||
| deployment, but neither does the architecture exclude it. Domains operating DOTS | ||||
| servers MAY deploy DOTS servers with an anycast Service Address as described in | ||||
| BCP 126 <xref target="RFC4786"></xref>. In such a deployment, DOTS clients conne | ||||
| cting to the DOTS | ||||
| Service Address may be communicating with distinct DOTS servers, depending on | ||||
| the network configuration at the time the DOTS clients connect. Among other | ||||
| benefits, anycast signaling potentially offers the following:</t> | ||||
| <t><list style="symbols"> | ||||
| <t>Simplified DOTS client configuration, including service discovery through t | ||||
| he | ||||
| methods described in <xref target="RFC7094"></xref>. In this scenario, the "inst | ||||
| ance discovery" | ||||
| message would be a DOTS client initiating a DOTS session to the DOTS server | ||||
| anycast Service Address, to which the DOTS server would reply with a | ||||
| redirection to the DOTS server unicast address the client should use for DOTS.</ | ||||
| t> | ||||
| <t>Region- or customer-specific deployments, in which the DOTS Service Address | ||||
| es | ||||
| route to distinct DOTS servers depending on the client region or the customer | ||||
| network in which a DOTS client resides.</t> | ||||
| <t>Operational resiliency, spreading DOTS signaling traffic across the DOTS | ||||
| server domain's networks, and thereby also reducing the potential attack | ||||
| surface, as described in BCP 126 <xref target="RFC4786"></xref>.</t> | ||||
| </list></t> | ||||
| <section anchor="anycast-signaling-considerations" title="Anycast Signaling Cons | ||||
| iderations"> | ||||
| <t>As long as network configuration remains stable, anycast DOTS signaling is to | ||||
| the individual DOTS client indistinct from direct signaling. However, the | ||||
| operational challenges inherent in anycast signaling are anything but | ||||
| negligible, and DOTS server operators must carefully weigh the risks against the | ||||
| benefits before deploying.</t> | ||||
| <t>While the DOTS signal channel primarily operates over UDP per SIG-001 in | ||||
| <xref target="RFC8612"></xref>, the signal channel also requires mutual authenti | ||||
| cation between DOTS | ||||
| agents, with associated security state on both ends.</t> | ||||
| <t>Network instability is of particular concern with anycast signaling, as DOTS | ||||
| signal channels are expected to be long-lived, and potentially operating under | ||||
| congested network conditions caused by a volumetric DDoS attack.</t> | ||||
| <t>For example, a network configuration altering the route to the DOTS server | ||||
| during active anycast signaling may cause the DOTS client to send messages to a | ||||
| DOTS server other than the one with which it initially established a signaling | ||||
| session. That second DOTS server might not have the security state of the | ||||
| existing session, forcing the DOTS client to initialize a new DOTS session. | ||||
| This challenge might in part be mitigated by use of resumption via a PSK in TLS | ||||
| 1.3 <xref target="RFC8446"></xref> and DTLS 1.3 <xref target="I-D.ietf-tls-dtls1 | ||||
| 3"></xref> (session resumption in TLS | ||||
| 1.2 <xref target="RFC5246"></xref> and DTLS 1.2 <xref target="RFC6347"></xref>), | ||||
| but keying material must be available to | ||||
| all DOTS servers sharing the anycast Service Address in that case which has oper | ||||
| ational challenges of its own.</t> | ||||
| <t>While the DOTS client will try to establish a new DOTS session with the | ||||
| DOTS server now acting as the anycast DOTS Service Address, the link between | ||||
| DOTS client and server may be congested with attack traffic, making signal | ||||
| session establishment difficult. In such a scenario, anycast Service Address | ||||
| instability becomes a sort of signal session flapping, with obvious negative | ||||
| consequences for the DOTS deployment.</t> | ||||
| <t>Anycast signaling deployments similarly must also take into account active | ||||
| mitigations. Active mitigations initiated through a DOTS session may involve | ||||
| diverting traffic to a scrubbing center. If the DOTS session flaps due to | ||||
| anycast changes as described above, mitigation may also flap as the DOTS servers | ||||
| sharing the anycast DOTS service address toggles mitigation on detecting | ||||
| DOTS session loss, depending on whether the client has configured | ||||
| mitigation on loss of signal (<xref target="auto-mit-signal-loss"/>).</t> | ||||
| </section> | ||||
| </section> | ||||
| <section anchor="nat-signaling" title="Signaling Considerations for Network Addr | ||||
| ess Translation"> | ||||
| <t>Network address translators (NATs) are expected to be a common feature of DOT | ||||
| S | ||||
| deployments. The Middlebox Traversal Guidelines in <xref target="RFC8085"></xref | ||||
| > include general | ||||
| NAT considerations that are applicable to DOTS deployments when the signal chann | ||||
| el is established | ||||
| over UDP.</t> | ||||
| <t>Additional DOTS-specific considerations arise when NATs are part of the DOTS | ||||
| architecture. For example, DDoS attack detection behind a NAT will detect | ||||
| attacks against internal addresses. A DOTS client subsequently asked to request | ||||
| mitigation for the attacked scope of addresses cannot reasonably perform the | ||||
| task, due to the lack of externally routable addresses in the mitigation scope.< | ||||
| /t> | ||||
| <t>The following considerations do not cover all possible scenarios, but are mea | <t>DOTS clients involved in recursive signaling must be able to withdr | |||
| nt | aw requests | |||
| rather to highlight anticipated common issues when signaling through NATs.</t> | for mitigation without warning or justification per SIG-006 in <xref target="RFC | |||
| 8612" format="default"/>.</t> | ||||
| <t>Operators recursing mitigation requests <bcp14>MAY</bcp14> | ||||
| maintain the recursed mitigation for a brief protocol-defined | ||||
| period in the event the DOTS client originating the mitigation | ||||
| withdraws its request for help, as per the discussion of managing | ||||
| mitigation toggling in SIG-006 of <xref target="RFC8612" | ||||
| format="default"/>.</t> | ||||
| <t>Deployment of recursive signaling may result in traffic | ||||
| redirection, examination, and mitigation extending beyond the initial | ||||
| bilateral relationship between DOTS client and DOTS server. As such, | ||||
| client control over the network path of mitigated traffic may be | ||||
| reduced. DOTS client operators should be aware of any privacy | ||||
| concerns and work with DOTS server operators employing recursive | ||||
| signaling to ensure shared sensitive material is suitably | ||||
| protected. Typically, there is a contractual SLA negotiated among the | ||||
| DOTS client domain, the recursed domain, | ||||
| and the recursing domain to meet the privacy requirements of the | ||||
| DOTS client domain and authorization for the recursing domain to | ||||
| request mitigation for the resources controlled by the DOTS client | ||||
| domain. </t> | ||||
| </section> | ||||
| <section anchor="direct-provisioning-of-internal-to-external-address-mappings" t | <section anchor="anycast-signaling" numbered="true" toc="default"> | |||
| itle="Direct Provisioning of Internal-to-External Address Mappings"> | <name>Anycast Signaling</name> | |||
| <t>The DOTS architecture does not assume the availability of anycast | ||||
| within a DOTS deployment, but neither does the architecture exclude | ||||
| it. Domains operating DOTS servers <bcp14>MAY</bcp14> deploy DOTS | ||||
| servers with an anycast Service Address as described in BCP 126 | ||||
| <xref target="RFC4786" format="default"/>. In such a deployment, | ||||
| DOTS clients connecting to the DOTS Service Address may be | ||||
| communicating with distinct DOTS servers, depending on the network | ||||
| configuration at the time the DOTS clients connect. Among other | ||||
| benefits, anycast signaling potentially offers the following:</t> | ||||
| <ul spacing="normal"> | ||||
| <li>Simplified DOTS client configuration, including service | ||||
| discovery through the methods described in <xref target="RFC7094" | ||||
| format="default"/>. In this scenario, the "instance discovery" | ||||
| message would be a DOTS client initiating a DOTS session to the | ||||
| DOTS server anycast Service Address, to which the DOTS server | ||||
| would reply with a redirection to the DOTS server unicast address | ||||
| the client should use for DOTS.</li> | ||||
| <li>Region- or customer-specific deployments, in which the DOTS | ||||
| Service Addresses route to distinct DOTS servers depending on the | ||||
| client region or the customer network in which a DOTS client | ||||
| resides.</li> | ||||
| <li>Operational resiliency, spreading DOTS signaling traffic | ||||
| across the DOTS server domain's networks, and thereby also | ||||
| reducing the potential attack surface, as described in BCP 126 | ||||
| <xref target="RFC4786" format="default"/>.</li> | ||||
| </ul> | ||||
| <section anchor="anycast-signaling-considerations" numbered="true" toc | ||||
| ="default"> | ||||
| <name>Anycast Signaling Considerations</name> | ||||
| <t>As long as network configuration remains stable, anycast DOTS | ||||
| signaling is to the individual DOTS client indistinct from direct | ||||
| signaling. However, the operational challenges inherent in anycast | ||||
| signaling are anything but negligible, and DOTS server operators | ||||
| must carefully weigh the risks against the benefits before | ||||
| deploying.</t> | ||||
| <t>While the DOTS signal channel primarily operates over UDP per | ||||
| SIG-001 in <xref target="RFC8612" format="default"/>, the signal | ||||
| channel also requires mutual authentication between DOTS agents, | ||||
| with associated security state on both ends.</t> | ||||
| <t>Network instability is of particular concern with anycast | ||||
| signaling, as DOTS signal channels are expected to be long lived | ||||
| and potentially operating under congested network conditions | ||||
| caused by a volumetric DDoS attack.</t> | ||||
| <t>For example, a network configuration altering the route to the | ||||
| DOTS server during active anycast signaling may cause the DOTS | ||||
| client to send messages to a DOTS server other than the one with | ||||
| which it initially established a signaling session. That second | ||||
| DOTS server might not have the security state of the existing | ||||
| session, forcing the DOTS client to initialize a new DOTS session. | ||||
| This challenge might in part be mitigated by use of resumption via | ||||
| a pre-shared key (PSK) in TLS 1.3 <xref target="RFC8446" | ||||
| format="default"/> and DTLS 1.3 <xref target="I-D.ietf-tls-dtls13" | ||||
| format="default"/> (session resumption in TLS 1.2 <xref | ||||
| target="RFC5246" format="default"/> and DTLS 1.2 <xref | ||||
| target="RFC6347" format="default"/>), but keying material must | ||||
| then be available to all DOTS servers sharing the anycast Service | ||||
| Address, which has operational challenges of its own.</t> | ||||
| <t>Operators may circumvent the problem of translating internal addresses or | <t>While the DOTS client will try to establish a new DOTS session | |||
| prefixes to externally routable mitigation scopes by directly provisioning the | with the DOTS server now acting as the anycast DOTS Service | |||
| mappings of external addresses to internal protected resources on the DOTS | Address, the link between DOTS client and server may be congested | |||
| client. When the operator requests mitigation scoped for internal addresses, | with attack traffic, making signal session establishment | |||
| directly or through automated means, the DOTS client looks up the matching | difficult. In such a scenario, anycast Service Address instability | |||
| external addresses or prefixes, and issues a mitigation request scoped to that | becomes a sort of signal session flapping, with obvious negative | |||
| externally routable information.</t> | consequences for the DOTS deployment.</t> | |||
| <t>Anycast signaling deployments similarly must also take into | ||||
| account active mitigations. Active mitigations initiated through a | ||||
| DOTS session may involve diverting traffic to a scrubbing | ||||
| center. If the DOTS session flaps due to anycast changes as | ||||
| described above, mitigation may also flap as the DOTS servers | ||||
| sharing the anycast DOTS service address toggles mitigation on | ||||
| detecting DOTS session loss, depending on whether or not the client | ||||
| has | ||||
| configured mitigation on loss of signal (<xref | ||||
| target="auto-mit-signal-loss" format="default"/>).</t> | ||||
| </section> | ||||
| </section> | ||||
| <t>When directly provisioning the address mappings, operators must ensure the | <section anchor="nat-signaling" numbered="true" toc="default"> | |||
| mappings remain up to date, or risk losing the ability to request accurate | <name>Signaling Considerations for Network Address Translation</name> | |||
| <t>Network address translators (NATs) are expected to be a common | ||||
| feature of DOTS deployments. The middlebox traversal guidelines in | ||||
| <xref target="RFC8085" format="default"/> include general NAT | ||||
| considerations that are applicable to DOTS deployments when the | ||||
| signal channel is established over UDP.</t> | ||||
| <t>Additional DOTS-specific considerations arise when NATs are part | ||||
| of the DOTS architecture. For example, DDoS attack detection behind | ||||
| a NAT will detect attacks against internal addresses. A DOTS client | ||||
| subsequently asked to request mitigation for the attacked scope of | ||||
| addresses cannot reasonably perform the task, due to the lack of | ||||
| externally routable addresses in the mitigation scope.</t> | ||||
| <t>The following considerations do not cover all possible scenarios | ||||
| but are meant rather to highlight anticipated common issues when | ||||
| signaling through NATs.</t> | ||||
| <section anchor="direct-provisioning-of-internal-to-external-address-m | ||||
| appings" numbered="true" toc="default"> | ||||
| <name>Direct Provisioning of Internal-to-External Address Mappings</ | ||||
| name> | ||||
| <t>Operators may circumvent the problem of translating internal | ||||
| addresses or prefixes to externally routable mitigation scopes by | ||||
| directly provisioning the mappings of external addresses to | ||||
| internal protected resources on the DOTS client. When the operator | ||||
| requests mitigation scoped for internal addresses, directly or | ||||
| through automated means, the DOTS client looks up the matching | ||||
| external addresses or prefixes and issues a mitigation request | ||||
| scoped to that externally routable information.</t> | ||||
| <t>When directly provisioning the address mappings, operators must e | ||||
| nsure the | ||||
| mappings remain up to date or they risk losing the ability to request accurate | ||||
| mitigation scopes. To that aim, the DOTS client can rely on mechanisms such as | mitigation scopes. To that aim, the DOTS client can rely on mechanisms such as | |||
| <xref target="RFC8512"></xref> or <xref target="RFC7658"></xref> to retrieve sta tic explicit mappings. This document does not | <xref target="RFC8512" format="default"/> or <xref target="RFC7658" format="defa ult"/> to retrieve static explicit mappings. This document does not | |||
| prescribe the method by which mappings are maintained once they are provisioned | prescribe the method by which mappings are maintained once they are provisioned | |||
| on the DOTS client.</t> | on the DOTS client.</t> | |||
| </section> | ||||
| </section> | <section anchor="resolving-public-mitigation-scope-with-port-control-p | |||
| <section anchor="resolving-public-mitigation-scope-with-port-control-protocol-pc | rotocol-pcp" numbered="true" toc="default"> | |||
| p" title="Resolving Public Mitigation Scope with Port Control Protocol (PCP)"> | <name>Resolving Public Mitigation Scope with Port Control Protocol ( | |||
| PCP)</name> | ||||
| <t>Port Control Protocol (PCP) <xref target="RFC6887"></xref> may be used to ret | <t>Port Control Protocol (PCP) <xref target="RFC6887" format="defaul | |||
| rieve the external | t"/> may be used to retrieve the external | |||
| addresses/prefixes and/or port numbers if the NAT function embeds a PCP server.< /t> | addresses/prefixes and/or port numbers if the NAT function embeds a PCP server.< /t> | |||
| <t>A DOTS client can use the information retrieved by means of PCP t | ||||
| <t>A DOTS client can use the information retrieved by means of PCP to feed the D | o feed the DOTS | |||
| OTS | ||||
| protocol(s) messages that will be sent to a DOTS server. These messages will | protocol(s) messages that will be sent to a DOTS server. These messages will | |||
| convey the external addresses/prefixes as set by the NAT.</t> | convey the external addresses/prefixes as set by the NAT.</t> | |||
| <t>PCP also enables discovery and configuration of the lifetime of p | ||||
| <t>PCP also enables discovery and configuration of the lifetime of port mappings | ort mappings | |||
| instantiated in intermediate NAT devices. Discovery of port mapping lifetimes | instantiated in intermediate NAT devices. Discovery of port mapping lifetimes | |||
| can reduce the dependency on heartbeat messages to maintain mappings, and | can reduce the dependency on heartbeat messages to maintain mappings and, | |||
| therefore reduce the load on DOTS servers and the network.</t> | therefore, reduce the load on DOTS servers and the network.</t> | |||
| </section> | ||||
| </section> | <section anchor="resolving-public-mitigation-scope-with-session-traver | |||
| <section anchor="resolving-public-mitigation-scope-with-session-traversal-utilit | sal-utilities-stun" numbered="true" toc="default"> | |||
| ies-stun" title="Resolving Public Mitigation Scope with Session Traversal Utilit | <name>Resolving Public Mitigation Scope with Session Traversal Utili | |||
| ies (STUN)"> | ties (STUN)</name> | |||
| <t>An internal resource, e.g., a web server, can discover its reflex | ||||
| <t>An internal resource, e.g., a Web server, can discover its reflexive transpor | ive transport | |||
| t | ||||
| address through a STUN Binding request/response transaction, as described in | address through a STUN Binding request/response transaction, as described in | |||
| <xref target="I-D.ietf-tram-stunbis"></xref>. After learning its reflexive trans port address from the STUN server, | <xref target="RFC8489" format="default"/>. After learning its reflexive transpor t address from the STUN server, | |||
| the internal resource can export its reflexive transport address and internal | the internal resource can export its reflexive transport address and internal | |||
| transport address to the DOTS client, thereby enabling the DOTS client to | transport address to the DOTS client, thereby enabling the DOTS client to | |||
| request mitigation with the correct external scope, as depicted in | request mitigation with the correct external scope, as depicted in | |||
| <xref target="fig-nat-stun"/>. The mechanism for providing the DOTS client with the reflexive | <xref target="fig-nat-stun" format="default"/>. The mechanism for providing the DOTS client with the reflexive | |||
| transport address and internal transport address is unspecified in this | transport address and internal transport address is unspecified in this | |||
| document.</t> | document.</t> | |||
| <t>In order to prevent an attacker from modifying the STUN messages | ||||
| <t>In order to prevent an attacker from modifying the STUN messages in transit, | in transit, the | |||
| the | ||||
| STUN client and server must use the message-integrity mechanism discussed in | STUN client and server must use the message-integrity mechanism discussed in | |||
| Section 9 of <xref target="I-D.ietf-tram-stunbis"></xref> or use STUN over DTLS <xref target="RFC7350"></xref> or use STUN over TLS. | <xref target="RFC8489" sectionFormat="of" section="9"/> or use STUN over DTLS <x ref target="RFC7350" format="default"/> or STUN over TLS. | |||
| If the STUN client is behind a NAT that performs Endpoint-Dependent Mapping | If the STUN client is behind a NAT that performs Endpoint-Dependent Mapping | |||
| <xref target="RFC5128"></xref>, the internal service cannot provide the DOTS cli ent with the | <xref target="RFC5128" format="default"/>, the internal service cannot provide t he DOTS client with the | |||
| reflexive transport address discovered using STUN. The behavior of a NAT between | reflexive transport address discovered using STUN. The behavior of a NAT between | |||
| the STUN client and the STUN server could be discovered using the experimental | the STUN client and the STUN server could be discovered using the experimental | |||
| techniques discussed in <xref target="RFC5780"></xref>, but note that there is c urrently no | techniques discussed in <xref target="RFC5780" format="default"/>, but note that there is currently no | |||
| standardized way for a STUN client to reliably determine if it is behind a NAT | standardized way for a STUN client to reliably determine if it is behind a NAT | |||
| that performs Endpoint-Dependent Mapping.</t> | that performs Endpoint-Dependent Mapping.</t> | |||
| <figure anchor="fig-nat-stun"> | ||||
| <figure title="Resolving mitigation scope with STUN" anchor="fig-nat-stun"><artw | <name>Resolving Mitigation Scope with STUN</name> | |||
| ork><![CDATA[ | <artwork name="" type="" align="left" alt=""><![CDATA[ | |||
| Binding Binding | Binding Binding | |||
| +--------+ request +---+ request +--------+ | +--------+ request +---+ request +--------+ | |||
| | STUN |<----------| N |<----------| STUN | | | STUN |<----------| N |<----------| STUN | | |||
| | server | | A | | client | | | server | | A | | client | | |||
| | |---------->| T |---------->| | | | |---------->| T |---------->| | | |||
| +--------+ Binding +---+ Binding +--------+ | +--------+ Binding +---+ Binding +--------+ | |||
| response response | | response response | | |||
| | reflexive transport address | | reflexive transport address | |||
| | & internal transport address | | & internal transport address | |||
| v | v | |||
| +--------+ | +--------+ | |||
| | DOTS | | | DOTS | | |||
| | client | | | client | | |||
| +--------+ | +--------+ | |||
| ]]></artwork></figure> | ]]></artwork> | |||
| </figure> | ||||
| </section> | </section> | |||
| <section anchor="resolving-requested-mitigation-scope-with-dns" title="Resolving | <section anchor="resolving-requested-mitigation-scope-with-dns" number | |||
| Requested Mitigation Scope with DNS"> | ed="true" toc="default"> | |||
| <name>Resolving Requested Mitigation Scope with DNS</name> | ||||
| <t>DOTS supports mitigation scoped to DNS names. As discussed in <xref target="R | <t>DOTS supports mitigation scoped to DNS names. As discussed in <xr | |||
| FC3235"></xref>, | ef target="RFC3235" format="default"/>, | |||
| using DNS names instead of IP addresses potentially avoids the address | using DNS names instead of IP addresses potentially avoids the address | |||
| translation problem, as long as the same domain name is internally and externall y resolvable. | translation problem, as long as the same domain name is internally and externall y resolvable. | |||
| For example, a detected attack's internal target address can be mapped to a DNS name through a reverse lookup. The DNS name | For example, a detected attack's internal target address can be mapped to a DNS name through a reverse lookup. The DNS name | |||
| returned by the reverse lookup can then be provided to the DOTS client as the | returned by the reverse lookup can then be provided to the DOTS client as the | |||
| external scope for mitigation. For the reverse DNS lookup, DNS Security | external scope for mitigation. For the reverse DNS lookup, DNS Security | |||
| Extensions (DNSSEC) <xref target="RFC4033"></xref> must be used where the authe nticity of response | Extensions (DNSSEC) <xref target="RFC4033" format="default"/> must be used wher e the authenticity of response | |||
| is critical.</t> | is critical.</t> | |||
| </section> | ||||
| </section> | </section> | |||
| </section> | </section> | |||
| </section> | <section anchor="mit-request-triggers" numbered="true" toc="default"> | |||
| <section anchor="mit-request-triggers" title="Triggering Requests for Mitigation | <name>Triggering Requests for Mitigation</name> | |||
| "> | <t><xref target="RFC8612" format="default"/> places no limitation on the | |||
| circumstances in which a DOTS client | ||||
| <t><xref target="RFC8612"></xref> places no limitation on the circumstances in w | ||||
| hich a DOTS client | ||||
| operator may request mitigation, nor does it demand justification for any | operator may request mitigation, nor does it demand justification for any | |||
| mitigation request, thereby reserving operational control over DDoS defense for | mitigation request, thereby reserving operational control over DDoS defense for | |||
| the domain requesting mitigation. This architecture likewise does not prescribe | the domain requesting mitigation. This architecture likewise does not prescribe | |||
| the network conditions and mechanisms triggering a mitigation request from a | the network conditions and mechanisms triggering a mitigation request from a | |||
| DOTS client.</t> | DOTS client.</t> | |||
| <t>However, considering selected possible mitigation triggers from an architectu ral | <t>However, considering selected possible mitigation triggers from an ar chitectural | |||
| perspective offers a model for alternative or unanticipated triggers for DOTS | perspective offers a model for alternative or unanticipated triggers for DOTS | |||
| deployments. In all cases, what network conditions merit a mitigation request | deployments. In all cases, what network conditions merit a mitigation request | |||
| are at the discretion of the DOTS client operator.</t> | are at the discretion of the DOTS client operator.</t> | |||
| <t>The mitigation request itself is defined by DOTS; however, the interf | ||||
| <t>The mitigation request itself is defined by DOTS, however the interfaces | aces | |||
| required to trigger the mitigation request in the following scenarios are | required to trigger the mitigation request in the following scenarios are | |||
| implementation-specific.</t> | implementation specific.</t> | |||
| <section anchor="manual-mit-request" numbered="true" toc="default"> | ||||
| <section anchor="manual-mit-request" title="Manual Mitigation Request"> | <name>Manual Mitigation Request</name> | |||
| <t>A DOTS client operator may manually prepare a request for mitigatio | ||||
| <t>A DOTS client operator may manually prepare a request for mitigation, includi | n, including | |||
| ng | ||||
| scope and duration, and manually instruct the DOTS client to send the mitigation | scope and duration, and manually instruct the DOTS client to send the mitigation | |||
| request to the DOTS server. In context, a manual request is a request directly | request to the DOTS server. In context, a manual request is a request directly | |||
| issued by the operator without automated decision-making performed by a device | issued by the operator without automated decision making performed by a device | |||
| interacting with the DOTS client. Modes of manual mitigation requests include | interacting with the DOTS client. Modes of manual mitigation requests include | |||
| an operator entering a command into a text interface, or directly interacting | an operator entering a command into a text interface, or directly interacting | |||
| with a graphical interface to send the request.</t> | with a graphical interface to send the request.</t> | |||
| <t>An operator might do this, for example, in response to notice of an | ||||
| <t>An operator might do this, for example, in response to notice of an attack | attack | |||
| delivered by attack detection equipment or software, and the alerting detector | delivered by attack detection equipment or software, and the alerting detector | |||
| lacks interfaces or is not configured to use available interfaces to translate | lacks interfaces or is not configured to use available interfaces to translate | |||
| the alert to a mitigation request automatically.</t> | the alert to a mitigation request automatically.</t> | |||
| <t>In a variation of the above scenario, the operator may have preconf | ||||
| <t>In a variation of the above scenario, the operator may have preconfigured on | igured on the | |||
| the | ||||
| DOTS client mitigation requests for various resources in the operator's domain. | DOTS client mitigation requests for various resources in the operator's domain. | |||
| When notified of an attack, the DOTS client operator manually instructs the DOTS | When notified of an attack, the DOTS client operator manually instructs the DOTS | |||
| client to send the relevant preconfigured mitigation request for the resources | client to send the relevant preconfigured mitigation request for the resources | |||
| under attack.</t> | under attack.</t> | |||
| <t>A further variant involves recursive signaling, as described in | ||||
| <t>A further variant involves recursive signaling, as described in | <xref target="recursive-signaling" format="default"/>. The DOTS client in this c | |||
| <xref target="recursive-signaling"/>. The DOTS client in this case is the second | ase is the second half of a | |||
| half of a | ||||
| DOTS gateway (back-to-back DOTS server and client). As in the previous scenario, | DOTS gateway (back-to-back DOTS server and client). As in the previous scenario, | |||
| the scope and duration of the mitigation request are pre-existing, but in this | the scope and duration of the mitigation request are preexisting but, in this | |||
| case are derived from the mitigation request received from a downstream DOTS | case, are derived from the mitigation request received from a downstream DOTS | |||
| client by the DOTS server. Assuming the preconditions required by | client by the DOTS server. Assuming the preconditions required by | |||
| <xref target="recursive-signaling"/> are in place, the DOTS gateway operator may at any time | <xref target="recursive-signaling" format="default"/> are in place, the DOTS gat eway operator may at any time | |||
| manually request mitigation from an upstream DOTS server, sending a mitigation | manually request mitigation from an upstream DOTS server, sending a mitigation | |||
| request derived from the downstream DOTS client's request.</t> | request derived from the downstream DOTS client's request.</t> | |||
| <t>The motivations for a DOTS client operator to request mitigation ma | ||||
| <t>The motivations for a DOTS client operator to request mitigation manually are | nually are | |||
| not prescribed by this architecture, but are expected to include some of the | not prescribed by this architecture but are expected to include some of the | |||
| following:</t> | following:</t> | |||
| <ul spacing="normal"> | ||||
| <t><list style="symbols"> | <li>Notice of an attack delivered via email or alternative messaging | |||
| <t>Notice of an attack delivered via e-mail or alternative messaging</t> | </li> | |||
| <t>Notice of an attack delivered via phone call</t> | <li>Notice of an attack delivered via phone call</li> | |||
| <t>Notice of an attack delivered through the interface(s) of networking | <li>Notice of an attack delivered through the interface(s) of networ | |||
| monitoring software deployed in the operator's domain</t> | king | |||
| <t>Manual monitoring of network behavior through network monitoring software</ | monitoring software deployed in the operator's domain</li> | |||
| t> | <li>Manual monitoring of network behavior through network monitoring | |||
| </list></t> | software</li> | |||
| </ul> | ||||
| </section> | </section> | |||
| <section anchor="auto-conditional-mit" title="Automated Conditional Mitigation R | <section anchor="auto-conditional-mit" numbered="true" toc="default"> | |||
| equest"> | <name>Automated Conditional Mitigation Request</name> | |||
| <t>Unlike manual mitigation requests, which depend entirely on the DOT | ||||
| <t>Unlike manual mitigation requests, which depend entirely on the DOTS client | S client | |||
| operator's capacity to react with speed and accuracy to every detected or | operator's capacity to react with speed and accuracy to every detected or | |||
| detectable attack, mitigation requests triggered by detected attack conditions | detectable attack, mitigation requests triggered by detected attack conditions | |||
| reduce the operational burden on the DOTS client operator, and minimize the | reduce the operational burden on the DOTS client operator and minimize the | |||
| latency between attack detection and the start of mitigation.</t> | latency between attack detection and the start of mitigation.</t> | |||
| <t>Mitigation requests are triggered in this scenario by operator-spec | ||||
| <t>Mitigation requests are triggered in this scenario by operator-specified netw | ified network | |||
| ork | conditions. Attack detection is deployment specific and not constrained by this | |||
| conditions. Attack detection is deployment-specific, and not constrained by this | architecture. Similarly, the specifics of a condition are left to the discretion | |||
| architecture. Similarly the specifics of a condition are left to the discretion | ||||
| of the operator, though common conditions meriting mitigation include the | of the operator, though common conditions meriting mitigation include the | |||
| following:</t> | following:</t> | |||
| <ul spacing="normal"> | ||||
| <t><list style="symbols"> | <li>Detected attack exceeding a rate in packets per second (pps).</l | |||
| <t>Detected attack exceeding a rate in packets per second (pps).</t> | i> | |||
| <t>Detected attack exceeding a rate in bytes per second (bps).</t> | <li>Detected attack exceeding a rate in bytes per second (bps).</li> | |||
| <t>Detected resource exhaustion in an attack target.</t> | <li>Detected resource exhaustion in an attack target.</li> | |||
| <t>Detected resource exhaustion in the local domain's mitigator.</t> | <li>Detected resource exhaustion in the local domain's mitigator.</l | |||
| <t>Number of open connections to an attack target.</t> | i> | |||
| <t>Number of attack sources in a given attack.</t> | <li>Number of open connections to an attack target.</li> | |||
| <t>Number of active attacks against targets in the operator's domain.</t> | <li>Number of attack sources in a given attack.</li> | |||
| <t>Conditional detection developed through arbitrary statistical analysis or d | <li>Number of active attacks against targets in the operator's domai | |||
| eep | n.</li> | |||
| learning techniques.</t> | <li>Conditional detection developed through arbitrary statistical an | |||
| <t>Any combination of the above.</t> | alysis or deep | |||
| </list></t> | learning techniques.</li> | |||
| <li>Any combination of the above.</li> | ||||
| <t>When automated conditional mitigation requests are enabled, violations of any | </ul> | |||
| of | <t>When automated conditional mitigation requests are enabled, violati | |||
| ons of any of | ||||
| the above conditions, or any additional operator-defined conditions, will | the above conditions, or any additional operator-defined conditions, will | |||
| trigger a mitigation request from the DOTS client to the DOTS server. The | trigger a mitigation request from the DOTS client to the DOTS server. The | |||
| interfaces between the application detecting the condition violation and the | interfaces between the application detecting the condition violation and the | |||
| DOTS client are implementation-specific.</t> | DOTS client are implementation specific.</t> | |||
| </section> | ||||
| </section> | <section anchor="auto-mit-signal-loss" numbered="true" toc="default"> | |||
| <section anchor="auto-mit-signal-loss" title="Automated Mitigation on Loss of Si | <name>Automated Mitigation on Loss of Signal</name> | |||
| gnal"> | <t>To maintain a DOTS signal channel session, the DOTS client and the | |||
| DOTS server | ||||
| <t>To maintain a DOTS signal channel session, the DOTS client and the DOTS serve | ||||
| r | ||||
| exchange regular but infrequent messages across the signal channel. In the | exchange regular but infrequent messages across the signal channel. In the | |||
| absence of an attack, the probability of message loss in the signaling channel | absence of an attack, the probability of message loss in the signaling channel | |||
| should be extremely low. Under attack conditions, however, some signal loss may | should be extremely low. Under attack conditions, however, some signal loss may | |||
| be anticipated as attack traffic congests the link, depending on the attack | be anticipated as attack traffic congests the link, depending on the attack | |||
| type.</t> | type.</t> | |||
| <t>While <xref target="RFC8612" format="default"/> specifies the DOTS | ||||
| <t>While <xref target="RFC8612"></xref> specifies the DOTS protocol be robust wh | protocol be robust when signaling under | |||
| en signaling under | ||||
| attack conditions, there are nevertheless scenarios in which the DOTS signal is | attack conditions, there are nevertheless scenarios in which the DOTS signal is | |||
| lost in spite of protocol best efforts. To handle such scenarios, a DOTS | lost in spite of protocol best efforts. To handle such scenarios, a DOTS | |||
| operator may request one or more mitigations which are triggered only when the | operator may request one or more mitigations, which are triggered only when the | |||
| DOTS server ceases receiving DOTS client heartbeats beyond the miss count or | DOTS server ceases receiving DOTS client heartbeats beyond the miss count or | |||
| interval permitted by the protocol.</t> | interval permitted by the protocol.</t> | |||
| <t>The impact of mitigating due to loss of signal in either direction | ||||
| <t>The impact of mitigating due to loss of signal in either direction must be | must be | |||
| considered carefully before enabling it. Attack traffic congesting links is not | considered carefully before enabling it. Attack traffic congesting links is not | |||
| the only reason why signal could be lost, and as such mitigation requests trigge red | the only reason why signal could be lost, and as such, mitigation requests trigg ered | |||
| by signal channel degradation in either direction may incur unnecessary costs du e to scrubbing traffic, | by signal channel degradation in either direction may incur unnecessary costs du e to scrubbing traffic, | |||
| adversely impact network performance and operational expense alike.</t> | adversely impact network performance and operational expense alike.</t> | |||
| </section> | ||||
| </section> | </section> | |||
| </section> | </section> | |||
| </section> | <section anchor="iana-considerations" numbered="true" toc="default"> | |||
| <section anchor="iana-considerations" title="IANA Considerations"> | <name>IANA Considerations</name> | |||
| <t>This document has no IANA actions.</t> | ||||
| <t>This document has no actions for IANA.</t> | </section> | |||
| <section anchor="security-considerations" numbered="true" toc="default"> | ||||
| </section> | <name>Security Considerations</name> | |||
| <section anchor="security-considerations" title="Security Considerations"> | <t>This section describes identified security considerations for the | |||
| DOTS architecture.</t> | ||||
| <t>This section describes identified security considerations for the DOTS | <t>Security considerations and security requirements discussed in <xref ta | |||
| architecture.</t> | rget="RFC8612" format="default"/> need to | |||
| <t>Security considerations and security requirements discussed in <xref target=" | ||||
| RFC8612"></xref> need to | ||||
| be taken into account.</t> | be taken into account.</t> | |||
| <t>DOTS is at risk from three primary attack vectors: agent | ||||
| <t>DOTS is at risk from three primary attack vectors: agent impersonation, | impersonation, traffic injection, and signal blocking. These vectors | |||
| traffic injection and signal blocking. These vectors may be exploited | may be exploited individually or in concert by an attacker to confuse, | |||
| individually or in concert by an attacker to confuse, disable, take information | disable, take information from, or otherwise inhibit DOTS agents.</t> | |||
| from, or otherwise inhibit DOTS agents.</t> | <t>Any attacker with the ability to impersonate a legitimate DOTS client | |||
| or server or, indeed, inject false messages into the stream may | ||||
| <t>Any attacker with the ability to impersonate a legitimate DOTS client or serv | potentially trigger/withdraw traffic redirection, trigger/cancel | |||
| er | mitigation activities or subvert drop-/accept-lists. From an | |||
| or, indeed, inject false messages into the stream may potentially | architectural standpoint, operators <bcp14>MUST</bcp14> ensure | |||
| trigger/withdraw traffic redirection, trigger/cancel mitigation activities or | conformance to the security requirements defined in <xref | |||
| subvert drop-/accept-lists. From an architectural standpoint, operators MUST | target="RFC8612" sectionFormat="of" section="2.4"/> to secure data in | |||
| ensure conformance to the security requirements defined in Section 2.4 of | transit. Similarly, as the received data may contain network topology, | |||
| <xref target="RFC8612"></xref> to secure data in transit. Similarly, as the rece | telemetry, and threat and mitigation information that could be considered | |||
| ived data may | sensitive in certain environments, it <bcp14>SHOULD</bcp14> be protected | |||
| contain network topology, telemetry, threat and mitigation information which cou | at rest per required local policy. </t> | |||
| ld be considered | <t>DOTS agents <bcp14>MUST</bcp14> perform mutual authentication to | |||
| sensitive in certain environment, it SHOULD be protected at rest per required | ensure authenticity of each other, and DOTS servers <bcp14>MUST</bcp14> | |||
| local policy. </t> | verify that the requesting DOTS client is authorized to request | |||
| mitigation for specific target resources (see <xref target="dots-server" | ||||
| <t>DOTS agents MUST perform mutual authentication to ensure authenticity of each | format="default"/>).</t> | |||
| other and DOTS servers MUST verify that the | <t>A man-in-the-middle (MITM) attacker can intercept and drop packets, | |||
| requesting DOTS client is authorized to request mitigation for specific target r | preventing the DOTS peers from receiving some or all of the DOTS | |||
| esources (see <xref target="dots-server"></xref>).</t> | messages; automated mitigation on loss of signal can be used as a | |||
| countermeasure but with risks discussed in <xref | ||||
| <t>An MITM attacker can intercept and drop packets, preventing the DOTS peers fr | target="auto-mit-signal-loss" format="default"/>.</t> | |||
| om receiving some | <t>An attacker with control of a DOTS client may negatively influence | |||
| or all of the DOTS messages, automated mitigation on loss of signal can be used | network traffic by requesting and withdrawing requests for mitigation | |||
| as a countermeasure | for particular prefixes, leading to route or DNS flapping. DOTS | |||
| but with risks discussed in <xref target="auto-mit-signal-loss"></xref>.</t> | operators should carefully monitor and audit DOTS clients to detect | |||
| misbehavior and deter misuse. | ||||
| <t>An attacker with control of a DOTS client may negatively | ||||
| influence network traffic by requesting and withdrawing requests for mitigation | ||||
| for particular prefixes, leading to route or DNS flapping. DOTS operators should | ||||
| carefully | ||||
| monitor and audit DOTS clients to detect misbehavior and deter misuse. | ||||
| </t> | </t> | |||
| <t>Any attack targeting the availability of DOTS servers may disrupt the | ||||
| ability of the system to receive and process DOTS signals resulting in | ||||
| failure to fulfill a mitigation request. DOTS servers | ||||
| <bcp14>MUST</bcp14> be given adequate protections in accordance with | ||||
| best current practices for network and host security.</t> | ||||
| </section> | ||||
| <t>Any attack targeting the availability of DOTS servers may disrupt the ability | </middle> | |||
| of the system to receive and process DOTS signals resulting in failure to | <back> | |||
| fulfill a mitigation request. DOTS servers MUST be given adequate protections, | ||||
| in accordance with best current practices for network and host security.</t> | ||||
| </section> | ||||
| <section anchor="contributors" title="Contributors"> | ||||
| <t><list style="hanging"> | ||||
| <t hangText='Mohamed Boucadair'><vspace blankLines='0'/> | ||||
| Orange</t> | ||||
| <t>mohamed.boucadair@orange.com</t> | ||||
| </list></t> | ||||
| <t><list style="hanging"> | ||||
| <t hangText='Christopher Gray'> | ||||
| Christopher_Gray3@cable.comcast.com</t> | ||||
| </list></t> | ||||
| </section> | <displayreference target="I-D.ietf-dots-use-cases" to="DOTS-USE-CASES"/> | |||
| <section anchor="acknowledgments" title="Acknowledgments"> | <displayreference target="I-D.ietf-tls-dtls13" to="DTLS-PROTOCOL"/> | |||
| <t>Thanks to Matt Richardson, Roman Danyliw, Frank Xialiang, Roland Dobbins, Wei | <references> | |||
| Pan, Kaname Nishizuka, Jon Shallow, Paul Kyzivat, Warren Kumari, Benjamin Kaduk, | <name>References</name> | |||
| and Mohamed Boucadair for their comments | <references> | |||
| and suggestions.</t> | <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.8174.xml"/> | ||||
| <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.4786.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.6887.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.4033.xml"/> | ||||
| </references> | ||||
| <references> | ||||
| <name>Informative References</name> | ||||
| <t>Special thanks to Roman Danyliw for the AD review. </t> | <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/refe rence.I-D.ietf-dots-use-cases.xml"/> | |||
| </section> | <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/refe rence.I-D.ietf-tls-dtls13.xml"/> | |||
| </middle> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R FC.8782.xml"/> | |||
| <back> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R FC.8783.xml"/> | |||
| <references title='Normative References'> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R FC.8738.xml"/> | |||
| &RFC2119; | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | |||
| &RFC8174; | FC.8489.xml"/> | |||
| &RFC8612; | ||||
| &RFC4786; | ||||
| &RFC6887; | ||||
| &RFC4033; | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.7350.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.8555.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.0768.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.0793.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.1035.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.2782.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.3235.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.3261.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.4271.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.4732.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.5128.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.5246.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.5780.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.6347.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.6763.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.7092.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.7094.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.8085.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.8446.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.8512.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.7658.xml"/> | ||||
| </references> | ||||
| </references> | </references> | |||
| <references title='Informative References'> | <section anchor="acknowledgments" numbered="false" toc="default"> | |||
| <name>Acknowledgments</name> | ||||
| <t>Thanks to <contact fullname="Matt Richardson"/>, <contact | ||||
| fullname="Roman Danyliw"/>, <contact fullname="Frank Xialiang"/>, | ||||
| <contact fullname="Roland Dobbins"/>, <contact fullname="Wei Pan"/>, | ||||
| <contact fullname="Kaname Nishizuka"/>, <contact fullname="Jon Shallow"/>, | ||||
| <contact fullname="Paul Kyzivat"/>, <contact fullname="Warren Kumari"/>, | ||||
| <contact fullname="Benjamin Kaduk"/>, and <contact fullname="Mohamed Bouca | ||||
| dair"/> for | ||||
| their comments and suggestions.</t> | ||||
| <t>Special thanks to <contact fullname="Roman Danyliw"/> for the AD review | ||||
| . </t> | ||||
| </section> | ||||
| &I-D.ietf-dots-use-cases; | <section anchor="contributors" numbered="false" toc="default"> | |||
| &I-D.ietf-tls-dtls13; | <name>Contributors</name> | |||
| &I-D.ietf-dots-signal-channel; | ||||
| &I-D.ietf-dots-data-channel; | ||||
| &I-D.ietf-acme-ip; | ||||
| &I-D.ietf-tram-stunbis; | ||||
| &RFC7350; | ||||
| &RFC8555; | ||||
| &RFC0768; | ||||
| &RFC0793; | ||||
| &RFC1035; | ||||
| &RFC2782; | ||||
| &RFC3235; | ||||
| &RFC3261; | ||||
| &RFC4271; | ||||
| &RFC4732; | ||||
| &RFC5128; | ||||
| &RFC5246; | ||||
| &RFC5780; | ||||
| &RFC6347; | ||||
| &RFC6763; | ||||
| &RFC7092; | ||||
| &RFC7094; | ||||
| &RFC8085; | ||||
| &RFC8446; | ||||
| &RFC8512; | ||||
| &RFC7658; | ||||
| </references> | <ul empty="true" spacing="compact"> | |||
| <li ><t><contact fullname="Mohamed Boucadair"/></t> | ||||
| </li> | ||||
| <li> | ||||
| <ul empty="true" spacing="compact"> | ||||
| <li>Orange | ||||
| </li> | ||||
| <li>mohamed.boucadair@orange.com | ||||
| </li> | ||||
| </ul> | ||||
| </li> | ||||
| </ul> | ||||
| </back> | <ul empty="true" spacing="compact"> | |||
| <li><t><contact fullname="Cristopher Gray"/></t> | ||||
| </li> | ||||
| <li> | ||||
| <ul empty="true" spacing="compact"> | ||||
| <!-- ##markdown-source: | <li>Christopher_Gray3@cable.comcast.com | |||
| H4sIALSi7lwAA919e3Pc2HHv/+dToLRVd8XsDCVS2pUsxylT4u5a8eoRUXud | </li> | |||
| lK2kMDMYEiYGmAtgSNGS8tlvv08fAENp77XjSmjXipzB4zz69PPX3fP5PPRl | </ul> | |||
| XxVPstOy69tyseuL1fy0qMu8mjfr+VnRXpXLInu1Lers7UVb5H12Vp7XeVXW | ||||
| 59nd01dvzw6yk3Z5UfbFst+1RcgXi7a4gufBV+k3q2ZZ5xt41arN1/28LPr1 | ||||
| fNX03Tx3V82PHoZV3sNVIeTwuifZWbHctWV/E67P+anh8vpJ9rzui7Yu+vkp | ||||
| Piws8/5JVtbrJoRls4KxPcl28OBuWZZhWz4JWdaul8Wq629wrjdFB5/0zdL9 | ||||
| Wtarou71g65p+7ZYd/b3zSb5E5ZqaRcvm80G7rVvyxpWx14D097k2y2NCT8J | ||||
| +a6/aFocE/7M5V+8DZ5wcpi9gHcXdVfU9g0v20m9aovria/bBidVrMq+ae3D | ||||
| poX3/dC0y2LblHVvn8PQi6J/Yn/H9y9hkSc/b1bF9Oe7um9vnmQ/17B7q+ys | ||||
| h33r7Otik5fVkyynUW900L89x48PYcmm5//2MHtTrFY3g7m/LdvdJq+K7jpv | ||||
| Bxfsn/2L5cm6KGZAK8vD/fPPvt8s8q67yX5sqnX2U1lfZk93HWxg12Wv8/Yy | ||||
| XZ/saV6f51XTwnN/n7d13ueXebpU2bff3b//6Gi8Ts/rVZkP1+eyqVd92X5u | ||||
| XX445P3Px3TxQ1VsNngcxxfQMjwru2Xzd9v/dc6j+u0Sh7F/gi8Ps7dFfr4r | ||||
| BrN7WV4Ov6BZPW+bGs4CDCEv67/b7IAL4dB+W8JoNjIYmOPh7nJ6lm8Os2fN | ||||
| Zts3w018Uy4vRl/x9l3kcHbav8EUZQ746kN59W+X/Dbap1A37Sbvyyu6+80P | ||||
| z46Pjn4lvz4+evTwSQjIct01z+enh5Gv77pivgR67JKv+qqbr+A/Rw/kUfcf | ||||
| fffYfv2Vfnp0/8G3+tpHj4/l1wfH9umD4++O5NeH9x/obQ+PH9mnjx4c26+P | ||||
| v5Nfvz061rd9e/zQPn3wWGf27aPH9+XX7x48fKS/Pn5svz76Tt/26P6vjuOv | ||||
| D/XXB9/qEx7ff6zjffzQ3vYYBqG/foe/hjCfz7N8AXubL/sQ3l6UHQqOHcqV | ||||
| bFV0SxDNRQfMNPPCMoPFz4quzxdV2V0gC4DDlsGuEh3C38FJ9YyletasM5Xq | ||||
| d09PG5Dftwr367KHJ+ODw6Lorwu4dNXgKzo4sBeFG2UDA6ybPuu2xbJc32Tb | ||||
| tgG52lQd0LH9EYr3KAjKpu5meCTg/KxgGkvkuOcZHOlVsaah+4nCqNuiAiqD | ||||
| uy7KLdwJ5LltahS6Aae8bGqQc30HQh8misNl/WNVbKvmBod3KGu8KVerqgjh | ||||
| WQNH931PC/aiAfqlp2cfvlryF3P4Yr6xLz6F30z+hBAXrIfVqItiRbtyUVRb | ||||
| nEtRr2gy57hiPW3gEk9LtnI7s6KdCbAzXbozed/ny0uY/P/ZlS3uP+kaMM4d | ||||
| aCstbDw/HW7cFHBy67LbdLRVKBThN7iUx7WFU13CJ8umaeEWmBN8QcPrcDDw | ||||
| bFjOruAt7XRKocpvipbWqNtttyBnYCXz9gbe1nX5OT4D6BSfTzuI48BxTxNU | ||||
| YII61J1Zo4iFGW0KUIdWeO+ewW1Aeuxam851WdHjtgWsAGhusKV9eQ7MWVar | ||||
| y2CxlpfVDY27WK/LZQnDrm5mWVHjSYFnXNws2nIlNwSdvVse2JSqWeYVPqVH | ||||
| +q0LUDxwpjD/86LH4ca95OfM4DqgxpvriwKOZlnPt3l/kemhka3smh2oZLRJ | ||||
| 8qjD7CzfwNryugABZ8QzUfvNgOgXTUvDAaL+4x72+u7wyzmGHhDPNWaeZeAk | ||||
| QABsdB/kJPnzZzxBOAGuz5A3wHF7S09pqub8hsTNh6/6+MknPI36E8JXX32V | ||||
| /b64yf4A699l8BfOqMgu4aNr+ujOi5/P3t6Z8b/Zy1f0+5vv/+Xn52++P8Xf | ||||
| z3538tNP9gtfEeCPVz//JN/jb/HOZ69evPj+5Snf/OLk3+Af3JM7r16/ff7q | ||||
| 5clPd3CVYJpdsFXFHQF6W+DmwlS2bYEbk3e23LSyT5+9PnqYffgg8vLTJ/4d | ||||
| BeanT7MA1FHzq5oaqIv/BMICQttukchwYasKiGBb9nlFK4mrc0p8kZgU0B6u | ||||
| ra2T3/kdkjHRKV3Bx4ypR6QNUks4WzbbIos/H77q8BPZlRCe89wT2pkxJSwr | ||||
| PE5Mwciu8BQiV9rV5RJPIXNyutQYyWE4waMOB21X0dnhb7ps3TYbJTF+MC2G | ||||
| 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 | ||||
| </li> | ||||
| </ul> | ||||
| </section> | ||||
| </back> | ||||
| </rfc> | </rfc> | |||
| End of changes. 112 change blocks. | ||||
| 1651 lines changed or deleted | 1187 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/ | ||||