RFC 4318

Definitions of Managed Objects for Bridges with Rapid Spanning Tree Protocol

πŸ“… published December 2005, from ietf

RFC 4318: Definitions of Managed Objects for Bridges with Rapid Spanning Tree Protocol πŸŽ€

Part 1 of 3 πŸ¦‹

Okay bestie, the title block first πŸ’… This is RFC 4318, titled Definitions of Managed Objects for Bridges with Rapid Spanning Tree Protocol. It's from the Network Working Group, written by D. Levi of Nortel Networks and D. Harrington of Effective Software, and it's dated December 2005. The category is Standards Track ✨ The title block doesn't list anything it obsoletes or updates, so there's no drama there πŸ™ˆ

Status of This Memo πŸ“œ

So this document is an Internet standards track protocol for the Internet community, and it's asking everyone for discussion and suggestions for improvements 🫢 For the standardization state and status of this protocol, check the current edition of the "Internet Official Protocol Standards" (STD 1). Distribution of this memo is unlimited, so share it with everyone 🌈

Copyright (C) The Internet Society (2005).

Abstract πŸ’œ

Okay, the big picture: this memo defines an SMIv2 MIB module for managing the Rapid Spanning Tree capability that the IEEE P802.1t and P802.1w amendments to IEEE Std 802.1D-1998 added for bridging between Local Area Network (LAN) segments πŸ”₯ The objects here are meant to cover both transparent bridging and bridges connected by subnetworks other than LAN segments. Iconic range πŸ‘‘

Table of Contents ✨

1. The Internet-Standard Management Framework ......................2
2. Overview ........................................................2
3. Relationship to IEEE 802.1t and 802.1w Amendments ...............2
4. Relation to the BRIDGE-MIB ......................................3
5. Definitions for RSTP-MIB ........................................3
6. Acknowledgements ...............................................10
7. IANA Considerations ............................................10
8. Security Considerations ........................................10
9. Normative References ...........................................11
10. Informative References ........................................12

1. The Internet-Standard Management Framework 🧚

So if you want the full tea on the current Internet-Standard Management Framework, go read section 7 of RFC 3410 [RFC3410] πŸ“š

Managed objects live in a virtual information store called the Management Information Base, or MIB πŸ¦‹ Usually you get to them through the Simple Network Management Protocol (SNMP). The objects get defined using the Structure of Management Information (SMI). This memo specifies a MIB module that's compliant with SMIv2, which is described in STD 58, RFC 2578 [RFC2578], STD 58, RFC 2579 [RFC2579] and STD 58, RFC 2580 [RFC2580] πŸ’…

2. Overview 🌸

Main character recap: this memo defines an SMIv2 MIB module for managing the Rapid Spanning Tree (RSTP) capability from the IEEE P802.1t [802.1t] and P802.1w [802.1w] amendments to IEEE Std 802.1D-1998 [802.1D-1998]. It's for bridging between Local Area Network (LAN) segments, and the objects work for both transparent bridging and bridges on subnetworks other than LAN segments 🫢

3. Relationship to IEEE 802.1t and 802.1w Amendments πŸ’–

Okay so this part is where the MIB objects get matched up with the Rapid Spanning Tree Protocol from the IEEE P802.1t and IEEE P802.1w amendments to 802.1D-1998 πŸŽ€ Here's the mapping, and it is literally the cutest table:

RSTP-MIB Name                       IEEE 802.1 Reference

dot1dStp
  dot1dStpVersion                   (w) 17.16.1  ForceVersion
  dot1dStpTxHoldCount               (w) 17.16.6  TxHoldCount
  dot1dStpExtPortTable
    dot1dStpPortProtocolMigration   (w) 17.18.10 mcheck
    dot1dStpPortAdminEdgePort       (t) 18.3.3   adminEdgePort
    dot1dStpPortOperEdgePort        (t) 18.3.4   operEdgePort
    dot1dStpPortAdminPointToPoint   (w) 6.4.3    adminPointToPointMAC
    dot1dStpPortOperPointToPoint    (w) 6.4.3    operPointToPointMAC
    dot1dStpPortAdminPathCost       (D) 8.5.5.3  Path Cost

