<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc2629 version 1.6.4 (Ruby 2.6.6) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-richardson-anima-l2-friendly-acp-03" category="std" consensus="true" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.12.4 -->
  <front>
    <title abbrev="l2-friendly-acp">Autonomic Control Plane design for Layer-Two Switched Networks</title>
    <seriesInfo name="Internet-Draft" value="draft-richardson-anima-l2-friendly-acp-03"/>
    <author initials="M." surname="Richardson" fullname="Michael Richardson">
      <organization>Sandelman Software Works</organization>
      <address>
        <email>mcr+ietf@sandelman.ca</email>
      </address>
    </author>
    <author initials="W." surname="Pan" fullname="Wei Pan">
      <organization>Huawei Technologies</organization>
      <address>
        <email>william.panwei@huawei.com</email>
      </address>
    </author>
    <date year="2022" month="July" day="11"/>
    <area>Internet</area>
    <workgroup>anima Working Group</workgroup>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <t>This document proposes a design for an L2 aware Autonomic Control Plane that
can be deployed easily to layer-two (Ethernet) switched technologies that are common on Campus/Enterprise network architectures.</t>
      <t>This document leverages the hop-by-hop announcement used in LLDP, but runs bulk data over normal IPv6 Link-Local unicast ethernet frames.</t>
    </abstract>
  </front>
  <middle>
    <section anchor="introduction">
      <name>Introduction</name>
      <t>The creation and maintenance of the Autonomic Control Plane described in
<xref target="RFC8994"/> requires creation of hop-by-hop discovery of adjacent systems.
There are Campus L2 systems that are not broadcast safe until they have been
connected to their Software Defined Networking (SDN) controller.
The use of the stable connectivity provided by <xref target="RFC8368"/> can provide the
SDN connectivity required.</t>
      <t>There is a bootstrap interlocking problem: the network may be unsafe for ACP discovery
broadcasts without the support of Spanning Tree Protocol (STP) or similar mechanisms
until configured, yet it can not be automatically configured until
the ACP discovery (and onboarding process) is done.
Meantime, because of STP complicated topological calculations, the convergence can be very slow for larger networks.
This can delay on-boarding.</t>
      <t>In addition, forming a campus-wide network by default and using enabling STP does not work.
STP is not secure and could be easily spoofed by malicious or untrusted devices.
On manually configured networks today, STP is turned off on "access" ports, and enabled only for trunk ports.
But in an autonomic network, it is not possible to know a-priori which ports will be trunk ports, so STP would have to be on by default if it is was to be used.</t>
      <t>What is needed is a way to send IPv6 traffic between these L2 switching devices in a way that is never forwarded, regardless of how the network is eventually configured.
This is not just an inital configuration problem: devices may be added and removed at any time, due to needed expansion of capacity, planned upgrades, or devices failures.</t>
      <t>This document proposes using LLDP for what it is good at: announcing capabilities, while
using normal EtherType 0x86DD IPv6 frames for the normal ACP transport.</t>
      <section anchor="terminology">
        <name>Terminology</name>
        <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL
NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED",
"MAY", and "OPTIONAL" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
      </section>
    </section>
    <section anchor="protocol">
      <name>Protocol</name>
      <t>A new TLV for LLDP is allocated and called the GRASP-DULL.
The contents of the new TLV are the payload of the normal <xref target="RFC8994"/> GRASP DULL M_FLOOD,
AN_ACP message.</t>
      <t>The LLDP subsystem in the control plane CPU needs to forward these messages along to the ACP GRASP daemon, and it needs to also include the source MAC address (and port number) from which the LLDP message was received.</t>
      <t>The ACP GRASP daemon can see the origin IPv6 Link-Local address from the GRASP DULL packet, and can now create an IPv6 neighbour cache entry (NCE) for that combination.
By forcing this NCE entry, the node avoids the need to do an unsafe multicast IPv6 Neighbor Discovery.</t>
      <t>The node SHOULD unicast a Neighbor Advertisement to the corresponding node to establish that node's NCE.</t>
      <t>At this point it is possible to initiate the right key management daemon (IKEv2, etc.) using unicast IPv6 datagrams that only need unicast Ethernet packets.</t>
      <t>It is likely that many L2 switching fabrics may not support IPsec ESP, or L3 routing.
