<?xml version="1.0" encoding="us-ascii"?>
  <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
  <!-- generated by https://github.com/cabo/kramdown-rfc2629 version 1.2.9 -->

<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
<!ENTITY RFC2119 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml">
<!ENTITY I-D.ietf-dots-requirements SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-dots-requirements.xml">
<!ENTITY I-D.ietf-dots-use-cases SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-dots-use-cases.xml">
<!ENTITY I-D.ietf-opsawg-nat-yang SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-opsawg-nat-yang.xml">
<!ENTITY RFC0768 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.0768.xml">
<!ENTITY RFC0793 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.0793.xml">
<!ENTITY RFC1035 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.1035.xml">
<!ENTITY RFC2782 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.2782.xml">
<!ENTITY RFC3235 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.3235.xml">
<!ENTITY RFC3261 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.3261.xml">
<!ENTITY RFC4033 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.4033.xml">
<!ENTITY RFC4271 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.4271.xml">
<!ENTITY RFC4732 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.4732.xml">
<!ENTITY RFC4786 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.4786.xml">
<!ENTITY RFC5246 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.5246.xml">
<!ENTITY RFC5389 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.5389.xml">
<!ENTITY RFC5780 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.5780.xml">
<!ENTITY RFC6347 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.6347.xml">
<!ENTITY RFC6887 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.6887.xml">
<!ENTITY RFC6763 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.6763.xml">
<!ENTITY RFC7092 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.7092.xml">
<!ENTITY RFC7094 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.7094.xml">
<!ENTITY RFC7350 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.7350.xml">
<!ENTITY RFC8085 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8085.xml">
]>

<?rfc rfcedstyle="yes"?>
<?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-08" category="info">

  <front>
    <title abbrev="DOTS Architecture">Distributed-Denial-of-Service Open Threat Signaling (DOTS) Architecture</title>

    <author initials="A." surname="Mortensen" fullname="Andrew Mortensen">
      <organization>Arbor Networks</organization>
      <address>
        <postal>
          <street>2727 S. State St</street>
          <city>Ann Arbor, MI</city>
          <code>48104</code>
          <country>United States</country>
        </postal>
        <email>amortensen@arbor.net</email>
      </address>
    </author>
    <author initials="F." surname="Andreasen" fullname="Flemming Andreasen">
      <organization>Cisco</organization>
      <address>
        <postal>
          <street></street>
          <city></city>
          <code></code>
          <country>United States</country>
        </postal>
        <email>fandreas@cisco.com</email>
      </address>
    </author>
    <author initials="T." surname="Reddy" fullname="Tirumaleswar Reddy">
      <organization>McAfee, Inc.</organization>
      <address>
        <postal>
          <street>Embassy Golf Link Business Park</street>
          <city>Bangalore, Karnataka</city>
          <code>560071</code>
          <country>India</country>
        </postal>
        <email>kondtir@gmail.com</email>
      </address>
    </author>
    <author initials="N." surname="Teague" fullname="Nik Teague">
      <organization>Verisign</organization>
      <address>
        <postal>
          <street></street>
          <city></city>
          <code></code>
          <country>United States</country>
        </postal>
        <email>nteague@verisign.com</email>
      </address>
    </author>
    <author initials="R." surname="Compton" fullname="Rich Compton">
      <organization>Charter</organization>
      <address>
        <postal>
          <street></street>
          <city></city>
          <code></code>
        </postal>
        <email>Rich.Compton@charter.com</email>
      </address>
    </author>
    <author initials="C." surname="Gray" fullname="Christopher Gray">
      <organization></organization>
      <address>
        <postal>
          <street></street>
          <city></city>
          <code></code>
          <country>United States</country>
        </postal>
        <email>Christopher_Gray3@cable.comcast.com</email>
      </address>
    </author>

    <date year="2018" month="November" day="27"/>

    <area>Security</area>
    <workgroup>DOTS</workgroup>
    <keyword>Internet-Draft</keyword>

    <abstract>


<t>This document describes an architecture for establishing and maintaining
Distributed Denial of Service (DDoS) Open Threat Signaling (DOTS) within and
between domains. The document does not specify protocols or protocol
extensions, instead focusing on defining architectural relationships, components
and concepts used in a DOTS deployment.</t>



    </abstract>


  </front>

  <middle>


<section anchor="context-and-motivation" title="Context and Motivation">

<t>Signaling the need for help defending against an active distributed denial
of service (DDoS) attack requires a common understanding of mechanisms and
roles among the parties coordinating defensive response. The signaling
layer and supplementary messaging is the focus of DDoS Open Threat Signaling
(DOTS). DOTS defines a method of coordinating defensive measures among willing
peers to mitigate attacks quickly and efficiently, enabling hybrid attack
responses coordinated locally at or near the target of an active attack, or
anywhere in-path between attack sources and target. Sample DOTS use cases
are elaborated in <xref target="I-D.ietf-dots-use-cases"></xref>.</t>

<t>This document describes an architecture used in establishing, maintaining or
terminating a DOTS relationship within a domain or between domains.</t>

<section anchor="terminology" title="Terminology">

<section anchor="key-words" title="Key Words">

<t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in <xref target="RFC2119"/>.</t>

</section>
<section anchor="definition-of-terms" title="Definition of Terms">

<t>This document uses the terms defined in <xref target="I-D.ietf-dots-requirements"></xref>.</t>

</section>
</section>
<section anchor="scope" title="Scope">

<t>In this architecture, DOTS clients and servers communicate using DOTS signaling.
As a result of signals from a DOTS client, the DOTS server may modify the
forwarding path of traffic destined for the attack target(s), for example by
diverting traffic to a mitigator or pool of mitigators, where policy may be
applied to distinguish and discard attack traffic. Any such policy is
deployment-specific.</t>