Now the tea β˜• There were concerns that the 802.1D-2004 edition might bring changes that would break SMI compatibility for the 802.1t and 802.1w managed objects in the MIB modules. So the Bridge MIB working group chose to 'freeze' the technical content of the MIB modules at a level that matches the 802.1t and 802.1w versions. Anything after that is left to the IEEE 802.1 working group 🧠

Heads up: the table below is purely for information. It's the 802.1D-2004 references for the same objects, so you can compare them πŸ‘€
RSTP-MIB Name                       IEEE 802.1D-2004 Reference

dot1dStp
  dot1dStpVersion                   17.13.4  ForceVersion
  dot1dStpTxHoldCount               17.13.12 TxHoldCount
  dot1dStpExtPortTable
    dot1dStpPortProtocolMigration   17.19.13 mcheck
    dot1dStpPortAdminEdgePort       17.13.1  adminEdgePort
    dot1dStpPortOperEdgePort        17.19.17 operEdgePort
    dot1dStpPortAdminPointToPoint   6.4.3    adminPointToPointMAC
    dot1dStpPortOperPointToPoint    6.4.3    operPointToPointMAC
    dot1dStpPortAdminPathCost       17.13.11 Path Cost

4. Relation to the BRIDGE-MIB πŸ¦‹

The objects in the RSTP-MIB supplement the ones in the Bridge MIB [RFC4188], so they work as a team 🫢

The Original BRIDGE-MIB [RFC1493] got updated into an SMIv2-compliant version [RFC4188]. Conformance statements were added, and some description and reference clauses got refreshed too ✨ Some objects also got new interpretations so they'd fit the IEEE 802.1t and 802.1w amendments, which is a whole glow-up πŸ’…

Here's the quick list of what changed. The object dot1dStpPortPathCost32 was added to support IEEE 802.1t πŸ“ The permissible values of dot1dStpPriority and dot1dStpPortPriority got clarified for bridges that support IEEE 802.1t or IEEE 802.1w. And the interpretation of dot1dStpTimeSinceTopologyChange got clarified for bridges that support the RSTP 🌈

For all the details, check the updated BRIDGE-MIB [RFC4188] πŸ’œ

5. Definitions for RSTP-MIB ✨

