Internet Engineering Task Force (IETF)                      M. Boucadair
Request for Comments: 8973                                        Orange
Category: Standards Track                                     T. Reddy.K
ISSN: 2070-1721                                                   McAfee
                                                           January 2021


          DDoS Open Threat Signaling (DOTS) Agent Discovery

Abstract

  This document specifies mechanisms to configure DDoS Open Threat
  Signaling (DOTS) clients with their DOTS servers.  The discovery
  procedure also covers the DOTS signal channel Call Home.  It can be
  useful to know the appropriate DOTS server for a given location in
  order to engage mitigation actions.  This is true even in cases where
  the DOTS client cannot localize the attack: cases where it only knows
  that some resources are under attack and that help is needed.

Status of This Memo

  This is an Internet Standards Track document.

  This document is a product of the Internet Engineering Task Force
  (IETF).  It represents the consensus of the IETF community.  It has
  received public review and has been approved for publication by the
  Internet Engineering Steering Group (IESG).  Further information on
  Internet Standards is available in Section 2 of RFC 7841.

  Information about the current status of this document, any errata,
  and how to provide feedback on it may be obtained at
  https://www.rfc-editor.org/info/rfc8973.

Copyright Notice

  Copyright (c) 2021 IETF Trust and the persons identified as the
  document authors.  All rights reserved.

  This document is subject to BCP 78 and the IETF Trust's Legal
  Provisions Relating to IETF Documents
  (https://trustee.ietf.org/license-info) in effect on the date of
  publication of this document.  Please review these documents
  carefully, as they describe your rights and restrictions with respect
  to this document.  Code Components extracted from this document must
  include Simplified BSD License text as described in Section 4.e of
  the Trust Legal Provisions and are provided without warranty as
  described in the Simplified BSD License.

Table of Contents

  1.  Introduction
  2.  Terminology
  3.  Why Multiple Discovery Mechanisms?
  4.  DOTS Discovery Procedure
  5.  DHCP Options for DOTS Agent Discovery
    5.1.  DHCPv6 DOTS Options
      5.1.1.  Format of DOTS Reference Identifier Option
      5.1.2.  Format of DOTS Address Option
      5.1.3.  DHCPv6 Client Behavior
    5.2.  DHCPv4 DOTS Options
      5.2.1.  Format of DOTS Reference Identifier Option
      5.2.2.  Format of DOTS Address Option
      5.2.3.  DHCPv4 Client Behavior
  6.  Discovery Using Service Resolution
  7.  DNS Service Discovery
  8.  Security Considerations
    8.1.  DHCP
    8.2.  Service Resolution
    8.3.  DNS Service Discovery
  9.  IANA Considerations
    9.1.  Service Name and Transport Protocol Port Number Registry
    9.2.  DHCPv6 Options
    9.3.  DHCPv4 Options
    9.4.  Application Service & Application Protocol Tags
      9.4.1.  DOTS Application Service Tag Registration
      9.4.2.  DOTS Call Home Application Service Tag Registration
      9.4.3.  signal.udp Application Protocol Tag Registration
      9.4.4.  signal.tcp Application Protocol Tag Registration
      9.4.5.  data.tcp Application Protocol Tag Registration
  10. References
    10.1.  Normative References
    10.2.  Informative References
  Acknowledgements
  Contributors
  Authors' Addresses

1.  Introduction

  DDoS Open Threat Signaling (DOTS) [RFC8811] specifies an architecture
  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, the DOTS signal
  channel protocol [RFC8782] is meant to carry requests for DDoS attack
  mitigation.  With this approach, DOTS can reduce the impact of an
  attack and lead to more efficient defensive actions in various
  deployment scenarios, such as those discussed in [DOTS-USE-CASES].
  Moreover, DOTS clients can instruct a DOTS server to install named
  filtering rules by means of the DOTS data channel protocol [RFC8783].

  The basic high-level DOTS architecture is illustrated in Figure 1.

                +-----------+            +-------------+
                | Mitigator | ~~~~~~~~~~ | DOTS Server |
                +-----------+            +------+------+
                                                |
                                                |
                                                |
                +---------------+        +------+------+
                | Attack Target | ~~~~~~ | DOTS Client |
                +---------------+        +-------------+

                    Figure 1: Basic DOTS Architecture

  [RFC8811] 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 sessions by connecting to
  the provided DOTS server addresses.

  This document specifies methods for DOTS clients to discover their
  DOTS server(s).  The rationale for specifying multiple discovery
  mechanisms is discussed in Section 3.

  The discovery methods can also be used by a DOTS server to locate a
  DOTS client in the context of DOTS signal channel Call Home
  [DOTS-SIG-CALL-HOME].  The basic high-level DOTS Call Home
  architecture is illustrated in Figure 2.

                +---------------+        +-------------+
                | Alert         | ~~~~~~ |  Call Home  |
                |               |        | DOTS Client |
                +---------------+        +------+------+
                                                |
                                                |
                                                |
                +---------------+        +------+------+
                |    Attack     | ~~~~~~ |  Call Home  |
                |   Source(s)   |        | DOTS Server |
                +---------------+        +-------------+

  Figure 2: Basic DOTS Signal Channel Call Home Functional Architecture

  A DOTS agent may be used to establish base DOTS channels, DOTS Call
  Home, or both.  This specification accommodates all these deployment
  cases.

  Considerations for the selection of DOTS server(s) by multihomed DOTS
  clients are out of this document's scope; readers should refer to
  [DOTS-MULTIHOMING] for more details.

  This document assumes that security credentials to authenticate DOTS
  server(s) are pre-provisioned to a DOTS client using a mechanism such
  as (but not limited to) those discussed in [RFC8572] or
  [BTSRP-KEYINFR].  DOTS clients use those credentials for
  authentication purposes following the rules documented in [RFC8782].

2.  Terminology

  The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
  "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
  "OPTIONAL" in this document are to be interpreted as described in
  BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all
  capitals, as shown here.

  The reader should be familiar with the terms defined in [RFC3958].

  This document makes use of the following terms:

  DHCP:  refers to both DHCPv4 [RFC2131] and DHCPv6 [RFC8415].

  DOTS client:  refers to a DOTS-aware software module responsible for
     requesting attack response coordination with other DOTS-aware
     elements.

  DOTS server:  is a DOTS-aware software module handling and responding
     to messages from DOTS clients.  The DOTS server enables mitigation
     on behalf of the DOTS client, if requested, by communicating the
     DOTS client's request to the mitigator and returning selected
     mitigator feedback to the requesting DOTS client.

  Call Home DOTS client or server:  refers to a DOTS client or server
     deployed in a Call Home scenario (Figure 2).

  DOTS agent:  is any DOTS-aware software module capable of
     participating in a DOTS channel.

  Peer DOTS agent:  refers to the peer DOTS server (base DOTS
     operation) or to a peer Call Home DOTS client (for DOTS signal
     channel Call Home).

3.  Why Multiple Discovery Mechanisms?

  Analysis of the various use cases sketched in [DOTS-USE-CASES]
  reveals that it is unlikely that one single discovery method can be
  suitable for all the sample deployments.  Concretely:

  *  Many of the use cases discussed in [DOTS-USE-CASES] do involve
     Customer Premises Equipment (CPE).  Multiple CPEs connected to
     distinct network providers may even be considered.  It is
     intuitive to leverage existing mechanisms, such as discovery using
     service resolution or DHCP, to provision the CPE acting as a DOTS
     client with the DOTS server(s).

  *  Resolving a DOTS server domain name offered by an upstream transit
     provider provisioned to a DOTS client into IP address(es) requires
     the use of the appropriate DNS resolvers; otherwise, resolving
     those names will fail.  The use of protocols, such as DHCP, does
     allow associating provisioned DOTS server domain names with a list
     of DNS servers to be used for name resolution.  Furthermore, DHCP
     allows for directly providing IP addresses, therefore, avoiding
     the need for extra lookup delays.

  *  Some of the use cases may allow DOTS clients to have direct
     communications with upstream DOTS servers, that is, no DOTS
     gateway is involved.  Leveraging existing protocol behaviors that
     do not require specific features on the node embedding the DOTS
     client may ease DOTS deployment.  Typically, the use of
     Straightforward-Naming Authority Pointer (S-NAPTR) lookups
     [RFC3958] allows the DOTS server administrators to provision the
     preferred DOTS transport protocol between the DOTS client and the
     DOTS server and allows the DOTS client to discover this
     preference.

  *  The upstream network provider is not the DDoS mitigation provider
     for some of these use cases.  It is safe to assume that, for such
     deployments, the DOTS server(s) domain name is provided during the
     service subscription (i.e., manual/local configuration).

  *  Multiple DOTS clients may be enabled within a network (e.g., an
     enterprise network).  Dynamic discovery needs to be deterministic
     from an operational standpoint.

  *  Some of the use cases may involve a DOTS gateway that is
     responsible for selecting the appropriate DOTS server(s) to relay
     requests received from DOTS clients.

  Consequently, this document describes a unified discovery logic
  (Section 4) that involves the following mechanisms:

  *  dynamic discovery using DHCP (Section 5)

  *  a resolution mechanism based on S-NAPTR resource records in the
     DNS (Section 6)

  *  DNS Service Discovery (Section 7)

4.  DOTS Discovery Procedure

  Operators will need a consistent set of ways in which DOTS clients
  can discover this information and a consistent priority among these
  options.  If some devices prefer manual configuration over dynamic
  discovery while others prefer dynamic discovery over manual
  configuration, the result will be a process where the operator must
  find devices that are using the wrong DOTS server(s), determine how
  to ensure the devices are configured properly, and then reconfigure
  the device through the preferred method.

  All DOTS clients MUST support at least one of the three mechanisms
  below to determine a DOTS server list.  All DOTS clients SHOULD
  implement all three, or as many as are practical for any specific
  device, of the following ways to discover DOTS servers in order to
  facilitate the deployment of DOTS in large-scale environments.  For
  example, a CPE will support the first two mechanisms, a host within a
  LAN will support the last two mechanisms, or an application server
  will support a local configuration.  More examples are discussed in
  Section 3.  DOTS clients will prefer information received from the
  discovery methods in the order listed below.

  1.  Explicit Configuration:

      Local/Manual Configuration:  A DOTS client will learn the DOTS
         server(s) by means of local or manual DOTS configuration
         (i.e., DOTS servers configured at the system level).
         Configuration discovered from a DOTS client application is
         considered a local configuration.

         An implementation may give the user an opportunity (e.g., by
         means of configuration file options or menu items) to specify
         DOTS server(s) for each address family.  These may be
         specified either as a list of IP addresses or the DNS name of
         a DOTS server.  When only DOTS server IP addresses are
         configured, a reference identifier must also be configured for
         authentication purposes.

      Automatic Configuration (e.g., DHCP):  The DOTS client attempts
         to discover DOTS server(s) names and/or addresses from DHCP,
         as described in Section 5.

  2.  Service Resolution: The DOTS client attempts to discover DOTS
      server name(s) using service resolution, as specified in
      Section 6.

  3.  DNS-SD: DNS-based Service Discovery.  The DOTS client attempts to
      discover DOTS server name(s) using DNS service discovery, as
      specified in Section 7.

  Some of these mechanisms imply the use of DNS to resolve the IP
  address(es) of the DOTS server, while others imply an IP address of
  the relevant DOTS server is obtained directly.  Implementation
  options may vary on a per-device basis, as some devices may not have
  DNS capabilities and/or suitable DNS configuration.

  On hosts with more than one interface or address family (IPv4/IPv6),
  the DOTS server discovery procedure has to be performed for each
  interface-/address-family combination.  A DOTS client may choose to
  perform the discovery procedure only for a desired interface/address
  combination if the client does not wish to discover a DOTS server for
  all interface-/address-family combinations.

  This procedure is also followed by a Call Home DOTS server to
  discover its Call Home DOTS client in the context of
  [DOTS-SIG-CALL-HOME].

  The discovery method is performed upon the bootstrapping of a DOTS
  agent and is reiterated by the DOTS agent upon the following events:

  *  expiry of a validity timer (e.g., DHCP lease, DHCP information
     refresh time, or DNS TTL) associated with a discovered DOTS agent

  *  expiry of the certificate of a peer DOTS agent currently in use

  *  attachment to a new network

5.  DHCP Options for DOTS Agent Discovery

  As reported in Section 1.7.2 of [RFC6125]:

  |  Some certification authorities issue server certificates based on
  |  IP addresses, but preliminary evidence indicates that such
  |  certificates are a very small percentage (less than 1%) of issued
  |  certificates.

  In order to allow for PKIX-based authentication between a DOTS client
  and server while accommodating the current best practices for issuing
  certificates, this document allows DOTS agents to retrieve the names
  of their peer DOTS agents.  These names can be used for two purposes:
  (1) to retrieve the list of IP addresses of a peer DOTS agent or (2)
  to be presented as a reference identifier for authentication
  purposes.

  Defining the option to include a list of IP addresses would avoid
  depending on an underlying name resolution, but that design requires
  also supplying a name for PKIX-based authentication purposes.

  Given that DOTS gateways can be involved in a DOTS session, a peer
  DOTS agent can be reachable using a link-local address.  Such
  addresses can also be discovered using the options defined in
  Section 5.1.

  The list of the IP addresses returned by DHCP servers is typically
  used to feed the DOTS server selection procedure, including when DOTS
  agents are provided with primary and backup IP addresses of their
  peer DOTS agents.  An example of the DOTS server selection procedure
  is specified in Section 4.3 of [RFC8782].

  The design assumes that the same peer DOTS agent is used for
  establishing both signal and data channels.  For more customized
  configurations (e.g., transport-specific configuration and distinct
  DOTS servers for the signal and data channels), an operator can
  supply only a DOTS reference identifier that will be then passed to
  the procedure described in Section 6.

  The design allows terminating the base DOTS channels and DOTS Call
  Home on the same or distinct peer DOTS agents.  If distinct peer DOTS
  agents are deployed, the DHCP option can return, for example, a list
  of IP addresses to a requesting DOTS agent.  This list includes the
  IP address to be used for the base DOTS channels and the IP address
  for the DOTS Call Home.  The DOTS client (or Call Home DOTS server)
  will then use the address selection procedure specified in
  Section 4.3 of [RFC8782] to identify the IP address of the peer DOTS
  server (or Call Home DOTS client).

  For example, let's consider that the DOTS server is reachable at
  2001:db8:122:300::1, while the Call Home DOTS client is reachable at
  2001:db8:122:300::2.  The DHCP server will then return one DOTS
  reference identifier and a list that includes both
  2001:db8:122:300::1 and 2001:db8:122:300::2 to a requesting DHCP
  client.  That list is passed to the DOTS client (or Call Home DOTS
  server), which will try to establish connections to the addresses of
  that list and destination port number 4646 (or the Call Home port
  number).  As a result, the DOTS client (or Call Home DOTS server)
  will select 2001:db8:122:300::1 (or 2001:db8:122:300::2) as a DOTS
  server (or Call Home DOTS client).

5.1.  DHCPv6 DOTS Options

5.1.1.  Format of DOTS Reference Identifier Option

  The DHCPv6 DOTS Reference Identifier option is used to configure the
  name of the DOTS server (or the name of the Call Home DOTS client).
  The format of this option is shown in Figure 3.

   0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |     OPTION_V6_DOTS_RI         |         Option-length         |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |                                                               |
  |                      dots-agent-name (FQDN)                   |
  |                                                               |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

            Figure 3: DHCPv6 DOTS Reference Identifier Option

  The fields of the option shown in Figure 3 are as follows:

  Option-code:  OPTION_V6_DOTS_RI (141, see Section 9.2).
  Option-length:  Length of the dots-agent-name field in octets.
  dots-agent-name:  A fully qualified domain name of the peer DOTS
     agent.  This field is formatted as specified in Section 10 of
     [RFC8415].

  An example of the dots-agent-name encoding is shown in Figure 4.
  This example conveys the FQDN "dots.example.com", and the resulting
  Option-length field is 18.

  +------+------+------+------+------+------+------+------+------+
  | 0x04 |   d  |   o  |   t  |  s   | 0x07 |   e  |   x  |   a  |
  +------+------+------+------+------+------+------+------+------+
  |   m  |   p  |   l  |   e  | 0x03 |   c  |   o  |   m  | 0x00 |
  +------+------+------+------+------+------+------+------+------+

           Figure 4: An Example of the dots-agent-name Encoding


5.1.2.  Format of DOTS Address Option

  The DHCPv6 DOTS Address option can be used to configure a list of
  IPv6 addresses of a DOTS server (or a Call Home DOTS client).  The
  format of this option is shown in Figure 5.

   0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |  OPTION_V6_DOTS_ADDRESS       |         Option-length         |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |                                                               |
  |                    DOTS ipv6-address                          |
  |                                                               |
  |                                                               |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |                                                               |
  |                    DOTS ipv6-address                          |
  |                                                               |
  |                                                               |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |                              ...                              |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                   Figure 5: DHCPv6 DOTS Address Option

  The fields of the option shown in Figure 5 are as follows:

  Option-code:  OPTION_V6_DOTS_ADDRESS (142, see Section 9.2).
  Option-length:  Length of the DOTS ipv6-address fields in octets.
     This MUST be a multiple of 16.
  DOTS ipv6-address:  Includes one or more IPv6 addresses [RFC4291] of
     the peer DOTS agent to be used by a DOTS agent for establishing a
     DOTS session.  The addresses are listed in the order of preference
     for use by the DOTS agent.

  Note that IPv4-mapped IPv6 addresses (Section 2.5.5.2 of [RFC4291])
  may be included in this option when there is no DHCPv4 server able to
  advertise the DHCPv4 DOTS options (Section 5.2) and when only IPv4
  connectivity is possible to the peer DOTS agent.


5.1.3.  DHCPv6 Client Behavior

  DHCP clients MAY request options OPTION_V6_DOTS_RI and
  OPTION_V6_DOTS_ADDRESS, as defined in Sections 18.2.1, 18.2.2,
  18.2.4, 18.2.5, 18.2.6, and 21.7 of [RFC8415].  As a convenience to
  the reader, it is mentioned here that the DHCP client includes the
  requested option codes in the Option Request option.

  If the DHCP client receives more than one instance of option
  OPTION_V6_DOTS_RI (or OPTION_V6_DOTS_ADDRESS), it MUST use only the
  first instance of that option.

  The DHCP client MUST silently discard multicast and host loopback
  addresses [RFC6890] conveyed in OPTION_V6_DOTS_ADDRESS.

  If the DHCP client receives and validates both OPTION_V6_DOTS_RI and
  OPTION_V6_DOTS_ADDRESS, the content of OPTION_V6_DOTS_RI is used as
  the reference identifier for authentication purposes (e.g., PKIX
  [RFC6125]), while the valid addresses included in
  OPTION_V6_DOTS_ADDRESS are used to reach the peer DOTS agent.  In
  other words, the name conveyed in OPTION_V6_DOTS_RI MUST NOT be
  passed to an underlying resolution library in the presence of a valid
  OPTION_V6_DOTS_ADDRESS in a response.

  If the DHCP client receives OPTION_V6_DOTS_RI only, but
  OPTION_V6_DOTS_RI contains more than one name, the DHCP client MUST
  use only the first name.  Once the name is validated (Section 10 of
  [RFC8415]), the name is passed to a name resolution library.
  Moreover, that name is also used as a reference identifier for
  authentication purposes.

  If the DHCP client receives OPTION_V6_DOTS_ADDRESS only, the
  address(es) included in OPTION_V6_DOTS_ADDRESS are used to reach the
  peer DOTS agent.  In addition, these addresses can be used as
  identifiers for authentication.

5.2.  DHCPv4 DOTS Options

5.2.1.  Format of DOTS Reference Identifier Option

  The DHCPv4 [RFC2132] DOTS Reference Identifier option is used to
  configure a name of the peer DOTS agent.  The format of this option
  is illustrated in Figure 6.

   Code  Length   Peer DOTS agent name
  +-----+-----+-----+-----+-----+-----+-----+--
  | 147 |  n  |  s1 |  s2 |  s3 |  s4 | s5  |  ...
  +-----+-----+-----+-----+-----+-----+-----+--

            Figure 6: DHCPv4 DOTS Reference Identifier Option

  The values s1, s2, s3, etc. represent the domain name labels in the
  domain name encoding.

  The fields of the option shown in Figure 6 are as follows:

  Code:  OPTION_V4_DOTS_RI (147, see Section 9.3).
  Length:  Includes the length of the "Peer DOTS agent name" field in
     octets.
  Peer DOTS agent name:  The domain name of the peer DOTS agent.  This
     field is formatted as specified in Section 10 of [RFC8415].

5.2.2.  Format of DOTS Address Option

  The DHCPv4 DOTS Address option can be used to configure a list of
  IPv4 addresses of a peer DOTS agent.  The format of this option is
  illustrated in Figure 7.

   0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |  Code=148     |     Length    |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |                               |
  |       DOTS IPv4 Address       |
  |                               |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+  ---
  |                               |   |
  |       DOTS IPv4 Address       |   |
  |                               | optional
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+   |
  .             ...               .   |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+  ---

                   Figure 7: DHCPv4 DOTS Address Option

  The fields of the option shown in Figure 7 are as follows:

  Code:  OPTION_V4_DOTS_ADDRESS (148, see Section 9.3).
  Length:  Set to 4*N, where N is the number of IPv4 addresses included
     in the option.
  DOTS IPv4 Address(es):  Contains one or more IPv4 addresses of the
     peer DOTS agent to be used by a DOTS agent.  The addresses are
     listed in the order of preference for use by the DOTS agent.

  OPTION_V4_DOTS_ADDRESS is a concatenation-requiring option.  As such,
  the mechanism specified in [RFC3396] MUST be used if
  OPTION_V4_DOTS_ADDRESS exceeds the maximum DHCPv4 option size of 255
  octets.

5.2.3.  DHCPv4 Client Behavior

  To discover a peer DOTS agent, the DHCPv4 client MUST include both
  OPTION_V4_DOTS_RI and OPTION_V4_DOTS_ADDRESS in a Parameter Request
  List option [RFC2132].

  If the DHCP client receives more than one instance of
  OPTION_V4_DOTS_RI option, it MUST use only the first instance of that
  option.

  The DHCP client MUST silently discard multicast and host loopback
  addresses [RFC6890] conveyed in OPTION_V4_DOTS_ADDRESS.

  If the DHCP client receives and validates both OPTION_V4_DOTS_RI and
  OPTION_V4_DOTS_ADDRESS, the content of OPTION_V4_DOTS_RI is used as
  the reference identifier for authentication purposes (e.g., PKIX
  [RFC6125]), while the valid addresses included in
  OPTION_V4_DOTS_ADDRESS are used to reach the peer DOTS agent.  In
  other words, the name conveyed in OPTION_V4_DOTS_RI MUST NOT be
  passed to an underlying resolution library in the presence of valid
  OPTION_V4_DOTS_ADDRESS in a response.

  If the DHCP client receives OPTION_V4_DOTS_RI only, but
  OPTION_V4_DOTS_RI option contains more than one name, as
  distinguished by the presence of multiple root labels, the DHCP
  client MUST use only the first name.  Once the name is validated
  (Section 10 of [RFC8415]), the name is passed to a name resolution
  library.  Moreover, that name is also used as a reference identifier
  for authentication purposes.

  If the DHCP client receives OPTION_V4_DOTS_ADDRESS only, the
  address(es) included in OPTION_V4_DOTS_ADDRESS are used to reach the
  peer DOTS server.  In addition, these addresses can be used as
  identifiers for authentication.

6.  Discovery Using Service Resolution

  This mechanism is performed in two steps:

  1.  A DNS domain name is retrieved for each combination of interface
      and address family.  A DOTS agent has to determine the domain in
      which it is located relying on dynamic means, such as DHCP
      (Section 5).  Implementations may allow the user to specify a
      default name that is used if no specific name has been
      configured.

  2.  Retrieved DNS domain names are then used for S-NAPTR lookups
      [RFC3958].  Further DNS lookups may be necessary to determine the
      peer DOTS agent IP address(es).

  Once the DOTS agent has retrieved its DNS domain or discovered the
  peer DOTS agent name that needs to be resolved, an S-NAPTR lookup
  with the appropriate application service and the desired protocol tag
  is made to obtain information necessary to connect to the
  authoritative peer DOTS agent within the given domain.

  This specification defines "DOTS" and "DOTS-CALL-HOME" as application
  service tags (Sections 9.4.1 and 9.4.2).  It also defines
  "signal.udp" (Section 9.4.3), "signal.tcp" (Section 9.4.4), and
  "data.tcp" (Section 9.4.5) as application protocol tags.  An example
  is provided in Figure 8.

  In the example below, for domain "example.net", the resolution
  algorithm will result in IP address, port, tag, and protocol tuples
  listed in Table 1.

  example.net.
  IN NAPTR 100 10 "" DOTS:signal.udp "" signal.example.net.
  IN NAPTR 200 10 "" DOTS:signal.tcp "" signal.example.net.
  IN NAPTR 300 10 "" DOTS:data.tcp "" data.example.net.

  signal.example.net.
  IN NAPTR 100 10 "s" DOTS:signal.udp "" _dots-signal._udp.example.net.
  IN NAPTR 200 10 "s" DOTS:signal.tcp "" _dots-signal._tcp.example.net.

  data.example.net.
  IN NAPTR 100 10 "s" DOTS:data.tcp "" _dots-data._tcp.example.net.
  IN NAPTR 200 10 "a" DOTS:data.tcp "" b.example.net.

  _dots-signal._udp.example.net.
  IN SRV   0 0 5000 a.example.net.

  _dots-signal._tcp.example.net.
  IN SRV   0 0 5001 a.example.net.

  _dots-data._tcp.example.net.
  IN SRV   0 0 5002 a.example.net.

  a.example.net.
  IN AAAA  2001:db8::1

  b.example.net.
  IN AAAA  2001:db8::2

       Figure 8: Example of Discovery of DOTS Servers Using Service
                                Resolution

           +=======+==========+=============+======+========+
           | Order | Protocol | IP address  | Port | Tag    |
           +=======+==========+=============+======+========+
           | 1     | UDP      | 2001:db8::1 | 5000 | Signal |
           +-------+----------+-------------+------+--------+
           | 2     | TCP      | 2001:db8::1 | 5001 | Signal |
           +-------+----------+-------------+------+--------+
           | 3     | TCP      | 2001:db8::1 | 5002 | Data   |
           +-------+----------+-------------+------+--------+
           | 4     | TCP      | 2001:db8::2 | 443  | Data   |
           +-------+----------+-------------+------+--------+

                      Table 1: Resolution Results

  An example is provided in Figure 9 for the Call Home case.  In this
  example, the resolution algorithm will result in IP address, port,
  and protocol tuples listed in Table 2 for domain "example.net".

  example.net.
  IN NAPTR 100 10 "" DOTS-CALL-HOME:signal.udp "" signal.example.net.
  IN NAPTR 200 10 "" DOTS-CALL-HOME:signal.tcp "" signal.example.net.

  signal.example.net.
  IN NAPTR 100 10 "s" DOTS-CALL-HOME:signal.udp ""
              _dots-call-home._udp.example.net.
  IN NAPTR 200 10 "s" DOTS-CALL-HOME:signal.tcp ""
              _dots-call-home._tcp.example.net.

  _dots-call-home._udp.example.net.
  IN SRV   0 0 6000 b.example.net.

  _dots-call-home._tcp.example.net.
  IN SRV   0 0 6001 b.example.net.

  b.example.net.
  IN AAAA  2001:db8::2

  Figure 9: Example of Discovery of DOTS Call Home Client Using Service
                                Resolution

                +=======+==========+=============+======+
                | Order | Protocol | IP address  | Port |
                +=======+==========+=============+======+
                | 1     | UDP      | 2001:db8::2 | 6000 |
                +-------+----------+-------------+------+
                | 2     | TCP      | 2001:db8::2 | 6001 |
                +-------+----------+-------------+------+

                 Table 2: Resolution Results (Call Home)

  Note that customized port numbers are used for the DOTS signal
  channel, DOTS data channel, and DOTS signal channel Call Home in the
  examples shown in Figures 8 and 9 for illustration purposes.  If
  default port numbers are used in a deployment, the discovery
  procedure will return 4646 (DOTS signal channel) and 443 (DOTS data
  channel) as DOTS service port numbers.

  If no DOTS-specific S-NAPTR records can be retrieved, the discovery
  procedure fails for this domain name (and the corresponding interface
  and IP protocol version).  If more domain names are known, the
  discovery procedure MAY perform the corresponding S-NAPTR lookups
  immediately.  However, before retrying a lookup that has failed, a
  DOTS client MUST wait a time period that is appropriate for the
  encountered error (e.g., NXDOMAIN, timeout, etc.).

7.  DNS Service Discovery

  DNS-based Service Discovery (DNS-SD) [RFC6763] provides generic
  solutions for discovering services.  DNS-SD defines a set of naming
  rules for certain DNS record types that they use for advertising and
  discovering services.

  Section 4.1 of [RFC6763] specifies that a service instance name in
  DNS-SD has the following structure:

  <Instance> . <Service> . <Domain>

  The <Domain> portion specifies the DNS subdomain where the service
  instance is registered.  It is a conventional domain name, such as
  "example.com".

  The <Service> portion of the DOTS service instance name MUST be
  "_dots-signal._udp", "_dots-signal._tcp", "_dots-data._tcp", "_dots-
  call-home._udp", or "_dots-call-home._tcp".

  This document does not define any keys; the TXT record of a DNS-SD
  service is thus empty (Section 6 of [RFC6763]).

  Figure 10 depicts an excerpt of the DNS zone configuration file
  listing record examples to discover two DOTS signal channel servers.
  In this example, only UDP is supported as transport for the
  establishment of the DOTS signal channel.

  _dots-signal._udp.example.net. PTR  a._dots-signal._udp.example.net.
  _dots-signal._udp.example.net. PTR  b._dots-signal._udp.example.net.
  a._dots-signal._udp.example.net. SRV 0 0 4646 a.example.net.
  b._dots-signal._udp.example.net. SRV 0 0 4646 b.example.net.
  a._dots-signal._udp.example.net. TXT ""
  b._dots-signal._udp.example.net. TXT ""

     Figure 10: An Example of DNS-SD Records for the UDP DOTS Signal
           Channel Involving Two Servers with the Same Priority

8.  Security Considerations

  DOTS-related security considerations are discussed in Section 5 of
  [RFC8811].  As a reminder, DOTS agents must authenticate each other
  using (D)TLS before a DOTS session is considered valid according to
  the [RFC8782].

  An attacker may block some protocol messages (e.g., DHCP) to force
  the client to use a discovery mechanism with a lower priority.  The
  security implications of such attack are those inherent to the
  fallback discovery mechanism discussed in the following subsections.

  The results of the discovery procedure are a function of the
  interface/address family.  Contacting a discovered DOTS server via an
  interface to which it is not bound may exacerbate the delay required
  to establish a DOTS channel.  Moreover, such behavior may reveal that
  a DOTS service is enabled by a DOTS client domain and exposes the
  identity of the DOTS service provider (which can be inferred from the
  name and the destination IP address) to external networks.

  Security considerations related to how security credentials to
  authenticate DOTS server(s) are provisioned to a DOTS client are
  those inherent to the mechanism used for that purpose (for example,
  see [RFC8572]).

8.1.  DHCP

  The security considerations in [RFC2131] and [RFC8415] are to be
  considered.  In particular, issues related to rogue DHCP servers and
  means to mitigate many of these attacks are discussed in Section 22
  of [RFC8415].

  An attacker can get a domain name, get a domain-validated public
  certificate from a certification authority (CA), and host a DOTS
  agent.  An active attacker can then spoof DHCP responses to include
  the attacker's DOTS agent.  Such an attacker can also launch other
  attacks, as discussed in Section 22 of [RFC8415].  In addition to the
  mitigations listed in Section 22 of [RFC8415], a DOTS agent may be
  preconfigured with a list of trusted DOTS domain names.  If such a
  list is preconfigured, a DOTS agent will accept a DHCP-discovered
  name if it matches a name in that list.  Also, the DOTS agent has to
  check that the "DNS-ID" identifier type within subjectAltName in the
  server certificate matches a preconfigured name.  If the DOTS agent
  is instructed to trust subdomains of the names in that list as well
  (e.g., "*.example.com"), a DOTS agent will accept a DHCP-discovered
  name that matches a name in the preconfigured list (e.g., "dots-
  1.example.com" or "dots-2.example.com").

  Relying on an underlying resolution library to resolve a supplied
  reference identifier has similar security issues as those discussed
  in Section 8.2 (e.g., an active attacker may modify DNS messages used
  to resolve the supplied reference identifier and point the client to
  an attacker server).

  Supplying both an IP address and the reference identifier makes it
  easier to use a mis-issued certificate.

8.2.  Service Resolution

  The primary attack against the methods described in Section 6 is one
  that would lead to impersonation of a peer DOTS agent.  An attacker
  could attempt to compromise the S-NAPTR resolution.

  The DOTS client (or a Call Home DOTS server) constructs one reference
  identifier for the DOTS server (or a Call Home DOTS client) based on
  the domain name that is used for S-NAPTR lookup: DNS-ID.  If the
  reference identifier is found (as described in Section 6 of
  [RFC6125]) in the PKIX certificate's subjectAltName extension, the
  DOTS client should accept the certificate for the server.

  DNS Security Extensions (DNSSEC) [RFC4033] uses cryptographic keys
  and digital signatures to provide authentication of DNS data.  The
  information that is retrieved from the S-NAPTR lookup and that is
  validated using DNSSEC is thereby proved to be the authoritative
  data.

8.3.  DNS Service Discovery

  Since DNS-SD is a specification for how to name and use records in
  the existing DNS system, it has no specific additional security
  requirements over and above those that already apply to DNS queries
  and DNS updates.  For DNS queries, DNSSEC SHOULD be used where the
  authenticity of information is important.  For DNS updates, secure
  updates [RFC2136] [RFC3007] SHOULD generally be used to control which
  clients have permission to update DNS records.

  Note that means such as DNS over TLS (DoT) [RFC7858] or DNS over
  HTTPS (DoH) [RFC8484] can be used to prevent eavesdroppers from
  accessing DNS messages.

9.  IANA Considerations


9.1.  Service Name and Transport Protocol Port Number Registry

  IANA has allocated the following service names from the registry
  available at: <https://www.iana.org/assignments/service-names-port-
  numbers/>.

  Service Name:            dots-data
  Port Number:             N/A
  Transport Protocol(s):   TCP
  Description:             DOTS Data Channel Protocol.  The service
                           name is used to construct the SRV service
                           name "_dots-data._tcp" for discovering DOTS
                           servers used to establish DOTS data channel.
  Assignee:                IESG: [email protected]
  Contact:                 IETF Chair: [email protected]
  Reference:               [RFC8973]

  Service Name:            dots-call-home
  Transport Protocol(s):   TCP/UDP
  Description:             DOTS Signal Channel Call Home Protocol.  The
                           service name is used to construct the SRV
                           service names "_dots-call-home._udp" and
                           "_dots-call-home._tcp" for discovering Call
                           Home DOTS clients used to establish DOTS
                           signal channel Call Home.
  Assignee:                IESG: [email protected]
  Contact:                 IETF Chair: [email protected]
  Reference:               [RFC8973]

  IANA has updated the following entry from the registry available at:
  <https://www.iana.org/assignments/service-names-port-numbers/>.

  Port Number:             4646
  Transport Protocol(s):   TCP/UDP
  Description:             DOTS Signal Channel Protocol.  The service
                           name is used to construct the SRV service
                           names "_dots-signal._udp" and "_dots-
                           signal._tcp" for discovering DOTS servers
                           used to establish DOTS signal channel.
  Assignee:                IESG: [email protected]
  Contact:                 IETF Chair: [email protected]
  Reference:               [RFC8782][RFC8973]

9.2.  DHCPv6 Options

  IANA has assigned the following new DHCPv6 Option Codes in the
  registry maintained in <https://www.iana.org/assignments/
  dhcpv6-parameters/>.

   +=======+========================+============+==================+
   | Value | Description            | Client ORO | Singleton Option |
   +=======+========================+============+==================+
   | 141   | OPTION_V6_DOTS_RI      | Yes        | Yes              |
   +-------+------------------------+------------+------------------+
   | 142   | OPTION_V6_DOTS_ADDRESS | Yes        | Yes              |
   +-------+------------------------+------------+------------------+

                        Table 3: DHCPv6 Options

9.3.  DHCPv4 Options

  IANA has assigned the following new DHCPv4 Option Codes in the
  registry maintained in <https://www.iana.org/assignments/bootp-dhcp-
  parameters/>.

  +========================+=====+=========+==============+===========+
  |                   Name | Tag | Data    | Meaning      | Reference |
  |                        |     | Length  |              |           |
  +========================+=====+=========+==============+===========+
  |      OPTION_V4_DOTS_RI | 147 | N       | The name     | [RFC8973] |
  |                        |     |         | of the       |           |
  |                        |     |         | peer DOTS    |           |
  |                        |     |         | agent.       |           |
  +------------------------+-----+---------+--------------+-----------+
  | OPTION_V4_DOTS_ADDRESS | 148 | N (the  | N/4 IPv4     | [RFC8973] |
  |                        |     | minimal | addresses    |           |
  |                        |     | length  | of peer      |           |
  |                        |     | is 4)   | DOTS         |           |
  |                        |     |         | agent(s).    |           |
  +------------------------+-----+---------+--------------+-----------+

                         Table 4: DHCPv4 Options


9.4.  Application Service & Application Protocol Tags

  IANA has made the following allocations from the registries available
  at <https://www.iana.org/assignments/s-naptr-parameters/> for
  application service tags and application protocol tags.

9.4.1.  DOTS Application Service Tag Registration

  Application Service Tag:           DOTS
  Intended Usage:                    See Section 6
  Security Considerations:           See Section 8
  Interoperability Considerations:   None
  Relevant Publications:             RFC 8973

9.4.2.  DOTS Call Home Application Service Tag Registration

  Application Service Tag:           DOTS-CALL-HOME
  Intended Usage:                    See Section 6
  Security Considerations:           See Section 8
  Interoperability Considerations:   None
  Relevant Publications:             RFC 8973

9.4.3.  signal.udp Application Protocol Tag Registration

  Application Protocol Tag:          signal.udp
  Intended Usage:                    See Section 6
  Security Considerations:           See Section 8
  Interoperability Considerations:   None
  Relevant Publications:             RFC 8973

9.4.4.  signal.tcp Application Protocol Tag Registration

  Application Protocol Tag:          signal.tcp
  Intended Usage:                    See Section 6
  Security Considerations:           See Section 8
  Interoperability Considerations:   None
  Relevant Publications:             RFC 8973

9.4.5.  data.tcp Application Protocol Tag Registration

  Application Protocol Tag:          data.tcp
  Intended Usage:                    See Section 6
  Security Considerations:           See Section 8
  Interoperability Considerations:   None
  Relevant Publications:             RFC 8973

10.  References

10.1.  Normative References

  [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
             Requirement Levels", BCP 14, RFC 2119,
             DOI 10.17487/RFC2119, March 1997,
             <https://www.rfc-editor.org/info/rfc2119>.

  [RFC2131]  Droms, R., "Dynamic Host Configuration Protocol",
             RFC 2131, DOI 10.17487/RFC2131, March 1997,
             <https://www.rfc-editor.org/info/rfc2131>.

  [RFC2132]  Alexander, S. and R. Droms, "DHCP Options and BOOTP Vendor
             Extensions", RFC 2132, DOI 10.17487/RFC2132, March 1997,
             <https://www.rfc-editor.org/info/rfc2132>.

  [RFC3396]  Lemon, T. and S. Cheshire, "Encoding Long Options in the
             Dynamic Host Configuration Protocol (DHCPv4)", RFC 3396,
             DOI 10.17487/RFC3396, November 2002,
             <https://www.rfc-editor.org/info/rfc3396>.

  [RFC3958]  Daigle, L. and A. Newton, "Domain-Based Application
             Service Location Using SRV RRs and the Dynamic Delegation
             Discovery Service (DDDS)", RFC 3958, DOI 10.17487/RFC3958,
             January 2005, <https://www.rfc-editor.org/info/rfc3958>.

  [RFC4291]  Hinden, R. and S. Deering, "IP Version 6 Addressing
             Architecture", RFC 4291, DOI 10.17487/RFC4291, February
             2006, <https://www.rfc-editor.org/info/rfc4291>.

  [RFC6763]  Cheshire, S. and M. Krochmal, "DNS-Based Service
             Discovery", RFC 6763, DOI 10.17487/RFC6763, February 2013,
             <https://www.rfc-editor.org/info/rfc6763>.

  [RFC6890]  Cotton, M., Vegoda, L., Bonica, R., Ed., and B. Haberman,
             "Special-Purpose IP Address Registries", BCP 153,
             RFC 6890, DOI 10.17487/RFC6890, April 2013,
             <https://www.rfc-editor.org/info/rfc6890>.

  [RFC8174]  Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
             2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
             May 2017, <https://www.rfc-editor.org/info/rfc8174>.

  [RFC8415]  Mrugalski, T., Siodelski, M., Volz, B., Yourtchenko, A.,
             Richardson, M., Jiang, S., Lemon, T., and T. Winters,
             "Dynamic Host Configuration Protocol for IPv6 (DHCPv6)",
             RFC 8415, DOI 10.17487/RFC8415, November 2018,
             <https://www.rfc-editor.org/info/rfc8415>.

10.2.  Informative References

  [BTSRP-KEYINFR]
             Pritikin, M., Richardson, M. C., Eckert, T., Behringer, M.
             H., and K. Watsen, "Bootstrapping Remote Secure Key
             Infrastructures (BRSKI)", Work in Progress, Internet-
             Draft, draft-ietf-anima-bootstrapping-keyinfra-45, 11
             November 2020, <https://tools.ietf.org/html/draft-ietf-
             anima-bootstrapping-keyinfra-45>.

  [DOTS-MULTIHOMING]
             Boucadair, M., Reddy, T., and W. Pan, "Multi-homing
             Deployment Considerations for Distributed-Denial-of-
             Service Open Threat Signaling (DOTS)", Work in Progress,
             Internet-Draft, draft-ietf-dots-multihoming-05, 23
             November 2020, <https://tools.ietf.org/html/draft-ietf-
             dots-multihoming-05>.

  [DOTS-SIG-CALL-HOME]
             Reddy, T., Boucadair, M., and J. Shallow, "Distributed
             Denial-of-Service Open Threat Signaling (DOTS) Signal
             Channel Call Home", Work in Progress, Internet-Draft,
             draft-ietf-dots-signal-call-home-13, 11 January 2021,
             <https://tools.ietf.org/html/draft-ietf-dots-signal-call-
             home-13>.

  [DOTS-USE-CASES]
             Dobbins, R., Migault, D., Moskowitz, R., Teague, N., Xia,
             L., and K. Nishizuka, "Use cases for DDoS Open Threat
             Signaling", Work in Progress, Internet-Draft, draft-ietf-
             dots-use-cases-25, 5 July 2020,
             <https://tools.ietf.org/html/draft-ietf-dots-use-cases-
             25>.

  [RFC2136]  Vixie, P., Ed., Thomson, S., Rekhter, Y., and J. Bound,
             "Dynamic Updates in the Domain Name System (DNS UPDATE)",
             RFC 2136, DOI 10.17487/RFC2136, April 1997,
             <https://www.rfc-editor.org/info/rfc2136>.

  [RFC3007]  Wellington, B., "Secure Domain Name System (DNS) Dynamic
             Update", RFC 3007, DOI 10.17487/RFC3007, November 2000,
             <https://www.rfc-editor.org/info/rfc3007>.

  [RFC4033]  Arends, R., Austein, R., Larson, M., Massey, D., and S.
             Rose, "DNS Security Introduction and Requirements",
             RFC 4033, DOI 10.17487/RFC4033, March 2005,
             <https://www.rfc-editor.org/info/rfc4033>.

  [RFC6125]  Saint-Andre, P. and J. Hodges, "Representation and
             Verification of Domain-Based Application Service Identity
             within Internet Public Key Infrastructure Using X.509
             (PKIX) Certificates in the Context of Transport Layer
             Security (TLS)", RFC 6125, DOI 10.17487/RFC6125, March
             2011, <https://www.rfc-editor.org/info/rfc6125>.

  [RFC7858]  Hu, Z., Zhu, L., Heidemann, J., Mankin, A., Wessels, D.,
             and P. Hoffman, "Specification for DNS over Transport
             Layer Security (TLS)", RFC 7858, DOI 10.17487/RFC7858, May
             2016, <https://www.rfc-editor.org/info/rfc7858>.

  [RFC8484]  Hoffman, P. and P. McManus, "DNS Queries over HTTPS
             (DoH)", RFC 8484, DOI 10.17487/RFC8484, October 2018,
             <https://www.rfc-editor.org/info/rfc8484>.

  [RFC8572]  Watsen, K., Farrer, I., and M. Abrahamsson, "Secure Zero
             Touch Provisioning (SZTP)", RFC 8572,
             DOI 10.17487/RFC8572, April 2019,
             <https://www.rfc-editor.org/info/rfc8572>.

  [RFC8782]  Reddy.K, T., Ed., Boucadair, M., Ed., Patil, P.,
             Mortensen, A., and N. Teague, "Distributed Denial-of-
             Service Open Threat Signaling (DOTS) Signal Channel
             Specification", RFC 8782, DOI 10.17487/RFC8782, May 2020,
             <https://www.rfc-editor.org/info/rfc8782>.

  [RFC8783]  Boucadair, M., Ed. and T. Reddy.K, Ed., "Distributed
             Denial-of-Service Open Threat Signaling (DOTS) Data
             Channel Specification", RFC 8783, DOI 10.17487/RFC8783,
             May 2020, <https://www.rfc-editor.org/info/rfc8783>.

  [RFC8811]  Mortensen, A., Ed., Reddy.K, T., Ed., Andreasen, F.,
             Teague, N., and R. Compton, "DDoS Open Threat Signaling
             (DOTS) Architecture", RFC 8811, DOI 10.17487/RFC8811,
             August 2020, <https://www.rfc-editor.org/info/rfc8811>.

Acknowledgements

  Thanks to Brian Carpenter for the review of the Bootstrapping Remote
  Secure Key Infrastructure (BRSKI) text used in previous draft
  versions of the specification.

  Many thanks to Russ White for the review, comments, and text
  contribution.

  Thanks to Dan Wing, Pei Wei, Valery Smyslov, and Jon Shallow for the
  review and comments.

  Thanks to Bernie Volz for the review of the DHCP section.

  Many thanks to Benjamin Kaduk for the detailed AD review.

  Thanks to Zhen Cao, Kyle Rose, Nagendra Nainar, and Peter Yee for the
  directorate reviews.

  Thanks to Barry Leiba, Martin Duke, Roman Danyliw, Éric Vyncke, and
  Magnus Westerlund for the IESG review.

Contributors

  Prashanth Patil
  Cisco Systems, Inc.

  Email: [email protected]


Authors' Addresses

  Mohamed Boucadair
  Orange
  35000 Rennes
  France

  Email: [email protected]


  Tirumaleswar Reddy.K
  McAfee, Inc.
  Embassy Golf Link Business Park
  Bangalore 560071
  Karnataka
  India

  Email: [email protected]