summaryrefslogtreecommitdiff
path: root/doc/rfc/rfc8994.txt
diff options
context:
space:
mode:
Diffstat (limited to 'doc/rfc/rfc8994.txt')
-rw-r--r--doc/rfc/rfc8994.txt7510
1 files changed, 7510 insertions, 0 deletions
diff --git a/doc/rfc/rfc8994.txt b/doc/rfc/rfc8994.txt
new file mode 100644
index 0000000..8a027d8
--- /dev/null
+++ b/doc/rfc/rfc8994.txt
@@ -0,0 +1,7510 @@
+
+
+
+
+Internet Engineering Task Force (IETF) T. Eckert, Ed.
+Request for Comments: 8994 Futurewei USA
+Category: Standards Track M. Behringer, Ed.
+ISSN: 2070-1721
+ S. Bjarnason
+ Arbor Networks
+ May 2021
+
+
+ An Autonomic Control Plane (ACP)
+
+Abstract
+
+ 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.
+
+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/rfc8994.
+
+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 (Informative)
+ 1.1. Applicability and Scope
+ 2. Acronyms and Terminology (Informative)
+ 3. Use Cases for an Autonomic Control Plane (Informative)
+ 3.1. An Infrastructure for Autonomic Functions
+ 3.2. Secure Bootstrap over an Unconfigured Network
+ 3.3. Permanent Reachability Independent of the Data Plane
+ 4. Requirements (Informative)
+ 5. Overview (Informative)
+ 6. Self-Creation of an Autonomic Control Plane (ACP) (Normative)
+ 6.1. Requirements for the Use of Transport Layer Security (TLS)
+ 6.2. ACP Domain, Certificate, and Network
+ 6.2.1. ACP Certificates
+ 6.2.2. ACP Certificate AcpNodeName
+ 6.2.2.1. AcpNodeName ASN.1 Module
+ 6.2.3. ACP Domain Membership Check
+ 6.2.3.1. Realtime Clock and Time Validation
+ 6.2.4. Trust Anchors (TA)
+ 6.2.5. Certificate and Trust Anchor Maintenance
+ 6.2.5.1. GRASP Objective for EST Server
+ 6.2.5.2. Renewal
+ 6.2.5.3. Certificate Revocation Lists (CRLs)
+ 6.2.5.4. Lifetimes
+ 6.2.5.5. Reenrollment
+ 6.2.5.6. Failing Certificates
+ 6.3. ACP Adjacency Table
+ 6.4. Neighbor Discovery with DULL GRASP
+ 6.5. Candidate ACP Neighbor Selection
+ 6.6. Channel Selection
+ 6.7. Candidate ACP Neighbor Verification
+ 6.8. Security Association (Secure Channel) Protocols
+ 6.8.1. General Considerations
+ 6.8.2. Common Requirements
+ 6.8.3. ACP via IPsec
+ 6.8.3.1. Native IPsec
+ 6.8.3.1.1. RFC 8221 (IPsec/ESP)
+ 6.8.3.1.2. RFC 8247 (IKEv2)
+ 6.8.3.2. IPsec with GRE Encapsulation
+ 6.8.4. ACP via DTLS
+ 6.8.5. ACP Secure Channel Profiles
+ 6.9. GRASP in the ACP
+ 6.9.1. GRASP as a Core Service of the ACP
+ 6.9.2. ACP as the Security and Transport Substrate for GRASP
+ 6.9.2.1. Discussion
+ 6.10. Context Separation
+ 6.11. Addressing inside the ACP
+ 6.11.1. Fundamental Concepts of Autonomic Addressing
+ 6.11.2. The ACP Addressing Base Scheme
+ 6.11.3. ACP Zone Addressing Sub-Scheme (ACP-Zone)
+ 6.11.4. ACP Manual Addressing Sub-Scheme (ACP-Manual)
+ 6.11.5. ACP Vlong Addressing Sub-Scheme (ACP-Vlong-8/
+ ACP-Vlong-16)
+ 6.11.6. Other ACP Addressing Sub-Schemes
+ 6.11.7. ACP Registrars
+ 6.11.7.1. Use of BRSKI or Other Mechanisms or Protocols
+ 6.11.7.2. Unique Address/Prefix Allocation
+ 6.11.7.3. Addressing Sub-Scheme Policies
+ 6.11.7.4. Address/Prefix Persistence
+ 6.11.7.5. Further Details
+ 6.12. Routing in the ACP
+ 6.12.1. ACP RPL Profile
+ 6.12.1.1. Overview
+ 6.12.1.1.1. Single Instance
+ 6.12.1.1.2. Reconvergence
+ 6.12.1.2. RPL Instances
+ 6.12.1.3. Storing vs. Non-Storing Mode
+ 6.12.1.4. DAO Policy
+ 6.12.1.5. Path Metrics
+ 6.12.1.6. Objective Function
+ 6.12.1.7. DODAG Repair
+ 6.12.1.8. Multicast
+ 6.12.1.9. Security
+ 6.12.1.10. P2P Communications
+ 6.12.1.11. IPv6 Address Configuration
+ 6.12.1.12. Administrative Parameters
+ 6.12.1.13. RPL Packet Information
+ 6.12.1.14. Unknown Destinations
+ 6.13. General ACP Considerations
+ 6.13.1. Performance
+ 6.13.2. Addressing of Secure Channels
+ 6.13.3. MTU
+ 6.13.4. Multiple Links between Nodes
+ 6.13.5. ACP Interfaces
+ 6.13.5.1. ACP Loopback Interfaces
+ 6.13.5.2. ACP Virtual Interfaces
+ 6.13.5.2.1. ACP Point-to-Point Virtual Interfaces
+ 6.13.5.2.2. ACP Multi-Access Virtual Interfaces
+ 7. ACP Support on L2 Switches/Ports (Normative)
+ 7.1. Why (Benefits of ACP on L2 Switches)
+ 7.2. How (per L2 Port DULL GRASP)
+ 8. Support for Non-ACP Components (Normative)
+ 8.1. ACP Connect
+ 8.1.1. Non-ACP Controller and/or Network Management System
+ (NMS)
+ 8.1.2. Software Components
+ 8.1.3. Autoconfiguration
+ 8.1.4. Combined ACP and Data Plane Interface (VRF Select)
+ 8.1.5. Use of GRASP
+ 8.2. Connecting ACP Islands over Non-ACP L3 Networks (Remote ACP
+ Neighbors)
+ 8.2.1. Configured Remote ACP Neighbor
+ 8.2.2. Tunneled Remote ACP Neighbor
+ 8.2.3. Summary
+ 9. ACP Operations (Informative)
+ 9.1. ACP (and BRSKI) Diagnostics
+ 9.1.1. Secure Channel Peer Diagnostics
+ 9.2. ACP Registrars
+ 9.2.1. Registrar Interactions
+ 9.2.2. Registrar Parameters
+ 9.2.3. Certificate Renewal and Limitations
+ 9.2.4. ACP Registrars with Sub-CA
+ 9.2.5. Centralized Policy Control
+ 9.3. Enabling and Disabling the ACP and/or the ANI
+ 9.3.1. Filtering for Non-ACP/ANI Packets
+ 9.3.2. "admin down" State
+ 9.3.2.1. Security
+ 9.3.2.2. Fast State Propagation and Diagnostics
+ 9.3.2.3. Low-Level Link Diagnostics
+ 9.3.2.4. Power Consumption Issues
+ 9.3.3. Enabling Interface-Level ACP and ANI
+ 9.3.4. Which Interfaces to Auto-Enable?
+ 9.3.5. Enabling Node-Level ACP and ANI
+ 9.3.5.1. Brownfield Nodes
+ 9.3.5.2. Greenfield Nodes
+ 9.3.6. Undoing "ANI/ACP enable"
+ 9.3.7. Summary
+ 9.4. Partial or Incremental Adoption
+ 9.5. Configuration and the ACP (Summary)
+ 10. Summary: Benefits (Informative)
+ 10.1. Self-Healing Properties
+ 10.2. Self-Protection Properties
+ 10.2.1. From the Outside
+ 10.2.2. From the Inside
+ 10.3. The Administrator View
+ 11. Security Considerations
+ 12. IANA Considerations
+ 13. References
+ 13.1. Normative References
+ 13.2. Informative References
+ Appendix A. Background and Future (Informative)
+ A.1. ACP Address Space Schemes
+ A.2. BRSKI Bootstrap (ANI)
+ A.3. ACP Neighbor Discovery Protocol Selection
+ A.3.1. LLDP
+ A.3.2. mDNS and L2 Support
+ A.3.3. Why DULL GRASP?
+ A.4. Choice of Routing Protocol (RPL)
+ A.5. ACP Information Distribution and Multicast
+ A.6. CAs, Domains, and Routing Subdomains
+ A.7. Intent for the ACP
+ A.8. Adopting ACP Concepts for Other Environments
+ A.9. Further (Future) Options
+ A.9.1. Auto-Aggregation of Routes
+ A.9.2. More Options for Avoiding IPv6 Data Plane Dependencies
+ A.9.3. ACP APIs and Operational Models (YANG)
+ A.9.4. RPL Enhancements
+ A.9.5. Role Assignments
+ A.9.6. Autonomic L3 Transit
+ A.9.7. Diagnostics
+ A.9.8. Avoiding and Dealing with Compromised ACP Nodes
+ A.9.9. Detecting ACP Secure Channel Downgrade Attacks
+ Acknowledgements
+ Contributors
+ Authors' Addresses
+
+1. Introduction (Informative)
+
+ Autonomic Networking is a concept of self-management: autonomic
+ functions self-configure, and negotiate parameters and settings
+ across the network. "Autonomic Networking: Definitions and Design
+ Goals" [RFC7575] defines the fundamental ideas and design goals of
+ Autonomic Networking. A gap analysis of Autonomic Networking is
+ given in "General Gap Analysis for Autonomic Networking" [RFC7576].
+ The reference architecture for Autonomic Networking in the IETF is
+ specified in the document "A Reference Model for Autonomic
+ Networking" [RFC8993].
+
+ Autonomic functions need an autonomically built communications
+ infrastructure. This infrastructure needs to be secure, resilient,
+ and reusable by all autonomic functions. Section 5 of [RFC7575]
+ introduces that infrastructure and calls it the Autonomic Control
+ Plane (ACP). More descriptively, it could be called the "Autonomic
+ communications infrastructure for OAM and control". For naming
+ consistency with that prior document, this document continues to use
+ the name ACP.
+
+ Today, the OAM and control plane of IP networks is what is typically
+ called in-band management and/or signaling: its management and
+ control protocol traffic depends on the routing and forwarding
+ tables, security, policy, QoS, and potentially other configuration
+ that first has to be established through the very same management and
+ control protocols. Misconfigurations, including unexpected side
+ effects or mutual dependencies, can disrupt OAM and control
+ operations and especially disrupt remote management access to the
+ affected node itself and potentially disrupt access to a much larger
+ number of nodes for which the affected node is on the network path.
+
+ For an example of in-band management failing in the face of operator-
+ induced misconfiguration, see [FCC], for example, Section III.B.15 on
+ page 8:
+
+ | ...engineers almost immediately recognized that they had
+ | misdiagnosed the problem. However, they were unable to resolve
+ | the issue by restoring the link because the network management
+ | tools required to do so remotely relied on the same paths they had
+ | just disabled.
+
+ Traditionally, physically separate, so-called out-of-band
+ (management) networks have been used to avoid these problems or at
+ least to allow recovery from such problems. In the worst-case
+ scenario, personnel are sent on site to access devices through out-
+ of-band management ports (also called craft ports, serial consoles,
+ or management Ethernet ports). However, both options are expensive.
+
+ In increasingly automated networks, both centralized management
+ systems and distributed autonomic service agents in the network
+ require a control plane that is independent of the configuration of
+ the network they manage, to avoid impacting their own operations
+ through the configuration actions they take.
+
+ This document describes a modular design for a self-forming, self-
+ managing, and self-protecting ACP, which is a virtual out-of-band
+ network designed to be as independent as possible of configuration,
+ addressing, and routing to avoid the self-dependency problems of
+ current IP networks while still operating in-band on the same
+ physical network that it is controlling and managing. The ACP design
+ is therefore intended to combine as well as possible the resilience
+ of out-of-band management networks with the low cost of traditional
+ IP in-band network management. The details of how this is achieved
+ are described in Section 6.
+
+ In a fully Autonomic Network without legacy control or management
+ functions and/or protocols, the data plane would be just a forwarding
+ plane for "data" IPv6 packets, which are packets other than those
+ control and management plane packets forwarded by the ACP itself. In
+ such a network, there would be no non-autonomous control of nodes nor
+ a non-autonomous management plane.
+
+ Routing protocols would be built inside the ACP as autonomous
+ functions via autonomous service agents, leveraging the following ACP
+ functions instead of implementing them separately for each protocol:
+ discovery; automatically established, authenticated, and encrypted
+ local and distant peer connectivity for control and management
+ traffic; and common session and presentation functions of the control
+ and management protocol.
+
+ When ACP functionality is added to nodes that do not have autonomous
+ management plane and/or control plane functions (henceforth called
+ non-autonomous nodes), the ACP instead is best abstracted as a
+ special Virtual Routing and Forwarding (VRF) instance (or virtual
+ router), and the complete, preexisting, non-autonomous management
+ and/or control plane is considered to be part of the data plane to
+ avoid introducing more complex terminology only for this case.
+
+ Like the forwarding plane for "data" packets, the non-autonomous
+ control and management plane functions can then be managed and/or
+ used via the ACP. This terminology is consistent with preexisting
+ documents such as "Using an Autonomic Control Plane for Stable
+ Connectivity of Network Operations, Administration, and Maintenance
+ (OAM)" [RFC8368].
+
+ In both autonomous and non-autonomous instances, the ACP is built
+ such that it operates in the absence of the data plane. The ACP also
+ operates in the presence of any (mis)configured non-autonomous
+ management and/or control components in the data plane.
+
+ The ACP serves several purposes simultaneously:
+
+ 1. Autonomic functions communicate over the ACP. The ACP therefore
+ directly supports Autonomic Networking functions, as described in
+ [RFC8993]. For example, GRASP ("GeneRic Autonomic Signaling
+ Protocol (GRASP)" [RFC8990]) runs securely inside the ACP and
+ depends on the ACP as its "security and transport substrate".
+
+ 2. A controller or network management system can use ACP to securely
+ bootstrap network devices in remote locations, even if the (data
+ plane) network in between is not yet configured; no bootstrap
+ configuration that is dependent on the data plane is required.
+ An example of such a secure bootstrap process is described in
+ "Bootstrapping Remote Secure Key Infrastructure (BRSKI)"
+ [RFC8995].
+
+ 3. An operator can use ACP to access remote devices using protocols
+ such as Secure SHell (SSH) or Network Configuration Protocol
+ (NETCONF), even if the network is misconfigured or unconfigured.
+
+ This document describes these purposes as use cases for the ACP in
+ Section 3, and it defines the requirements in Section 4. Section 5
+ gives an overview of how the ACP is constructed.
+
+ The normative part of this document starts with Section 6, where the
+ ACP is specified. Section 7 explains how to support ACP on Layer 2
+ (L2) switches (normative). Section 8 explains how non-ACP nodes and
+ networks can be integrated (normative).
+
+ The remaining sections are non-normative. Section 10 reviews the
+ benefits of the ACP (after all the details have been defined).
+ Section 9 provides operational recommendations. Appendix A provides
+ additional background and describes possible extensions that were not
+ applicable for this specification but were considered important to
+ document. There are no dependencies on Appendix A in order to build
+ a complete working and interoperable ACP according to this document.
+
+ The ACP provides secure IPv6 connectivity; therefore, it can be used
+ for secure connectivity not only for self-management as required for
+ the ACP in [RFC7575] but also for traditional (centralized)
+ management. The ACP can be implemented and operated without any
+ other components of Autonomic Networks, except for GRASP. ACP relies
+ on per-link Discovery Unsolicited Link-Local (DULL) GRASP (see
+ Section 6.4) to auto-discover ACP neighbors and includes the ACP
+ GRASP instance to provide service discovery for clients of the ACP
+ (see Section 6.9), including for its own maintenance of ACP
+ certificates.
+
+ The document [RFC8368] describes how the ACP can be used alone to
+ provide secure and stable connectivity for autonomic and non-
+ autonomic OAM applications, specifically for the case of current non-
+ autonomic networks and/or nodes. That document also explains how
+ existing management solutions can leverage the ACP in parallel with
+ traditional management models, when to use the ACP, and how to
+ integrate with potentially IPv4-only OAM backends.
+
+ Combining ACP with Bootstrapping Remote Secure Key Infrastructure
+ (BRSKI) (see [RFC8995]) results in the "Autonomic Network
+ Infrastructure" (ANI) as defined in [RFC8993], which provides
+ autonomic connectivity (from ACP) with secure zero-touch (automated)
+ bootstrap from BRSKI. The ANI itself does not constitute an
+ Autonomic Network, but it allows the building of more or less
+ Autonomic Networks on top of it, using either centralized automation
+ in SDN style (see "Software-Defined Networking (SDN): Layers and
+ Architecture Terminology" [RFC7426]) or distributed automation via
+ Autonomic Service Agents (ASA) and/or Autonomic Functions (AF), or a
+ mixture of both. See [RFC8993] for more information.
+
+1.1. Applicability and Scope
+
+ Please see the following Terminology section (Section 2) for
+ explanations of terms used in this section.
+
+ The design of the ACP as defined in this document is considered to be
+ applicable to all types of "professionally managed" networks: Service
+ Provider, Local Area Network (LAN), Metropolitan Area Network (MAN/
+ Metro), Wide Area Network (WAN), Enterprise Information Technology
+ (IT) and Operational Technology (OT) networks. The ACP can operate
+ equally on Layer 3 (L3) equipment and on L2 equipment such as bridges
+ (see Section 7). The hop-by-hop authentication, integrity
+ protection, and confidentiality mechanism used by the ACP is defined
+ to be negotiable; therefore, it can be extended to environments with
+ different protocol preferences. The minimum implementation
+ requirements in this document attempt to achieve maximum
+ interoperability by requiring support for multiple options depending
+ on the type of device: IPsec (see "Security Architecture for the
+ Internet Protocol" [RFC4301]) and Datagram Transport Layer Security
+ (DTLS, see Section 6.8.4).
+
+ The implementation footprint of the ACP consists of Public Key
+ Infrastructure (PKI) code for the ACP certificate including EST (see
+ "Enrollment over Secure Transport" [RFC7030]), GRASP, UDP, TCP, and
+ Transport Layer Security (TLS, see Section 6.1). For more
+ information regarding the security and reliability of GRASP and for
+ EST, the ACP secure channel protocol used (such as IPsec or DTLS),
+ and an instance of IPv6 packet forwarding and routing via RPL, see
+ "RPL: IPv6 Routing Protocol for Low-Power and Lossy Networks"
+ [RFC6550], which is separate from routing and forwarding for the data
+ plane (user traffic).
+
+ The ACP uses only IPv6 to avoid the complexity of dual-stack (both
+ IPv6 and IPv4) ACP operations. Nevertheless, it can be integrated
+ without any changes to otherwise IPv4-only network devices. The data
+ plane itself would not need to change, and it could continue to be
+ IPv4 only. For such IPv4-only devices, IPv6 itself would be
+ additional implementation footprint that is only required for the
+ ACP.
+
+ The protocol choices of the ACP are primarily based on wide use and
+ support in networks and devices, well-understood security properties,
+ and required scalability. The ACP design is an attempt to produce
+ the lowest risk combination of existing technologies and protocols to
+ build a widely applicable, operational network management solution.
+
+ RPL was chosen because it requires a smaller routing table footprint
+ in large networks compared to other routing protocols with an
+ autonomically configured single area. The deployment experience of
+ large-scale Internet of Things (IoT) networks serves as the basis for
+ wide deployment experience with RPL. The profile chosen for RPL in
+ the ACP does not leverage any RPL-specific forwarding plane features
+ (IPv6 extension headers), making its implementation a pure control
+ plane software requirement.
+
+ GRASP is the only completely novel protocol used in the ACP, and this
+ choice was necessary because there is no existing protocol suitable
+ for providing the necessary functions to the ACP, so GRASP was
+ developed to fill that gap.
+
+ The ACP design can be applicable to devices constrained with respect
+ to CPU and memory, and to networks constrained with respect to
+ bitrate and reliability, but this document does not attempt to define
+ the most constrained type of devices or networks to which the ACP is
+ applicable. RPL and DTLS for ACP secure channels are two protocol
+ choices already making ACP more applicable to constrained
+ environments. Support for constrained devices in this specification
+ is opportunistic, but not complete, because the reliable transport
+ for GRASP (see Section 6.9.2) only specifies TCP/TLS. See
+ Appendix A.8 for discussions about how future standards or
+ proprietary extensions and/or variations of the ACP could better meet
+ expectations that are different from those upon which the current
+ design is based, including supporting constrained devices better.
+
+2. Acronyms and Terminology (Informative)
+
+ This document serves both as a normative specification for ACP node
+ behavior as well as an explanation of the context by providing
+ descriptions of requirements, benefits, architecture, and operational
+ aspects. Normative sections are labeled "(Normative)" and use BCP 14
+ keywords. Other sections are labeled "(Informative)" and do not use
+ those normative keywords.
+
+ In the rest of the document, we will refer to systems that use the
+ ACP as "nodes". Typically, such a node is a physical (network
+ equipment) device, but it can equally be some virtualized system.
+ Therefore, we do not refer to them as devices unless the context
+ specifically calls for a physical system.
+
+ This document introduces or uses the following terms (sorted
+ alphabetically). Introduced terms are explained on first use, so
+ this list is for reference only.
+
+ ACP: Autonomic Control Plane. The autonomic function as defined in
+ this document. It provides secure, zero-touch (automated)
+ transitive (network-wide) IPv6 connectivity for all nodes in the
+ same ACP domain as well as a GRASP instance running across this
+ ACP IPv6 connectivity. The ACP is primarily meant to be used as a
+ component of the ANI to enable Autonomic Networks, but it can
+ equally be used in simple ANI networks (with no other autonomic
+ functions) or completely by itself.
+
+ ACP address: An IPv6 address assigned to the ACP node. It is stored
+ in the acp-node-name of the ACP certificate.
+
+ ACP address range or set: The ACP address may imply a range or set
+ of addresses that the node can assign for different purposes.
+ This address range or set is derived by the node from the format
+ of the ACP address called the addressing sub-scheme.
+
+ ACP certificate: A Local Device IDentity (LDevID) certificate
+ conforming to "Internet X.509 Public Key Infrastructure
+ Certificate and Certificate Revocation List (CRL) Profile"
+ [RFC5280] that carries the acp-node-name, which is used by the ACP
+ to learn its address in the ACP and to derive and
+ cryptographically assert its membership in the ACP domain. In the
+ context of the ANI, the ACP certificate is also called the ANI
+ certificate. In the context of AN, the ACP certificate is also
+ called the AN certificate.
+
+ ACP connect interface: An interface on an ACP node that provides
+ access to the ACP for non-ACP-capable nodes without using an ACP
+ secure channel. See Section 8.1.1.
+
+ ACP domain: The ACP domain is the set of nodes with ACP certificates
+ that allow them to authenticate each other as members of the ACP
+ domain. See also Section 6.2.3.
+
+ ACP loopback interface: The loopback interface in the ACP VRF that
+ has the ACP address assigned to it. See Section 6.13.5.1.
+
+ ACP network: The ACP network comprises all the nodes that have
+ access to the ACP. It is the set of active and transitively
+ connected nodes of an ACP domain plus all nodes that get access to
+ the ACP of that domain via ACP edge nodes.
+
+ ACP (ULA) prefix(es): The /48 IPv6 address prefixes used across the
+ ACP. In the normal or simple case, the ACP has one Unique Local
+ Address (ULA) prefix, see Section 6.11. The ACP routing table may
+ include multiple ULA prefixes if the rsub option is used to create
+ addresses from more than one ULA prefix. See Section 6.2.2. The
+ ACP may also include non-ULA prefixes if those are configured on
+ ACP connect interfaces. See Section 8.1.1.
+
+ ACP secure channel: A channel authenticated via ACP certificates
+ providing integrity protection and confidentiality through
+ encryption. These channels are established between (normally)
+ adjacent ACP nodes to carry ACP VRF traffic in-band over the same
+ links and paths as data plane traffic but isolate it from the data
+ plane traffic and secure it.
+
+ ACP secure channel protocol: The protocol used to build an ACP
+ secure channel, e.g., Internet Key Exchange Protocol version 2
+ (IKEv2) with IPsec or DTLS.
+
+ ACP virtual interface: An interface in the ACP VRF mapped to one or
+ more ACP secure channels. See Section 6.13.5.
+
+ acp-node-name field: An information field in the ACP certificate in
+ which the following ACP-relevant information is encoded: the ACP
+ domain name, the ACP IPv6 address of the node, and optional
+ additional role attributes about the node.
+
+ AN: Autonomic Network. A network according to [RFC8993]. Its main
+ components are ANI, autonomic functions, and Intent.
+
+ (AN) Domain Name: An FQDN (Fully Qualified Domain Name) in the acp-
+ node-name of the domain certificate. See Section 6.2.2.
+
+ ANI (nodes/network): Autonomic Network Infrastructure. The ANI is
+ the infrastructure to enable Autonomic Networks. It includes ACP,
+ BRSKI, and GRASP. Every Autonomic Network includes the ANI, but
+ not every ANI network needs to include autonomic functions beyond
+ the ANI (nor Intent). An ANI network without further autonomic
+ functions can, for example, support secure zero-touch (automated)
+ bootstrap and stable connectivity for SDN networks, see [RFC8368].
+
+ ANIMA: Autonomic Networking Integrated Model and Approach. ACP,
+ BRSKI, and GRASP are specifications of the IETF ANIMA Working
+ Group.
+
+ ASA: Autonomic Service Agent. Autonomic software modules running on
+ an ANI device. The components making up the ANI (BRSKI, ACP, and
+ GRASP) are also described as ASAs.
+
+ autonomic function: A function and/or service in an Autonomic
+ Network (AN) composed of one or more ASAs across one or more ANI
+ nodes.
+
+ BRSKI: Bootstrapping Remote Secure Key Infrastructure [RFC8995]. A
+ protocol extending EST to enable secure zero-touch bootstrap in
+ conjunction with ACP. ANI nodes use ACP, BRSKI, and GRASP.
+
+ CA: Certification Authority. An entity that issues digital
+ certificates. A CA uses its private key to sign the certificates
+ it issues. Relying parties use the public key in the CA
+ certificate to validate the signature.
+
+ CRL: Certificate Revocation List. A list of revoked certificates is
+ required to revoke certificates before their lifetime expires.
+
+ data plane: The counterpoint to the ACP VRF in an ACP node: the
+ forwarding of user traffic in non-autonomous nodes and/or networks
+ and also any non-autonomous control and/or management plane
+ functions. In a fully Autonomic Network node, the data plane is
+ managed autonomically via autonomic functions and Intent. See
+ Section 1 for more details.
+
+ device: A physical system or physical node.
+
+ enrollment: The process by which a node authenticates itself to a
+ network with an initial identity, which is often called an Initial
+ Device IDentity (IDevID) certificate, and acquires from the
+ network a network-specific identity, which is often called an
+ LDevID certificate, and certificates of one or more trust
+ anchor(s). In the ACP, the LDevID certificate is called the ACP
+ certificate.
+
+ EST: Enrollment over Secure Transport [RFC7030]. IETF Standards
+ Track protocol for enrollment of a node with an LDevID
+ certificate. BRSKI is based on EST.
+
+ GRASP: GeneRic Autonomic Signaling Protocol. An extensible
+ signaling protocol required by the ACP for ACP neighbor discovery.
+
+ The ACP also provides the "security and transport substrate" for
+ the "ACP instance of GRASP". This instance of GRASP runs across
+ the ACP secure channels to support BRSKI and other NOC and/or OAM
+ or autonomic functions. See [RFC8990].
+
+ IDevID: An Initial Device IDentity X.509 certificate installed by
+ the vendor on new equipment. The IDevID certificate contains
+ information that establishes the identity of the node in the
+ context of its vendor and/or manufacturer such as device model
+ and/or type and serial number. See [AR8021]. The IDevID
+ certificate cannot be used as a node identifier for the ACP
+ because they are not provisioned by the owner of the network, so
+ they can not directly indicate an ACP domain they belong to.
+
+ in-band (as in management or signaling): In-band management traffic
+ and/or control plane signaling uses the same network resources
+ such as routers and/or switches and network links that it manages
+ and/or controls. In-band is the standard management and signaling
+ mechanism in IP networks. Compared to out-of-band, the in-band
+ mechanism requires no additional physical resources, but it
+ introduces potentially circular dependencies for its correct
+ operations. See Section 1.
+
+ Intent: The policy language of an Autonomic Network according to
+ [RFC8993].
+
+ Loopback interface: See ACP loopback interface.
+
+ LDevID: A Local Device IDentity is an X.509 certificate installed
+ during enrollment. The domain certificate used by the ACP is an
+ LDevID certificate. See [AR8021].
+
+ management: Used in this document as another word for OAM.
+
+ MASA (service): Manufacturer Authorized Signing Authority. A vendor
+ and/or manufacturer or delegated cloud service on the Internet
+ used as part of the BRSKI protocol.
+
+ MIC: Manufacturer Installed Certificate. A synonym for an IDevID in
+ referenced materials. This term is not used in this document.
+
+ native interface: Interfaces existing on a node without
+ configuration of the already running node. On physical nodes,
+ these are usually physical interfaces; on virtual nodes, their
+ equivalent.
+
+ NOC: Network Operations Center.
+
+ node: A system supporting the ACP according to this document. A
+ node can be virtual or physical. Physical nodes are called
+ devices.
+
+ Node-ID: The identifier of an ACP node inside that ACP. It is
+ either the last 64 bits (see Section 6.11.3) or 78 bits (see
+ Section 6.11.5) of the ACP address.
+
+ OAM: Operations, Administration, and Management. Includes network
+ monitoring.
+
+ Operational Technology (OT): "The hardware and software dedicated to
+ detecting or causing changes in physical processes through direct
+ monitoring and/or control of physical devices such as valves,
+ pumps, etc." [OP-TECH]. In most cases today, OT networks are
+ well separated from Information Technology (IT) networks.
+
+ out-of-band (management) network: An out-of-band network is a
+ secondary network used to manage a primary network. The equipment
+ of the primary network is connected to the out-of-band network via
+ dedicated management ports on the primary network equipment.
+ Serial (console) management ports were historically most common;
+ however, higher-end network equipment now also has Ethernet ports
+ dedicated only to management. An out-of-band network provides
+ management access to the primary network independent of the
+ configuration state of the primary network. See Section 1.
+
+ out-of-band network, virtual: The ACP can be called a virtual out-
+ of-band network for management and control because it attempts to
+ provide the benefits of a (physical) out-of-band network even
+ though it is physically carried in-band. See Section 1.
+
+ root CA: root Certification Authority. A CA for which the root CA
+ key update procedures of [RFC7030], Section 4.4, can be applied.
+
+ RPL: IPv6 Routing Protocol for Low-Power and Lossy Networks. The
+ routing protocol used in the ACP. See [RFC6550].
+
+ registrar (ACP, ANI/BRSKI): An ACP registrar is an entity (software
+ and/or person) that orchestrates the enrollment of ACP nodes with
+ the ACP certificate. ANI nodes use BRSKI, so ANI registrars are
+ also called BRSKI registrars. For non-ANI ACP nodes, the
+ registrar mechanisms are not defined in this document. See
+ Section 6.11.7. Renewal and other maintenance (such as
+ revocation) of ACP certificates may be performed by entities other
+ than registrars. EST must be supported for ACP certificate
+ renewal (see Section 6.2.5). BRSKI is an extension of EST, so
+ ANI/BRSKI registrars can easily support ACP domain certificate
+ renewal in addition to initial enrollment.
+
+ RPI: RPL Packet Information. Network extension headers for use with
+ RPL. Not used with RPL in the ACP. See Section 6.12.1.13.
+
+ RPL: Routing Protocol for Low-Power and Lossy Networks. The routing
+ protocol used in the ACP. See Section 6.12.
+
+ sUDI: secured Unique Device Identifier. This is a synonym of IDevID
+ in referenced material. This term is not used in this document.
+
+ TA: Trust Anchor. A TA is an entity that is trusted for the purpose
+ of certificate validation. TA information such as self-signed
+ certificate(s) of the TA is configured into the ACP node as part
+ of enrollment. See [RFC5280], Section 6.1.1.
+
+ UDI: Unique Device Identifier. In the context of this document,
+ unsecured identity information of a node typically consists of at
+ least a device model and/or type and a serial number, often in a
+ vendor-specific format. See sUDI and LDevID.
+
+ ULA (Global ID prefix): A Unique Local Address is an IPv6 address in
+ the block fc00::/7, defined in "Unique Local IPv6 Unicast
+ Addresses" [RFC4193]. ULA is the IPv6 successor of the IPv4
+ private address space ("Address Allocation for Private Internets"
+ [RFC1918]). ULAs have important differences over IPv4 private
+ addresses that are beneficial for and exploited by the ACP, such
+ as the locally assigned Global ID prefix, which is the first 48
+ bits of a ULA address [RFC4193], Section 3.2.1. In this document,
+ this prefix is abbreviated as "ULA prefix".
+
+ (ACP) VRF: The ACP is modeled in this document as a Virtual Routing
+ and Forwarding instance. This means that it is based on a
+ "virtual router" consisting of a separate IPv6 forwarding table to
+ which the ACP virtual interfaces are attached and an associated
+ IPv6 routing table separate from the data plane. Unlike the VRFs
+ on MPLS/VPN Provider Edge ("BGP/MPLS IP Virtual Private Networks
+ (VPNs)" [RFC4364]) or LISP xTR ("The Locator/ID Separation
+ Protocol (LISP)" [RFC6830]), the ACP VRF does not have any special
+ "core facing" functionality or routing and/or mapping protocols
+ shared across multiple VRFs. In vendor products, a VRF such as
+ the ACP VRF may also be referred to as a VRF-lite.
+
+ (ACP) Zone: An ACP zone is a set of ACP nodes using the same zone
+ field value in their ACP address according to Section 6.11.3.
+ Zones are a mechanism to support structured addressing of ACP
+ addresses within the same /48 ULA prefix.
+
+ 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.
+
+3. Use Cases for an Autonomic Control Plane (Informative)
+
+ This section summarizes the use cases that are intended to be
+ supported by an ACP. To understand how these are derived from and
+ relate to the larger set of use cases for Autonomic Networks, please
+ refer to "Autonomic Networking Use Case for Distributed Detection of
+ Service Level Agreement (SLA) Violations" [RFC8316].
+
+3.1. An Infrastructure for Autonomic Functions
+
+ Autonomic functions need a stable infrastructure to run on, and all
+ autonomic functions should use the same infrastructure to minimize
+ the complexity of the network. In this way, there is only need for a
+ single discovery mechanism, a single security mechanism, and single
+ instances of other processes that distributed functions require.
+
+3.2. Secure Bootstrap over an Unconfigured Network
+
+ Today, bootstrapping a new node typically requires all nodes between
+ a controlling node such as an SDN controller (see [RFC7426]) and the
+ new node to be completely and correctly addressed, configured, and
+ secured. Bootstrapping and configuration of a network happens in
+ rings around the controller -- configuring each ring of devices
+ before the next one can be bootstrapped. Without console access (for
+ example, through an out-of-band network), it is not possible today to
+ make devices securely reachable before having configured the entire
+ network leading up to them.
+
+ With the ACP, secure bootstrap of new devices and whole new networks
+ can happen without requiring any configuration of unconfigured
+ devices along the path. As long as all devices along the path
+ support ACP and a zero-touch bootstrap mechanism such as BRSKI, the
+ ACP across a whole network of unconfigured devices can be brought up
+ without operator and/or provisioning intervention. The ACP also
+ offers additional security for any bootstrap mechanism because it can
+ provide the encrypted discovery (via ACP GRASP) of registrars or
+ other bootstrap servers by bootstrap proxies connecting to nodes that
+ are to be bootstrapped. The ACP encryption hides the identities of
+ the communicating entities (pledge and registrar), making it more
+ difficult to learn which network node might be attackable. The ACP
+ certificate can also be used to end-to-end encrypt the bootstrap
+ communication between such proxies and server. Note that
+ bootstrapping here includes not only the first step that can be
+ provided by BRSKI (secure keys), but also later stages where
+ configuration is bootstrapped.
+
+3.3. Permanent Reachability Independent of the Data Plane
+
+ Today, most critical control plane protocols and OAM protocols use
+ the data plane of the network. This leads to often undesirable
+ dependencies between the control and OAM plane on one side and the
+ data plane on the other: only if the forwarding and control plane of
+ the data plane are configured correctly, will the data plane and the
+ OAM and/or control plane work as expected.
+
+ Data plane connectivity can be affected by errors and faults.
+ Examples include misconfigurations that make AAA (Authentication,
+ Authorization, and Accounting) servers unreachable or that can lock
+ an administrator out of a device; routing or addressing issues can
+ make a device unreachable; and shutting down interfaces over which a
+ current management session is running can lock an administrator
+ irreversibly out of the device. Traditionally only out-of-band
+ access via a serial console or Ethernet management port can help
+ recover from such issues.
+
+ Data plane dependencies also affect applications in a NOC such as SDN
+ controller applications: certain network changes are hard to
+ implement today because the change itself may affect reachability of
+ the devices. Examples include address or mask changes, routing
+ changes, or security policies. Today such changes require precise,
+ hop-by-hop planning.
+
+ Note that specific control plane functions for the data plane often
+ depend on the ability to forward their packets via the data plane:
+ sending aliveness and routing protocol signaling packets across the
+ data plane to verify reachability, using IPv4 signaling packets for
+ IPv4 routing and IPv6 signaling packets for IPv6 routing.
+
+ Assuming appropriate implementation (see Section 6.13.2 for more
+ details), the ACP provides reachability that is independent of the
+ data plane. This allows the control plane and OAM plane to operate
+ more robustly:
+
+ * For management plane protocols, the ACP provides the functionality
+ of a Virtual out-of-Band (VooB) channel, by providing connectivity
+ to all nodes regardless of their data plane configuration, and
+ routing and forwarding tables.
+
+ * For control plane protocols, the ACP allows their operation even
+ when the data plane is temporarily faulty, or during transitional
+ events, such as routing changes, which may affect the control
+ plane at least temporarily. This is specifically important for
+ autonomic service agents, which could affect data plane
+ connectivity.
+
+ The document "Using Autonomic Control Plane for Stable Connectivity
+ of Network OAM" [RFC8368] explains this use case for the ACP in
+ significantly more detail and explains how the ACP can be used in
+ practical network operations.
+
+4. Requirements (Informative)
+
+ The following requirements were identified for the design of the ACP
+ based on the above use cases (Section 3). These requirements are
+ informative. The ACP as specified in the normative parts of this
+ document is meeting or exceeding these use case requirements:
+
+ ACP1: The ACP should provide robust connectivity: as far as
+ possible, it should be independent of configured
+ addressing, configuration, and routing. Requirements 2 and
+ 3 build on this requirement, but they also have value on
+ their own.
+
+ ACP2: The ACP must have a separate address space from the data
+ plane. This separate address space provides traceability,
+ ease of debugging, separation from data plane, and
+ infrastructure security (filtering based on known address
+ space).
+
+ ACP3: The ACP must use an autonomically managed address space.
+ An autonomically managed address space provides ease of
+ bootstrap and setup ("autonomic"), and robustness (the
+ administrator cannot break network easily). This document
+ uses ULA for this purpose, see [RFC4193].
+
+ ACP4: The ACP must be generic, that is, it must be usable by all
+ the functions and protocols of the ANI. Clients of the ACP
+ must not be tied to a particular application or transport
+ protocol.
+
+ ACP5: The ACP must provide security: messages coming through the
+ ACP must be authenticated to be from a trusted node, and it
+ is very strongly recommended that they be encrypted.
+
+ The explanation for ACP4 is as follows: in a fully Autonomic Network
+ (AN), all newly written ASAs could potentially communicate with each
+ other exclusively via GRASP, and if that were the only requirement
+ for the ACP, it would not need to provide IPv6-layer connectivity
+ between nodes, but only GRASP connectivity. Nevertheless, because
+ ACP also intends to support non-autonomous networks, it is crucial to
+ support IPv6-layer connectivity across the ACP to support any
+ transport-layer and application-layer protocols.
+
+ The ACP operates hop-by-hop because this interaction can be built on
+ IPv6 link-local addressing, which is autonomic, and has no dependency
+ on configuration (requirement ACP1). It may be necessary to have ACP
+ connectivity across non-ACP nodes, for example, to link ACP nodes
+ over the general Internet. This is possible, but it introduces a
+ dependency on stable and/or resilient routing over the non-ACP hops
+ (see Section 8.2).
+
+5. Overview (Informative)
+
+ When a node has an ACP certificate (see Section 6.2.1) and is enabled
+ to bring up the ACP (see Section 9.3.5), it will create its ACP
+ without any configuration as follows. For details, see Section 6 and
+ following sections:
+
+ 1. The node creates a VRF instance or a similar virtual context for
+ the ACP.
+
+ 2. The node assigns its ULA IPv6 address (prefix) (see
+ Section 6.11), which is learned from the acp-node-name (see
+ Section 6.2.2) of its ACP certificate (see Section 6.2.1), to an
+ ACP loopback interface (see Section 6.11) and connects this
+ interface to the ACP VRF.
+
+ 3. The node establishes a list of candidate peer adjacencies and
+ candidate channel types to try for the adjacency. This is
+ automatic for all candidate link-local adjacencies (see
+ Section 6.4) across all native interfaces (see Section 9.3.4).
+ If a candidate peer is discovered via multiple interfaces, this
+ will result in one adjacency per interface. If the ACP node has
+ multiple interfaces connecting to the same subnet across which it
+ is also operating as an L2 switch in the data plane, it employs
+ methods for ACP with L2 switching, see Section 7.
+
+ 4. For each entry in the candidate adjacency list, the node
+ negotiates a secure tunnel using the candidate channel types.
+ See Section 6.6.
+
+ 5. The node authenticates the peer node during secure channel setup
+ and authorizes it to become part of the ACP according to
+ Section 6.2.3.
+
+ 6. Unsuccessful authentication of a candidate peer results in
+ throttled connection retries for as long as the candidate peer is
+ discoverable. See Section 6.7.
+
+ 7. Each successfully established secure channel is mapped to an ACP
+ virtual interface, which is placed into the ACP VRF. See
+ Section 6.13.5.2.
+
+ 8. Each node runs a lightweight routing protocol (see Section 6.12)
+ to announce reachability of the ACP loopback address (or prefix)
+ across the ACP.
+
+ 9. This completes the creation of the ACP with hop-by-hop secure
+ tunnels, auto-addressing, and auto-routing. The node is now an
+ ACP node with a running ACP.
+
+ Note:
+
+ * None of the above operations (except the following explicitly
+ configured ones) are reflected in the configuration of the node.
+
+ * Non-ACP network management systems (NMS) or SDN controllers have
+ to be explicitly configured for connection to the ACP.
+
+ * Additional candidate peer adjacencies for ACP connections across
+ non-ACP Layer 3 clouds requires explicit configuration. See
+ Section 8.2.
+
+ Figure 1 illustrates the ACP.
+
+ ACP Node 1 ACP Node 2
+ ................... ...................
+ secure . . secure . . secure
+ channel: +-----------+ : channel : +-----------+ : channel
+ ..--------| ACP VRF |---------------------| ACP VRF |---------..
+ : / \ / \ <--routing--> / \ / \ :
+ : \ / \ / \ / \ / :
+ ..--------| loopback |---------------------| loopback |---------..
+ : | interface | : : | interface | :
+ : +-----------+ : : +-----------+ :
+ : : : :
+ : Data Plane :...............: Data Plane :
+ : : link : :
+ :.................: :.................:
+
+ Figure 1: ACP VRF and Secure Channels
+
+ The resulting overlay network is normally based exclusively on hop-
+ by-hop tunnels. This is because addressing used on links is IPv6
+ link-local addressing, which does not require any prior setup. In
+ this way, the ACP can be built even if there is no configuration on
+ the node, or if the data plane has issues such as addressing or
+ routing problems.
+
+6. Self-Creation of an Autonomic Control Plane (ACP) (Normative)
+
+ This section specifies the components and steps to set up an ACP.
+ The ACP is automatically self-creating, which makes it
+ "indestructible" against most changes to the data plane, including
+ misconfigurations of routing, addressing, NAT, firewall, or any other
+ traffic policy filters that would inadvertently or otherwise
+ unavoidably also impact the management plane traffic, such as the
+ actual operator command-line interface (CLI) session or controller
+ NETCONF session through which the configuration changes to the data
+ plane are executed.
+
+ Physical misconfiguration of wiring between ACP nodes will also not
+ break the ACP. As long as there is a transitive physical path
+ between ACP nodes, the ACP should be able to recover given that it
+ automatically operates across all interfaces of the ACP nodes and
+ automatically determines paths between them.
+
+ Attacks against the network via incorrect routing or addressing
+ information for the data plane will not impact the ACP. Even
+ impaired ACP nodes will have a significantly reduced attack surface
+ against malicious misconfiguration because only very limited ACP or
+ interface up/down configuration can affect the ACP, and depending on
+ their specific designs, these types of attacks could also be
+ eliminated. See more in Section 9.3 and Section 11.
+
+ An ACP node can be a router, switch, controller, NMS host, or any
+ other IPv6-capable node. Initially, it MUST have its ACP
+ certificate, as well as an (empty) ACP adjacency table (described in
+ Section 6.3). It then can start to discover ACP neighbors and build
+ the ACP. This is described step by step in the following sections.
+
+6.1. Requirements for the Use of Transport Layer Security (TLS)
+
+ The following requirements apply to TLS that is required or used by
+ ACP components. Applicable ACP components include ACP certificate
+ maintenance via EST (see Section 6.2.5), TLS connections for CRL
+ Distribution Point (CRLDP) or Online Certificate Status Protocol
+ (OCSP) responder (if used, see Section 6.2.3), and ACP GRASP (see
+ Section 6.9.2). On ANI nodes, these requirements also apply to
+ BRSKI.
+
+ TLS MUST comply with "Recommendations for Secure Use of Transport
+ Layer Security (TLS) and Datagram Transport Layer Security (DTLS)"
+ [RFC7525] except that TLS 1.2 ("The Transport Layer Security (TLS)
+ Protocol Version 1.2" [RFC5246]) is REQUIRED and that older versions
+ of TLS MUST NOT be used. TLS 1.3 ("The Transport Layer Security
+ (TLS) Protocol Version 1.3" [RFC8446]) SHOULD be supported. The
+ choice for TLS 1.2 as the lowest common denominator for the ACP is
+ based on the currently expected and most likely availability across
+ the wide range of candidate ACP node types, potentially with non-
+ agile operating system TCP/IP stacks.
+
+ TLS MUST offer TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 and
+ TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 and MUST NOT offer options
+ with less than 256-bit symmetric key strength or hash strength of
+ less than 384 bits. When TLS 1.3 is supported,
+ TLS_AES_256_GCM_SHA384 MUST be offered and
+ TLS_CHACHA20_POLY1305_SHA256 MAY be offered.
+
+ TLS MUST also include the "Supported Elliptic Curves" extension, and
+ it MUST support the NIST P-256 (secp256r1(22)) and P-384
+ (secp384r1(24)) curves "Elliptic Curve Cryptography (ECC) Cipher
+ Suites for Transport Layer Security (TLS) Versions 1.2 and Earlier"
+ [RFC8422]. In addition, TLS 1.2 clients SHOULD send an
+ ec_point_format extension with a single element, "uncompressed".
+
+6.2. ACP Domain, Certificate, and Network
+
+ The ACP relies on group security. An ACP domain is a group of nodes
+ that trust each other to participate in ACP operations such as
+ creating ACP secure channels in an autonomous, peer-to-peer fashion
+ between ACP domain members via protocols such as IPsec. To
+ authenticate and authorize another ACP member node with access to the
+ ACP domain, each ACP member requires keying material: an ACP node
+ MUST have an LDevID certificate and information about one or more TAs
+ as required for the ACP domain membership check (Section 6.2.3).
+
+ Manual keying via shared secrets is not usable for an ACP domain
+ because it would require a single shared secret across all current
+ and future ACP domain members to meet the expectation of autonomous,
+ peer-to-peer establishment of ACP secure channels between any ACP
+ domain members. Such a single shared secret would be an unacceptable
+ security weakness. Asymmetric keying material (public keys) without
+ certificates does not provide the mechanism to authenticate ACP
+ domain membership in an autonomous, peer-to-peer fashion for current
+ and future ACP domain members.
+
+ The LDevID certificate is henceforth called the ACP certificate. The
+ TA is the CA root certificate of the ACP domain.
+
+ The ACP does not mandate specific mechanisms by which this keying
+ material is provisioned into the ACP node. It only requires that the
+ certificate comply with Section 6.2.1, specifically that it have the
+ acp-node-name as specified in Section 6.2.2 in its domain certificate
+ as well as those of candidate ACP peers. See Appendix A.2 for more
+ information about enrollment or provisioning options.
+
+ This document uses the term ACP in many places where the Autonomic
+ Networking reference documents [RFC7575] and [RFC8993] use the word
+ autonomic. This is done because those reference documents consider
+ (only) fully Autonomic Networks and nodes, but the support of ACP
+ does not require the support for other components of Autonomic
+ Networks except for the reliance on GRASP and the providing of
+ security and transport for GRASP. Therefore, the word autonomic
+ might be misleading to operators interested in only the ACP.
+
+ [RFC7575] defines the term "autonomic domain" as a collection of
+ autonomic nodes. ACP nodes do not need to be fully autonomic, but
+ when they are, then the ACP domain is an autonomic domain. Likewise,
+ [RFC8993] defines the term "domain certificate" as the certificate
+ used in an autonomic domain. The ACP certificate is that domain
+ certificate when ACP nodes are (fully) autonomic nodes. Finally,
+ this document uses the term ACP network to refer to the network
+ created by active ACP nodes in an ACP domain. The ACP network itself
+ can extend beyond ACP nodes through the mechanisms described in
+ Section 8.1.
+
+6.2.1. ACP Certificates
+
+ ACP certificates MUST be [RFC5280] compliant X.509 v3 [X.509]
+ certificates.
+
+ ACP nodes MUST support handling ACP certificates, TA certificates,
+ and certificate chain certificates (henceforth just called
+ certificates in this section) with RSA public keys and certificates
+ with Elliptic Curve Cryptography (ECC) public keys.
+
+ ACP nodes MUST NOT support certificates with RSA public keys of less
+ than a 2048-bit modulus or curves with group order of less than 256
+ bits. They MUST support certificates with RSA public keys with
+ 2048-bit modulus and MAY support longer RSA keys. They MUST support
+ certificates with ECC public keys using NIST P-256 curves and SHOULD
+ support P-384 and P-521 curves.
+
+ ACP nodes MUST NOT support certificates with RSA public keys whose
+ modulus is less than 2048 bits, or certificates whose ECC public keys
+ are in groups whose order is less than 256 bits. RSA signing
+ certificates with 2048-bit public keys MUST be supported, and such
+ certificates with longer public keys MAY be supported. ECDSA
+ certificates using the NIST P-256 curve MUST be supported, and such
+ certificates using the P-384 and P-521 curves SHOULD be supported.
+
+ ACP nodes MUST support RSA certificates that are signed by RSA
+ signatures over the SHA-256 digest of the contents and SHOULD
+ additionally support SHA-384 and SHA-512 digests in such signatures.
+ The same requirements for digest usage in certificate signatures
+ apply to Elliptic Curve Digital Signature Algorithm (ECDSA)
+ certificates, and additionally, ACP nodes MUST support ECDSA
+ signatures on ECDSA certificates.
+
+ The ACP certificate SHOULD use an RSA key and an RSA signature when
+ the ACP certificate is intended to be used not only for ACP
+ authentication but also for other purposes. The ACP certificate MAY
+ use an ECC key and an ECDSA signature if the ACP certificate is only
+ used for ACP and ANI authentication and authorization.
+
+ Any secure channel protocols used for the ACP as specified in this
+ document or extensions of this document MUST therefore support
+ authentication (e.g., signing), starting with these types of
+ certificates. See [RFC8422] for more information.
+
+ The reason for these choices are as follows: as of 2020, RSA is still
+ more widely used than ECC, therefore the MUST-level requirements for
+ RSA. ECC offers equivalent security at (logarithmically) shorter key
+ lengths (see [RFC8422]). This can be beneficial especially in the
+ presence of constrained bandwidth or constrained nodes in an ACP/ANI
+ network. Some ACP functions such as GRASP peer-to-peer across the
+ ACP require end-to-end/any-to-any authentication and authorization,
+ therefore ECC can only reliably be used in the ACP when it MUST be
+ supported on all ACP nodes. RSA signatures are mandatory to be
+ supported also for ECC certificates because the CAs themselves may
+ not support ECC yet.
+
+ The ACP certificate SHOULD be used for any authentication between
+ nodes with ACP domain certificates (ACP nodes and NOC nodes) where a
+ required authorization condition is ACP domain membership, such as
+ ACP node to NOC/OAM end-to-end security and ASA to ASA end-to-end
+ security. Section 6.2.3 defines this "ACP domain membership check".
+ The uses of this check that are standardized in this document are for
+ the establishment of hop-by-hop ACP secure channels (Section 6.8) and
+ for ACP GRASP (Section 6.9.2) end to end via TLS.
+
+ The ACP domain membership check requires a minimum number of elements
+ in a certificate as described in Section 6.2.3. The identity of a
+ node in the ACP is carried via the acp-node-name as defined in
+ Section 6.2.2.
+
+ To support Elliptic Curve Diffie-Hellman (ECDH) directly with the key
+ in the ACP certificate, ACP certificates with ECC keys need to
+ indicate that they are ECDH capable: if the X.509 v3 keyUsage
+ extension is present, the keyAgreement bit must then be set. Note
+ that this option is not required for any of the required ciphersuites
+ in this document and may not be supported by all CAs.
+
+ Any other fields of the ACP certificate are to be populated as
+ required by [RFC5280]. As long as they are compliant with [RFC5280],
+ any other field of an ACP certificate can be set as desired by the
+ operator of the ACP domain through the appropriate ACP registrar and/
+ or ACP CA procedures. For example, other fields may be required for
+ purposes other than those that the ACP certificate is intended to be
+ used for (such as elements of a SubjectName).
+
+ For further certificate details, ACP certificates may follow the
+ recommendations from [CABFORUM].
+
+ For diagnostic and other operational purposes, it is beneficial to
+ copy the device-identifying fields of the node's IDevID certificate
+ into the ACP certificate, such as the "serialNumber" attribute
+ ([X.520], Section 6.2.9) in the subject field distinguished name
+ encoding. Note that this is not the certificate serial-number. See
+ also [RFC8995], Section 2.3.1. This can be done, for example, if it
+ would be acceptable for the device's "serialNumber" to be signaled
+ via the Link Layer Discovery Protocol [LLDP] because, like LLDP-
+ signaled information, the ACP certificate information can be
+ retrieved by neighboring nodes without further authentication and can
+ be used either for beneficial diagnostics or for malicious attacks.
+ Retrieval of the ACP certificate is possible via a (failing) attempt
+ to set up an ACP secure channel, and the "serialNumber" usually
+ contains device type information that may help to more quickly
+ determine working exploits/attacks against the device.
+
+ Note that there is no intention to constrain authorization within the
+ ACP or Autonomic Networks using the ACP to just the ACP domain
+ membership check as defined in this document. It can be extended or
+ modified with additional requirements. Such future authorizations
+ can use and require additional elements in certificates or policies
+ or even additional certificates. See Section 6.2.5 for the
+ additional check against the id-kp-cmcRA extended key usage attribute
+ ("Certificate Management over CMS (CMC) Updates" [RFC6402]), and see
+ Appendix A.9.5 for possible future extensions.
+
+6.2.2. ACP Certificate AcpNodeName
+
+ acp-node-name = local-part "@" acp-domain-name
+ local-part = [ acp-address ] [ "+" rsub extensions ]
+ acp-address = 32HEXDIG / "0" ; HEXDIG as of [RFC5234], Appendix B.1
+ rsub = [ <subdomain> ] ; <subdomain> as of [RFC1034], Section 3.5
+ acp-domain-name = <domain> ; as of [RFC1034], Section 3.5
+ extensions = *( "+" extension )
+ extension = 1*etext ; future standard definition.
+ etext = ALPHA / DIGIT / ; Printable US-ASCII
+ "!" / "#" / "$" / "%" / "&" / "'" /
+ "*" / "-" / "/" / "=" / "?" / "^" /
+ "_" / "`" / "{" / "|" / "}" / "~"
+
+ routing-subdomain = [ rsub "." ] acp-domain-name
+
+ Figure 2: ACP Node Name ABNF
+
+ Example:
+
+ Given an ACP address of fd89:b714:f3db:0:200:0:6400:0000, an ACP
+ domain name of acp.example.com, and an rsub extension of
+ area51.research, then this results in the following:
+
+ acp-node-name = fd89b714f3db00000200000064000000
+ +area51.research@acp.example.com
+ acp-domain-name = acp.example.com
+ routing-subdomain = area51.research.acp.example.com
+
+ The acp-node-name in Figure 2 is the ABNF definition ("Augmented BNF
+ for Syntax Specifications: ABNF" [RFC5234]) of the ACP Node Name. An
+ ACP certificate MUST carry this information. It MUST contain an
+ otherName field in the X.509 Subject Alternative Name extension, and
+ the otherName MUST contain an AcpNodeName as described in
+ Section 6.2.2.
+
+ Nodes complying with this specification MUST be able to receive their
+ ACP address through the domain certificate, in which case their own
+ ACP certificate MUST have a 32HEXDIG acp-address field. The acp-
+ address field is case insensitive because ABNF HEXDIG is. It is
+ recommended to encode acp-address with lowercase letters. Nodes
+ complying with this specification MUST also be able to authenticate
+ nodes as ACP domain members or ACP secure channel peers when they
+ have a zero-value acp-address field and as ACP domain members (but
+ not as ACP secure channel peers) when the acp-address field is
+ omitted from their AcpNodeName. See Section 6.2.3.
+
+ The acp-domain-name is used to indicate the ACP domain across which
+ ACP nodes authenticate and authorize each other, for example, to
+ build ACP secure channels to each other, see Section 6.2.3. The acp-
+ domain-name SHOULD be the FQDN of an Internet domain owned by the
+ network administration of the ACP and ideally reserved to only be
+ used for the ACP. In this specification, it serves as a name for the
+ ACP that ideally is globally unique. When acp-domain-name is a
+ globally unique name, collision of ACP addresses across different ACP
+ domains can only happen due to ULA hash collisions (see
+ Section 6.11.2). Using different acp-domain-names, operators can
+ distinguish multiple ACPs even when using the same TA.
+
+ To keep the encoding simple, there is no consideration for
+ internationalized acp-domain-names. The acp-node-name is not
+ intended for end-user consumption. There is no protection against an
+ operator picking any domain name for an ACP whether or not the
+ operator can claim to own the domain name. Instead, the domain name
+ only serves as a hash seed for the ULA and for diagnostics for the
+ operator. Therefore, any operator owning only an internationalized
+ domain name should be able to pick an equivalently unique 7-bit ASCII
+ acp-domain-name string representing the internationalized domain
+ name.
+
+ The routing-subdomain is a string that can be constructed from the
+ acp-node-name, and it is used in the hash creation of the ULA (see
+ Section 6.11.2). The presence of the rsub component allows a single
+ ACP domain to employ multiple /48 ULA prefixes. See Appendix A.6 for
+ example use cases.
+
+ The optional extensions field is used for future standardized
+ extensions to this specification. It MUST be ignored if present and
+ not understood.
+
+ The following points explain and justify the encoding choices
+ described:
+
+ 1. Formatting notes:
+
+ 1.1 The rsub component needs to be in the local-part: if the
+ format just had routing-subdomain as the domain part of the
+ acp-node-name, rsub and acp-domain-name could not be
+ separated from each other to determine in the ACP domain
+ membership check which part is the acp-domain-name and which
+ is solely for creating a different ULA prefix.
+
+ 1.2 If both acp-address and rsub are omitted from AcpNodeName,
+ the local-part will have the format "++extension(s)". The
+ two plus characters are necessary so the node can
+ unambiguously parse that both acp-address and rsub are
+ omitted.
+
+ 2. The encoding of the ACP domain name and ACP address as described
+ in this section is used for the following reasons:
+
+ 2.1 The acp-node-name is the identifier of a node's ACP. It
+ includes the necessary components to identify a node's ACP
+ both from within the ACP as well as from the outside of the
+ ACP.
+
+ 2.2 For manual and/or automated diagnostics and backend
+ management of devices and ACPs, it is necessary to have an
+ easily human-readable and software-parsable standard, single
+ string representation of the information in the acp-node-
+ name. For example, inventory or other backend systems can
+ always identify an entity by one unique string field but not
+ by a combination of multiple fields, which would be
+ necessary if there were no single string representation.
+
+ 2.3 If the encoding was not such a string, it would be necessary
+ to define a second standard encoding to provide this format
+ (standard string encoding) for operator consumption.
+
+ 2.4 Addresses of the form <local>@<domain> have become the
+ preferred format for identifiers of entities in many
+ systems, including the majority of user identifiers in web
+ or mobile applications such as multi-domain single-sign-on
+ systems.
+
+ 3. Compatibilities:
+
+ 3.1 It should be possible to use the ACP certificate as an
+ LDevID certificate on the system for uses besides the ACP.
+ Therefore, the information element required for the ACP
+ should be encoded so that it minimizes the possibility of
+ creating incompatibilities with other such uses. The
+ attributes of the subject field, for example, are often used
+ in non-ACP applications and therefore should not be occupied
+ by new ACP values.
+
+ 3.2 The element should not require additional ASN.1 encoding
+ and/or decoding because libraries for accessing certificate
+ information, especially for embedded devices, may not
+ support extended ASN.1 decoding beyond predefined, mandatory
+ fields. subjectAltName / otherName is already used with a
+ single string parameter for several otherNames (see
+ "Extensible Messaging and Presence Protocol (XMPP): Core"
+ [RFC6120], "Dynamic Peer Discovery for RADIUS/TLS and
+ RADIUS/DTLS Based on the Network Access Identifier (NAI)"
+ [RFC7585], "Internet X.509 Public Key Infrastructure Subject
+ Alternative Name for Expression of Service Name" [RFC4985],
+ "Internationalized Email Addresses in X.509 Certificates"
+ [RFC8398]).
+
+ 3.3 The element required for the ACP should minimize the risk of
+ being misinterpreted by other uses of the LDevID
+ certificate. It also must not be misinterpreted as an email
+ address, hence the use of the otherName / rfc822Name option
+ in the certificate would be inappropriate.
+
+ See Section 4.2.1.6 of [RFC5280] for details on the subjectAltName
+ field.
+
+6.2.2.1. AcpNodeName ASN.1 Module
+
+ The following ASN.1 module normatively specifies the AcpNodeName
+ structure. This specification uses the ASN.1 definitions from "New
+ ASN.1 Modules for the Public Key Infrastructure Using X.509 (PKIX)"
+ [RFC5912] with the 2002 ASN.1 notation used in that document.
+ [RFC5912] updates normative documents using older ASN.1 notation.
+
+ ANIMA-ACP-2020
+ { iso(1) identified-organization(3) dod(6)
+ internet(1) security(5) mechanisms(5) pkix(7) id-mod(0)
+ id-mod-anima-acpnodename-2020(97) }
+
+ DEFINITIONS IMPLICIT TAGS ::=
+ BEGIN
+
+ IMPORTS
+ OTHER-NAME
+ FROM PKIX1Implicit-2009
+ { iso(1) identified-organization(3) dod(6) internet(1)
+ security(5) mechanisms(5) pkix(7) id-mod(0)
+ id-mod-pkix1-implicit-02(59) }
+
+ id-pkix
+ FROM PKIX1Explicit-2009
+ { iso(1) identified-organization(3) dod(6) internet(1)
+ security(5) mechanisms(5) pkix(7) id-mod(0)
+ id-mod-pkix1-explicit-02(51) } ;
+
+ id-on OBJECT IDENTIFIER ::= { id-pkix 8 }
+
+ AcpNodeNameOtherNames OTHER-NAME ::= { on-AcpNodeName, ... }
+
+ on-AcpNodeName OTHER-NAME ::= {
+ AcpNodeName IDENTIFIED BY id-on-AcpNodeName
+ }
+
+ id-on-AcpNodeName OBJECT IDENTIFIER ::= { id-on 10 }
+
+ AcpNodeName ::= IA5String (SIZE (1..MAX))
+ -- AcpNodeName as specified in this document carries the
+ -- acp-node-name as specified in the ABNF in Section 6.2.2
+
+ END
+
+ Figure 3: AcpNodeName ASN.1 Module
+
+6.2.3. ACP Domain Membership Check
+
+ The following points constitute the ACP domain membership check of a
+ candidate peer via its certificate:
+
+ 1. The peer has proved ownership of the private key associated with
+ the certificate's public key. This check is performed by the
+ security association protocol used, for example, Section 2.15 of
+ "Internet Key Exchange Protocol Version 2 (IKEv2)" [RFC7296].
+
+ 2. The peer's certificate passes certificate path validation as
+ defined in [RFC5280], Section 6, against one of the TAs
+ associated with the ACP node's ACP certificate (see
+ Section 6.2.4). This includes verification of the validity
+ (lifetime) of the certificates in the path.
+
+ 3. If the peer's certificate indicates a CRLDP ([RFC5280],
+ Section 4.2.1.13) or OCSP responder ([RFC5280], Section 4.2.2.1),
+ then the peer's certificate MUST be valid according to those
+ mechanisms when they are available: an OCSP check for the peer's
+ certificate across the ACP must succeed, or the peer's
+ certificate must not be listed in the CRL retrieved from the
+ CRLDP. These mechanisms are not available when the ACP node has
+ no ACP or non-ACP connectivity to retrieve a current CRL or has
+ no access an OCSP responder, and the security association
+ protocol itself also has no way to communicate the CRL or OCSP
+ check.
+
+ Retries to learn revocation via OCSP or CRL SHOULD be made using
+ the same backoff as described in Section 6.7. If and when the
+ ACP node then learns that an ACP peer's certificate is invalid
+ for which Rule 3 had to be skipped during ACP secure channel
+ establishment, then the ACP secure channel to that peer MUST be
+ closed even if this peer is the only connectivity to access CRL/
+ OCSP. This applies (of course) to all ACP secure channels to
+ this peer if there are multiple. The ACP secure channel
+ connection MUST be retried periodically to support the case that
+ the neighbor acquires a new, valid certificate.
+
+ 4. The peer's certificate has a syntactically valid acp-node-name
+ field, and the acp-domain-name in that peer's acp-node-name is
+ the same as in this ACP node's certificate (lowercase
+ normalized).
+
+ When checking a candidate peer's certificate for the purpose of
+ establishing an ACP secure channel, one additional check is
+ performed:
+
+ 5. The acp-address field of the candidate peer certificate's
+ AcpNodeName is not omitted but is either 32HEXDIG or 0, according
+ to Figure 2.
+
+ Technically, ACP secure channels can only be built with nodes that
+ have an acp-address. Rule 5 ensures that this is taken into account
+ during ACP domain membership check.
+
+ Nodes with an omitted acp-address field can only use their ACP domain
+ certificate for non-ACP secure channel authentication purposes. This
+ includes, for example, NMS type nodes permitted to communicate into
+ the ACP via ACP connect (Section 8.1)
+
+ The special value "0" in an ACP certificate's acp-address field is
+ used for nodes that can and should determine their ACP address
+ through mechanisms other than learning it through the acp-address
+ field in their ACP certificate. These ACP nodes are permitted to
+ establish ACP secure channels. Mechanisms for those nodes to
+ determine their ACP address are outside the scope of this
+ specification, but this option is defined here so that any ACP nodes
+ can build ACP secure channels to them according to Rule 5.
+
+ The optional rsub field of the AcpNodeName is not relevant to the ACP
+ domain membership check because it only serves to structure routing
+ and addressing within an ACP but not to segment mutual authentication
+ and authorization (hence the name "routing subdomain").
+
+ In summary:
+
+ * Steps 1 through 4 constitute standard certificate validity
+ verification and private key authentication as defined by
+ [RFC5280] and security association protocols (such as IKEv2
+ [RFC7296]) when leveraging certificates.
+
+ * Except for its public key, Steps 1 through 4 do not include the
+ verification of any preexisting form of a certificate's identity
+ elements, such as a web server's domain name prefix, which is
+ often encoded in the certificate common name. Step 5 is an
+ equivalent step for the AcpNodeName.
+
+ * Step 4 constitutes standard CRL and OCSP checks refined for the
+ case of missing connectivity and limited-functionality security
+ association protocols.
+
+ * Steps 1 through 4 authorize the building of any secure connection
+ between members of the same ACP domain except for ACP secure
+ channels.
+
+ * Step 5 is the additional verification of the presence of an ACP
+ address as necessary for ACP secure channels.
+
+ * Steps 1 through 5 therefore authorize the building of an ACP
+ secure channel.
+
+ For brevity, the remainder of this document refers to this process
+ only as authentication instead of as authentication and
+ authorization.
+
+6.2.3.1. Realtime Clock and Time Validation
+
+ An ACP node with a realtime clock in which it has confidence MUST
+ check the timestamps when performing an ACP domain membership check,
+ such as checking the certificate validity period in Step 1 and the
+ respective times in Step 4 for revocation information (e.g.,
+ signingTimes in Cryptographic Message Syntax (CMS) signatures).
+
+ An ACP node without such a realtime clock MAY ignore those timestamp
+ validation steps if it does not know the current time. Such an ACP
+ node SHOULD obtain the current time in a secured fashion, such as via
+ NTP signaled through the ACP. It then ignores timestamp validation
+ only until the current time is known. In the absence of implementing
+ a secured mechanism, such an ACP node MAY use a current time learned
+ in an insecure fashion in the ACP domain membership check.
+
+ Current time MAY be learned in an unsecured fashion, for example, via
+ NTP ("Network Time Protocol Version 4: Protocol and Algorithms
+ Specification" [RFC5905]) over the same link-local IPv6 addresses
+ used for the ACP from neighboring ACP nodes. ACP nodes that do
+ provide unsecured NTP over their link-local addresses SHOULD
+ primarily run NTP across the ACP and provide NTP time across the ACP
+ only when they have a trusted time source. Details for such NTP
+ procedures are beyond the scope of this specification.
+
+ Besides the ACP domain membership check, the ACP itself has no
+ dependency on knowing the current time, but protocols and services
+ using the ACP, for example, event logging, will likely need to know
+ the current time.
+
+6.2.4. Trust Anchors (TA)
+
+ ACP nodes need TA information according to [RFC5280], Section 6.1.1
+ (d), typically in the form of one or more certificates of the TA to
+ perform certificate path validation as required by Section 6.2.3,
+ Rule 2. TA information MUST be provisioned to an ACP node (together
+ with its ACP domain certificate) by an ACP registrar during initial
+ enrollment of a candidate ACP node. ACP nodes MUST also support the
+ renewal of TA information via EST as described in Section 6.2.5.
+
+ The required information about a TA can consist of one or more
+ certificates as required for dealing with CA certificate renewals as
+ explained in Section 4.4 of "Internet X.509 Public Key Infrastructure
+ Certificate Management Protocol (CMP)" [RFC4210]).
+
+ A certificate path is a chain of certificates starting at the ACP
+ certificate (the leaf and/or end entity), followed by zero or more
+ intermediate CA certificates, and ending with the TA information,
+ which is typically one or two self-signed certificates of the TA.
+ The CA that signs the ACP certificate is called the assigning CA. If
+ there are no intermediate CAs, then the assigning CA is the TA.
+ Certificate path validation authenticates that the TA associated with
+ the ACP permits the ACP certificate, either directly or indirectly
+ via one or more intermediate CA.
+
+ Note that different ACP nodes may have different intermediate CAs in
+ their certificate path and even different TA. The set of TAs for an
+ ACP domain must be consistent across all ACP members so that any ACP
+ node can authenticate any other ACP node. The protocols through
+ which the ACP domain membership check Rules 1 through 3 are performed
+ need to support the exchange not only of the ACP nodes certificates
+ but also the exchange of the intermediate TA.
+
+ For the ACP domain membership check, ACP nodes MUST support
+ certificate path validation with zero or one intermediate CA. They
+ SHOULD support two intermediate CAs and two TAs (to permit migration
+ from one TA to another TA).
+
+ Certificates for an ACP MUST only be given to nodes that are allowed
+ to be members of that ACP. When the signing CA relies on an ACP
+ registrar, the CA MUST only sign certificates with acp-node-name
+ through trusted ACP registrars. In this setup, any existing CA,
+ unaware of the formatting of acp-node-name, can be used.
+
+ These requirements can be achieved by using a TA private to the owner
+ of the ACP domain or potentially through appropriate contractual
+ agreements between the involved parties (registrar and CA). Using a
+ public CA is out of scope of this document.
+
+ A single owner can operate multiple, independent ACP domains from the
+ same set of TAs. Registrars must then know into which ACP a node
+ needs to be enrolled.
+
+6.2.5. Certificate and Trust Anchor Maintenance
+
+ ACP nodes MUST support renewal of their certificate and TA
+ information via EST and MAY support other mechanisms. See
+ Section 6.1 for TLS requirements. An ACP network MUST have at least
+ one ACP node supporting EST server functionality across the ACP so
+ that EST renewal is usable.
+
+ ACP nodes SHOULD remember the GRASP O_IPv6_LOCATOR parameters of the
+ EST server with which they last renewed their ACP certificate. They
+ SHOULD provide the ability for these EST server parameters to also be
+ set by the ACP registrar (see Section 6.11.7) that initially enrolled
+ the ACP device with its ACP certificate. When BRSKI is used (see
+ [RFC8995]), the IPv6 locator of the BRSKI registrar from the BRSKI
+ TLS connection SHOULD be remembered and used for the next renewal via
+ EST if that registrar also announces itself as an EST server via
+ GRASP on its ACP address (see Section 6.2.5.1).
+
+ The EST server MUST present a certificate that passes the ACP domain
+ membership check in its TLS connection setup (Section 6.2.3, rules 1
+ through 4, not rule 5 as this is not for an ACP secure channel
+ setup). The EST server certificate MUST also contain the id-kp-cmcRA
+ extended key usage attribute [RFC6402], and the EST client MUST check
+ its presence.
+
+ The additional check against the id-kp-cmcRA extended key usage
+ extension field ensures that clients do not fall prey to an illicit
+ EST server. While such illicit EST servers should not be able to
+ support certificate signing requests (as they are not able to elicit
+ a signing response from a valid CA), such an illicit EST server would
+ be able to provide faked CA certificates to EST clients that need to
+ renew their CA certificates when they expire.
+
+ Note that EST servers supporting multiple ACP domains will need to
+ have a separate certificate for each of these ACP domains and respond
+ on a different transport address (IPv6 address and/or TCP port).
+ This is easily automated on the EST server if the CA allows
+ registrars to request certificates with the id-kp-cmcRA extended
+ usage extension for themselves.
+
+6.2.5.1. GRASP Objective for EST Server
+
+ ACP nodes that are EST servers MUST announce their service in the ACP
+ via GRASP Flood Synchronization (M_FLOOD) messages. See [RFC8990],
+ Section 2.8.11 for the definition of this message type and Figure 4
+ for an example.
+
+ [M_FLOOD, 12340815, h'fd89b714f3db0000200000064000001', 210000,
+ [["SRV.est", 4, 255 ],
+ [O_IPv6_LOCATOR,
+ h'fd89b714f3db0000200000064000001', IPPROTO_TCP, 443]]
+ ]
+
+ Figure 4: GRASP "SRV.est" Objective Example
+
+ The formal definition of the objective in CDDL (see "Concise Data
+ Definition Language (CDDL): A Notational Convention to Express
+ Concise Binary Object Representation (CBOR) and JSON Data Structures"
+ [RFC8610]) is as follows:
+
+ flood-message = [M_FLOOD, session-id, initiator, ttl,
+ +[objective, (locator-option / [])]]
+ ; See example above and explanation
+ ; below for initiator and ttl.
+
+ objective = ["SRV.est", objective-flags, loop-count,
+ objective-value]
+
+ objective-flags = sync-only ; As in [RFC8990].
+ sync-only = 4 ; M_FLOOD only requires synchronization.
+ loop-count = 255 ; Recommended as there is no mechanism
+ ; to discover network diameter.
+ objective-value = any ; Reserved for future extensions.
+
+ Figure 5: GRASP "SRV.est" Definition
+
+ The objective name "SRV.est" indicates that the objective is an EST
+ server compliant with [RFC7030] because "est" is a registered service
+ name ("Internet Assigned Numbers Authority (IANA) Procedures for the
+ Management of the Service Name and Transport Protocol Port Number
+ Registry" [RFC6335]) for [RFC7030]. The 'objective-value' field MUST
+ be ignored if present. Backward-compatible extensions to [RFC7030]
+ MAY be indicated through 'objective-value'. Certificate renewal
+ options that are incompatible with [RFC7030] MUST use a different
+ 'objective-name'. Unrecognized 'objective-value' fields (or parts
+ thereof if it is a partially understood structure) MUST be ignored.
+
+ The M_FLOOD message MUST be sent periodically. The default SHOULD be
+ 60 seconds; the value SHOULD be operator configurable but SHOULD be
+ not smaller than 60 seconds. The frequency of sending MUST be such
+ that the aggregate amount of periodic M_FLOODs from all flooding
+ sources cause only negligible traffic across the ACP. The time-to-
+ live (ttl) parameter SHOULD be 3.5 times the period so that up to
+ three consecutive messages can be dropped before an announcement is
+ considered expired. In the example above, the ttl is 210000 msec,
+ that is, 3.5 times 60 seconds. When a service announcer using these
+ parameters unexpectedly dies immediately after sending the M_FLOOD,
+ receivers would consider it expired 210 seconds later. When a
+ receiver tries to connect to this dead service before this timeout,
+ it will experience a failing connection and use that as an indication
+ that the service instance is dead and select another instance of the
+ same service instead (from another GRASP announcement).
+
+ The "SRV.est" objective(s) SHOULD only be announced when the ACP node
+ knows that it can successfully communicate with a CA to perform the
+ EST renewal and/or rekeying operations for the ACP domain. See also
+ Section 11.
+
+6.2.5.2. Renewal
+
+ When performing renewal, the node SHOULD attempt to connect to the
+ remembered EST server. If that fails, it SHOULD attempt to connect
+ to an EST server learned via GRASP. The server with which
+ certificate renewal succeeds SHOULD be remembered for the next
+ renewal.
+
+ Remembering the last renewal server and preferring it provides
+ stickiness that can help diagnostics. It also provides some
+ protection against off-path, compromised ACP members announcing bogus
+ information into GRASP.
+
+ Renewal of certificates SHOULD start after less than 50% of the
+ domain certificate lifetime so that network operations have ample
+ time to investigate and resolve any problems that cause a node to not
+ renew its domain certificate in time, and to allow prolonged periods
+ of running parts of a network disconnected from any CA.
+
+6.2.5.3. Certificate Revocation Lists (CRLs)
+
+ The ACP node SHOULD support revocation through CRL(s) via HTTP from
+ one or more CRL Distribution Points (CRLDP). The CRLDP(s) MUST be
+ indicated in the domain certificate when used. If the CRLDP URL uses
+ an IPv6 address (ULA address when using the addressing rules
+ specified in this document), the ACP node will connect to the CRLDP
+ via the ACP. If the CRLDP uses a domain name, the ACP node will
+ connect to the CRLDP via the data plane.
+
+ It is common to use domain names for CRLDP(s), but there is no
+ requirement for the ACP to support DNS. Any DNS lookup in the data
+ plane is not only a possible security issue, but it would also not
+ indicate whether the resolved address is meant to be reachable across
+ the ACP. Therefore, the use of an IPv6 address versus the use of a
+ DNS name doubles as an indicator whether or not to reach the CRLDP
+ via the ACP.
+
+ A CRLDP can be reachable across the ACP either by running it on a
+ node with ACP or by connecting its node via an ACP connect interface
+ (see Section 8.1).
+
+ When using a private PKI for ACP certificates, the CRL may be need-
+ to-know, for example, to prohibit insight into the operational
+ practices of the domain by tracking the growth of the CRL. In this
+ case, HTTPS may be chosen to provide confidentiality, especially when
+ making the CRL available via the data plane. Authentication and
+ authorization SHOULD use ACP certificates and the ACP domain
+ membership check (Section 6.2.3). The CRLDP MAY omit the CRL
+ verification during authentication of the peer to permit CRL
+ retrieval by an ACP node with a revoked ACP certificate, which can
+ allow the (ex) ACP node to quickly discover its ACP certificate
+ revocation. This may violate the desired need-to-know requirement,
+ though. ACP nodes MAY support CRLDP operations via HTTPS.
+
+6.2.5.4. Lifetimes
+
+ The certificate lifetime may be set to shorter lifetimes than
+ customary (one year) because certificate renewal is fully automated
+ via ACP and EST. The primary limiting factor for shorter certificate
+ lifetimes is the load on the EST server(s) and CA. It is therefore
+ recommended that ACP certificates are managed via a CA chain where
+ the assigning CA has enough performance to manage short-lived
+ certificates. See also Section 9.2.4 for a discussion about an
+ example setup achieving this. See also "Support for Short-Term,
+ Automatically Renewed (STAR) Certificates in the Automated
+ Certificate Management Environment (ACME)" [RFC8739].
+
+ When certificate lifetimes are sufficiently short, such as few hours,
+ certificate revocation may not be necessary, allowing the
+ simplification of the overall certificate maintenance infrastructure.
+
+ See Appendix A.2 for further optimizations of certificate maintenance
+ when BRSKI can be used [RFC8995].
+
+6.2.5.5. Reenrollment
+
+ An ACP node may determine that its ACP certificate has expired, for
+ example, because the ACP node was powered down or disconnected longer
+ than its certificate lifetime. In this case, the ACP node SHOULD
+ convert to a role of a reenrolling candidate ACP node.
+
+ In this role, the node maintains the TA and certificate chain
+ associated with its ACP certificate exclusively for the purpose of
+ reenrollment, and it attempts (or waits) to get reenrolled with a new
+ ACP certificate. The details depend on the mechanisms and protocols
+ used by the ACP registrars.
+
+ Please refer to Section 6.11.7 and [RFC8995] for explanations about
+ ACP registrars and vouchers as used in the following text. When ACP
+ is intended to be used without BRSKI, the details about BRSKI and
+ vouchers in the following text can be skipped.
+
+ When BRSKI is used (i.e., on ACP nodes that are ANI nodes), the
+ reenrolling candidate ACP node attempts to enroll like a candidate
+ ACP node (BRSKI pledge), but instead of using the ACP node's IDevID
+ certificate, it SHOULD first attempt to use its ACP domain
+ certificate in the BRSKI TLS authentication. The BRSKI registrar MAY
+ honor this certificate beyond its expiration date purely for the
+ purpose of reenrollment. Using the ACP node's domain certificate
+ allows the BRSKI registrar to learn that node's acp-node-name so that
+ the BRSKI registrar can reassign the same ACP address information to
+ the ACP node in the new ACP certificate.
+
+ If the BRSKI registrar denies the use of the old ACP certificate, the
+ reenrolling candidate ACP node MUST reattempt reenrollment using its
+ IDevID certificate as defined in BRSKI during the TLS connection
+ setup.
+
+ When the BRSKI connection is attempted with either with the old ACP
+ certificate or the IDevID certificate, the reenrolling candidate ACP
+ node SHOULD authenticate the BRSKI registrar during TLS connection
+ setup based on its existing TA certificate chain information
+ associated with its old ACP certificate. The reenrolling candidate
+ ACP node SHOULD only fall back to requesting a voucher from the BRSKI
+ registrar when this authentication fails during TLS connection setup.
+ As a countermeasure against attacks that attempt to force the ACP
+ node to forget its prior (expired) certificate and TA, the ACP node
+ should alternate between attempting to reenroll using its old keying
+ material and attempting to reenroll with its IDevID and requesting a
+ voucher.
+
+ When mechanisms other than BRSKI are used for ACP certificate
+ enrollment, the principles of the reenrolling candidate ACP node are
+ the same. The reenrolling candidate ACP node attempts to
+ authenticate any ACP registrar peers using reenrollment protocols
+ and/or mechanisms via its existing certificate chain and/or TA
+ information and provides its existing ACP certificate and other
+ identification (such as the IDevID certificate) as necessary to the
+ registrar.
+
+ Maintaining existing TA information is especially important when
+ using enrollment mechanisms that do not leverage a mechanism to
+ authenticate the ACP registrar (such as the voucher in BRSKI), and
+ when the injection of certificate failures could otherwise make the
+ ACP vulnerable to remote attacks by returning the ACP node to a
+ "duckling" state in which it accepts enrollment by any network it
+ connects to. The (expired) ACP certificate and ACP TA SHOULD
+ therefore be maintained and attempted to be used as one possible
+ credential for reenrollment until new keying material is acquired.
+
+ When using BRSKI or other protocols and/or mechanisms that support
+ vouchers, maintaining existing TA information allows for lighter-
+ weight reenrollment of expired ACP certificates, especially in
+ environments where repeated acquisition of vouchers during the
+ lifetime of ACP nodes may be operationally expensive or otherwise
+ undesirable.
+
+6.2.5.6. Failing Certificates
+
+ An ACP certificate is called failing in this document if or when the
+ ACP node to which the certificate was issued can determine that it
+ was revoked (or explicitly not renewed), or in the absence of such
+ explicit local diagnostics, when the ACP node fails to connect to
+ other ACP nodes in the same ACP domain using its ACP certificate. To
+ determine that the ACP certificate is the culprit of a connection
+ failure, the peer should pass the domain membership check
+ (Section 6.2.3), and connection error diagnostics should exclude
+ other reasons for the connection failure.
+
+ This type of failure can happen during the setup or refreshment of a
+ secure ACP channel connection or during any other use of the ACP
+ certificate, such as for the TLS connection to an EST server for the
+ renewal of the ACP domain certificate.
+
+ The following are examples of failing certificates that the ACP node
+ can only discover through connection failure: the domain certificate
+ or any of its signing certificates could have been revoked or may
+ have expired, but the ACP node cannot diagnose this condition
+ directly by itself. Revocation information or clock synchronization
+ may only be available across the ACP, but the ACP node cannot build
+ ACP secure channels because the ACP peers reject the ACP node's
+ domain certificate.
+
+ An ACP node SHOULD support the option to determine whether its ACP
+ certificate is failing, and when it does, put itself into the role of
+ a reenrolling candidate ACP node as explained in Section 6.2.5.5.
+
+6.3. ACP Adjacency Table
+
+ To know to which nodes to establish an ACP channel, every ACP node
+ maintains an adjacency table. The adjacency table contains
+ information about adjacent ACP nodes, at a minimum: Node-ID (the
+ identifier of the node inside the ACP, see Section 6.11.3 and
+ Section 6.11.5), the interface on which neighbor was discovered (by
+ GRASP as explained below), the link-local IPv6 address of the
+ neighbor on that interface, and the certificate (including acp-node-
+ name). An ACP node MUST maintain this adjacency table. This table
+ is used to determine to which neighbor an ACP connection is
+ established.
+
+ When the next ACP node is not directly adjacent (i.e., not on a link
+ connected to this node), the information in the adjacency table can
+ be supplemented by configuration. For example, the Node-ID and IP
+ address could be configured. See Section 8.2.
+
+ The adjacency table MAY contain information about the validity and
+ trust of the adjacent ACP node's certificate. However, subsequent
+ steps MUST always start with the ACP domain membership check against
+ the peer (see Section 6.2.3).
+
+ The adjacency table contains information about adjacent ACP nodes in
+ general, independent of their domain and trust status. The next step
+ determines to which of those ACP nodes an ACP connection should be
+ established.
+
+6.4. Neighbor Discovery with DULL GRASP
+
+ Discovery Unsolicited Link-Local (DULL) GRASP is a limited subset of
+ GRASP intended to operate across an insecure link-local scope. See
+ Section 2.5.2 of [RFC8990] for its formal definition. The ACP uses
+ one instance of DULL GRASP for every L2 interface of the ACP node to
+ discover candidate ACP neighbors that are link-level adjacent.
+ Unless modified by policy as noted earlier (Section 5, bullet point
+ 2), native interfaces (e.g., physical interfaces on physical nodes)
+ SHOULD be initialized automatically to a state in which ACP discovery
+ can be performed, and any native interfaces with ACP neighbors can
+ then be brought into the ACP even if the interface is otherwise
+ unconfigured. Reception of packets on such otherwise unconfigured
+ interfaces MUST be limited so that at first only SLAAC ("IPv6
+ Stateless Address Autoconfiguration" [RFC4862]) and DULL GRASP work,
+ and then only the following ACP secure channel setup packets work,
+ but not any other unnecessary traffic (e.g., no other link-local IPv6
+ transport stack responders, for example).
+
+ Note that the use of the IPv6 link-local multicast address
+ (ALL_GRASP_NEIGHBORS) implies the need to use MLDv2 (see "Multicast
+ Listener Discovery Version 2 (MLDv2) for IPv6" [RFC3810]) to announce
+ the desire to receive packets for that address. Otherwise, DULL
+ GRASP could fail to operate correctly in the presence of MLD-snooping
+ switches ("Considerations for Internet Group Management Protocol
+ (IGMP) and Multicast Listener Discovery (MLD) Snooping Switches"
+ [RFC4541]) that either do not support ACP or are not ACP enabled
+ because those switches would stop forwarding DULL GRASP packets.
+ Switches that do not support MLD snooping simply need to operate as
+ pure L2 bridges for IPv6 multicast packets for DULL GRASP to work.
+
+ ACP discovery SHOULD NOT be enabled by default on non-native
+ interfaces. In particular, ACP discovery MUST NOT run inside the ACP
+ across ACP virtual interfaces. See Section 9.3 for further non-
+ normative suggestions on how to enable and disable ACP at the node
+ and interface level. See Section 8.2.2 for more details about
+ tunnels (typical non-native interfaces). See Section 7 for extending
+ ACP on devices operating (also) as L2 bridges.
+
+ Note: if an ACP node also implements BRSKI to enroll its ACP
+ certificate (see Appendix A.2 for a summary), then the above
+ considerations also apply to GRASP discovery for BRSKI. Each DULL
+ instance of GRASP set up for ACP is then also used for the discovery
+ of a bootstrap proxy via BRSKI when the node does not have a domain
+ certificate. Discovery of ACP neighbors happens only when the node
+ does have the certificate. The node therefore never needs to
+ discover both a bootstrap proxy and an ACP neighbor at the same time.
+
+ An ACP node announces itself to potential ACP peers by use of the
+ "AN_ACP" objective. This is a synchronization objective intended to
+ be flooded on a single link using the GRASP Flood Synchronization
+ (M_FLOOD) message. In accordance with the design of the Flood
+ Synchronization message, a locator consisting of a specific link-
+ local IP address, IP protocol number, and port number will be
+ distributed with the flooded objective. An example of the message is
+ informally:
+
+ [M_FLOOD, 12340815, h'fe80000000000000c0011001feef0000', 210000,
+ [["AN_ACP", 4, 1, "IKEv2" ],
+ [O_IPv6_LOCATOR,
+ h'fe80000000000000c0011001feef0000', IPPROTO_UDP, 15000]]
+ [["AN_ACP", 4, 1, "DTLS" ],
+ [O_IPv6_LOCATOR,
+ h'fe80000000000000c0011001feef0000', IPPROTO_UDP, 17000]]
+ ]
+
+ Figure 6: GRASP "AN_ACP" Objective Example
+
+ The formal CDDL definition is:
+
+ flood-message = [M_FLOOD, session-id, initiator, ttl,
+ +[objective, (locator-option / [])]]
+
+ objective = ["AN_ACP", objective-flags, loop-count,
+ objective-value]
+
+ objective-flags = sync-only ; as in [RFC8990]
+ sync-only = 4 ; M_FLOOD only requires synchronization
+ loop-count = 1 ; limit to link-local operation
+
+ objective-value = method-name / [ method, *extension ]
+ method = method-name / [ method-name, *method-param ]
+ method-name = "IKEv2" / "DTLS" / id
+ extension = any
+ method-param = any
+ id = text .regexp "[A-Za-z@_$]([-.]*[A-Za-z0-9@_$])*"
+
+ Figure 7: GRASP "AN_ACP" Definition
+
+ The 'objective-flags' field is set to indicate synchronization.
+
+ The 'loop-count' is fixed at 1 since this is a link-local operation.
+
+ In the above example, the RECOMMENDED period of sending of the
+ objective is 60 seconds. The indicated 'ttl' of 210000 msec means
+ that the objective would be cached by ACP nodes even when two out of
+ three messages are dropped in transit.
+
+ The 'session-id' is a random number used for loop prevention
+ (distinguishing a message from a prior instance of the same message).
+ In DULL this field is irrelevant but has to be set according to the
+ GRASP specification.
+
+ The originator MUST be the IPv6 link-local address of the originating
+ ACP node on the sending interface.
+
+ The 'method-name' in the 'objective-value' parameter is a string
+ indicating the protocol available at the specified or implied
+ locator. It is a protocol supported by the node to negotiate a
+ secure channel. "IKEv2" as shown in Figure 6 is the protocol used to
+ negotiate an IPsec secure channel.
+
+ The 'method-param' parameter allows method-specific parameters to be
+ carried. This specification does not define any 'method-param'(s)
+ for "IKEv2" or "DTLS". Any method-params for these two methods that
+ are not understood by an ACP node MUST be ignored by it.
+
+ The 'extension' parameter allows the definition of method-independent
+ parameters. This specification does not define any extensions.
+ Extensions not understood by an ACP node MUST be ignored by it.
+
+ The 'locator-option' is optional and is only required when the secure
+ channel protocol is not offered at a well-defined port number, or if
+ there is no well-defined port number.
+
+ IKEv2 is the actual protocol used to negotiate an IPsec connection.
+ GRASP therefore indicates "IKEv2" and not "IPsec". If "IPsec" was
+ used, this could mean the use of the obsolete, older version IKE (v1)
+ ("The Internet Key Exchange (IKE)" [RFC2409]). IKEv2 has an IANA-
+ assigned port number 500, but in Figure 6, the candidate ACP neighbor
+ is offering ACP secure channel negotiation via IKEv2 on port 15000
+ (purely to show through the example that GRASP allows the indication
+ of a port number, and it does not have to be IANA assigned).
+
+ There is no default UDP port for DTLS, it is always locally assigned
+ by the node. For further details about the "DTLS" secure channel
+ protocol, see Section 6.8.4.
+
+ If a locator is included, it MUST be an O_IPv6_LOCATOR, and the IPv6
+ address MUST be the same as the initiator address (these are DULL
+ requirements to minimize third-party DoS attacks).
+
+ The secure channel methods defined in this document use "IKEv2" and
+ "DTLS" for 'objective-value'. There is no distinction between IKEv2
+ native and GRE-IKEv2 because this is purely negotiated via IKEv2.
+
+ A node that supports more than one secure channel protocol method
+ needs to flood multiple versions of the "AN_ACP" objective so that
+ each method can be accompanied by its own 'locator-option'. This can
+ use a single GRASP M_FLOOD message as shown in Figure 6.
+
+ The primary use of DULL GRASP is to discover the link-local IPv6
+ address of candidate ACP peers on subnets. The signaling of the
+ supported secure channel option is primarily for diagnostic purposes,
+ but it is also necessary for discovery when the protocol has no well-
+ known transport address, such as in the case of DTLS.
+
+ Note that a node serving both as an ACP node and BRSKI Join Proxy may
+ choose to distribute the "AN_ACP" objective and the respective BRSKI
+ in the same M_FLOOD message, since GRASP allows multiple objectives
+ in one message. This may be impractical, though, if ACP and BRSKI
+ operations are implemented via separate software modules and/or ASAs.
+
+ The result of the discovery is the IPv6 link-local address of the
+ neighbor as well as its supported secure channel protocols (and the
+ non-standard port they are running on). It is stored in the ACP
+ adjacency table (see Section 6.3), which then drives the further
+ building of the ACP to that neighbor.
+
+ Note that the described DULL GRASP objective intentionally does not
+ include the ACP node's ACP certificate, even though this would be
+ useful for diagnostics and to simplify the security exchange in ACP
+ secure channel security association protocols (see Section 6.8). The
+ reason is that DULL GRASP messages are periodically multicast across
+ IPv6 subnets, and full certificates could easily lead to fragmented
+ IPv6 DULL GRASP multicast packets due to the size of a certificate.
+ This would be highly undesirable.
+
+6.5. Candidate ACP Neighbor Selection
+
+ An ACP node determines to which other ACP nodes in the adjacency
+ table it should attempt to build an ACP connection. This is based on
+ the information in the ACP adjacency table.
+
+ The ACP is established exclusively between nodes in the same domain.
+ This includes all routing subdomains. Appendix A.6 explains how ACP
+ connections across multiple routing subdomains are special.
+
+ The result of the candidate ACP neighbor selection process is a list
+ of adjacent or configured autonomic neighbors to which an ACP channel
+ should be established. The next step begins that channel
+ establishment.
+
+6.6. Channel Selection
+
+ To avoid attacks, the initial discovery of candidate ACP peers cannot
+ include any unprotected negotiation. To avoid reinventing and
+ validating security association mechanisms, the next step after
+ discovering the address of a candidate neighbor is to establish a
+ security association with that neighbor using a well-known security
+ association method.
+
+ It seems clear from the use cases that not all types of ACP nodes can
+ or need to connect directly to each other, nor are they able to
+ support or prefer all possible mechanisms. For example, IoT devices
+ that are codespace limited may only support DTLS because that code
+ exists already on them for end-to-end security, but low-end, in-
+ ceiling L2 switches may only want to support Media Access Control
+ Security (MacSec, see 802.1AE [MACSEC]) because that is also
+ supported in their chips. Only a flexible gateway device may need to
+ support both of these mechanisms and potentially more. Note that
+ MacSec is not required by any profiles of the ACP in this
+ specification. Instead, MacSec is mentioned as an interesting
+ potential secure channel protocol. Note also that the security model
+ allows and requires any-to-any authentication and authorization
+ between all ACP nodes because there is not only hop-by-hop but also
+ end-to-end authentication for secure channels.
+
+ To support extensible selection of the secure channel protocol
+ without a single common mandatory-to-implement (MTI) protocol, an ACP
+ node MUST try all the ACP secure channel protocols it supports and
+ that are also announced by the candidate ACP neighbor via its
+ "AN_ACP" GRASP parameters (these are called the "feasible" ACP secure
+ channel protocols).
+
+ To ensure that the selection of the secure channel protocols always
+ succeeds in a predictable fashion without blocking, the following
+ rules apply:
+
+ * An ACP node may choose to attempt to initiate the different
+ feasible ACP secure channel protocols it supports according to its
+ local policies sequentially or in parallel, but it MUST support
+ acting as a responder to all of them in parallel.
+
+ * Once the first ACP secure channel protocol connection to a
+ specific peer IPv6 address passes peer authentication, the two
+ peers know each other's certificate because those ACP certificates
+ are used by all secure channel protocols for mutual
+ authentication. The peer with the higher Node-ID in the
+ AcpNodeName of its ACP certificate takes on the role of the
+ Decider towards the peer. The other peer takes on the role of the
+ Follower. The Decider selects which secure channel protocol to
+ ultimately use.
+
+ * The Follower becomes passive: it does not attempt to further
+ initiate ACP secure channel protocol connections with the Decider
+ and does not consider it to be an error when the Decider closes
+ secure channels. The Decider becomes the active party, continuing
+ to attempt the setup of secure channel protocols with the
+ Follower. This process terminates when the Decider arrives at the
+ "best" ACP secure channel connection option that also works with
+ the Follower ("best" from the Decider's point of view).
+
+ * A peer with a "0" acp-address in its AcpNodeName takes on the role
+ of Follower when peering with a node that has a non-"0" acp-
+ address (note that this specification does not fully define the
+ behavior of ACP secure channel negotiation for nodes with a "0"
+ ACP address field, it only defines interoperability with such ACP
+ nodes).
+
+ In a simple example, ACP peer Node 1 attempts to initiate an IPsec
+ connection via IKEv2 to peer Node 2. The IKEv2 authentication
+ succeeds. Node 1 has the lower ACP address and becomes the Follower.
+ Node 2 becomes the Decider. IKEv2 might not be the preferred ACP
+ secure channel protocol for the Decider Node 2. Node 2 would
+ therefore proceed to attempt secure channel setups with more
+ preferred protocol options (in its view, e.g., DTLS/UDP). If any
+ such preferred ACP secure channel connection of the Decider succeeds,
+ it would close the IPsec connection. If Node 2 has no preferred
+ protocol option over IPsec, or no such connection attempt from Node 2
+ to Node 1 succeeds, Node 2 would keep the IPsec connection and use
+ it.
+
+ The Decider SHOULD NOT send actual payload packets across a secure
+ channel until it has decided to use it. The Follower MAY delay
+ linking the ACP secure channel to the ACP virtual interface until it
+ sees the first payload packet from the Decider up to a maximum of 5
+ seconds to avoid unnecessarily linking a secure channel that will be
+ terminated as undesired by the Decider shortly afterward.
+
+ The following sequence of steps show this example in more detail.
+ Each step is tagged with [<step#>{:<connection>}]. The connection is
+ included to more easily distinguish which of the two competing
+ connections the step belongs to, one initiated by Node 1, one
+ initiated by Node 2.
+
+ [1] Node 1 sends GRASP "AN_ACP" message to announce itself.
+
+ [2] Node 2 sends GRASP "AN_ACP" message to announce itself.
+
+ [3] Node 2 receives [1] from Node 1.
+
+ [4:C1] Because of [3], Node 2 starts as initiator on its preferred
+ secure channel protocol towards Node 1. Connection C1.
+
+ [5] Node 1 receives [2] from Node 2.
+
+ [6:C2] Because of [5], Node 1 starts as initiator on its preferred
+ secure channel protocol towards Node 2. Connection C2.
+
+ [7:C1] Node 1 and Node 2 have authenticated each other's
+ certificate on connection C1 as valid ACP peers.
+
+ [8:C1] Node 1's certificate has a lower ACP Node-ID than Node 2's,
+ therefore Node 1 considers itself the Follower and Node 2
+ the Decider on connection C1. Connection setup C1 is
+ completed.
+
+ [9] Node 1 refrains from attempting any further secure channel
+ connections to Node 2 (the Decider) as learned from [2]
+ because it knows from [8:C1] that it is the Follower
+ relative to Node 2.
+
+ [10:C2] Node 1 and Node 2 have authenticated each other's
+ certificate on connection C2 (like [7:C1]).
+
+ [11:C2] Node 1's certificate has a lower ACP Node-ID than Node 2's,
+ therefore Node 1 considers itself the Follower and Node 2
+ the Decider on connection C2, but they also identify that
+ C2 is to the same mutual peer as their C1, so this has no
+ further impact: the roles Decider and Follower where
+ already assigned between these two peers by [8:C1].
+
+ [12:C2] Node 2 (the Decider) closes C1. Node 1 is fine with this,
+ because of its role as the Follower (from [8:C1]).
+
+ [13] Node 2 (the Decider) and Node 1 (the Follower) start data
+ transfer across C2, which makes it become a secure channel
+ for the ACP.
+
+ All this negotiation is in the context of an L2 interface. The
+ Decider and Follower will build ACP connections to each other on
+ every L2 interface that they both connect to. An autonomic node MUST
+ NOT assume that neighbors with the same L2 or link-local IPv6
+ addresses on different L2 interfaces are the same node. This can
+ only be determined after examining the certificate after a successful
+ security association attempt.
+
+ The Decider SHOULD NOT suppress attempting a particular ACP secure
+ channel protocol connection on one L2 interface because this type of
+ ACP secure channel connection has failed to the peer with the same
+ ACP certificate on another L2 interface: not only may the supported
+ ACP secure channel protocol options be different on the same ACP peer
+ across different L2 interfaces, but also error conditions may cause
+ inconsistent failures across different L2 interfaces. Avoiding such
+ connection attempt optimizations can therefore help to increase
+ robustness in the case of errors.
+
+6.7. Candidate ACP Neighbor Verification
+
+ Independent of the security association protocol chosen, candidate
+ ACP neighbors need to be authenticated based on their domain
+ certificate. This implies that any secure channel protocol MUST
+ support certificate-based authentication that can support the ACP
+ domain membership check as defined in Section 6.2.3. If it fails,
+ the connection attempt is aborted and an error logged. Attempts to
+ reconnect MUST be throttled. The RECOMMENDED default is exponential
+ base-two backoff with an initial retransmission time (IRT) of 10
+ seconds and a maximum retransmission time (MRT) of 640 seconds.
+
+ Failure to authenticate an ACP neighbor when acting in the role of a
+ responder of the security authentication protocol MUST NOT impact the
+ attempts of the ACP node to attempt establishing a connection as an
+ initiator. Only failed connection attempts as an initiator must
+ cause throttling. This rule is meant to increase resilience of
+ secure channel creation. Section 6.6 shows how simultaneous mutual
+ secure channel setup collisions are resolved.
+
+6.8. Security Association (Secure Channel) Protocols
+
+ This section describes how ACP nodes establish secured data
+ connections to automatically discovered or configured peers in the
+ ACP. Section 6.4 describes how peers that are adjacent on an IPv6
+ subnet are discovered automatically. Section 8.2 describes how to
+ configure peers that are not adjacent on an IPv6 subnet.
+
+ Section 6.13.5.2 describes how secure channels are mapped to virtual
+ IPv6 subnet interfaces in the ACP. The simple case is to map every
+ ACP secure channel to a separate ACP point-to-point virtual interface
+ (Section 6.13.5.2.1). When a single subnet has multiple ACP peers,
+ this results in multiple ACP point-to-point virtual interfaces across
+ that underlying multiparty IPv6 subnet. This can be optimized with
+ ACP multi-access virtual interfaces (Section 6.13.5.2.2), but the
+ benefits of that optimization may not justify the complexity of that
+ option.
+
+6.8.1. General Considerations
+
+ Due to channel selection (Section 6.6), ACP can support an evolving
+ set of security association protocols and does not require support
+ for a single network-wide MTI. ACP nodes only need to implement
+ those protocols required to interoperate with their candidate peers,
+ not with potentially any node in the ACP domain. See Section 6.8.5
+ for an example of this.
+
+ The degree of security required on every hop of an ACP network needs
+ to be consistent across the network so that there is no designated
+ "weakest link" because it is that "weakest link" that would otherwise
+ become the designated point of attack. When the secure channel
+ protection on one link is compromised, it can be used to send and/or
+ receive packets across the whole ACP network. Therefore, even though
+ the security association protocols can be different, their minimum
+ degree of security should be comparable.
+
+ Secure channel protocols do not need to always support arbitrary
+ Layer 3 (L3) connectivity between peers, but can leverage the fact
+ that the standard use case for ACP secure channels is an L2
+ adjacency. Hence, L2 dependent mechanisms could be adopted for use
+ as secure channel association protocols.
+
+ L2 mechanisms such as strong encrypted radio technologies or [MACSEC]
+ may offer equivalent encryption, and the ACP security association
+ protocol may only be required to authenticate ACP domain membership
+ of a peer and/or derive a key for the L2 mechanism. Mechanisms that
+ leverage such underlying L2 security to auto-discover and associate
+ ACP peers are possible and desirable to avoid duplication of
+ encryption, but none are specified in this document.
+
+ Strong physical security of a link may stand in where cryptographic
+ security is infeasible. As there is no secure mechanism to
+ automatically discover strong physical security solely between two
+ peers, it can only be used with explicit configuration, and that
+ configuration too could become an attack vector. This document
+ therefore specifies with ACP connect (Section 8.1) only one
+ explicitly configured mechanism without any secure channel
+ association protocol for the case where both the link and the nodes
+ attached to it have strong physical security.
+
+6.8.2. Common Requirements
+
+ The authentication of peers in any security association protocol MUST
+ use the ACP certificate according to Section 6.2.3. Because auto-
+ discovery of candidate ACP neighbors via GRASP (see Section 6.4) as
+ specified in this document does not communicate the neighbor's ACP
+ certificate, and ACP nodes may not (yet) have any other network
+ connectivity to retrieve certificates, any security association
+ protocol MUST use a mechanism to communicate the certificate directly
+ instead of relying on a referential mechanism such as communicating
+ only a hash and/or URL for the certificate.
+
+ A security association protocol MUST use Forward Secrecy (whether
+ inherently or as part of a profile of the security association
+ protocol).
+
+ Because the ACP payload of legacy protocol payloads inside the ACP
+ and hop-by-hop ACP flooded GRASP information is unencrypted, the ACP
+ secure channel protocol requires confidentiality. Symmetric
+ encryption for the transmission of secure channel data MUST use
+ encryption schemes considered to be security wise equal to or better
+ than 256-bit key strength, such as AES-256. There MUST NOT be
+ support for NULL encryption.
+
+ Security association protocols typically only signal the end entity
+ certificate (e.g., the ACP certificate) and any possible intermediate
+ CA certificates for successful mutual authentication. The TA has to
+ be mutually known and trusted, and therefore its certificate does not
+ need to be signaled for successful mutual authentication.
+ Nevertheless, for use with ACP secure channel setup, there SHOULD be
+ the option to include the TA certificate in the signaling to aid
+ troubleshooting, see Section 9.1.1.
+
+ Signaling of TA certificates may not be appropriate when the
+ deployment relies on a security model where the TA certificate
+ content is considered confidential, and only its hash is appropriate
+ for signaling. ACP nodes SHOULD have a mechanism to select whether
+ the TA certificate is signaled or not, assuming that both options are
+ possible with a specific secure channel protocol.
+
+ An ACP secure channel MUST immediately be terminated when the
+ lifetime of any certificate in the chain used to authenticate the
+ neighbor expires or becomes revoked. This may not be standard
+ behavior in secure channel protocols because the certificate
+ authentication may only influence the setup of the secure channel in
+ these protocols, but may not be revalidated during the lifetime of
+ the secure connection in the absence of this requirement.
+
+ When specifying an additional security association protocol for ACP
+ secure channels beyond those covered in this document, any protocol
+ options that are unnecessary for the support of devices that are
+ expected to be able to support the ACP SHOULD be eliminated in order
+ to minimize implementation complexity. For example, definitions for
+ security protocols often include old and/or inferior security options
+ required only to interoperate with existing devices that cannot
+ update to the currently preferred security options. Such old and/or
+ inferior security options do not need to be supported when a security
+ association protocol is first specified for the ACP, thus
+ strengthening the "weakest link" and simplifying ACP implementation
+ overhead.
+
+6.8.3. ACP via IPsec
+
+ An ACP node announces its ability to support IPsec, negotiated via
+ IKEv2, as the ACP secure channel protocol using the "IKEv2"
+ 'objective-value' in the "AN_ACP" GRASP objective.
+
+ The ACP usage of IPsec and IKEv2 mandates a profile with a narrow set
+ of options of the current Standards Track usage guidance for IPsec
+ ("Cryptographic Algorithm Implementation Requirements and Usage
+ Guidance for Encapsulating Security Payload (ESP) and Authentication
+ Header (AH)" [RFC8221]) and IKEv2 ("Algorithm Implementation
+ Requirements and Usage Guidance for the Internet Key Exchange
+ Protocol Version 2 (IKEv2)" [RFC8247]). These options result in
+ stringent security properties and can exclude deprecated and legacy
+ algorithms because there is no need for interoperability with legacy
+ equipment for ACP secure channels. Any such backward compatibility
+ would lead only to an increased attack surface and implementation
+ complexity, for no benefit.
+
+6.8.3.1. Native IPsec
+
+ An ACP node that is supporting native IPsec MUST use IPsec in tunnel
+ mode, negotiated via IKEv2, and with IPv6 payload (e.g., ESP Next
+ Header of 41). It MUST use local and peer link-local IPv6 addresses
+ for encapsulation. Manual keying MUST NOT be used, see Section 6.2.
+ Traffic Selectors are:
+
+ TSi = (0, 0-65535, :: - FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF)
+ TSr = (0, 0-65535, :: - FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF)
+
+ IPsec tunnel mode is required because the ACP will route and/or
+ forward packets received from any other ACP node across the ACP
+ secure channels, and not only its own generated ACP packets. With
+ IPsec transport mode (and no additional encapsulation header in the
+ ESP payload), it would only be possible to send packets originated by
+ the ACP node itself because the IPv6 addresses of the ESP must be the
+ same as that of the outer IPv6 header.
+
+6.8.3.1.1. RFC 8221 (IPsec/ESP)
+
+ ACP IPsec implementations MUST comply with [RFC8221] and any
+ specifications that update it. The requirements from above and this
+ section amend and supersede its requirements.
+
+ The IP Authentication Header (AH) MUST NOT be used (because it does
+ not provide confidentiality).
+
+ For the required ESP encryption algorithms in Section 5 of [RFC8221],
+ the following guidance applies:
+
+ * ENCR_NULL AH MUST NOT be used (because it does not provide
+ confidentiality).
+
+ * ENCR_AES_GCM_16 is the only MTI ESP encryption algorithm for ACP
+ via IPsec/ESP (it is already listed as MUST in [RFC8221]).
+
+ * ENCR_AES_CBC with AUTH_HMAC_SHA2_256_128 (as the ESP
+ authentication algorithm) and ENCR_AES_CCM_8 MAY be supported. If
+ either provides higher performance than ENCR_AES_GCM_16, it SHOULD
+ be supported.
+
+ * ENCR_CHACHA20_POLY1305 SHOULD be supported at equal or higher
+ performance than ENCR_AES_GCM_16. If that performance is not
+ feasible, it MAY be supported.
+
+ IKEv2 indicates an order for the offered algorithms. The algorithms
+ SHOULD be ordered by performance. The first algorithm supported by
+ both sides is generally chosen.
+
+ Explanations:
+
+ * There is no requirement to interoperate with legacy equipment in
+ ACP secure channels, so a single MTI encryption algorithm for
+ IPsec in ACP secure channels is sufficient for interoperability
+ and allows for the most lightweight implementations.
+
+ * ENCR_AES_GCM_16 is an Authenticated Encryption with Associated
+ Data (AEAD) cipher mode, so no additional ESP authentication
+ algorithm is needed, simplifying the MTI requirements of IPsec for
+ the ACP.
+
+ * There is no MTI requirement for the support of ENCR_AES_CBC
+ because ENCR_AES_GCM_16 is assumed to be feasible with less cost
+ and/or higher performance in modern devices' hardware-accelerated
+ implementations compared to ENCR-AES_CBC.
+
+ * ENCR_CHACHA20_POLY1305 is mandatory in [RFC8221] because of its
+ target use as a fallback algorithm in case weaknesses in AES are
+ uncovered. Unfortunately, there is currently no way to
+ automatically propagate across an ACP a policy to disallow use of
+ AES-based algorithms, so this target benefit of
+ ENCR_CHACHA20_POLY1305 cannot fully be adopted yet for the ACP.
+ Therefore, this algorithm is only recommended. Changing from AES
+ to this algorithm with a potentially big drop in performance could
+ also render the ACP inoperable. Therefore, there is a performance
+ requirement against this algorithm so that it could become an
+ effective security backup to AES for the ACP once a policy to
+ switch over to it or prefer it is available in an ACP framework.
+
+ [RFC8221] allows for 128-bit or 256-bit AES keys. This document
+ mandates that only 256-bit AES keys MUST be supported.
+
+ When [RFC8221] is updated, ACP implementations will need to consider
+ legacy interoperability.
+
+6.8.3.1.2. RFC 8247 (IKEv2)
+
+ [RFC8247] provides a baseline recommendation for mandatory-to-
+ implement ciphers, integrity checks, pseudorandom functions, and
+ Diffie-Hellman mechanisms. Those recommendations, and the
+ recommendations of subsequent documents, apply as well to the ACP.
+ Because IKEv2 for ACP secure channels is sufficient to be implemented
+ in control plane software rather than in Application-Specific
+ Integrated Circuit (ASIC) hardware, and ACP nodes supporting IKEv2
+ are not assumed to be code space constrained, and because existing
+ IKEv2 implementations are expected to support [RFC8247]
+ recommendations, this document makes no attempt to simplify its
+ recommendations for use with the ACP.
+
+ See [IKEV2IANA] for IANA IKEv2 parameter names used in this text.
+
+ ACP nodes supporting IKEv2 MUST comply with [RFC8247] amended by the
+ following requirements, which constitute a policy statement as
+ permitted by [RFC8247].
+
+ To signal the ACP certificate chain (including TA) as required by
+ Section 6.8.2, the "X.509 Certificate - Signature" payload in IKEv2
+ can be used. It is mandatory according to [RFC7296], Section 3.6.
+
+ ACP nodes SHOULD set up IKEv2 to only use the ACP certificate and TA
+ when acting as an IKEv2 responder on the IPv6 link-local address and
+ port number indicated in the "AN_ACP" DULL GRASP announcements (see
+ Section 6.4).
+
+ When CERTREQ is received from a peer, and it does not indicate any of
+ this ACP node's TA certificates, the ACP node SHOULD ignore the
+ CERTREQ and continue sending its certificate chain including its TA
+ as subject to the requirements and explanations in Section 6.8.2.
+ This will not result in successful mutual authentication but assists
+ diagnostics.
+
+ Note that with IKEv2, failing authentication will only result in the
+ responder receiving the certificate chain from the initiator, but not
+ vice versa. Because ACP secure channel setup is symmetric (see
+ Section 6.7), every non-malicious ACP neighbor will attempt to
+ connect as an initiator, though, allowing it to obtain the diagnostic
+ information about the neighbor's certificate.
+
+ In IKEv2, ACP nodes are identified by their ACP addresses. The
+ ID_IPv6_ADDR IKEv2 identification payload MUST be used and MUST
+ convey the ACP address. If the peer's ACP certificate includes a
+ 32HEXDIG ACP address in the acp-node-name (not "0" or omitted), the
+ address in the IKEv2 identification payload MUST match it. See
+ Section 6.2.3 for more information about "0" or omitted ACP address
+ fields in the acp-node-name.
+
+ IKEv2 authentication MUST use authentication method 14 ("Digital
+ Signature") for ACP certificates; this authentication method can be
+ used with both RSA and ECDSA certificates, indicated by an ASN.1
+ object AlgorithmIdentifier.
+
+ The Digital Signature hash SHA2-512 MUST be supported (in addition to
+ SHA2-256).
+
+ The IKEv2 Diffie-Hellman key exchange group 19 (256-bit random ECP),
+ MUST be supported. Reason: ECC provides a similar security level to
+ finite-field (modular exponentiation (MODP)) key exchange with a
+ shorter key length, so is generally preferred absent other
+ considerations.
+
+6.8.3.2. IPsec with GRE Encapsulation
+
+ In network devices, it is often more common to implement high-
+ performance virtual interfaces on top of GRE encapsulation than on
+ top of a "native" IPsec association (without any other encapsulation
+ than those defined by IPsec). On those devices, it may be beneficial
+ to run the ACP secure channel on top of GRE protected by the IPsec
+ association.
+
+ The requirements for ESP/IPsec/IKEv2 with GRE are the same as for
+ native IPsec (see Section 6.8.3.1) except that IPsec transport mode
+ and next protocol GRE (47) are to be negotiated. Tunnel mode is not
+ required because of GRE. Traffic Selectors are:
+
+ TSi = (47, 0-65535, Initiator-IPv6-LL-addr ... Initiator-IPv6-LL-addr)
+ TSr = (47, 0-65535, Responder-IPv6-LL-addr ... Responder-IPv6-LL-addr)
+
+ If the IKEv2 initiator and responder support IPsec over GRE, it will
+ be preferred over native IPsec because of how IKEv2 negotiates
+ transport mode (as used by this IPsec over GRE profile) versus tunnel
+ mode as used by native IPsec (see Section 1.3.1 of [RFC7296]). The
+ ACP IPv6 traffic has to be carried across GRE according to "IPv6
+ Support for Generic Routing Encapsulation (GRE)" [RFC7676].
+
+6.8.4. ACP via DTLS
+
+ This document defines the use of ACP via DTLS on the assumption that
+ it is likely the first transport encryption supported in some classes
+ of constrained devices: DTLS is commonly used in constrained devices
+ when IPsec is not. Code space on those devices may be also be too
+ limited to support more than the minimum number of required
+ protocols.
+
+ An ACP node announces its ability to support DTLS version 1.2
+ ("Datagram Transport Layer Security Version 1.2" [RFC6347]) compliant
+ with the requirements defined in this document as an ACP secure
+ channel protocol in GRASP through the "DTLS" 'objective-value' in the
+ "AN_ACP" objective (see Section 6.4).
+
+ To run ACP via UDP and DTLS, a locally assigned UDP port is used that
+ is announced as a parameter in the GRASP "AN_ACP" objective to
+ candidate neighbors. This port can also be any newer version of DTLS
+ as long as that version can negotiate a DTLS 1.2 connection in the
+ presence of a peer that only supports DTLS 1.2.
+
+ All ACP nodes supporting DTLS as a secure channel protocol MUST
+ adhere to the DTLS implementation recommendations and security
+ considerations of BCP 195 [RFC7525] except with respect to the DTLS
+ version. ACP nodes supporting DTLS MUST support DTLS 1.2. They MUST
+ NOT support older versions of DTLS.
+
+ Unlike for IPsec, no attempts are made to simplify the requirements
+ of the recommendations in BCP 195 [RFC7525] because the expectation
+ is that DTLS would use software-only implementations where the
+ ability to reuse widely adopted implementations is more important
+ than the ability to minimize the complexity of a hardware-accelerated
+ implementation, which is known to be important for IPsec.
+
+ DTLS 1.3 [TLS-DTLS13] is "backward compatible" with DTLS 1.2 (see
+ Section 1 of [TLS-DTLS13]). A DTLS implementation supporting both
+ DTLS 1.2 and DTLS 1.3 does comply with the above requirements of
+ negotiating to DTLS 1.2 in the presence of a DTLS 1.2 only peer, but
+ using DTLS 1.3 when booth peers support it.
+
+ Version 1.2 is the MTI version of DTLS in this specification because
+ of the following:
+
+ * There is more experience with DTLS 1.2 across the spectrum of
+ target ACP nodes.
+
+ * Firmware of lower-end, embedded ACP nodes may not support a newer
+ version for a long time.
+
+ * There are significant changes with DTLS 1.3, such as a different
+ record layer requiring time to gain implementation and deployment
+ experience especially on lower-end devices with limited code
+ space.
+
+ * The existing BCP [RFC7525] for DTLS 1.2 may take an equally longer
+ time to be updated with experience from a newer DTLS version.
+
+ * There are no significant benefits of DTLS 1.3 over DTLS 1.2 that
+ are use-case relevant in the context of the ACP options for DTLS.
+ For example, signaling performance improvements for session setup
+ in DTLS 1.3 is not important for the ACP given the long-lived
+ nature of ACP secure channel connections and the fact that DTLS
+ connections are mostly link local (short RTT).
+
+ Nevertheless, newer versions of DTLS, such as DTLS 1.3, have stricter
+ security requirements, and the use of the latest standard protocol
+ version is in general recommended for IETF security standards.
+ Therefore, ACP implementations are advised to support all the newer
+ versions of DTLS that can still negotiate down to DTLS 1.2.
+
+ There is no additional session setup or other security association
+ besides this simple DTLS setup. As soon as the DTLS session is
+ functional, the ACP peers will exchange ACP IPv6 packets as the
+ payload of the DTLS transport connection. Any DTLS-defined security
+ association mechanisms such as rekeying are used as they would be for
+ any transport application relying solely on DTLS.
+
+6.8.5. ACP Secure Channel Profiles
+
+ As explained in the beginning of Section 6.6, there is no single
+ secure channel mechanism mandated for all ACP nodes. Instead, this
+ section defines two ACP profiles, "baseline" and "constrained", for
+ ACP nodes that do introduce such requirements.
+
+ An ACP node supporting the baseline profile MUST support IPsec
+ natively and MAY support IPsec via GRE. An ACP node supporting the
+ constrained profile that cannot support IPsec MUST support DTLS. An
+ ACP node connecting an area of constrained ACP nodes with an area of
+ baseline ACP nodes needs to support both IPsec and DTLS and therefore
+ supports both the baseline and constrained profiles.
+
+ Explanation: not all types of ACP nodes are able to or need to
+ connect directly to each other, nor are they able to support or
+ prefer all possible secure channel mechanisms. For example, IoT
+ devices with limited code space may only support DTLS because that
+ code already exists on them for end-to-end security, but high-end
+ core routers may not want to support DTLS because they can perform
+ IPsec in accelerated hardware, but they would need to support DTLS in
+ an underpowered CPU forwarding path shared with critical control
+ plane operations. This is not a deployment issue for a single ACP
+ across these types of nodes as long as there are also appropriate
+ gateway ACP nodes that sufficiently support many secure channel
+ mechanisms to allow interconnecting areas of ACP nodes with a more
+ constrained set of secure channel protocols. On the edge between IoT
+ areas and high-end core networks, general-purpose routers that act as
+ those gateways and that can support a variety of secure channel
+ protocols are the norm already.
+
+ Native IPsec with tunnel mode provides the shortest encapsulation
+ overhead. GRE may be preferred by legacy implementations because, in
+ the past, the virtual interfaces required by ACP design in
+ conjunction with secure channels have been implemented more often for
+ GRE than purely for native IPsec.
+
+ ACP nodes need to specify the set of secure ACP mechanisms they
+ support in documentation and should declare which profile they
+ support according to the above requirements.
+
+6.9. GRASP in the ACP
+
+6.9.1. GRASP as a Core Service of the ACP
+
+ The ACP MUST run an instance of GRASP inside of it. It is a key part
+ of the ACP services. The function in GRASP that makes it fundamental
+ as a service of the ACP is the ability to provide ACP-wide service
+ discovery (using objectives in GRASP).
+
+ ACP provides IP unicast routing via RPL (see Section 6.12).
+
+ The ACP does not use IP multicast routing nor does it provide generic
+ IP multicast services (the handling of GRASP link-local multicast
+ messages is explained in Section 6.9.2). Instead, the ACP provides
+ service discovery via the objective discovery/announcement and
+ negotiation mechanisms of the ACP GRASP instance (services are a form
+ of objectives). These mechanisms use hop-by-hop reliable flooding of
+ GRASP messages for both service discovery (GRASP M_DISCOVERY
+ messages) and service announcement (GRASP M_FLOOD messages).
+
+ See Appendix A.5 for discussion about this design choice of the ACP.
+
+6.9.2. ACP as the Security and Transport Substrate for GRASP
+
+ In the terminology of GRASP [RFC8990], the ACP is the security and
+ transport substrate for the GRASP instance run inside the ACP ("ACP
+ GRASP").
+
+ This means that the ACP is responsible for ensuring that this
+ instance of GRASP is only sending messages across the ACP GRASP
+ virtual interfaces. Whenever the ACP adds or deletes such an
+ interface because of new ACP secure channels or loss thereof, the ACP
+ needs to indicate this to the ACP instance of GRASP. The ACP exists
+ also in the absence of any active ACP neighbors. It is created when
+ the node has a domain certificate, and it continues to exist even if
+ all of its neighbors cease operation.
+
+ In this case, ASAs using GRASP running on the same node still need to
+ be able to discover each other's objectives. When the ACP does not
+ exist, ASAs leveraging the ACP instance of GRASP via APIs MUST still
+ be able to operate, and they MUST be able to understand that there is
+ no ACP and that therefore the ACP instance of GRASP cannot operate.
+
+ How the ACP acts as the security and transport substrate for GRASP is
+ shown in Figure 8.
+
+ GRASP unicast messages inside the ACP always use the ACP address.
+ Link-local addresses from the ACP VRF MUST NOT be used inside
+ objectives. GRASP unicast messages inside the ACP are transported
+ via TLS. See Section 6.1 for TLS requirements. TLS mutual
+ authentication MUST use the ACP domain membership check defined in
+ Section 6.2.3.
+
+ GRASP link-local multicast messages are targeted for a specific ACP
+ virtual interface (as defined Section 6.13.5), but they are sent by
+ the ACP to an ACP GRASP virtual interface that is constructed from
+ the TCP connection(s) to the IPv6 link-local neighbor address(es) on
+ the underlying ACP virtual interface. If the ACP GRASP virtual
+ interface has two or more neighbors, the GRASP link-local multicast
+ messages are replicated to all neighbor TCP connections.
+
+ TCP and TLS connections for GRASP in the ACP use the IANA-assigned
+ TCP port for GRASP (7017). Effectively, the transport stack is
+ expected to be TLS for connections to and from the ACP address (e.g.,
+ global-scope address(es)) and TCP for connections to and from the
+ link-local addresses on the ACP virtual interfaces. The latter ones
+ are only used for the flooding of GRASP messages.
+
+ ..............................ACP..............................
+ . .
+ . /-GRASP-flooding-\ ACP GRASP instance .
+ . / \ A
+ . GRASP GRASP GRASP C
+ . link-local unicast link-local P
+ . multicast messages multicast .
+ . messages | messages .
+ . | | | .
+ ...............................................................
+ . v v v ACP security and transport .
+ . | | | substrate for GRASP .
+ . | | | .
+ . | ACP GRASP | - ACP GRASP A
+ . | loopback | loopback interface C
+ . | interface | - ACP-cert auth P
+ . | TLS | .
+ . ACP GRASP | ACP GRASP - ACP GRASP virtual .
+ . subnet1 | subnet2 interfaces .
+ . TCP | TCP .
+ . | | | .
+ ...............................................................
+ . | | | ^^^ Users of ACP (GRASP/ASA) .
+ . | | | ACP interfaces/addressing .
+ . | | | .
+ . | | | A
+ . | ACP loopback interf.| <- ACP loopback interface C
+ . | ACP-address | - address (global ULA) P
+ . subnet1 | subnet2 <- ACP virtual interfaces .
+ . link-local | link-local - link-local addresses .
+ ...............................................................
+ . | | | ACP VRF .
+ . | RPL-routing | virtual routing and forwarding .
+ . | /IP-Forwarding\ | A
+ . | / \ | C
+ . ACP IPv6 packets ACP IPv6 packets P
+ . |/ \| .
+ . IPsec/DTLS IPsec/DTLS - ACP-cert auth .
+ ...............................................................
+ | | Data Plane
+ | |
+ | | - ACP secure channel
+ link-local link-local - encapsulation addresses
+ subnet1 subnet2 - data plane interfaces
+ | |
+ ACP-Nbr1 ACP-Nbr2
+
+ Figure 8: ACP as Security and Transport Substrate for GRASP
+
+6.9.2.1. Discussion
+
+ TCP encapsulation for GRASP M_DISCOVERY and M_FLOOD link-local
+ messages is used because these messages are flooded across
+ potentially many hops to all ACP nodes, and a single link with even
+ temporary packet-loss issues (e.g., a Wi-Fi or Powerline link) can
+ reduce the probability for loss-free transmission so much that
+ applications would want to increase the frequency with which they
+ send these messages. Such shorter periodic retransmission of
+ datagrams would result in more traffic and processing overhead in the
+ ACP than the hop-by-hop, reliable retransmission mechanism offered by
+ TCP and duplicate elimination by GRASP.
+
+ TLS is mandated for GRASP non-link-local unicast because the ACP
+ secure channel mandatory authentication and encryption protects only
+ against attacks from the outside but not against attacks from the
+ inside: compromised ACP members that have (not yet) been detected and
+ removed (e.g., via domain certificate revocation and/or expiry).
+
+ If GRASP peer connections were to use just TCP, compromised ACP
+ members could simply eavesdrop passively on GRASP peer connections
+ for which they are on-path ("man in the middle" or MITM) or intercept
+ and modify messages. With TLS, it is not possible to completely
+ eliminate problems with compromised ACP members, but attacks are a
+ lot more complex.
+
+ Eavesdropping and/or spoofing by a compromised ACP node is still
+ possible because in the model of the ACP and GRASP, the provider and
+ consumer of an objective have initially no unique information (such
+ as an identity) about the other side that would allow them to
+ distinguish a benevolent from a compromised peer. The compromised
+ ACP node would simply announce the objective as well, potentially
+ filter the original objective in GRASP when it is a MITM and act as
+ an application-level proxy. This of course requires that the
+ compromised ACP node understand the semantics of the GRASP
+ negotiation to an extent that allows the compromised node to proxy
+ the messages without being detected, but in an ACP environment, this
+ is quite likely public knowledge or even standardized.
+
+ The GRASP TLS connections are run the same as any other ACP traffic
+ through the ACP secure channels. This leads to double authentication
+ and encryption, which has the following benefits:
+
+ * Secure channel methods such as IPsec may provide protection
+ against additional attacks, for example, reset attacks.
+
+ * The secure channel method may leverage hardware acceleration, and
+ there may be little or no gain in eliminating it.
+
+ * The security model for ACP GRASP is no different than other ACP
+ traffic. Instead, there is just another layer of protection
+ against certain attacks from the inside, which is important due to
+ the role of GRASP in the ACP.
+
+6.10. Context Separation
+
+ The ACP is in a separate context from the normal data plane of the
+ node. This context includes the ACP channels' IPv6 forwarding and
+ routing as well as any required higher-layer ACP functions.
+
+ In a classical network system, a dedicated VRF is one logical
+ implementation option for the ACP. If allowed by the system's
+ software architecture, separation options that minimize shared
+ components, such as a logical container or virtual machine instance,
+ are preferred. The context for the ACP needs to be established
+ automatically during the bootstrap of a node. As much as possible,
+ it should be protected from being modified unintentionally by (data
+ plane) configuration.
+
+ Context separation improves security because the ACP is not reachable
+ from the data plane routing or forwarding table(s). Also,
+ configuration errors from the data plane setup do not affect the ACP.
+
+6.11. Addressing inside the ACP
+
+ The channels explained above typically only establish communication
+ between two adjacent nodes. In order for communication to happen
+ across multiple hops, the Autonomic Control Plane requires ACP
+ network-wide valid addresses and routing. Each ACP node creates a
+ loopback interface with an ACP network-wide unique address (prefix)
+ inside the ACP context (as explained in Section 6.10). This address
+ may be used also in other virtual contexts.
+
+ With the algorithm introduced here, all ACP nodes in the same routing
+ subdomain have the same /48 ULA prefix. Conversely, ULA Global IDs
+ from different domains are unlikely to clash, such that two ACP
+ networks can be merged, as long as the policy allows that merge. See
+ also Section 10.1 for a discussion on merging domains.
+
+ Links inside the ACP only use link-local IPv6 addressing, such that
+ each node's ACP only requires one routable address prefix.
+
+6.11.1. Fundamental Concepts of Autonomic Addressing
+
+ * Usage: autonomic addresses are exclusively used for self-
+ management functions inside a trusted domain. They are not used
+ for user traffic. Communications with entities outside the
+ trusted domain use another address space, for example, a normally
+ managed routable address space (called "data plane" in this
+ document).
+
+ * Separation: autonomic address space is used separately from user
+ address space and other address realms. This supports the
+ robustness requirement.
+
+ * Loopback only: only ACP loopback interfaces (and potentially those
+ configured for ACP connect, see Section 8.1) carry routable
+ address(es); all other interfaces (called ACP virtual interfaces)
+ only use IPv6 link-local addresses. The usage of IPv6 link-local
+ addressing is discussed in "Using Only Link-Local Addressing
+ inside an IPv6 Network" [RFC7404].
+
+ * Use of ULA: for loopback interfaces of ACP nodes, we use ULA with
+ the L bit set to 1 (as defined in Section 3.1 of [RFC4193]). Note
+ that the random hash for ACP loopback addresses uses the
+ definition in Section 6.11.2 and not the one in [RFC4193],
+ Section 3.2.2.
+
+ * No external connectivity: the addresses do not provide access to
+ the Internet. If a node requires further connectivity, it should
+ use another, traditionally managed addressing scheme in parallel.
+
+ * Addresses in the ACP are permanent and do not support temporary
+ addresses as defined in "Temporary Address Extensions for
+ Stateless Address Autoconfiguration in IPv6" [RFC8981].
+
+ * Addresses in the ACP are not considered sensitive on privacy
+ grounds because ACP nodes are not expected to be end-user hosts,
+ and therefore ACP addresses do not represent end users or groups
+ of end users. All ACP nodes are in one (potentially federated)
+ administrative domain. For ACP traffic, the nodes are assumed to
+ be either candidate hosts or transit nodes. There are no transit
+ nodes with fewer privileges to know the identity of other hosts in
+ the ACP. Therefore, ACP addresses do not need to be pseudorandom
+ as discussed in "Security and Privacy Considerations for IPv6
+ Address Generation Mechanisms" [RFC7721]. Because they are not
+ propagated to untrusted (non-ACP) nodes and stay within a domain
+ (of trust), we also do not consider them to be subject to scanning
+ attacks.
+
+ The ACP is based exclusively on IPv6 addressing for a variety of
+ reasons:
+
+ * Simplicity, reliability, and scale: if other network-layer
+ protocols were supported, each would have to have its own set of
+ security associations, routing table, and process, etc.
+
+ * Autonomic functions do not require IPv4: autonomic functions and
+ autonomic service agents are new concepts. They can be
+ exclusively built on IPv6 from day one. There is no need for
+ backward compatibility.
+
+ * OAM protocols do not require IPv4: the ACP may carry OAM
+ protocols. All relevant protocols (SNMP, TFTP, SSH, SCP, RADIUS,
+ Diameter, NETCONF, etc.) are available in IPv6. See also
+ [RFC8368] for how ACP could be made to interoperate with IPv4-only
+ OAM.
+
+ Further explanation about the addressing and routing-related reasons
+ for the choice of the autonomous ACP addressing can be found in
+ Section 6.13.5.1.
+
+6.11.2. The ACP Addressing Base Scheme
+
+ The ULA addressing base scheme for ACP nodes has the following
+ format:
+
+ 8 40 2 78
+ +--+-------------------------+------+------------------------------+
+ |fd| hash(routing-subdomain) | Type | (sub-scheme) |
+ +--+-------------------------+------+------------------------------+
+
+ Figure 9: ACP Addressing Base Scheme
+
+ The first 48 bits follow the ULA scheme as defined in [RFC4193], to
+ which a Type field is added.
+
+ fd: Identifies a locally defined ULA address.
+
+ hash(routing-subdomain): The 40-bit ULA Global ID (a term from
+ [RFC4193]) for ACP addresses carried in the acp-node-name in the
+ ACP certificates are the first 40 bits of the SHA-256 hash of the
+ routing-subdomain from the same acp-node-name. In the example of
+ Section 6.2.2, the routing-subdomain is
+ "area51.research.acp.example.com", and the 40-bit ULA Global ID is
+ 89b714f3db.
+
+ When creating a new routing-subdomain for an existing Autonomic
+ Network, it MUST be ensured that rsub is selected so the resulting
+ hash of the routing-subdomain does not collide with the hash of
+ any preexisting routing-subdomains of the Autonomic Network. This
+ ensures that ACP addresses created by registrars for different
+ routing subdomains do not collide with each other.
+
+ To allow for extensibility, the fact that the ULA Global ID is a
+ hash of the routing-subdomain SHOULD NOT be assumed by any ACP
+ node during normal operations. The hash function is only executed
+ during the creation of the certificate. If BRSKI is used, then
+ the BRSKI registrar will create the acp-node-name in response to
+ the EST Certificate Signing Request (CSR) Attributes Request
+ message sent by the pledge.
+
+ Establishing connectivity between different ACPs (different acp-
+ domain-names) is outside the scope of this specification. If it
+ is being done through future extensions, then the rsub of all
+ routing-subdomains across those Autonomic Networks needs to be
+ selected so that the resulting routing-subdomain hashes do not
+ collide. For example, a large cooperation with its own private TA
+ may want to create different Autonomic Networks that initially do
+ not connect but where the option to do so should be kept open.
+ When taking this possibility into account, it is always easy to
+ select rsub so that no collisions happen.
+
+ Type: This field allows different addressing sub-schemes. This
+ addresses the "upgradability" requirement. Assignment of types
+ for this field will be maintained by IANA.
+
+ (sub-scheme): The sub-scheme may imply a range or set of addresses
+ assigned to the node. This is called the ACP address range/set
+ and explained in each sub-scheme.
+
+ Please refer to Section 6.11.7 and Appendix A.1 for further
+ explanations for why the following addressing sub-schemes are used
+ and why multiple are necessary.
+
+ The following summarizes the addressing sub-schemes:
+
+ +======+==============+=======+=====+=========+========+
+ | Type | Name | F-bit | Z | V-bits | Prefix |
+ +======+==============+=======+=====+=========+========+
+ | 0 | ACP-Zone | N/A | 0 | 1 bit | /127 |
+ +------+--------------+-------+-----+---------+--------+
+ | 0 | ACP-Manual | N/A | 1 | N/A | /64 |
+ +------+--------------+-------+-----+---------+--------+
+ | 1 | ACP-Vlong-8 | 0 | N/A | 8 bits | /120 |
+ +------+--------------+-------+-----+---------+--------+
+ | 1 | ACP-Vlong-16 | 1 | N/A | 16 bits | /112 |
+ +------+--------------+-------+-----+---------+--------+
+ | 2 | Reserved / For future definition/allocation |
+ +------+-----------------------------------------------+
+ | 3 | Reserved / For future definition/allocation |
+ +------+-----------------------------------------------+
+
+ Table 1: Addressing Sub-Schemes
+
+ The F-bit (format bit, Section 6.11.5) and Z (Section 6.11.4) are two
+ encoding fields that are explained in the sections covering the sub-
+ schemes that use them. V-bits is the number of bits of addresses
+ allocated to the ACP node. Prefix is the prefix that the ACP node is
+ announcing into RPL.
+
+6.11.3. ACP Zone Addressing Sub-Scheme (ACP-Zone)
+
+ This sub-scheme is used when the Type field of the base scheme is 0
+ and the Z bit is 0.
+
+ 64 64
+ +-----------------+---+---------++-----------------------------+---+
+ | (base scheme) | Z | Zone-ID || Node-ID |
+ | | | || Registrar-ID | Node-Number| V |
+ +-----------------+---+---------++--------------+--------------+---+
+ 50 1 13 48 15 1
+
+ Figure 10: ACP Zone Addressing Sub-Scheme
+
+ The fields are defined as follows:
+
+ Type: MUST be 0.
+
+ Z: MUST be 0.
+
+ Zone-ID: A value for a network zone.
+
+ Node-ID: A unique value for each node.
+
+ The 64-bit Node-ID must be unique across the ACP domain for each
+ node. It is derived and composed as follows:
+
+ Registrar-ID (48 bits): A number unique inside the domain
+ identifying the ACP registrar that assigned the Node-ID to the
+ node. One or more domain-wide unique identifiers of the ACP
+ registrar can be used for this purpose. See Section 6.11.7.2.
+
+ Node-Number: A number to make the Node-ID unique. This can be
+ sequentially assigned by the ACP registrar owning the
+ Registrar-ID.
+
+ V (1 bit): Virtualization bit:
+
+ 0: Indicates the ACP itself ("ACP node base system)
+
+ 1: Indicates the optional "host" context on the ACP node (see
+ below).
+
+ In the Zone Addressing Sub-Scheme, the ACP address in the certificate
+ has V field as all zero bits.
+
+ The ACP address set of the node includes addresses with any Zone-ID
+ value and any V value. Therefore, no two nodes in the same ACP and
+ the same hash(routing-subdomain) can have the same Node-ID with the
+ Zone Addressing Sub-Scheme, for example, by differing only in their
+ Zone-ID.
+
+ The Virtualization bit in this sub-scheme allows the easy addition of
+ the ACP as a component to existing systems without causing problems
+ in the port number space between the services in the ACP and the
+ existing system. V=0 is the ACP router (autonomic node base system),
+ V=1 is the host with preexisting transport endpoints on it that could
+ collide with the transport endpoints used by the ACP router. The ACP
+ host could, for example, have a P2P (peer-to-peer) virtual interface
+ with the V=0 address as its router to the ACP. Depending on the
+ software design of ASAs, which is outside the scope of this
+ specification, they may use the V=0 or V=1 address.
+
+ The location of the V bit(s) at the end of the address allows the
+ announcement of a single prefix for each ACP node. For example, in a
+ network with 20,000 ACP nodes, this avoids 20,000 additional routes
+ in the routing table.
+
+ It is RECOMMENDED that only Zone-ID 0 is used unless it is meant to
+ be used in conjunction with operational practices for partial or
+ incremental adoption of the ACP as described in Section 9.4.
+
+ Note: Zones and Zone-ID as defined here are not related to zones or
+ zone_id defined in "IPv6 Scoped Address Architecture" [RFC4007]. ACP
+ zone addresses are not scoped (i.e., reachable only from within a
+ zone as defined by [RFC4007]) but are reachable across the whole ACP.
+ A zone_id is a zone index that has only local significance on a node
+ [RFC4007], whereas an ACP Zone-ID is an identifier for an ACP zone
+ that is unique across that ACP.
+
+6.11.4. ACP Manual Addressing Sub-Scheme (ACP-Manual)
+
+ This sub-scheme is used when the Type field of the base scheme is 0
+ and the Z bit is 1.
+
+ 64 64
+ +---------------------+---+----------++-----------------------------+
+ | (base scheme) | Z | Subnet-ID|| Interface Identifier |
+ +---------------------+---+----------++-----------------------------+
+ 50 1 13
+
+ Figure 11: ACP Manual Addressing Sub-Scheme
+
+ The fields are defined as follows:
+
+ Type: MUST be 0.
+
+ Z: MUST be 1.
+
+ Subnet-ID: Configured subnet identifier.
+
+ Interface Identifier: Interface identifier according to [RFC4291].
+
+ This sub-scheme is meant for the "manual" allocation to subnets where
+ the other addressing schemes cannot be used. The primary use case is
+ for assignment to ACP connect subnets (see Section 8.1.1).
+
+ "Manual" means that allocations of the Subnet-ID need to be done with
+ preexisting, non-autonomic mechanisms. Every subnet that uses this
+ addressing sub-scheme needs to use a unique Subnet-ID (unless some
+ anycast setup is done).
+
+ The Z bit field was added to distinguish between the Zone Addressing
+ Sub-Scheme and the Manual Addressing Sub-Scheme without requiring one
+ more bit in the base scheme and therefore allowing for the Vlong
+ Addressing Sub-Scheme (described in Section 6.11.5) to have one more
+ bit available.
+
+ The Manual Addressing Sub-Scheme addresses SHOULD NOT be used in ACP
+ certificates. Any node capable of building ACP secure channels and
+ is permitted by registrar policy to participate in building ACP
+ secure channels SHOULD receive an ACP address (prefix) from one of
+ the other ACP addressing sub-schemes. A node that cannot or is not
+ permitted to participate in ACP secure channels can connect to the
+ ACP via ACP connect interfaces of ACP edge nodes (see Section 8.1)
+ without setting up an ACP secure channel. Its ACP certificate MUST
+ omit the acp-address field to indicate that its ACP certificate is
+ only usable for non-ACP secure channel authentication, such as end-
+ to-end transport connections across the ACP or data plane.
+
+ Address management of ACP connect subnets is done using traditional
+ assignment methods and existing IPv6 protocols. See Section 8.1.3
+ for details. Therefore, the notion of /V-bits multiple addresses
+ assigned to the ACP nodes does not apply to this sub-scheme.
+
+6.11.5. ACP Vlong Addressing Sub-Scheme (ACP-Vlong-8/ACP-Vlong-16)
+
+ This addressing sub-scheme is used when the Type field of the base
+ scheme is 1.
+
+ 50 78
+ +---------------------++-----------------------------+----------+
+ | (base scheme) || Node-ID |
+ | || Registrar-ID |F| Node-Number| V |
+ +---------------------++--------------+--------------+----------+
+ 50 46 1 23/15 8/16
+
+ Figure 12: ACP Vlong Addressing Sub-Scheme
+
+ This addressing sub-scheme foregoes the Zone-ID field
+ (Section 6.11.3) to allow for larger, flatter routed networks (e.g.,
+ as in IoT) with 8,421,376 Node-Numbers (2^23 + 2^15). It also allows
+ for up to 2^16 (i.e., 65,536) different virtualized addresses within
+ a node, which could be used to address individual software components
+ in an ACP node.
+
+ The fields are the same as in the Zone Addressing Sub-Scheme
+ (Section 6.11.3) with the following refinements:
+
+ F: Format bit. This bit determines the format of the subsequent
+ bits.
+
+ V: Virtualization bit: this is a field that is either 8 or 16 bits.
+ For F=0, it is 8 bits, for F=1 it is 16 bits. The V-bits are
+ assigned by the ACP node. In the ACP certificate's ACP address
+ (Section 6.2.2), the V-bits are always set to 0.
+
+ Registrar-ID: To maximize Node-Number and V, the Registrar-ID is
+ reduced to 46 bits. One or more domain-wide unique identifiers of
+ the ACP registrar can be used for this purpose. See
+ Section 6.11.7.2.
+
+ Node-Number: The Node-Number is unique to each ACP node. There are
+ two formats for the Node-Number. When F=0, the Node-Number is 23
+ bits, for F=1, it is 15 bits. Each format of Node-Number is
+ considered to be in a unique number space.
+
+ The F=0 bit format addresses are intended to be used for "general
+ purpose" ACP nodes that would potentially have a limited number (less
+ than 256) of clients (ASA and/or autonomic functions or legacy
+ services) of the ACP that require separate V(irtual) addresses.
+
+ The F=1 bit Node-Numbers are intended for ACP nodes that are ACP edge
+ nodes (see Section 8.1.1) or that have a large number of clients
+ requiring separate V(irtual) addresses, for example, large SDN
+ controllers with container modular software architecture (see
+ Section 8.1.2).
+
+ In the Vlong Addressing Sub-Scheme, the ACP address in the
+ certificate has all V field bits as zero. The ACP address set for
+ the node includes any V value.
+
+6.11.6. Other ACP Addressing Sub-Schemes
+
+ Before further addressing sub-schemes are defined, experience with
+ the schemes defined here should be collected. The schemes defined in
+ this document have been devised to allow hopefully a sufficiently
+ flexible setup of ACPs for a variety of situations. These reasons
+ also lead to the fairly liberal use of address space: the Zone
+ Addressing Sub-Scheme is intended to enable optimized routing in
+ large networks by reserving bits for Zone-IDs. The Vlong Addressing
+ Sub-Scheme enables the allocation of 8/16-bit of addresses inside
+ individual ACP nodes. Both address spaces allow distributed,
+ uncoordinated allocation of node addresses by reserving bits for the
+ Registrar-ID field in the address.
+
+6.11.7. ACP Registrars
+
+ ACP registrars are responsible for enrolling candidate ACP nodes with
+ ACP certificates and associated trust anchor(s). They are also
+ responsible for including an acp-node-name field in the ACP
+ certificate. This field carries the ACP domain name and the ACP
+ node's ACP address prefix. This address prefix is intended to
+ persist unchanged through the lifetime of the ACP node.
+
+ Because of the ACP addressing sub-schemes, an ACP domain can have
+ multiple distributed ACP registrars that do not need to coordinate
+ for address assignment. ACP registrars can also be sub-CAs, in which
+ case they can also assign ACP certificates without dependencies
+ against a (shared) TA (except during renewals of their own
+ certificates).
+
+ ACP registrars are PKI registration authorities (RA) enhanced with
+ the handling of the ACP certificate-specific fields. They request
+ certificates for ACP nodes from a CA through any appropriate
+ mechanism (out of scope in this document, but this mechanism is
+ required to be BRSKI for ANI registrars). Only nodes that are
+ trusted to be compliant with the registrar requirements described in
+ this section can be given the necessary credentials to perform this
+ RA function, such as the credential for the ACP registrar to connect
+ to the CA as a registrar.
+
+6.11.7.1. Use of BRSKI or Other Mechanisms or Protocols
+
+ Any protocols or mechanisms may be used by ACP registrars as long as
+ the resulting ACP certificate and TA certificate(s) can be used by
+ other domain members to perform the ACP domain membership check
+ described in Section 6.2.3, and the acp-node-name meets the ACP
+ addressing requirements described in the next three sections.
+
+ An ACP registrar could be a person deciding whether to enroll a
+ candidate ACP node and then orchestrating the enrollment of the ACP
+ certificate and associated TA, using command line or web-based
+ commands on the candidate ACP node and TA to generate and sign the
+ ACP certificate and configure certificate and TA onto the node.
+
+ The only currently defined protocol for ACP registrars is BRSKI
+ [RFC8995]. When BRSKI is used, the ACP nodes are called ANI nodes,
+ and the ACP registrars are called BRSKI or ANI registrars. The BRSKI
+ specification does not define the handling of the acp-node-name field
+ because the rules do not depend on BRSKI but apply equally to any
+ protocols or mechanisms that an ACP registrar may use.
+
+6.11.7.2. Unique Address/Prefix Allocation
+
+ ACP registrars MUST NOT allocate ACP address prefixes to ACP nodes
+ via the acp-node-name that would collide with the ACP address
+ prefixes of other ACP nodes in the same ACP domain. This includes
+ both prefixes allocated by the same ACP registrar to different ACP
+ nodes as well as prefixes allocated by other ACP registrars for the
+ same ACP domain.
+
+ To support such unique address allocation, an ACP registrar MUST have
+ one or more 46-bit identifiers, called the Registrar-ID, that are
+ unique across the ACP domain. Allocation of Registrar-ID(s) to an
+ ACP registrar can happen through OAM mechanisms in conjunction with
+ some database and/or allocation orchestration.
+
+ ACP registrars running on physical devices with known globally unique
+ EUI-48 MAC address(es) (EUI stands for "Extended Unique Identifier")
+ can use the lower 46 bits of those address(es) as unique Registrar-
+ IDs without requiring any external signaling and/or configuration
+ (the upper two bits, V and U, are not uniquely assigned but are
+ functional). This approach is attractive for distributed, non-
+ centrally administered, lightweight ACP registrar implementations.
+ There is no mechanism to deduce from a MAC address itself whether it
+ is actually uniquely assigned. Implementations need to consult
+ additional offline information before making this assumption, for
+ example, by knowing that a particular physical product or Network
+ Interface Controller (NIC) chip is guaranteed to use globally unique
+ assigned EUI-48 MAC address(es).
+
+ When the candidate ACP device (called pledge in BRSKI) is to be
+ enrolled into an ACP domain, the ACP registrar needs to allocate a
+ unique ACP address to the node and ensure that the ACP certificate
+ gets an acp-node-name field (Section 6.2.2) with the appropriate
+ information: ACP domain name, ACP address, and so on. If the ACP
+ registrar uses BRSKI, it signals the ACP acp-node-name field to the
+ pledge via EST CSR Attributes (see [RFC8995], Section 5.9.2, "EST CSR
+ Attributes").
+
+6.11.7.3. Addressing Sub-Scheme Policies
+
+ The ACP registrar selects for the candidate ACP node a unique address
+ prefix from an appropriate ACP addressing sub-scheme, either a Zone
+ Addressing Sub-Scheme prefix (see Section 6.11.3), or a Vlong
+ Addressing Sub-Scheme prefix (see Section 6.11.5). The assigned ACP
+ address prefix encoded in the acp-node-name field of the ACP
+ certificate indicates to the ACP node its ACP address information.
+ The addressing sub-scheme indicates the prefix length: /127 for the
+ Zone Addressing Sub-Scheme, /120 or /112 for the Vlong Addressing
+ Sub-Scheme. The first address of the prefix is the ACP address. All
+ other addresses in the prefix are for other uses by the ACP node as
+ described in the Zone Addressing Sub-Scheme and Vlong Addressing Sub-
+ Scheme sections. The ACP address prefix itself is then signaled by
+ the ACP node into the ACP routing protocol (see Section 6.12) to
+ establish IPv6 reachability across the ACP.
+
+ The choice of addressing sub-scheme and prefix length in the Vlong
+ Addressing Sub-Scheme is subject to ACP registrar policy. It could
+ be an ACP domain-wide policy, or a per ACP node or per ACP node type
+ policy. For example, in BRSKI, the ACP registrar is aware of the
+ IDevID certificate of the candidate ACP node, which typically
+ contains a "serialNumber" attribute in the subject field
+ distinguished name encoding that often indicates the node's vendor
+ and device type, and it can be used to drive a policy for selecting
+ an appropriate addressing sub-scheme for the (class of) node(s).
+
+ ACP registrars SHOULD default to allocating Zone Addressing Sub-
+ Scheme addresses with Zone-ID 0.
+
+ ACP registrars that are aware of the IDevID certificate of a
+ candidate ACP device SHOULD be able to choose the Zone vs. Vlong
+ Addressing Sub-Scheme for ACP nodes based on the "serialNumber"
+ attribute [X.520] in the subject field distinguished name encoding of
+ the IDevID certificate, for example, by the PID (Product Identifier)
+ part, which identifies the product type, or by the complete
+ "serialNumber". The PID, for example, could identify nodes that
+ allow for specialized ASA requiring multiple addresses or for non-
+ autonomic virtual machines (VMs) for services, and those nodes could
+ receive Vlong Addressing Sub-Scheme ACP addresses.
+
+ In a simple allocation scheme, an ACP registrar remembers
+ persistently across reboots its currently used Registrar-ID and, for
+ each addressing scheme (Zone with Zone-ID 0, Vlong with /112, Vlong
+ with /120), the next Node-Number available for allocation, and it
+ increases the next Node-Number during successful enrollment of an ACP
+ node. In this simple allocation scheme, the ACP registrar would not
+ recycle ACP address prefixes from ACP nodes that are no longer used.
+
+ If allocated addresses cannot be remembered by registrars, then it is
+ necessary either to use a new value for the Register-ID field in the
+ ACP addresses or to determine allocated ACP addresses by determining
+ the addresses of reachable ACP nodes, which is not necessarily the
+ set of all ACP nodes. Untracked ACP addresses can be reclaimed by
+ revoking or not renewing their certificates and instead handing out
+ new certificates with new addresses (for example, with a new
+ Registrar-ID value). Note that such strategies may require
+ coordination amongst registrars.
+
+6.11.7.4. Address/Prefix Persistence
+
+ When an ACP certificate is renewed or rekeyed via EST or other
+ mechanisms, the ACP address/prefix in the acp-node-name field MUST be
+ maintained unless security issues or violations of the unique address
+ assignment requirements exist or are suspected by the ACP registrar.
+
+ ACP address information SHOULD be maintained even when the renewing
+ and/or rekeying ACP registrar is not the same as the one that
+ enrolled the prior ACP certificate. See Section 9.2.4 for an
+ example.
+
+ ACP address information SHOULD also be maintained even after an ACP
+ certificate expires or fails. See Section 6.2.5.5 and
+ Section 6.2.5.6.
+
+6.11.7.5. Further Details
+
+ Section 9.2 discusses further informative details of ACP registrars:
+ needed interactions, required parameters, certificate renewal and
+ limitations, use of sub-CAs on registrars, and centralized policy
+ control.
+
+6.12. Routing in the ACP
+
+ Once ULA addresses are set up, all autonomic entities should run a
+ routing protocol within the ACP context. This routing protocol
+ distributes the ULA created in the previous section for reachability.
+ The use of the ACP-specific context eliminates the probable clash
+ with data plane routing tables and also secures the ACP from
+ interference from configuration mismatch or incorrect routing
+ updates.
+
+ The establishment of the routing plane and its parameters are
+ automatic and strictly within the confines of the ACP. Therefore, no
+ explicit configuration is required.
+
+ All routing updates are automatically secured in transit as the
+ channels of the ACP are encrypted, and this routing runs only inside
+ the ACP.
+
+ The routing protocol inside the ACP is RPL [RFC6550]. See
+ Appendix A.4 for more details on the choice of RPL.
+
+ RPL adjacencies are set up across all ACP channels in the same domain
+ including all its routing subdomains. See Appendix A.6 for more
+ details.
+
+6.12.1. ACP RPL Profile
+
+ The following is a description of the RPL profile that ACP nodes need
+ to support by default. The format of this section is derived from
+ [ROLL-APPLICABILITY].
+
+6.12.1.1. Overview
+
+ RPL Packet Information (RPI), defined in [RFC6550], Section 11.2,
+ defines the data packet artifacts required or beneficial in the
+ forwarding of packets routed by RPL. This profile does not use RPI
+ for better compatibility with accelerated hardware forwarding planes,
+ which most often do not support the Hop-by-Hop headers used for RPI,
+ but also to avoid the overhead of the RPI header on the wire and cost
+ of adding and/or removing them.
+
+6.12.1.1.1. Single Instance
+
+ To avoid the need for RPI, the ACP RPL profile uses a simple routing/
+ forwarding table based on destination prefix. To achieve this, the
+ profile uses only one RPL instanceID. This single instanceID can
+ contain only one Destination-Oriented Directed Acyclic Graph (DODAG),
+ and the routing/forwarding table can therefore only calculate a
+ single class of service ("best effort towards the primary NOC/root")
+ and cannot create optimized routing paths to accomplish latency or
+ energy goals between any two nodes.
+
+ This choice is a compromise. Consider a network that has multiple
+ NOCs in different locations. Only one NOC will become the DODAG
+ root. Traffic to and from other NOCs has to be sent through the
+ DODAG (shortest path tree) rooted in the primary NOC. Depending on
+ topology, this can be an annoyance from a point of view of latency or
+ minimizing network path resources, but this is deemed to be
+ acceptable given how ACP traffic is "only" network management/control
+ traffic. See Appendix A.9.4 for more details.
+
+ Using a single instanceID/DODAG does not introduce a single point of
+ failure, as the DODAG will reconfigure itself when it detects data
+ plane forwarding failures, including choosing a different root when
+ the primary one fails.
+
+ The benefit of this profile, especially compared to other IGPs, is
+ that it does not calculate routes for nodes reachable through the
+ same interface as the DODAG root. This RPL profile can therefore
+ scale to a much larger number of ACP nodes in the same amount of
+ computation and memory than other routing protocols, especially on
+ nodes that are leafs of the topology or those close to those leafs.
+
+6.12.1.1.2. Reconvergence
+
+ In RPL profiles where RPI (see Section 6.12.1.13) is present, it is
+ also used to trigger reconvergence when misrouted, for example,
+ looping packets, which are recognized because of their RPI data.
+ This helps to minimize RPL signaling traffic, especially in networks
+ without stable topology and slow links.
+
+ The ACP RPL profile instead relies on quickly reconverging the DODAG
+ by recognizing link state change (down/up) and triggering
+ reconvergence signaling as described in Section 6.12.1.7. Since
+ links in the ACP are assumed to be mostly reliable (or have link-
+ layer protection against loss) and because there is no stretch
+ according to Section 6.12.1.7, loops caused by loss of RPL signaling
+ packets should be exceedingly rare.
+
+ In addition, there are a variety of mechanisms possible in RPL to
+ further avoid temporary loops that are RECOMMENDED to be used for the
+ ACP RPL profile: DODAG Information Objects (DIOs) SHOULD be sent two
+ or three times to inform children when losing the last parent. The
+ technique in [RFC6550], Section 8.2.2.6 (Detaching) SHOULD be favored
+ over that in Section 8.2.2.5 (Poisoning) because it allows local
+ connectivity. Nodes SHOULD select more than one parent, at least
+ three if possible, and send Destination Advertisement Objects (DAOs)
+ to all of them in parallel.
+
+ Additionally, failed ACP tunnels can be quickly discovered through
+ the secure channel protocol mechanisms such as IKEv2 dead peer
+ detection. This can function as a replacement for a Low-power and
+ Lossy Network's (LLN's) Expected Transmission Count (ETX) feature,
+ which is not used in this profile. A failure of an ACP tunnel should
+ immediately signal the RPL control plane to pick a different parent.
+
+6.12.1.2. RPL Instances
+
+ There is a single RPL instance. The default RPLInstanceID is 0.
+
+6.12.1.3. Storing vs. Non-Storing Mode
+
+ The RPL Mode of Operation (MOP) MUST support mode 2, "Storing Mode of
+ Operations with no multicast support". Implementations MAY support
+ mode 3 ("... with multicast support") as that is a superset of mode
+ 2. Note: Root indicates mode in DIO flow.
+
+6.12.1.4. DAO Policy
+
+ The DAO policy is proactive, aggressive DAO state maintenance:
+
+ * Use the 'K' flag in unsolicited DAO to indicate change from
+ previous information (to require DAO-ACK).
+
+ * Retry such DAO DAO-RETRIES(3) times with DAO-ACK_TIME_OUT(256ms)
+ in between.
+
+6.12.1.5. Path Metrics
+
+ Use Hop Count according to "Routing Metrics Used for Path Calculation
+ in Low-Power and Lossy Networks" [RFC6551]. Note that this is solely
+ for diagnostic purposes as it is not used by the Objective Function.
+
+6.12.1.6. Objective Function
+
+ Objective Function (OF): Use Objective Function Zero (OF0)
+ ("Objective Function Zero for the Routing Protocol for Low-Power
+ and Lossy Networks (RPL)" [RFC6552]). Metric containers are not
+ used.
+
+ rank_factor: Derived from link speed: if less than or equal to 100
+ Mbps, LOW_SPEED_FACTOR(5), else HIGH_SPEED_FACTOR(1).
+
+ This is a simple rank differentiation between typical "low speed"
+ or IoT links that commonly max out at 100 Mbps and typical
+ infrastructure links with speeds of 1 Gbps or higher. Given how
+ the path selection for the ACP focuses only on reachability but
+ not on path cost optimization, no attempts at finer-grained path
+ optimization are made.
+
+6.12.1.7. DODAG Repair
+
+ Global Repair: We assume stable links and ranks (metrics), so there
+ is no need to periodically rebuild the DODAG. The DODAG version
+ is only incremented under catastrophic events (e.g.,
+ administrative action).
+
+ Local Repair: As soon as link breakage is detected, the ACP node
+ sends a No-Path DAO for all the targets that were reachable only
+ via this link. As soon as link repair is detected, the ACP node
+ validates if this link provides a better parent. If so, a new
+ rank is computed by the ACP node, and it sends a new DIO that
+ advertises the new rank. Then it sends a DAO with a new path
+ sequence about itself.
+
+ When using ACP multi-access virtual interfaces, local repair can
+ be triggered directly by peer breakage, see Section 6.13.5.2.2.
+
+ stretch_rank: None provided ("not stretched").
+
+ Data-Path Validation: Not used.
+
+ Trickle: Not used.
+
+6.12.1.8. Multicast
+
+ Multicast is not used yet, but it is possible because of the selected
+ mode of operations.
+
+6.12.1.9. Security
+
+ RPL security [RFC6550] is not used, and ACP security is substituted.
+
+ Because the ACP links already include provisions for confidentiality
+ and integrity protection, their usage at the RPL layer would be
+ redundant, and so RPL security is not used.
+
+6.12.1.10. P2P Communications
+
+ Not used.
+
+6.12.1.11. IPv6 Address Configuration
+
+ Every ACP node (RPL node) announces an IPv6 prefix covering the
+ addresses assigned to the ACP node via the AcpNodeName. The prefix
+ length depends on the addressing sub-scheme of the acp-address, /127
+ for the Zone Addressing Sub-Scheme and /112 or /120 for the Vlong
+ Addressing Sub-Scheme. See Section 6.11 for more details.
+
+ Every ACP node MUST install a black hole route (also known as a null
+ route) if there are unused parts of the ACP address space assigned to
+ the ACP node via its AcpNodeName. This is superseded by longer
+ prefixes assigned to interfaces for the address space actually used
+ by the node. For example, when the node has an ACP-Vlong-8 address
+ space, it installs a /120 black hole route. If it then only uses the
+ ACP address (first address from the space), for example, it would
+ assign that address via a /128 address prefix to the ACP loopback
+ interface (see Section 6.13.5.1). None of those longer prefixes are
+ announced into RPL.
+
+ For ACP-Manual address prefixes configured on an ACP node, for
+ example, for ACP connect subnets (see Section 8.1.1), the node
+ announces the /64 subnet prefix.
+
+6.12.1.12. Administrative Parameters
+
+ Administrative Preference ([RFC6550], Section 3.2.6 --to become
+ root): The preference is indicated in the DODAGPreference field of
+ DIO message.
+
+ Explicitly configured "root": 0b100
+
+ ACP registrar (default): 0b011
+
+ ACP connect (non-registrar): 0b010
+
+ Default: 0b001
+
+6.12.1.13. RPL Packet Information
+
+ RPI is not required in the ACP RPL profile for the following reasons.
+
+ One RPI option is the RPL Source Routing Header (SRH) ("An IPv6
+ Routing Header for Source Routes with the Routing Protocol for
+ Low-Power and Lossy Networks (RPL)" [RFC6554]), which is not
+ necessary because the ACP RPL profile uses storing mode where each
+ hop has the necessary next-hop forwarding information.
+
+ The simpler RPL Option header "The Routing Protocol for Low-Power and
+ Lossy Networks (RPL) Option for Carrying RPL Information in
+ Data-Plane Datagrams" [RFC6553] is also not necessary in this
+ profile, because it uses a single RPL instance and data-path
+ validation is also not used.
+
+6.12.1.14. Unknown Destinations
+
+ Because RPL minimizes the size of the routing and forwarding table,
+ prefixes reachable through the same interface as the RPL root are not
+ known on every ACP node. Therefore, traffic to unknown destination
+ addresses can only be discovered at the RPL root. The RPL root
+ SHOULD have attach-safe mechanisms to operationally discover and log
+ such packets.
+
+ As this requirement places additional constraints on the data plane
+ functionality of the RPL root, it does not apply to "normal" nodes
+ that are not configured to have special functionality (i.e., the
+ administrative parameter from Section 6.12.1.12 has value 0b001). If
+ the ACP network is degraded to the point where there are no nodes
+ that could be configured as root, registrar, or ACP connect nodes, it
+ is possible that the RPL root (and thus the ACP as a whole) would be
+ unable to detect traffic to unknown destinations. However, in the
+ absence of nodes with administrative preference other than 0b001,
+ there is also unlikely to be a way to get diagnostic information out
+ of the ACP, so detection of traffic to unknown destinations would not
+ be actionable anyway.
+
+6.13. General ACP Considerations
+
+ Since channels are established between adjacent neighbors by default,
+ the resulting overlay network does hop-by-hop encryption. Each node
+ decrypts incoming traffic from the ACP and encrypts outgoing traffic
+ to its neighbors in the ACP. Routing is discussed in Section 6.12.
+
+6.13.1. Performance
+
+ There are no performance requirements for ACP implementations defined
+ in this document because the performance requirements depend on the
+ intended use case. It is expected that a fully autonomic node with a
+ wide range of ASA can require high forwarding plane performance in
+ the ACP, for example, for telemetry. Implementations of ACP that
+ solely support traditional or SDN-style use cases can benefit from
+ ACP at lower performance, especially if the ACP is used only for
+ critical operations, e.g., when the data plane is not available. The
+ design of the ACP as specified in this document is intended to
+ support a wide range of performance options: it is intended to allow
+ software-only implementations at potentially low performance, but the
+ design can also support high-performance options. See [RFC8368] for
+ more details.
+
+6.13.2. Addressing of Secure Channels
+
+ In order to be independent of the data plane routing and addressing,
+ the ACP secure channels discovered via GRASP use IPv6 link-local
+ addresses between adjacent neighbors. Note: Section 8.2 specifies
+ extensions in which secure channels are configured tunnels operating
+ over the data plane, so those secure channels cannot be independent
+ of the data plane.
+
+ To avoid impacting the operations of the IPv6 (link-local) interface/
+ address used for ACP channels when configuring the data plane,
+ appropriate implementation considerations are required. If the IPv6
+ interface/link-local address is shared with the data plane, it needs
+ to be impossible to unconfigure and/or disable it through
+ configuration. Instead of sharing the IPv6 interface/link-local
+ address, a separate (virtual) interface with a separate IPv6 link-
+ local address can be used. For example, the ACP interface could be
+ run over a separate MAC address of an underlying L2 (Ethernet)
+ interface. For more details and options, see Appendix A.9.2.
+
+ Note that other (nonideal) implementation choices may introduce
+ additional, undesired dependencies against the data plane, for
+ example, shared code and configuration of the secure channel
+ protocols (IPsec and/or DTLS).
+
+6.13.3. MTU
+
+ The MTU for ACP secure channels MUST be derived locally from the
+ underlying link MTU minus the secure channel encapsulation overhead.
+
+ ACP secure channel protocols do not need to perform MTU discovery
+ because they are built across L2 adjacencies: the MTUs on both sides
+ connecting to the L2 connection are assumed to be consistent.
+ Extensions to ACP where the ACP is, for example, tunneled need to
+ consider how to guarantee MTU consistency. This is an issue of
+ tunnels, not an issue of running the ACP across a tunnel. Transport
+ stacks running across ACP can perform normal PMTUD (Path MTU
+ Discovery). Because the ACP is meant to prioritize reliability over
+ performance, they MAY opt to only expect IPv6 minimum MTU (1280
+ octets) to avoid running into PMTUD implementation bugs or underlying
+ link MTU mismatch problems.
+
+6.13.4. Multiple Links between Nodes
+
+ If two nodes are connected via several links, the ACP SHOULD be
+ established across every link, but it is possible to establish the
+ ACP only on a subset of links. Having an ACP channel on every link
+ has a number of advantages, for example, it allows for a faster
+ failover in case of link failure, and it reflects the physical
+ topology more closely. Using a subset of links (for example, a
+ single link), reduces resource consumption on the node because state
+ needs to be kept per ACP channel. The negotiation scheme explained
+ in Section 6.6 allows the Decider (the node with the higher ACP
+ address) to drop all but the desired ACP channels to the Follower,
+ and the Follower will not retry to build these secure channels from
+ its side unless the Decider appears with a previously unknown GRASP
+ announcement (e.g., on a different link or with a different address
+ announced in GRASP).
+
+6.13.5. ACP Interfaces
+
+ Conceptually, the ACP VRF has two types of interfaces: the "ACP
+ loopback interface(s)" to which the ACP ULA address(es) are assigned
+ and the "ACP virtual interfaces" that are mapped to the ACP secure
+ channels.
+
+6.13.5.1. ACP Loopback Interfaces
+
+ For autonomous operations of the ACP, as described in Section 6 and
+ Section 7, the ACP node uses the first address from the N bit ACP
+ prefix assigned to the node. N = (128 - number of Vbits of the ACP
+ address). This address is assigned with an address prefix of N or
+ larger to a loopback interface.
+
+ Other addresses from the prefix can be used by the ACP of the node as
+ desired. The autonomous operations of the ACP do not require
+ additional global-scope IPv6 addresses, they are instead intended for
+ ASA or non-autonomous functions. Components of the ACP that are not
+ fully autonomic, such as ACP connect interfaces (see Figure 14), may
+ also introduce additional global-scope IPv6 addresses on other types
+ of interfaces to the ACP.
+
+ The use of loopback interfaces for global-scope addresses is common
+ operational configuration practice on routers, for example, in
+ Internal BGP (IBGP) connections since BGP4 (see "A Border Gateway
+ Protocol 4 (BGP-4)" [RFC1654]) or earlier. The ACP adopts and
+ automates this operational practice.
+
+ A loopback interface for use with the ACP as described above is an
+ interface that behaves according to Section 4 of "Default Address
+ Selection for Internet Protocol Version 6 (IPv6)" [RFC6724],
+ paragraph 2. Packets sent by the host of the node from the loopback
+ interface behave as if they are looped back by the interface so that
+ they look as if they originated from the loopback interface, are then
+ received by the node and forwarded by it towards the destination.
+
+ The term "loopback only" indicates this behavior, but not the actual
+ name of the interface type chosen in an actual implementation. A
+ loopback interface for use with the ACP can be a virtual and/or
+ software construct without any associated hardware, or it can be a
+ hardware interface operating in loopback mode.
+
+ A loopback interface used for the ACP MUST NOT have connectivity to
+ other nodes.
+
+ The following list reviews the reasons for the choice of loopback
+ addresses for ACP addresses, which is based on the IPv6 address
+ architecture and common challenges:
+
+ 1. IPv6 addresses are assigned to interfaces, not nodes. IPv6
+ continues the IPv4 model that a subnet prefix is associated with
+ one link, see Section 2.1 of "IP Version 6 Addressing
+ Architecture" [RFC4291].
+
+ 2. IPv6 implementations commonly do not allow assignment of the same
+ IPv6 global-scope address in the same VRF to more than one
+ interface.
+
+ 3. Global-scope addresses assigned to interfaces that connect to
+ other nodes (external interfaces) may not be stable addresses for
+ communications because any such interface could fail due to
+ reasons external to the node. This could render the addresses
+ assigned to that interface unusable.
+
+ 4. If failure of the subnet does not bring down the interface and
+ make the addresses unusable, it could result in unreachability of
+ the address because the shortest path to the node might go
+ through one of the other nodes on the same subnet, which could
+ equally consider the subnet to be operational even though it is
+ not.
+
+ 5. Many OAM service implementations on routers cannot deal with more
+ than one peer address, often because they already expect that a
+ single loopback address can be used, especially to provide a
+ stable address under failure of external interfaces or links.
+
+ 6. Even when an application supports multiple addresses to a peer,
+ it can only use one address at a time for a connection with the
+ most widely deployed transport protocols, TCP and UDP. While
+ "TCP Extensions for Multipath Operation with Multiple Addresses"
+ [RFC6824]/[RFC8684] solves this problem, it is not widely adopted
+ by implementations of router OAM services.
+
+ 7. To completely autonomously assign global-scope addresses to
+ subnets connecting to other nodes, it would be necessary for
+ every node to have an amount of prefix address space on the order
+ of the maximum number of subnets that the node could connect to,
+ and then the node would have to negotiate with adjacent nodes
+ across those subnets which address space to use for each subnet.
+
+ 8. Using global-scope addresses for subnets between nodes is
+ unnecessary if those subnets only connect routers, such as ACP
+ secure channels, because they can communicate to remote nodes via
+ their global-scope loopback addresses. Using global-scope
+ addresses for those external subnets is therefore wasteful for
+ the address space and also unnecessarily increases the size of
+ the routing and forwarding tables, which, especially for the ACP,
+ is highly undesirable because it should attempt to minimize the
+ per-node overhead of the ACP VRF.
+
+ 9. For all these reasons, the ACP addressing sub-schemes do not
+ consider ACP addresses for subnets connecting ACP nodes.
+
+ Note that "Segment Routing Architecture" [RFC8402] introduces the
+ term Node-SID to refer to IGP prefix segments that identify a
+ specific router, for example, on a loopback interface. An ACP
+ loopback address prefix may similarly be called an ACP Node
+ Identifier.
+
+6.13.5.2. ACP Virtual Interfaces
+
+ Any ACP secure channel to another ACP node is mapped to ACP virtual
+ interfaces in one of the following ways. This is independent of the
+ chosen secure channel protocol (IPsec, DTLS, or other future
+ protocol, either standardized or not).
+
+ Note that all the considerations described here assume point-to-point
+ secure channel associations. Mapping multiparty secure channel
+ associations, such as "The Group Domain of Interpretation" [RFC6407],
+ is out of scope.
+
+6.13.5.2.1. ACP Point-to-Point Virtual Interfaces
+
+ In this option, each ACP secure channel is mapped to a separate
+ point-to-point ACP virtual interface. If a physical subnet has more
+ than two ACP-capable nodes (in the same domain), this implementation
+ approach will lead to a full mesh of ACP virtual interfaces between
+ them.
+
+ When the secure channel protocol determines a peer to be dead, this
+ SHOULD result in indicating link breakage to trigger RPL DODAG
+ repair, see Section 6.12.1.7.
+
+6.13.5.2.2. ACP Multi-Access Virtual Interfaces
+
+ In a more advanced implementation approach, the ACP will construct a
+ single multi-access ACP virtual interface for all ACP secure channels
+ to ACP-capable nodes reachable across the same underlying (physical)
+ subnet. IPv6 link-local multicast packets sent to an ACP multi-
+ access virtual interface are replicated to every ACP secure channel
+ mapped to the ACP multi-access virtual interface. IPv6 unicast
+ packets sent to an ACP multi-access virtual interface are sent to the
+ ACP secure channel that belongs to the ACP neighbor that is the next
+ hop in the ACP forwarding table entry used to reach the packets'
+ destination address.
+
+ When the secure channel protocol determines that a peer is dead for a
+ secure channel mapped to an ACP multi-access virtual interface, this
+ SHOULD result in signaling breakage of that peer to RPL, so it can
+ trigger RPL DODAG repair, see Section 6.12.1.7.
+
+ There is no requirement for all ACP nodes on the same multi-access
+ subnet to use the same type of ACP virtual interface. This is purely
+ a node-local decision.
+
+ ACP nodes MUST perform standard IPv6 operations across ACP virtual
+ interfaces including SLAAC [RFC4862] to assign their IPv6 link-local
+ address on the ACP virtual interface and ND ("Neighbor Discovery for
+ IP version 6 (IPv6)" [RFC4861]) to discover which IPv6 link-local
+ neighbor address belongs to which ACP secure channel mapped to the
+ ACP virtual interface. This is independent of whether the ACP
+ virtual interface is point-to-point or multi-access.
+
+ Optimistic Duplicate Address Detection (DAD) according to "Optimistic
+ Duplicate Address Detection (DAD) for IPv6" [RFC4429] is RECOMMENDED
+ because the likelihood for duplicates between ACP nodes is highly
+ improbable as long as the address can be formed from a globally
+ unique, locally assigned identifier (e.g., EUI-48/EUI-64, see below).
+
+ ACP nodes MAY reduce the amount of link-local IPv6 multicast packets
+ from ND by learning the IPv6 link-local neighbor address to ACP
+ secure channel mapping from other messages, such as the source
+ address of IPv6 link-local multicast RPL messages, and therefore
+ forego the need to send Neighbor Solicitation messages.
+
+ The ACP virtual interface IPv6 link-local address can be derived from
+ any appropriate local mechanism, such as node-local EUI-48 or EUI-64.
+ It MUST NOT depend on something that is attackable from the data
+ plane, such as the IPv6 link-local address of the underlying physical
+ interface, which can be attacked by SLAAC, or parameters of the
+ secure channel encapsulation header that may not be protected by the
+ secure channel mechanism.
+
+ The link-layer address of an ACP virtual interface is the address
+ used for the underlying interface across which the secure tunnels are
+ built, typically Ethernet addresses. Because unicast IPv6 packets
+ sent to an ACP virtual interface are not sent to a link-layer
+ destination address but rather to an ACP secure channel, the link-
+ layer address fields SHOULD be ignored on reception, and instead the
+ ACP secure channel from which the message was received should be
+ remembered.
+
+ Multi-access ACP virtual interfaces are preferable implementations
+ when the underlying interface is a (broadcast) multi-access subnet
+ because they reflect the presence of the underlying multi-access
+ subnet to the virtual interfaces of the ACP. This makes it, for
+ example, simpler to build services with topology awareness inside the
+ ACP VRF in the same way as they could have been built running
+ natively on the multi-access interfaces.
+
+ Consider also the impact of point-to-point vs. multi-access virtual
+ interfaces on the efficiency of flooding via link-local multicast
+ messages.
+
+ Assume a LAN with three ACP neighbors, Alice, Bob, and Carol.
+ Alice's ACP GRASP wants to send a link-local GRASP multicast message
+ to Bob and Carol. If Alice's ACP emulates the LAN as per-peer,
+ point-to-point virtual interfaces, one to Bob and one to Carol,
+ Alice's ACP GRASP will send two copies of multicast GRASP messages:
+ one to Bob and one to Carol. If Alice's ACP emulates a LAN via a
+ multipoint virtual interface, Alice's ACP GRASP will send one packet
+ to that interface, and the ACP multipoint virtual interface will
+ replicate the packet to each secure channel, one to Bob, one to
+ Carol. The result is the same. The difference happens when Bob and
+ Carol receive their packets. If they use ACP point-to-point virtual
+ interfaces, their GRASP instance would forward the packet from Alice
+ to each other as part of the GRASP flooding procedure. These packets
+ are unnecessary and would be discarded by GRASP on receipt as
+ duplicates (by use of the GRASP Session ID). If Bob and Carol's ACP
+ emulated a multi-access virtual interface, then this would not happen
+ because GRASP's flooding procedure does not replicate packets back to
+ the interface from which they were received.
+
+ Note that link-local GRASP multicast messages are not sent directly
+ as IPv6 link-local multicast UDP messages to ACP virtual interfaces,
+ but instead to ACP GRASP virtual interfaces that are layered on top
+ of ACP virtual interfaces to add TCP reliability to link-local
+ multicast GRASP messages. Nevertheless, these ACP GRASP virtual
+ interfaces perform the same replication of messages and therefore
+ have the same impact on flooding. See Section 6.9.2 for more
+ details.
+
+ RPL does support operations and correct routing table construction
+ across non-broadcast multi-access (NBMA) subnets. This is common
+ when using many radio technologies. When such NBMA subnets are used,
+ they MUST NOT be represented as ACP multi-access virtual interfaces
+ because the replication of IPv6 link-local multicast messages will
+ not reach all NBMA subnet neighbors. As a result, GRASP message
+ flooding would fail. Instead, each ACP secure channel across such an
+ interface MUST be represented as an ACP point-to-point virtual
+ interface. See also Appendix A.9.4.
+
+ Care needs to be taken when creating multi-access ACP virtual
+ interfaces across ACP secure channels between ACP nodes in different
+ domains or routing subdomains. If, for example, future inter-domain
+ ACP policies are defined as "peer-to-peer" policies, it is easier to
+ create ACP point-to-point virtual interfaces for these inter-domain
+ secure channels.
+
+7. ACP Support on L2 Switches/Ports (Normative)
+
+7.1. Why (Benefits of ACP on L2 Switches)
+
+ ANrtr1 ------ ANswitch1 --- ANswitch2 ------- ANrtr2
+ .../ \ \ ...
+ ANrtrM ------ \ ------- ANrtrN
+ ANswitchM ...
+
+ Figure 13: Topology with L2 ACP Switches
+
+ Consider a large L2 LAN with routers ANrtr1 through ANrtrN connected
+ via some topology of L2 switches. Examples include large enterprise
+ campus networks with an L2 core, IoT networks, or broadband
+ aggregation networks, which often have a multilevel L2-switched
+ topology.
+
+ If the discovery protocol used for the ACP operates at the subnet
+ level, every ACP router will see all other ACP routers on the LAN as
+ neighbors, and a full mesh of ACP channels will be built. If some or
+ all of the AN switches are autonomic with the same discovery
+ protocol, then the full mesh would include those switches as well.
+
+ A full mesh of ACP connections can create fundamental scale
+ challenges. The number of security associations of the secure
+ channel protocols will likely not scale arbitrarily, especially when
+ they leverage platform-accelerated encryption/decryption. Likewise,
+ any other ACP operations (such as routing) need to scale to the
+ number of direct ACP neighbors. An ACP router with just four
+ physical interfaces might be deployed into a LAN with hundreds of
+ neighbors connected via switches. Introducing such a new,
+ unpredictable scaling factor requirement makes it harder to support
+ the ACP on arbitrary platforms and in arbitrary deployments.
+
+ Predictable scaling requirements for ACP neighbors can most easily be
+ achieved if, in topologies such as these, ACP-capable L2 switches can
+ ensure that discovery messages terminate on them so that neighboring
+ ACP routers and switches will only find the physically connected ACP
+ L2 switches as their candidate ACP neighbors. With such a discovery
+ mechanism in place, the ACP and its security associations will only
+ need to scale to the number of physical interfaces instead of a
+ potentially much larger number of "LAN-connected" neighbors, and the
+ ACP topology will follow directly the physical topology, something
+ that can then also be leveraged in management operations or by ASAs.
+
+ In the example above, consider that ANswitch1 and ANswitchM are ACP
+ capable, and ANswitch2 is not ACP capable. The desired ACP topology
+ is that ANrtr1 and ANrtrM only have an ACP connection to ANswitch1,
+ and that ANswitch1, ANrtr2, and ANrtrN have a full mesh of ACP
+ connections amongst each other. ANswitch1 also has an ACP connection
+ with ANswitchM, and ANswitchM has ACP connections to anything else
+ behind it.
+
+7.2. How (per L2 Port DULL GRASP)
+
+ To support ACP on L2 switches or L2-switched ports of an L3 device,
+ it is necessary to make those L2 ports look like L3 interfaces for
+ the ACP implementation. This primarily involves the creation of a
+ separate DULL GRASP instance/domain on every such L2 port. Because
+ GRASP has a dedicated link-local IPv6 multicast address
+ (ALL_GRASP_NEIGHBORS), it is sufficient that all packets for this
+ address are extracted at the port level and passed to that DULL GRASP
+ instance. Likewise, the IPv6 link-local multicast packets sent by
+ that DULL GRASP instance need to be sent only towards the L2 port for
+ this DULL GRASP instance (instead of being flooded across all ports
+ of the VLAN to which the port belongs).
+
+ When the ports/interfaces across which the ACP is expected to operate
+ in an ACP-aware L2 switch or L2/L3 switch/router are L2-bridged,
+ packets for the ALL_GRASP_NEIGHBORS multicast address MUST never be
+ forwarded between these ports. If MLD snooping is used, it MUST be
+ prohibited from bridging packets for the ALL_GRASP_NEIGHBORS IPv6
+ multicast address.
+
+ On hybrid L2/L3 switches, multiple L2 ports are assigned to a single
+ L3 VLAN interface. With the aforementioned changes for DULL GRASP,
+ ACP can simply operate on the L3 VLAN interfaces, so no further
+ (hardware) forwarding changes are required to make ACP operate on L2
+ ports. This is possible because the ACP secure channel protocols
+ only use link-local IPv6 unicast packets, and these packets will be
+ sent to the correct L2 port towards the peer by the VLAN logic of the
+ device.
+
+ This is sufficient when P2P ACP virtual interfaces are established to
+ every ACP peer. When it is desired to create multi-access ACP
+ virtual interfaces (see Section 6.13.5.2.2), it is REQUIRED not to
+ coalesce all the ACP secure channels on the same L3 VLAN interface,
+ but only all those on the same L2 port.
+
+ If VLAN tagging is used, then the logic described above only applies
+ to untagged GRASP packets. For the purpose of ACP neighbor discovery
+ via GRASP, no VLAN-tagged packets SHOULD be sent or received. In a
+ hybrid L2/L3 switch, each VLAN would therefore only create ACP
+ adjacencies across those ports where the VLAN is carried untagged.
+
+ As a result, the simple logic is that ACP secure channels would
+ operate over the same L3 interfaces that present a single, flat
+ bridged network across all routers, but because DULL GRASP is
+ separated on a per-port basis, no full mesh of ACP secure channels is
+ created, but only per-port ACP secure channels to per-port
+ L2-adjacent ACP node neighbors.
+
+ For example, in the above picture, ANswitch1 would run separate DULL
+ GRASP instances on its ports to ANrtr1, ANswitch2, and ANswitchI,
+ even though all three ports may be in the data plane in the same
+ (V)LAN and perform L2 switching between these ports, ANswitch1 would
+ perform ACP L3 routing between them.
+
+ The description in the previous paragraph is specifically meant to
+ illustrate that, on hybrid L3/L2 devices that are common in
+ enterprise, IoT, and broadband aggregation, there is only the GRASP
+ packet extraction (by Ethernet address) and GRASP link-local
+ multicast per L2-port packet injection that has to consider L2 ports
+ at the hardware-forwarding level. The remaining operations are
+ purely ACP control plane and setup of secure channels across the L3
+ interface. This hopefully makes support for per-L2 port ACP on those
+ hybrid devices easy.
+
+ In devices without such a mix of L2 port/interfaces and L3 interfaces
+ (to terminate any transport-layer connections), implementation
+ details will differ. Logically and most simply every L2 port is
+ considered and used as a separate L3 subnet for all ACP operations.
+ The fact that the ACP only requires IPv6 link-local unicast and
+ multicast should make support for it on any type of L2 devices as
+ simple as possible.
+
+ A generic issue with ACP in L2-switched networks is the interaction
+ with the Spanning Tree Protocol (STP). Without further L2
+ enhancements, the ACP would run only across the active STP topology,
+ and the ACP would be interrupted and reconverge with STP changes.
+ Ideally, ACP peering SHOULD be built also across ports that are
+ blocked in STP so that the ACP does not depend on STP and can
+ continue to run unaffected across STP topology changes, where
+ reconvergence can be quite slow. The above described simple
+ implementation options are not sufficient to achieve this.
+
+8. Support for Non-ACP Components (Normative)
+
+8.1. ACP Connect
+
+8.1.1. Non-ACP Controller and/or Network Management System (NMS)
+
+ The ACP can be used by management systems, such as controllers or NMS
+ hosts, to connect to devices (or other type of nodes) through it.
+ For this, an NMS host needs to have access to the ACP. The ACP is a
+ self-protecting overlay network, which allows access only to trusted,
+ autonomic systems by default. Therefore, a traditional, non-ACP NMS
+ does not have access to the ACP by default, such as any other
+ external node.
+
+ If the NMS host is not autonomic, i.e., it does not support autonomic
+ negotiation of the ACP, then it can be brought into the ACP by
+ explicit configuration. To support connections to adjacent non-ACP
+ nodes, an ACP node SHOULD support "ACP connect" (sometimes also
+ called "autonomic connect").
+
+ "ACP connect" is an interface-level, configured workaround for
+ connection of trusted non-ACP nodes to the ACP. The ACP node on
+ which ACP connect is configured is called an "ACP edge node". With
+ ACP connect, the ACP is accessible from those non-ACP nodes (such as
+ NOC systems) on such an interface without those non-ACP nodes having
+ to support any ACP discovery or ACP channel setup. This is also
+ called "native" access to the ACP because, to those NOC systems, the
+ interface looks like a normal network interface without any ACP
+ secure channel that is encapsulating the traffic.
+
+ Data Plane "native" (no ACP)
+ .
+ +--------+ +----------------+ . +-------------+
+ | ACP | |ACP Edge Node | . | |
+ | Node | | | v | |
+ | |-------|...[ACP VRF]....+----------------| |+
+ | | ^ |. | | NOC Device ||
+ | | . | .[Data Plane]..+----------------| "NMS hosts" ||
+ | | . | [ ] | . ^ | ||
+ +--------+ . +----------------+ . . +-------------+|
+ . . . +-------------+
+ . . .
+ Data Plane "native" . ACP "native" (unencrypted)
+ + ACP auto-negotiated . "ACP connect subnet"
+ and encrypted .
+ ACP connect interface
+ e.g., "VRF ACP native" (config)
+
+ Figure 14: ACP Connect
+
+ ACP connect has security consequences: all systems and processes
+ connected via ACP connect have access to all ACP nodes on the entire
+ ACP, without further authentication. Thus, the ACP connect interface
+ and the NOC systems connected to it need to be physically controlled
+ and/or secured. For this reason, the mechanisms described here
+ explicitly do not include options to allow for a non-ACP router to be
+ connected across an ACP connect interface and addresses behind such a
+ router routed inside the ACP.
+
+ Physically controlled and/or secured means that attackers cannot gain
+ access to the physical device hosting the ACP edge node, the physical
+ interfaces and links providing the ACP connect link, nor the physical
+ devices hosting the NOC device. In a simple case, ACP edge node and
+ NOC device are colocated in an access-controlled room, such as a NOC,
+ to which attackers cannot gain physical access.
+
+ An ACP connect interface provides exclusive access to only the ACP.
+ This is likely insufficient for many NMS hosts. Instead, they would
+ require a second "data plane" interface outside the ACP for
+ connections between the NMS host and administrators, or Internet-
+ based services, or for direct access to the data plane. The document
+ "Using Autonomic Control Plane for Stable Connectivity of Network
+ OAM" [RFC8368] explains in more detail how the ACP can be integrated
+ in a mixed NOC environment.
+
+ An ACP connect interface SHOULD use an IPv6 address/prefix from the
+ Manual Addressing Sub-Scheme (Section 6.11.4), letting the operator
+ configure, for example, only the Subnet-ID and having the node
+ automatically assign the remaining part of the prefix/address. It
+ SHOULD NOT use a prefix that is also routed outside the ACP so that
+ the addresses clearly indicate whether it is used inside the ACP or
+ not.
+
+ The prefix of ACP connect subnets MUST be distributed by the ACP edge
+ node into the ACP routing protocol, RPL. The NMS host MUST connect
+ to prefixes in the ACP routing table via its ACP connect interface.
+ In the simple case where the ACP uses only one ULA prefix, and all
+ ACP connect subnets have prefixes covered by that ULA prefix, NMS
+ hosts can rely on [RFC6724] to determine longest match prefix routes
+ towards its different interfaces, ACP and data plane. With
+ [RFC6724], the NMS host will select the ACP connect interface for all
+ addresses in the ACP because any ACP destination address is longest
+ matched by the address on the ACP connect interface. If the NMS
+ host's ACP connect interface uses another prefix, or if the ACP uses
+ multiple ULA prefixes, then the NMS host requires (static) routes
+ towards the ACP interface for these prefixes.
+
+ When an ACP edge node receives a packet from an ACP connect
+ interface, the ACP edge node MUST only forward the packet to the ACP
+ if the packet has an IPv6 source address from that interface (this is
+ sometimes called Reverse Path Forwarding (RPF) filtering). This
+ filtering rule MAY be changed through administrative measures. The
+ more any such administrative action enables reachability of non-ACP
+ nodes to the ACP, the more this may cause security issues.
+
+ To limit the security impact of ACP connect, nodes supporting it
+ SHOULD implement a security mechanism to allow configuration and/or
+ use of ACP connect interfaces only on nodes explicitly targeted to be
+ deployed with it (those in physically secure locations such as a
+ NOC). For example, the registrar could disable the ability to enable
+ ACP connect on devices during enrollment, and that property could
+ only be changed through reenrollment. See also Appendix A.9.5.
+
+ ACP edge nodes SHOULD have a configurable option to prohibit packets
+ with RPI headers (see Section 6.12.1.13) across an ACP connect
+ interface. These headers are outside the scope of the RPL profile in
+ this specification but may be used in future extensions of this
+ specification.
+
+8.1.2. Software Components
+
+ The previous section assumed that the ACP edge node and NOC devices
+ are separate physical devices and that the ACP connect interface is a
+ physical network connection. This section discusses the implication
+ when these components are instead software components running on a
+ single physical device.
+
+ The ACP connect mechanism can be used not only to connect physically
+ external systems (NMS hosts) to the ACP but also other applications,
+ containers, or virtual machines. In fact, one possible way to
+ eliminate the security issue of the external ACP connect interface is
+ to colocate an ACP edge node and an NMS host by making one a virtual
+ machine or container inside the other; therefore converting the
+ unprotected external ACP subnet into an internal virtual subnet in a
+ single device. This would ultimately result in a fully ACP-enabled
+ NMS host with minimum impact to the NMS host's software architecture.
+ This approach is not limited to NMS hosts but could equally be
+ applied to devices consisting of one or more VNF (virtual network
+ functions): an internal virtual subnet connecting out-of-band
+ management interfaces of the VNFs to an ACP edge router VNF.
+
+ The core requirement is that the software components need to have a
+ network stack that permits access to the ACP and optionally also to
+ the data plane. Like in the physical setup for NMS hosts, this can
+ be realized via two internal virtual subnets: one that connects to
+ the ACP (which could be a container or virtual machine by itself),
+ and one (or more) connecting to the data plane.
+
+ This "internal" use of the ACP connect approach should not be
+ considered to be a "workaround" because, in this case, it is possible
+ to build a correct security model: it is not necessary to rely on
+ unprovable, external physical security mechanisms as in the case of
+ external NMS hosts. Instead, the orchestration of the ACP, the
+ virtual subnets, and the software components can be done by trusted
+ software that could be considered to be part of the ANI (or even an
+ extended ACP). This software component is responsible for ensuring
+ that only trusted software components will get access to that virtual
+ subnet and that only even more trusted software components will get
+ access to both the ACP virtual subnet and the data plane (because
+ those ACP users could leak traffic between ACP and data plane). This
+ trust could be established, for example, through cryptographic means
+ such as signed software packages.
+
+8.1.3. Autoconfiguration
+
+ ACP edge nodes, NMS hosts, and software components that, as described
+ in the previous section, are meant to be composed via virtual
+ interfaces SHOULD support SLAAC [RFC4862] on the ACP connect subnet
+ and route autoconfiguration according to "Default Router Preferences
+ and More-Specific Routes" [RFC4191].
+
+ The ACP edge node acts as the router towards the ACP on the ACP
+ connect subnet, providing the (auto)configured prefix for the ACP
+ connect subnet and (auto)configured routes to the ACP to NMS hosts
+ and/or software components.
+
+ The ACP edge node uses the Route Information Option (RIO) of
+ [RFC4191] to announce aggregated prefixes for address prefixes used
+ in the ACP (with normal RIO lifetimes). In addition, the ACP edge
+ node also uses a RIO to announce the default route (::/0) with a
+ lifetime of 0.
+
+ These RIOs allow the connecting of type C hosts to the ACP via an ACP
+ connect subnet on one interface and another network (Data Plane and/
+ or NMS network) on the same or another interface of the type C host,
+ relying on routers other than the ACP edge node. The RIOs ensure
+ that these hosts will only route the prefixes used in the ACP to the
+ ACP edge node.
+
+ Type A and B hosts ignore the RIOs and will consider the ACP node to
+ be their default router for all destinations. This is sufficient
+ when the type A or type B host only needs to connect to the ACP but
+ not to other networks. Attaching a type A or type B host to both the
+ ACP and other networks requires explicit ACP prefix route
+ configuration on either the host or the combined ACP and data plane
+ interface on the ACP edge node, see Section 8.1.4.
+
+ Aggregated prefix means that the ACP edge node needs to only announce
+ the /48 ULA prefixes used in the ACP but none of the actual /64
+ (Manual Addressing Sub-Scheme), /127 (Zone Addressing Sub-Scheme),
+ /112 or /120 (Vlong Addressing Sub-Scheme) routes of actual ACP
+ nodes. If ACP interfaces are configured with non-ULA prefixes, then
+ those prefixes cannot be aggregated without further configured policy
+ on the ACP edge node. This explains the above recommendation to use
+ ACP ULA prefixes for ACP connect interfaces: they allow for a shorter
+ list of prefixes to be signaled via [RFC4191] to NMS hosts and
+ software components.
+
+ The ACP edge nodes that have a Vlong ACP address MAY allocate a
+ subset of their /112 or /120 address prefix to ACP connect
+ interface(s) to eliminate the need to non-autonomically configure
+ and/or provision the address prefixes for such ACP connect
+ interfaces.
+
+8.1.4. Combined ACP and Data Plane Interface (VRF Select)
+
+ Combined ACP and data plane interface
+ .
+ +--------+ +--------------------+ . +--------------+
+ | ACP | |ACP Edge No | . | NMS Host(s) |
+ | Node | | | . | / Software |
+ | | | [ACP ]. | . | |+
+ | | | .[VRF ] .[VRF ] | v | "ACP Address"||
+ | +-------+. .[Select].+--------+ "Data Plane ||
+ | | ^ | .[Data ]. | | Address(es)"||
+ | | . | [Plane] | | ||
+ | | . | [ ] | +--------------+|
+ +--------+ . +--------------------+ +--------------+
+ .
+ Data plane "native" and + ACP auto-negotiated/encrypted
+
+ Figure 15: VRF Select
+
+ Using two physical and/or virtual subnets (and therefore interfaces)
+ to NMS hosts (as per Section 8.1.1) or software (as per
+ Section 8.1.2) may be seen as additional complexity, for example,
+ with legacy NMS hosts that support only one IP interface, or it may
+ be insufficient to support type A or type B hosts [RFC4191] (see
+ Section 8.1.3).
+
+ To provide a single subnet to both the ACP and Data plane, the ACP
+ edge node needs to demultiplex packets from NMS hosts into ACP VRF
+ and data plane. This is sometimes called "VRF select". If the ACP
+ VRF has no overlapping IPv6 addresses with the data plane (it should
+ have no overlapping addresses), then this function can use the IPv6
+ destination address. The problem is source address selection on the
+ NMS host(s) according to [RFC6724].
+
+ Consider the simple case: the ACP uses only one ULA prefix, and the
+ ACP IPv6 prefix for the combined ACP and data plane interface is
+ covered by that ULA prefix. The ACP edge node announces both the ACP
+ IPv6 prefix and one (or more) prefixes for the data plane. Without
+ further policy configurations on the NMS host(s), it may select its
+ ACP address as a source address for data plane ULA destinations
+ because of Rule 8 (Section 5 of [RFC6724]). The ACP edge node can
+ pass on the packet to the data plane, but the ACP source address
+ should not be used for data plane traffic, and return traffic may
+ fail.
+
+ If the ACP carries multiple ULA prefixes or non-ULA ACP connect
+ prefixes, then the correct source address selection becomes even more
+ problematic.
+
+ With separate ACP connect and data plane subnets and prefix
+ announcements [RFC4191] that are to be routed across the ACP connect
+ interface, the source address selection of Rule 5 (use address of
+ outgoing interface) (Section 5 of [RFC6724]) will be used, so that
+ above problems do not occur, even in more complex cases of multiple
+ ULA and non-ULA prefixes in the ACP routing table.
+
+ To achieve the same behavior with a combined ACP and data plane
+ interface, the ACP edge node needs to behave as two separate routers
+ on the interface: one link-local IPv6 address/router for its ACP
+ reachability, and one link-local IPv6 address/router for its data
+ plane reachability. The Router Advertisements for both are as
+ described in Section 8.1.3: for the ACP, the ACP prefix is announced
+ together with the prefix option [RFC4191] routed across the ACP, and
+ the lifetime is set to zero to disqualify this next hop as a default
+ router. For the data plane, the data plane prefix(es) are announced
+ together with whatever default router parameters are used for the
+ data plane.
+
+ As a result, source address selection Rule 5.5 (Section 5 of
+ [RFC6724]) may result in the same correct source address selection
+ behavior of NMS hosts without further configuration as the separate
+ ACP connect and data plane interfaces on the host. As described in
+ the text for Rule 5.5 (Section 5 of [RFC6724]), this is only a MAY
+ because IPv6 hosts are not required to track next-hop information.
+ If an NMS host does not do this, then separate ACP connect and data
+ plane interfaces are the preferable method of attachment. Hosts
+ implementing "First-Hop Router Selection by Hosts in a Multi-Prefix
+ Network" [RFC8028] should (instead of may) implement Rule 5.5
+ (Section 5 of [RFC6724]), so it is preferred for hosts to support
+ [RFC8028].
+
+ ACP edge nodes MAY support the combined ACP and data plane interface.
+
+8.1.5. Use of GRASP
+
+ GRASP can and should be possible to use across ACP connect
+ interfaces, especially in the architecturally correct solution when
+ it is used as a mechanism to connect software (e.g., ASA or legacy
+ NMS applications) to the ACP.
+
+ Given how the ACP is the security and transport substrate for GRASP,
+ the requirements are that those devices connected via ACP connect are
+ equivalently (if not better) secured against attacks than ACP nodes
+ that do not use ACP connect, and they run only software that is
+ equally (if not better) protected, known (or trusted) not to be
+ malicious, and accordingly designed to isolate access to the ACP
+ against external equipment.
+
+ The difference in security is that cryptographic security of the ACP
+ secure channel is replaced by required physical security and/or
+ control of the network connection between an ACP edge node and the
+ NMS or other host reachable via the ACP connect interface. See
+ Section 8.1.1.
+
+ When using the combined ACP and data plane interface, care has to be
+ taken that only GRASP messages received from software or NMS hosts
+ and intended for the ACP GRASP domain are forwarded by ACP edge
+ nodes. Currently there is no definition for a GRASP security and
+ transport substrate beside the ACP, so there is no definition how
+ such software/NMS host could participate in two separate GRASP
+ domains across the same subnet (ACP and data plane domains).
+ Currently it is assumed that all GRASP packets on a combined ACP and
+ data plane interface belong to the GRASP ACP domain. They SHOULD all
+ use the ACP IPv6 addresses of the software/NMS hosts. The link-local
+ IPv6 addresses of software/NMS hosts (used for GRASP M_DISCOVERY and
+ M_FLOOD messages) are also assumed to belong to the ACP address
+ space.
+
+8.2. Connecting ACP Islands over Non-ACP L3 Networks (Remote ACP
+ Neighbors)
+
+ Not all nodes in a network may support the ACP. If non-ACP L2
+ devices are between ACP nodes, the ACP will work across them since it
+ is IP based. However, the autonomic discovery of ACP neighbors via
+ DULL GRASP is only intended to work across L2 connections, so it is
+ not sufficient to autonomically create ACP connections across non-ACP
+ L3 devices.
+
+8.2.1. Configured Remote ACP Neighbor
+
+ On the ACP node, remote ACP neighbors are configured explicitly. The
+ parameters of such a "connection" are described in the following
+ ABNF. The syntax shown is non-normative (as there are no standards
+ for configuration) but only meant to illustrate the parameters and
+ which ones can be optional.
+
+ connection = method "," local-addr "," remote-addr [ "," pmtu ]
+ method = "any"
+ / ( "IKEv2" [ ":" port ] )
+ / ( "DTLS" [ ":" port ] )
+ port = 1*DIGIT
+ local-addr = [ address [ ":" vrf ] ]
+ remote-addr = address
+ address = "any"
+ / IPv4address / IPv6address ; From [RFC5954]
+ vrf = system-dependent ; Name of VRF for local-address
+
+ Figure 16: Parameters for Remote ACP Neighbors
+
+ Explicit configuration of a remote peer according to this ABNF
+ provides all the information to build a secure channel without
+ requiring a tunnel to that peer and running DULL GRASP inside of it.
+
+ The configuration includes the parameters otherwise signaled via DULL
+ GRASP: local address, remote (peer) locator, and method. The
+ differences over DULL GRASP local neighbor discovery and secure
+ channel creation are as follows:
+
+ * The local and remote address can be IPv4 or IPv6 and are typically
+ global-scope addresses.
+
+ * The VRF across which the connection is built (and in which local-
+ addr exists) can be specified. If vrf is not specified, it is the
+ default VRF on the node. In DULL GRASP, the VRF is implied by the
+ interface across which DULL GRASP operates.
+
+ * If local address is "any", the local address used when initiating
+ a secure channel connection is decided by source address selection
+ ([RFC6724] for IPv6). As a responder, the connection listens on
+ all addresses of the node in the selected VRF.
+
+ * Configuration of port is only required for methods where no
+ defaults exist (e.g., "DTLS").
+
+ * If the remote address is "any", the connection is only a
+ responder. It is a "hub" that can be used by multiple remote
+ peers to connect simultaneously -- without having to know or
+ configure their addresses, for example, a hub site for remote
+ "spoke" sites reachable over the Internet.
+
+ * The pmtu parameter should be configurable to overcome issues or
+ limitations of Path MTU Discovery (PMTUD).
+
+ * IKEv2/IPsec to remote peers should support the optional NAT
+ Traversal (NAT-T) procedures.
+
+8.2.2. Tunneled Remote ACP Neighbor
+
+ An IP-in-IP, GRE, or other form of preexisting tunnel is configured
+ between two remote ACP peers, and the virtual interfaces representing
+ the tunnel are configured for "ACP enable". This will enable IPv6
+ link-local addresses and DULL on this tunnel. As a result, the
+ tunnel is used for normal "L2 adjacent" candidate ACP neighbor
+ discovery with DULL and secure channel setup procedures described in
+ this document.
+
+ Tunneled Remote ACP Neighbor requires two encapsulations: the
+ configured tunnel and the secure channel inside of that tunnel. This
+ makes it in general less desirable than Configured Remote ACP
+ Neighbor. Benefits of tunnels are that it may be easier to implement
+ because there is no change to the ACP functionality - just running it
+ over a virtual (tunnel) interface instead of only native interfaces.
+ The tunnel itself may also provide PMTUD while the secure channel
+ method may not. Or the tunnel mechanism is permitted/possible
+ through some firewall while the secure channel method may not.
+
+ Tunneling using an insecure tunnel encapsulation increases, on
+ average, the risk of a MITM downgrade attack somewhere along the
+ underlay path. In such an attack, the MITM filters packets for all
+ but the most easily attacked ACP secure channel option to force use
+ of that option. ACP nodes supporting Tunneled Remote ACP Neighbors
+ SHOULD support configuration on such tunnel interfaces to restrict or
+ explicitly select the available ACP secure channel protocols (if the
+ ACP node supports more than one ACP secure channel protocol in the
+ first place).
+
+8.2.3. Summary
+
+ Configured and Tunneled Remote ACP Neighbors are less
+ "indestructible" than L2 adjacent ACP neighbors based on link-local
+ addressing, since they depend on more correct data plane operations,
+ such as routing and global addressing.
+
+ Nevertheless, these options may be crucial to incrementally deploying
+ the ACP, especially if it is meant to connect islands across the
+ Internet. Implementations SHOULD support at least Tunneled Remote
+ ACP Neighbors via GRE tunnels, which is likely the most common
+ router-to-router tunneling protocol in use today.
+
+9. ACP Operations (Informative)
+
+ The following sections document important operational aspects of the
+ ACP. They are not normative because they do not impact the
+ interoperability between components of the ACP, but they include
+ recommendations and/or requirements for the internal operational
+ model that are beneficial or necessary to achieve the desired use-
+ case benefits of the ACP (see Section 3).
+
+ * Section 9.1 describes the recommended capabilities of operator
+ diagnostics of ACP nodes.
+
+ * Section 9.2 describes at a high level how an ACP registrar needs
+ to work, what its configuration parameters are, and specific
+ issues impacting the choices of deployment design due to renewal
+ and revocation issues. It describes a model where ACP registrars
+ have their own sub-CA to provide the most distributed deployment
+ option for ACP registrars, and it describes considerations for
+ centralized policy control of ACP registrar operations.
+
+ * Section 9.3 describes suggested ACP node behavior and operational
+ interfaces (configuration options) to manage the ACP in so-called
+ greenfield devices (previously unconfigured) and brownfield
+ devices (preconfigured).
+
+ The recommendations and suggestions of this chapter were derived from
+ operational experience gained with a commercially available pre-
+ standard ACP implementation.
+
+9.1. ACP (and BRSKI) Diagnostics
+
+ Even though ACP and ANI in general are removing many manual
+ configuration mistakes through their automation, it is important to
+ provide good diagnostics for them.
+
+ Basic standardized diagnostics would require support for (YANG)
+ models representing the complete (auto)configuration and operational
+ state of all components: GRASP, ACP, and the infrastructure used by
+ them, such as TLS/DTLS, IPsec, certificates, TA, time, VRF, and so
+ on. While necessary, this is not sufficient.
+
+ Simply representing the state of components does not allow operators
+ to quickly take action -- unless they understand how to interpret the
+ data, which can mean a requirement for deep understanding of all
+ components and how they interact in the ACP/ANI.
+
+ Diagnostic supports should help to quickly answer the questions
+ operators are expected to ask, such as "Is the ACP working
+ correctly?" or "Why is there no ACP connection to a known neighboring
+ node?"
+
+ In current network management approaches, the logic to answer these
+ questions is most often built into centralized diagnostics software
+ that leverages the above mentioned data models. While this approach
+ is feasible for components utilizing the ANI, it is not sufficient to
+ diagnose the ANI itself:
+
+ * Developing the logic to identify common issues requires
+ operational experience with the components of the ANI. Letting
+ each management system define its own analysis is inefficient.
+
+ * When the ANI is not operating correctly, it may not be possible to
+ run diagnostics remotely because of missing connectivity. The ANI
+ should therefore have diagnostic capabilities available locally on
+ the nodes themselves.
+
+ * Certain operations are difficult or impossible to monitor in real
+ time, such as initial bootstrap issues in a network location where
+ no capabilities exist to attach local diagnostics. Therefore, it
+ is important to also define how to capture (log) diagnostics
+ locally for later retrieval. Ideally, these captures are also
+ nonvolatile so that they can survive extended power-off
+ conditions, for example, when a device that fails to be brought up
+ zero-touch is sent for diagnostics at a more appropriate location.
+
+ The simplest form of diagnostics for answering questions such as the
+ above is to represent the relevant information sequentially in
+ dependency order, so that the first unexpected and/or nonoperational
+ item is the most likely root cause, or just log and/or highlight that
+ item. For example:
+
+ Question: Is the ACP operational to accept neighbor connections?
+
+ * Check if the necessary configurations to make ACP/ANI operational
+ are correct (see Section 9.3 for a discussion of such commands).
+
+ * Does the system time look reasonable, or could it be the default
+ system time after battery failure of the clock chip? Certificate
+ checks depend on reasonable notion of time.
+
+ * Does the node have keying material, such as domain certificate, TA
+ certificates, etc.?
+
+ * If there is no keying material and the ANI is supported/enabled,
+ check the state of BRSKI (not detailed in this example).
+
+ * Check the validity of the domain certificate:
+
+ - Does the certificate validate against the TA?
+
+ - Has it been revoked?
+
+ - Was the last scheduled attempt to retrieve a CRL successful?
+ (e.g., do we know that our CRL information is up to date?)
+
+ - Is the certificate valid? The validity start time is in the
+ past, and the expiration time is in the future?
+
+ - Does the certificate have a correctly formatted acp-node-name
+ field?
+
+ * Was the ACP VRF successfully created?
+
+ * Is ACP enabled on one or more interfaces that are up and running?
+
+ If all of the above looks good, the ACP should be running "fine"
+ locally, but we did not check any ACP neighbor relationships.
+
+ Question: Why does the node not create a working ACP connection to a
+ neighbor on an interface?
+
+ * Is the interface physically up? Does it have an IPv6 link-local
+ address?
+
+ * Is it enabled for ACP?
+
+ * Do we successfully send DULL GRASP messages to the interface?
+ (Are there link-layer errors?)
+
+ * Do we receive DULL GRASP messages on the interface? If not, some
+ intervening L2 equipment performing bad MLD snooping could have
+ caused problems. Provide, e.g., diagnostics of the MLD querier
+ IPv6 and MAC address.
+
+ * Do we see the ACP objective in any DULL GRASP message from that
+ interface? Diagnose the supported secure channel methods.
+
+ * Do we know the MAC address of the neighbor with the ACP objective?
+ If not, diagnose SLAAC/ND state.
+
+ * When did we last attempt to build an ACP secure channel to the
+ neighbor?
+
+ * If it failed:
+
+ - Did the neighbor close the connection on us, or did we close
+ the connection on it because the domain certificate membership
+ failed?
+
+ - If the neighbor closed the connection on us, provide any error
+ diagnostics from the secure channel protocol.
+
+ - If we failed the attempt, display our local reason:
+
+ o There was no common secure channel protocol supported by the
+ two neighbors (this could not happen on nodes supporting
+ this specification because it mandates common support for
+ IPsec).
+
+ o Did the ACP certificate membership check (Section 6.2.3)
+ fail?
+
+ + The neighbor's certificate is not signed directly or
+ indirectly by one of the node's TA. Provide diagnostics
+ which TA it has (can identify whom the device belongs
+ to).
+
+ + The neighbor's certificate does not have the same domain
+ (or no domain at all). Diagnose acp-domain-name and
+ potentially other cert info.
+
+ + The neighbor's certificate has been revoked or could not
+ be authenticated by OCSP.
+
+ + The neighbor's certificate has expired, or it is not yet
+ valid.
+
+ - Are there any other connection issues, e.g., IKEv2/IPsec, DTLS?
+
+ Question: Is the ACP operating correctly across its secure channels?
+
+ * Are there one or more active ACP neighbors with secure channels?
+
+ * Is RPL for the ACP running?
+
+ * Is there a default route to the root in the ACP routing table?
+
+ * Is there, for each direct ACP neighbor not reachable over the ACP
+ virtual interface to the root, a route in the ACP routing table?
+
+ * Is ACP GRASP running?
+
+ * Is at least one "SRV.est" objective cached (to support certificate
+ renewal)?
+
+ * Is there at least one BRSKI registrar objective cached? (If BRSKI
+ is supported.)
+
+ * Is the BRSKI proxy operating normally on all interfaces where ACP
+ is operating?
+
+ These lists are not necessarily complete, but they illustrate the
+ principle and show that there are variety of issues ranging from
+ normal operational causes (a neighbor in another ACP domain) to
+ problems in the credentials management (certificate lifetimes), to
+ explicit security actions (revocation) or unexpected connectivity
+ issues (intervening L2 equipment).
+
+ The items so far illustrate how the ANI operations can be diagnosed
+ with passive observation of the operational state of its components
+ including historic, cached, and/or counted events. This is not
+ necessarily sufficient to provide good enough diagnostics overall.
+
+ The components of ACP and BRSKI are designed with security in mind,
+ but they do not attempt to provide diagnostics for building the
+ network itself. Consider two examples:
+
+ 1. BRSKI does not allow for a neighboring device to identify the
+ pledge's IDevID certificate. Only the selected BRSKI registrar
+ can do this, but it may be difficult to disseminate information
+ from those BRSKI registrars about undesired pledges to locations
+ and/or nodes where information about those pledges is desired.
+
+ 2. LLDP disseminates information about nodes, such as node model,
+ type, and/or software and interface name and/or number of the
+ connection, to their immediate neighbors. This information is
+ often helpful or even necessary in network diagnostics. It can
+ equally be considered too insecure to make this information
+ available unprotected to all possible neighbors.
+
+ An "interested adjacent party" can always determine the IDevID
+ certificate of a BRSKI pledge by behaving like a BRSKI proxy/
+ registrar. Therefore, the IDevID certificate of a BRSKI pledge is
+ not meant to be protected -- it just has to be queried and is not
+ signaled unsolicited (as it would be in LLDP) so that other observers
+ on the same subnet can determine who is an "interested adjacent
+ party".
+
+9.1.1. Secure Channel Peer Diagnostics
+
+ When using mutual certificate authentication, the TA certificate is
+ not required to be signaled explicitly because its hash is sufficient
+ for certificate chain validation. In the case of ACP secure channel
+ setup, this leads to limited diagnostics when authentication fails
+ because of TA mismatch. For this reason, Section 6.8.2 recommends
+ also including the TA certificate in the secure channel signaling.
+ This should be possible to do without modifying the security
+ association protocols used by the ACP. For example, while [RFC7296]
+ does not mention this, it also does not prohibit it.
+
+ One common use case where diagnostics through the signaled TA of a
+ candidate peer are very helpful is the multi-tenant environment, such
+ as an office building, where different tenants run their own networks
+ and ACPs. Each tenant is given supposedly disjoint L2 connectivity
+ through the building infrastructure. In these environments, there
+ are various common errors through which a device may receive L2
+ connectivity into the wrong tenant's network.
+
+ While the ACP itself is not impacted by this, the data plane to be
+ built later may be impacted. Therefore, it is important to be able
+ to diagnose such undesirable connectivity from the ACP so that any
+ autonomic or non-autonomic mechanisms to configure the data plane can
+ treat such interfaces accordingly. The information in the TA of the
+ peer can then ease troubleshooting of such issues.
+
+ Another use case is the intended or accidental reactivation of
+ equipment, such as redundant gear taken from storage, whose TA
+ certificate has long expired.
+
+ A third use case is when, in a merger and acquisition case, ACP nodes
+ have not been correctly provisioned with the mutual TA of a
+ previously disjoint ACP. This assumes that the ACP domain names were
+ already aligned so that the ACP domain membership check is only
+ failing on the TA.
+
+ A fourth use case is when multiple registrars are set up for the same
+ ACP but are not correctly set up with the same TA. For example, when
+ registrars support also being CAs themselves but are misconfigured to
+ become TAs instead of intermediate CAs.
+
+9.2. ACP Registrars
+
+ As described in Section 6.11.7, the ACP addressing mechanism is
+ designed to enable lightweight, distributed, and uncoordinated ACP
+ registrars that provide ACP address prefixes to candidate ACP nodes
+ by enrolling them with an ACP certificate into an ACP domain via any
+ appropriate mechanism and/or protocol, automated or not.
+
+ This section discusses informatively more details and options for ACP
+ registrars.
+
+9.2.1. Registrar Interactions
+
+ This section summarizes and discusses the interactions with other
+ entities required by an ACP registrar.
+
+ In a simple instance of an ACP network, no central NOC component
+ beside a TA is required. Typically, this is a root CA. One or more
+ uncoordinated acting ACP registrars can be set up, performing the
+ following interactions.
+
+ To orchestrate enrolling a candidate ACP node autonomically, the ACP
+ registrar can rely on the ACP and use proxies to reach the candidate
+ ACP node, therefore allowing minimal, preexisting (auto)configured
+ network services on the candidate ACP node. BRSKI defines the BRSKI
+ proxy, a design that can be adopted for various protocols that
+ pledges and/or candidate ACP nodes could want to use, for example,
+ BRSKI over CoAP (Constrained Application Protocol) or the proxying of
+ NETCONF.
+
+ To reach a TA that has no ACP connectivity, the ACP registrar uses
+ the data plane. The ACP and data plane in an ACP registrar could
+ (and by default should) be completely isolated from each other at the
+ network level. Only applications such as the ACP registrar would
+ need the ability for their transport stacks to access both.
+
+ In non-autonomic enrollment options, the data plane between an ACP
+ registrar and the candidate ACP node needs to be configured first.
+ This includes the ACP registrar and the candidate ACP node. Then any
+ appropriate set of protocols can be used between the ACP registrar
+ and the candidate ACP node to discover the other side, and then
+ connect and enroll (configure) the candidate ACP node with an ACP
+ certificate. For example, NETCONF Zero Touch ("Secure Zero Touch
+ Provisioning (SZTP)" [RFC8572]) is a protocol that could be used for
+ this. BRSKI using optional discovery mechanisms is equally a
+ possibility for candidate ACP nodes attempting to be enrolled across
+ non-ACP networks, such as the Internet.
+
+ When a candidate ACP node, such as a BRSKI pledge, has secure
+ bootstrap, it will not trust being configured and/or enrolled across
+ the network unless it is presented with a voucher (see "A Voucher
+ Artifact for Bootstrapping Protocols" [RFC8366]) authorizing the
+ network to take possession of the node. An ACP registrar will then
+ need a method to retrieve such a voucher, either offline or online
+ from a MASA (Manufacturer Authorized Signing Authority). BRSKI and
+ NETCONF Zero Touch are two protocols that include capabilities to
+ present the voucher to the candidate ACP node.
+
+ An ACP registrar could operate EST for ACP certificate renewal and/or
+ act as a CRL Distribution Point. A node performing these services
+ does not need to support performing (initial) enrollment, but it does
+ require the same above described connectivity as an ACP registrar:
+ via the ACP to the ACP nodes and via the data plane to the TA and
+ other sources of CRL information.
+
+9.2.2. Registrar Parameters
+
+ The interactions of an ACP registrar outlined in Section 6.11.7 and
+ Section 9.2.1 depend on the following parameters:
+
+ * A URL to the TA and credentials so that the ACP registrar can let
+ the TA sign candidate ACP node certificates.
+
+ * The ACP domain name.
+
+ * The Registrar-ID to use. This could default to a MAC address of
+ the ACP registrar.
+
+ * For recovery, the next usable Node-IDs for the Zone Addressing
+ Sub-Scheme (Zone-ID 0) and for the Vlong Addressing Sub-Scheme
+ (/112 and /120). These IDs would only need to be provisioned
+ after recovering from a crash. Some other mechanism would be
+ required to remember these IDs in a backup location or to recover
+ them from the set of currently known ACP nodes.
+
+ * Policies on whether the candidate ACP nodes should receive a
+ domain certificate or not, for example, based on the device's
+ IDevID certificate as in BRSKI. The ACP registrar may whitelist
+ or blacklist based on a device's "serialNumber" attribute [X.520]
+ in the subject field distinguished name encoding of its IDevID
+ certificate.
+
+ * Policies on what type of address prefix to assign to a candidate
+ ACP device, likely based on the same information.
+
+ * For BRSKI or other mechanisms using vouchers: parameters to
+ determine how to retrieve vouchers for specific types of secure
+ bootstrap candidate ACP nodes (such as MASA URLs), unless this
+ information is automatically learned, such as from the IDevID
+ certificate of candidate ACP nodes (as defined in BRSKI).
+
+9.2.3. Certificate Renewal and Limitations
+
+ When an ACP node renews and/or rekeys its certificate, it may end up
+ doing so via a different registrar (e.g., EST server) than the one it
+ originally received its ACP certificate from, for example, because
+ that original ACP registrar is gone. The ACP registrar through which
+ the renewal/rekeying is performed would by default trust the acp-
+ node-name from the ACP node's current ACP certificate and maintain
+ this information so that the ACP node maintains its ACP address
+ prefix. In EST renewal/rekeying, the ACP node's current ACP
+ certificate is signaled during the TLS handshake.
+
+ This simple scenario has two limitations:
+
+ 1. The ACP registrar cannot directly assign certificates to nodes
+ and therefore needs an "online" connection to the TA.
+
+ 2. Recovery from a compromised ACP registrar is difficult. When an
+ ACP registrar is compromised, it can insert, for example, a
+ conflicting acp-node-name and thereby create an attack against
+ other ACP nodes through the ACP routing protocol.
+
+ Even when such a malicious ACP registrar is detected, resolving the
+ problem may be difficult because it would require identifying all the
+ wrong ACP certificates assigned via the ACP registrar after it was
+ compromised. Without additional centralized tracking of assigned
+ certificates, there is no way to do this.
+
+9.2.4. ACP Registrars with Sub-CA
+
+ In situations where either of the above two limitations are an issue,
+ ACP registrars could also be sub-CAs. This removes the need for
+ connectivity to a TA whenever an ACP node is enrolled, and it reduces
+ the need for connectivity of such an ACP registrar to a TA to only
+ those times when it needs to renew its own certificate. The ACP
+ registrar would also now use its own (sub-CA) certificate to enroll
+ and sign the ACP node's certificates, and therefore it is only
+ necessary to revoke a compromised ACP registrar's sub-CA certificate.
+ Alternatively, one can let it expire and not renew it when the
+ certificate of the sub-CA is appropriately short-lived.
+
+ As the ACP domain membership check verifies a peer ACP node's ACP
+ certificate trust chain, it will also verify the signing certificate,
+ which is the compromised and/or revoked sub-CA certificate.
+ Therefore, ACP domain membership for an ACP node enrolled by a
+ compromised and discovered ACP registrar will fail.
+
+ ACP nodes enrolled by a compromised ACP registrar would automatically
+ fail to establish ACP channels and ACP domain certificate renewal via
+ EST and therefore revert to their role as candidate ACP members and
+ attempt to get a new ACP certificate from an ACP registrar, for
+ example, via BRSKI. As a result, ACP registrars that have an
+ associated sub-CA make isolating and resolving issues with
+ compromised registrars easier.
+
+ Note that ACP registrars with sub-CA functionality also can control
+ the lifetime of ACP certificates more easily and therefore can be
+ used as a tool to introduce short-lived certificates and to no longer
+ rely on CRL, whereas the certificates for the sub-CAs themselves
+ could be longer lived and subject to CRL.
+
+9.2.5. Centralized Policy Control
+
+ When using multiple, uncoordinated ACP registrars, several advanced
+ operations are potentially more complex than with a single, resilient
+ policy control backend, for example, including but not limited to the
+ following:
+
+ * Deciding which candidate ACP node is permitted or not permitted
+ into an ACP domain. This may not be a decision to be made
+ upfront, so that a policy per "serialNumber" attribute in the
+ subject field distinguished name encoding can be loaded into every
+ ACP registrar. Instead, it may better be decided in real time,
+ potentially including a human decision in a NOC.
+
+ * Tracking all enrolled ACP nodes and their certificate information.
+ For example, in support of revoking an individual ACP node's
+ certificates.
+
+ * Needing more flexible policies as to which type of address prefix
+ or even which specific address prefix to assign to a candidate ACP
+ node.
+
+ These and other operations could be introduced more easily by
+ introducing a centralized Policy Management System (PMS) and
+ modifying ACP registrar behavior so that it queries the PMS for any
+ policy decision occurring during the candidate ACP node enrollment
+ process and/or the ACP node certificate renewal process, for example,
+ which ACP address prefix to assign. Likewise, the ACP registrar
+ would report any relevant state change information to the PMS as
+ well, for example, when a certificate was successfully enrolled onto
+ a candidate ACP node.
+
+9.3. Enabling and Disabling the ACP and/or the ANI
+
+ Both ACP and BRSKI require interfaces to be operational enough to
+ support the sending and receiving of their packets. In node types
+ where interfaces are enabled by default (e.g., without operator
+ configuration), such as most L2 switches, this would be less of a
+ change in behavior than in most L3 devices (e.g., routers), where
+ interfaces are disabled by default. In almost all network devices,
+ though, it is common for configuration to change interfaces to a
+ physically disabled state, and this would break the ACP.
+
+ In this section, we discuss a suggested operational model to enable
+ and disable interfaces and nodes for ACP/ANI in a way that minimizes
+ the risk of breaking the ACP due to operator action and also
+ minimizes operator surprise when the ACP/ANI becomes supported in
+ node software.
+
+9.3.1. Filtering for Non-ACP/ANI Packets
+
+ Whenever this document refers to enabling an interface for ACP (or
+ BRSKI), it only requires permitting the interface to send and receive
+ packets necessary to operate ACP (or BRSKI) -- but not any other data
+ plane packets. Unless the data plane is explicitly configured and
+ enabled, all packets that are not required for ACP/BRSKI should be
+ filtered on input and output.
+
+ Both BRSKI and ACP require link-local-only IPv6 operations on
+ interfaces and DULL GRASP. IPv6 link-local operations mean the
+ minimum signaling to auto-assign an IPv6 link-local address and talk
+ to neighbors via their link-local addresses: SLAAC [RFC4862] and ND
+ [RFC4861]. When the device is a BRSKI pledge, it may also require
+ TCP/TLS connections to BRSKI proxies on the interface. When the
+ device has keying material, and the ACP is running, it requires DULL
+ GRASP packets and packets necessary for the secure channel mechanism
+ it supports, e.g., IKEv2 and IPsec ESP packets or DTLS packets to the
+ IPv6 link-local address of an ACP neighbor on the interface. It also
+ requires TCP/TLS packets for its BRSKI proxy functionality if it
+ supports BRSKI.
+
+9.3.2. "admin down" State
+
+ Interfaces on most network equipment have at least two states: "up"
+ and "down". These may have product-specific names. For example,
+ "down" could be called "shutdown", and "up" could be called "no
+ shutdown". The "down" state disables all interface operations down
+ to the physical level. The "up" state enables the interface enough
+ for all possible L2/L3 services to operate on top of it, and it may
+ also auto-enable some subset of them. More commonly, the operations
+ of various L2/L3 services are controlled via additional node-wide or
+ interface-level options, but they all become active only when the
+ interface is not "down". Therefore, an easy way to ensure that all
+ L2/L3 operations on an interface are inactive is to put the interface
+ into "down" state. The fact that this also physically shuts down the
+ interface is just a side effect in many cases, but it may be
+ important in other cases (see Section 9.3.2.2).
+
+ A common problem of remote management is the operator or SDN
+ controller cutting its own connectivity to the remote node via
+ configuration, impacting its own management connection to the node.
+ The ACP itself should have no dedicated configuration other than the
+ aforementioned enabling of the ACP on brownfield ACP nodes. This
+ leaves configuration that cannot distinguish between the ACP and data
+ plane as sources of configuration mistakes as these commands will
+ impact the ACP even though they should only impact the data plane.
+
+ The one ubiquitous type of command that does this on many types of
+ routers is the interface "down" command/configuration. When such a
+ command is applied to the interface through which the ACP provides
+ access for remote management, it cuts the remote management
+ connection through the ACP because, as outlined above, the "down"
+ command typically impacts the physical layer, too, and not only the
+ data plane services.
+
+ To provide ACP/ANI resilience against such operator misconfiguration,
+ this document recommends separating the "down" state of interfaces
+ into an "admin down" state, where the physical layer is kept running
+ and the ACP/ANI can use the interface, and a "physical down" state.
+ Any existing "down" configurations would map to "admin down". In
+ "admin down", any existing L2/L3 services of the data plane should
+ see no difference to "physical down" state. To ensure that no data
+ plane packets could be sent or received, packet filtering could be
+ established automatically as described in Section 9.3.1.
+
+ An example of ANI, but not ACP, traffic that should be permitted to
+ pass even in "admin down" state is BRSKI enrollment traffic between a
+ BRSKI pledge and a BRSKI proxy.
+
+ New configuration options could be introduced as necessary (see
+ discussion below) to issue "physical down". The options should be
+ provided with additional checks to minimize the risk of issuing them
+ in a way that breaks the ACP without automatic restoration. Examples
+ of checks include not allowing the option to be issued from a control
+ connection (NETCONF/SSH) that goes across the interface itself ("do
+ not disconnect yourself") or only applying the option after
+ additional reconfirmation.
+
+ The following subsections discuss important aspects of the
+ introduction of "admin down" state.
+
+9.3.2.1. Security
+
+ Interfaces are physically brought down (or left in default "down"
+ state) as a form of security. The "admin down" state as described
+ above also provides also a high level of security because it only
+ permits ACP/ANI operations, which are both well secured. Ultimately,
+ it is subject to the deployment's security review whether "admin
+ down" is a feasible replacement for "physical down".
+
+ The need to trust the security of ACP/ANI operations needs to be
+ weighed against the operational benefits of permitting the following:
+ consider the typical example of a CPE (customer premises equipment)
+ with no on-site network expert. User ports are in "physical down"
+ state unless explicitly configured not to be. In a misconfiguration
+ situation, the uplink connection is incorrectly plugged into such a
+ user port. The device is disconnected from the network, and
+ therefore diagnostics from the network side are no longer possible.
+ Alternatively, all ports default to "admin down". The ACP (but not
+ the data plane) would still automatically form. Diagnostics from the
+ network side are possible, and operator reaction could include either
+ to make this port the operational uplink port or to instruct re-
+ cabling. Security wise, only the ACP/ANI could be attacked, all
+ other functions are filtered on interfaces in "admin down" state.
+
+9.3.2.2. Fast State Propagation and Diagnostics
+
+ The "physical down" state propagates on many interface types (e.g.,
+ Ethernet) to the other side. This can trigger fast L2/L3 protocol
+ reaction on the other side, and "admin down" would not have the same
+ (fast) result.
+
+ Bringing interfaces to "physical down" state is, to the best of our
+ knowledge, always a result of operator action and, today, never the
+ result of autonomic L2/L3 services running on the nodes. Therefore,
+ one option is to end the operator's reliance on interface state
+ propagation via the subnet link or physical layer. This may not be
+ possible when both sides are under the control of different
+ operators, but in that case, it is unlikely that the ACP is running
+ across the link, and actually putting the interface into "physical
+ down" state may still be a good option.
+
+ Ideally, fast physical state propagation is replaced by fast
+ software-driven state propagation. For example, a DULL GRASP "admin-
+ state" objective could be used to autoconfigure a BFD session
+ ("Bidirectional Forwarding Detection (BFD)" [RFC5880]) between the
+ two sides of the link that would be used to propagate the "up" vs.
+ "admin down" state.
+
+ Triggering "physical down" state may also be used as a means of
+ diagnosing cabling issues in the absence of easier methods. It is
+ more complex than automated neighbor diagnostics because it requires
+ coordinated remote access to (likely) both sides of a link to
+ determine whether up/down toggling will cause the same reaction on
+ the remote side.
+
+ See Section 9.1 for a discussion about how LLDP and/or diagnostics
+ via GRASP could be used to provide neighbor diagnostics and therefore
+ hopefully eliminate the need for "physical down" for neighbor
+ diagnostics -- as long as both neighbors support ACP/ANI.
+
+9.3.2.3. Low-Level Link Diagnostics
+
+ The "physical down" state is used to diagnose low-level interface
+ behavior when higher-layer services (e.g., IPv6) are not working.
+ Ethernet links are especially subject to a wide variety of possible
+ incorrect configurations/cablings if they do not support automatic
+ selection of variable parameters such as speed (10/100/1000 Mbps),
+ crossover (automatic medium-dependent interface crossover (MDI-X)),
+ and connector (fiber, copper -- when interfaces have multiple but can
+ only enable one at a time). The need for low-level link diagnostics
+ can therefore be minimized by using fully autoconfiguring links.
+
+ In addition to the "physical down" state, low-level diagnostics of
+ Ethernet or other interfaces also involve the creation of other
+ states on interfaces, such as physical loopback (internal and/or
+ external) or the bringing down of all packet transmissions for
+ reflection and/or cable-length measurements. Any of these options
+ would disrupt ACP as well.
+
+ In cases where such low-level diagnostics of an operational link are
+ desired but where the link could be a single point of failure for the
+ ACP, the ASA on both nodes of the link could perform a negotiated
+ diagnostic that automatically terminates in a predetermined manner
+ without dependence on external input, ensuring the link will become
+ operational again.
+
+9.3.2.4. Power Consumption Issues
+
+ Power consumption of "physical down" interfaces may be significantly
+ lower than those in "admin down" state, for example, on long-range
+ fiber interfaces. Bringing up interfaces, for example, to probe
+ reachability may also consume additional power. This can make these
+ types of interfaces inappropriate to operate purely for the ACP when
+ they are not currently needed for the data plane.
+
+9.3.3. Enabling Interface-Level ACP and ANI
+
+ The interface-level configuration option "ACP enable" enables ACP
+ operations on an interface, starting with ACP neighbor discovery via
+ DULL GRASP. The interface-level configuration option "ANI enable" on
+ nodes supporting BRSKI and ACP starts with BRSKI pledge operations
+ when there is no domain certificate on the node. On ACP/BRSKI nodes,
+ only "ANI enable" may need to be supported and not "ACP enable".
+ Unless overridden by global configuration options (see
+ Section 9.3.4), either "ACP enable" or "ANI enable" (both abbreviated
+ as "ACP/ANI enable") will result in the "down" state on an interface
+ behaving as "admin down".
+
+9.3.4. Which Interfaces to Auto-Enable?
+
+ Section 6.4 requires that "ACP enable" is automatically set on native
+ interfaces, but not on non-native interfaces (reminder: a native
+ interface is one that exists without operator configuration action,
+ such as physical interfaces in physical devices).
+
+ Ideally, "ACP enable" is set automatically on all interfaces that
+ provide access to additional connectivity, which allows more nodes of
+ the ACP domain to be reached. The best set of interfaces necessary
+ to achieve this is not possible to determine automatically. Native
+ interfaces are the best automatic approximation.
+
+ Consider an ACP domain of ACP nodes transitively connected via native
+ interfaces. A data plane tunnel between two of these nodes that are
+ nonadjacent is created, and "ACP enable" is set for that tunnel. ACP
+ RPL sees this tunnel as just as a single hop. Routes in the ACP
+ would use this hop as an attractive path element to connect regions
+ adjacent to the tunnel nodes. As a result, the actual hop-by-hop
+ paths used by traffic in the ACP can become worse. In addition,
+ correct forwarding in the ACP now depends on correct data plane
+ forwarding configuration including QoS, filtering, and other security
+ on the data plane path across which this tunnel runs. This is the
+ main reason why "ACP/ANI enable" should not be set automatically on
+ non-native interfaces.
+
+ If the tunnel would connect two previously disjoint ACP regions, then
+ it likely would be useful for the ACP. A data plane tunnel could
+ also run across nodes without ACP and provide additional connectivity
+ for an already connected ACP network. The benefit of this additional
+ ACP redundancy has to be weighed against the problems of relying on
+ the data plane. If a tunnel connects two separate ACP regions, how
+ many tunnels should be created to connect these ACP regions reliably
+ enough? Between which nodes? These are all standard tunneled
+ network design questions not specific to the ACP, and there are no
+ generic, fully automated answers.
+
+ Instead of automatically setting "ACP enable" on these types of
+ interfaces, the decision needs to be based on the use purpose of the
+ non-native interface, and "ACP enable" needs to be set in conjunction
+ with the mechanism through which the non-native interface is created
+ and/or configured.
+
+ In addition to the explicit setting of "ACP/ANI enable", non-native
+ interfaces also need to support configuration of the ACP RPL cost of
+ the link to avoid the problems of attracting too much traffic to the
+ link as described above.
+
+ Even native interfaces may not be able to automatically perform BRSKI
+ or ACP because they may require additional operator input to become
+ operational. Examples include DSL interfaces requiring Point-to-
+ Point Protocol over Ethernet (PPPoE) credentials or mobile interfaces
+ requiring credentials from a SIM card. Whatever mechanism is used to
+ provide the necessary configuration to the device to enable the
+ interface can also be expanded to decide whether or not to set "ACP/
+ ANI enable".
+
+ The goal of automatically setting "ACP/ANI enable" on interfaces
+ (native or not) is to eliminate unnecessary "touches" to the node to
+ make its operation as much as possible "zero-touch" with respect to
+ ACP/ANI. If there are "unavoidable touches" such a creating and/or
+ configuring a non-native interface or provisioning credentials for a
+ native interface, then "ACP/ANI enable" should be added as an option
+ to that "touch". If an erroneous "touch" is easily fixed (does not
+ create another high-cost touch), then the default should be not to
+ enable ANI/ACP, and if it is potentially expensive or slow to fix
+ (e.g., parameters on SIM card shipped to remote location), then the
+ default should be to enable ACP/ANI.
+
+9.3.5. Enabling Node-Level ACP and ANI
+
+ A node-level command "ACP/ANI enable [up-if-only]" enables ACP or ANI
+ on the node (ANI = ACP + BRSKI). Without this command set, any
+ interface-level "ACP/ANI enable" is ignored. Once set, ACP/ANI will
+ operate an interface where "ACP/ANI enable" is set. Setting of
+ interface-level "ACP/ANI enable" is either automatic (default) or
+ explicit through operator action as described in Section 9.3.4.
+
+ If the option "up-if-only" is selected, the behavior of "down"
+ interfaces is unchanged, and ACP/ANI will only operate on interfaces
+ where "ACP/ANI enable" is set and that are "up". When it is not set,
+ then "down" state of interfaces with "ACP/ANI enable" is modified to
+ behave as "admin down".
+
+9.3.5.1. Brownfield Nodes
+
+ A "brownfield" node is one that already has a configured data plane.
+
+ Executing global "ACP/ANI enable [up-if-only]" on each node is the
+ only command necessary to create an ACP across a network of
+ brownfield nodes once all the nodes have a domain certificate. When
+ BRSKI is used ("ANI enable"), provisioning of the certificates only
+ requires the setup of a single BRSKI registrar node, which could also
+ implement a CA for the network. This is the simplest way to
+ introduce ACP/ANI into existing (i.e., brownfield) networks.
+
+ The need to explicitly enable ACP/ANI is especially important in
+ brownfield nodes because otherwise software updates may introduce
+ support for ACP/ANI. The automatic enabling of ACP/ANI in networks
+ where the operator does not want ACP/ANI or has likely never even
+ heard of it could be quite irritating to the operator, especially
+ when "down" behavior is changed to "admin down".
+
+ Automatically setting "ANI enable" on brownfield nodes where the
+ operator is unaware of BRSKI and MASA operations could also be an
+ unlikely, but critical, security issue. If an attacker could
+ impersonate the operator by registering as the operator at the MASA
+ or otherwise getting hold of vouchers and could get enough physical
+ access to the network so pledges would register to an attacking
+ registrar, then the attacker could gain access to the ACP and,
+ through the ACP, gain access to the data plane.
+
+ In networks where the operator explicitly enables the ANI, this could
+ not happen because the operator would create a BRSKI registrar that
+ would discover attack attempts, and the operator would set up his
+ registrar with the MASA. Nodes requiring "ownership vouchers" would
+ not be subject to that attack. See [RFC8995] for more details. Note
+ that a global "ACP enable" alone is not subject to these types of
+ attacks because they always depend on some other mechanism first to
+ provision domain certificates into the device.
+
+9.3.5.2. Greenfield Nodes
+
+ An ACP "greenfield" node is one that does not have any prior
+ configuration and that can be bootstrapped into the ACP across the
+ network. To support greenfield nodes, ACP as described in this
+ document needs to be combined with a bootstrap protocol and/or
+ mechanism that will enroll the node with the ACP keying material: the
+ ACP certificate and the TA. For ANI nodes, this protocol/mechanism
+ is BRSKI.
+
+ When such a node is powered on and determines that it is in
+ greenfield condition, it enables the bootstrap protocol(s) and/or
+ mechanism(s). Once the ACP keying material is enrolled, the
+ greenfield state ends and the ACP is started. When BRSKI is used,
+ the node's state reflects this by setting "ANI enable" upon
+ determination of greenfield state when it is powered on.
+
+ ACP greenfield nodes that, in the absence of ACP, would have their
+ interfaces in "down" state SHOULD set all native interfaces into
+ "admin down" state and only permit data plane traffic required for
+ the bootstrap protocol and/or mechanisms.
+
+ The ACP greenfield state ends either through the successful
+ enrollment of ACP keying material (certificate and TA) or the
+ detection of a permitted termination of ACP greenfield operations.
+
+ ACP nodes supporting greenfield operations MAY want to provide
+ backward compatibility with other forms of configuration and/or
+ provisioning, especially when only a subset of nodes are expected to
+ be deployed with ACP. Such an ACP node SHOULD observe attempts to
+ provision or configure the node via interfaces and/or methods that
+ traditionally indicate physical possession of the node, such as a
+ serial or USB console port or a USB memory stick with a bootstrap
+ configuration. When such an operation is observed before enrollment
+ of the ACP keying material has completed, the node SHOULD put itself
+ into the state the node would have been in if ACP/ANI was disabled at
+ boot. This terminates ACP greenfield operations.
+
+ When an ACP greenfield node enables multiple, automated ACP or non-
+ ACP enrollment and/or bootstrap protocols or mechanisms in parallel,
+ care must be taken not to terminate any protocol/mechanism before the
+ others either have succeeded in enrolling ACP keying material or have
+ progressed to a point of permitted termination for ACP greenfield
+ operations.
+
+ Highly secure ACP greenfield nodes may not permit any reason to
+ terminate ACP greenfield operations, including physical access.
+
+ Nodes that claim to support ANI greenfield operations SHOULD NOT
+ enable in parallel to BRSKI any enrollment/bootstrap protocol/
+ mechanism that allows Trust On First Use (TOFU, "Opportunistic
+ Security: Some Protection Most of the Time" [RFC7435]) over
+ interfaces other than those traditionally indicating physical
+ possession of the node. Protocols/mechanisms with published default
+ username/password authentication are considered to suffer from TOFU.
+ Securing the bootstrap protocol/mechanism by requiring a voucher
+ [RFC8366] can be used to avoid TOFU.
+
+ In summary, the goal of ACP greenfield support is to allow remote,
+ automated enrollment of ACP keying materials, and therefore automated
+ bootstrap into the ACP and to prohibit TOFU during bootstrap with the
+ likely exception (for backward compatibility) of bootstrapping via
+ interfaces traditionally indicating physical possession of the node.
+
+9.3.6. Undoing "ANI/ACP enable"
+
+ Disabling ANI/ACP by undoing "ACP/ANI enable" is a risk for the
+ reliable operations of the ACP if it can be executed by mistake or
+ without authorization. This behavior could be influenced through
+ some additional (future) property in the certificate (e.g., in the
+ acp-node-name extension field): in an ANI deployment intended for
+ convenience, disabling it could be allowed without further
+ constraints. In an ANI deployment considered to be critical, more
+ checks would be required. One very controlled option would be to not
+ permit these commands unless the domain certificate has been revoked
+ or is denied renewal. Configuring this option would be a parameter
+ on the BRSKI registrar(s). As long as the node did not receive a
+ domain certificate, undoing "ANI/ACP enable" should not have any
+ additional constraints.
+
+9.3.7. Summary
+
+ Node-wide "ACP/ANI enable [up-if-only]" commands enable the operation
+ of ACP/ANI. This is only auto-enabled on ANI greenfield devices,
+ otherwise it must be configured explicitly.
+
+ If the option "up-if-only" is not selected, interfaces enabled for
+ ACP/ANI interpret the "down" state as "admin down" and not "physical
+ down". In the "admin-down" state, all non-ACP/ANI packets are
+ filtered, but the physical layer is kept running to permit ACP/ANI to
+ operate.
+
+ (New) commands that result in physical interruption ("physical down",
+ "loopback") of ACP/ANI-enabled interfaces should be built to protect
+ continuance or reestablishment of ACP as much as possible.
+
+ Interface-level "ACP/ANI enable" commands control per-interface
+ operations. It is enabled by default on native interfaces and has to
+ be configured explicitly on other interfaces.
+
+ Disabling "ACP/ANI enable" globally and per interface should have
+ additional checks to minimize undesired breakage of ACP. The degree
+ of control could be a domain-wide parameter in the domain
+ certificates.
+
+9.4. Partial or Incremental Adoption
+
+ The Zone Addressing Sub-Scheme (see Section 6.11.3) allows
+ incremental adoption of the ACP in a network where ACP can be
+ deployed on edge areas, but not across the core that is connecting
+ those edges.
+
+ In such a setup, each edge network, such as a branch or campus of an
+ enterprise network, has a disjoint ACP to which one or more unique
+ Zone-IDs are assigned: ACP nodes registered for a specific ACP zone
+ have to receive Zone Addressing Sub-Scheme addresses, for example, by
+ virtue of configuring for each such zone one or more ACP registrars
+ with that Zone-ID. All the registrars for these ACP zones need to
+ get ACP certificates from CAs relying on a common set of TAs and of
+ course the same ACP domain name.
+
+ These ACP zones can first be brought up as separate networks without
+ any connection between them and/or they can be connected across a
+ non-ACP enabled core network through various non-autonomic
+ operational practices. For example, each separate ACP zone can have
+ an edge node that is a L3 VPN PE (MPLS or IPv6 L3VPN), where a
+ complete non-autonomic ACP-Core VPN is created by using the ACP VRFs
+ and exchanging the routes from those ACP VRFs across the VPN's non-
+ autonomic routing protocol(s).
+
+ While such a setup is possible with any ACP addressing sub-scheme,
+ the Zone Addressing Sub-Scheme makes it easy to configure and
+ scalable for any VPN routing protocols because every ACP zone only
+ needs to indicate one or more /64 ACP zone addressing prefix routes
+ into the ACP-Core VPN as opposed to routes for every individual ACP
+ node as required in the other ACP addressing schemes.
+
+ Note that the non-autonomous ACP-Core VPN requires additional
+ extensions to propagate GRASP messages when GRASP discovery is
+ desired across the zones.
+
+ For example, one could set up on each zone edge router a remote ACP
+ tunnel to a GRASP hub. The GRASP hub could be implemented at the
+ application level and could run in the NOC of the network. It would
+ serve to propagate GRASP announcements between ACP zones and/or
+ generate GRASP announcements for NOC services.
+
+ Such a partial deployment may prove to be sufficient or could evolve
+ to become more autonomous through future standardized or nonstandard
+ enhancements, for example, by allowing GRASP messages to be
+ propagated across the L3VPN, leveraging for example L3VPN multicast
+ support.
+
+ Finally, these partial deployments can be merged into a single,
+ contiguous ACP that is completely autonomous (given appropriate ACP
+ support across the core) without changes in the cryptographic
+ material because the node's ACP certificates are from a single ACP.
+
+9.5. Configuration and the ACP (Summary)
+
+ There is no desirable configuration for the ACP. Instead, all
+ parameters that need to be configured in support of the ACP are
+ limitations of the solution, but they are only needed in cases where
+ not all components are made autonomic. Wherever this is necessary,
+ it relies on preexisting mechanisms for configuration such as CLI or
+ YANG data models ("The YANG 1.1 Data Modeling Language" [RFC7950]).
+
+ The most important examples of such configuration include:
+
+ * When ACP nodes do not support an autonomic way to receive an ACP
+ certificate, for example, BRSKI, then such a certificate needs to
+ be configured via some preexisting mechanisms outside the scope of
+ this specification. Today, routers typically have a variety of
+ mechanisms to do this.
+
+ * Certificate maintenance requires PKI functions. Discovery of
+ these functions across the ACP is automated (see Section 6.2.5),
+ but their configuration is not.
+
+ * When non-ACP-capable nodes such as preexisting NMS need to be
+ physically connected to the ACP, the ACP node to which they attach
+ needs to be configured with ACP connect according to Section 8.1.
+ It is also possible to use that single physical connection to
+ connect both to the ACP and the data plane of the network as
+ explained in Section 8.1.4.
+
+ * When devices are not autonomically bootstrapped, explicit
+ configuration to enable the ACP needs to be applied. See
+ Section 9.3.
+
+ * When the ACP needs to be extended across interfaces other than L2,
+ the ACP as defined in this document cannot auto-discover candidate
+ neighbors automatically. Remote neighbors need to be configured,
+ see Section 8.2.
+
+ Once the ACP is operating, any further configuration for the data
+ plane can be done more reliably across the ACP itself because the ACP
+ provides addressing and connectivity (routing) independent of the
+ data plane. For this, the configuration methods simply need to allow
+ operating across the ACP VRF, for example, with NETCONF, SSH, or any
+ other method.
+
+ The ACP also provides additional security through its hop-by-hop
+ encryption for any such configuration operations. Some legacy
+ configuration methods (for example, SNMP, TFTP, or HTTP) may not use
+ end-to-end encryption, and most of the end-to-end secured
+ configuration methods still allow for easy, passive observation along
+ the path of the configuration taking place (for example, transport
+ flows, port numbers, and/or IP addresses).
+
+ The ACP can and should be used equally as the transport to configure
+ any of the aforementioned non-autonomic components of the ACP, but in
+ that case, the same caution needs to be exercised as with data plane
+ configuration without the ACP. Misconfiguration may cause the
+ configuring entity to be disconnected from the node it configures,
+ for example, when incorrectly unconfiguring a remote ACP neighbor
+ through which the configured ACP node is reached.
+
+10. Summary: Benefits (Informative)
+
+10.1. Self-Healing Properties
+
+ The ACP is self-healing:
+
+ * New neighbors will automatically join the ACP after successful
+ validation and will become reachable using their unique ULA
+ address across the ACP.
+
+ * When any changes happen in the topology, the routing protocol used
+ in the ACP will automatically adapt to the changes and will
+ continue to provide reachability to all nodes.
+
+ * The ACP tracks the validity of peer certificates and tears down
+ ACP secure channels when a peer certificate has expired. When
+ short-lived certificates with lifetimes on the order of OCSP/CRL
+ refresh times are used, then this allows for removal of invalid
+ peers (whose certificate was not renewed) at similar speeds as
+ when using OCSP/CRL. The same benefit can be achieved when using
+ CRL/OCSP, periodically refreshing the revocation information and
+ also tearing down ACP secure channels when the peer's (long-lived)
+ certificate is revoked. There is no requirement for ACP
+ implementations to require this enhancement, though, in order to
+ keep the mandatory implementations simpler.
+
+ The ACP can also sustain network partitions and mergers. Practically
+ all ACP operations are link local, where a network partition has no
+ impact. Nodes authenticate each other using the domain certificates
+ to establish the ACP locally. Addressing inside the ACP remains
+ unchanged, and the routing protocol inside both parts of the ACP will
+ lead to two working (although partitioned) ACPs.
+
+ There are a few central dependencies: a CRL may not be available
+ during a network partition. This can be addressed by a suitable
+ policy to not immediately disconnect neighbors when no CRL is
+ available. Also, an ACP registrar or CA might not be available
+ during a partition. This may delay renewal of certificates that are
+ to expire in the future, and it may prevent the enrollment of new
+ nodes during the partition.
+
+ Highly resilient ACP designs can be built by using ACP registrars
+ with embedded sub-CAs, as outlined in Section 9.2.4. As long as a
+ partition is left with one or more of such ACP registrars, it can
+ continue to enroll new candidate ACP nodes as long as the ACP
+ registrar's sub-CA certificate does not expire. Because the ACP
+ addressing relies on unique Registrar-IDs, a later merging of
+ partitions will not cause problems with ACP addresses assigned during
+ partitioning.
+
+ After a network partition, merging will just establish the previous
+ status: certificates can be renewed, the CRL is available, and new
+ nodes can be enrolled everywhere. Since all nodes use the same TA,
+ the merging will be smooth.
+
+ Merging two networks with different TAs requires the ACP nodes to
+ trust the union of TAs. As long as the routing-subdomain hashes are
+ different, the addressing will not overlap. Overlaps will only
+ happen accidentally in the unlikely event of a 40-bit hash collision
+ in SHA-256 (see Section 6.11). Note that the complete mechanisms to
+ merge networks is out of scope of this specification.
+
+ It is also highly desirable for an implementation of the ACP to be
+ able to run it over interfaces that are administratively down. If
+ this is not feasible, then it might instead be possible to request
+ explicit operator override upon administrative actions that would
+ administratively bring down an interface across which the ACP is
+ running, especially if bringing down the ACP is known to disconnect
+ the operator from the node. For example, any such administrative
+ down action could perform a dependency check to see if the transport
+ connection across which this action is performed is affected by the
+ down action (with default RPL routing used, packet forwarding will be
+ symmetric, so this is actually possible to check).
+
+10.2. Self-Protection Properties
+
+10.2.1. From the Outside
+
+ As explained in Section 6, the ACP is based on secure channels built
+ between nodes that have mutually authenticated each other with their
+ domain certificates. The channels themselves are protected using
+ standard encryption technologies such as DTLS or IPsec, which provide
+ additional authentication during channel establishment, data
+ integrity, and data confidentiality protection inside the ACP, and
+ also provide replay protection.
+
+ An attacker will not be able to join the ACP unless it has a valid
+ ACP certificate. An on-path attacker without a valid ACP certificate
+ cannot inject packets into the ACP due to ACP secure channels. An
+ attacker also cannot decrypt ACP traffic unless it can crack the
+ encryption. It can attempt behavioral traffic analysis on the
+ encrypted ACP traffic.
+
+ The degree to which compromised ACP nodes can impact the ACP depends
+ on the implementation of the ACP nodes and their impairment. When an
+ attacker has only gained administrative privileges to configure ACP
+ nodes remotely, the attacker can disrupt the ACP only through one of
+ the few configuration options to disable it (see Section 9.3) or by
+ the configuring of non-autonomic ACP options if those are supported
+ on the impaired ACP nodes (see Section 8). Injecting traffic into or
+ extracting traffic from an impaired ACP node is only possible when an
+ impaired ACP node supports ACP connect (see Section 8.1), and the
+ attacker can control traffic into/from one of the ACP node's
+ interfaces, such as by having physical access to the ACP node.
+
+ The ACP also serves as protection (through authentication and
+ encryption) for protocols relevant to OAM that may not have secured
+ protocol stack options or where implementation or deployment of those
+ options fail due to some vendor, product, or customer limitations.
+ This includes protocols such as SNMP ("An Architecture for Describing
+ Simple Network Management Protocol (SNMP) Management Frameworks"
+ [RFC3411]), NTP [RFC5905], PTP (Precision Time Protocol
+ [IEEE-1588-2008]), DNS ("DNS Extensions to Support IP Version 6"
+ [RFC3596]), DHCPv6 ("Dynamic Host Configuration Protocol for IPv6
+ (DHCPv6)" [RFC3315]), syslog ("The BSD Syslog Protocol" [RFC3164]),
+ RADIUS ("Remote Authentication Dial In User Service (RADIUS)"
+ [RFC2865]), Diameter ("Diameter Base Protocol" [RFC6733]), TACACS
+ ("An Access Control Protocol, Sometimes Called TACACS" [RFC1492]),
+ IPFIX ("Specification of the IP Flow Information Export (IPFIX)
+ Protocol for the Exchange of Flow Information" [RFC7011]), NetFlow
+ ("Cisco Systems NetFlow Services Export Version 9" [RFC3954]) -- just
+ to name a few. Not all of these protocol references are necessarily
+ the latest version of protocols, but they are versions that are still
+ widely deployed.
+
+ Protection via the ACP secure hop-by-hop channels for these protocols
+ is meant to be only a stopgap, though: the ultimate goal is for these
+ and other protocols to use end-to-end encryption utilizing the domain
+ certificate and to rely on the ACP secure channels primarily for
+ zero-touch reliable connectivity, but not primarily for security.
+
+ The remaining attack vector would be to attack the underlying ACP
+ protocols themselves, either via directed attacks or by denial-of-
+ service attacks. However, as the ACP is built using link-local IPv6
+ addresses, remote attacks from the data plane are impossible as long
+ as the data plane has no facilities to remotely send IPv6 link-local
+ packets. The only exceptions are ACP-connected interfaces, which
+ require greater physical protection. The ULA addresses are only
+ reachable inside the ACP context and therefore unreachable from the
+ data plane. Also, the ACP protocols should be implemented to be
+ attack resistant and to not consume unnecessary resources even while
+ under attack.
+
+10.2.2. From the Inside
+
+ The security model of the ACP is based on trusting all members of the
+ group of nodes that receive an ACP certificate for the same domain.
+ Attacks from the inside by a compromised group member are therefore
+ the biggest challenge.
+
+ Group members must be protected against attackers so that there is no
+ easy way to compromise them or use them as a proxy for attacking
+ other devices across the ACP. For example, management plane
+ functions (transport ports) should be reachable only from the ACP and
+ not from the data plane. This applies especially to those management
+ plane functions that lack secure end-to-end transport and to which
+ the ACP provides both automatic, reliable connectivity and protection
+ against attacks. Protection across all potential attack vectors is
+ typically easier to do in devices whose software is designed from the
+ beginning with the ACP in mind than in legacy, software-based systems
+ where the ACP is added on as another feature.
+
+ As explained above, traffic across the ACP should still be end-to-end
+ encrypted whenever possible. This includes traffic such as GRASP,
+ EST, and BRSKI inside the ACP. This minimizes man-in-the-middle
+ attacks by compromised ACP group members. Such attackers cannot
+ eavesdrop or modify communications, but they can just filter them
+ (which is unavoidable by any means).
+
+ See Appendix A.9.8 for further considerations on avoiding and dealing
+ with compromised nodes.
+
+10.3. The Administrator View
+
+ An ACP is self-forming, self-managing, and self-protecting;
+ therefore, it has minimal dependencies on the administrator of the
+ network. Specifically, since it is (intended to be) independent of
+ configuration, there is only limited scope for configuration errors
+ on the ACP itself. The administrator may have the option to enable
+ or disable the entire approach, but detailed configuration is not
+ possible. This means that the ACP must not be reflected in the
+ running configuration of nodes, except for a possible on/off switch
+ (and even that is undesirable).
+
+ While configuration (except for Section 8 and Section 9.2) is not
+ possible, an administrator must have full visibility into the ACP and
+ all its parameters to be able to troubleshoot. Therefore, an ACP
+ must support all show and debug options, as with any other network
+ function. Specifically, an NMS or controller must be able to
+ discover the ACP and monitor its health. This visibility into ACP
+ operations must clearly be separated from the visibility of the data
+ plane so automated systems will never have to deal with ACP aspects
+ unless they explicitly desire to do so.
+
+ Since an ACP is self-protecting, a node that does not support the ACP
+ or that does not have a valid domain certificate cannot connect to
+ it. This means that by default a traditional controller or NMS
+ cannot connect to an ACP. See Section 8.1.1 for details on how to
+ connect an NMS host to the ACP.
+
+11. Security Considerations
+
+ A set of ACP nodes with ACP certificates for the same ACP domain and
+ with ACP functionality enabled is automatically "self-building": the
+ ACP is automatically established between neighboring ACP nodes. It
+ is also self-protecting: the ACP secure channels are authenticated
+ and encrypted. No configuration is required for this.
+
+ The self-protecting property does not include workarounds for non-
+ autonomic components as explained in Section 8. See Section 10.2 for
+ details of how the ACP protects itself against attacks from the
+ outside and, to a more limited degree, from the inside as well.
+
+ However, the security of the ACP depends on a number of other
+ factors:
+
+ * The usage of domain certificates depends on a valid supporting PKI
+ infrastructure. If the chain of trust of this PKI infrastructure
+ is compromised, the security of the ACP is also compromised. This
+ is typically under the control of the network administrator.
+
+ * ACP nodes receive their certificates from ACP registrars. These
+ ACP registrars are security-critical dependencies of the ACP.
+ Procedures and protocols for ACP registrars are outside the scope
+ of this specification as explained in Section 6.11.7.1; only the
+ requirements for the resulting ACP certificates are specified.
+
+ * Every ACP registrar (for enrollment of ACP certificates) and ACP
+ EST server (for renewal of ACP certificates) is a security-
+ critical entity and its protocols are security-critical protocols.
+ Both need to be hardened against attacks, similar to a CA and its
+ protocols. A malicious registrar can enroll malicious nodes to an
+ ACP network (if the CA delegates this policy to the registrar) or
+ break ACP routing, for example, by assigning duplicate ACP
+ addresses to ACP nodes via their ACP certificates.
+
+ * ACP nodes that are ANI nodes rely on BRSKI as the protocol for ACP
+ registrars. For ANI-type ACP nodes, the security considerations
+ of BRSKI apply. It enables automated, secure enrollment of ACP
+ certificates.
+
+ * BRSKI and potentially other ACP registrar protocol options require
+ that nodes have an (X.509 v3 based) IDevID. IDevIDs are an option
+ for ACP registrars to securely identify candidate ACP nodes that
+ should be enrolled into an ACP domain.
+
+ * For IDevIDs to securely identify the node to which its IDevID is
+ assigned, the node needs (1) to utilize hardware support such as a
+ Trusted Platform Module (TPM) to protect against extraction and/or
+ cloning of the private key of the IDevID and (2) a hardware/
+ software infrastructure to prohibit execution of unauthenticated
+ software to protect against malicious use of the IDevID.
+
+ * Like the IDevID, the ACP certificate should equally be protected
+ from extraction or other abuse by the same ACP node
+ infrastructure. This infrastructure for IDevID and ACP
+ certificate is beneficial independent of the ACP registrar
+ protocol used (BRSKI or other).
+
+ * Renewal of ACP certificates requires support for EST; therefore,
+ the security considerations of [RFC7030] related to certificate
+ renewal and/or rekeying and TP renewal apply to the ACP. EST
+ security considerations when using other than mutual certificate
+ authentication do not apply, nor do considerations for initial
+ enrollment via EST apply, except for ANI-type ACP nodes because
+ BRSKI leverages EST.
+
+ * A malicious ACP node could declare itself to be an EST server via
+ GRASP across the ACP if malicious software could be executed on
+ it. The CA should therefore authenticate only known trustworthy
+ EST servers, such as nodes with hardware protections against
+ malicious software. When registrars use their ACP certificate to
+ authenticate towards a CA, the id-kp-cmcRA [RFC6402] extended key
+ usage attribute allows the CA to determine that the ACP node was
+ permitted during enrollment to act as an ACP registrar. Without
+ the ability to talk to the CA, a malicious EST server can still
+ attract ACP nodes attempting to renew their keying material, but
+ they will fail to perform successful renewal of a valid ACP
+ certificate. The ACP node attempting to use the malicious EST
+ server can then continue to use a different EST server and log a
+ failure against a malicious EST server.
+
+ * Malicious on-path ACP nodes may filter valid EST server
+ announcements across the ACP, but such malicious ACP nodes could
+ equally filter any ACP traffic such as the EST traffic itself.
+ Either attack requires the ability to execute malicious software
+ on an impaired ACP node, though.
+
+ * In the absence of malicious software injection, an attacker that
+ can misconfigure an ACP node that supports EST server
+ functionality could attempt to configure a malicious CA. This
+ would not result in the ability to successfully renew ACP
+ certificates, but it could result in DoS attacks by becoming an
+ EST server and by making ACP nodes attempt their ACP certificate
+ renewal via this impaired ACP node. This problem can be avoided
+ when the EST server implementation can verify that the configured
+ CA is indeed providing renewal for certificates of the node's ACP.
+ The ability to do so depends on the protocol between the EST
+ server and the CA, which is outside the scope of this document.
+
+ In summary, attacks against the PKI/certificate dependencies of the
+ ACP can be minimized by a variety of hardware and/or software
+ components, including options such as TPM for IDevID and/or ACP
+ certificate, prohibitions against the execution of untrusted
+ software, and design aspects of the EST server functionality for the
+ ACP that eliminate configuration-level impairment.
+
+ Because ACP peers select one out of potentially more than one
+ mutually supported ACP secure channel protocols via the approach
+ described in Section 6.6, ACP secure channel setup is subject to
+ downgrade attacks by MITM attackers. This can be discovered after
+ such an attack by additional mechanisms described in Appendix A.9.9.
+ Alternatively, more advanced channel selection mechanisms can be
+ devised.
+
+ The security model of the ACP as defined in this document is tailored
+ for use with private PKI. The TA of a private PKI provides the
+ security against maliciously created ACP certificates that give
+ access to an ACP. Such attacks can create fake ACP certificates with
+ correct-looking AcpNodeNames, but those certificates would not pass
+ the certificate path validation of the ACP domain membership check
+ (see Section 6.2.3, point 2).
+
+ There is no prevention of source-address spoofing inside the ACP.
+ This implies that if an attacker gains access to the ACP, it can
+ spoof all addresses inside the ACP and fake messages from any other
+ node. New protocols and/or services running across the ACP should
+ therefore use end-to-end authentication inside the ACP. This is
+ already done by GRASP as specified in this document.
+
+ The ACP is designed to enable automation of current network
+ management and the management of future autonomic peer-to-peer/
+ distributed networks. Any ACP member can send ACP IPv6 packets to
+ other ACP members and announce via ACP GRASP services to all ACP
+ members without depending on centralized components.
+
+ The ACP relies on peer-to-peer authentication and authorization using
+ ACP certificates. This security model is necessary to enable the
+ autonomic ad hoc, any-to-any connectivity between ACP nodes. It
+ provides infrastructure protection through hop-by-hop authentication
+ and encryption -- without relying on third parties. For any services
+ where this complete autonomic peer-to-peer group security model is
+ appropriate, the ACP certificate can also be used unchanged, for
+ example, for any type of data plane routing protocol security.
+
+ This ACP security model is designed primarily to protect against
+ attack from the outside, not against attacks from the inside. To
+ protect against spoofing attacks from compromised on-path ACP nodes,
+ end-to-end encryption inside the ACP is used by new ACP signaling:
+ GRASP across the ACP using TLS. The same is expected from any non-
+ legacy services or protocols using the ACP. Because no group keys
+ are used, there is no risk of impacted nodes accessing end-to-end
+ encrypted traffic from other ACP nodes.
+
+ Attacks from impacted ACP nodes against the ACP are more difficult
+ than against the data plane because of the autoconfiguration of the
+ ACP and the absence of configuration options that could be abused to
+ change or break ACP behavior. This is excluding configuration for
+ workaround in support of non-autonomic components.
+
+ Mitigation against compromised ACP members is possible through
+ standard automated certificate management mechanisms including
+ revocation and nonrenewal of short-lived certificates. In this
+ specification, there are no further optimizations of these mechanisms
+ defined for the ACP (but see Appendix A.9.8).
+
+ Higher-layer service built using ACP certificates should not solely
+ rely on undifferentiated group security when another model is more
+ appropriate or more secure. For example, central network
+ configuration relies on a security model where only a few especially
+ trusted nodes are allowed to configure the data plane of network
+ nodes (CLI, NETCONF). This can be done through ACP certificates by
+ differentiating them and introducing roles. See Appendix A.9.5.
+
+ Operators and developers of provisioning software need to be aware of
+ how the provisioning and configuration of network devices impacts the
+ ability of the operator and/or provisioning software to remotely
+ access the network nodes. By using the ACP, most of the issues of
+ provisioning/configuration causing connectivity loss of remote
+ provisioning and configuration will be eliminated, see Section 6.
+ Only a few exceptions, such as explicit physical interface down
+ configuration, will be left. See Section 9.3.2.
+
+ Many details of ACP are designed with security in mind and discussed
+ elsewhere in the document.
+
+ IPv6 addresses used by nodes in the ACP are covered as part of the
+ node's domain certificate as described in Section 6.2.2. This allows
+ even verification of ownership of a peer's IPv6 address when using a
+ connection authenticated with the domain certificate.
+
+ The ACP acts as a security (and transport) substrate for GRASP inside
+ the ACP such that GRASP is not only protected by attacks from the
+ outside, but also by attacks from compromised inside attackers -- by
+ relying not only on hop-by-hop security of ACP secure channels, but
+ also by adding end-to-end security for those GRASP messages. See
+ Section 6.9.2.
+
+ ACP provides for secure, resilient zero-touch discovery of EST
+ servers for certificate renewal. See Section 6.2.5.
+
+ ACP provides extensible, autoconfiguring hop-by-hop protection of the
+ ACP infrastructure via the negotiation of hop-by-hop secure channel
+ protocols. See Section 6.6.
+
+ The ACP is designed to minimize attacks from the outside by
+ minimizing its dependency on any non-ACP (data plane) operations and/
+ or configuration on a node. See also Section 6.13.2.
+
+ In combination with BRSKI, ACP enables a resilient, fully zero-touch
+ network solution for short-lived certificates that can be renewed or
+ reenrolled even after unintentional expiry (e.g., due to interrupted
+ connectivity). See Appendix A.2.
+
+ Because ACP secure channels can be long lived, but certificates used
+ may be short-lived, secure channels, for example, built via IPsec,
+ need to be terminated when peer certificates expire. See
+ Section 6.8.5.
+
+ Section 7.2 describes how to implement a routed ACP topology
+ operating on what effectively is a large bridge domain when using L3/
+ L2 routers that operate at L2 in the data plane. In this case, the
+ ACP is subject to a much higher likelihood of attacks by other nodes
+ "stealing" L2 addresses than in the actual routed case, especially
+ when the bridged network includes untrusted devices such as hosts.
+ This is a generic issue in L2 LANs. L2/L3 devices often already have
+ some form of "port security" to prohibit this. They rely on Neighbor
+ Discovery Protocol (NDP) or DHCP learning which port/MAC-address and
+ IPv6 address belong together and blocking MAC/IPv6 source addresses
+ from wrong ports. This type of function needs to be enabled to
+ prohibit DoS attacks and specifically to protect the ACP. Likewise,
+ the GRASP DULL instance needs to ensure that the IPv6 address in the
+ locator-option matches the source IPv6 address of the DULL GRASP
+ packet.
+
+12. IANA Considerations
+
+ This document defines the "Autonomic Control Plane".
+
+ For the ANIMA-ACP-2020 ASN.1 module, IANA has assigned value 97 for
+ "id-mod-anima-acpnodename-2020" in the "SMI Security for PKIX Module
+ Identifier" (1.3.6.1.5.5.7.0) registry.
+
+ For the otherName / AcpNodeName, IANA has assigned value 10 for id-
+ on-AcpNodeName in the "SMI Security for PKIX Other Name Forms"
+ (1.3.6.1.5.5.7.8) registry.
+
+ IANA has registered the names in Table 2 in the "GRASP Objective
+ Names" subregistry of the "GeneRic Autonomic Signaling Protocol
+ (GRASP) Parameters" registry.
+
+ +================+==========================+
+ | Objective Name | Reference |
+ +================+==========================+
+ | AN_ACP | RFC 8994 (Section 6.4) |
+ +----------------+--------------------------+
+ | SRV.est | RFC 8994 (Section 6.2.5) |
+ +----------------+--------------------------+
+
+ Table 2: GRASP Objective Names
+
+ Explanation: this document chooses the initially strange looking
+ format "SRV.<service-name>" because these objective names would be in
+ line with potential future simplification of the GRASP objective
+ registry. Today, every name in the GRASP objective registry needs to
+ be explicitly allocated by IANA. In the future, this type of
+ objective names could be considered to be automatically registered in
+ that registry for the same service for which a <service-name> is
+ registered according to [RFC6335]. This explanation is solely
+ informational and has no impact on the requested registration.
+
+ IANA has created an "Autonomic Control Plane (ACP)" registry with the
+ subregistry, "ACP Address Type" (Table 3).
+
+ +=======+==================================+==================+
+ | Value | Description | Reference |
+ +=======+==================================+==================+
+ | 0 | ACP Zone Addressing Sub-Scheme/ | RFC 8994 |
+ | | ACP Manual Addressing Sub-Scheme | (Section 6.11.3, |
+ | | | Section 6.11.4) |
+ +-------+----------------------------------+------------------+
+ | 1 | ACP Vlong Addressing Sub-Scheme | RFC 8994 |
+ | | | (Section 6.11.5) |
+ +-------+----------------------------------+------------------+
+ | 2-3 | Unassigned | |
+ +-------+----------------------------------+------------------+
+
+ Table 3: Initial Values in the "ACP Address Type" Subregistry
+
+ The values in the "ACP Address Type" subregistry are numeric values
+ 0..3 paired with a name (string). Future values MUST be assigned
+ using the Standards Action policy defined by "Guidelines for Writing
+ an IANA Considerations Section in RFCs" [RFC8126].
+
+13. References
+
+13.1. Normative References
+
+ [IKEV2IANA]
+ IANA, "Internet Key Exchange Version 2 (IKEv2)
+ Parameters",
+ <https://www.iana.org/assignments/ikev2-parameters>.
+
+ [RFC1034] Mockapetris, P., "Domain names - concepts and facilities",
+ STD 13, RFC 1034, DOI 10.17487/RFC1034, November 1987,
+ <https://www.rfc-editor.org/info/rfc1034>.
+
+ [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>.
+
+ [RFC3810] Vida, R., Ed. and L. Costa, Ed., "Multicast Listener
+ Discovery Version 2 (MLDv2) for IPv6", RFC 3810,
+ DOI 10.17487/RFC3810, June 2004,
+ <https://www.rfc-editor.org/info/rfc3810>.
+
+ [RFC4191] Draves, R. and D. Thaler, "Default Router Preferences and
+ More-Specific Routes", RFC 4191, DOI 10.17487/RFC4191,
+ November 2005, <https://www.rfc-editor.org/info/rfc4191>.
+
+ [RFC4193] Hinden, R. and B. Haberman, "Unique Local IPv6 Unicast
+ Addresses", RFC 4193, DOI 10.17487/RFC4193, October 2005,
+ <https://www.rfc-editor.org/info/rfc4193>.
+
+ [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>.
+
+ [RFC4301] Kent, S. and K. Seo, "Security Architecture for the
+ Internet Protocol", RFC 4301, DOI 10.17487/RFC4301,
+ December 2005, <https://www.rfc-editor.org/info/rfc4301>.
+
+ [RFC4861] Narten, T., Nordmark, E., Simpson, W., and H. Soliman,
+ "Neighbor Discovery for IP version 6 (IPv6)", RFC 4861,
+ DOI 10.17487/RFC4861, September 2007,
+ <https://www.rfc-editor.org/info/rfc4861>.
+
+ [RFC4862] Thomson, S., Narten, T., and T. Jinmei, "IPv6 Stateless
+ Address Autoconfiguration", RFC 4862,
+ DOI 10.17487/RFC4862, September 2007,
+ <https://www.rfc-editor.org/info/rfc4862>.
+
+ [RFC5234] Crocker, D., Ed. and P. Overell, "Augmented BNF for Syntax
+ Specifications: ABNF", STD 68, RFC 5234,
+ DOI 10.17487/RFC5234, January 2008,
+ <https://www.rfc-editor.org/info/rfc5234>.
+
+ [RFC5246] Dierks, T. and E. Rescorla, "The Transport Layer Security
+ (TLS) Protocol Version 1.2", RFC 5246,
+ DOI 10.17487/RFC5246, August 2008,
+ <https://www.rfc-editor.org/info/rfc5246>.
+
+ [RFC5280] Cooper, D., Santesson, S., Farrell, S., Boeyen, S.,
+ Housley, R., and W. Polk, "Internet X.509 Public Key
+ Infrastructure Certificate and Certificate Revocation List
+ (CRL) Profile", RFC 5280, DOI 10.17487/RFC5280, May 2008,
+ <https://www.rfc-editor.org/info/rfc5280>.
+
+ [RFC5954] Gurbani, V., Ed., Carpenter, B., Ed., and B. Tate, Ed.,
+ "Essential Correction for IPv6 ABNF and URI Comparison in
+ RFC 3261", RFC 5954, DOI 10.17487/RFC5954, August 2010,
+ <https://www.rfc-editor.org/info/rfc5954>.
+
+ [RFC6347] Rescorla, E. and N. Modadugu, "Datagram Transport Layer
+ Security Version 1.2", RFC 6347, DOI 10.17487/RFC6347,
+ January 2012, <https://www.rfc-editor.org/info/rfc6347>.
+
+ [RFC6550] Winter, T., Ed., Thubert, P., Ed., Brandt, A., Hui, J.,
+ Kelsey, R., Levis, P., Pister, K., Struik, R., Vasseur,
+ JP., and R. Alexander, "RPL: IPv6 Routing Protocol for
+ Low-Power and Lossy Networks", RFC 6550,
+ DOI 10.17487/RFC6550, March 2012,
+ <https://www.rfc-editor.org/info/rfc6550>.
+
+ [RFC6551] Vasseur, JP., Ed., Kim, M., Ed., Pister, K., Dejean, N.,
+ and D. Barthel, "Routing Metrics Used for Path Calculation
+ in Low-Power and Lossy Networks", RFC 6551,
+ DOI 10.17487/RFC6551, March 2012,
+ <https://www.rfc-editor.org/info/rfc6551>.
+
+ [RFC6552] Thubert, P., Ed., "Objective Function Zero for the Routing
+ Protocol for Low-Power and Lossy Networks (RPL)",
+ RFC 6552, DOI 10.17487/RFC6552, March 2012,
+ <https://www.rfc-editor.org/info/rfc6552>.
+
+ [RFC6553] Hui, J. and JP. Vasseur, "The Routing Protocol for Low-
+ Power and Lossy Networks (RPL) Option for Carrying RPL
+ Information in Data-Plane Datagrams", RFC 6553,
+ DOI 10.17487/RFC6553, March 2012,
+ <https://www.rfc-editor.org/info/rfc6553>.
+
+ [RFC7030] Pritikin, M., Ed., Yee, P., Ed., and D. Harkins, Ed.,
+ "Enrollment over Secure Transport", RFC 7030,
+ DOI 10.17487/RFC7030, October 2013,
+ <https://www.rfc-editor.org/info/rfc7030>.
+
+ [RFC7296] Kaufman, C., Hoffman, P., Nir, Y., Eronen, P., and T.
+ Kivinen, "Internet Key Exchange Protocol Version 2
+ (IKEv2)", STD 79, RFC 7296, DOI 10.17487/RFC7296, October
+ 2014, <https://www.rfc-editor.org/info/rfc7296>.
+
+ [RFC7525] Sheffer, Y., Holz, R., and P. Saint-Andre,
+ "Recommendations for Secure Use of Transport Layer
+ Security (TLS) and Datagram Transport Layer Security
+ (DTLS)", BCP 195, RFC 7525, DOI 10.17487/RFC7525, May
+ 2015, <https://www.rfc-editor.org/info/rfc7525>.
+
+ [RFC7676] Pignataro, C., Bonica, R., and S. Krishnan, "IPv6 Support
+ for Generic Routing Encapsulation (GRE)", RFC 7676,
+ DOI 10.17487/RFC7676, October 2015,
+ <https://www.rfc-editor.org/info/rfc7676>.
+
+ [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>.
+
+ [RFC8221] Wouters, P., Migault, D., Mattsson, J., Nir, Y., and T.
+ Kivinen, "Cryptographic Algorithm Implementation
+ Requirements and Usage Guidance for Encapsulating Security
+ Payload (ESP) and Authentication Header (AH)", RFC 8221,
+ DOI 10.17487/RFC8221, October 2017,
+ <https://www.rfc-editor.org/info/rfc8221>.
+
+ [RFC8247] Nir, Y., Kivinen, T., Wouters, P., and D. Migault,
+ "Algorithm Implementation Requirements and Usage Guidance
+ for the Internet Key Exchange Protocol Version 2 (IKEv2)",
+ RFC 8247, DOI 10.17487/RFC8247, September 2017,
+ <https://www.rfc-editor.org/info/rfc8247>.
+
+ [RFC8422] Nir, Y., Josefsson, S., and M. Pegourie-Gonnard, "Elliptic
+ Curve Cryptography (ECC) Cipher Suites for Transport Layer
+ Security (TLS) Versions 1.2 and Earlier", RFC 8422,
+ DOI 10.17487/RFC8422, August 2018,
+ <https://www.rfc-editor.org/info/rfc8422>.
+
+ [RFC8446] Rescorla, E., "The Transport Layer Security (TLS) Protocol
+ Version 1.3", RFC 8446, DOI 10.17487/RFC8446, August 2018,
+ <https://www.rfc-editor.org/info/rfc8446>.
+
+ [RFC8610] Birkholz, H., Vigano, C., and C. Bormann, "Concise Data
+ Definition Language (CDDL): A Notational Convention to
+ Express Concise Binary Object Representation (CBOR) and
+ JSON Data Structures", RFC 8610, DOI 10.17487/RFC8610,
+ June 2019, <https://www.rfc-editor.org/info/rfc8610>.
+
+ [RFC8990] Bormann, C., Carpenter, B., Ed., and B. Liu, Ed., "GeneRic
+ Autonomic Signaling Protocol (GRASP)", RFC 8990,
+ DOI 10.17487/RFC8990, May 2021,
+ <https://www.rfc-editor.org/info/rfc8990>.
+
+ [RFC8995] Pritikin, M., Richardson, M., Eckert, T., Behringer, M.,
+ and K. Watsen, "Bootstrapping Remote Secure Key
+ Infrastructure (BRSKI)", RFC 8995, DOI 10.17487/RFC8995,
+ May 2021, <https://www.rfc-editor.org/info/rfc8995>.
+
+13.2. Informative References
+
+ [AR8021] IEEE, "IEEE Standard for Local and metropolitan area
+ networks - Secure Device Identity", IEEE 802.1AR,
+ <https://1.ieee802.org/security/802-1ar>.
+
+ [CABFORUM] CA/Browser Forum, "Certificate Contents for Baseline SSL",
+ November 2019, <https://cabforum.org/baseline-
+ requirements-certificate-contents/>.
+
+ [FCC] FCC, "June 15, 2020 T-Mobile Network Outage Report", A
+ Report of the Public Safety and Homeland Security Bureau
+ Federal Communications Commission, PS Docket No. 20-183,
+ October 2020, <https://docs.fcc.gov/public/attachments/
+ DOC-367699A1.docx>.
+
+ [IEEE-1588-2008]
+ IEEE, "IEEE Standard for a Precision Clock Synchronization
+ Protocol for Networked Measurement and Control Systems",
+ DOI 10.1109/IEEESTD.2008.4579760, IEEE 1588-2008, July
+ 2008,
+ <https://standards.ieee.org/standard/1588-2008.html>.
+
+ [IEEE-802.1X]
+ IEEE, "IEEE Standard for Local and metropolitan area
+ networks--Port-Based Network Access Control",
+ DOI 10.1109/IEEESTD.2010.5409813, IEEE 802.1X-2010,
+ February 2010,
+ <https://standards.ieee.org/standard/802_1X-2010.html>.
+
+ [LLDP] IEEE, "IEEE Standard for Local and metropolitan area
+ networks: Station and Media Access Control Connectivity
+ Discovery", DOI 10.1109/IEEESTD.2016.7433915, IEEE
+ 802.1AB-2016, March 2016,
+ <https://standards.ieee.org/standard/802_1AB-2016.html>.
+
+ [MACSEC] IEEE, "IEEE Standard for Local and Metropolitan Area
+ Networks: Media Access Control (MAC) Security",
+ DOI 10.1109/IEEESTD.2006.245590, IEEE 802.1AE-2006, August
+ 2006,
+ <https://standards.ieee.org/standard/802_1AE-2006.html>.
+
+ [NOC-AUTOCONFIG]
+ Eckert, T., Ed., "Autoconfiguration of NOC services in ACP
+ networks via GRASP", Work in Progress, Internet-Draft,
+ draft-eckert-anima-noc-autoconfig-00, 2 July 2018,
+ <https://tools.ietf.org/html/draft-eckert-anima-noc-
+ autoconfig-00>.
+
+ [OP-TECH] Wikipedia, "Operational technology", October 2020,
+ <https://en.wikipedia.org/w/
+ index.php?title=Operational_technology&oldid=986363045>.
+
+ [RFC1112] Deering, S., "Host extensions for IP multicasting", STD 5,
+ RFC 1112, DOI 10.17487/RFC1112, August 1989,
+ <https://www.rfc-editor.org/info/rfc1112>.
+
+ [RFC1492] Finseth, C., "An Access Control Protocol, Sometimes Called
+ TACACS", RFC 1492, DOI 10.17487/RFC1492, July 1993,
+ <https://www.rfc-editor.org/info/rfc1492>.
+
+ [RFC1654] Rekhter, Y., Ed. and T. Li, Ed., "A Border Gateway
+ Protocol 4 (BGP-4)", RFC 1654, DOI 10.17487/RFC1654, July
+ 1994, <https://www.rfc-editor.org/info/rfc1654>.
+
+ [RFC1918] Rekhter, Y., Moskowitz, B., Karrenberg, D., de Groot, G.
+ J., and E. Lear, "Address Allocation for Private
+ Internets", BCP 5, RFC 1918, DOI 10.17487/RFC1918,
+ February 1996, <https://www.rfc-editor.org/info/rfc1918>.
+
+ [RFC2315] Kaliski, B., "PKCS #7: Cryptographic Message Syntax
+ Version 1.5", RFC 2315, DOI 10.17487/RFC2315, March 1998,
+ <https://www.rfc-editor.org/info/rfc2315>.
+
+ [RFC2409] Harkins, D. and D. Carrel, "The Internet Key Exchange
+ (IKE)", RFC 2409, DOI 10.17487/RFC2409, November 1998,
+ <https://www.rfc-editor.org/info/rfc2409>.
+
+ [RFC2865] Rigney, C., Willens, S., Rubens, A., and W. Simpson,
+ "Remote Authentication Dial In User Service (RADIUS)",
+ RFC 2865, DOI 10.17487/RFC2865, June 2000,
+ <https://www.rfc-editor.org/info/rfc2865>.
+
+ [RFC3164] Lonvick, C., "The BSD Syslog Protocol", RFC 3164,
+ DOI 10.17487/RFC3164, August 2001,
+ <https://www.rfc-editor.org/info/rfc3164>.
+
+ [RFC3315] Droms, R., Ed., Bound, J., Volz, B., Lemon, T., Perkins,
+ C., and M. Carney, "Dynamic Host Configuration Protocol
+ for IPv6 (DHCPv6)", RFC 3315, DOI 10.17487/RFC3315, July
+ 2003, <https://www.rfc-editor.org/info/rfc3315>.
+
+ [RFC3411] Harrington, D., Presuhn, R., and B. Wijnen, "An
+ Architecture for Describing Simple Network Management
+ Protocol (SNMP) Management Frameworks", STD 62, RFC 3411,
+ DOI 10.17487/RFC3411, December 2002,
+ <https://www.rfc-editor.org/info/rfc3411>.
+
+ [RFC3596] Thomson, S., Huitema, C., Ksinant, V., and M. Souissi,
+ "DNS Extensions to Support IP Version 6", STD 88,
+ RFC 3596, DOI 10.17487/RFC3596, October 2003,
+ <https://www.rfc-editor.org/info/rfc3596>.
+
+ [RFC3954] Claise, B., Ed., "Cisco Systems NetFlow Services Export
+ Version 9", RFC 3954, DOI 10.17487/RFC3954, October 2004,
+ <https://www.rfc-editor.org/info/rfc3954>.
+
+ [RFC4007] Deering, S., Haberman, B., Jinmei, T., Nordmark, E., and
+ B. Zill, "IPv6 Scoped Address Architecture", RFC 4007,
+ DOI 10.17487/RFC4007, March 2005,
+ <https://www.rfc-editor.org/info/rfc4007>.
+
+ [RFC4210] Adams, C., Farrell, S., Kause, T., and T. Mononen,
+ "Internet X.509 Public Key Infrastructure Certificate
+ Management Protocol (CMP)", RFC 4210,
+ DOI 10.17487/RFC4210, September 2005,
+ <https://www.rfc-editor.org/info/rfc4210>.
+
+ [RFC4364] Rosen, E. and Y. Rekhter, "BGP/MPLS IP Virtual Private
+ Networks (VPNs)", RFC 4364, DOI 10.17487/RFC4364, February
+ 2006, <https://www.rfc-editor.org/info/rfc4364>.
+
+ [RFC4429] Moore, N., "Optimistic Duplicate Address Detection (DAD)
+ for IPv6", RFC 4429, DOI 10.17487/RFC4429, April 2006,
+ <https://www.rfc-editor.org/info/rfc4429>.
+
+ [RFC4541] Christensen, M., Kimball, K., and F. Solensky,
+ "Considerations for Internet Group Management Protocol
+ (IGMP) and Multicast Listener Discovery (MLD) Snooping
+ Switches", RFC 4541, DOI 10.17487/RFC4541, May 2006,
+ <https://www.rfc-editor.org/info/rfc4541>.
+
+ [RFC4604] Holbrook, H., Cain, B., and B. Haberman, "Using Internet
+ Group Management Protocol Version 3 (IGMPv3) and Multicast
+ Listener Discovery Protocol Version 2 (MLDv2) for Source-
+ Specific Multicast", RFC 4604, DOI 10.17487/RFC4604,
+ August 2006, <https://www.rfc-editor.org/info/rfc4604>.
+
+ [RFC4607] Holbrook, H. and B. Cain, "Source-Specific Multicast for
+ IP", RFC 4607, DOI 10.17487/RFC4607, August 2006,
+ <https://www.rfc-editor.org/info/rfc4607>.
+
+ [RFC4610] Farinacci, D. and Y. Cai, "Anycast-RP Using Protocol
+ Independent Multicast (PIM)", RFC 4610,
+ DOI 10.17487/RFC4610, August 2006,
+ <https://www.rfc-editor.org/info/rfc4610>.
+
+ [RFC4985] Santesson, S., "Internet X.509 Public Key Infrastructure
+ Subject Alternative Name for Expression of Service Name",
+ RFC 4985, DOI 10.17487/RFC4985, August 2007,
+ <https://www.rfc-editor.org/info/rfc4985>.
+
+ [RFC5790] Liu, H., Cao, W., and H. Asaeda, "Lightweight Internet
+ Group Management Protocol Version 3 (IGMPv3) and Multicast
+ Listener Discovery Version 2 (MLDv2) Protocols", RFC 5790,
+ DOI 10.17487/RFC5790, February 2010,
+ <https://www.rfc-editor.org/info/rfc5790>.
+
+ [RFC5880] Katz, D. and D. Ward, "Bidirectional Forwarding Detection
+ (BFD)", RFC 5880, DOI 10.17487/RFC5880, June 2010,
+ <https://www.rfc-editor.org/info/rfc5880>.
+
+ [RFC5905] Mills, D., Martin, J., Ed., Burbank, J., and W. Kasch,
+ "Network Time Protocol Version 4: Protocol and Algorithms
+ Specification", RFC 5905, DOI 10.17487/RFC5905, June 2010,
+ <https://www.rfc-editor.org/info/rfc5905>.
+
+ [RFC5912] Hoffman, P. and J. Schaad, "New ASN.1 Modules for the
+ Public Key Infrastructure Using X.509 (PKIX)", RFC 5912,
+ DOI 10.17487/RFC5912, June 2010,
+ <https://www.rfc-editor.org/info/rfc5912>.
+
+ [RFC6120] Saint-Andre, P., "Extensible Messaging and Presence
+ Protocol (XMPP): Core", RFC 6120, DOI 10.17487/RFC6120,
+ March 2011, <https://www.rfc-editor.org/info/rfc6120>.
+
+ [RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed.,
+ and A. Bierman, Ed., "Network Configuration Protocol
+ (NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011,
+ <https://www.rfc-editor.org/info/rfc6241>.
+
+ [RFC6335] Cotton, M., Eggert, L., Touch, J., Westerlund, M., and S.
+ Cheshire, "Internet Assigned Numbers Authority (IANA)
+ Procedures for the Management of the Service Name and
+ Transport Protocol Port Number Registry", BCP 165,
+ RFC 6335, DOI 10.17487/RFC6335, August 2011,
+ <https://www.rfc-editor.org/info/rfc6335>.
+
+ [RFC6402] Schaad, J., "Certificate Management over CMS (CMC)
+ Updates", RFC 6402, DOI 10.17487/RFC6402, November 2011,
+ <https://www.rfc-editor.org/info/rfc6402>.
+
+ [RFC6407] Weis, B., Rowles, S., and T. Hardjono, "The Group Domain
+ of Interpretation", RFC 6407, DOI 10.17487/RFC6407,
+ October 2011, <https://www.rfc-editor.org/info/rfc6407>.
+
+ [RFC6554] Hui, J., Vasseur, JP., Culler, D., and V. Manral, "An IPv6
+ Routing Header for Source Routes with the Routing Protocol
+ for Low-Power and Lossy Networks (RPL)", RFC 6554,
+ DOI 10.17487/RFC6554, March 2012,
+ <https://www.rfc-editor.org/info/rfc6554>.
+
+ [RFC6724] Thaler, D., Ed., Draves, R., Matsumoto, A., and T. Chown,
+ "Default Address Selection for Internet Protocol Version 6
+ (IPv6)", RFC 6724, DOI 10.17487/RFC6724, September 2012,
+ <https://www.rfc-editor.org/info/rfc6724>.
+
+ [RFC6733] Fajardo, V., Ed., Arkko, J., Loughney, J., and G. Zorn,
+ Ed., "Diameter Base Protocol", RFC 6733,
+ DOI 10.17487/RFC6733, October 2012,
+ <https://www.rfc-editor.org/info/rfc6733>.
+
+ [RFC6762] Cheshire, S. and M. Krochmal, "Multicast DNS", RFC 6762,
+ DOI 10.17487/RFC6762, February 2013,
+ <https://www.rfc-editor.org/info/rfc6762>.
+
+ [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>.
+
+ [RFC6824] Ford, A., Raiciu, C., Handley, M., and O. Bonaventure,
+ "TCP Extensions for Multipath Operation with Multiple
+ Addresses", RFC 6824, DOI 10.17487/RFC6824, January 2013,
+ <https://www.rfc-editor.org/info/rfc6824>.
+
+ [RFC6830] Farinacci, D., Fuller, V., Meyer, D., and D. Lewis, "The
+ Locator/ID Separation Protocol (LISP)", RFC 6830,
+ DOI 10.17487/RFC6830, January 2013,
+ <https://www.rfc-editor.org/info/rfc6830>.
+
+ [RFC7011] Claise, B., Ed., Trammell, B., Ed., and P. Aitken,
+ "Specification of the IP Flow Information Export (IPFIX)
+ Protocol for the Exchange of Flow Information", STD 77,
+ RFC 7011, DOI 10.17487/RFC7011, September 2013,
+ <https://www.rfc-editor.org/info/rfc7011>.
+
+ [RFC7404] Behringer, M. and E. Vyncke, "Using Only Link-Local
+ Addressing inside an IPv6 Network", RFC 7404,
+ DOI 10.17487/RFC7404, November 2014,
+ <https://www.rfc-editor.org/info/rfc7404>.
+
+ [RFC7426] Haleplidis, E., Ed., Pentikousis, K., Ed., Denazis, S.,
+ Hadi Salim, J., Meyer, D., and O. Koufopavlou, "Software-
+ Defined Networking (SDN): Layers and Architecture
+ Terminology", RFC 7426, DOI 10.17487/RFC7426, January
+ 2015, <https://www.rfc-editor.org/info/rfc7426>.
+
+ [RFC7435] Dukhovni, V., "Opportunistic Security: Some Protection
+ Most of the Time", RFC 7435, DOI 10.17487/RFC7435,
+ December 2014, <https://www.rfc-editor.org/info/rfc7435>.
+
+ [RFC7575] Behringer, M., Pritikin, M., Bjarnason, S., Clemm, A.,
+ Carpenter, B., Jiang, S., and L. Ciavaglia, "Autonomic
+ Networking: Definitions and Design Goals", RFC 7575,
+ DOI 10.17487/RFC7575, June 2015,
+ <https://www.rfc-editor.org/info/rfc7575>.
+
+ [RFC7576] Jiang, S., Carpenter, B., and M. Behringer, "General Gap
+ Analysis for Autonomic Networking", RFC 7576,
+ DOI 10.17487/RFC7576, June 2015,
+ <https://www.rfc-editor.org/info/rfc7576>.
+
+ [RFC7585] Winter, S. and M. McCauley, "Dynamic Peer Discovery for
+ RADIUS/TLS and RADIUS/DTLS Based on the Network Access
+ Identifier (NAI)", RFC 7585, DOI 10.17487/RFC7585, October
+ 2015, <https://www.rfc-editor.org/info/rfc7585>.
+
+ [RFC7721] Cooper, A., Gont, F., and D. Thaler, "Security and Privacy
+ Considerations for IPv6 Address Generation Mechanisms",
+ RFC 7721, DOI 10.17487/RFC7721, March 2016,
+ <https://www.rfc-editor.org/info/rfc7721>.
+
+ [RFC7761] Fenner, B., Handley, M., Holbrook, H., Kouvelas, I.,
+ Parekh, R., Zhang, Z., and L. Zheng, "Protocol Independent
+ Multicast - Sparse Mode (PIM-SM): Protocol Specification
+ (Revised)", STD 83, RFC 7761, DOI 10.17487/RFC7761, March
+ 2016, <https://www.rfc-editor.org/info/rfc7761>.
+
+ [RFC7950] Bjorklund, M., Ed., "The YANG 1.1 Data Modeling Language",
+ RFC 7950, DOI 10.17487/RFC7950, August 2016,
+ <https://www.rfc-editor.org/info/rfc7950>.
+
+ [RFC8028] Baker, F. and B. Carpenter, "First-Hop Router Selection by
+ Hosts in a Multi-Prefix Network", RFC 8028,
+ DOI 10.17487/RFC8028, November 2016,
+ <https://www.rfc-editor.org/info/rfc8028>.
+
+ [RFC8126] Cotton, M., Leiba, B., and T. Narten, "Guidelines for
+ Writing an IANA Considerations Section in RFCs", BCP 26,
+ RFC 8126, DOI 10.17487/RFC8126, June 2017,
+ <https://www.rfc-editor.org/info/rfc8126>.
+
+ [RFC8316] Nobre, J., Granville, L., Clemm, A., and A. Gonzalez
+ Prieto, "Autonomic Networking Use Case for Distributed
+ Detection of Service Level Agreement (SLA) Violations",
+ RFC 8316, DOI 10.17487/RFC8316, February 2018,
+ <https://www.rfc-editor.org/info/rfc8316>.
+
+ [RFC8366] Watsen, K., Richardson, M., Pritikin, M., and T. Eckert,
+ "A Voucher Artifact for Bootstrapping Protocols",
+ RFC 8366, DOI 10.17487/RFC8366, May 2018,
+ <https://www.rfc-editor.org/info/rfc8366>.
+
+ [RFC8368] Eckert, T., Ed. and M. Behringer, "Using an Autonomic
+ Control Plane for Stable Connectivity of Network
+ Operations, Administration, and Maintenance (OAM)",
+ RFC 8368, DOI 10.17487/RFC8368, May 2018,
+ <https://www.rfc-editor.org/info/rfc8368>.
+
+ [RFC8398] Melnikov, A., Ed. and W. Chuang, Ed., "Internationalized
+ Email Addresses in X.509 Certificates", RFC 8398,
+ DOI 10.17487/RFC8398, May 2018,
+ <https://www.rfc-editor.org/info/rfc8398>.
+
+ [RFC8402] Filsfils, C., Ed., Previdi, S., Ed., Ginsberg, L.,
+ Decraene, B., Litkowski, S., and R. Shakir, "Segment
+ Routing Architecture", RFC 8402, DOI 10.17487/RFC8402,
+ July 2018, <https://www.rfc-editor.org/info/rfc8402>.
+
+ [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>.
+
+ [RFC8684] Ford, A., Raiciu, C., Handley, M., Bonaventure, O., and C.
+ Paasch, "TCP Extensions for Multipath Operation with
+ Multiple Addresses", RFC 8684, DOI 10.17487/RFC8684, March
+ 2020, <https://www.rfc-editor.org/info/rfc8684>.
+
+ [RFC8739] Sheffer, Y., Lopez, D., Gonzalez de Dios, O., Pastor
+ Perales, A., and T. Fossati, "Support for Short-Term,
+ Automatically Renewed (STAR) Certificates in the Automated
+ Certificate Management Environment (ACME)", RFC 8739,
+ DOI 10.17487/RFC8739, March 2020,
+ <https://www.rfc-editor.org/info/rfc8739>.
+
+ [RFC8981] Gont, F., Krishnan, S., Narten, T., and R. Draves,
+ "Temporary Address Extensions for Stateless Address
+ Autoconfiguration in IPv6", RFC 8981,
+ DOI 10.17487/RFC8981, February 2021,
+ <https://www.rfc-editor.org/info/rfc8981>.
+
+ [RFC8992] Jiang, S., Ed., Du, Z., Carpenter, B., and Q. Sun,
+ "Autonomic IPv6 Edge Prefix Management in Large-Scale
+ Networks", RFC 8992, DOI 10.17487/RFC8992, May 2021,
+ <https://www.rfc-editor.org/info/rfc8992>.
+
+ [RFC8993] Behringer, M., Ed., Carpenter, B., Eckert, T., Ciavaglia,
+ L., and J. Nobre, "A Reference Model for Autonomic
+ Networking", RFC 8993, DOI 10.17487/RFC8993, May 2021,
+ <https://www.rfc-editor.org/info/rfc8993>.
+
+ [ROLL-APPLICABILITY]
+ Richardson, M., "ROLL Applicability Statement Template",
+ Work in Progress, Internet-Draft, draft-ietf-roll-
+ applicability-template-09, 3 May 2016,
+ <https://tools.ietf.org/html/draft-ietf-roll-
+ applicability-template-09>.
+
+ [SR] Wikipedia, "Single-root input/output virtualization",
+ September 2020, <https://en.wikipedia.org/w/
+ index.php?title=Single-root_input/
+ output_virtualization&oldid=978867619>.
+
+ [TLS-DTLS13]
+ Rescorla, E., Tschofenig, H., and N. Modadugu, "The
+ Datagram Transport Layer Security (DTLS) Protocol Version
+ 1.3", Work in Progress, Internet-Draft, draft-ietf-tls-
+ dtls13-43, 30 April 2021,
+ <https://tools.ietf.org/html/draft-ietf-tls-dtls13-43>.
+
+ [X.509] ITU-T, "Information technology - Open Systems
+ Interconnection - The Directory: Public-key and attribute
+ certificate frameworks", ITU-T Recommendation X.509,
+ October 2016, <https://www.itu.int/rec/T-REC-X.509>.
+
+ [X.520] ITU-T, "Information technology - Open Systems
+ Interconnection - The Directory: Selected attribute
+ types", ITU-T Recommendation X.520, October 2016,
+ <https://www.itu.int/rec/T-REC-X.520>.
+
+Appendix A. Background and Future (Informative)
+
+ The following sections provide background information about aspects
+ of the normative parts of this document or associated mechanisms such
+ as BRSKI (such as why specific choices were made by the ACP), and
+ they discuss possible future variations of the ACP.
+
+A.1. ACP Address Space Schemes
+
+ This document defines the Zone, Vlong, and Manual Addressing Sub-
+ Schemes primarily to support address prefix assignment via
+ distributed, potentially uncoordinated ACP registrars as defined in
+ Section 6.11.7. This costs a 48/46-bit identifier so that these ACP
+ registrars can assign nonconflicting address prefixes. This design
+ does not leave enough bits to simultaneously support a large number
+ of nodes (Node-ID), plus a large prefix of local addresses for every
+ node, plus a large enough set of bits to identify a routing zone. As
+ a result, the Zone and Vlong 8/16 Addressing Sub-Schemes attempt to
+ support all features but via separate prefixes.
+
+ In networks that expect always to rely on a centralized PMS as
+ described Section 9.2.5, the 48/46-bits for the Registrar-ID could be
+ saved. Such variations of the ACP addressing mechanisms could be
+ introduced through future work in different ways. If a new otherName
+ was introduced, incompatible ACP variations could be created where
+ every design aspect of the ACP could be changed, including all
+ addressing choices. If instead a new addressing sub-scheme would be
+ defined, it could be a backward-compatible extension of this ACP
+ specification. Information such as the size of a zone prefix and the
+ length of the prefix assigned to the ACP node itself could be encoded
+ via the extension field of the acp-node-name.
+
+ Note that an explicitly defined Manual Addressing Sub-Scheme is
+ always beneficial to provide an easy way for ACP nodes to prohibit
+ incorrect non-autonomic configuration of any non-"Manual" ACP address
+ spaces and therefore ensure that such non-autonomic operations will
+ never impact correct routing for any non-"Manual" ACP addresses
+ assigned via ACP certificates.
+
+A.2. BRSKI Bootstrap (ANI)
+
+ BRSKI describes how nodes with an IDevID certificate can securely and
+ zero-touch enroll with an LDevID certificate to support the ACP.
+ BRSKI also leverages the ACP to enable zero-touch bootstrap of new
+ nodes across networks without any configuration requirements across
+ the transit nodes (e.g., no DHCP, DNS forwarding, and/or server
+ setup). This includes otherwise unconfigured networks as described
+ in Section 3.2. Therefore, BRSKI in conjunction with ACP provides
+ for a secure and zero-touch management solution for complete
+ networks. Nodes supporting such an infrastructure (BRSKI and ACP)
+ are called ANI nodes (Autonomic Networking Infrastructure), see
+ [RFC8993]. Nodes that do not support an IDevID certificate but only
+ an (insecure) vendor-specific Unique Device Identifier (UDI) or nodes
+ whose manufacturer does not support a MASA could use some future,
+ reduced-security version of BRSKI.
+
+ When BRSKI is used to provision a domain certificate (which is called
+ enrollment), the BRSKI registrar (acting as an enhanced EST server)
+ must include the otherName / AcpNodeName encoded ACP address and
+ domain name to the enrolling node (called a pledge) via its response
+ to the pledge's EST CSR Attributes Request that is mandatory in
+ BRSKI.
+
+ The CA in an ACP network must not change the otherName / AcpNodeName
+ in the certificate. The ACP nodes can therefore find their ACP
+ addresses and domain using this field in the domain certificate, both
+ for themselves as well as for other nodes.
+
+ The use of BRSKI in conjunction with the ACP can also help to further
+ simplify maintenance and renewal of domain certificates. Instead of
+ relying on CRL, the lifetime of certificates can be made extremely
+ small, for example, on the order of hours. When a node fails to
+ connect to the ACP within its certificate lifetime, it cannot connect
+ to the ACP to renew its certificate across it (using just EST), but
+ it can still renew its certificate as an "enrolled/expired pledge"
+ via the BRSKI bootstrap proxy. This requires only that the BRSKI
+ registrar honors expired domain certificates and that the pledge
+ attempts to perform TLS authentication for BRSKI bootstrap using its
+ expired domain certificate before falling back to attempting to use
+ its IDevID certificate for BRSKI. This mechanism could also render
+ CRLs unnecessary because the BRSKI registrar in conjunction with the
+ CA would not renew revoked certificates -- only a "Do-not-renew" list
+ would be necessary on the BRSKI registrar/CA.
+
+ In the absence of BRSKI or less secure variants thereof, the
+ provisioning of certificates may involve one or more touches or
+ nonstandardized automation. Node vendors usually support the
+ provisioning of certificates into nodes via PKCS #7 (see "PKCS #7:
+ Cryptographic Message Syntax Version 1.5" [RFC2315]) and may support
+ this provisioning through vendor-specific models via NETCONF
+ ("Network Configuration Protocol (NETCONF)" [RFC6241]). If such
+ nodes also support NETCONF Zero Touch [RFC8572], then this can be
+ combined with zero-touch provisioning of domain certificates into
+ nodes. Unless there is the equivalent integration of NETCONF
+ connections across the ACP as there is in BRSKI, this combination
+ would not support zero-touch bootstrap across an unconfigured
+ network, though.
+
+A.3. ACP Neighbor Discovery Protocol Selection
+
+ This section discusses why GRASP DULL was chosen as the discovery
+ protocol for L2-adjacent candidate ACP neighbors. The contenders
+ that were considered were GRASP, mDNS, and LLDP.
+
+A.3.1. LLDP
+
+ LLDP and Cisco's earlier Cisco Discovery Protocol (CDP) are examples
+ of L2 discovery protocols that terminate their messages on L2 ports.
+ If those protocols had been chosen for ACP neighbor discovery, ACP
+ neighbor discovery would also have terminated on L2 ports. This
+ would have prevented ACP construction over non-ACP-capable, but LLDP-
+ or CDP-enabled L2 switches. LLDP has extensions using different MAC
+ addresses, and this could have been an option for ACP discovery as
+ well, but the additional required IEEE standardization and definition
+ of a profile for such a modified instance of LLDP seemed to be more
+ work than the benefit of "reusing the existing protocol" LLDP for
+ this very simple purpose.
+
+A.3.2. mDNS and L2 Support
+
+ Multicast DNS (mDNS) "Multicast DNS" [RFC6762] with DNS Service
+ Discovery (DNS-SD) Resource Records (RRs) as defined in "DNS-Based
+ Service Discovery" [RFC6763] was a key contender as an ACP discovery
+ protocol. Because it relies on link-local IP multicast, it operates
+ at the subnet level and is also found in L2 switches. The authors of
+ this document are not aware of an mDNS implementation that terminates
+ its mDNS messages on L2 ports instead of on the subnet level. If
+ mDNS was used as the ACP discovery mechanism on an ACP-capable
+ (L3)/L2 switch as outlined in Section 7, then this would be necessary
+ to implement. It is likely that termination of mDNS messages could
+ only be applied to all mDNS messages from such a port, which would
+ then make it necessary to software forward any non-ACP-related mDNS
+ messages to maintain prior non-ACP mDNS functionality. Adding
+ support for ACP to such L2 switches with mDNS could therefore create
+ regression problems for prior mDNS functionality on those nodes.
+ With low performance of software forwarding in many L2 switches, this
+ could also make the ACP risky to support on such L2 switches.
+
+A.3.3. Why DULL GRASP?
+
+ LLDP was not considered because of the above mentioned issues. mDNS
+ was not selected because of the above L2 mDNS considerations and
+ because of the following additional points.
+
+ If mDNS was not already existing in a node, it would be more work to
+ implement than DULL GRASP, and if an existing implementation of mDNS
+ was used, it would likely be more code space than a separate
+ implementation of DULL GRASP or a shared implementation of DULL GRASP
+ and GRASP in the ACP.
+
+A.4. Choice of Routing Protocol (RPL)
+
+ This section motivates why RPL ("IPv6 Routing Protocol for Low-Power
+ and Lossy Networks [RFC6550]) was chosen as the default (and in this
+ specification only) routing protocol for the ACP. The choice and
+ above explained profile were derived from a pre-standard
+ implementation of ACP that was successfully deployed in operational
+ networks.
+
+ The requirements for routing in the ACP are the following:
+
+ * Self-management: the ACP must build automatically, without human
+ intervention. Therefore, the routing protocol must also work
+ completely automatically. RPL is a simple, self-managing
+ protocol, which does not require zones or areas; it is also self-
+ configuring, since configuration is carried as part of the
+ protocol (see Section 6.7.6 of [RFC6550]).
+
+ * Scale: the ACP builds over an entire domain, which could be a
+ large enterprise or service provider network. The routing
+ protocol must therefore support domains of 100,000 nodes or more,
+ ideally without the need for zoning or separation into areas. RPL
+ has this scale property. This is based on extensive use of
+ default routing.
+
+ * Low resource consumption: the ACP supports traditional network
+ infrastructure, thus runs in addition to traditional protocols.
+ The ACP, and specifically the routing protocol, must have low
+ resource consumption requirements, both in terms of memory and
+ CPU. Specifically, at edge nodes, where memory and CPU are
+ scarce, consumption should be minimal. RPL builds a DODAG, where
+ the main resource consumption is at the root of the DODAG. The
+ closer to the edge of the network, the less state needs to be
+ maintained. This adapts nicely to the typical network design.
+ Also, all changes below a common parent node are kept below that
+ parent node.
+
+ * Support for unstructured address space: in the ANI, node addresses
+ are identifiers, they and may not be assigned in a topological
+ way. Also, nodes may move topologically, without changing their
+ address. Therefore, the routing protocol must support completely
+ unstructured address space. RPL is specifically made for mobile,
+ ad hoc networks, with no assumptions on topologically aligned
+ addressing.
+
+ * Modularity: to keep the initial implementation small, yet allow
+ for more complex methods later, it is highly desirable that the
+ routing protocol has a simple base functionality, but can import
+ new functional modules if needed. RPL has this property with the
+ concept of "Objective Function", which is a plugin to modify
+ routing behavior.
+
+ * Extensibility: since the ANI is a new concept, it is likely that
+ changes to the way of operation will happen over time. RPL allows
+ for new Objective Functions to be introduced later, which allow
+ changes to the way the routing protocol creates the DAGs.
+
+ * Multi-topology support: it may become necessary in the future to
+ support more than one DODAG for different purposes, using
+ different Objective Functions. RPL allow for the creation of
+ several parallel DODAGs should this be required. This could be
+ used to create different topologies to reach different roots.
+
+ * No need for path optimization: RPL does not necessarily compute
+ the optimal path between any two nodes. However, the ACP does not
+ require this today, since it carries mainly delay-insensitive
+ feedback loops. It is possible that different optimization
+ schemes will become necessary in the future, but RPL can be
+ expanded (see "Extensibility" above).
+
+A.5. ACP Information Distribution and Multicast
+
+ IP multicast is not used by the ACP because the ANI itself does not
+ require IP multicast but only service announcement/discovery. Using
+ IP multicast for that would have made it necessary to develop a zero-
+ touch autoconfiguring solution for ASM (Any Source Multicast - the
+ original form of IP multicast defined in "Host extensions for IP
+ multicasting" [RFC1112]), which would be quite complex and difficult
+ to justify. One aspect of complexity where no attempt at a solution
+ has been described in IETF documents is the automatic selection of
+ routers that should be PIM Sparse Mode (PIM-SM) Rendezvous Points
+ (RPs) (see "Protocol Independent Multicast - Sparse Mode (PIM-SM):
+ Protocol Specification (Revised)" [RFC7761]). The other aspects of
+ complexity are the implementation of MLD ("Using Internet Group
+ Management Protocol Version 3 (IGMPv3) and Multicast Listener
+ Discovery Protocol Version 2 (MLDv2) for Source-Specific Multicast"
+ [RFC4604]), PIM-SM, and Anycast-RP (see "Anycast-RP Using Protocol
+ Independent Multicast (PIM)" [RFC4610]). If those implementations
+ already exist in a product, then they would be very likely tied to
+ accelerated forwarding, which consumes hardware resources, and that
+ in turn is difficult to justify as a cost of performing only service
+ discovery.
+
+ Some future ASA may need high-performance, in-network data
+ replication. That is the case when the use of IP multicast is
+ justified. Such an ASA can then use service discovery from ACP
+ GRASP, and then they do not need ASM but only SSM (see
+ "Source-Specific Multicast for IP" [RFC4607]) for the IP multicast
+ replication. SSM itself can simply be enabled in the data plane (or
+ even in an update to the ACP) without any configuration other than
+ just enabling it on all nodes, and it only requires a simpler version
+ of MLD (see "Lightweight Internet Group Management Protocol Version 3
+ (IGMPv3) and Multicast Listener Discovery Version 2 (MLDv2)
+ Protocols" [RFC5790]).
+
+ IGP routing protocols based on LSP (Link State Protocol) typically
+ have a mechanism to flood information, and such a mechanism could be
+ used to flood GRASP objectives by defining them to be information of
+ that IGP. This would be a possible optimization in future variations
+ of the ACP that do use an LSP-based routing protocol. Note though
+ that such a mechanism would not work easily for GRASP M_DISCOVERY
+ messages, which are intelligently (constrained) flooded not across
+ the whole ACP, but only up to a node where a responder is found. We
+ expect that many future services in the ASA will have only a few
+ consuming ASAs, and for those cases, the M_DISCOVERY method is more
+ efficient than flooding across the whole domain.
+
+ Because the ACP uses RPL, one desirable future extension is to use
+ RPL's existing notion of DODAG, which are loop-free distribution
+ trees, to make GRASP flooding more efficient both for M_FLOOD and
+ M_DISCOVERY. See Section 6.13.5 for how this will be specifically
+ beneficial when using NBMA interfaces. This is not currently
+ specified in this document because it is not quite clear yet what
+ exactly the implications are to make GRASP flooding depend on RPL
+ DODAG convergence and how difficult it would be to let GRASP flooding
+ access the DODAG information.
+
+A.6. CAs, Domains, and Routing Subdomains
+
+ There is a wide range of setting up different ACP solutions by
+ appropriately using CAs and the domain and rsub elements in the acp-
+ node-name in the domain certificate. We summarize these options here
+ as they have been explained in different parts of the document and
+ discuss possible and desirable extensions.
+
+ An ACP domain is the set of all ACP nodes that can authenticate each
+ other as belonging to the same ACP network using the ACP domain
+ membership check (Section 6.2.3). GRASP inside the ACP is run across
+ all transitively connected ACP nodes in a domain.
+
+ The rsub element in the acp-node-name permits the use of addresses
+ from different ULA prefixes. One use case is the creation of
+ multiple physical networks that initially may be separated with one
+ ACP domain but different routing subdomains, so that all nodes can
+ mutually trust their ACP certificates (not depending on rsub) and so
+ that they could connect later together into a contiguous ACP network.
+
+ One instance of such a use case is an ACP for regions interconnected
+ via a non-ACP enabled core, for example, due to the absence of
+ product support for ACP on the core nodes. ACP connect
+ configurations as defined in this document can be used to extend and
+ interconnect those ACP islands to the NOC and merge them into a
+ single ACP when later that product support gap is closed.
+
+ Note that RPL scales very well. It is not necessary to use multiple
+ routing subdomains to scale ACP domains in a way that would be
+ required if other routing protocols where used. They exist only as
+ options for the above mentioned reasons.
+
+ If ACP domains need to be created that are not allowed to connect to
+ each other by default, simply use different domain elements in the
+ acp-node-name. These domain elements can be arbitrary, including
+ subdomains of one another: domains "example.com" and
+ "research.example.com" are separate domains if both are domain
+ elements in the acp-node-name of certificates.
+
+ It is not necessary to have a separate CA for different ACP domains:
+ an operator can use a single CA to sign certificates for multiple ACP
+ domains that are not allowed to connect to each other because the
+ checks for ACP adjacencies include the comparison of the domain part.
+
+ If multiple, independent networks chose the same domain name but had
+ their own CAs, these would not form a single ACP domain because of CA
+ mismatch. Therefore, there is no problem in choosing domain names
+ that are potentially also used by others. Nevertheless, it is highly
+ recommended to use domain names that have a high probability of being
+ unique. It is recommended to use domain names that start with a DNS
+ domain name owned by the assigning organization and unique within it,
+ for example, "acp.example.com" if you own "example.com".
+
+A.7. Intent for the ACP
+
+ Intent is the architecture component of Autonomic Networks according
+ to [RFC8993] that allows operators to issue policies to the network.
+ Its applicability for use is quite flexible and freeform, with
+ potential applications including policies flooded across ACP GRASP
+ and interpreted on every ACP node.
+
+ One concern for future definitions of Intent solutions is the problem
+ of circular dependencies when expressing Intent policies about the
+ ACP itself.
+
+ For example, Intent could indicate the desire to build an ACP across
+ all domains that have a common parent domain (without relying on the
+ rsub/routing-subdomain solution defined in this document): ACP nodes
+ with the domains "example.com", "access.example.com",
+ "core.example.com", and "city.core.example.com" should all establish
+ one single ACP.
+
+ If each domain has its own source of Intent, then the Intent would
+ simply have to allow adding the peer domain's TA and domain names to
+ the parameters for the ACP domain membership check (Section 6.2.3) so
+ that nodes from those other domains are accepted as ACP peers.
+
+ If this Intent was to be originated only from one domain, it could
+ likely not be made to work because the other domains will not build
+ any ACP connections amongst each other, whether they use the same or
+ different CA due to the ACP domain membership check.
+
+ If the domains use the same CA, one could change the ACP setup to
+ permit the ACP to be established between two ACP nodes with different
+ acp-domain-names, but only for the purpose of disseminating limited
+ information, such as Intent, but not to set up full ACP connectivity,
+ specifically not RPL routing and passing of arbitrary GRASP
+ information, unless the Intent policies permit this to happen across
+ domain boundaries.
+
+ This type of approach, where the ACP first allows Intent to operate
+ and only then sets up the rest of ACP connectivity based on Intent
+ policy, could also be used to enable Intent policies that would limit
+ functionality across the ACP inside a domain, as long as no policy
+ would disturb the distribution of Intent, for example, to limit
+ reachability across the ACP to certain types of nodes or locations of
+ nodes.
+
+A.8. Adopting ACP Concepts for Other Environments
+
+ The ACP as specified in this document is very explicit about the
+ choice of options to allow interoperable implementations. The
+ choices made may not be the best for all environments, but the
+ concepts used by the ACP can be used to build derived solutions.
+
+ The ACP specifies the use of ULA and the derivation of its prefix
+ from the domain name so that no address allocation is required to
+ deploy the ACP. The ACP will equally work using any other /48 IPv6
+ prefix and not ULA. This prefix could simply be a configuration of
+ the ACP registrars (for example, when using BRSKI) to enroll the
+ domain certificates, instead of the ACP registrar deriving the /48
+ ULA prefix from the AN domain name.
+
+ Some solutions may already have an auto-addressing scheme, for
+ example, derived from existing, unique device identifiers (e.g., MAC
+ addresses). In those cases, it may not be desirable to assign
+ addresses to devices via the ACP address information field in the way
+ described in this document. The certificate may simply serve to
+ identify the ACP domain, and the address field could be omitted. The
+ only fix required in the remaining way the ACP operates is to define
+ another element in the domain certificate for the two peers to decide
+ who is the Decider and who is the Follower during secure channel
+ building. Note though that future work may leverage the ACP address
+ to authenticate "ownership" of the address by the device. If the ACP
+ address used by a device is derived from some preexisting, permanent
+ local ID (such as MAC address), then it would be useful to store that
+ local ID also in the certificate.
+
+ The ACP is defined as a separate VRF because it intends to support
+ well-managed networks with a wide variety of configurations.
+ Therefore, reliable, configuration-indestructible connectivity cannot
+ be achieved from the data plane itself. In solutions where all
+ functions that impact transit connectivity are fully automated
+ (including security), indestructible, and resilient, it would be
+ possible to eliminate the need for the ACP to be a separate VRF.
+ Consider the most simple example system in which there is no separate
+ data plane, but the ACP is the data plane. Add BRSKI, and it becomes
+ a fully Autonomic Network -- except that it does not support
+ automatic addressing for user equipment. This gap can then be
+ closed, for example, by adding a solution derived from "Autonomic
+ IPv6 Edge Prefix Management in Large-Scale Networks" [RFC8992].
+
+ TCP/TLS as the protocols to provide reliability and security to GRASP
+ in the ACP may not be the preferred choice in constrained networks.
+ For example, CoAP/DTLS (Constrained Application Protocol) may be
+ preferred where they are already used, which would reduce the
+ additional code space footprint for the ACP on those devices. Hop-
+ by-hop reliability for ACP GRASP messages could be made to support
+ protocols like DTLS by adding the same type of negotiation as defined
+ in this document for ACP secure channel protocol negotiation. In
+ future ACP extensions meant to better support constrained devices,
+ end-to-end GRASP connections can be made to select their transport
+ protocol by indicating the supported transport protocols (e.g. TLS/
+ DTLS) via GRASP parameters of the GRASP objective through which the
+ transport endpoint is discovered.
+
+ RPL, the routing protocol used for the ACP, explicitly does not
+ optimize for shortest paths and fastest convergence. Variations of
+ the ACP may want to use a different routing protocol or introduce
+ more advanced RPL profiles.
+
+ Variations such as which routing protocol to use, or whether to
+ instantiate an ACP in a VRF or (as suggested above) as the actual
+ data plane, can be automatically chosen in implementations built to
+ support multiple options by deriving them from future parameters in
+ the certificate. Parameters in certificates should be limited to
+ those that would not need to be changed more often than that
+ certificates would need to be updated, or it should be ensured that
+ these parameters can be provisioned before the variation of an ACP is
+ activated in a node. Using BRSKI, this could be done, for example,
+ as additional follow-up signaling directly after the certificate
+ enrollment, still leveraging the BRSKI TLS connection and therefore
+ not introducing any additional connectivity requirements.
+
+ Last but not least, secure channel protocols including their
+ encapsulations are easily added to ACP solutions. ACP hop-by-hop
+ network-layer secure channels could also be replaced by end-to-end
+ security plus other means for infrastructure protection. Any future
+ network OAM should always use end-to-end security. By leveraging the
+ domain certificates, it would not be dependent on security provided
+ by ACP secure channels.
+
+A.9. Further (Future) Options
+
+A.9.1. Auto-Aggregation of Routes
+
+ Routing in the ACP according to this specification only leverages the
+ standard RPL mechanism of route optimization, e.g., keeping only the
+ routes that are not towards the RPL root. This is known to scale to
+ networks with 20,000 or more nodes. There is no auto-aggregation of
+ routes for /48 ULA prefixes (when using rsub in the acp-node-name)
+ and/or Zone-ID based prefixes.
+
+ Automatic assignment of Zone-ID and auto-aggregation of routes could
+ be achieved, for example, by configuring zone boundaries, announcing
+ via GRASP into the zones the zone parameters (Zone-ID and /48 ULA
+ prefix), and auto-aggregating routes on the zone boundaries. Nodes
+ would assign their Zone-ID and potentially even the /48 prefix based
+ on the GRASP announcements.
+
+A.9.2. More Options for Avoiding IPv6 Data Plane Dependencies
+
+ As described in Section 6.13.2, the ACP depends on the data plane to
+ establish IPv6 link-local addressing on interfaces. Using a separate
+ MAC address for the ACP allows the full isolation of the ACP from the
+ data plane in a way that is compatible with this specification. It
+ is also an ideal option when using single-root input/output
+ virtualization (SR-IOV, see [SR]) in an implementation to isolate the
+ ACP because different SR-IOV interfaces use different MAC addresses.
+
+ When additional MAC address(es) are not available, separation of the
+ ACP could be done at different demux points. The same subnet
+ interface could have a separate IPv6 interface for the ACP and data
+ plane and therefore separate link-local addresses for both, where the
+ ACP interface is not configurable on the data plane. This too would
+ be compatible with this specification and not impact
+ interoperability.
+
+ An option that would require additional specification is to use a
+ different Ethertype from 0x86DD (IPv6) to encapsulate IPv6 packets
+ for the ACP. This would be a similar approach as used for IP
+ authentication packets in [IEEE-802.1X], which uses the Extensible
+ Authentication Protocol over Local Area Network (EAPoL) Ethertype
+ (0x88A2).
+
+ Note that in the case of ANI nodes, all of the above considerations
+ equally apply to the encapsulation of BRSKI packets including GRASP
+ used for BRSKI.
+
+A.9.3. ACP APIs and Operational Models (YANG)
+
+ Future work should define a YANG data model [RFC7950] and/or node-
+ internal APIs to monitor and manage the ACP.
+
+ Support for the ACP adjacency table (Section 6.3) and ACP GRASP needs
+ to be included in such model and/or API.
+
+A.9.4. RPL Enhancements
+
+ ..... USA ...... ..... Europe ......
+
+ NOC1 NOC2
+ | |
+ | metric 100 |
+ ACP1 --------------------------- ACP2 .
+ | | . WAN
+ | metric 10 metric 20 | . Core
+ | | .
+ ACP3 --------------------------- ACP4 .
+ | metric 100 |
+ | | .
+ | | . Sites
+ ACP10 ACP11 .
+
+ Figure 17: Dual NOC
+
+ The profile for RPL specified in this document builds only one
+ spanning-tree path set to a root, typically a registrar in one NOC.
+ In the presence of multiple NOCs, routing toward the non-root NOCs
+ may be suboptimal. Figure 17 shows an extreme example. Assuming
+ that node ACP1 becomes the RPL root, traffic between ACP11 and NOC2
+ will pass through ACP4-ACP3-ACP1-ACP2 instead of ACP4-ACP2 because
+ the RPL-calculated DODAG and routes are shortest paths towards the
+ RPL root.
+
+ To overcome these limitations, extensions and/or modifications to the
+ RPL profile can optimize for multiple NOCs. This requires utilizing
+ data plane artifacts, including IP-in-IP encapsulation/decapsulation
+ on ACP routers and processing of IPv6 RPI headers. Alternatively,
+ (Src,Dst) routing table entries could be used.
+
+ Flooding of ACP GRASP messages can be further constrained and
+ therefore optimized by flooding only via links that are part of the
+ RPL DODAG.
+
+A.9.5. Role Assignments
+
+ ACP connect is an explicit mechanism to "leak" ACP traffic explicitly
+ (for example, in a NOC). It is therefore also a possible security
+ gap when it is easy to enable ACP connect on arbitrary compromised
+ ACP nodes.
+
+ One simple solution is to define an extension in the ACP
+ certificate's ACP information field indicating the permission for ACP
+ connect to be configured on that ACP node. This could similarly be
+ done to decide whether a node is permitted to be a registrar or not.
+
+ Tying the permitted "roles" of an ACP node to the ACP certificate
+ provides fairly strong protection against misconfiguration, but it is
+ still subject to code modifications.
+
+ Another interesting role to assign to certificates is that of a NOC
+ node. This would allow the limiting of certain types of connections,
+ such as OAM TLS connections to only the NOC initiators or responders.
+
+A.9.6. Autonomic L3 Transit
+
+ In this specification, the ACP can only establish autonomic
+ connectivity across L2 hops but requires non-autonomic configuration
+ to tunnel across L3 paths. Future work should specify mechanisms to
+ automatically tunnel ACP across L3 networks. A hub-and-spoke option
+ would allow tunneling across the Internet to a cloud or central
+ instance of the ACP; a peer-to-peer tunneling mechanism could tunnel
+ ACP islands across an L3VPN infrastructure.
+
+A.9.7. Diagnostics
+
+ Section 9.1 describes diagnostics options that can be applied without
+ changing the external, interoperability-affecting characteristics of
+ ACP implementations.
+
+ Even better diagnostics of ACP operations are possible with
+ additional signaling extensions, such as the following:
+
+ 1. Consider if LLDP should be a recommended functionality for ANI
+ devices to improve diagnostics, and if so, which information
+ elements it should signal (noting that such information is
+ conveyed in an insecure manner). This includes potentially new
+ information elements.
+
+ 2. As an alternative to LLDP, a DULL GRASP diagnostics objective
+ could be defined to carry these information elements.
+
+ 3. The IDevID certificate of BRSKI pledges should be included in the
+ selected insecure diagnostics option. This may be undesirable
+ when exposure of device information is seen as too much of a
+ security issue (the ability to deduce possible attack vectors
+ from device model, for example).
+
+ 4. A richer set of diagnostics information should be made available
+ via the secured ACP channels, using either single-hop GRASP or
+ network-wide "topology discovery" mechanisms.
+
+A.9.8. Avoiding and Dealing with Compromised ACP Nodes
+
+ Compromised ACP nodes pose the biggest risk to the operations of the
+ network. The most common types of compromise are the leakage of
+ credentials to manage and/or configure the device and the application
+ of malicious configuration, including the change of access
+ credentials, but not the change of software. Most of today's
+ networking equipment should have secure boot/software infrastructure
+ anyhow, so attacks that introduce malicious software should be a lot
+ harder.
+
+ The most important aspect of security design against these types of
+ attacks is to eliminate password-based configuration access methods
+ and instead rely on certificate-based credentials handed out only to
+ nodes where it is clear that the private keys cannot leak. This
+ limits unexpected propagation of credentials.
+
+ If password-based credentials to configure devices still need to be
+ supported, they must not be locally configurable, but only be
+ remotely provisioned or verified (through protocols like RADIUS or
+ Diameter), and there must be no local configuration permitting the
+ change of these authentication mechanisms, but ideally they should be
+ autoconfiguring across the ACP. See [NOC-AUTOCONFIG].
+
+ Without physical access to the compromised device, attackers with
+ access to configuration should not be able to break the ACP
+ connectivity, even when they can break or otherwise manipulate
+ (spoof) the data plane connectivity through configuration. To
+ achieve this, it is necessary to avoid providing configuration
+ options for the ACP, such as enabling/disabling it on interfaces.
+ For example, there could be an ACP configuration that locks down the
+ current ACP configuration unless factory reset is done.
+
+ With such means, the valid administration has the best chances to
+ maintain access to ACP nodes, to discover malicious configuration
+ though ongoing configuration tracking from central locations, for
+ example, and to react accordingly.
+
+ The primary reaction is to withdraw or change credentials, terminate
+ malicious existing management sessions, and fix the configuration.
+ Ensuring that management sessions using invalidated credentials are
+ terminated automatically without recourse will likely require new
+ work.
+
+ Only when these steps are infeasible, would it be necessary to revoke
+ or expire the ACP certificate credentials and consider the node
+ kicked off the network until the situation can be further rectified,
+ likely requiring direct physical access to the node.
+
+ Without extensions, compromised ACP nodes can only be removed from
+ the ACP at the speed of CRL/OCSP information refresh or expiry (and
+ non-removal) of short-lived certificates. Future extensions to the
+ ACP could, for example, use the GRASP flooding distribution of
+ triggered updates of CRL/OCSP or the explicit removal indication of
+ the compromised node's domain certificate.
+
+A.9.9. Detecting ACP Secure Channel Downgrade Attacks
+
+ The following text proposes a mechanism to protect against downgrade
+ attacks without introducing a new specialized GRASP secure channel
+ mechanism. Instead, it relies on running GRASP after establishing a
+ secure channel protocol to verify if the established secure channel
+ option could have been the result of a MITM downgrade attack.
+
+ MITM attackers can force downgrade attacks for ACP secure channel
+ selection by filtering and/or modifying DULL GRASP messages and/or
+ actual secure channel data packets. For example, if at some point in
+ time, DTLS traffic could be more easily decrypted than traffic of
+ IKEv2, the MITM could filter all IKEv2 packets to force ACP nodes to
+ use DTLS (assuming that the ACP nodes in question supported both DTLS
+ and IKEv2).
+
+ For cases where such MITM attacks are not capable of injecting
+ malicious traffic (but only of decrypting the traffic), a downgrade
+ attack could be discovered after a secure channel connection is
+ established, for example, by using the following type of mechanism.
+
+ After the secure channel connection is established, the two ACP peers
+ negotiate, via an appropriate (to be defined) GRASP negotiation,
+ which ACP secure channel protocol should have been selected between
+ them (in the absence of a MITM attacker). This negotiation would
+ signal the ACP secure channel options announced by DULL GRASP by each
+ peer followed by an announcement of the preferred secure channel
+ protocol by the ACP peer that is the Decider in the secure channel
+ setup, i.e., the ACP peer that decides which secure channel protocol
+ to use. If that chosen secure channel protocol is different from the
+ one that actually was chosen, then this mismatch is an indication
+ that there is a MITM attacker or other similar issue (e.g., a
+ firewall prohibiting the use of specific protocols) that caused a
+ non-preferred secure channel protocol to be chosen. This discovery
+ could then result in mitigation options such as logging and ensuing
+ investigations.
+
+Acknowledgements
+
+ This work originated from an Autonomic Networking project at Cisco
+ Systems, which started in early 2010. Many people contributed to
+ this project and the idea of the Autonomic Control Plane, amongst
+ whom (in alphabetical order): Ignas Bagdonas, Parag Bhide, Balaji BL,
+ Alex Clemm, Yves Hertoghs, Bruno Klauser, Max Pritikin, Michael
+ Richardson, and Ravi Kumar Vadapalli.
+
+ Special thanks to Brian Carpenter, Elwyn Davies, Joel Halpern, and
+ Sheng Jiang for their thorough reviews.
+
+ Many thanks to Ben Kaduk, Roman Danyliw, and Eric Rescorla for their
+ thorough SEC AD reviews, Russ Housley and Erik Kline for their
+ reviews, and to Valery Smyslov, Tero Kivinen, Paul Wouters, and Yoav
+ Nir for review of IPsec and IKEv2 parameters and helping to
+ understand those and other security protocol details better. Thanks
+ to Carsten Bormann for CBOR/CDDL help.
+
+ Further input, review, or suggestions were received from Rene Struik,
+ Benoit Claise, William Atwood, and Yongkang Zhang.
+
+Contributors
+
+ For all things GRASP including validation code, ongoing document text
+ support, and technical input:
+
+ Brian Carpenter
+ School of Computer Science
+ University of Auckland
+ PB 92019
+ Auckland 1142
+ New Zealand
+
+ Email: brian.e.carpenter@gmail.com
+
+
+ For RPL contributions and all things BRSKI/bootstrap including
+ validation code, ongoing document text support, and technical input:
+
+ Michael C. Richardson
+ Sandelman Software Works
+
+ Email: mcr+ietf@sandelman.ca
+ URI: http://www.sandelman.ca/mcr/
+
+
+ For the RPL technology choices and text:
+
+ Pascal Thubert
+ Cisco Systems, Inc
+ Building D
+ 45 Allee des Ormes - BP1200
+ 06254 Mougins - Sophia Antipolis
+ France
+
+ Phone: +33 497 23 26 34
+ Email: pthubert@cisco.com
+
+
+Authors' Addresses
+
+ Toerless Eckert (editor)
+ Futurewei Technologies Inc. USA
+ 2330 Central Expy
+ Santa Clara, CA 95050
+ United States of America
+
+ Email: tte+ietf@cs.fau.de
+
+
+ Michael H. Behringer (editor)
+
+ Email: michael.h.behringer@gmail.com
+
+
+ Steinthor Bjarnason
+ Arbor Networks
+ 2727 South State Street, Suite 200
+ Ann Arbor, MI 48104
+ United States of America
+
+ Email: sbjarnason@arbor.net