okay bestie, this is the actual MIB module 🧚 Everything below is copied exactly, character for character, so every object name, value and reference stays precise πŸ’…

   RSTP-MIB DEFINITIONS ::= BEGIN

   -- -------------------------------------------------------------
   -- MIB for IEEE 802.1w Rapid Spanning Tree Protocol
   -- -------------------------------------------------------------

   IMPORTS

       MODULE-IDENTITY, OBJECT-TYPE, Integer32, mib-2
           FROM SNMPv2-SMI
       TruthValue
           FROM SNMPv2-TC
       MODULE-COMPLIANCE, OBJECT-GROUP
           FROM SNMPv2-CONF
       dot1dStp, dot1dStpPortEntry
           FROM BRIDGE-MIB;

   rstpMIB MODULE-IDENTITY
       LAST-UPDATED "200512070000Z"
       ORGANIZATION "IETF Bridge MIB Working Group"
       CONTACT-INFO
           "Email: Bridge-mib@ietf.org"
       DESCRIPTION
           "The Bridge MIB Extension module for managing devices
            that support the Rapid Spanning Tree Protocol defined
            by IEEE 802.1w.

            Copyright (C) The Internet Society (2005).  This version of
            this MIB module is part of RFC 4318; See the RFC itself for
            full legal notices."

       REVISION     "200512070000Z"
       DESCRIPTION
            "The initial version of this MIB module as published in
             RFC 4318."
       ::= { mib-2 134 }

   -- ---------------------------------------------------------- --
   -- subtrees in the RSTP-MIB
   -- ---------------------------------------------------------- --

   rstpNotifications OBJECT IDENTIFIER ::= { rstpMIB 0 }
   rstpObjects       OBJECT IDENTIFIER ::= { rstpMIB 1 }
   rstpConformance   OBJECT IDENTIFIER ::= { rstpMIB 2 }

   -- -------------------------------------------------------------
   -- Addition to the dot1dStp group
   -- -------------------------------------------------------------

   dot1dStpVersion OBJECT-TYPE
       SYNTAX      INTEGER {
                       stpCompatible(0),
                       rstp(2)
                   }
       MAX-ACCESS  read-write
       STATUS      current
       DESCRIPTION
           "The version of Spanning Tree Protocol the bridge is
            currently running.  The value 'stpCompatible(0)'
            indicates the Spanning Tree Protocol specified in
            IEEE 802.1D-1998 and 'rstp(2)' indicates the Rapid
            Spanning Tree Protocol specified in IEEE 802.1w and
            clause 17 of 802.1D-2004.  The values are directly from
            the IEEE standard.  New values may be defined as future
            versions of the protocol become available.

            The value of this object MUST be retained across
            reinitializations of the management system."
       REFERENCE
           "IEEE 802.1w clause 14.8.1, 17.12, 17.16.1"
       DEFVAL      { rstp }
       ::= { dot1dStp 16 }

   dot1dStpTxHoldCount OBJECT-TYPE
       SYNTAX      Integer32 (1..10)
       MAX-ACCESS  read-write
       STATUS      current
       DESCRIPTION
           "The value used by the Port Transmit state machine to limit
            the maximum transmission rate.

            The value of this object MUST be retained across
            reinitializations of the management system."

       REFERENCE
           "IEEE 802.1w clause 17.16.6"
       DEFVAL      { 3 }
       ::= { dot1dStp 17 }

   --
   -- { dot1dStp 18 } was used to represent dot1dStpPathCostDefault
   -- in an earlier version of this MIB.  It has since been
   -- obsoleted, and should not be used.
   --

   dot1dStpExtPortTable OBJECT-TYPE
       SYNTAX      SEQUENCE OF Dot1dStpExtPortEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "A table that contains port-specific Rapid Spanning Tree
            information."
       ::= { dot1dStp 19 }

   dot1dStpExtPortEntry OBJECT-TYPE
       SYNTAX      Dot1dStpExtPortEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "A list of Rapid Spanning Tree information maintained by
            each port."
       AUGMENTS    { dot1dStpPortEntry }
       ::= { dot1dStpExtPortTable 1 }

   Dot1dStpExtPortEntry ::=
       SEQUENCE {
           dot1dStpPortProtocolMigration
               TruthValue,
           dot1dStpPortAdminEdgePort
               TruthValue,
           dot1dStpPortOperEdgePort
               TruthValue,
           dot1dStpPortAdminPointToPoint
               INTEGER,
           dot1dStpPortOperPointToPoint
               TruthValue,
           dot1dStpPortAdminPathCost
               Integer32
       }

   dot1dStpPortProtocolMigration OBJECT-TYPE
       SYNTAX      TruthValue
       MAX-ACCESS  read-write
       STATUS      current
       DESCRIPTION
           "When operating in RSTP (version 2) mode, writing true(1)
            to this object forces this port to transmit RSTP BPDUs.
            Any other operation on this object has no effect and
            it always returns false(2) when read."
       REFERENCE
           "IEEE 802.1w clause 14.8.2.4, 17.18.10, 17.26"
       ::= { dot1dStpExtPortEntry 1 }

   dot1dStpPortAdminEdgePort OBJECT-TYPE
       SYNTAX      TruthValue
       MAX-ACCESS  read-write
       STATUS      current
       DESCRIPTION
           "The administrative value of the Edge Port parameter.  A
            value of true(1) indicates that this port should be
            assumed as an edge-port, and a value of false(2) indicates
            that this port should be assumed as a non-edge-port.

            Setting this object will also cause the corresponding
            instance of dot1dStpPortOperEdgePort to change to the
            same value.  Note that even when this object's value
            is true, the value of the corresponding instance of
            dot1dStpPortOperEdgePort can be false if a BPDU has
            been received.

            The value of this object MUST be retained across
            reinitializations of the management system."

       REFERENCE
           "IEEE 802.1t clause 14.8.2, 18.3.3"
       ::= { dot1dStpExtPortEntry 2 }

   dot1dStpPortOperEdgePort OBJECT-TYPE
       SYNTAX      TruthValue
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "The operational value of the Edge Port parameter.  The
            object is initialized to the value of the corresponding
            instance of dot1dStpPortAdminEdgePort.  When the
            corresponding instance of dot1dStpPortAdminEdgePort is
            set, this object will be changed as well.  This object
            will also be changed to false on reception of a BPDU."

       REFERENCE
           "IEEE 802.1t clause 14.8.2, 18.3.4"
       ::= { dot1dStpExtPortEntry 3 }

   dot1dStpPortAdminPointToPoint OBJECT-TYPE
       SYNTAX      INTEGER {
                       forceTrue(0),
                       forceFalse(1),
                       auto(2)
                   }
       MAX-ACCESS  read-write
       STATUS      current
       DESCRIPTION
           "The administrative point-to-point status of the LAN segment
            attached to this port, using the enumeration values of the
            IEEE 802.1w clause.  A value of forceTrue(0) indicates
            that this port should always be treated as if it is
            connected to a point-to-point link.  A value of
            forceFalse(1) indicates that this port should be treated as
            having a shared media connection.  A value of auto(2)
            indicates that this port is considered to have a
            point-to-point link if it is an Aggregator and all of its
            members are aggregatable, or if the MAC entity
            is configured for full duplex operation, either through
            auto-negotiation or by management means.  Manipulating this
            object changes the underlying adminPortToPortMAC.

            The value of this object MUST be retained across
            reinitializations of the management system."

      REFERENCE
          "IEEE 802.1w clause 6.4.3, 6.5, 14.8.2"
      ::= { dot1dStpExtPortEntry 4 }

   dot1dStpPortOperPointToPoint OBJECT-TYPE
       SYNTAX      TruthValue
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "The operational point-to-point status of the LAN segment
            attached to this port.  It indicates whether a port is
            considered to have a point-to-point connection.
            If adminPointToPointMAC is set to auto(2), then the value
            of operPointToPointMAC is determined in accordance with the
            specific procedures defined for the MAC entity concerned,
            as defined in IEEE 802.1w, clause 6.5.  The value is
            determined dynamically; that is, it is re-evaluated whenever
            the value of adminPointToPointMAC changes, and whenever
            the specific procedures defined for the MAC entity evaluate
            a change in its point-to-point status."
       REFERENCE
           "IEEE 802.1w clause 6.4.3, 6.5, 14.8.2"
       ::= { dot1dStpExtPortEntry 5 }

   dot1dStpPortAdminPathCost OBJECT-TYPE
       SYNTAX      Integer32 (0..200000000)
       MAX-ACCESS  read-write
       STATUS      current
       DESCRIPTION
           "The administratively assigned value for the contribution
            of this port to the path cost of paths toward the spanning
            tree root.

            Writing a value of '0' assigns the automatically calculated
            default Path Cost value to the port.  If the default Path
            Cost is being used, this object returns '0' when read.

            This complements the object dot1dStpPortPathCost or
            dot1dStpPortPathCost32, which returns the operational value
            of the path cost.

            The value of this object MUST be retained across
            reinitializations of the management system."
       REFERENCE
           "IEEE 802.1D-1998: Section 8.5.5.3"
       ::= { dot1dStpExtPortEntry 6 }

   -- -------------------------------------------------------------
   -- rstpMIB - Conformance Information
   -- -------------------------------------------------------------

   rstpGroups OBJECT IDENTIFIER ::= { rstpConformance 1 }

   rstpCompliances OBJECT IDENTIFIER ::= { rstpConformance 2 }

   -- -------------------------------------------------------------
   -- Units of conformance
   -- -------------------------------------------------------------

   rstpBridgeGroup OBJECT-GROUP
       OBJECTS {
           dot1dStpVersion,
           dot1dStpTxHoldCount
       }
       STATUS      current
       DESCRIPTION
           "Rapid Spanning Tree information for the bridge."
       ::= { rstpGroups 1 }

   rstpPortGroup OBJECT-GROUP
       OBJECTS {
           dot1dStpPortProtocolMigration,
           dot1dStpPortAdminEdgePort,
           dot1dStpPortOperEdgePort,
           dot1dStpPortAdminPointToPoint,
           dot1dStpPortOperPointToPoint,
           dot1dStpPortAdminPathCost
       }
       STATUS      current
       DESCRIPTION
           "Rapid Spanning Tree information for individual ports."
       ::= { rstpGroups 2 }

   -- -------------------------------------------------------------
   -- Compliance statements
   -- -------------------------------------------------------------

   rstpCompliance MODULE-COMPLIANCE
       STATUS      current
       DESCRIPTION
           "The compliance statement for device support of Rapid
            Spanning Tree Protocol (RSTP) bridging services."
       MODULE
           MANDATORY-GROUPS {
               rstpBridgeGroup,
               rstpPortGroup
           }
       ::= { rstpCompliances 1 }

   END

