One document matched: draft-ietf-opsawg-operations-and-management-02.xml


<?xml version="1.0" encoding="US-ASCII"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
<!ENTITY rfc1052 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.1052.xml">
<!ENTITY rfc2119 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml">
<!ENTITY rfc2578 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2578.xml">
<!ENTITY rfc2863 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2863.xml">
<!ENTITY rfc2865 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2865.xml">
<!ENTITY rfc2975 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2975.xml">
<!ENTITY rfc3060 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3060.xml">
<!ENTITY rfc3084 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3084.xml">
<!ENTITY rfc3139 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3139.xml">
<!ENTITY rfc3159 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3159.xml">
<!ENTITY rfc3165 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3165.xml">
<!ENTITY rfc3290 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3290.xml">
<!ENTITY rfc3317 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3317.xml">
<!ENTITY rfc3410 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3410.xml">
<!ENTITY rfc3413 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3413.xml">
<!ENTITY rfc3418 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3418.xml">
<!ENTITY rfc3444 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3444.xml">
<!ENTITY rfc3460 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3460.xml">
<!ENTITY rfc3535 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3535.xml">
<!ENTITY rfc3585 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3585.xml">
<!ENTITY rfc3588 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3588.xml">
<!ENTITY rfc3644 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3644.xml">
<!ENTITY rfc3670 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3670.xml">
<!ENTITY rfc3805 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3805.xml">
<!ENTITY rfc4011 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4011.xml">
<!ENTITY rfc4133 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4133.xml">
<!ENTITY rfc4502 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4502.xml">
<!ENTITY rfc4668 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4668.xml">
<!ENTITY rfc4669 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4669.xml">
<!ENTITY rfc4710 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4710.xml">
<!ENTITY rfc4741 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4741.xml">
<!ENTITY rfc4825 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4825.xml">
<!ENTITY rfc4930 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4930.xml">
<!ENTITY I-D.ietf-ipfix-protocol SYSTEM "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.ietf-ipfix-protocol.xml">
<!ENTITY I-D.ietf-syslog-protocol SYSTEM "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.ietf-syslog-protocol.xml">
]>
<?rfc toc="yes"?>
<?rfc tocompact="yes"?>
<?rfc tocdepth="3"?>
<?rfc tocindent="yes"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes"?>
<?rfc comments="yes"?>
<?rfc inline="yes"?>
<?rfc compact="yes"?>
<?rfc subcompact="no"?>
<?rfc strict="yes"?>
<?rfc rfcedstyle="yes"?>
<rfc category="bcp" docName="draft-ietf-opsawg-operations-and-management-02"
     ipr="full3978">
  <!--
  $Id: draft-ietf-opsawg-operations-and-management.xml,v 1.3 2007/12/13 22:41:14 H73653 Exp $
  -->

  <front>
    <title abbrev="Ops and Mgmt Guidelines">Guidelines for Considering
    Operations and Management of New Protocols</title>

    <author fullname="David Harrington" initials="D" surname="Harrington">
      <organization>Huawei Technologies USA</organization>

      <address>
        <postal>
          <street>1700 Alma Dr, Suite 100</street>

          <city>Plano</city>

          <region>TX</region>

          <code>75075</code>

          <country>USA</country>
        </postal>

        <phone>+1 603 436 8634</phone>

        <facsimile></facsimile>

        <email>dharrington@huawei.com</email>

        <uri></uri>
      </address>
    </author>

    <date year="2007" />

    <area>IETF Operations and Management Area</area>

    <keyword>management</keyword>

    <keyword>operations</keyword>

    <abstract>
      <t>New protocols or protocol extensions are best designed with due
      consideration of functionality needed to operate and manage the
      protocol. Retrofitting operations and management is sub-optimal. The
      purpose of this document is to provide guidance to authors and reviewers
      of documents defining new protocols or protocol extensions, covering
      aspects of operations and management that should be considered.</t>
    </abstract>
  </front>

  <middle>
    <section title="Introduction">
      <t>Often when new protocols or protocol extensions are developed, not
      enough consideration is given to how the protocol will be deployed,
      operated and managed. Retrofitting operations and management mechanisms
      is often hard and architecturally unpleasant, and certain protocol
      design choices may make deployment, operations, and management
      particularly hard. Since the ease of operations and management may
      impact the success of IETF protocols, this document provides guidelines
      to help protocol designers and working groups consider the operations
      and management functionality needed by their new IETF protocol or
      protocol extension at an earlier phase.</t>

      <t>This document suggests protocol designers consider operations and
      management needs and then recommend appropriate standard management
      protocols and data models to address the relevant operations and
      management needs. This is similar to a WG considering which security
      threats are relevant to their protocol, and then recommending
      appropriate standard security protocols to mitigate the relevant
      threats.</t>

      <t>This document discusses the importance of considering operations and
      management. Section 3 discusses operational functionality to consider.
      Section 4 discusses management functionality to consider.</t>

      <t>This document sets forth a list of subjective guidelines and a list
      of objective criteria by which a protocol designer can evaluate whether
      the protocol that he/she has developed addresses common operations and
      management needs. Operations and management is highly dependent on the
      environment in which it is used, so most guidelines are subjective
      rather than objective. We provide objective criteria to promote
      interoperability through the use of standard management interfaces, such
      as "did you design counters in a MIB module for monitoring packets
      in/out of an interface?", "did you write an XML-based data model for
      configuring your protocol with Netconf?", and "did you standardize
      syslog message content and structured data elements for reporting events
      that might occur when operating your protocol?"</t>

      <t>This document only provides guidelines; the (ever-changing membership
      of the) IESG can make a decision about how the guidelines should be used
      by the IETF over time.</t>

      <section title="Terminology">
        <t>This document deliberately does not use the (capitalized) key words
        described in <xref target="RFC2119">RFC 2119</xref>. RFC 2119 states
        the keywords must only be used where it is actually required for
        interoperation or to limit behavior which has potential for causing
        harm (e.g., limiting retransmissions). For example, they must not be
        used to try to impose a particular method on implementers where the
        method is not required for interoperability. This document is a set of
        guidelines based on current practices of protocol designers and
        operators. This document does not describe requirements, so the key
        words from RFC2119 have no place here.</t>

        <t><list style="symbols">
            <t>"new protocol" includes new protocols, protocol extensions,
            data models, or other functionality being designed.</t>

            <t>"protocol designer" represents individuals and working groups
            involved in the development of new protocols.</t>

            <t>[DISCUSS] markers indicate a lack of consensus on what should
            be written.</t>

            <t>[TODO] markers indicate the editor has a reasonable
            understanding of what needs to be (re-)written. Contributions of
            text would be welcome.</t>

            <t>Note to RFC Editor - All [DISCUSS] or [TODO] marks should be
            resolved before RFC publication. If any still exist, including in
            the Terminology section, then please return the document to the
            editor for resolution.</t>
          </list></t>
      </section>
    </section>

    <section title="Design for Operations and Management">
      <t>"Design for operations and management" means that the operational
      environment and manageability of the protocol should be considered from
      the start when new protocols are designed.</t>

      <t>When a WG considers operation and management functionality for a
      protocol, the document should contain enough information to understand
      how the protocol will be deployed and managed, but the WG should expect
      that considerations for operations and management may need to be updated
      in the future, after further operational experience has been gained.
      </t>

      <section title="IETF Management Framework">
        <t>For years the IETF has stressed the use of the IETF Standard
        Management Framework and SMI MIB modules <xref
        target="RFC2578"></xref> for managing new protocols. The IETF designed
        the Standard Management Framework and SMI MIB modules to permit
        multiple protocols to utilize the MIB data <xref
        target="RFC1052"></xref>, but it became a common misunderstanding that
        a MIB module could only be used with the SNMP protocol (described in
        <xref target="RFC3410"></xref> and associated documents).</t>

        <t>In 2001, OPS Area design teams were created to document
        requirements related to configuration of IP-based networks. One output
        was "Requirements for Configuration Management of IP-based Networks"
        <xref target="RFC3139"></xref>. </t>

        <t>In 2003, the Internet Architecture Board (IAB) held a workshop on
        Network Management <xref target="RFC3535"></xref> that discussed the
        strengths and weaknesses of some IETF network management protocols,
        and compared them to operational needs, especially configuration.</t>

        <t>One factor discussed was the user-unfriendliness of the binary
        format of SNMP and COPS-PR, and it was recommended that the IETF
        explore an XML-based Structure of Management Information, and an
        XML-based protocol for configuration.</t>

        <t>Another factor discussed was that deployed tools for event/alarm
        correlation, root cause analysis and logging are not sufficient, and
        there is a need to support a human interface and a programmatic
        interface. The IETF decided to standardize aspects of the defacto
        standard for system logging, especially security and the need for
        better programmatic support.</t>

        <t>In 2006, the IETF discussed whether the Management Framework should
        be updated to accommodate multiple IETF standard SMI languages, and
        multiple IETF standard protocols for doing network management.</t>

        <t>This document provides some initial guidelines for considering
        operations and management in this environment of multiple protocols
        and multiple data models, with an eye toward being flexible while also
        striving for interoperability.</t>
      </section>
    </section>

    <section title="Operational Considerations">
      <t>Designers of a new protocol should carefully consider the operational
      aspects. A protocol that is defined very precisely in a well-written
      document doesn't guarantee that it is going to be deployable in the real
      world. Operational aspects will have a serious impact on the actual
      success of a protocol. Such aspects include bad interactions with
      existing solutions, a dififcult ugrade path, difficulty of debugging
      problems, difficulty configuring from a central database, or a
      complicated state diagram that operations staff will find difficult to
      understand </t>

      <t>[DISCUSS: examples, list of current protocols characteristics and
      their impact on the network. e.g., burst traffic impact on network
      congestion.]</t>

      <t>Operations and manageability considerations should focus on
      interoperability of externally observable behaviors. [TODO: expand or
      eliminate.]</t>

      <section title="Operations Model">
        <t>Protocol designers can analyze the operational environment and mode
        of work in which the new protocol or extension will work. Such an
        exercise needs not be reflected directly by text in their document,
        but could help in visualizing the operational model related to the
        applicability of the protocol in the Internet environments where it
        will be deployed. The operational model should take into account
        factors such as: <list style="symbols">
            <t>what type of management entities will be involved (agents,
            network management systems)?</t>

            <t>what is the possible architecture (client-server,
            manager-agent, polling-driven or event-driven, autoconfiguration,
            two levels or hierarchical)?</t>

            <t>what are the basic management operations - initial
            configuration, dynamic configuration, alarms and exceptions
            reporting, logging, performance monitoring, performance reporting,
            debugging?</t>

            <t>how are these operations performed - locally, remotely, atomic
            operation, scripts?</t>

            <t>what are the typical user interfaces - Command line (CLI) or
            graphical user interface (GUI)?</t>
          </list></t>

        <t>Protocol designers should consider how the new protocol will be
        managed in different deployment scales. It might be sensible to use a
        local management interface to manage the new protocol on a single
        device, but in a large network, remote management using a centralized
        server and/or using distributed management functionality might make
        more sense. Auto-configuration and default parameters might be
        possible for some new protocols.</t>

        <t>There may be a need to support a human interface, e.g., for
        troubleshooting, and a programmatic interface, e.g., for automated
        monitoring and root cause analysis. It might be important that the
        internal method routines used by the application programming
        interfaces and the human interfaces should be the same to ensure that
        data exchanged between these two interfaces is always consistent.
        [DISCUSS: would the example of inconsistency between non-resettable
        MIB counters and CLI resettable counters be useful here? ]</t>

        <!--A human interface, such as a command line interface, is
        useful for troubleshooting, while a programmatic interface is
        important for managing multiple devices in a consistent manner, and
        automating repetitive functions. Graphical user interfaces can help an
        operator comprehend an overview of the network quickly (one picture is
        worth a thousand words), but an operator may also require seeing the
        raw data to better understand just what is happening in the network.
        Ease of use is a key requirement for any network management technology
        from the operators point of view. Protocol designers should consider how
        various protocol choices might impact ease of use in different
        scenarios. -->

        <t>Protocol designers should consider what management operations are
        expected to be performed as a result of the deployment of the protocol
        - such as whether write operations will be allowed on routers and on
        hosts, or if notifications for alarms or other events will be
        expected.</t>
      </section>

      <section title="Installation and Initial Setup">
        <t>Protocol designers should consider default values that make
        protocol sense, to simplify configuration, including default modes and
        parameters. For example, it could be helpful or necessary to specify
        default values for modes, timers, default state of logical control
        variables, default transports, and so on. Even if default values are
        used, it must be possible to retrieve all the actual values or at
        least an indication that known default values are being used.</t>

        <t>Protocol designers should consider how to enable operators to
        concentrate on the configuration of the network as a whole rather than
        individual devices.</t>

        <t>It is also desirable to discuss the background of chosen default
        values, or perhaps why a range of values makes sense. In many cases,
        when technology changes, the values in an RFC might make less and less
        sense (for example due to increased speeds in the network). It is very
        useful to understand whether defaults are based on 'best current
        practice' and are expected to change as technologies advance or
        whether they have a more universal value and should not be changed
        lightly.</t>
      </section>

      <section title="Migration Path">
        <t>If the new protocol is a new version of the protocol, or is
        replacing another technology, the protocol designer should consider
        how deployments should transition to the new protocol. This should
        include co-existence with previously deployed protocols and/or
        previous versions of the same protocol, incompatibilities between
        versions, translation between versions, and side effects that might
        occur. Are older protocols or versions disabled or do they co-exist in
        the network with the new protocol?</t>

        <t>Another point to consider is extensibility of the management
        approach - How open to future protocol extensions are the management
        techniques you are defining?</t>
      </section>

      <section title="Requirements on Other Protocols and Functional Components">
        <t>Protocol designers should consider the requirements that the new
        protocol might put on other protocols and functional components, and
        should also document the requirements from other protocols that have
        been considered in designing the new protocol. [TODO: examples]</t>

        <t>These considerations should generally remain illustrative to avoid
        creating restrictions or dependencies, or potentially impacting the
        behavior of existing protocols, or restricting the extensibility of
        other protocols, or assuming other protocols will not be extended in
        certain ways. [TODO: example]</t>
      </section>

      <section title="Impact on Network Operation">
        <t>The introduction of a new protocol or extensions to an existing
        protocol may have an impact on the operation of existing networks.
        Protocol designers should outline such impacts (which may be positive)
        including scaling concerns and interactions with other protocols. For
        example, a new protocol that doubles the number of active, reachable
        addresses in use within a network might need to be considered in the
        light of the impact on the scalability of the IGPs operating within
        the network.</t>

        <t>The protocol designer should consider the potential impact on the
        behavior of other protocols in the network and on the traffic levels
        and traffic patterns that might change, including specific types of
        traffic such as multicast. Also consider the need to install new
        components that are added to the network as result of the changes in
        the operational model, such as servers performing auto-configuration
        operations.</t>

        <t>The protocol designer should consider also the impact on
        infrastructure applications like the DNS, registries, or the size of
        routing tables.</t>

        <t>The impact on performance may also be noted - increased delay or
        jitter in real-time traffic applications, or response time in
        client-server applications when encryption or filtering are
        applied.</t>

        <t>It must be easy to do consistency checks of versions/revisions of
        configurations over time. [DISCUSS: probably needs a bit more
        discussion on database driven configurations. ]</t>

        <t>It must be easy to do consistency checks of configurations between
        the ends of a link in order to determine the differences between two
        configurations and whether the configurations are consistent.
        [DISCUSS: this needs rewording to better describe consistency checking
        1) over time, and 2) between ends of a link. probably needs a bit more
        discussion on the need to be able to understand and check what it is
        happening on the wire actually matches what the Operator tried to
        configure. Basically, complexity is your enemy here, and that cannot
        be stressed often enough (no idea how you can verify whether for
        example a SIP application is actually doing what it is supposed to do
        due to it's complexity).]</t>

        <t>It is important to minimize the impact caused by configuration
        changes. Given configuration A and configuration B, it should be
        possible to generate the operations necessary to get from A to B with
        minimal state changes and effects on network and systems.</t>
      </section>

      <section title="Verifying Correct Operation">
        <t>The protocol designer should consider techniques for testing the
        effect that the protocol has had on the network by sending data
        through the network and observing its behavior. Protocol designers
        should consider how the correct end-to-end operation of the new
        protocol in the network can be tested, and how the correct data or
        forwarding plane function of each network element can be verified to
        be working properly with the new protocol.</t>
      </section>
    </section>

    <section title="Management Considerations">
      <t>The considerations of manageability should start from describing the
      operational model, which includes identifying the entities to be
      managed, how the respective protocol is supposed to be installed,
      configured and monitored, who are the managers and what type of
      management interfaces and protocols they would use.</t>

      <t>Considerations for management should include a discussion of what
      needs to be managed, and how to achieve various management tasks. The
      "write a MIB module" approach to considering management often focuses on
      monitoring a protocol endpoint on a single device. A MIB module document
      typically only considers monitoring properties observable at one end,
      while the document doesn't really cover managing the *protocol* (the
      coordination of multiple ends), and doesn't even come near managing the
      *service* (which includes a lot of stuff that's very far away from the
      box). This is exactly what operators hate - you need to be able to
      manage both ends. As RFC3535 says, MIB modules can often be
      characterized as a list of ingredients without a recipe.</t>

      <t>WGs should consider how to configure multiple related/co-operating
      devices and how to back off if one of those configurations fails or
      causes trouble. NETCONF addresses this ina generic manner by allowing an
      operator to lock the configuration on multiple devices, perform the
      configuration settings/changes, check that they are OK (undo if not) and
      then unlock the devices.</t>

      <t>Techniques for debugging protocol interactions in a network should be
      part of the network management discussion. Implementation source code
      should be debugged before ever being added to a network, so asserts and
      memory dumps do not normally belong in management data models. However,
      debugging on-the-wire interactions is a protocol issue: it is enormously
      helpful if a protocol has hooks to make debugging of network
      interactions easy, and/or is designed in such a way that debugging
      protocol behaviors is easy. Handwaving this away is not something that
      operators like ...</t>

      <t>In a client/server protocol, it may be more important to instrument
      the server end of a protocol than the client end.</t>

      <section title="Interoperability">
        <t>Just as when deploying protocols that will inter-connect devices,
        our primary goal in considering management should be interoperability,
        whether across devices from different vendors, across models from the
        same vendor, or across different releases of the same product.</t>

        <t>Some product designers and protocol designers assume that if a
        device can be managed individually using a command line interface or a
        web page interface, that such a solution is enough. But when equipment
        from multiple vendors is combined into a large network, scalability of
        management becomes a problem. It is important to have consistency in
        the management interfaces so network-wide operational processes can be
        automated. For example, a single switch might be easily managed using
        an interactive web interface when installed in a single office small
        business, but when, say, a fast food company installs similar switches
        from multiple vendors in hundreds or thousands of individual branches
        and wants to automate monitoring them from a central location,
        monitoring vendor-and-model-specific web pages would be difficult to
        automate.</t>

        <t>Getting everybody to agree on a certain syntax and the protocol
        associated with that has proven to be difficult. So management systems
        tend to speak whatever the boxes support, whether the IETF likes this
        or not. The IETF is moving from support for a single management data
        modeling language (SMI) and a single management protocol (SNMP)
        towards support for additional management protocols and data models
        suited to different purposes, such as configuration (netconf), usage
        accounting (ipfix), and logging (syslog). Other Standard Development
        Organizations (e.g. DMTF, TMF) also define management mechanisms and
        these mechanisms may be more suitable than IETF mechanisms in some
        cases.</t>

        <t>Interoperability needs to be considered on the syntactic level and
        the semantic level. While it can be irritating and time-consuming,
        application designers including operators who write their own scripts
        can make their processing conditional to accommodate differences
        across vendors or models or releases of product.</t>

        <t>Semantic differences are much harder to deal with on the manager
        side - once you have the data, its meaning is a function of the
        managed entity. For example, if a single counter provided by vendor A
        counts three types of error conditions, while the corresponding
        counter provided by vendor B counts seven types of error conditions,
        these counters cannot be compared effectively - they are not
        interoperable counters.</t>

        <t>Information models are helpful to try to focus interoperability on
        the semantic level - they establish standards for what information
        should be gathered, and how gathered information might be used
        regardless of which management interface carries the data or which
        vendor produces the product. The use of an information model might
        help improve the ability of operators to correlate messages in
        different protocols where the data overlaps, such as a SYSLOG message
        and an SNMP notification about the same event. An information model
        might identify which error conditions should be counted separately,
        and which error conditions can be counted together in a single
        counter. Then, whether the counter is gathered via SNMP or a CLI
        command or a SYSLOG message, the counter will have similar
        meaning.</t>

        <t>Protocol designers should consider which information might be
        useful for managing the new protocol or protocol extensions.</t>

        <figure title="Figure 1">
          <preamble></preamble>

          <artwork><![CDATA[             IM                --> conceptual/abstract model
              |                    for designers and operators
   +----------+---------+
   |          |         |
   DM        DM         DM     --> concrete/detailed model
                                   for implementers
]]></artwork>

          <postamble>Information Models and Data Models</postamble>
        </figure>

        <t>On the Difference between Information Models and Data Models <xref
        target="RFC3444"> </xref> may be useful in determining what
        information to consider regarding information models, as compared to
        data models.</t>

        <t>Information models should come from the protocol WGs and include
        lists of events, counters and configuration parameters that are
        relevant. There are a number of information models contained in
        protocol WG RFCs. Some examples:</t>

        <t><list style="symbols">
            <t><xref target="RFC3060"></xref> - Policy Core Information Model
            version 1</t>

            <t><xref target="RFC3290"></xref> - An Informal Management Model
            for DiffServ Routers</t>

            <t><xref target="RFC3460"></xref> - Policy Core Information Model
            Extensions</t>

            <t><xref target="RFC3585"></xref> - IPsec Configuration Policy
            Information Model</t>

            <t><xref target="RFC3644"></xref> - Policy Quality of Service
            Information Model</t>

            <t><xref target="RFC3670"></xref> - Information Model for
            Describing Network Device QoS Datapath Mechanisms</t>

            <t><xref target="RFC3805"></xref> - Printer MIB v2 (contains both
            an IM and a DM</t>
          </list>Management protocol standards and management data model
        standards often contain compliance clauses to ensure interoperability.
        Manageability considerations should include discussion of which level
        of compliance is expected to be supported for interoperability.</t>

        <t></t>
      </section>

      <section title="Management Information">
        <t>A management information model should include a discussion of what
        is manageable, which aspects of the protocol need to be configured,
        what types of operations are allowed, what protocol-specific events
        might occur, which events can be counted, and for which events should
        an operator be notified.</t>

        <t>Operators find it important to be able to make a clear distinction
        between configuration data, operational state, and statistics. They
        need to determine which parameters were administrative configured and
        which parameters have changed since configuration as the result of
        mechanisms such as routing protocols.</t>

        <t>It is important to be able to separately fetch configuration data,
        operational state data, and statistics from devices, and to be able to
        compare current state to initial state, and to compare data between
        devices.</t>

        <t>What is typically difficult to work through are relationships
        between abstract objects. Ideally an information model would describe
        the relationships between the objects and concepts in the information
        model.</t>

        <t>Is there always just one instance of this object or can there be
        multiple instances? Does this object relate to exactly one other
        object or may it relate to multiple? When is it possible to change a
        relationship?</t>

        <t>Do objects (such as rows in tables) share fate? For example, if a
        row in table A must exist before a related row in table B can be
        created, what happens to the row in table B if the related row in
        table A is deleted? Does the existence of relationships between
        objects have an impact on fate sharing?</t>

        <t><!---
        <t>[DISCUSS} There have been recommendations that templates be
        provided for such things as SNMP notifications and SYSLOG messages, so
        protocol designers just need to fill in the blanks. if "reusable
        manageability" was easy to do, domain-specific WGs would be inclined
        to provide more NM features in their protocol. Translation: Pick the
        integration points, and create procedures and tools to let WGs create
        consistent NM more easily. Notification content and configuration
        management have the most room for improvement. Every protocol should
        define critical and severe fault notifications in a consistent manner
        (e.g. template for SMIv2 NOTIFICATION-TYPE or SYSLOG or XML PDU).
        Every protocol should identify, for every sub-feature and PDU field,
        whether it is (a) standard-fixed, (b) vendor-fixed, or (c)
        user-configurable parameter (e.g., template for a MIB module). just
        require the WGs to put the template(s) in the NM Considerations
        section of every RFC. real integrations comes from an underlying
        common understanding of the informal information model. Once an
        information model exists, it is usually easy for people to cast it
        into MIBs or other data models.</t>

        <t>[DISCUSS] One approach would be to provide a standardized
        information-model text template that a protocol designer could fill in,
        which could then be converted from its information model format to a
        data model format, such as an SNMP notification or a SYSLOG message or
        a NETCONF XSD specification. It might be possible to develop tools to
        do the conversion, similar to the SMING approach developed by the NMRG
        to generate MIBs and PIBs from a common specification. Protocol designers
        should have an easier way to produce consistent network management
        data models that support several IETF standard protocols.</t>

        <t>[DISCUSS] What about recommending for each WG designing a protocol
        to define - the management informational model (what is manageable,
        what type of operations are allowed) - applicability statement or
        mapping of the informational model to existing management protocols. I
        was thinking (for the template) of something like the IPFIX info-model
        document that Juergen Q. wrote a couple years ago.</t>

        <t>[DISCUSS] There is a risk to moving toward having protocol designers
        just identify what is manageable, without actually producing a
        standardized data model, such as a MIB module or XML document or
        SYSLOG messages or LDAP schemas. This could lead to vendors producing
        proprietary MIB modules all containing the same information, but using
        different OIDs and descriptors. That is not interoperable. We need to
        have standard addressing and naming for interoperability, as well as
        common semantic understanding</t>

        <t>[DISCUSS] a well defined info model is the minimum and mandatory
        management model that needs to be put in place. Standard addressing
        and naming can be made part of this model, as well as the min and
        max-access for each object. We should not however push for one
        mandatory data modeling language, this does not help and leads
        eventually to protocol designers towards finessing the process. As an
        example, in IP telephony the tentative to impose SMIv2 and SNMP are
        failing and IP phones almost never have a SNMP agent. The people who
        designed SIP believe that SNMP is not deployable behind firewalls and
        that in-band SIP can be used to carry management information. What
        they need is an information model and an access model that would allow
        carrying management information between authenticated entities.</t>

--></t>
      </section>

      <section title="Fault Management">
        <t>The protocol designer should consider how faults information will
        be propagated. Will it be done using asynchronous notifications or
        polling of health indicators?</t>

        <t>If notifications are used to alert operators to certain conditions,
        then the protocol designer should discuss mechanisms to throttle
        notifications to prevent congestion and duplications of event
        notifications. Will there be a hierarchy of faults, and will the fault
        reporting be done by each fault in the hierarchy, or will only the
        lowest fault be reported and the higher levels be suppressed? should
        there be aggregated status indicators based on concatenation of
        propagated faults from a given domain or device?</t>

        <t>SNMP notifications and SYSLOG messages can alert an operator when
        an aspect of the new protocol fails or encounters an error condition,
        and SNMP is frequently used as a heartbeat monitor.</t>

        <section title="Liveness Detection and Monitoring">
          <t>Liveness detection and monitoring applies both to the control
          plane and the data plane. Mechanisms for detecting faults in the
          control plane or for monitoring its liveness are usually built into
          the control plane protocols or inherited from underlying data plane
          or forwarding plane protocols. These mechanisms do not typically
          require additional management capabilities. However, when a system
          detects a control plane fault, there is often a requirement to
          coordinate recovery action through management applications or at
          least to record the fact in an event log. [TODO: example]</t>

          <t>Where the protocol is responsible for establishing data or user
          plane connectivity, liveness detection and monitoring usually need
          to be achieved through other mechanisms. In some cases, these
          mechanisms already exist within other protocols responsible for
          maintaining lower layer connectivity, but it will often be the case
          that new procedures are required to detect failures in the data path
          and to report rapidly, allowing remedial action to be taken.</t>

          <t>Protocol designers should always build in basic testing features
          (e.g. ICMP echo, UDP/TCP echo service, NULL RPC calls) that can be
          used to test for liveness, with an option to enable and disable
          them.</t>
        </section>

        <section title="Fault Determination">
          <t>It can be helpful to describe how faults can be pinpointed using
          management information. For example, counters might record instances
          of error conditions. Some faults might be able to be pinpointed by
          comparing the outputs of one device and the inputs of another device
          looking for anomalies.</t>

          <t>[DISCUSS: Ralf: While this sounds good, how do ou distinguish
          between “faulty messages” and “good
          messages”? It might require complex functions such as
          “deviation from normal”, are you sure you want to
          implement those at the device level?]</t>
        </section>

        <section title="Fault Isolation">
          <t>It might be useful to isolate faults, such as a system that emits
          malformed messages necessary to coordinate connections properly.
          Spanning tree comes to mind. This might be able to be done by
          configuring next-hop devices to drop the faulty messages to prevent
          them from entering the rest of the network.</t>
        </section>

        <section title="Corrective Action">
          <t>What sort of corrective action can be taken by an operator for
          each of the fault conditions that are being identified?</t>

          <t>[DISCUSS: this should be expanded or eliminated.]</t>
        </section>
      </section>

      <section title="Configuration Management">
        <t>RFC3139 <xref target="RFC3139"></xref> discusses requirements for
        configuration management. This document includes discussion of
        different levels of management, including high-level-policies,
        network-wide configuration data, and device-local configuration.</t>

        <t>A number of efforts have existed in the IETF to develop
        policy-based management. RFC3198 was written to standardize the
        terminology for policy-based management across these efforts.</t>

        <t>It is highly desirable that text processing tools such as diff, and
        version management tools such as RCS or CVS or SVN, can be used to
        process configurations. This approach simplifies comparing the current
        operational state to the initial configuration.</t>

        <t>With structured text such as XML, simple text diffs may be found to
        be inadequate and more sophisticated tools may be needed to make any
        useful comparison of versions.</t>

        <t>To simplify such configuration comparisons, devices should not
        arbitrarily reorder data such as access control lists. If a protocol
        designer defines mechanisms for configuration, it would be desirable
        to standardize the order of elements for consistency of configuration
        and of reporting across vendors, and across releases from vendors.</t>

        <t>[DISCUSS: Ralf: Well, there are two parts to it: 1. An NMS system
        could optimze ACLs for perfomance reasons 2. Unless the device/NMS
        systems has corect rules/a lot of experience, reordering ACLs can lead
        to a huge security issue, therefore I would rephrase this paragraph.
        "</t>

        <t>Network wide configurations are ideally stored in central master
        databases and transformed into formats that can be pushed to devices,
        either by generating sequences of CLI commands or complete
        configuration files that are pushed to devices. There is no common
        database schema for network configuration, although the models used by
        various operators are probably very similar. It is desirable to
        extract, document, and standardize the common parts of these network
        wide configuration database schemas. A protocol designer should
        consider how to standardize the common parts of configuring the new
        protocol, while recognizing the vendors will likely have proprietary
        aspects of their configurations.</t>

        <t>It is important to distinguish between the distribution of
        configurations and the activation of a certain configuration. Devices
        should be able to hold multiple configurations. NETCONF <xref
        target="RFC4741"></xref>, for example, differentiates between the
        "running" configuration and "candidate" configurations.</t>

        <t>[DISCUSS: Also add: backup configs, i.e. version n-1 and
        auto-fallback solutions that automatically return to the previous
        “known as good config” or adding a backdoor for the
        operator. One of the worst scenarios is remote device config where the
        new running config doesn’t work as expected and unlocks the
        admin. Vendors may have ways to avoid unlocking the operator but this
        doesn’t have to be vendor specific.]</t>

        <t>It is important to enable operators to concentrate on the
        configuration of the network as a whole rather than individual
        devices. Support for configuration transactions across a number of
        devices would significantly simplify network configuration management.
        The ability to distribute configurations to multiple devices, or
        modify "candidate configurations on multiple devices, and then
        activate them in a near-simultaneous manner might help.</t>

        <t>[DISCUSS: Ralf: This might be a good place for adding the
        description of config-templates.]</t>

        <t>Consensus of the 2002 IAB Workshop was that textual configuration
        files should be able to contain international characters.
        Human-readable strings should utilize UTF-8, and protocol elements
        should be in case insensitive ASCII.</t>

        <t>A mechanism to dump and restore configurations is a primitive
        operation needed by operators. Standards for pulling and pushing
        configurations from/to devices are desirable.</t>

        <t>Given configuration A and configuration B, it should be possible to
        generate the operations necessary to get from A to B with minimal
        state changes and effects on network and systems. It is important to
        minimize the impact caused by configuration changes.</t>

        <t>Many protocol specifications include timers that are used as part
        of operation of the protocol. These timers may need default values
        suggested in the protocol specification and do not need to be
        otherwise configurable.</t>

        <section title="Verifying Correct Operation">
          <t>An important function that might be provided is a tool set for
          verifying the correct operation of a protocol. This may be achieved
          to some extent through access to information and data models that
          report the status of the protocol and the state installed on network
          devices. It may also be valuable to provide techniques for testing
          the effect that the protocol has had on the network by sending data
          through the network and observing its behavior.</t>

          <t>Protocol designers should consider how to test the correct
          end-to-end operation of the network, and how to verify the correct
          data or forwarding plane function of each network element.</t>
        </section>

        <section title="Control of Function and Policy ">
          <t>A protocol designer should consider the configurable items that
          exist for the control of function via the protocol elements
          described in the protocol specification. For example, Sometimes the
          protocol requires that timers can be configured by the operator to
          ensure specific policy-based behavior by the implementation.</t>
        </section>
      </section>

      <section title="Accounting Management">
        <t>A protocol designer should consider whether it would be appropriate
        to collect usage information related to this protocol, and if so, what
        usage information would be appropriate to collect?</t>

        <t>RFC2975 <xref target="RFC2975"></xref> Introduction to Accounting
        Management discusses a number of factors relevant to monitoring usage
        of protocols for purposes of capacity and trend analysis, cost
        allocation, auditing, and billing. This document also discusses how
        RADIUS, TACACS+, and SNMP protocols are used for these purposes. These
        factors should be considered when designing a protocol whose usage
        might need to be monitored, or when recommending a protocol to do
        usage accounting.</t>
      </section>

      <section title="Performance Management">
        <t>Consider information that would be useful when trying to determine
        the performance characteristics of a deployed system using the target
        protocol.</t>

        <t>What are the principal performance factors that need to be looked
        at when measuring the efficiency of the protocol implementations? Is
        it important to measure setup times? throughput? quality versus
        throughput? interruptions? end-to-end throughput? end-to-end quality?
        hop-to-hop throughput?</t>

        <t>Consider scalability, such as whether performance will be affected
        by the number of protocol connections. If so, then it might be useful
        to provide information about the maximum number of table entries that
        should be expected to be modeled, how many entries an implementation
        can support, the current number of instances, and the expected
        behavior when the current instances exceed the capacity of the
        implementation. This should be considered in a data-modeling
        independent manner - what makes managed-protocol sense, not what makes
        management-protocol-sense. If it is not managed-protocol-dependent,
        then it should be left for the management-protocol data modelers to
        decide.</t>

        <t>For example, VLAN identifiers have a range of 1..4095 because of
        the VLAN standards.</t>

        <t>Consider operational activity, such as the number of message in and
        the messages out, the number of received messages rejected due to
        format problems, the expected behaviors when a malformed message is
        received.</t>

        <t>Consider the expected behaviors for counters - what is a reasonable
        maximum value for expected usage? should they stop counting at the
        maximum value and retain the maximum value, or should they rollover?
        How can users determine if a rollover has occurred, and how can users
        determine if more than one rollover has occurred?</t>

        <t>What information should be maintained across reboots of the device,
        or restarts of the management system?</t>

        <t>Could events, such as hot-swapping a blade in a chassis, cause
        discontinuities in information? Does this make any difference in
        evaluating the performance of a protocol?</t>

        <t>Consider whether multiple management applications will share a
        counter; if so, then no one management application should be allowed
        to reset the value to zero since this will impact other
        applications.</t>

        <t>For performance monitoring, it is often important to report the
        time spent in a state rather than the current state. Snapshots are of
        less value for performance monitoring.</t>

        <t>The Benchmarking Methodology WG (bmwg) has defined recommendations
        for the measurement of the performance characteristics of various
        internetworking technologies in a laboratory environment, including
        the systems or services that are built from these technologies. Each
        recommendation describes the class of equipment, system, or service
        being addressed; discuss the performance characteristics that are
        pertinent to that class; clearly identify a set of metrics that aid in
        the description of those characteristics; specify the methodologies
        required to collect said metrics; and lastly, present the requirements
        for the common, unambiguous reporting of benchmarking results.</t>
      </section>

      <section title="Security Management">
        <t>Protocol designers should consider how to monitor and to manage
        security aspects and vulnerabilities of the new protocol.</t>

        <t>There will be security considerations related to the new protocol.
        To make it possible for operators to be aware of security-related
        events, it is recommended that system logs should record events, such
        as failed logins, but the logs must be secured.</t>

        <t>Should a system automatically notify operators of every event
        occurrence, or should an operator-defined threshold control when a
        notification is sent to an operator?</t>

        <t>Should certain statistics be collected about the operation of the
        new protocol that might be useful for detecting attacks, such as the
        receipt of malformed messages, or messages out of order, or messages
        with invalid timestamps? If such statistics are collected, is it
        important to count them separately for each sender to help identify
        the source of attacks?</t>

        <t>Manageability considerations that are security-oriented might
        include discussion of the security implications when no monitoring is
        in place, the regulatory implications of absence of audit-trail or
        logs in enterprises, exceeding the capacity of logs, and security
        exposures present in chosen / recommended management mechanisms.</t>

        <t>The granularity of access control needed on management interfaces
        needs to match operational needs. Typical requirements are a
        role-based access control model and the principle of least privilege,
        where a user can be given only the minimum access necessary to perform
        a required task.</t>

        <t>It must be possible to do consistency checks of access control
        lists across devices. Protocol designers should consider information
        models to promote comparisons across devices and across vendors to
        permit checking the consistency of security configurations.</t>

        <t>Protocol designers should consider how to provide a secure
        transport, authentication, identity, and access control which
        integrates well with existing key and credential management
        infrastructure.</t>

        <t>Protocol designers should consider how ACLs (access control lists)
        are maintained and updated.</t>

        <t>Standard SNMP notifications or SYSLOG messages <xref
        target="I-D.ietf-syslog-protocol"></xref> might already exist, or can
        be defined, to alert operators to the conditions identified in the
        security considerations for the new protocol. [TODO: find existing
        notificiations or syslog messages related to security]</t>

        <t>An analysis of existing counters might help operators recognize the
        conditions identified in the security considerations for the new
        protocol before they can impact the network.</t>

        <t>RADIUS and DIAMETER can provide authentication and authorization. A
        protocol designer should consider which attributes would be
        appropriate for their protocol.</t>

        <t>Different protocols use different assumptions about message
        security and data access controls. A protocol designer that recommends
        using different protocols should consider how security will be applied
        in a balanced manner across multiple management interfaces. SNMP
        access control is data-oriented, while CLI access control is usually
        command (task) oriented. Depending on the management function,
        sometimes data-oriented or task-oriented access control makes more
        sense. Protocol designers should consider both data-oriented and
        task-oriented access control.</t>
      </section>
    </section>

    <section title="Documentation Guidelines">
      <t>The purpose of this document is to provide guidance about what to
      consider when thinking about the management and deployment of a new
      protocol, and to provide guidance about documenting the considerations.
      The following guidelines are designed to help writers provide a
      reasonably consistent format for such documentation. Separate
      manageability and operational considerations sections are desirable in
      many cases, but their structure and location is a decision that can be
      made from case to case.</t>

      <t>Making a Management Considerations section a mandatory publication
      requirement is the responsibility of the IESG, or specific area
      directors, or working groups, and this document avoids recommending any
      mandatory publication requirements. For a complex protocol, a completely
      separate draft on operations and management might be appropriate, or
      even a completely separate WG.</t>

      <t>This document is focused on what to think about, and how to document
      the considerations of the protocol designer.</t>

      <section title="Recommended Discussions">
        <t>A Manageability Considerations section should include discussion of
        the management and operations topics raised in this document, and when
        one or more of these topics is not relevant, it would be useful to
        contain a simple statement explaining why the topic is not relevant
        for the new protocol. Of course, additional relevant topics should be
        included as well.</t>
      </section>

      <section title="Null Manageability Considerations Sections">
        <t>A protocol designer may seriously consider the manageability
        requirements of a new protocol, and determine that no management
        functionality is needed by the new protocol. It would be helpful to
        those who may update or write extensions to the protocol in the future
        or to those deploying the new protocol to know the thinking of the
        working regarding the manageability of the protocol at the time of its
        design.</t>

        <t>If there are no new manageability or deployment considerations, it
        is recommended that a Manageability Considerations section contain a
        simple statement such as "There are no new manageability requirements
        introduced by this document," and a brief explanation of why that is
        the case. The presence of such a Manageability Considerations section
        would indicate to the reader that due consideration has been given to
        manageability and operations.</t>

        <t>In the case where the new protocol is an extension, and the base
        protocol discusses all the relevant operational and manageability
        considerations, it would be helpful to point out the considerations
        section in the base document.</t>
      </section>

      <section title="Placement of Operations and Manageability Considerations Sections ">
        <t>If a protocol designer develops a Manageability Considerations
        section for a new protocol, it is recommended that the section be
        placed immediately before the Security Considerations section.
        Reviewers interested in such sections could find it easily, and this
        placement could simplify the development of tools to detect the
        presence of such a section.</t>
      </section>
    </section>

    <section title="IANA Considerations">
      <t>This document does not introduce any new codepoints or name spaces
      for registration with IANA. Note to RFC Editor: this section may be
      removed on publication as an RFC.</t>
    </section>

    <section title="Security Considerations">
      <t>This document is informational and provides guidelines for
      considering manageability and operations. It introduces no new security
      concerns.</t>
    </section>

    <section title="Acknowledgements">
      <t>This document started from an earlier document edited by Adrian
      Farrel, which itself was based on work exploring the need for
      Manageability Considerations sections in all Internet-Drafts produced
      within the Routing Area of the IETF. That earlier work was produced by
      Avri Doria, Loa Andersson, and Adrian Farrel, with valuable feedback
      provided by Pekka Savola and Bert Wijnen.</t>

      <t>Some of the discussion about designing for manageability came from
      private discussions between Dan Romascanu, Bert Wijnen, Juergen
      Schoenwaelder, Andy Bierman, and David Harrington.</t>
    </section>
  </middle>

  <back>
    <references title="Informative References">
      &rfc1052;

      &rfc2119;

      &rfc2578;

      &rfc2863;

      &rfc2865;

      &rfc2975;

      &rfc3060;

      &rfc3084;

      &rfc3139;

      &rfc3159;

      &rfc3165;

      &rfc3290;

      &rfc3317;

      &rfc3410;

      &rfc3413;

      &rfc3418;

      &rfc3444;

      &rfc3460;

      &rfc3535;

      &rfc3585;

      &rfc3588;

      &rfc3644;

      &rfc3670;

      &rfc3805;

      &rfc4011;

      &rfc4133;

      &rfc4502;

      &rfc4668;

      &rfc4669;

      &rfc4710;

      &rfc4741;

      &rfc4825;

      &rfc4930;

      &I-D.ietf-ipfix-protocol;

      &I-D.ietf-syslog-protocol;

    </references>

    <section title="Operations and Management Checklist">
      <t>This appendix provides a quick summary of issues to consider.</t>

      <t><list>
          <t>are configuration parameters clearly identified?</t>

          <t>are configuration parameters normalized?</t>

          <t>does each configuration parameter have a reasonable default
          value?</t>

          <t>is protocol state information exposed to the user? How?</t>

          <t>is protocol performance information exposed to the user? How?</t>

          <t>are significant state transitions logged?</t>
        </list></t>
    </section>

    <section title="Open Issues">
      <t><list>
          <t>[TODO: need to verify all citations have references (in xref
          format)]</t>

          <t>[TODO: need to remove references that are not used in the
          guidelines]</t>

          <t>Identify bullets for appendix checklist</t>

          <t>Is section 2 needed?</t>

          <t>Need more reviews and suggested text, especially on operational
          considerations</t>

          <t>[DISCUSS: How much of RFC 3535 and RFC 3139 should be repeated
          (and updated) in these guidelines? There are many best current
          practices mentioned in those documents. Should we bring them
          together into this document and expand on how they should influence
          ops/mgmt considerations for a new protocol? Many of the points
          relate to NM protocol design, but there are also many points about
          operational and management considerations.]</t>
        </list></t>
    </section>

    <section title="Change Log">
      <t>Changes from opsawg-01 to opsawg-02</t>

      <t><list>
          <t>moved survey of protocols and data models to separate
          document</t>

          <t>changed "working group" to "protocol designer" throughout, as
          applicable.</t>

          <t>modified wording from negative to positive spin in places.</t>

          <t>updated based on comments from Ralf Wolter and David Kessens</t>
        </list></t>

      <t>Changes from opsawg-00 to opsawg-01</t>

      <t><list>
          <t>moved Proposed Standard data models to appendix</t>

          <t>moved advice out of data model survey and into considerations
          section</t>

          <t>addressed comments from Adrian and Dan</t>

          <t>modified the Introduction and Section 2 in response to many
          comments.</t>

          <t>expanded radius and syslog discussion, added psamp and VCCV,
          modified ipfix,</t>
        </list></t>

      <t>Changes from harrington-01 to opsawg-00</t>

      <t><list>
          <t>added text regarding operational models to be managed.</t>

          <t>Added checklist appendix (to be filled in after consensus is
          reached on main text )</t>
        </list></t>

      <t>Changes from harrington-00 to harrington-01</t>

      <t><list>
          <t>modified unclear text in "Design for Operations and
          Management"</t>

          <t>Expanded discussion of counters</t>

          <t>Removed some redundant text</t>

          <t>Added ACLs to Security Management</t>

          <t>Expanded discussion of the status of COPS-PR, SPPI, and PIBs.</t>

          <t>Expanded comparison of RADIUS and Diameter.</t>

          <t>Added placeholders for EPP and XCAP protocols.</t>

          <t>Added Change Log and Open Issues</t>
        </list></t>
    </section>
  </back>
</rfc>

PAFTECH AB 2003-20262026-04-23 03:49:37