<t>The DOTS architecture presented here is applicable across network administrative
domains &#8211; for example, between an enterprise domain and the domain of a
third-party attack mitigation service &#8211; 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 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="I-D.ietf-dots-requirements"></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 networks 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.</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 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.</t>
  <t>The signal and data channels are loosely coupled, and may not terminate on
the same DOTS server.</t>
</list></t>

</section>
</section>
<section anchor="architecture" title="DOTS Architecture">

<t>The basic high-level DOTS architecture is illustrated in <xref target="fig-basic-arch"/>:</t>

<figure title="Basic DOTS Architecture" anchor="fig-basic-arch"><artwork><![CDATA[
    +-----------+            +-------------+
    | Mitigator | ~~~~~~~~~~ | DOTS Server |
    +-----------+            +-------------+
                                    |
                                    |
                                    |
    +---------------+        +-------------+
    | Attack Target | ~~~~~~ | DOTS Client |
    +---------------+        +-------------+
]]></artwork></figure>

<t>A simple example instantiation of the DOTS architecture could be an enterprise
as the attack target for a volumetric DDoS attack, and an upstream DDoS
mitigation service as the mitigator. The enterprise (attack target) is
connected to the Internet via a link that is getting saturated, and the
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 neither specifies 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 may 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's 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 between 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, as seen in <xref target="fig-resource-identifiers"/>, using JSON to serialize the
data:</t>
</list></t>

<figure title="Protected resource identifiers" anchor="fig-resource-identifiers"><artwork><![CDATA[
        {
            "https1": [
                "192.0.2.1:443",
                "198.51.100.2:443",
            ],
            "proxies": [
                "203.0.113.3:3128",
                "[2001:db8:ac10::1]:3128"
            ],
            "api_urls": "https://apiserver.example.com/api/v1",
        }
]]></artwork></figure>

<t><list style="symbols">
  <t>Black-list management, which enables a DOTS client to inform the DOTS server
about sources to suppress.</t>
  <t>White-list management, which enables a DOTS client to inform the DOTS server
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, 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 not rely on such
information being exchanged during a DDoS attack.</t>

<section anchor="operations" title="DOTS Operations">
<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 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"></xref>. 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's domain and the DOTS server's domain to
provide basic authorization. The DOTS server should enforce additional
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 attack
response originate. The requests may be in response to an active, ongoing
attack against a target in the DOTS client's 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="I-D.ietf-dots-requirements"></xref>. 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 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 for
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 an
active session with a DOTS server may reasonably expect some level of mitigation
in response to a request for coordinated attack response.</t>

<t>The DOTS server enforces authorization of DOTS clients' signals for mitigation.
The mechanism of enforcement is not in scope for this document, but is expected
to restrict requested mitigation scope to addresses, prefixes, and/or services
owned by the DOTS client's administrative domain, such that a DOTS client from
one domain is not able to influence the network path to another domain. A DOTS
server MUST reject requests for mitigation of resources not owned by the
requesting DOTS client's administrative domain. A DOTS server MAY also refuse a
DOTS client's mitigation request for arbitrary reasons, within any limits
imposed by business or service level agreements between client and server
domains. 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 activated
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>
<section anchor="dots-gateway" title="DOTS Gateway">

<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"/> logical entity of a Back-to-Back User
Agent (B2BUA) <xref target="RFC7092"></xref>. 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 sessions.</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"/>:</t>

<figure title="DOTS gateway" anchor="fig-dots-gateway"><artwork><![CDATA[
                      +-------------+
                      |    | D |    |
      +----+          |    | O |    |         +----+
      | c1 |----------| s1 | T | c2 |---------| s2 |
      +----+          |    | S |    |         +----+
                      |    | G |    |
                      +-------------+
]]></artwork></figure>

<t>The DOTS gateway MUST perform full stack DOTS session termination and
reorigination between its client and server side. The details of how this is
achieved are implementation specific. The DOTS protocol does not include any
special features related to DOTS gateways, and hence from a DOTS perspective,
whenever a DOTS gateway is present, the DOTS session simply
terminates/originates there.</t>

</section>
</section>
<section anchor="agent-relationships" title="DOTS Agent Relationships">

<t>So far, we have only considered a relatively simple scenario of a single DOTS
client associated with a single DOTS server, however DOTS supports more advanced
relationships.</t>

<t>A DOTS server may be associated with one or more DOTS clients, and those DOTS
clients may belong to different domains. An example scenario is a mitigation
provider serving multiple attack targets (<xref target="fig-multi-client-server"/>).</t>

<figure title="DOTS server with multiple clients" anchor="fig-multi-client-server"><artwork><![CDATA[
   DOTS clients       DOTS server
   +---+
   | c |-----------
   +---+           \
   c1.example.org   \
                     \
   +---+              \ +---+
   | c |----------------| S |
   +---+              / +---+
   c1.example.com    /  dots1.example.net
                    /
   +---+           /
   | c |-----------
   +---+
   c2.example.com
]]></artwork></figure>

<t>A DOTS client may be associated with one or more DOTS servers, and those DOTS
servers may belong to different domains.  This may be to ensure high
availability or co-ordinate mitigation with more than one directly connected
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>

<figure title="Multi-Homed DOTS Client" anchor="fig-multi-homed-client"><artwork><![CDATA[
   DOTS client        DOTS servers
                       +---+
            -----------| S |
           /           +---+
          /            dots1.example.net
         /
   +---+/              +---+
   | c |---------------| S |
   +---+\              +---+
         \             dots.example.org
          \
           \           +---+
            -----------| S |
                       +---+
   c.example.com       dots2.example.net
]]></artwork></figure>