6. Acknowledgements ✨

This doc was produced on behalf of the Bridge MIB Working Group in the Operations and Management area of the Internet Engineering Task Force. 🌸

The authors want to thank the members of the Bridge MIB Working Group, especially Alex Ruzin, for their comments and suggestions that made this effort so much better. 🫢

Vivian Ngai and Les Bell were the initial authors and did the bulk of the development work. Literally the MVPs πŸ‘‘

7. IANA Considerations πŸŽ€

The IANA has assigned the following OID:

Descriptor        OBJECT IDENTIFIER value
----------        -----------------------
rstpMIB           { mib-2 134 }

8. Security Considerations πŸ”

Okay bestie, this section is serious, so read it slowly 🫣 There are a bunch of management objects in this MIB module with a MAX-ACCESS clause of read-write and/or read-create. These objects may be considered sensitive or vulnerable in some network environments. Supporting SET operations in a non-secure environment without proper protection can totally mess with network operations. πŸ’€ Here are the tables and objects and why they're sensitive or vulnerable:

Writable objects that could be misused to cause network delays and spanning tree instabilities include dot1dStpVersion, dot1dStpTxHoldCount, dot1dStpPortProtocolMigration, dot1dStpPortAdminEdgePort, and dot1dStpPortAdminPathCost. ⚠️

