Re: configuration: writable MIB modules versus NETCONF/YANG modules - part 2

t.petch <[email protected]> Sat, 1 Mar 2014 21:58:51 +0000
Newsgroups gmane.ietf.ops
Message-ID <[email protected]>
----- Original Message -----
From: "ietfdbh" <[email protected]>
To: "'Juergen Schoenwaelder'" <[email protected]>;
"'Adrian Farrel'" <[email protected]>
Cc: "'ops-area'" <[email protected]>
Sent: Friday, February 28, 2014 10:31 PM
> Comments inline.
>
> David Harrington
> [email protected]
> +1-603-828-1401
> > -----Original Message-----
> > From: OPS-AREA [mailto:[email protected]] On Behalf Of
Juergen
> > Schoenwaelder
> > Sent: Friday, February 28, 2014 3:43 PM
> > To: Adrian Farrel
> > Cc: 'ops-area'
> > NETCONF/YANG modules - part 2
> >
> > On Fri, Feb 28, 2014 at 08:16:19PM +0000, Adrian Farrel wrote:
> > > Hi Juergen,
> > >
> > > Thanks for the explanation of the difference between
"configuration
> data"
> > and
> > > "persistent configuration data".
> > >
> > > From your final statement...
> > > > SNMP really is IMHO horribly broken for
> > > > configuration management and attempts to fix it failed. This is
long
> > > > known and also documented in RFC 3535.
>
> I agree that SNMP is horribly broken for configuration management and
> attempts to fix it have failed.
> I think a major part of the "brokenness" is that SNMP does not
recognize the
> difference between startup config and running config.
> An SNMP SET cannot specify whether a change 1) should be applied only
to the
> running config and NOT persist beyond system reboot, or 2) should be
applied
> to the running config and SHOULD persist across reboots, or 3) should
be
> applied to a startup config and not take effect until a system reboot.

David

Oh yes it can! I have done something like it many times while operating
a network.

All it takes is proprietary MIB modules that provide different objects
for the different purposes.  The IETF could have standardised such a
system - but didn't.  Now we have the multiple data stores of NETCONF
and so are moving in that direction.

Tom Petch

> The community string or context can be used to specify which "config
store"
> to apply a SET to, but such usage has never been standardized, and
community
> and context are so overloaded with proprietary uses that trying to use
them
> to standardize standardize config stores after the fact is not viable.
> Around 1991-1992, there was an effort to try to standardize "temporal
> contexts", but it got mired in the SNMP wars, and got dropped from
SNMPv3.
>
> While the SET message in the (v1,v2,and v3 versions of the) SNMP
protocol
> has no field to specify which config store should be affected, a MIB
object
> description CAN specify that a RW object's value MUST persist across
reboot.
> If the object doesn't specify such persistence, then any modification
of the
> value does not persist across reboot.
> Putting this into startup vs running config store terminology
supported by
> Netconf (and by some CLIs), but not required of a netconf
implementation,
> the non-persistent modification (#1) happens to the "running" config,
while
> the persistent modification (#2) happens to both the running and the
startup
> config, while #3 only happens to the startup config.
>
> Equipment vendors have had to deal with the relationship between the
running
> config and startup config when an SNMP SET modifies the running
config, when
> persistence is called for.
>
> Part of the problem we have discussing this issue is terminology. If
Netconf
> or a CLI configures a device with a "running" config,  and a
subsequent SNMP
> SET modifies one of the configuration variables in a non-persistent
manner,
> is this still called the running config, or is this now called
operational
> state? Personally, based on what my equipment vendor co-workers called
it, I
> think the modifiable variable is still part of the running config; the
> running configuration has simply been modified.
> I think of operational state as all the information provided to a
query -
> that would include read-only values, current read-write values, plus
> counters. I never think of operational state as something you can
write to
> with a SET or a Netconf edit command; you write to the running
> configuration, which is then echoed in the reported state. I think
this is
> reflected in MIB-2 (RFC1213), where they defined  a RW object for
> ifAdminStatus (the desired state of the interface) and a RO object for
> ifOperStatus (the current operational state of the interface).
>
> If Netconf configures a device, and an SNMP SET modifies it, does that
means
> it is now operational state? then what is it called if Netconf
configures
> the device, and then a subsequent netconf edit command modifies it? is
it
> still the running config, or is it now operational state? Does the act
of
> modifying the configuration change it from config to operational
state, or
> is it the act of querying it that changes it to operational state?
>
> > >
> > > I take it that you would assert that the draft statement should
read
> > > "SNMP MIB modules creating and modifying configuration" leaving
out
> > > the word "persistent"
> >
> > There are different terminologies around and depending on the one
used
> > I may agree or not. I definitely agree with "SNMP MIB modules
creating
> > and modifying persistent configuration" but that is likely not what
> > you want to hear. ;-)
> >
> > In the NETCONF world, configuration data is pretty much synonymous
> > with what I think you call persistent configuration. (The term
> > 'persistent' does never appear in RFC 3535 but then RFC 3535
> > distinguishes between 'configuration data', operational state data,
> > and statistics. RFC 6244 says (section 4.3.2):
> >
> >    o  Configuration data is the set of writable data that is
required to
> >       transform a system from its initial default state into its
current
> >       state [RFC4741].
> >
> > This kind of implies that the configuration data is persistent since
it
> > needs to be there when the device re-initializes.
> >
> >    o  Operational state data is a set of data that has been obtained
by
> >       the system at runtime and influences the system's behavior
similar
> >       to configuration data.  In contrast to configuration data,
> >       operational state is transient and modified by interactions
with
> >       internal components or other systems via specialized
protocols.
> >
> > This means that routing protocols or dhcp or even things like i2rs
> > simply mess around with operational state.
> >
> >    o  Statistical data is the set of read-only data created by a
system
> >       itself.  It describes the performance of the system and its
> >       components.
> >
> > Given this terminology, I think what you call non-persistent
> > configuration is operational state data. For relatively simple
things
> > that mess around with operational state (setting a threshold,
turning
> > off an interface), SNMP's peek and poke model can work. For more
> > complex things, I personally would not recommend it but then I must
> > also note that there is no well established better generic solution
> > available in the IETF. Hence I believe it is right thing to limit
> > the statement to 'persistent configuration'.
> >
> > /js
> >
> > --
> > Juergen Schoenwaelder           Jacobs University Bremen gGmbH
> > Phone: +49 421 200 3587         Campus Ring 1, 28759 Bremen, Germany
> > Fax:   +49 421 200 3103         <http://www.jacobs-university.de/>
> >
> > _______________________________________________
> > OPS-AREA mailing list
> > [email protected]
> > https://www.ietf.org/mailman/listinfo/ops-area
>
> _______________________________________________
> OPS-AREA mailing list
> [email protected]
> https://www.ietf.org/mailman/listinfo/ops-area