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-2026 | 2026-04-23 03:49:37 |