<t>Deploying a multi-homed client requires extra care and planning, as the DOTS
servers with which the multi-homed client communicates may not be affiliated.
Should the multi-homed client simultaneously request for mitigation from all
servers with which it has established signal channels, the client may
unintentionally inflict additional network disruption on the resources it
intends to protect. In one of the worst cases, a multi-homed DOTS client could
cause a permanent routing loop of traffic destined for the client's
protected services, as the uncoordinated DOTS servers' mitigators all try to
divert that traffic to their own scrubbing centers.</t>

<t>The DOTS protocol itself provides no fool-proof method to prevent such
self-inflicted harms as a result deploying multi-homed DOTS clients. If
DOTS client implementations nevertheless include support for multi-homing, they
are expected to be aware of the risks, and consequently to include measures
aimed at reducing the likelihood of negative outcomes. Simple measures might
include:</t>

<t><list style="symbols">
  <t>Requesting mitigation serially, ensuring only one mitigation request for
a given address space is active at any given time;</t>
  <t>Dividing the protected resources among the DOTS servers, such that no two
mitigators will be attempting to divert and scrub the same traffic;</t>
  <t>Restricting multi-homing to deployments in which all DOTS servers are
coordinating management of a shared pool of mitigation resources.</t>
</list></t>

<section anchor="gatewayed-signaling" title="Gatewayed Signaling">

<t>As discussed in <xref target="dots-gateway"/>, a 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
<xref target="fig-client-gateway-noagg"/>, is for an enterprise to have deployed multiple
DOTS capable devices which are able to signal intra-domain using TCP <xref target="RFC0793"></xref>
on un-congested links to a DOTS gateway which may then transform these to a UDP
<xref target="RFC0768"></xref> transport inter-domain where connection oriented transports may
degrade; this applies to the signal channel only, as the data channel requires a
connection-oriented transport. The 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-agg"><artwork><![CDATA[
      +---+
      | c |\
      +---+ \              +---+
             \-----TCP-----| D |               +---+
      +---+                | O |               |   |
      | c |--------TCP-----| T |------UDP------| S |
      +---+                | S |               |   |
             /-----TCP-----| G |               +---+
      +---+ /              +---+
      | c |/
      +---+
      example.com       example.com           example.net
      DOTS clients      DOTS gateway (DOTSG)  DOTS server
]]></artwork></figure>

<figure title="Client-Side Gateway without Aggregation" anchor="fig-client-gateway-noagg"><artwork><![CDATA[
      +---+
      | c |\
      +---+ \              +---+
             \-----TCP-----| D |------UDP------+---+
      +---+                | O |               |   |
      | c |--------TCP-----| T |------UDP------| S |
      +---+                | S |               |   |
             /-----TCP-----| G |------UDP------+---+
      +---+ /              +---+
      | c |/
      +---+
      example.com       example.com           example.net
      DOTS clients      DOTS gateway (DOTSG)  DOTS server
]]></artwork></figure>

<t>This may similarly be deployed in the inverse scenario where the gateway resides
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-agg"/> and
<xref target="fig-server-gateway-noagg"/>.</t>

<figure title="Server-Side Gateway with Aggregation" anchor="fig-server-gateway-agg"><artwork><![CDATA[
      +---+
      | c |\
      +---+ \              +---+
             \-----UDP-----| D |               +---+
      +---+                | O |               |   |
      | c |--------TCP-----| T |------TCP------| S |
      +---+                | S |               |   |
             /-----TCP-----| G |               +---+
      +---+ /              +---+
      | c |/
      +---+
      example.com       example.net           example.net
      DOTS clients      DOTS gateway (DOTSG)  DOTS server
]]></artwork></figure>

<figure title="Server-Side Gateway without Aggregation" anchor="fig-server-gateway-noagg"><artwork><![CDATA[
      +---+
      | c |\
      +---+ \              +---+
             \-----UDP-----| D |------TCP------+---+
      +---+                | O |               |   |
      | c |--------TCP-----| T |------TCP------| S |
      +---+                | S |               |   |
             /-----UDP-----| G |------TCP------+---+
      +---+ /              +---+
      | c |/
      +---+
      example.com       example.net           example.net
      DOTS clients      DOTS gateway (DOTSG)  DOTS server
]]></artwork></figure>

<t>This document anticipates scenarios involving multiple DOTS gateways. An example
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 CPE to aggregate requests from
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
the client-side and server-side scenarios.</t>

</section>
</section>
</section>
<section anchor="concepts" title="Concepts">

<section anchor="dots-sessions" title="DOTS Sessions">

<t>In order for DOTS to be effective as a vehicle for DDoS mitigation requests,
one or more DOTS clients must establish ongoing communication with one or more
DOTS servers. While the preconditions for enabling DOTS in or among network
domains may also involve business relationships, service level agreements, or
other formal or informal understandings between network operators, such
considerations are out of scope for this document.</t>

<t>A DOTS session is established to support bilateral exchange of data between an
associated DOTS client and a DOTS server. In the DOTS architecture, data is
exchanged between DOTS agents over signal and data channels. Regardless, a DOTS
session is characterized by the presence of an established signal channel. A
data channel may be established as well, however it is not a prerequisite.
Conversely, a DOTS session cannot exist without an established signal channel:
when an established signal channel is terminated for any reason, the DOTS
session is also said to be terminated.</t>

<section anchor="dots-session-preconditions" title="Preconditions">

