<?xml version="1.0" encoding="utf-8"?>
  <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
  <!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.8 (Ruby 2.6.10) -->


<!DOCTYPE rfc  [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">

]>

<?rfc {"tocdepth"=>5}="yes"?>
<?rfc comments="yes"?>

<rfc ipr="trust200902" docName="draft-eckert-anima-acp-free-ani-01" category="info" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true">
  <front>
    <title abbrev="ACP free aNI">ACP free "Automation Network Infrastructure" for simple in-network automation (aNI)</title>

    <author initials="T." surname="Eckert" fullname="Toerless Eckert" role="editor">
      <organization>Futurewei Technologies USA</organization>
      <address>
        <postal>
          <country>USA</country>
        </postal>
        <email>tte@cs.fau.de</email>
      </address>
    </author>
    <author initials="B." surname="Liu" fullname="Bing Liu">
      <organization>Huawei Technologies</organization>
      <address>
        <postal>
          <country>P.R. China</country>
        </postal>
        <email>leo.liubing@huawei.com</email>
      </address>
    </author>

    <date year="2025" month="October" day="20"/>

    
    <workgroup>ANIMA</workgroup>
    

    <abstract>


<?line 41?>

<t>This document describes how to to build the software infrastructure for distributed
automation agents using a lightweight variation of the "Autonomic Networking Infrastructure" (ANI),
by using the existing ANI domain keying material (certificates and trust anchors) as well as
the protocols GRASP and BRSKI protocols, but eliminating the expensive to implement
"Autonomic Control Plane" (ACP) and adding proxying "Autonomic Software Agents" (ASA) instead.</t>

<t>The resulting infrastructure is called "automation Network Infrastructure" and can 
be implemented solely as application level software components on routers, switches
or co-located managemenet devices, avoiding the need to change any router or switches
forwarding or control-plane protocols.</t>

<t>The aNI achieves mosts of the benefits of the ANI but foregoes the ability to easily
make pre-existing, insecure control-plane protocols secure or provide all the same
protection against operator or SDN controller misconfigurations that the ACP provides.</t>



    </abstract>



  </front>

  <middle>


<?line 58?>

<section anchor="introduction"><name>Introduction</name>

<section anchor="background"><name>Background</name>

<t><xref target="RFC8993"/> describes the reference model for Autonomic Networking which consists of
a so-called "Autonomic Network Infrastructure" (ANI) and in-network (devices) software
agents called "Autonomic Service Agents" (ASA).</t>

<t>ASA can be imagined as simple as scripts in programming languages such as python or javascript 
developed by bendors, integrators or operators. They are
primarily intended to run on network devices such as router or switches, or on
control equipment that is also decentrally deployed, such as management servers
in network equipment locations often called  point of presence (PoP). These agents can
operate alone or in support of centralized network management systems including controller
or orchestrators.</t>

<t>One of the core components of that ANI is the so-called "Autonomic Control Plane" (ACP, <xref target="RFC8994"/>),
a set of functionalities establishing an autonomously (zero-touch) created and maintained VRF
across all network that is primarily intended to provide always-on network reachability even in the
absence of any operator or management established provisioning of the nodes. The ACP then
allows operators, centralized management software or ASA to communicate across it to manage the
network and for example provision both the basic network addressing and routing (so-called
data-plane) or specific subscriber services or to perform monitoring actions/automations. See also <xref target="RFC8368"/>.</t>

<t>Unfortunately, implementing an ACP in network devices, especially those with legacy operating
system software infrastructures can be a challenging exercise, and as of today, no widely
adopted production implementations on commercial routers exist.</t>

<t>Without an ANI, it is challenging to build simple automation agents running on (or near to) network devices
because they are missing functionalities not ubiquitously found in networks today: credentials for secure
 communications with mutual trust, connectivity and discovery of other agents, defining new protocols
for communication between agents and ability to communicate when the network or specific nodes are not
yet configured for correct end-to-end reachability or when that reachability is broken.</t>

<t>This document describes the mechanisms how these support functions can be supported for ASA and
via ASA. The resulting design is called by this document the "automation Network Infrastructure" (aNI).
Lowercase 'a' is used to distinguish it from the ANI which does include an ACP.</t>

<t>Like the ANI, the aNI is defined so that it does not introduce dependencies against external,
centralized components, such as orchestrators or management controllers. Like the ANI the aNI
can therefore support those centralized components.</t>

</section>
<section anchor="overview"><name>Overview</name>

<t>This document introduces the concepts and components of an ACP-free automation Network
Infrastructure (aNI), which leverages the components developed for the ANI except for its
ACP. The ACP is replaced by the assumed to be pre-established data-plane of the network, and
as necessary by proxy ASA.</t>

<t>Unlike the ANI with ACP, this aNI solution can easily be introduced into existing networks
simply though the development of control-plane programs, for example developed in scripting languages
such as python or javascript (whatever can best run on routers). The aNI does not require any
changes to routers forwarding planes and does not expect more than basic IPv4 and/or IPv6 end-to-end
connectivity across segments of the network.</t>

<t>In summary, the aNI differs from the ANI as follows:</t>

<t><list style="symbols">
  <t>The networks existing and assumed to be pre-configured IPv4 or IPv6 connectivitiy 
(called data-plane) is used to provide end-to-end connectivity for GRASP or other
protocols used to build ASA. Unlike the ACP, IPv4 is a fully permitted option,
especially because large and complex industrial networks will continue to depend
on it because it has some significant simplicity benefits over IPv6 in options
such as <xref target="RFC1819"/> addressing. Nevertheless, for any new deployments where
there is no clear benefit of IPv4 over IPv6, IPv6 is recommended.</t>
  <t>Discovery between ASA and between ASA and central network management components