It was always the case that the ACP might have to be implemented as a software fabric in a control plane CPU.
This is not a significant hurdle, as the ACP is not intended to be used for customer data, only control plane communication, and often only as a last resort.</t>
      <t>In addition to normal operation, devices may need to be onboarded.
<xref target="RFC8995"/> section 4.1.1 defines the AN_PROXY message to be used for a new pledge to discover which neighbors are willing to act as onboarding proxies.</t>
      <t>This M_FLOOD message will fit into the same GRASP DULL M_FLOOD message that contains the AN_ACP message.</t>
      <t>After discover of an eligible neighbour, onboarding proceeds with a TCP connection over IPv6 link-local addresses, using unicast Ethernet frames.</t>
      <t>LLDP traffic also uses a destination multicast address: 01:80:c2:00:00:0e, 01:80:c2:00:00:03, or 01:80:c2:00:00:00.
The use of this destination address facilitiates transmission of the traffic through unmanaged switches ("dumb ethernet switches"), as well as allowing for seperation of provider and customer traffic in provider bridged (IEEE 802.1ad) situations.</t>
    </section>
    <section anchor="other-constraints">
      <name>Other constraints</name>
      <t>On broadcast unsafe L2 networks, IPv6 Duplicate Address Detection (DAD) MUST be turned off.
Only auto-configured IPv6 link-local addresses using SLAAC or stable-IID <xref target="RFC7217"/> may be used.</t>
      <t>A pledge that is in an L2 network that is broadcast unsafe MUST NOT do mDNS queries as described in <xref target="RFC8995"/> appendix B.</t>
    </section>
    <section anchor="privacy-considerations">
      <name>Privacy Considerations</name>
      <t>The LLDP messages commonly contain information that uniquely identifies a specific piece of switching equipment.