<t>Prior to establishing a DOTS session between agents, the owners of the networks,
domains, services or applications involved are assumed to have agreed upon the
terms of the relationship involved. Such agreements are out of scope for this
document, but must be in place for a functional DOTS architecture.</t>

<t>It is assumed that as part of any DOTS service agreement, the DOTS client is
provided with all data and metadata required to establish communication with the
DOTS server. Such data and metadata would include any cryptographic information
necessary to meet the message confidentiality, integrity and authenticity
requirement in <xref target="I-D.ietf-dots-requirements"></xref>, and might also include the pool of
DOTS server addresses and ports the DOTS client should use for signal and data
channel messaging.</t>

</section>
<section anchor="establishing-dots-session" title="Establishing the DOTS Session">

<t>With the required business agreements in place, the DOTS client
initiates a signal session by contacting its DOTS server(s) over the signal
channel and (possibly) the data channel. To allow for DOTS service flexibility,
neither the order of contact nor the time interval between channel creations is
specified. A DOTS client MAY establish signal channel first, and then data
channel, or vice versa.</t>

<t>The methods by which a DOTS client receives the address and associated service
details of the DOTS server are not prescribed by this document. For example, a
DOTS client may be directly configured to use a specific DOTS server IP address
and port, and directly provided with any data necessary to satisfy the Peer
Mutual Authentication requirement in <xref target="I-D.ietf-dots-requirements"></xref>, such as
symmetric or asymmetric keys, usernames and passwords, etc. All configuration
and authentication information in this scenario is provided out-of-band by the
domain operating the DOTS server.</t>

<t>At the other extreme, the architecture in this document allows for a form of
DOTS client auto-provisioning. For example, the domain operating the DOTS server
or servers might provide the client domain only with symmetric or asymmetric
keys to authenticate the provisioned DOTS clients. Only the keys would then be
directly configured on DOTS clients, but the remaining configuration required to
provision the DOTS clients could be learned through mechanisms similar to DNS
SRV <xref target="RFC2782"/> or DNS Service Discovery <xref target="RFC6763"/>.</t>

<t>The DOTS client SHOULD successfully authenticate and exchange messages with the
DOTS server over both signal and (if used) data channel as soon as possible to
confirm that both channels are operational.</t>

<t>As described in <xref target="I-D.ietf-dots-requirements"></xref>, the DOTS client can configure
preferred values for acceptable signal loss, mitigation lifetime, and heartbeat
intervals when establishing the DOTS session. A DOTS session is not active until
DOTS agents have agreed on the values for these DOTS session parameters, a
process defined by the protocol.</t>

<t>Once the DOTS client begins receiving DOTS server signals, the DOTS session
is active. At any time during the DOTS session, the DOTS client may use the
data channel to manage aliases, manage black- and white-listed
prefixes or addresses, leverage vendor-specific extensions, and so on. Note that
unlike the signal channel, there is no requirement that the data channel remains
operational in attack conditions (See Data Channel Requirements,
<xref target="I-D.ietf-dots-requirements"></xref>).</t>

</section>
<section anchor="maintaining-dots-session" title="Maintaining the DOTS Session">

<t>DOTS clients and servers periodically send heartbeats to each other over the
signal channel, per Operational Requirements discussed in
<xref target="I-D.ietf-dots-requirements"></xref>. DOTS agent operators SHOULD configure the
heartbeat interval such that the frequency does not lead to accidental denials
of service due to the overwhelming number of heartbeats a DOTS agent must field.</t>

<t>Either DOTS agent may consider a DOTS session terminated in the extended
absence of a heartbeat from its peer agent. The period of that absence will be
established in the protocol definition.</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>

<section anchor="direct-signaling" title="Direct Signaling">

<t>A DOTS session may take the form of direct signaling between the DOTS
clients and servers, as shown in <xref target="fig-direct-signaling"/>.</t>

<figure title="Direct Signaling" anchor="fig-direct-signaling"><artwork><![CDATA[
        +-------------+                            +-------------+
        | DOTS client |<------signal session------>| DOTS server |
        +-------------+                            +-------------+
]]></artwork></figure>

<t>In a direct DOTS session, the DOTS client and server are communicating directly.
Direct signaling may exist inter- or intra-domain. The DOTS session is
abstracted from the underlying networks or network elements the signals
traverse: in direct signaling, the DOTS client and server are logically
adjacent.</t>

</section>
<section anchor="redirected-signaling" title="Redirected Signaling">

<t>In certain circumstances, a DOTS server may want to redirect a DOTS client to
an alternative DOTS server for a DOTS session. Such circumstances include but
are not limited to:</t>

<t><list style="symbols">
  <t>Maximum number of DOTS sessions with clients has been reached;</t>
  <t>Mitigation capacity exhaustion in the mitigator with which the
specific DOTS server is communicating;</t>
  <t>Mitigator outage or other downtime, such as scheduled maintenance;</t>
  <t>Scheduled DOTS server maintenance;</t>
  <t>Scheduled modifications to the network path between DOTS server and DOTS
client.</t>
</list></t>

<t>A basic redirected DOTS session resembles the following, as shown in
<xref target="fig-redirected-signaling"/>.</t>

<figure title="Redirected Signaling" anchor="fig-redirected-signaling"><artwork><![CDATA[
        +-------------+                            +---------------+
        |             |<-(1)--- DOTS session 1 --->|               |
        |             |                            |               |
        |             |<=(2)== redirect to B ======|               |
        | DOTS client |                            | DOTS server A |
        |             |X-(4)--- DOTS session 1 ---X|               |
        |             |                            |               |
        |             |                            |               |
        +-------------+                            +---------------+
               ^
               |
              (3) DOTS session 2
               |
               v
        +---------------+
        | DOTS server B |
        +---------------+
]]></artwork></figure>