utilizes GRASP in the same ways as it does with ACP. It requires on every network node
a GRASP ASA, which is a lightweight (potentially scripted in python) user-level process
that forwards GRASP discovery messages hop-by-hop. This GRASP ASA can automatically be
started and requires no configuration. The hop-by-hop connections between these GRASP ASA is TLS.</t>
  <t>Mutual trust for end-to-end GRASP connections between ASA, and between GRASP agents,
but also for any other existing protocols that may be used is based on the
domain certificate model of <xref target="RFC8994"/>: Each node is identified by a certificate
which also identifies the (aNI) domain and also indicates the primary network layer
address of the node which is used for aNI communications. Like the ANI, the aNI
can therefore operate without any dependencies against DNS.</t>
  <t>The aNI encourages re-use of any existing protocols such as HTTPS or others, that can
help to avoid re-coding any already working ASA functionality. GRASP is recommended
whenever new designs could be easier than with potentially more complex frameworks
that exist for HTTPS or CoAP(s). Combinations of existing protocols with GRASP is
also a recommended option, for example to use GRASP to automate existing protocols
by amending announcement and discovery via GRASP and therefore eliminating manual
or SDN controller based provisioning steps.</t>
  <t>All signaling protocols that are considered to be part of the aNI MUST use 
transport layer encryption of at least the security provided by TLS1.3.
If there are any existing or new protocols that do not meet this expectation,
they are simply not considered to be part of the aNI. For example existing
routing protocols do typically not confirm to this level of security. They can
continue to operate unaffected from aNI. They just do not conform to the security
level of the aNI.</t>
  <t>Enrollment of security credentials for new network rollouts is recommended to use BRSKI (<xref target="RFC8995"/>)
or any specified variation thereof, depending on the operational requirements of the
network enrollment process. In existing and pre-configured networks, alternatives
such as netconf zero-touch with certificate enrollment may be viable alternatives,
but are not equally comprehensively document as a solution.</t>
  <t>To support automation in the presence of missing end-to-end connectivity between all necessary
nodes including new to-be-provisioned "pledges", proxies are used. These proxies
likely are a combination of generic transport proxies (e.g.: HTTP proxies) or service
specific proxies (ASA with proxy functionality) depending on requirements.</t>
</list></t>

</section>
<section anchor="architecture-example"><name>Architecture Example</name>

<t>The following <xref target="FIG0"/> summaries the archticture components.
These are all introduced in more details in the following architecture section.</t>

<figure title="aNI Architecture example" anchor="FIG0"><artwork><![CDATA[
                                  inter-area
                                  GRASP and 
   ASAs      ASAs       ASAs      Transport    ASAs      ASAs        ASAs
                                  Proxy ASA
                                    /  \
   GRAS      GRASP      GRASP    GRASP GRASP  GRASP      GRASP       GRASP
   Coord.    Coord.    Coord.   Coord.  Coord. Coord.    Coord.    Coord.
   ASA        ASA        ASA      ASA1 ASA2    ASA        ASA        ASA
       \     /    \     /    \     |    |     /   \      /    \     /
 +------+   +------+   +------+   +------+   +------+   +------+   +------+
 |Router|---|Router|---|Router|-.-|NAT/FW|-.-|Router|---|Router|---|Router|
 |  1   |   |  2   |   |  3   |   |      |   |  4   |   |  5   |   |  6   |
 | with |   | with |   | with |   | with |   | with |   | with |   | with |
 |domain|   |domain|   |domain|   |domain|   |domain|   |domain|   |domain|
 | cert |   | cert |   | cert |   | cert |   | cert |   | cert |   | cert |
 +------+   +------+   +------+   +------+   +------+   +------+   +------+

   |<----------------------------->|   |<----------------------------->|
       GRASP-NA subdomain 1                  GRASP-NA subdomain 2
     forwarding of GRASP discovery        forwarding of GRASP discovery
       between nodes with same              between nodes with same 
      end-to-end connectivity                 end-to-end connectivity
        example: IPv4 only                     example: IPv6 only
 |<----------------------------------------------------------------------->|
                aNI domain (mutually trusted aNI certificates) ~~~~
]]></artwork></figure>

<t>The example architecture picture outlines the most relevant aspects of an aNI
that where introduced in the overview section above and where they are the same
or differ from the ANI with ACP.</t>

<t><list style="symbols">
  <t>An aNI domain is the set of all nodes using the same aNI domain credentials (certificates and trust anchors). These are using the same concept as ACP certificates/trust anchors.</t>
  <t>Enrollment of keying materials can use any protocol but prefers BRSKI (as in ACP).</t>
  <t>Addressing can use IPv4 and/or IPv6 and is solely the data-plane of the existing network.</t>
  <t>aNI domains may be subdivided into areas connected by inter-area nodes, as shown in the picture a NAT/FW. Inside each area unrestricted connectivity between ASA is expected, across areas it is not.</t>
  <t>Inside each area, GRASP coordination agents enable distribution of information and service discovery. This is the equivalent of GRASP inside the ACP (<xref target="RFC8994"/>).</t>
  <t>Between areas, forwarding of GRASP messages is managed by inter-area GRASP proxy ASA as well as existing specialized forwarding such as NAT and Firewall forwarding, or additional user-level transport proxy ASA. The latter are generalizing the concept of BRSKI or HTTP proxies.</t>
</list></t>

</section>
</section>
<section anchor="architecture"><name>Architecture</name>

<section anchor="credentuals-and-mutual-trust"><name>Credentuals and mutual trust</name>

<t>aNI relies on the same domain trust model as the ANI. All nodes in an aNI domain
are expected to have an aNI certificate and trust anchor(s) that allow to
verify and authenticate the aNI certificates of other domain members.</t>

