RFC 1473 PROPOSED STANDARD MANAGEMENT · PPP · SNMP

PPP IPCP MIB: The Definitions of Managed Objects for the IP Network Control Protocol of the Point-to-Point Protocol

The SNMP objects a network manager can read and set to watch and control IP running over a PPP link.

On rfc-editor.org ↗
PUBLISHED
June 1993
AUTHORS
F. Kastenholz
STREAM
IETF
MIB MODULE
PPP-IP-NCP-MIB
TABLES
2, both indexed by ifIndex
MAX-SLOT-ID RANGE
0 to 255
DEFAULT COMPRESSION
none
GROUP STATUS
Mandatory for PPP that supports IP
DOI
10.17487/RFC1473

RFC text

Contents
Original text · RFC Editor View on rfc-editor.org ↗
Network Working Group                                      F. Kastenholz
Request for Comments: 1473                            FTP Software, Inc.
                                                               June 1993


                 The Definitions of Managed Objects for
                   the IP Network Control Protocol of
                      the Point-to-Point Protocol

Status of this Memo

   This RFC specifies an IAB standards track protocol for the Internet
   community, and requests discussion and suggestions for improvements.
   Please refer to the current edition of the "IAB Official Protocol
   Standards" for the standardization state and status of this protocol.
   Distribution of this memo is unlimited.

Abstract

   This memo defines a portion of the Management Information Base (MIB)
   for use with network management protocols in TCP/IP-based internets.
   In particular, it describes managed objects used for managing the IP
   Network Control Protocol on subnetwork interfaces using the family of
   Point-to-Point Protocols [8, 9, 10, 11, & 12].

Table of Contents

   1. The Network Management Framework ......................    1
   2. Objects ...............................................    2
   2.1 Format of Definitions ................................    2
   3. Overview ..............................................    2
   3.1 Object Selection Criteria ............................    2
   3.2 Structure of the PPP .................................    2
   3.3 MIB Groups ...........................................    3
   4. Definitions ...........................................    4
   5. Acknowledgements ......................................    8
   6. Security Considerations ...............................    8
   7. References ............................................    8
   8. Author's Address ......................................    9

1.  The Network Management Framework

   The Internet-standard Network Management Framework consists of three
   components.  They are:

      STD 16/RFC 1155 which defines the SMI, the mechanisms used for
      describing and naming objects for the purpose of management.  STD
      16/RFC 1212 defines a more concise description mechanism, which is
      wholly consistent with the SMI.

      STD 17/RFC 1213 which defines MIB-II, the core set of managed
      objects for the Internet suite of protocols.

      STD 15/RFC 1157 which defines the SNMP, the protocol used for
      network access to managed objects.

   The Framework permits new objects to be defined for the purpose of
   experimentation and evaluation.

2.  Objects

   Managed objects are accessed via a virtual information store, termed
   the Management Information Base or MIB.  Objects in the MIB are
   defined using the subset of Abstract Syntax Notation One (ASN.1) [3]
   defined in the SMI.  In particular, each object type is named by an
   OBJECT IDENTIFIER, an administratively assigned name.  The object
   type together with an object instance serves to uniquely identify a
   specific instantiation of the object.  For human convenience, we
   often use a textual string, termed the descriptor, to refer to the
   object type.

2.1.  Format of Definitions

   Section 4 contains the specification of all object types contained in
   this MIB module.  The object types are defined using the conventions
   defined in the SMI, as amended by the extensions specified in [5,6].

3.  Overview

3.1.  Object Selection Criteria

   To be consistent with IAB directives and good engineering practice,
   an explicit attempt was made to keep this MIB as simple as possible.
   This was accomplished by applying the following criteria to objects
   proposed for inclusion:

      (1)  Require objects be essential for either fault or
           configuration management.  In particular, objects for
           which the sole purpose was to debug implementations were
           explicitly excluded from the MIB.

      (2)  Consider evidence of current use and/or utility.

      (3)  Limit the total number of objects.

      (4)  Exclude objects which are simply derivable from others in

           this or other MIBs.