<t><list style="numbers">
  <t>Previously established DOTS session 1 exists between a DOTS client and
DOTS server A.</t>
  <t>DOTS server A sends a server signal redirecting the client to DOTS server B.</t>
  <t>If the DOTS client does not already have a separate DOTS session with
the redirection target, the DOTS client initiates and establishes DOTS
session 2 with DOTS server B.</t>
  <t>Having redirected the DOTS client, DOTS server A ceases sending server
signals. The DOTS client likewise stops sending client signals to DOTS server
A. DOTS session 1 is terminated.</t>
</list></t>

</section>
<section anchor="recursive-signaling" title="Recursive Signaling">

<t>DOTS is centered around improving the speed and efficiency of coordinated
response to DDoS attacks. One scenario not yet discussed involves coordination
among federated domains operating DOTS servers and mitigators.</t>

<t>In the course of normal DOTS operations, a DOTS client communicates the need for
mitigation to a DOTS server, and that server initiates mitigation on a
mitigator with which the server has an established service relationship. The
operator of the mitigator may in turn monitor mitigation performance and
capacity, as the attack being mitigated may grow in severity beyond the
mitigating domain's capabilities.</t>

<t>The operator of the mitigator has limited options in the event a DOTS
client-requested mitigation is being overwhelmed by the severity of the attack.
Out-of-scope business or service level agreements may permit the mitigating
domain to drop the mitigation and let attack traffic flow unchecked to the
target, but this only encourages attack escalation. In the case where
the mitigating domain is the upstream service provider for the attack target,
this may mean the mitigating domain and its other services and users continue to
suffer the incidental effects of the attack.</t>

<t>A recursive signaling model as shown in <xref target="fig-recursive-signaling"/> offers
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
domain operating a DOTS server and mitigator also operates a DOTS client. This
DOTS client has an established DOTS session with a DOTS server belonging to a
separate administrative domain.</t>

<t>With these preconditions in place, the operator of the mitigator being
overwhelmed or otherwise performing inadequately may request mitigation for the
attack target from this separate DOTS-aware domain. Such a request recurses the
originating mitigation request to the secondary DOTS server, in the hope of
building a cumulative mitigation against the attack.</t>

<figure title="Recursive Signaling" anchor="fig-recursive-signaling"><artwork><![CDATA[
                     example.net domain
                     . . . . . . . . . . . . . . . . .
                     .    Gn                         .
       +----+    1   .  +----+       +-----------+   .
       | Cc |<--------->| Sn |~~~~~~~| Mitigator |   .
       +----+        .  +====+       |     Mn    |   .
                     .  | Cn |       +-----------+   .
     example.com     .  +----+                       .
        client       .    ^                          .
                     . . .|. . . . . . . . . . . . . .
                          |
                        2 |
                          |
                     . . .|. . . . . . . . . . . . . .
                     .    v                          .
                     .  +----+       +-----------+   .
                     .  | So |~~~~~~~| Mitigator |   .
                     .  +----+       |     Mo    |   .
                     .               +-----------+   .
                     .                               .
                     . . . . . . . . . . . . . . . . .
                     example.org domain
]]></artwork></figure>

<t>In <xref target="fig-recursive-signaling"/>, client Cc signals a request for mitigation
across inter-domain DOTS session 1 to the DOTS server Sn belonging to the
example.net domain. DOTS server Sn enables mitigation on mitigator Mn. DOTS
server Sn is half of DOTS gateway Gn, being deployed logically back-to-back with
DOTS client Cn, which has pre-existing inter-domain DOTS session 2 with the DOTS
server So belonging to the example.org domain. At any point, DOTS server Sn MAY
recurse an on-going mitigation request through DOTS client Cn to DOTS server So,
in the expectation that mitigator Mo will be activated to aid in the defense of
the attack target.</t>

<t>Recursive signaling is opaque to the DOTS client. To maximize mitigation
visibility to the DOTS client, however, the recursing domain SHOULD provide
recursed mitigation feedback in signals reporting on mitigation status to the
DOTS client. For example, the recursing domain's mitigator should incorporate
into mitigation status messages available metrics such as dropped packet or byte
counts from the recursed mitigation.</t>

<t>DOTS clients involved in recursive signaling must be able to withdraw requests
for mitigation without warning or justification, per
<xref target="I-D.ietf-dots-requirements"></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 the operational requirements
(<xref target="I-D.ietf-dots-requirements"></xref>).</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.</t>

</section>
<section anchor="anycast-signaling" title="Anycast Signaling">

<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 MAY deploy DOTS servers with an anycast Service Address as described in
BCP 126 <xref target="RFC4786"></xref>. 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>

<t><list style="symbols">
  <t>Simplified DOTS client configuration, including service discovery through the
methods described in <xref target="RFC7094"></xref>. 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.</t>
  <t>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.</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 Considerations">

<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
<xref target="I-D.ietf-dots-requirements"></xref>, 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 may 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 pre-shared keys and session
resumption <xref target="RFC5246"></xref><xref target="RFC6347"/>, but keying material must be available to all
DOTS servers sharing the anycast Service Address in that case.</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.</t>

</section>
</section>
<section anchor="nat-signaling" title="Signaling Considerations for Network Address Translation">

<t>Network address translators (NATs) are expected to be a common feature of DOTS
deployments. The Middlebox Traversal Guidelines in <xref target="RFC8085"></xref> include general
NAT considerations for DOTS deployements 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-mappings" title="Direct Provisioning of Internal-to-External Address Mappings">