Some of the readable objects in this MIB module (meaning objects with a MAX-ACCESS other than not-accessible) may be considered sensitive or vulnerable in some network environments. So it's important to control even GET and/or NOTIFY access to these objects, and possibly even encrypt their values when sending them over the network via SNMP. πŸ™ˆ Here are the tables and objects and their sensitivity/vulnerability:

dot1dStpVersion could be read by an attacker to identify environments containing applications or protocols that are potentially sensitive to RSTP mode. πŸ‘€

dot1dStpPortAdminPointToPoint could be used to mislead an access control protocol, such as 802.1x, into believing that only one other system is attached to a LAN segment, and to enable network access based on that assumption. This situation could permit potential man-in-the-middle attacks. 😭

SNMP versions prior to SNMPv3 did not include adequate security. Even if the network itself is secure (for example by using IPsec), there is still no control over who on that secure network is allowed to access and GET/SET (read/change/create/delete) the objects in this MIB module. Not me being like "wait, anyone can just do that??" πŸ’…

It is RECOMMENDED that implementers consider the security features provided by the SNMPv3 framework (see [RFC3410], section 8), including full support for the SNMPv3 cryptographic mechanisms (for authentication and privacy). πŸ”’

Further, deployment of SNMP versions prior to SNMPv3 is NOT RECOMMENDED. Instead, it is RECOMMENDED to deploy SNMPv3 and enable cryptographic security. It is then a customer/operator responsibility to make sure that the SNMP entity giving access to an instance of this MIB module is properly configured, so the objects are only accessible to those principals (users) who have legitimate rights to GET or SET (change/create/delete) them. The main character energy of responsible ops is everything πŸ‘‘