3.2.  Structure of the PPP

   This section describes the basic model of PPP used in developing the
   PPP MIB. This information should be useful to the implementor in
   understanding some of the basic design decisions of the MIB.

   The PPP is not one single protocol but a large family of protocols.
   Each of these is, in itself, a fairly complex protocol.  The PPP
   protocols may be divided into three rough categories:

   Control Protocols
      The Control Protocols are used to control the operation of the
      PPP. The Control Protocols include the Link Control Protocol
      (LCP), the Password Authentication Protocol (PAP), the Link
      Quality Report (LQR), and the Challenge Handshake Authentication
      Protocol (CHAP).

   Network Protocols
      The Network Protocols are used to move the network traffic over
      the PPP interface.  A Network Protocol encapsulates the datagrams
      of a specific higher-layer protocol that is using the PPP as a
      data link.  Note that within the context of PPP, the term "Network
      Protocol" does not imply an OSI Layer-3 protocol; for instance,
      there is a Bridging network protocol.

   Network Control Protocols (NCPs)
      The NCPs are used to control the operation of the Network
      Protocols. Generally, each Network Protocol has its own Network
      Control Protocol; thus, the IP Network Protocol has its IP Control
      Protocol, the Bridging Network Protocol has its Bridging Network
      Control Protocol and so on.

   This document specifies the objects used in managing one of these
   protocols, namely the IP Network Control Protocol.

3.3.  MIB Groups

   Objects in this MIB are arranged into several MIB groups.  Each group
   is organized as a set of related objects.

   These groups are the basic unit of conformance: if the semantics of a
   group are applicable to an implementation then all objects in the
   group must be implemented.

   The PPP MIB is organized into several MIB Groups, including, but not
   limited to, the following groups:

          o The PPP Link Group
          o The PPP LQR Group
          o The PPP LQR Extensions Group
          o The PPP IP Group
          o The PPP Bridge Group
          o The PPP Security Group

   This document specifies the following group:

   The PPP IP Group
      The PPP IP Group contains configuration, status, and control
      variables that apply to the operation of IP over PPP.

      Implementation of this group is mandatory for all implementations
      of PPP that support IP over PPP.