<t>aNI certificates carry an aNI node name attributes, which differs from
acp-node-names (<xref target="RFC8994"/>, section 6.2.2) as follows:</t>

<t><list style="symbols">
  <t>The address part can either be an IPv6 address or an IPv4 address.
(ABNF TBD).  The aNI address of a node is a data-plane address that is known
to be permanently assigned to the node, routable and reachable across a segment
of the aNI domain. There is no new address assignment with ULA addresses as in the ACP.</t>
  <t>This document does not discuss the more complex additional options such as
extensions or routing subdomains, but syntactically they are possible as they
are for ACP certificates.</t>
  <t>Encoding into the X.509 aNI domain certificate is via a new "OTHER-NAME"
attribute to allow distinguishing it from ACP addresses. A node can therefore
have a single certificate with both an aNI name element and (potentially later)
an ACP name element without conflicts between them.</t>
</list></t>

<t>Enrollment of these certificates is, as in <xref target="RFC8994"/> by arbitrary methods,
preferrably BRSKI. BRSKI details for aNI are discussed further domain in this document.</t>

</section>
<section anchor="area-segmented-connectivity"><name>Area segmented connectivity</name>

<t>aNI domains may not have transparent end-to-end connectivity across all
nodes. Instead, thay may be partitioned by nodes implementing functionality
such as NAT or Firewall which provide only partial connectivity. Or they
may be partitioned without any connectivity because of different VRFs.
Or they may the partitioned by different network layers. One part of the
network may only use IPv4, another only IPv6.</t>

<t>An aNI connectivity area is a contiguous set of nodes between which the
data-plane provides  in the absence of errors transparent end-to-end
connectivity for all the traffic desired for the aNI. This primarily involves
traffic between ASA, but also traffic considered to be used in conjunction with
ASA or aNI, such as traffic between central management nodes (controller/orchestrators),
servers (NTP, DHCP, ...) and other required sockets on nodes. This means that there
may be filtering and limitations of traffic at the edge or inside such 
aNI areas, for example to prohibit traffic between these nodes and nodes outside
the area (such as subscriber nodes).</t>

<t>Note that these requirements should allow to add the aNI without change of
any existing data-plane setup in most existing networks (private or service
provider), and that many of them do not even need to consider multiple aNI
connectivity areas.</t>

<t>Note that that incorrect configuration of filtering of filtering will
cause errors in the aNI in the same way as it does cause errors for any
other management traffic. The aNI does not - unlike the ACP - protect against
such misconfiguration.</t>

<figure title="aNI domain and areas" anchor="FIG1"><artwork><![CDATA[
           connectivity area 1 ASA's           connectivity area 1 ASA's
       |<..............................>|  |<..............................>|

       ASAs      ASAs       ASAs      ASA  ASA      ASAs      ASAs        ASAs
        |          |          |        |    |        |          |          |
        |          |          |        |    |        |          |          |  
     +------+   +------+   +------+   +------+   +------+   +------+   +------+
     |Router|---|Router|---|Router|-.-|NAT/FW|-.-|Router|---|Router|---|Router|
     |  1   |   |  2   |   |  3   |   |      |   |  4   |   |  5   |   |  6   |
     | with |   | with |   | with |   | with |   | with |   | with |   | with |
     |domain|   |domain|   |domain|   |domain|   |domain|   |domain|   |domain|
     | cert |   | cert |   | cert |   | cert |   | cert |   | cert |   | cert |
     +------+   +------+   +------+   +------+   +------+   +------+   +------+

     |<----------------------------------------------------------------------->|
                    aNI domain (mutually trusted aNI certificates)
]]></artwork></figure>

<t>Figure 1 shows a simple example of a single aNI domain with two connectivity
areas, for example because of a NAT/FW node separating the two areas. 
In the most simple case, an ASA connects only into a single area and sends/receives
traffic only within a single area. There is no connectivity between ASA across
the two areas in this example.</t>

</section>
<section anchor="end-to-end-transport-protocols"><name>End-to-end transport protocols</name>

<t>End-to-end connections considered to be part of the aNI MUST use a transport
layer protocol with at least the level of encryption/security as TLS1.3. Compared
to the ACP this means that it is not possible to simply use existing, non-end-to-end
transport layer encrypted protocols such as (non-TLS version of) DHCP, DNS, NTP,
SNMP or other common (and older) management protocols. If and where TLS/DTLS (or QUIC) 
variations to the protocols exist, they of course are applicable to the aNI.</t>

<t>Connunication SHOULD use existing protocols and extend them as necessary instead
of re-inventing new protocols unnecessary. New protocol development for purposes
for which no suitable existing protocols are available SHOULD use GRASP.
This applies to peer-to-peer and client-server connectivity between ASA or any
other traffic considered to be part of the aNI.</t>

</section>
<section anchor="grasp-security-and-transport-substrate"><name>GRASP security and transport substrate</name>

<t><xref target="RFC8990"/> requires that GRASP relies on a "security and transport" substrate,
which in <xref target="RFC8994"/> is the ACP, TLS &gt;= 1.2 and ACP domain certificates for
mutual authentication.</t>

<t>In the aNI, the "security and transport" substrate is the data-plane for connectivity,
meaning the pre-existing IPv4 and/or IPv6 connectivity, TLS &gt;= 1.3 for any GRASP
connection (except for link-local DULL GRASP for link-local discovery),
and aNI domain certificates for mutual authentication. The security considerations
effectively ae the same as for GRASP across an ACP, but end-to-end (unicast)
GRASP connections depend on proper functioning of data-plane routing. Workarounds
for this are descussed later in this document.</t>

</section>
<section anchor="distributed-asa-coordination-via-grasp"><name>Distributed ASA coordination via GRASP</name>