9. Normative References πŸ“š

  • [RFC2578] McCloghrie, K., Perkins, D., and J. Schoenwaelder, "Structure of Management Information Version 2 (SMIv2)", STD 58, RFC 2578, April 1999.
  • [RFC2579] McCloghrie, K., Perkins, D., and J. Schoenwaelder, "Textual Conventions for SMIv2", STD 58, RFC 2579, April 1999.
  • [RFC2580] McCloghrie, K., Perkins, D., and J. Schoenwaelder, "Conformance Statements for SMIv2", STD 58, RFC 2580, April 1999.
  • [802.1D-1998] "Information technology - Telecommunications and information exchange between systems - Local and metropolitan area networks - Common specifications - Part 3: Media Access Control (MAC) Bridges: Revision. This is a revision of ISO/IEC 10038: 1993, 802.1j-1992 and 802.6k-1992. It incorporates P802.11c, P802.1p and P802.12e." ISO/IEC 15802-3: 1998.
  • [RFC4188] Norseth, K. and E. Bell, "Definitions of Managed Objects for Bridges", RFC 4188, September 2005.
  • [802.1t] IEEE 802.1t-2001, "(Amendment to IEEE Standard 802.1D) IEEE Standard for Information technology - Telecommunications and information exchange between systems - Local and metropolitan area networks - Common specifications - Part 3: Media Access Control (MAC) Bridges: Technical and Editorial Corrections".
  • [802.1w] IEEE 802.1w-2001, "(Amendment to IEEE Standard 802.1D) IEEE Standard for Information technology-- Telecommunications and information exchange between systems--Local and metropolitan area networks--Common Specifications--Part 3: Media Access Control (MAC) Bridges: Rapid Reconfiguation".

10. Informative References 🧚

  • [RFC3410] Case, J., Mundy, R., Partain, D., and B. Stewart, "Introduction and Applicability Statements for Internet-Standard Management Framework", RFC 3410, December 2002.
  • [802.1D-2004] IEEE Project 802 Local and Metropolitan Area Networks, "IEEE Standard 802.1D-2004 MAC Bridges", 2004.
  • [RFC1493] Decker, E., Langille, P., Rijsinghani, A., and K. McCloghrie, "Definitions of Managed Objects for Bridges", RFC 1493, July 1993.

Authors' Addresses πŸ’Œ

David Levi
Nortel Networks
4655 Great America Parkway
Santa Clara, CA 95054
USA

Phone: +1 408 495 5138
EMail: dlevi@nortel.com


David Harrington
Effective Software
50 Harding Rd.
Portsmouth, NH 03801
USA

Phone: +1 603 436 8634
EMail: ietfdbh@comcast.net


Les Bell
Hemel Hempstead
Herts.  HP2 7YU
UK

EMail: elbell@ntlworld.com


Vivian Ngai
Salt lake City, UT
USA

EMail: vivian_ngai@acm.org

Copyright (C) The Internet Society (2005).

This document is subject to the rights, licenses and restrictions contained in BCP 78, and except as set forth therein, the authors retain all their rights.

This document and the information contained herein are provided on an "AS IS" basis, and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. πŸ™

Intellectual Property 🌈

The IETF takes no position regarding the validity or scope of any Intellectual Property Rights or other rights that might be claimed to pertain to the implementation or use of the technology described in this document, or the extent to which any license under such rights might or might not be available. It also doesn't represent that it has made any independent effort to identify any such rights. Info on the procedures for rights in RFC documents can be found in BCP 78 and BCP 79. πŸ“–

Copies of IPR disclosures made to the IETF Secretariat, and any assurances of licenses to be made available, or the result of an attempt to obtain a general license or permission for the use of such proprietary rights by implementers or users of this specification, can be obtained from the IETF on-line IPR repository at http://www.ietf.org/ipr.

The IETF invites any interested party to bring to its attention any copyrights, patents or patent applications, or other proprietary rights that may cover technology that may be required to implement this standard. Please address the information to the IETF at ietf-ipr@ietf.org. πŸ’œ

Acknowledgement 🫢

Funding for the RFC Editor function is currently provided by the Internet Society. ✨

πŸ“¦ where this page comes from