<?xml version="1.0" encoding="US-ASCII"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd">
<?rfc toc="yes"?>
<?rfc tocompact="yes"?>
<?rfc tocdepth="3"?>
<?rfc tocindent="yes"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes"?>
<?rfc comments="yes"?>
<?rfc inline="yes"?>
<?rfc compact="yes"?>
<?rfc subcompact="no"?>
<rfc category="std" docName="draft-boucadair-dots-multihoming-02"
     ipr="trust200902">
  <front>
    <title abbrev="DOTS Multihoming">Multi-homing Deployment Considerations
    for Distributed-Denial-of-Service Open Threat Signaling (DOTS)</title>

    <author fullname="Mohamed Boucadair" initials="M." surname="Boucadair">
      <organization>Orange</organization>

      <address>
        <postal>
          <street></street>

          <city>Rennes</city>

          <region></region>

          <code>35000</code>

          <country>France</country>
        </postal>

        <email>mohamed.boucadair@orange.com</email>
      </address>
    </author>

    <author fullname="Tirumaleswar Reddy" initials="T." surname="Reddy">
      <organization abbrev="McAfee">McAfee, Inc.</organization>

      <address>
        <postal>
          <street>Embassy Golf Link Business Park</street>

          <city>Bangalore</city>

          <region>Karnataka</region>

          <code>560071</code>

          <country>India</country>
        </postal>

        <email>TirumaleswarReddy_Konda@McAfee.com</email>
      </address>
    </author>

    <date />

    <abstract>
      <t>This document discusses multi-homing considerations for
      Distributed-Denial-of-Service Open Threat Signaling (DOTS). The goal is
      to provide a set of guidance for DOTS clients/gateways when
      multihomed.</t>

      <!--