<t>ASA need to be able to self coordinate and orchestrate. Responders need to be able
to announce themselves to be discovered and selected by responders. ASA may have
other information that needs to be disseminated to multiple interested ASA across
the domain.</t>

<t>GRASP supports these operations through Discovery and Flood messages which are
flooded hop-by-hop through the network by GRASP coordination agents. Loops are
prevented by sequence number duplicate elimination on reception, so that these
agents donot require any routing information. These age that can easily be
implemented, for example as lightweight python scripts.</t>

<t>The procedures for GRASP coordination agents are the same as described in <xref target="RFC8994"/>.
Nodes discover their neighbors on interfaces via DULL GRASP, and they build
TLS1.3 connections to their neighbors, mutually authenticating each others by their
aNI certificates. DULL GRASP uses a new port number (IANA assignment TBD) to distinguish
it from DULL GRASP for the ACP. Therefore, GRASP in the aNI can co-exist with 
GRASP in an ACP, hence a migration from an aNI to a full ANI with ACP is easily possible.</t>

<t>aNI nodes MUST support a GRASP coordination ASA. They MAY support other methods
for coordination and orchestration including service announcement discovery and
selection, such as DNS, but this specification does not specify any way how to
automatically establish a sufficient DNS infrastructure and hence also no
functionality that depends on DNS. Instead, DNS-SD compatible service announcement,
discovery and selecction is suggested to rely on GRASP as described in 
<xref target="I-D.eckert-anima-grasp-dnssd"/>.</t>

<figure title="GRASP connectivity agents" anchor="FIG2"><artwork><![CDATA[
           connectivity area 1 ASA's           connectivity area 2 ASA's
       |<..............................>|  |<..............................>|

       ASAs      ASAs       ASAs      ASA  ASA      ASAs      ASAs        ASAs
        |          |          |        |    |        |          |          |
        |          |          |        |    |        |          |          |  
       GRAS      GRASP      GRASP    GRASP GRASP  GRASP      GRASP       GRASP
       Coord.    Coord.    Coord.  Coord.  Coord. Coord.     Coord.      Coord.
       ASA        ASA        ASA      ASA1 ASA2    ASA        ASA        ASA
           \     /    \     /    \     |    |     /   \      /    \     /
     +------+   +------+   +------+   +------+   +------+   +------+   +------+
     |Router|---|Router|---|Router|-.-|NAT/FW|-.-|Router|---|Router|---|Router|
     |  1   |   |  2   |   |  3   |   |      |   |  4   |   |  5   |   |  6   |
     | with |   | with |   | with |   | with |   | with |   | with |   | with |
     |domain|   |domain|   |domain|   |domain|   |domain|   |domain|   |domain|
     | cert |   | cert |   | cert |   | cert |   | cert |   | cert |   | cert |
     +------+   +------+   +------+   +------+   +------+   +------+   +------+

       |<----------------------------->|   |<----------------------------->|
             connectivity  area 1                 connectivity  area 2
         forwarding of GRASP messages       forwarding of GRASP messages
           between nodes with same              between nodes with same 
          end-to-end connectivity               end-to-end connectivity
            example: IPv4 only                     example: IPv6 only
     |<----------------------------------------------------------------------->|
                    aNI domain (mutually trusted aNI certificates)
]]></artwork></figure>

<t>Figure 2 above shows the GRASP coordination ASA added to the prior example. GRASP
agents need to be able to determine all interfaces that belong to the same area
and forward messages only between those interfaces. If the node has interfaces in
multiple areas, a separate instance of forwarding of GRASP messages needs to be
run for each area. In the example, this is shown for the NAT/FW node, which
has interfaces in two areas.</t>

<t>Note that ASA only need to rely on the GRASP coordination agent for sending
and receiving of GRASP coordination messages. GRASP "unicast" traffic to other
nodes can simply use direct TLS connections to the nodes ASA.</t>

</section>
<section anchor="inter-area-communications"><name>Inter-area communications</name>

<t>This section explains how to implement inter-area ASA communications
using the model shown in <xref target="FIG3"/>.</t>

<figure title="Inter Area communications" anchor="FIG3"><artwork><![CDATA[
           connectivity area 1                 connectivity area 2 
       |<..............................>|  |<..............................>|

     Initiator                         GRASP                           Responder
       ASA1                    inter-area proxy ASA [1]                   ASA6
        |                          and optional                            |
        |                  inter-area transport ASA [2]                    |
        |                              |    |                              |
       GRAS      GRASP      GRASP    GRASP GRASP  GRASP      GRASP       GRASP
       Coord.    Coord.    Coord.  Coord.  Coord. Coord.     Coord.      Coord.
           \     /    \     /    \     |    |     /   \      /    \     /
     +------+   +------+   +------+   +------+   +------+   +------+   +------+
     |Router|---|Router|---|Router|-.-|NAT/FW|-.-|Router|---|Router|---|Router|
     |  1   |   |      |   |      |   |Fwd[3]|   |      |   |      |   |  6   |
     ........   ........   ........   ........   ........   ........   ........ 

     |<----------------------------------------------------------------------->|
                    aNI domain (mutually trusted aNI certificates)
]]></artwork></figure>

<t>A responder ASA6 on Router 6 in area 2 intends to provide services also to be consumable
by an Initiator ASA1 on Router 1 in area 1.</t>

<t>Direct inter-area network layer connectivity from ASA1 to ASA6 may be possible
in some cases, such as when area 1 is on the inside of a NAT and area 2 is on
its outside. However, ASA1 would have no way to even discover the availability
of ASA6 without the introduction of the elements described in this section,
because no GRASP messages are forwarded by the GRASP coordination ASA
across area boundaries. Likewise in the opposite case, when ASA6 is on the
inside, and ASA1 is on the outside, not only does a connection require likely
special setups, but it is also a matter of additional policy if that type of
communication is even desired. Likewise are the conditions different,
when the impeding element is a Firewall or the areas are different VRF.</t>