4.  Definitions

          PPP-IP-NCP-MIB DEFINITIONS ::= BEGIN

          IMPORTS
               Counter
                    FROM RFC1155-SMI
               ifIndex
                    FROM RFC1213-MIB
               OBJECT-TYPE
                    FROM RFC-1212
               ppp
                    FROM PPP-LCP-MIB;

               -- The PPP IP Group.
               -- Implementation of this group is mandatory for all
               -- PPP implementations that support operating IP over PPP.

               pppIp OBJECT IDENTIFIER ::= { ppp 3 }


          pppIpTable   OBJECT-TYPE
               SYNTAX    SEQUENCE OF PppIpEntry
               ACCESS    not-accessible
               STATUS    mandatory
               DESCRIPTION
                         "Table containing the IP parameters and
                         statistics for the local PPP entity."
               ::= { pppIp 1 }


          pppIpEntry   OBJECT-TYPE

               SYNTAX    PppIpEntry
               ACCESS    not-accessible
               STATUS    mandatory
               DESCRIPTION
                         "IPCP status information for a particular PPP
                         link."
               INDEX     { ifIndex }
               ::= { pppIpTable 1 }


          PppIpEntry ::= SEQUENCE {
               pppIpOperStatus
                    INTEGER,
               pppIpLocalToRemoteCompressionProtocol
                    INTEGER,
               pppIpRemoteToLocalCompressionProtocol
                    INTEGER,
               pppIpRemoteMaxSlotId
                    INTEGER,
               pppIpLocalMaxSlotId
                    INTEGER
          }

          -- The following object reflect the values of the option
          -- parameters used in the PPP IP Control Protocol
          --   pppIpLocalToRemoteCompressionProtocol
          --   pppIpRemoteToLocalCompressionProtocol
          --   pppIpRemoteMaxSlotId
          --   pppIpLocalMaxSlotId
          -- These values are not available until after the PPP Option
          -- negotiation has completed, which is indicated by the link
          -- reaching the open state (i.e., pppIpOperStatus is set to
          -- opened).
          --
          -- Therefore, when pppIpOperStatus is not opened
          -- the contents of these objects is undefined. The value
          -- returned when accessing the objects is an implementation
          -- dependent issue.


          pppIpOperStatus   OBJECT-TYPE
               SYNTAX    INTEGER {opened(1), not-opened(2)}
               ACCESS    read-only
               STATUS    mandatory
               DESCRIPTION
                         "The operational status of the IP network
                         protocol. If the value of this object is up
                         then the finite state machine for the IP
                         network protocol has reached the Opened state."
               ::= { pppIpEntry 1 }


          pppIpLocalToRemoteCompressionProtocol   OBJECT-TYPE
               SYNTAX    INTEGER {
                         none(1),
                         vj-tcp(2)
                    }
               ACCESS    read-only
               STATUS    mandatory
               DESCRIPTION
                         "The IP compression protocol that the local
                         PPP-IP entity uses when sending packets to the
                         remote PPP-IP entity. The value of this object
                         is meaningful only when the link has reached
                         the open state (pppIpOperStatus is opened)."
               ::= { pppIpEntry 2 }


          pppIpRemoteToLocalCompressionProtocol   OBJECT-TYPE
               SYNTAX    INTEGER {
                         none(1),
                         vj-tcp(2)
                    }
               ACCESS    read-only
               STATUS    mandatory
               DESCRIPTION
                         "The IP compression protocol that the remote
                         PPP-IP entity uses when sending packets to the
                         local PPP-IP entity. The value of this object
                         is meaningful only when the link has reached
                         the open state (pppIpOperStatus is opened)."
               ::= { pppIpEntry 3 }


          pppIpRemoteMaxSlotId   OBJECT-TYPE
               SYNTAX    INTEGER(0..255)
               ACCESS    read-only
               STATUS    mandatory
               DESCRIPTION
                         "The Max-Slot-Id parameter that the remote node
                         has advertised and that is in use on the link.
                         If vj-tcp header compression is not in use on
                         the link then the value of this object shall be
                         0. The value of this object is meaningful only
                         when the link has reached the open state
                         (pppIpOperStatus is opened)."

               ::= { pppIpEntry 4 }


          pppIpLocalMaxSlotId   OBJECT-TYPE
               SYNTAX    INTEGER(0..255)
               ACCESS    read-only
               STATUS    mandatory
               DESCRIPTION
                         "The Max-Slot-Id parameter that the local node
                         has advertised and that is in use on the link.
                         If vj-tcp header compression is not in use on
                         the link then the value of this object shall be
                         0. The value of this object is meaningful only
                         when the link has reached the open state
                         (pppIpOperStatus is opened)."
               ::= { pppIpEntry 5 }


          --
          -- The PPP IP Configuration table.
          -- This is a separate table in order to facilitate
          -- placing these variables in a separate MIB view.
          --

          pppIpConfigTable   OBJECT-TYPE
               SYNTAX    SEQUENCE OF PppIpConfigEntry
               ACCESS    not-accessible
               STATUS    mandatory
               DESCRIPTION
                         "Table containing configuration variables for
                         the IPCP for the local PPP entity."
               ::= { pppIp 2 }


          pppIpConfigEntry   OBJECT-TYPE
               SYNTAX    PppIpConfigEntry
               ACCESS    not-accessible
               STATUS    mandatory
               DESCRIPTION
                         "IPCP information for a particular PPP link."
               INDEX     { ifIndex }
               ::= { pppIpConfigTable 1 }


          PppIpConfigEntry ::= SEQUENCE {
               pppIpConfigAdminStatus
                    INTEGER,
               pppIpConfigCompression

                    INTEGER
          }

          pppIpConfigAdminStatus   OBJECT-TYPE
               SYNTAX    INTEGER {open(1), close(2)}
               ACCESS    read-write
               STATUS    mandatory
               DESCRIPTION
                         "The immediate desired status of the IP network
                         protocol. Setting this object to open will
                         inject an administrative open event into the IP
                         network protocol's finite state machine.
                         Setting this object to close will inject an
                         administrative close event into the IP network
                         protocol's finite state machine."
               ::= { pppIpConfigEntry 1 }


          pppIpConfigCompression   OBJECT-TYPE
               SYNTAX    INTEGER {
                         none(1),
                         vj-tcp(2)
                    }
               ACCESS    read-write
               STATUS    mandatory
               DESCRIPTION
                         "If none(1) then the local node will not
                         attempt to negotiate any IP Compression option.
                         Otherwise, the local node will attempt to
                         negotiate compression mode indicated by the
                         enumerated value. Changing this object will
                         have effect when the link is next restarted."
               REFERENCE
                         "Section 4.0, Van Jacobson TCP/IP Header
                         Compression of RFC1332."
               DEFVAL    { none }
               ::= { pppIpConfigEntry 2 }


          END

5.  Acknowledgements

   This document was produced by the PPP working group.  In addition to
   the working group, the author wishes to thank the following
   individuals for their comments and contributions:

          Bill Simpson -- Daydreamer
          Glenn McGregor -- Merit
          Jesse Walker -- DEC
          Chris Gunner -- DEC

