<?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-00" 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="March" day="03"/>

    
    <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="2024"/>
      <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-07"/>
   
</reference>




    </references>


<?line 722?>

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

<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:
H4sIAO0uxmcAA+19a5MbR5bd9/wVFZwP0+0FQJF6WGJ4N7bFx6pjKYomWyM7
RhOOBJDoLrFQha0qdAsryb/d99xHPgpoko6ZtddedcyIaHRVPu/7nrw5n8+d
W3Xrur1+Uu3HzfxLN9ZjE55UF09fV5s+hOrBxX7stn6su7Z6Fca7rn9XXbab
3g9jv1+N+z48qDZdXw31dteEqm7nrT7l04tn/tXlufPLZR9us7bpW7fuVq3f
Uo/r3m/GeVi9C/0492299XO/2s3xIH6df/KJu6NRXry6/PbCrfwYrrv+8IQ6
3HSOxhL89kl1+fzqhftD1S2HrgljGJ5Ujx49ekzf7Hdrz7//568euXrXP6lo
9MP4+JNPvvrksaP3fbv+H77pWhrIIQxuVz+p/lyN3WqG/6zDbrx5Un0+q4au
p642A306bOXDqttuQzsOf3GOZnzT9U9cVc3p//wjc7vqQt+EYaie8/Tsj11P
E3qxxyLehbq6Cqubtmu66zoM1fdvL+yxvsOOhHU9dr19t+r27Yj5Z8+Fra8b
mtkY/nE1LDZ+v1iH47F8TZtdvaz3xSC+2fvpCI56er14s6ie3tStn3TYhG7R
1PslNfyPN9zQghbFubbrsf+3ASvy5sXTR18++ko/fvnpF1/ax6+++iR9/DR9
/Cx9/PyJc9jorL3L+bNFQSzXRJK7+bodhjU9PZ/PK78kuvCr0bmrm3qoiNL2
2KlqHYZVXy9pkW+6O9pf/G+5r5t1Nd4E2uLNeOd7kHJO5Uzk65p+r5f7Maxd
Rt7+GgRQ7Qcsra+a+vpmpFWg/1a3vq/loW7DzTM/td22Xhk74aUpR50RmZ/P
3PKgjeLN8DP1jl/obzQZWvu2ehcO+IbGEaifpjpb0YLUmxr8MVRE1ELn9GlF
lDmcV36o7kLT0L8Obe76jui7a4bqn95cvH3Nb3z95u0/X6a/zGhtxio09ZZ2
fkyD2YV2oL3A4jHrY2ldNrunHZFN11SvG9/yjJ6+Puf2/RryBh38zIPP3nlr
a3/BK4q33l6c004MY/DrBTYyVH0Y9g0PZLJDtMcr3zRhXT3wHxZaGMrKt5Vb
hjQBeheiozlgofxu12Al0UoTbkOTaIPoe0fCArtOf+w7oogeQuGuHlc3xDtE
K6tu3nTYhzVtT0skQu0HEN9tvQr0rL/t6rUtZxvoMVrJ1Y1vr0kwtgdttIJo
tVaJBKl3fok74AWe77DAab90lUi2Vn51U9O4h2rbDRipUOCSxrGp0+8gJ2wx
tU4ylZ7Gl35ZN/V4wJiCH+rm4Lb+HXoJc6PDGfYlrPa8HCeHUumfabD03W29
pnaJ9pjLSBY5PBhWykIeu1x1u9B7knN45+2zV9ZyQyuxrQf6bVNf73veEwzU
jzIF0ijaA+YP5t/W63UTHMn+S7Sw3nM/9Psfqq/96t01LW+7du6XX1Tu/PZb
JhdGJrNN6EO7CrR6a9p78P9J3r27qVc3GOhQyyo7T4QyN1I8euc0szM9Ztrz
TAnlPBKdUzFz3PDb0OPZkmtoHegfJnGmcH9dt/Qa0bWqanyi+e6oSZIktHwk
QbdbzIh28XpPvdEDe5oaPbg7kGZrsSk/+Vsvr1VuDaagHVtXJKiIrNYdmKAm
NrrmTRzwgu3osKiILomxemw8jacnquKH27UQf79vwU22AroAcQzHDDHj9lun
RFKFf9nXOxbxTBkkD3wzdNTQir7radkO9HnXdIewnsVmI3OORK79LfExqZo4
iNQkMzOTHe1HaG0bql1HcwAvEW8MTC9nr7vX5zzbIVRx01onKwEeINGBoVM/
w363I5sC7+sg63+lVq37fHAHEoJb7NWq2bMMSLzhmGGwJKOutXPfoQ/h8FU3
EVkbWSBwfj2o1jtBsCdE+Kwyjvnst99IQxGpBx79Zt8yh9EERtgvNBS/bOrh
hnViy9YgtdrtB9qFs38NfTcfO9qC82pFthukJBgASm30TKh/evPC+VXfDQML
DVsR29nTJJTEzJ0/DPOMmqgTEq4q1YhuW6w+zZysUtk1mgPEbi6AstWP06F+
uJOB5sqCWJa47SB6sOcsjOir1tGwu7shMcCs2OJ8a02tQMQQz0IRkFW5b1mP
V7oK9Yg/yGs88mho08JBOoWfPTN2HF+17MYbkfkkw1dxLUgDE62KtULvgrHw
+SwSgSNr2Ys0P2eG24UVrAoi16XIyJ6ZhfmT/o6VDz3sMxKWLexUbpsJYniY
lDGt0FvY/eBKoSOyA3/7jaj1e1h3454sDFK+s6SQlXqwpvWRaJjRtmBkzNkk
oIjdSDLckLK+9ivbSmrBCe/cZ9oNJiQ99C/Nv71Gt+Hn0K/qIczEahG26dae
htd21BEphYPz6243Ck2oikljN3HRio/QY6BmK4g1RxP/gQZMX/EkX13OsMuw
Y7JxROvU5PaR4UmCU2iRPC3ajTZ4bMn5dLnI0ln5/cDEw3IYKpWpYMq8bTdW
ZM+T7BuFYTfQltkODLIST8C8a2wTbam4gazxXUa/vAa8LVvydGgF2CKF39S2
UP63YEis8Br6neTvAQtNhEs0JvOb0QQ2Nc+wDXfJvIA9VHZEm0iGd4gLwxuX
LJmcqe6IQ9X0kkXKyZy5mVeIVsIdSMKZ5RGE1Uii9jT4igQPibF5ABflAoYe
0Q5IWhV/oc1d9t270C6q+/0SjGsbYAzWw1bdFNYmpi5swyLp6h90eBAiNHd3
W3t8FrmU7GbqqL5uM3t5CfbJh8KeykcY0ezYL9zL7o7I29MA/+j/iHaJylge
r8VU3JPgBGVv+m4bbU6xm9awOEWnBeV04oqX9btgD87EIBVdxZTAVrpqglFa
AMXWaugFaHmohHYFYjbTMvxMjEckPnO5GE5qMZkEhSqdKIKkdEmY5cO0UTrs
CKg3wKCOOybi6XTPIAWyS7+7hUgNd1O6iPMaVJuTutopdZdaXdZvLsGVo91z
5e7J5s10H+Dg9GzzSR+x2WTkgbJssuFnjIG/IlfCYdei8qOx92Rm+ZVRFmzN
gebCJLFULyJTqEnbRHUqI2bR62hHSFKQwvIkG6hB9hyFrqE4mnwTWNCwncIE
Daohh27Py4CNEWeGLWJbVcg1uDnmXpuIcyxvWbHsr0WN6lrwrsBim7o9sKCJ
jnJlnJYP1h4bzoWJ7d5rYp/dEZFjZ5TPiYzVSlY9InYmzzPyQQ+jtWcv0olD
ObB5rZon8yJ54EJI8W149iTZtiBeYrFWbYfL17ef4cGHNED6/EUm+lwpysVa
GcL1NhmbcUeJty9h9W7JeDskzl7Xmw2PLRcQHmNlG+qJc/+p4olG/RO3S5Tz
lLwyec0jt1FnQ60PFQJZZyoDc5Mnk2BmUWaSvpgu9lpiJ7AZwfdoNLnA1o6o
cCbanGRBqTxAECuJdVgyZLZs6xGynGwLItwZWswsHVPjje85ViBSoAk/E4mt
94hQ+SYt1F1N1jMotW73HK0R4Yg2YayMsTn6eAOfsNuS1CL9wGEkWKdgg3qF
yabQAUiSF5SoWkbJAUMjZjbuEO8jtzpZmwuSRPQiTRzBUOET2NzQ6uKYCcnc
QXqiORajWBoyuFYNzBodAahK9tUGMtPhQPZISJZcggXTzbNoWJh5oPrx6HcV
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
T5jEBD5KMsri6+3tW5IU4veFzUZqjnXVRA+w2dMGT3TeNWl5NcxItHxfBbwM
hzoEv2VgVUEOxSVI7HgfB86nNTkTy2qMa54Z1Fm9S2gZGBGw9NyuvJb4mXYj
tuM9hfgYcgTxbDLNHnTudcRlmEO7WvE1JekmWb0nlc8FaYnwAmKheBFIPtqQ
cS+5wOLi+zguC2NEwlRQRwR0cBwYqeO2uiVbqDcYgB9Hv8IlrVIQV12H2LDm
mIzTOH0guQXeCyJ6TyYXYzGJfdYQoDjKtLNFybSzkJyAxgUlIxXQjk4W5DaZ
3FcN/t/zHQUicSDpLJdiMHq9uNfCCFn9jvtoby6CmaUccp7tLkH56zGeGsqK
Xx1dLFyc+ZBAt8OA+FCpHjLYegTRuz1xgZSGOHVDscw1bAVME3tUSMmxFIcG
UJd9YoKpSRpLZWTRpTKgN0RVqC6CYEzvWayyfN3M8S0ELKIziMWxIufqhl2v
XjeRyHhjF3vYhTWZkNUc6GBx88Lejrctu68FAca174TzRNamxFkG7kmaOi56
fU/DXspl4jqKt9npKeURzqljk6/ZA43svLs5DMw0SBOnMH2sSEEEgSM6xCOS
geewHMmt7W5MDCi12IJ/V51FhOd5fuAlXsRM5t9OEB1XyRDlOxw0jWISgPmk
50t0EVYxvSaJnnhrhMA6YxVjt+vIS+Jyt/hQjajE2xyd4itWWlWNQRLKntwH
q0HzvR98y4Bkb4TsOBwkBD4R7872i8PK8e6D7Gpu6ECsAzJfEby+FlAXix8D
GWpN56ICrVQulmvjLMmbFccsaWfBwUTYRyQFMOJY+7TBpt5PaxYqndzwbaeP
ncQTufMHq8ZvaQJNEssPtIaIxvk4WjUJD6bbtxnLrAc6RJxmKSQND7O5FtcK
5PUkur1TF4Y9SIhaID0f5hd7BVQ5wSYWLJBtdcrexlObmquQa0vsKsninqKQ
n3QS6j0T+C3bKSL1jsZCnPHyPCYgEwdrKMMl/vXMwXyUGxycQtJ2eRokquTZ
fhI6PwoUO9WiRA7z+ZzIdvUOZsNTdsyb7prF2ZpYbpwXhQdx5dqmD4BF1fNP
PkFsquZIs5qL7n8BRYBx7f+cAAA=

-->

</rfc>