<t>The three type of components of the solution are called the GRASP inter-area proxy ASA [1],
optional inter-area transport ASA [2] and Forwarding functionality [3] in the forwarding
plane of the inter-area node.</t>

<section anchor="inter-area-information-flooding"><name>Inter-area information flooding</name>

<t>The most simple example of inter-area forwarding is that of GRASP Flood
messages used for information distribution. All information is contained
in the GRASP Flood message and thus no dependend inter-area communications is
expected. Examples of such information distribution could be simple
router configurations for common functions. Nevertheless, forwarding of such
information betwween areas does very likely need to be policy filtered if
not policy modified. This is a job of specific GRASP inter-area  proxy ASA.</t>

</section>
<section anchor="loop-prevention-in-inter-area-grasp-flooding"><name>Loop prevention in inter-area GRASP flooding</name>

<t>In any case where GRASP inter-area proxy ASA flood GRASP messages across
area boundaries, care must be taken to avoid looping messages. This specifically
means that the GRASP signaling elemtn that is used to detect looping messages
must not be changed when passing GRASP messages to another area, and the
identifier in it needs to be unique across areas.</t>

</section>
<section anchor="inter-area-grasp-policy-filtering"><name>Inter-area GRASP policy filtering</name>

<t>Inter-area flooding of GRASP messages should support policy filtering independent
of the below described mechanisms to ensure the necessary connectivity. This
policy filtering may be derived automatically from specific subset of the
Objective namespace or other novel GRASP signaling elements.</t>

</section>
<section anchor="inter-area-service-announcements"><name>Inter-area service announcements</name>

<t>As described in this sections introduction, in many cases a GRASP Flood Message
may be a service announcement for one or more responder sockets of the announcer,
or a third-party node (in case the announcement is not directly from the responder ASA).</t>

<t>In this case, there is the expectation that nodes receiving this announcement
may want to initiate connections to those responder sockets. The inter-area
forwarding ASA does thus need to understand if or how those responder
sockets can be connected to from the area into which it forwards the
GRASP Flood message.</t>

<t>In the aforementioned outside-to-inside flooding across a NAT inter-area node,
the GRASP inter-area proxy ASA does not need to change anything in the GRASP
Flood message if inside and outside use the same IP address family.</t>

<t>If instead the desired reachability is from outside to inside, or if the
address families differ, then it is typically necessary to set up specific
NAT/PAT between inside and outside to enable the communication, and to also
change the announced service address in the announced GRASP Flood to the
other area.</t>

<t>The use of GRASP in all these cases does cleanly resolve the problem that
such communication setups are facing when the service announcement and
discovery are not readily available in-band on the inter-area nodes, which
today is almost always the case.</t>

<t>In one example, ASA6 is on the inside, uses an RFC1918 addres, but its
service should be available on the outside. The GRASP inter-area proxy ASA
learns about the service and establishes the necessary PAT, mapping a
port available on the outside to that inside service, and accordingly
adjusts the GRASP announcement before it passes it to the outside area towards
ASA1. When ASA1 then connects, it effectively connects to the outside address
of the inter-area node, where the existing NAT forwarding plane connects
it to the inside RFC1918 address and server port for ASA6.</t>

</section>
<section anchor="inter-area-transport-proxy-asa"><name>inter-area transport proxy ASA</name>

<t>Instead of relying on such pre-existing/configurable forwarding plajne connectivity,
such inter-area connectivity can and depending on use case must be implemented
at user-level by so-called inter-arrea transport proxy ASA. These are
typically what in BRSKI (and HTTP) terms are called connection or stateful 
proxies, but they could equally be stateless proxies if this is ensured
to be supported by the responders.</t>

<t>(stateful) BRSKI proxies simply act on one side as TCP responders, recreating
a new TCP connection on the other side as initiators and then forwarding
traffic bidirectionally across that proxies connection. HTTP proxies operate
as HTTP message proxies, but can also be turned into TCP connection proxies
through the HTTP CONNECT method.</t>

</section>
</section>
<section anchor="pledge-bootstrap"><name>Pledge Bootstrap</name>

<t>With ANI, new nodes (pledges) for a domain are bootstrapped by provisioning
them first with domain credentials via BRSKI and then provisioning them with
any desirable protocols via the ACP.</t>

<t>With aNI, these pledges do not have end-to-end data-plane connectivity after
BRSKI enrollment. They still will likely only have link-local connectivity.
While automatic DHCP or IPv4 SLAAC connectivity may be something a data-plane
provides for end-user nodes, this is typicaly not the case for router
in the domain that are newly added (or replaced).</t>

<t>For this reason, the aNI requires some form of proxy-connectivity ASA
setup for such newly enrolled network nodes on a link-local connected
aNI domain node, for example the same node that was providing the
BRSKI proxy ASA. This of course is only necessary if those new nodes
are assumed to be remotely configured/provisioned instead of being
able to fully self-provision through appropriate autonomous service agents.</t>

<section anchor="unsecured-pledges-bringup"><name>Unsecured pledges bringup</name>

<t>If new devices need to be brought into a domain that does not have
BRSKI or another stand-alone mechanism to provision domain credentials,
then a bootstrap proxy agent on a neighboring domain node can provide
connectivity to such a pledge. This ASA would involve
the following aspects:</t>

<t><list style="symbols">
  <t>The ASA is capable to discover the presence of such pledges through