6.  Security Considerations

   The PPP MIB affords the network operator the ability to configure and
   control the PPP links of a particular system, including the PPP
   authentication protocols. This represents a security risk.

   These risks are addressed in the following manners:

      (1)  All variables which represent a significant security risk
           are placed in separate, optional, MIB Groups. As the MIB
           Group is the quantum of implementation within a MIB, the
           implementor of the MIB may elect not to implement these
           groups.

      (2)  The implementor may choose to implement the variables
           which present a security risk so that they may not be
           written, i.e., the variables are READ-ONLY. This method
           still presents a security risk, and is not recommended,
           in that the variables, specifically the PPP
           Authentication Protocols' variables, may be easily read.

      (3)  Using SNMPv2, the operator can place the variables into
           MIB views which are protected in that the parties which
           have access to those MIB views use authentication and
           privacy protocols, or the operator may elect to make
           these views not accessible to any party.  In order to
           facilitate this placement, all security-related variables
           are placed in separate MIB Tables. This eases the
           identification of the necessary MIB View Subtree.

7.  References

   [1] Rose M., and K. McCloghrie, "Structure and Identification of
       Management Information for TCP/IP-based internets", STD 16, RFC
       1155, Performance Systems International, Hughes LAN Systems, May
       1990.

   [2] McCloghrie K., and M. Rose, Editors, "Management Information Base
       for Network Management of TCP/IP-based internets", STD 17, RFC
       1213, Performance Systems International, March 1991.

   [3] Information processing systems - Open Systems Interconnection -
       Specification of Abstract Syntax Notation One (ASN.1),
       International Organization for Standardization, International
       Standard 8824, December 1987.

   [4] Information processing systems - Open Systems Interconnection -
       Specification of Basic Encoding Rules for Abstract Notation One
       (ASN.1), International Organization for Standardization,
       International Standard 8825, December 1987.

   [5] Rose, M., and K. McCloghrie, Editors, "Concise MIB Definitions",
       STD 16, RFC 1212, Performance Systems International, Hughes LAN
       Systems, March 1991.

   [6] Rose, M., Editor, "A Convention for Defining Traps for use with
       the SNMP", RFC 1215, Performance Systems International, March
       1991.

   [7] McCloghrie, K., "Extensions to the Generic-Interface MIB", RFC
       1229, Hughes LAN Systems, Inc., May 1991.

   [8] Simpson, W., "The Point-to-Point Protocol for the Transmission of
       Multi-protocol Datagrams over Point-to-Point Links, RFC 1331,
       Daydreamer, May 1992.

   [9] McGregor, G., "The PPP Internet Protocol Control Protocol", RFC
       1332, Merit, May 1992.

  [10] Baker, F., "Point-to-Point Protocol Extensions for Bridging", RFC
       1220, ACC, April 1991.

  [11] Lloyd, B., and W. Simpson, "PPP Authentication Protocols", RFC
       1334, L&A, Daydreamer, October 1992.

  [12] Simpson, W., "PPP Link Quality Monitoring", RFC 1333, Daydreamer,
       May 1992.

8.  Author's Address

   Frank Kastenholz
   FTP Software, Inc.
   2 High Street
   North Andover, Mass 01845 USA

   Phone: (508) 685-4000
   EMail: kasten@ftp.com

AI ELI5

On this page
PROBLEMOperators need a standard way to see and control how IP is running over Point-to-Point Protocol links, but PPP is a large family of protocols and each part needs its own management objects.
MECHANISMThe memo defines the PPP-IP-NCP-MIB module, a small set of SNMP objects in two tables indexed by ifIndex: one for status of the IP Control Protocol and one for configuration.
STATUS TODAYIt is a Proposed Standard that has not been obsoleted or updated, and it covers only the IP group of the wider PPP MIB.

§1The Management Framework It Plugs Into

The Internet-standard Network Management Framework has three components. SMI (RFC 1155, with the more concise description style in RFC 1212) describes how objects are named and described. MIB-II (RFC 1213) is the core set of managed objects. SNMP (RFC 1157) is the protocol used to reach those objects over the network.

Managed objects live in a virtual information store called the Management Information Base (MIB). Each object type is named by an OBJECT IDENTIFIER and is written in the subset of ASN.1 that the SMI allows. This memo adds new objects to that store.

Think of a big instruction panel for network gear. There are rules for how each dial is named, a basic set of dials every device has, and a way to read them from far away. This memo adds some new dials.

