<?xml version="1.0" encoding="US-ASCII"?>
<!-- This is built from a template for a generic Internet Draft. Suggestions for
     improvement welcome - write to Brian Carpenter, brian.e.carpenter @ gmail.com 
     This can be converted using the Web service at http://xml.resource.org/ -->
<!DOCTYPE rfc SYSTEM "rfc2629.dtd">
<?rfc toc="yes"?>
<!-- You want a table of contents -->
<?rfc symrefs="yes"?>
<!-- Use symbolic labels for references -->
<?rfc sortrefs="yes"?>
<!-- This sorts the references -->
<?rfc iprnotified="no" ?>
<!-- Change to "yes" if someone has disclosed IPR for the draft -->
<?rfc compact="yes"?>
<!-- This defines the specific filename and version number of your draft (and inserts the appropriate IETF boilerplate -->
<rfc category="std" docName="draft-nmdt-anima-management-bootstrap-01"
     ipr="trust200902">
  <front>
    <title abbrev="draft-nmdt-anima-management-bootstrap">Anima Bootstrapping
    for Network Management</title>

    <author fullname="Fanghong Duan" initials="F." surname="Duan">
      <organization>Huawei Technologies</organization>

      <address>
        <postal>
          <street>N8, Huawei Campus</street>

          <street>No. 101 Ruanjian Road</street>

          <city>Yu-Hua-Tai District, Nanjing</city>

          <code>210000</code>

          <country>P.R. China</country>
        </postal>

        <email>duanfanghong@huawei.com</email>
      </address>
    </author>

    <author fullname="Bing Liu" initials="B." role="editor" surname="Liu">
      <organization>Huawei Technologies</organization>

      <address>
        <postal>
          <street>Q14, Huawei Campus</street>

          <street>No.156 Beiqing Road</street>

          <city>Hai-Dian District, Beijing</city>

          <code>100095</code>

          <country>P.R. China</country>
        </postal>

        <email>leo.liubing@huawei.com</email>
      </address>
    </author>

    <author fullname="Yongkang Zhang" initials="Y." surname="Zhang">
      <organization>Huawei Technologies</organization>

      <address>
        <postal>
          <street>N8, Huawei Campus</street>

          <street>No. 101 Ruanjian Road</street>

          <city>Yu-Hua-Tai District, Nanjing</city>

          <code>210000</code>

          <country>P.R. China</country>
        </postal>

        <email>zhangyongkang@huawei.com</email>
      </address>
    </author>

    <date day="26" month="September" year="2018"/>

    <abstract>
      <t>This document points out the gaps of utilizing current Anima
      technologies into a traditional centralized management network. It
      raises some problems and requirments, based on which, as set of
      solutions are proposed. (These solutions are called Anima Bootstrapping
      for Network Management.)</t>
    </abstract>
  </front>

  <middle>
    <section anchor="intro" title="Introduction">
      <t>One typical usage of ANIMA technologyies is that they serve as a
      stable management channel of the management systems, such as controllers
      or network management system (NMS) hosts. And These cases is also
      described in section 6 of <xref
      target="I-D.ietf-anima-autonomic-control-plane"/>, with the purpose of
      management and controllability of ACP for the controllers or NMS hosts.
      However, In ANIMA networking, the autonomic nodes in ACP are self
      configurable by default, most configuration of which is learning from
      neighboring nodes in decentralized ways. While in traditional
      networking, the configuration is got by the top-down ways from the
      centralized devices (such as controller, NMS hosts etc) . These are the
      gaps and differences between the traditional networking and ANIMA
      networking.</t>

      <t>Following this Introduction, <xref target="Probs"/> describes the
      problems of the integration of ACP and traditional centralized netwoking
      nodes, and then layout the solution requirments of it.</t>

      <t>Based on the problems and solution requirments, this document
      disscusses the Autonomic Structured Naming mechanism (in section <xref
      target="AutoNaming"/>), which provids meaningful names easy for human
      operation and maintanance; autonomc NMS/Controller discovery by the
      Autonomic Nodes <xref target="NMSdisc"/> ; and topology discovery and
      collection <xref target="TopoDisc"/> allowing the NMS/Controller to
      learn the topology of the managed network. Finally, dicusses the
      capability of NMS/Controller correlating the naming and topology
      information to layout the whole picture of the managed entities in the
      Anima domain.</t>
    </section>

    <section anchor="Term" title="Terminology">
      <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
      "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
      "OPTIONAL" in this document are to be interpreted as described in <xref
      target="RFC2119"/> when they appear in ALL CAPS. When these words are
      not in ALL CAPS (such as "should" or "Should"), they have their usual
      English meanings, and are not to be interpreted as <xref
      target="RFC2119"/>key words.</t>

      <t>This document use the key words defined in <xref target="RFC7575"/>
      .</t>

      <t>The following additional terms are used throughout this document:
      <list style="symbols">
          <t>AN: Autonomic Nodes.</t>

          <t>NMS: Networking Management System.</t>

          <t>EMS: Element Management System.</t>

          <t>NE: Networking Element.</t>
        </list></t>
    </section>

    <section anchor="Probs" title="Problems and Requirments">
      <t>In ANIMA networking, every autonomic node has a global unique
      management address, this is the same with traditional networking.
      However, in traditional networking, the management addresses are
      globally planned by administrator. While in ANIMA networking, they are
      locally defined by the autonomic node itself using the information
      extracted from the domain certificate, called ULA addresses, as
      described in the section 5.8.2 of <xref
      target="I-D.ietf-anima-autonomic-control-plane"/>. In the view of
      centralized management tools, such as Networking Management System (NMS)
      hosts, there are usually two function modules included, the Element
      Management System (EMS) and the NMS core. The EMS is created by
      networking manager manually one by one for each networking element,
      using globally planned management addresses to establish SNMP sessions
      between EMS and networking elements. In ANIMA networking, because of the
      local definition of ULA addresses, it is difficult for networking
      managers to select which address to establish SNMP session or to do a
      correct functional deployment for each device.</t>

      <t>To resolve the problems raised above, the requirments listed
      following must be satisfied:<list style="symbols">
          <t>The autonomic nodes' physic location and functional roles in
          networking MUST be initially setted before running and can be
          dynamicly discoveried by the centralized management tools.</t>

          <t>The IP address of the centralized management tools MUST be
          published as service in the ANIMA networking, so that the autonomic
          nodes can trap the device information to the NMS host.</t>

          <t>By receiving the traps of the autonomic nodes, the centralized
          management tools must create the corresponding EMS in autonomic
          ways, not in manul ways by networking managers.</t>
        </list></t>
    </section>

    <section anchor="AutoNaming" title="Autonomic Structured Naming">
      <t/>

      <section title="Requirements">
        <t>- Representing each device<list style="symbols">
            <t>Inside a domain, each autonomic device needs a domain specific
            identifier.</t>
          </list></t>

        <t>- Uniqueness<list style="symbols">
            <t>The names MUST NOT collide within one autonomic domain.</t>

            <t>It is acceptable that the names in different domains collide,
            since they could be distinguished by domains.</t>
          </list>- Semantic Encoding<list style="symbols">
            <t>It is RECOMMENDED that the names encode some semantics rather
            than meaningless strings. This is for ease of management
            consideration that network administrators could easily recognize
            the device directly through the names.</t>
          </list></t>

        <t>- Consistency<list style="symbols">
            <t>The devices' naming SHOULD follow the same pattern within a
            domain.</t>
          </list></t>
      </section>

      <section title="Name Format and Content">
        <t/>

        <section title="Structured Naming Format">
          <t>- Naming Elements<list style="empty">
              <t>The whole name string could be combined with several
              individual Naming Elements, each of which representing a
              specific semantic. For example:
              Location-DeviceType-FunctionalRole-
              DistinguisherNumber@NameofDomain.</t>

              <t>The structure should be flexible that some elements are
              optional. When these optional fields are added, the name could
              still be recognized as the previous one.</t>
            </list></t>

          <t>- Element Attributes<list style="empty">
              <t>Each Naming Element could have zero or more attributes
              describing detailed information of the element. The attributes
              do not need to be presented in the naming string, but be stored
              as metadata in the devices and be reported to the management
              system.</t>
            </list></t>

          <t>- Mandatory and Optional Naming Elements<list style="empty">
              <t>In above example, the "DistinguisherNumber" and
              "NameofDomain" are mandatory whereas others are optional. At
              initial stage, the devices might be only capable of
              self-generating the mandatory fields and the "DeviceType"
              because of the lack of knowledge. Later, they might have learned
              the "Location" and "FunctionalRole" and added the fields into
              current name. However, the other devices could still recognize
              it according to the same "DistinguisherNumber".</t>
            </list></t>

          <t/>
        </section>

        <section title="Naming Content">
          <t>The naming information SHOULD be suitable for the centralized
          tools to determine the location of the device and the functions to
          be deployed. The composing parts of the naming information are
          listed as following :<list style="symbols">
              <t>Device Type</t>

              <t>Ownership</t>

              <t>Location. The physical location of the devices MUST be
              abbreviated and abstracted, and usually be setted into the
              device name feilds of the naming information. How to abbreviate
              and abstract the location information, is a policy of the ISP
              and out-of-scope of this document.</t>

              <t>Role and Function. The roles and the functions to be deployed
              in the devices MUST be specified in high level words, and
              usually be setted into the device function description feilds of
              the naming information. It MUST NOT include any detailed
              configuration parameters of the roles and functions. How to
              define the high level words of each function and role is
              out-of-scope of this document.</t>

              <t>TBD.</t>
            </list></t>
        </section>
      </section>

      <section title="Autonomic Naming Approaches">
        <t/>

        <section title="Received and Self-generated Naming Elements">
          <t>There are mainly two kinds of naming information, as the
          following.</t>

          <t>- Received Naming Elements</t>

          <t>The elements are advertised or injected by some external source.
          Operators are responsible for provisioning this kind of information.
          At least one of the interface types listed as following SHOULD be
          supported by the Autonomic Network:<list style="symbols">
              <t>Hardware interface. The operator uses some out-of-bind tools
              to specify the naming information as a initiail configure file,
              and write it to some storage material, such as USB devices, SD
              cards and etc. The physical interfaces MUST be supported by the
              devices to pluge in the storage materials. In the system
              starting up procedure of the devices, it reads the naming
              information from the initial setted configure file, and reports
              the relation of the ULA addresses and device name to the
              centralized tools as described in the following sections of this
              document.</t>

              <t>Software interface. During the first startup of the device
              system, the operator uses some in-bind software interfaces (such
              as Command Line Interface (CLI), Web Brower and etc) to specify
              the naming information as a configure file, and to write it to
              its internal storage material, such as FLASH cards. If there is
              no naming information configure file, the starting procedure
              pauses and wait for the configuration of the naming information.
              After the configuration or if there is already an exsting naming
              information file, the device continues the starting procedure,
              reads out the naming information and reports the relation of the
              ULA addresses and device name to the management tools as
              described in the following sections of this document.</t>
            </list></t>

          <t>- Self-generated Naming Elements</t>

          <t>The mandatory fields SHOULD be self-generated so that one device
          could name itself sufficiently without any advertised
          knowledges.</t>

          <t>There should various methods for a device to extract/generate a
          proper word for each mandatory semantic fields (e.g. "DeviceType",
          "DistinguisherNum") from its self-knowledge.</t>
        </section>

        <section title="Naming Metadata Storage">
          <t>TBD.</t>
        </section>
      </section>
    </section>

    <section anchor="NMSdisc"
             title="Network Management Server/Controller Discovery">
      <t>In order to connect to the centralized management tool, the AN
      devices MUST get acknowledgement of the address of it. In ANIMA
      netwoking, this MUST be done in autonomic ways. This section describes
      two methods for dynamic learning of the address of centralized
      management tools.</t>

      <section anchor="GRASPdisc" title="GRASP Method">
        <t>This method is mandatory in ANIMA networking.</t>

        <t>A centralized management tool is typically configured manually.
        When the centralized management tool joins an Autonomic Control Plane
        (<xref target="I-D.ietf-anima-autonomic-control-plane"/>) it MUST
        respond to GRASP (<xref target="I-D.ietf-anima-grasp"/>) M_NEG_SYN
        message. If the centralized management tool dose not take part in the
        ACP, the IPV6 address MUST be configured in one device (called
        Mangement Proxy) of ANIMA networking and that AN device MUST be
        responsible for responding to GRASP M_NEG_SYN message.</t>

        <t>The discovery messages send from the AN devices to the centralized
        management tool ( or Mangement Proxy) as follows:<figure
            title="Figure 5: Centralized Management Tool Discovery">
            <artwork><![CDATA[discovery-message = [M_NEG_SYN, session-id, initiator, Centralized-tool-objective]
Centralized-tool-objective         = ["AN_centralized_tool", F_SYNCH, loop-count, centralized-tool-address]
centralized-tool-address = ipv6-address]]></artwork>
          </figure>The value of centralized-tool-address field is zero. Other
        fields are followed the specification of GRASP.</t>

        <t>The response from the Centralized Management Tool (or Mangement
        Proxy) will be a M_RESPONSE with the following parameters: <figure
            title="Figure 6: Centralized Management Tool Response">
            <artwork><![CDATA[response-message = [M_RESPONSE, session-id, initiator, ttl,
    (+locator-option // divert-option), Centralized-tool-objective)]]]></artwork>
          </figure>The value of centralized-tool-address field in
        Centralized-tool-objective is zero. Other fields are followed the
        specification of GRASP.</t>

        <t>After the discovery precedure, the AN devices use M_REQ_SYN
        messages and the Centralized Management Tool (or Mangement Proxy)
        responds with M_SYNCH message as described in GRASP. In M_SYNCH
        message, the Centralized Management Tool (or Mangement Proxy) filles
        the centralized-tool-address field in Centralized-tool-objective of
        M_SYNCH message with the valid IPV6 address of Centralized Tool.</t>
      </section>

      <section anchor="ServDisc" title="mDNS Method">
        <t>This method is optional in ANIMA networking.</t>

        <t>Performs DNS-based Service Discovery <xref target="RFC6763"/> over
        Multicast DNS <xref target="RFC6762"/> searching for the service
        "_centralize_management_address.udp.local". To prevent unacceptable
        levels of nework traffic the congestion avoidance mechanisms specified
        in <xref target="RFC6762"/> section 7 MUST be followed. The AN devices
        SHOULD listen for an unsolicited broadcast response as described in
        <xref target="RFC6762"/>. This allows AN devices to avoid announcing
        their presence via mDNS broadcasts and instead silently join the
        centralized management tools by watching for periodic unsolicited
        broadcast res</t>
      </section>
    </section>

    <section anchor="TopoDisc" title="Topology Discovery and Collection">
      <t/>

      <section title="Local Topoloty Discovery">
        <t>For the traditional centralized tools such as NMS hosts, the Link
        Layer Dicovery Protocol (LLDP) is used to dicovery the neigboring
        nodes and the links between two nodes, this was specified in IEEE
        802.1ab.</t>
      </section>

      <section title="Topology Collection by NMS/Controller">
        <t>GRASP is used to carry topology information to the NMS/Controller.
        (Detailes TBD.)</t>
      </section>
    </section>

    <section title="Device Names and Topoloty Mapping in the NMS/Controller">
      <t>There are two information types for the AN devices that must be
      exchanged in ANIMA networking, So that the centralized management tools
      can get the acknowgledgment of the topology of it. The fixed
      information, which is the name of the AN devices, and were initially
      setted by the operators in the setting up procedures as described in the
      previous sections. The dynamic information, which is autonomously
      created or learned by the AN devices themselves, including the ULA
      addresses of the ACP, domain name of the neworking and etc.</t>
    </section>

    <section title="Security">
      <t>TBD.</t>
    </section>

    <section anchor="iana" title="IANA Considerations">
      <t>TBD.</t>
    </section>

    <section anchor="ack" title="Acknowledgements">
      <t>The main idea of this document was initiated by Gang Yan.</t>

      <t>Valuable comments were received from Sheng Jiang etc.</t>

      <t>This document was produced using the xml2rfc tool <xref
      target="RFC2629"/>.</t>
    </section>
  </middle>

  <back>
    <references title="Normative References">
      <?rfc include='reference.RFC.2119'?>

      <?rfc include='reference.RFC.2629'?>

      <?rfc ?>
    </references>

    <references title="Informative References">
      <?rfc include='reference.RFC.6762'?>

      <?rfc include='reference.RFC.6763'?>

      <?rfc include='reference.RFC.7575'?>

      <?rfc include='reference.RFC.7576'?>

      <?rfc include='reference.I-D.ietf-anima-grasp'?>

      <?rfc include='reference.I-D.behringer-anima-reference-model'?>

      <?rfc include='reference.I-D.ietf-anima-autonomic-control-plane'?>
    </references>

    <!-- current -->
  </back>
</rfc>