any pre-existing protocol on the pledge. This can include LLDP,
or simply the signaling elements that may be provided by by the pledge
in DHCP requests and help to identify it. Use of such pre-existing
mechanisms would allow to avoid expecting any changes to pledges
software in factory-fresh condition. This is especially valuable on
pledges that allow to later install additional softeware easily,
such as ASA, e.g.: after enrolment.</t>
  <t>The bootstrap proxy agent on this neighboring node indicates the presence
of such a new pledge through an appropriate new-pledge-announcement protocol
to an enrollment service that may run on a central management node. For
example that server announces via GRASP its availaility and the bootstrap
proxy agent signals presence of new plege(s) to that GRASP discovered server.</t>
  <t>The bootstrap proxy agent implements or orchestrates a transport proxy
that allows the enrollment servers to connect to sockets on the pledge  via it.
known or assumed to allow remote configuration. For example, the transport
proxy could be a simple HTTPS server implementing only the CONNECT method
to such ports on directly connected pledges. The prior step GRASP signaling
would inform the management node of the discovered (link-local) addresses
and port(s) on those pledges through appropriate URLs. Once the management
station connects to the bootstrap proxy agent and issues the HTTP CONNECT,
it has a transparent TCP connection to the plege.</t>
</list></t>

</section>
<section anchor="brski-pledges"><name>BRSKI pledges</name>

<t>If the pledge can already be enrolled with BRSKI or an equivalently
secure alternative protocol into the aNI domain, there are a range
of more options, but it may be a good start to simply use the same
mechanisms as for an unsecured pledge except for the following.</t>

<t>Any connections into the pledge after being enrolled via BRSKI SHOULD
only be via TLS 1.3 or better and use the aNI domain credentials
for authentication. Ideally, no insecure ports should need to be
open on such a to-be-provisioned node.</t>

</section>
<section anchor="ani-bootstrap"><name>aNI bootstrap</name>

<t>Whether a new, to-be-provisioned node uses BRSKI or not,
any aNI functionality such as the GRASP coordination agent or
any other ASA SHOULD be enabled through the provisioning system only after
the required data-plane connectivity has been provisioned.</t>

<t>This is beneficial, so that the GRASP coordination agent can determine
the necessary information about which interface belongs to which
area from the data-plane configuration. In the most easy provisioning
option, the data-plane configuration explicitly labels interfaces or
addresses with aNI area numbers, so that the GRASP coordination agent
has this information readily available. Otherwise, areas have
to be determined by examining VRF membership and NAT inside/outside
of interfaces/addresses, to automatically determine which area they
should be assigned to.</t>

</section>
</section>
<section anchor="inter-domain-ani-communications"><name>Inter-domain aNI communications</name>

<t>Many use cases require communications between ASA that are not in the same
automation domain. This section discusses options how to support this.</t>

</section>
<section anchor="using-ani-domain-credentials"><name>Using aNI domain credentials</name>

<t>Secure communication via TLS 1.3 or any other equal or better strength transport
protocol with mutual certificate authentication with a peer in a different aNI domain
requires mutual trust in the other domains aNI certificates. If for example the
domain of a peer1 is peer1domain.example.com, then secure transport connections to
peer1 needs a prior provisioning of the trust anchors for peer1domain.example.com
on the local node.</t>

<t>aNI certificates and trust-anchors, just like ACP certificates and trust anchors are
not required to be WebPKI certificates, so no trust or enrolment into WebPKI systems
is required. This allows aNI to contually operate without any Internet connectivity.
It also eliminates any challenges that would otherwise easily be introduced with
the desire for the certificate to contain private information such as the aNI
domain information field. Equally, enrollment and renewal of certificates is
easily and automated with BRSKI or other protocol alternatives.</t>

<t>In return to these benefits of private aNI certificates, it is necessary to provision
mapping information between a trusted remote aNI domain trust anchors and that domains
domain name.</t>

</section>
<section anchor="using-federated-ani-credentials"><name>Using federated aNI credentials</name>

<t>To avoid configuring the above described aNI credential to domain mapping,
typical deployhment cases such as service provider to customer interdomain
connections, or collaborating service provider connections could rely on a
common trust anchor and shared private (e.g.: BRSKI based certificate enrollment)
system. With such a setup, the single root trust anchor of that federation would
allow to authenticate all federation member certificates, whereas the trust
anchor of each domains aNI is an intermediate trust anchor, allowing all
intradomain security to be managed in the same way as without a federation.</t>

</section>
<section anchor="using-webpki-certificates"><name>Using WebPKI certificates</name>

<t>If using WebPKI certificates, including enrollment and renewal, is feasible,
including the typical necessity of Internet connectivity, then aNI nodes
requiring interdomain connections could also use such WebPKI to communicate
with each other, reducing the operational complexity to simply configuring
which web domain a remote peer is expected/permitted to be from.</t>

</section>
</section>
<section anchor="summary"><name>Summary</name>

<t>In-network automation through simply programmed software agents called ASA requires
a set of underlying infrastructure functions. In the ANI, <xref target="RFC8993"/>, these are provided 
through the combination of ACP, BRSKI and GRASP.</t>

<t>This document outlines how the mayority of this ANI functionality can be provided
without the need for the expensive to implement ACP, by simply making ASA rely on
the the already existing connectivity in the network, the so-called data-plane.</t>

<t>The resulting infrastructure module introduced in this document is called
aNI - automation Network Infrastructure and can be implement solely as application-level
software running on switches, routers or co-located management nodes,
not requiring any changes to existing IPv6 and/or IPv6 routing and forwarding
planes, but instead relying solely on transport-layer security (authentication and
encryption of signaling protocols).</t>