§2What PPP Looks Like and What This MIB Covers

The memo explains that PPP is not one protocol but a large family, and splits it into three rough categories. Control Protocols (LCP, PAP, LQR and CHAP) control PPP itself. Network Protocols carry the traffic of a specific higher-layer protocol over the PPP interface. Network Control Protocols (NCPs) control the Network Protocols, usually one NCP for each, so IP has the IP Control Protocol.

This document manages only one of these: the IP Network Control Protocol. The wider PPP MIB is arranged in groups (Link, LQR, LQR Extensions, IP, Bridge and Security), and this memo specifies just the PPP IP Group. A group is the basic unit of conformance: if its semantics apply to an implementation, all objects in it must be implemented. The IP Group is mandatory for every PPP implementation that supports IP over PPP.

PPP is a toolbox with many tools: some run the line, some carry the mail, and some set up each kind of mail. This memo only covers the tool that sets up Internet mail.

§3Keeping the MIB Small

The author kept the MIB deliberately simple, in line with IAB directives and good engineering practice. Four criteria decided which objects got in.

  • Objects must be essential for fault or configuration management. Objects whose only purpose is debugging implementations are excluded.
  • Evidence of current use or usefulness is considered.
  • The total number of objects is limited.
  • Objects that can simply be derived from others, in this or other MIBs, are left out.

The authors only added a dial if someone really needed it. No dials just for the repair crew, and no dials that repeat what another dial already shows.

§4The Status Table

The module is called PPP-IP-NCP-MIB. It hangs pppIp under the ppp object imported from PPP-LCP-MIB, and it holds two tables, each with one row per interface, indexed by ifIndex from MIB-II.

The first, pppIpTable, is read-only status for the IP Control Protocol on a link. pppIpOperStatus is opened(1) or not-opened(2), and says whether the IP network protocol's finite state machine has reached the Opened state. Four more objects report what option negotiation produced: pppIpLocalToRemoteCompressionProtocol and pppIpRemoteToLocalCompressionProtocol (each none(1) or vj-tcp(2)) and pppIpRemoteMaxSlotId and pppIpLocalMaxSlotId (each 0 to 255, and 0 when vj-tcp header compression is not in use).

Those four option objects are meaningful only after negotiation finishes, which means pppIpOperStatus is opened. Otherwise their contents are undefined, and what an implementation returns is up to it.

The first table is a set of gauges. One says whether the Internet part of the line is up, and the others say what speed-up tricks the two ends agreed on.

OBJECTS IN THE PPP IP GROUP (RFC 1473)
  • pppIp { ppp 3 }
    • pppIpTable status, read-only
      • pppIpOperStatus
      • pppIpLocalToRemoteCompressionProtocol
      • pppIpRemoteToLocalCompressionProtocol
      • pppIpRemoteMaxSlotId
      • pppIpLocalMaxSlotId
    • pppIpConfigTable configuration, read-write
      • pppIpConfigAdminStatus
      • pppIpConfigCompression

§5The Configuration Table

The second table, pppIpConfigTable, is kept separate so that its variables can be placed in a separate MIB view. It has two read-write objects.

pppIpConfigAdminStatus is open(1) or close(2). Setting it to open injects an administrative open event into the IP network protocol's finite state machine, and setting it to close injects an administrative close event.

pppIpConfigCompression is none(1) or vj-tcp(2) and defaults to none. With none, the local node will not try to negotiate any IP compression option. Otherwise it will try to negotiate the chosen mode. A change takes effect when the link is next restarted. The object cites the Van Jacobson TCP/IP header compression section of RFC 1332.

The second table has switches. One switch turns the Internet part of the line on or off. The other asks the two ends to try a speed-up trick the next time the line restarts.

§6Security Considerations

The PPP MIB lets an operator configure and control PPP links, including the authentication protocols, and the memo says this is a security risk. It names three ways to address it.

  • Variables with significant risk go into separate, optional MIB groups, so an implementor may choose not to implement them.
  • An implementor may make risky variables read-only. This still leaves a risk, because authentication variables may be easily read, so it is not recommended.
  • With SNMPv2, the operator can put the variables into MIB views protected by authentication and privacy protocols, or make the views inaccessible to every party. Security-related variables sit in separate tables to make the view subtree easy to identify.

Because these switches can change how the line works, the memo says to lock the risky ones in a cabinet, make them look-only, or let only people with the right key reach them.

§7References