The addition of the GRASP DULL message will also now reveal the link-local IPv6 addresses of the device.
This additional information is either derived from ethernet addresses (so no new information), or will be derived using <xref target="RFC7217"/>.</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>Unclear as yet.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>IANA is asked to allocate a TLV from the "IANA Link Layer Discovery Protocol (LLDP) TLV Subtypes"
https://www.iana.org/assignments/ieee-802-numbers/ieee-802-numbers.xhtml#iana-lldp-tlv-subtypes</t>
      <t>for the GRASP DULL L2 announcement.</t>
    </section>
    <section anchor="acknowledgements">
      <name>Acknowledgements</name>
      <t>Paul Congdon was very helpful in understanding how LLDP was actually processed in production equipment.</t>
    </section>
    <section anchor="changelog">
      <name>Changelog</name>
      <ol spacing="normal" type="1"><li>A specific LLDP method for announcement using normal IPv6 datagrams described.</li>
        <li>Document renamed, focus changed.</li>
      </ol>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <reference anchor="RFC8994" target="https://www.rfc-editor.org/info/rfc8994">
          <front>
            <title>An Autonomic Control Plane (ACP)</title>
            <author fullname="T. Eckert" initials="T." role="editor" surname="Eckert">
              <organization/>
            </author>
            <author fullname="M. Behringer" initials="M." role="editor" surname="Behringer">
              <organization/>
            </author>
            <author fullname="S. Bjarnason" initials="S." surname="Bjarnason">
              <organization/>
            </author>
            <date month="May" year="2021"/>
            <abstract>
              <t>Autonomic functions need a control plane to communicate, which depends on some addressing and routing.  This Autonomic Control Plane should ideally be self-managing and be as independent as possible of configuration.  This document defines such a plane and calls it the "Autonomic Control Plane", with the primary use as a control plane for autonomic functions.  It also serves as a "virtual out-of-band channel" for Operations, Administration, and Management (OAM) communications over a network that provides automatically configured, hop-by-hop authenticated and encrypted communications via automatically configured IPv6 even when the network is not configured or is misconfigured.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8994"/>
          <seriesInfo name="DOI" value="10.17487/RFC8994"/>
        </reference>
        <reference anchor="RFC8995" target="https://www.rfc-editor.org/info/rfc8995">
          <front>
            <title>Bootstrapping Remote Secure Key Infrastructure (BRSKI)</title>
            <author fullname="M. Pritikin" initials="M." surname="Pritikin">
              <organization/>
            </author>
            <author fullname="M. Richardson" initials="M." surname="Richardson">
              <organization/>
            </author>
            <author fullname="T. Eckert" initials="T." surname="Eckert">
              <organization/>
            </author>
            <author fullname="M. Behringer" initials="M." surname="Behringer">
              <organization/>
            </author>
            <author fullname="K. Watsen" initials="K." surname="Watsen">
              <organization/>
            </author>
            <date month="May" year="2021"/>
            <abstract>
              <t>This document specifies automated bootstrapping of an Autonomic Control Plane.  To do this, a Secure Key Infrastructure is bootstrapped.  This is done using manufacturer-installed X.509 certificates, in combination with a manufacturer's authorizing service, both online and offline.  We call this process the Bootstrapping Remote Secure Key Infrastructure (BRSKI) protocol. Bootstrapping a new device can occur when using a routable address and a cloud service, only link-local connectivity, or limited/disconnected networks. Support for deployment models with less stringent security requirements is included. Bootstrapping is complete when the cryptographic identity of the new key infrastructure is successfully deployed to the device.  The established secure connection can be used to deploy a locally issued certificate to the device as well.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8995"/>
          <seriesInfo name="DOI" value="10.17487/RFC8995"/>
        </reference>
        <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner">
              <organization/>
            </author>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification.  These words are often capitalized. This document defines these words as they should be interpreted in IETF documents.  This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174" target="https://www.rfc-editor.org/info/rfc8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba">
              <organization/>
            </author>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol  specifications.  This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the  defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
      </references>
      <references>
        <name>Informative References</name>
        <reference anchor="RFC8368" target="https://www.rfc-editor.org/info/rfc8368">
          <front>
            <title>Using an Autonomic Control Plane for Stable Connectivity of Network Operations, Administration, and Maintenance (OAM)</title>
            <author fullname="T. Eckert" initials="T." role="editor" surname="Eckert">
              <organization/>
            </author>
            <author fullname="M. Behringer" initials="M." surname="Behringer">
              <organization/>
            </author>
            <date month="May" year="2018"/>
            <abstract>
              <t>Operations, Administration, and Maintenance (OAM), as per BCP 161, for data networks is often subject to the problem of circular dependencies when relying on connectivity provided by the network to be managed for the OAM purposes.</t>
              <t>Provisioning while bringing up devices and networks tends to be more difficult to automate than service provisioning later on.  Changes in core network functions impacting reachability cannot be automated because of ongoing connectivity requirements for the OAM equipment itself, and widely used OAM protocols are not secure enough to be carried across the network without security concerns.</t>
              <t>This document describes how to integrate OAM processes with an autonomic control plane in order to provide stable and secure connectivity for those OAM processes.  This connectivity is not subject to the aforementioned circular dependencies.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8368"/>
          <seriesInfo name="DOI" value="10.17487/RFC8368"/>
        </reference>
        <reference anchor="RFC7217" target="https://www.rfc-editor.org/info/rfc7217">
          <front>
            <title>A Method for Generating Semantically Opaque Interface Identifiers with IPv6 Stateless Address Autoconfiguration (SLAAC)</title>
            <author fullname="F. Gont" initials="F." surname="Gont">
              <organization/>
            </author>
            <date month="April" year="2014"/>
            <abstract>
              <t>This document specifies a method for generating IPv6 Interface Identifiers to be used with IPv6 Stateless Address Autoconfiguration (SLAAC), such that an IPv6 address configured using this method is stable within each subnet, but the corresponding Interface Identifier changes when the host moves from one network to another.  This method is meant to be an alternative to generating Interface Identifiers based on hardware addresses (e.g., IEEE LAN Media Access Control (MAC) addresses), such that the benefits of stable addresses can be achieved without sacrificing the security and privacy of users.  The method specified in this document applies to all prefixes a host may be employing, including link-local, global, and unique-local prefixes (and their corresponding addresses).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7217"/>
          <seriesInfo name="DOI" value="10.17487/RFC7217"/>
        </reference>
      </references>
    </references>
  </back>
  <!-- ##markdown-source:
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
lBkAAA==

-->

</rfc>