<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 ensure the
mappings remain up to date, or risk losing the ability to request accurate
mitigation scopes. To that aim, the DOTS client can rely on mechanisms, such as
<xref target="I-D.ietf-opsawg-nat-yang"></xref> to retrieve static explicit mappings. This document
does not prescribe the method by which mappings are maintained once they are
provisioned on the DOTS client.</t>

</section>
<section anchor="resolving-public-mitigation-scope-with-port-control-protocol-pcp" title="Resolving Public Mitigation Scope with Port Control Protocol (PCP)">

<t>Port Control Protocol (PCP) <xref target="RFC6887"></xref> may be used to retrieve the external
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 to feed the DOTS
protocol(s) messages that will be sent to a DOTS server. These messages will
convey the external addresses/prefixes as set by the NAT.</t>

<t>PCP also enables discovery and configuration of the lifetime of port mappings
instantiated in intermediate NAT devices. Discovery of port mapping lifetimes
can reduce the dependency on heartbeat messages to maintain mappings, and
therefore reduce the load on DOTS servers and the network.</t>

</section>
<section anchor="resolving-public-mitigation-scope-with-session-traversal-utilities-stun" title="Resolving Public Mitigation Scope with Session Traversal Utilities (STUN)">

<t>An internal resource, e.g., a Web server, can discover its reflexive transport
address through a STUN Binding request/response transaction, as described in
<xref target="RFC5389"></xref>. After learning its reflexive transport address from the STUN server,
the internal resource can export its reflexive transport address and internal
transport address to the DOTS client, thereby enabling the DOTS client to
request mitigation with the correct external scope, as depicted in
<xref target="fig-nat-stun"/>. The mechanism for providing the DOTS client with the reflexive
transport address and internal transport address is unspecified in this
document.</t>

<t>In order to prevent an attacker from modifying the STUN messages in transit, the
STUN client and server MUST use the message-integrity mechanism discussed in
Section 10 of <xref target="RFC5389"></xref>  or use STUN over DTLS <xref target="RFC7350"></xref> or use STUN over TLS.
If the STUN client is behind a NAT that performs Endpoint-Dependent Mapping, the
internal service cannot provide the DOTS client with the reflexive transport
address discovered using STUN. The behavior of a NAT between the STUN client and
the STUN server could be discovered using the techniques discussed in <xref target="RFC5780"></xref>.</t>

<figure title="Resolving mitigation scope with STUN" anchor="fig-nat-stun"><artwork><![CDATA[
                Binding         Binding
    +--------+  request  +---+  request  +--------+
    |  STUN  |<----------| N |<----------|  STUN  |
    | server |           | A |           | client |
    |        |---------->| T |---------->|        |
    +--------+  Binding  +---+  Binding  +--------+
                response        response    |
                                            | reflexive transport address
                                            | & internal transport address
                                            v
                                         +--------+
                                         |  DOTS  |
                                         | client |
                                         +--------+
]]></artwork></figure>

</section>
<section anchor="resolving-requested-mitigation-scope-with-dns" title="Resolving Requested Mitigation Scope with DNS">

<t>DOTS supports mitigation scoped to DNS names. As discussed in <xref target="RFC3235"></xref>,
using DNS names instead of IP addresses potentially avoids the address
translation problem, as long as the name is internally and externally
resolvable by the same 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
external scope for mitigation. For the reverse DNS lookup, DNS Security
Extensions (DNSSEC) <xref target="RFC4033"></xref> must be used  where the authenticity of response
is critical.</t>

</section>
</section>
</section>
<section anchor="mit-request-triggers" title="Triggering Requests for Mitigation">

<t><xref target="I-D.ietf-dots-requirements"></xref> places no limitation on the circumstances in which
a DOTS client operator may request mitigation, nor does it demand justification
for any mitigation request, thereby reserving operational control over DDoS
defense for the domain requesting mitigation. This architecture likewise does
not prescribe the network conditions and mechanisms triggering a mitigation
request from a DOTS client.</t>

<t>However, considering selected possible mitigation triggers from an architectural
perspective offers a model for alternative or unanticipated triggers for DOTS
deployments. In all cases, what network conditions merit a mitigation request
are at the discretion of the DOTS client operator.</t>

<t>The mitigation request itself is defined by DOTS, however the interfaces
required to trigger the mitigation request in the following scenarios are
implementation-specific.</t>

<section anchor="manual-mit-request" title="Manual Mitigation Request">

<t>A DOTS client operator may manually prepare a request for mitigation, including
scope and duration, and manually instruct the DOTS client to send the mitigation
request to the DOTS server. In context, a manual request is a request directly
issued by the operator without automated decision-making performed by a device
interacting with the DOTS client. Modes of manual mitigation requests include
an operator entering a command into a text interface, or directly interacting
with a graphical interface to send the request.</t>

<t>An operator might do this, for example, in response to notice of an attack
delivered by attack detection equipment or software, and the alerting detector
lacks interfaces or is not configured to use available interfaces to translate
the alert to a mitigation request automatically.</t>

<t>In a variation of the above scenario, the operator may have preconfigured on the
DOTS client mitigation requests for various resources in the operator's domain.
When notified of an attack, the DOTS client operator manually instructs the DOTS
client to send the relevant preconfigured mitigation request for the resources
under attack.</t>