<t>Most importantly, the aNI can also work in the presence of the wide range of connectivity impairing
functions in networks such as firewalls, NATs, traffic filtering and VRFs. In the ANI,
the ACP provided a parallel, unfethered IPv6 connectivity to overcome such impairments. In contrast,
in the aNI proxy ASA are required to establish connectivity, ranging from simple GRASP
service announcement proxies that provide the missing connectivity when the impairment
is because of NAT/PAT, to actual GRASP signaling and transport connection proxies, when there is no
connectivity possible otherwise. This approach generalizes the approach already used by
BRSKI proxies.</t>

<t>The fundamental security of the aNI is the same as in the ANI: domain certificates
with automatic enrolment via BRSKI or other protocols. Like proposed in the ANI,
role-based extensions can help to provide more fine-grained authentication.</t>

<t>The main "shortcoming" of the aNI compared to the ANI is that it does not provide
(in its current version) transparent end-to-end security for pre-existing unsecured
signaling protocols such as NTP, SNMP, DHCP, DNS, TFTP or other commonly used protocols
for the networks control and management plane. This is because since the definition
of the ACP, secure versions or variations of these protocols have become more commonplace,
and it is thus more appropriate today to expect for those secure evolutions to be used
instead of investing large amounts of efforts to layer security underneath old protocol
options. aNI domain certificates enable the seamless security for any protocol with
TLS 1.3 or better transport layer security options - including of course also datagram
protocols with DTLS 1.3.</t>

</section>
<section anchor="security-considerations"><name>Security considerations</name>

<section anchor="proxying-and-security"><name>Proxying and Security</name>

<t>Providing remote access to not configured or incorrectly configured nodes 
constitutes a significant security challenge because those nodes
are most often vulerable to attacks, with typical security issues such as open ports with
default passwords.</t>

<t>All proxying of connections towards such nodes described in this document is designed
such that it can only be initiated from trusted nodes with aNI domain certificates -
with the assumnption that ithis is a sufficient level of security to ensure that the
initator is not malicious.  If this level of security is deemed insufficient,
then more fine-grained role based authentication can be added to aNI
domain certificates as already outline for ANI domain certificates in <xref target="RFC8994"/>,
limiting use of such connection proxies to more trustworthy nodes such as
management stations.</t>

</section>
<section anchor="infrastructure-security"><name>Infrastructure security</name>

<t>By not building an ACP, the aNI does not have the same level of infrastructure security
as an ANI. Specifically attackers that gain access to physical links between nodes can
inject packets and attempt to attack any weak (responder) sockets of network equipment.
The ACP prohibits this because it carries all control plane traffic across encrypted
point-to-point tunnels. Nevertheless, the aNI does expect that all control plane
considered to be part of the aNI is protected by certifcate based transport layer
security, so it does conform to todays best established standards for end-to-end
security and extends it into the hop-by-hop infrastructure.</t>

<t>To compensate for this lack of infrastructure security, it is recommended to not only
deploy the "clamshell security" model common in service provider networks, but to also
design ASA that automate its establishment: Network connectivity to and from IPv4/IPv6 addresses
used between nodes of the aNI SHOULD be filtered on the edge of an aNI domain in the
forwarding plane (with destination IPv4/IPv6 address ACL) so that attackers without
access to a physcial link between aNI node can not inject the above described
attacks.</t>

</section>
</section>


  </middle>

  <back>


    <references title='Normative References' anchor="sec-normative-references">



<reference anchor="RFC1819">
  <front>
    <title>Internet Stream Protocol Version 2 (ST2) Protocol Specification - Version ST2+</title>
    <author fullname="L. Delgrossi" initials="L." role="editor" surname="Delgrossi"/>
    <author fullname="L. Berger" initials="L." role="editor" surname="Berger"/>
    <date month="August" year="1995"/>
    <abstract>
      <t>This memo contains a revised specification of the Internet STream Protocol Version 2 (ST2). This memo defines an Experimental Protocol for the Internet community.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="1819"/>
  <seriesInfo name="DOI" value="10.17487/RFC1819"/>
</reference>

<reference anchor="RFC8368">
  <front>
    <title>Using an Autonomic Control Plane for Stable Connectivity of Network Operations, Administration, and Maintenance (OAM)</title>
    <author fullname="T. Eckert" initials="T." role="editor" surname="Eckert"/>
    <author fullname="M. Behringer" initials="M." surname="Behringer"/>
    <date month="May" year="2018"/>
    <abstract>
      <t>Operations, Administration, and Maintenance (OAM), as per BCP 161, for data networks is often subject to the problem of circular dependencies when relying on connectivity provided by the network to be managed for the OAM purposes.</t>
      <t>Provisioning while bringing up devices and networks tends to be more difficult to automate than service provisioning later on. Changes in core network functions impacting reachability cannot be automated because of ongoing connectivity requirements for the OAM equipment itself, and widely used OAM protocols are not secure enough to be carried across the network without security concerns.</t>
      <t>This document describes how to integrate OAM processes with an autonomic control plane in order to provide stable and secure connectivity for those OAM processes. This connectivity is not subject to the aforementioned circular dependencies.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8368"/>
  <seriesInfo name="DOI" value="10.17487/RFC8368"/>
</reference>

<reference anchor="RFC8990">
  <front>
    <title>GeneRic Autonomic Signaling Protocol (GRASP)</title>
    <author fullname="C. Bormann" initials="C." surname="Bormann"/>
    <author fullname="B. Carpenter" initials="B." role="editor" surname="Carpenter"/>
    <author fullname="B. Liu" initials="B." role="editor" surname="Liu"/>
    <date month="May" year="2021"/>
    <abstract>
      <t>This document specifies the GeneRic Autonomic Signaling Protocol (GRASP), which enables autonomic nodes and Autonomic Service Agents to dynamically discover peers, to synchronize state with each other, and to negotiate parameter settings with each other. GRASP depends on an external security environment that is described elsewhere. The technical objectives and parameters for specific application scenarios are to be described in separate documents. Appendices briefly discuss requirements for the protocol and existing protocols with comparable features.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8990"/>
  <seriesInfo name="DOI" value="10.17487/RFC8990"/>