-->
    </abstract>

    <note title="Requirements Language">
      <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 <xref
      target="RFC2119">RFC 2119</xref>.</t>
    </note>
  </front>

  <middle>
    <section title="Introduction">
      <t>In many deployments, it may not be possible for a network to
      determine the cause for a distributed Denial-of-Service (DoS) attack
      <xref target="RFC4732"></xref>, but instead just realize that some
      resources seem to be under attack. To fill that gap, the IETF is
      specifying an architecture, called DDoS Open Threat Signaling (DOTS)
      <xref target="I-D.ietf-dots-architecture"></xref>, in which a DOTS
      client can inform a DOTS server that the network is under a potential
      attack and that appropriate mitigation actions are required. Indeed,
      because the lack of a common method to coordinate a real-time response
      among involved actors and network domains inhibits the effectiveness of
      DDoS attack mitigation, DOTS protocol is meant to carry requests for
      DDoS attack mitigation, thereby reducing the impact of an attack and
      leading to more efficient defensive actions. <xref
      target="I-D.ietf-dots-use-cases"></xref> identifies a set of scenarios
      for DOTS; almost all these scenarios involve a CPE.</t>

      <t>The basic high-level DOTS architecture is illustrated in <xref
      target="arch"></xref> (<xref
      target="I-D.ietf-dots-architecture"></xref>):</t>

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

      <t><xref target="I-D.ietf-dots-architecture"></xref> specifies that 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 DOTS
      signaling sessions by connecting to the provided DOTS server(s)
      addresses.</t>

      <t>DOTS may be deployed within networks that are connected to one single
      upstream provider. It can also be enabled within networks that are
      multi-homed. The reader may refer to <xref target="RFC3582"></xref> for
      an overview of multi-homing goals and motivations. This document
      discusses DOTS multi-homing considerations. Specifically, the document
      aims to:<list style="numbers">
          <t>Complete the base DOTS architecture with multi-homing specifics.
          Those specifics need to be taking into account because: <list
              style="symbols">
              <t>Send a DOTS mitigation request to an arbitrary DOTS server
              won't help mitigating a DDoS attack.</t>

              <t>Blindly forking all DOTS mitigation requests among all
              available DOTS servers is suboptimal.</t>

              <t>Sequentially contacting DOTS servers may increase the delay
              before a mitigation plan is enforced.</t>
            </list></t>

          <t>Identify DOTS deployment schemes in a multi-homing context, where
          DOTS service can be offered by all or a subset of upstream
          providers. </t>

          <t>Sketch guidelines and recommendations for placing DOTS requests
          in multi-homed networks, e.g.,: <list style="symbols">
              <t>Select the appropriate DOTS server(s).</t>

              <t>Identify cases where anycast is not recommended.</t>
            </list></t>
        </list></t>

      <t>To that aim, this document adopts the following methodology: <list
          style="symbols">
          <t>Identify and extract viable deployment candidates from <xref
          target="I-D.ietf-dots-use-cases"></xref>.</t>

          <t>Augment the description with multi-homing technicalities, e.g.,
          <list style="symbols">
              <t>One vs. multiple upstream network providers</t>

              <t>One vs. multiple interconnect routers</t>

              <t>Provider-Independent (PI) vs. Provider-Aggregatable (PA) </t>
            </list></t>

          <t>Describe the recommended behavior of DOTS clients and gateways
          for each case.</t>
        </list></t>

      <t>Multi-homed DOTS agents are assumed to make use of the protocols
      defined in <xref target="I-D.ietf-dots-signal-channel"></xref> and <xref
      target="I-D.ietf-dots-data-channel"></xref>; no specific extension is
      required to the base DOTS protocols for deploying DOTS in a multihomed
      context. </t>
    </section>

    <section title="Terminology">
      <t>This document makes use of the terms defined in <xref
      target="I-D.ietf-dots-architecture"></xref> and <xref
      target="RFC4116"></xref>.</t>

      <t>IP refers to both IPv4 and IPv6.</t>
    </section>

    <section anchor="msc" title="Multi-Homing Scenarios">
      <t>This section briefly describes some multi-homing scenarios that are
      relevant to DOTS. In the following sub-sections, only the connections of
      border routers are shown; internal network topologies are not elaborated
      hereafter.</t>

      <section anchor="sc1" title="Residential CPE">
        <t>The scenario shown in <xref target="rcpe"></xref> is characterized
        as follows: <list style="symbols">
            <t>The home network is connected to the Internet using one single
            CPE (Customer Premises Equipment).</t>

            <t>The CPE is connected to multiple provisioning domains (i.e.
            both fixed and mobile networks). Provisioning domain (PvD) is
            explained in <xref target="RFC7556"></xref>.</t>

            <t>Each of these provisioning domains assign IP addresses/prefixes
            to the CPE. These addresses/prefixes are said to be
            Provider-Aggregatable (PA).</t>

            <t>The CPE is provided by each of these provisioning domains with
            additional configuration information such as a list of DNS
            servers, DNS suffixes associated with the network, default gateway
            address, and DOTS server's name <xref
            target="I-D.boucadair-dots-server-discovery"></xref>.</t>

            <t>Because of ingress filtering, packets forwarded by the CPE to a
            given provisioning domain must be send with a source IP address
            that was assigned by that network <xref
            target="RFC8043"></xref>.</t>
          </list></t>

        <t><figure align="center" anchor="rcpe"
            title="Typical Multi-homed Residential CPE">
            <artwork><![CDATA[               +-------+            +-------+
               |Fixed  |            |Mobile |
               |Network|            |Network|
               +---+---+            +---+---+     
                   |                    |     Service Providers 
       ............|....................|.......................
                   +---------++---------+     Home Network    
                             ||                   
                          +--++-+ 
                          | CPE | 
                          +-----+ 
                                ... (Internal Network)
                            
]]></artwork>
          </figure></t>
      </section>

      <section anchor="sc2"
               title="Multi-homed Enterprise: Single CPE, Multiple Upstream ISPs">
        <t>The scenario shown in <xref target="scmi"></xref> is characterized
        as follows: <list style="symbols">
            <t>The enterprise network is connected to the Internet using one
            single router.</t>

            <t>That router is connected to multiple provisioning domains (i.e.
            managed by distinct administrative entities).</t>
          </list></t>

        <t>Unlike the previous scenario, two sub-cases can be considered for
        an enterprise network with regards to assigned addresses:</t>

        <t><list style="numbers">
            <t>Provider Independent (PI) addresses: The enterprise is the
            owner of the IP addresses/prefixes; the same address/prefix is
            then used for communication placed using any of the provisioning
            domains.</t>

            <t>PA addresses/prefixes: each of provisioning domains assigns IP
            addresses/prefixes to the enterprise network.</t>
          </list><figure align="center" anchor="scmi"
            title="Multi-homed Enterprise Network (Single CPE connected to Multiple Networks)">
            <artwork><![CDATA[               +------+              +------+
               | ISP1 |              | ISP2 |
               +---+--+              +--+---+     
                   |                    |     Service Providers
       ............|....................|.......................
                   +---------++---------+     Enterprise Network           
                             ||     
                          +--++-+ 
                          | rtr | 
                          +-----+ 
                                ... (Internal Network)
                            
]]></artwork>
          </figure></t>
      </section>

      <section anchor="sc3"
               title="Multi-homed Enterprise: Multiple CPEs, Multiple Upstream ISPs">
        <t>This scenario is similar to the one in <xref target="sc2"></xref>;
        the main difference is that dedicated routers are used to connect to
        each provisioning domain.</t>

        <t><figure anchor="mcmi"
            title="Multi-homed Enterprise Network (Multiple CPEs, Multiple ISPs)">
            <artwork><![CDATA[                         +------+    +------+
                         | ISP1 |    | ISP2 |
                         +---+--+    +--+---+     
                             |          |     Service Providers
       ......................|..........|.......................
                             |          |     Enterprise Network
                         +---+--+    +--+---+
                         | rtr1 |    | rtr2 |
                         +------+    +------+
 
                               ... (Internal Network)
                            
]]></artwork>
          </figure></t>
      </section>

      <section anchor="sc4" title="Multi-homed Enterprise with the Same ISP">
        <t>This scenario is a variant of <xref target="sc2"></xref> and <xref
        target="sc3"></xref> in which multi-homing is provided by the same ISP
        (i.e., same provisioning domain).</t>
      </section>
    </section>

    <section title="DOTS Deployment Considerations">
      <t><xref target="dep"></xref> provides some sample (non-exhaustive)
      deployment schemes to illustrate how DOTS agents may be deployed for
      each of the scenarios introduced in <xref target="msc"></xref>.</t>

      <texttable anchor="dep" style="all" title="Sample Deployment Cases">
        <ttcol align="center">Scenario</ttcol>

        <ttcol align="center">DOTS client</ttcol>

        <ttcol align="center">DOTS gateway</ttcol>

        <c>Residential CPE</c>

        <c>CPE</c>

        <c>N/A</c>

        <c>Single CPE, Multiple provisioning domains</c>

        <c>internal hosts or CPE</c>

        <c>CPE</c>

        <c>Multiple CPEs, Multiple provisioning domains</c>

        <c>internal hosts or all CPEs (rtr1 and rtr2)</c>

        <c>CPEs (rtr1 and rtr2)</c>

        <c>Multi-homed enterprise, Single provisioning domain</c>

        <c>internal hosts or all CPEs (rtr1 and rtr2)</c>

        <c>CPEs (rtr1 and rtr2)</c>
      </texttable>

      <t>These deployment schemes are further discussed in the following
      sub-sections.</t>

      <section anchor="dcpe" title="Residential CPE">
        <t><xref target="dotsrcpe"></xref> depicts DOTS signaling sessions
        that are required to be established between a DOTS client (C) and DOTS
        servers (S1, S2) in the context of the scenario described in <xref
        target="sc1"></xref>.</t>

        <t>The DOTS client MUST resolve the DOTS server's name provided by a
        provisioning domain (<xref
        target="I-D.boucadair-dots-server-discovery"></xref>) using the DNS
        servers learned from the same provisioning domain. The DOTS client
        MUST use the source address selection algorithm defined in <xref
        target="RFC6724"></xref> to select the candidate source addresses to
        contact each of these DOTS servers. DOTS signaling sessions must be
        established and maintained with each of the DOTS servers because the
        mitigation scope of these servers is restricted. The DOTS client
        SHOULD use the certificate provisioned by a provisioning domain to
        authenticate itself to the DOTS server provided by the same
        provisioning domain. When conveying a mitigation request to protect
        the attack target(s), the DOTS client among the DOTS servers available
        MUST select a DOTS server whose network has assigned the prefixes from
        which target prefixes and target IP addresses are derived. For
        example, mitigation request to protect target resources bound to a PA
        IP address/prefix cannot be honored by an provisioning domain other
        than the one that owns those addresses/prefixes. Consequently,
        Typically, if a CPE detects a DDoS attack on all its network
        attachments, it must contact both DOTS servers for mitigation.
        Nevertheless, if the DDoS attack is received from one single network,
        then only the DOTS server of that network must be contacted.</t>

        <t>The DOTS client MUST be able to associate a DOTS server with each
        provisioning domain. For example, if the DOTS client is provisioned
        with S1 using DHCP when attaching to a first network and with S2 using
        Protocol Configuration Option (PCO) when attaching to a second
        network, the DOTS client must record the interface from which a DOTS
        server was provisioned. DOTS signaling session to a given DOTS server
        must be established using the interface from which the DOTS server was
        provisioned.</t>

        <t><figure align="center" anchor="dotsrcpe"
            title="DOTS associations for a multihomed residential CPE">
            <artwork align="center"><![CDATA[                          +--+
               -----------|S1|
              /           +--+
             /            
            /
      +---+/  
      | C |
      +---+\  
            \ 
             \
              \           +--+
               -----------|S2|
                          +--+
]]></artwork>
          </figure></t>
      </section>

      <section title="Multi-homed Enterprise: Single CPE, Multiple Upstream ISPs">
        <t><xref target="dotsmcgms"></xref> illustrates a first set of DOTS
        associations that can be established with a DOTS gateway is enabled in
        the context of the scenario described in <xref target="sc2"></xref>.
        This deployment is characterized as follows:</t>

        <t><list style="symbols">
            <t>One of more DOTS clients are enabled in hosts located in the
            internal network.</t>

            <t>A DOTS getaway is enabled to aggregate/relay the requests to
            upstream DOTS servers.</t>
          </list>When PA addresses/prefixes are in used, the same
        considerations discussed in <xref target="dcpe"></xref> are to be
        followed by the DOTS gateway to contact its DOTS server(s). The DOTS
        gateways can be reachable from DOTS client using a unicast or anycast
        address.</t>

        <t>Nevertheless, when PI addresses/prefixes are assigned, the DOTS
        gateway MUST sent the same request to all its DOTS servers.</t>

        <t><figure align="center" anchor="dotsmcgms"
            title="Multiple DOTS Clients, Single DOTS Gateway, Multiple DOTS Servers">
            <artwork align="center"><![CDATA[                               +--+
                    -----------|S1|
    +---+          /           +--+
    | C1|----+    /            
    +---+    |   /
+---+      +-+-+/  
| C3|------| G |
+---+      +-+-+\  
    +---+    |   \ 
    | C2|----+    \
    +---+          \           +--+
                    -----------|S2|
                               +--+
]]></artwork>
          </figure></t>

        <t>An alternate deployment model is depicted in <xref
        target="mcms"></xref>. This deployment assumes that:</t>

        <t><list style="symbols">
            <t>One of more DOTS clients are enabled in hosts located in the
            internal network. These DOTS client may use <xref
            target="I-D.boucadair-dots-server-discovery"></xref> to discover
            its DOTS server(s).</t>

            <t>These DOTS clients communicate directly with upstream DOTS
            servers.</t>
          </list>If PI addresses/prefixes are in use, the DOTS client can send
        the mitigation request for all its PI addresses/prefixes to any one of
        the DOTS servers. The use of anycast addresses is NOT RECOMMENDED.</t>

        <t>If PA addresses/prefxies are used, the same considerations
        discussed in <xref target="dcpe"></xref> are to be followed by the
        DOTS clients. Because DOTS clients are not located on the CPE and
        multiple addreses/prefixes may not be assigned to the DOTS client
        (IPv4 context, typically), some complications arise to steer the
        traffic to the appropriate DOTS server using the appropriate source IP
        address. These complications discussed in <xref
        target="RFC4116"></xref> are not specific to DOTS .</t>

        <t><figure align="center" anchor="mcms"
            title="Multiple DOTS Clients, Multiple DOTS Servers">
            <artwork align="center"><![CDATA[                 
          +--+         
 +--------|C1|--------+                
 |        +--+        |      
+--+      +--+      +--+
|S2|------|C3|------|S1|
+--+      +--+      +--+
 |        +--+        |     
 +--------|C2|--------+     
          +--+           
]]></artwork>
          </figure></t>

        <t>Another deployment approach is to enable many DOTS clients; each of
        them responsible to handle communication with a specific DOTS server
        (see <xref target="scms"></xref>). Each DOTS client is provided with
        policies (e.g., prefix filter) that will trigger DOTS communications
        with the DOTS servers. The CPE MUST select the appropriate source IP
        address when forwarding DOTS messages received from an internal DOTS
        client. If anycast addresses are used to reach DOTS servers, the CPE
        may not be able to select the appropriate provisioning domain to which
        the mitigation request should be forwarded. As a consequence, the
        request may not be forwarded to the appropriate DOTS server.</t>

        <t><figure align="center" anchor="scms"
            title="Single Homed DOTS Clients">
            <artwork align="center"><![CDATA[                 
          +--+         
 +--------|C1|                 
 |        +--+  
+--+      +--+      +--+
|S2|      |C2|------|S1|
+--+      +--+      +--+

]]></artwork>
          </figure></t>
      </section>

      <section title="Multi-homed Enterprise: Multiple CPEs, Multiple Upstream ISPs">
        <t>The deployments depicted in <xref target="mcms"></xref> and <xref
        target="scms"></xref> apply also for the scenario described in <xref
        target="sc3"></xref>. One specific problem for this scenario is to
        select the appropriate exit router when contacting a given DOTS
        server.</t>

        <t>An alternative deployment scheme is shown in <xref
        target="mcmgms"></xref>:<list style="symbols">
            <t>DOTS clients are enabled in hosts located in the internal
            network.</t>

            <t>A DOTS gateway is enabled in each CPE (rtr1, rtr2).</t>

            <t>Each of these DOTS gateways communicate with the DOTS server of
            the provisioning domain.</t>
          </list></t>

        <t>When PI addresses/prefixes are used, DOTS clients can contact any
        of the DOTS gateways to send a DOTS message. DOTS gateway will then
        relay the request to the DOTS server. Note that the use of anycast
        addresses is NOT RECOMMENDED to establish DOTS signaling sessions
        between DOTS client and DOTS gateways.</t>

        <t>When PA addresses/prefixes are used, but no filter rules are
        provided to DOTS clients, these later MUST contact all DOTS gateways
        simultaneously to send a DOTS message. Upon receipt of a request by a
        DOTS gateway, it MUST check whether the request is to be forwarded
        upstream or be rejected.</t>

        <t>When PA addresses/prefixes are used, but specific filter rules are
        provided to DOTS clients using some means that are out of scope, these
        later MUST select the appropriate DOTS gateway to be contacted. The
        use of anycast is NOT RECOMMENDED to reach DOTS gateways.</t>

        <t><figure align="center" anchor="mcmgms"
            title="Multiple DOTS Clients, Multiple DOTS Gateways, Multiple DOTS Servers">
            <artwork align="center"><![CDATA[                 
                         +---+         
            +------------| C1|----+                
            |            +---+    |      
+--+      +-+-+      +---+      +-+-+      +--+  
|S2|------|G2 |------| C3|------|G1 |------|S1|
+--+      +-+-+      +---+      +-+-+      +--+ 
            |            +---+    |     
            +------------| C2|----+     
                         +---+           
]]></artwork>
          </figure></t>
      </section>

      <section title="Multi-homed Enterprise: Single ISP">
        <t>The key difference of the scenario described in <xref
        target="sc4"></xref> compared to the other scenarios is that
        multi-homing is provided by the same ISP. Concretely, that ISP can
        decided to provision the enterprise network with:</t>

        <t><list style="numbers">
            <t>The same DOTS server for all network attachments.</t>

            <t>Distinct DOTS servers for each network attachment. These DOTS
            servers needs to coordinate when a mitigation action is received
            from the enterprise network.</t>
          </list></t>

        <t>In both cases, DOTS agents enabled within the enterprise network
        may decide to select one or all network attachments to place DOTS
        mitigation requests.</t>
      </section>
    </section>

    <section anchor="Security" title="Security Considerations">
      <t>DOTS-related security considerations are discussed in Section 4 of
      <xref target="I-D.ietf-dots-architecture"></xref>.</t>

      <t>TBD: In Home networks, if EST is used then how will the DOTS gateway
      (EST client) be provisioned with credentials for initial enrolment (see
      Section 2.2 in RFC 7030).</t>
    </section>

    <section anchor="IANA" title="IANA Considerations">
      <t>This document does not require any action from IANA.</t>
    </section>

    <section anchor="Acknowledgements" title="Acknowledgements">
      <t>Thanks to Roland Dobbins and Nik Teague for sharing their comments on
      the mailing list.</t>

      <t>Thanks to Kirill Kasavchenko for the comments. </t>
    </section>
  </middle>

  <back>
    <references title="Normative References">
      <?rfc include="reference.RFC.2119"?>

      <?rfc include='reference.RFC.6724'?>

      <?rfc include='reference.I-D.ietf-dots-architecture'?>
    </references>

    <references title="Informative References">
      <?rfc include='reference.RFC.4732'?>

      <?rfc include='reference.RFC.3582'?>

      <?rfc include='reference.RFC.4116'?>

      <?rfc include='reference.RFC.8043'?>

      <?rfc include='reference.RFC.7556'?>

      <?rfc include='reference.I-D.boucadair-dots-server-discovery'?>

      <?rfc include='reference.I-D.ietf-dots-signal-channel'?>

      <?rfc include='reference.I-D.ietf-dots-data-channel'?>

      <?rfc include='reference.I-D.ietf-dots-use-cases'?>
    </references>
  </back>
</rfc>