<t>A further variant involves recursive signaling, as described in
<xref target="recursive-signaling"/>. The DOTS client in this case is the second half of a
DOTS gateway (back-to-back DOTS server and client). As in the previous scenario,
the scope and duration of the mitigation request are pre-existing, but in this
case are derived from the mitigation request received from a downstream DOTS
client by the DOTS server. Assuming the preconditions required by
<xref target="recursive-signaling"/> are in place, the DOTS gateway operator may at any time
manually request mitigation from an upstream DOTS server, sending a mitigation
request derived from the downstream DOTS client's request.</t>

<t>The motivations for a DOTS client operator to request mitigation manually are
not prescribed by this architecture, but are expected to include some of the
following:</t>

<t><list style="symbols">
  <t>Notice of an attack delivered via e-mail or alternative messaging</t>
  <t>Notice of an attack delivered via phone call</t>
  <t>Notice of an attack delivered through the interface(s) of networking
monitoring software deployed in the operator's domain</t>
  <t>Manual monitoring of network behavior through network monitoring software</t>
</list></t>

</section>
<section anchor="auto-conditional-mit" title="Automated Conditional Mitigation Request">

<t>Unlike manual mitigation requests, which depend entirely on the DOTS client
operator's capacity to react with speed and accuracy to every detected or
detectable attack, mitigation requests triggered by detected attack conditions
reduce the operational burden on the DOTS client operator, and minimize the
latency between attack detection and the start of mitigation.</t>

<t>Mitigation requests are triggered in this scenario by operator-specified network
conditions. Attack detection is deployment-specific, and not constrained by this
architecture. Similarly the specifics of a condition are left to the discretion
of the operator, though common conditions meriting mitigation include the
following:</t>

<t><list style="symbols">
  <t>Detected attack exceeding a rate in packets per second (pps).</t>
  <t>Detected attack exceeding a rate in bytes per second (bps).</t>
  <t>Detected resource exhaustion in an attack target.</t>
  <t>Detected resource exhaustion in the local domain's mitigator.</t>
  <t>Number of open connections to an attack target.</t>
  <t>Number of attack sources in a given attack.</t>
  <t>Number of active attacks against targets in the operator's domain.</t>
  <t>Conditional detection developed through arbitrary statistical analysis or deep
learning techniques.</t>
  <t>Any combination of the above.</t>
</list></t>

<t>When automated conditional mitigation requests are enabled, violations of any of
the above conditions, or any additional operator-defined conditions, will
trigger a mitigation request from the DOTS client to the DOTS server. The
interfaces between the application detecting the condition violation and the
DOTS client are implementation-specific.</t>

</section>
<section anchor="auto-mit-signal-loss" title="Automated Mitigation on Loss of Signal">

<t>To maintain a DOTS session, the DOTS client and the DOTS server exchange
regular but infrequent messages across the signal channel. In the absence of
an attack, the probability of message loss in the signaling channel should be
extremely low. Under attack conditions, however, some signal loss may be
anticipated as attack traffic congests the link, depending on the attack type.</t>

<t>While <xref target="I-D.ietf-dots-requirements"></xref> specifies the DOTS protocol be robust when
signaling under attack conditions, there are nevertheless scenarios in which the
DOTS signal is lost in spite of protocol best efforts. To handle such scenarios,
a DOTS operator may request one or more mitigations which are triggered only
when the DOTS server ceases receiving DOTS client heartbeats beyond the miss
count or interval permitted by the protocol.</t>

<t>The impact of mitigating due to loss of signal in either direction must be
considered carefully before enabling it. Signal loss is not caused by links
congested with attack traffic alone, and as such mitigation requests triggered
by signal channel degradation in either direction may incur unnecessary costs,
in network performance and operational expense alike.</t>

</section>
</section>
</section>
<section anchor="security-considerations" title="Security Considerations">

<t>This section describes identified security considerations for the DOTS
architecture.</t>

<t>DOTS is at risk from three primary attack vectors:  agent impersonation,
traffic injection and signal blocking.  These vectors may be exploited
individually or in concert by an attacker to confuse, disable, take information
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 potentially
trigger/withdraw traffic redirection, trigger/cancel mitigation activities or
subvert black/whitelists.  From an architectural standpoint, operators SHOULD
ensure best current practices for secure communication are observed for data and
signal channel confidentiality, integrity and authenticity.  Care must be taken
to ensure transmission is protected by appropriately secure means, reducing
attack surface by exposing only the minimal required services or interfaces.
Similarly, received data at rest SHOULD be stored with a satisfactory degree of
security.</t>

<t>As many mitigation systems employ diversion to scrub attack traffic, operators
of DOTS agents SHOULD ensure DOTS sessions are resistant to Man-in-the-Middle
(MitM) attacks. 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.</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 agents SHOULD be given adequate protections,
again 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>

</section>
<section anchor="acknowledgments" title="Acknowledgments">

<t>Thanks to Matt Richardson and Med Boucadair for their comments and suggestions.</t>

</section>


  </middle>

  <back>

    <references title='Normative References'>

&RFC2119;


    </references>

    <references title='Informative References'>

&I-D.ietf-dots-requirements;
&I-D.ietf-dots-use-cases;
&I-D.ietf-opsawg-nat-yang;
&RFC0768;
&RFC0793;
&RFC1035;
&RFC2782;
&RFC3235;
&RFC3261;
&RFC4033;
&RFC4271;
&RFC4732;
&RFC4786;
&RFC5246;
&RFC5389;
&RFC5780;
&RFC6347;
&RFC6887;
&RFC6763;
&RFC7092;
&RFC7094;
&RFC7350;
&RFC8085;


    </references>



  </back>