</reference>

<reference anchor="RFC8993">
  <front>
    <title>A Reference Model for Autonomic Networking</title>
    <author fullname="M. Behringer" initials="M." role="editor" surname="Behringer"/>
    <author fullname="B. Carpenter" initials="B." surname="Carpenter"/>
    <author fullname="T. Eckert" initials="T." surname="Eckert"/>
    <author fullname="L. Ciavaglia" initials="L." surname="Ciavaglia"/>
    <author fullname="J. Nobre" initials="J." surname="Nobre"/>
    <date month="May" year="2021"/>
    <abstract>
      <t>This document describes a reference model for Autonomic Networking for managed networks. It defines the behavior of an autonomic node, how the various elements in an autonomic context work together, and how autonomic services can use the infrastructure.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8993"/>
  <seriesInfo name="DOI" value="10.17487/RFC8993"/>
</reference>

<reference anchor="RFC8994">
  <front>
    <title>An Autonomic Control Plane (ACP)</title>
    <author fullname="T. Eckert" initials="T." role="editor" surname="Eckert"/>
    <author fullname="M. Behringer" initials="M." role="editor" surname="Behringer"/>
    <author fullname="S. Bjarnason" initials="S." surname="Bjarnason"/>
    <date month="May" year="2021"/>
    <abstract>
      <t>Autonomic functions need a control plane to communicate, which depends on some addressing and routing. This Autonomic Control Plane should ideally be self-managing and be as independent as possible of configuration. This document defines such a plane and calls it the "Autonomic Control Plane", with the primary use as a control plane for autonomic functions. It also serves as a "virtual out-of-band channel" for Operations, Administration, and Management (OAM) communications over a network that provides automatically configured, hop-by-hop authenticated and encrypted communications via automatically configured IPv6 even when the network is not configured or is misconfigured.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8994"/>
  <seriesInfo name="DOI" value="10.17487/RFC8994"/>
</reference>

<reference anchor="RFC8995">
  <front>
    <title>Bootstrapping Remote Secure Key Infrastructure (BRSKI)</title>
    <author fullname="M. Pritikin" initials="M." surname="Pritikin"/>
    <author fullname="M. Richardson" initials="M." surname="Richardson"/>
    <author fullname="T. Eckert" initials="T." surname="Eckert"/>
    <author fullname="M. Behringer" initials="M." surname="Behringer"/>
    <author fullname="K. Watsen" initials="K." surname="Watsen"/>
    <date month="May" year="2021"/>
    <abstract>
      <t>This document specifies automated bootstrapping of an Autonomic Control Plane. To do this, a Secure Key Infrastructure is bootstrapped. This is done using manufacturer-installed X.509 certificates, in combination with a manufacturer's authorizing service, both online and offline. We call this process the Bootstrapping Remote Secure Key Infrastructure (BRSKI) protocol. Bootstrapping a new device can occur when using a routable address and a cloud service, only link-local connectivity, or limited/disconnected networks. Support for deployment models with less stringent security requirements is included. Bootstrapping is complete when the cryptographic identity of the new key infrastructure is successfully deployed to the device. The established secure connection can be used to deploy a locally issued certificate to the device as well.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8995"/>
  <seriesInfo name="DOI" value="10.17487/RFC8995"/>
</reference>




    </references>

    <references title='Informative References' anchor="sec-informative-references">




<reference anchor="I-D.eckert-anima-grasp-dnssd">
   <front>
      <title>DNS-SD Compatible Service Discovery in GeneRic Autonomic Signaling Protocol (GRASP)</title>
      <author fullname="Toerless Eckert" initials="T. T." surname="Eckert">
         <organization>Futurewei Technologies USA
      Inc.</organization>
      </author>
      <author fullname="Mohamed Boucadair" initials="M." surname="Boucadair">
         <organization>Orange</organization>
      </author>
      <author fullname="Christian Jacquenet" initials="C." surname="Jacquenet">
         <organization>Orange</organization>
      </author>
      <author fullname="Michael H. Behringer" initials="M. H." surname="Behringer">
         </author>
      <date day="7" month="July" year="2025"/>
      <abstract>
	 <t>   DNS Service Discovery (DNS-SD) defines a framework for applications
   to announce and discover services.  This includes service names,
   service instance names, common parameters for selecting a service
   instance (weight or priority) as well as other service-specific
   parameters.  For the specific case of autonomic networks, GeneRic
   Autonomic Signaling Protocol (GRASP) intends to be used for service
   discovery in addition to the setup of basic connectivity.
   Reinventing advanced service discovery for GRASP with a similar set
   of features as DNS-SD would result in duplicated work.  To avoid
   that, this document defines how to use GRASP to announce and discover
   services relying upon DNS-SD features while maintaining the intended
   simplicity of GRASP.  To that aim, the document defines name
   discovery and schemes for reusable elements in GRASP objectives.

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-eckert-anima-grasp-dnssd-08"/>
   
</reference>




    </references>


<?line 722?>

<section anchor="changelog"><name>Changelog</name>

<section anchor="draft-eckert-anima-acp-free-ani-01"><name>draft-eckert-anima-acp-free-ani-01</name>

<t>refresh</t>

</section>
<section anchor="draft-eckert-anima-acp-free-ani-00"><name>draft-eckert-anima-acp-free-ani-00</name>

<t>Initial version</t>

</section>
</section>


  </back>

<!-- ##markdown-source:
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
j5zrA+PHPu75TxDLqjkyreal+19MGh3rL50AAA==

-->

</rfc>