<!-- ##markdown-source:
H4sIACJk/VsAA919e5PbVnLv/+dToOSqaykmx3rZ0mqzKY80tlc31iMaOZvU
rpICSZCDFQgwADgjRlI+++336QOAIyl3N6lk8rBmSBycR59+/rp7Pp+Hvuyr
4lF2VnZ9Wy72fbGanxV1mVfzZj0/L9rLcllkL3ZFnb2+aIu8z87LTZ1XZb3J
bp69eH1+KzttlxdlXyz7fVuEfLFoi0sYDz5KP1k1yzrfwqtWbb7u52XRr+er
pu/mufvW/PbDsMp7+FYIObzuUXZeLPdt2R/C1YZHDW+vHmVP675o66Kfn+Fg
YZn3j7KyXjchLJsVzO1RtoeBu2VZhl35KGRZu14Wq64/4FoPRQd/6Zul+2dZ
r4q61z90Tdu3xbqz3w/b5FfYqqV9edlst/CsfVrWsDv2Glj2Nt/taE74l5Dv
+4umxTnhz1z+i4/BCKcn2TN4d1F3RW2f8Lad1qu2uJr4uGlh6NN20bTZ86K/
atq3nX0GMy0KmOndB3cfZOcn2XkPmwv/376whK3FsWseYZY9exo/a1bw3vsP
79y+7/62r/sWHvm1hjNb8YDxfcU2L6tHWb7VWf6Q47AncFTTC/7phBeWjxf8
U1Vst0hn4y/Qkp+U3bIZrtR+n6dLnPo7Lm/y75+zxHXOs/phidM4ASKYXuDr
k+xVsVodBot7Xbb7bV4V3VXeDr5Ai3u2PF0XxQwIfXlyfI3Zj9tF3nWH7Oem
Wme/lPXb7PG+A+rruuxl3r4dHPPjvN7kVdPCuH+ft3Xe52/zwWl/9/3t2w/u
jPfiab0q8+EevG3qVV+2P2zw1+Nb8Pwke13km30x2IPn5dvhB7T2fyzasgMu
8992tsBccFY/XMpEji/t1Un2pNnu+mZIvK/K5cXoIybbixzuRvtXWJzMHl99
Iq/+YclvO76CJyfZz20+JM8nF7DyvtldFG36MS5h4tX/1Sfk5vevOL97Pyzz
RVXgMpd519NyQ92027wvL+k9r356cvfOnd88CgHlhPvg6fzsJAqjtvi3fdkW
zNBHn+67Yg7jF+lHza7LrzZzuE/zA9wwedvtB98/tH/+5p78887te9/pdB48
vCv/vHfX/nrv7vd35J/3b9/Tx+7ffWB/fXDvrv3z4ffyz+/u3rd/3nv4G/3n
g4e35Z/f37v/QP/58KH988H3+ooHt39zN/7zvv7z3nc6wsPbD2GSIczn8yxf
wInnyz6E1xdlh0Juj1uWrYpuCWpE0WV5nXnBnsGeZ0XXwymV3QVydeCfGRxm
3cP/we/BaSAZayBZs85UA7l5dtaArnGtInJV9jAyDhwWIAgL+OqqwVd0wIAu
CjfLBiZYN33W7YpluT5ku7YBHaCpOqBv+yUU71CGlU3dzfCuAFNYwTKWyGA3
WQODF2uaul8ozLotKiAueOqi3MGTQIq7pkZ6CrjkZVMvi13fgYICC8Xpsq60
KnZVc8Dpncgeb8vVqipCeNIAP3rX04Y9a4BsafTs/VdL/mAOH8y39sHH8LvJ
nxDihvWwG3VRrOhULopqh2sp6hUtZoM71tMBLvGSZCt3Mis6mQAn06Unk/d9
vnybyf2B8ye9COa5B82qhYPn0eHBbQFMqS67bUdH1TYVfh2+yvPaAcMq4S/L
pmnhEVgTfEDT63AyMDZsZ1fwkXa6pFDlB+BVuEfdfrer6Abn7QHe1nX5BscA
OsXx6QRxHjjvaYIKTFAnejJrlKiwom0BqtsKnz0yuS0oBPvWlnNVVjTcroAd
AC0TjrQvN6iB8W51GWzW8m11oHkX63W5LGHa1WGWFTXeFBjj4rBoy5U8EHT1
bnvgUKpmmVc4So/0WxegUuBKYf2bosfpxrPkcWbwPaDGwxXwzwKIcL7L+4tM
L40cZdfs2yXd5JUMBfpjvoW95X0BAs6IGaKmngHRg6JH0wGi/uMRvvnm5PM5
hl4QzzVmnmXgIkC2bfUc5Cb5+2c8QTgB7s+QN8B1e02jNFWzOZCUef9VH//y
EW+j/oTw1VdfZX9fHLI/wP53GfyGKyqyt/CnK/rTjWe/nr++MeP/Zs9f0L9f
/fgPvz599eMZ/vv896e//GL/4G8E+OXFr7/I5/iv+OSTF8+e/fj8jB9+dvrP
8B88kxsvXr5++uL56S83cJdgmV2wXcUTAXpb4OHCUnZtgQeTd7bdtLPv34tU
/PgRdwFXdkY8jRgM0A3ui63Rn9oeSZBojL7BV2Tq5L08xcMP58tmV2Tx5/1X
Hf5FNjmEp7yUhBRmfLDLCm8HEyRyH7xUyGT2dbnES8WMmb5qfOEknOLNhXuz
r+gq8Cddtm6brVIMDzyjBfHjNDrQGvAPsCdBQsBHAZglaOvExui+wGggBPHW
4rb2tAPIUHEYuUN8b252t2YsAN/x/VkcwgpuY0tkq2PAeeXKIeC7KImahoSg
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
8AAA

-->

</rfc>

