RFC 2454

IP Version 6 Management Information Base for the User Datagram Protocol

πŸ“… published December 1998, from ietf

RFC 2454: IP Version 6 Management Information Base for the User Datagram Protocol πŸŽ€

okay bestie, RFC 2454 is giving πŸ¦‹. It came out of the Network Working Group, written by M. Daniele at Compaq Computer Corporation, dated December 1998. It's on the Standards Track. The header doesn't list any RFC it obsoletes or updates, so it's standing on its own ✨


Status of this Memo 🌸

so this doc specifies an Internet standards track protocol for the Internet community, and it's literally asking for discussion and suggestions for improvements πŸ’…. For the standardization state and status of this protocol, check the current edition of "Internet Official Protocol Standards" (STD 1). Distribution of this memo is unlimited 🫢

Copyright (C) The Internet Society (1998). All Rights Reserved.

Abstract 🧚

this doc is one in a series that defines different MIB objects for IPv6. specifically, it's the MIB module that defines managed objects for implementations of the User Datagram Protocol (UDP) over IP Version 6 (IPv6) 😭

it also recommends a specific policy on how RFC 2013 applies to IPv6 implementations. the main idea is that most of the managed objects in RFC 2013 don't depend on which IP version UDP runs over. only the UDP listener information is IP version-specific πŸ”₯

and finally, this memo defines an experimental portion of the Management Information Base (MIB) for use with network management protocols in IPv6-based internets 🌈


1. Introduction ✨

okay so a management system has a few main pieces. you've got several (potentially many) nodes, and each one has a processing entity called an agent, which can access the management instrumentation. then there's at least one management station, plus a management protocol that carries management information between the agents and the stations πŸ¦‹ The protocol runs under an administrative framework that defines authentication, authorization, access control, and privacy policies πŸ’…

management stations run management applications that monitor and control managed elements. managed elements are things like hosts, routers, terminal servers, etc., and you monitor and control them by accessing their management information πŸ‘‘

the management information is a collection of managed objects that live in a virtual information store called the Management Information Base (MIB). related objects get grouped into MIB modules. these modules are written in a subset of OSI's Abstract Syntax Notation One (ASN.1) [1], which is called the Structure of Management Information (SMI) [2] 🧚

2. Overview 🌸

this doc is one of the series that defines different MIB objects, plus statements of conformance, for IPv6. specifically, it defines the required instrumentation for implementations of UDP over IPv6 πŸ’–


3. Transparency of IP versions to UDP πŸ¦‹

the fact that UDP rides over IPv6 instead of IPv4 is basically invisible to a UDP implementation πŸ™ˆ A "UDPng" didn't need to be defined. implementations just need to support IPv6 addresses ✨

so the managed objects already defined in [UDP MIB] are enough for managing UDP when IPv6 is in the picture. these objects work the same whether the managed node supports IPv4 only, IPv6 only, or both πŸ’…

for example, udpInDatagrams counts "The total number of UDP datagrams delivered to UDP users", no matter which version of IP was used to deliver any of those datagrams πŸŽ€

stated differently, UDP implementations don't need separate counters for IPv4 and for IPv6. one set is enough πŸ‘‘

4. Representing UDP Listeners 🌈

the one exception to section 3 is the udpTable. IPv6 addresses can't be represented with the IpAddress syntax, so not all UDP endpoints can go in the udpTable defined in [UDP MIB] 😭

this memo defines a new, separate table just for UDP endpoints that use an IPv6 address. UDP endpoints on IPv4 addresses keep being represented in udpTable [UDP MIB] 🫢

another approach would have been a new table for all UDP endpoints, no matter the IP version. but that would require changes to [UDP MIB], and therefore to existing IPv4-only UDP implementations. the approach in this memo has the advantage of leaving IPv4-only implementations intact πŸ’–

it's assumed that the objects defined in this memo will eventually be defined in an update to [UDP MIB]. for that reason, the module identity is assigned under the experimental portion of the MIB 🧚

5. Conformance πŸ’œ

this memo contains the conformance statements that define conformance to this MIB for UDP over IPv6 implementations πŸ”₯

6. Definitions πŸ“

here's the actual MIB module, copied exactly as written. don't touch a single character πŸ™ˆ

IPV6-UDP-MIB DEFINITIONS ::= BEGIN

IMPORTS
   MODULE-COMPLIANCE, OBJECT-GROUP      FROM SNMPv2-CONF
   MODULE-IDENTITY, OBJECT-TYPE,
   mib-2, experimental                  FROM SNMPv2-SMI
   Ipv6Address, Ipv6IfIndexOrZero       FROM IPV6-TC;

ipv6UdpMIB MODULE-IDENTITY
   LAST-UPDATED "9801290000Z"
   ORGANIZATION "IETF IPv6 MIB Working Group"
   CONTACT-INFO
        "               Mike Daniele

                Postal: Compaq Computer Corporation
                        110 Spitbrook Rd
                        Nashua, NH 03062.
                        US

                Phone:  +1 603 884 1423
                Email:  daniele@zk3.dec.com"
   DESCRIPTION
        "The MIB module for entities implementing UDP over IPv6."
   ::= { experimental 87 }

-- objects specific to UDP for IPv6

udp      OBJECT IDENTIFIER ::= { mib-2 7 }

-- the UDP over IPv6 Listener table
-- This table contains information about this entity's
-- UDP/IPv6 endpoints.  Only endpoints utilizing IPv6 addresses
-- are contained in this table.  This entity's UDP/IPv4 endpoints
-- are contained in udpTable.

ipv6UdpTable OBJECT-TYPE
   SYNTAX      SEQUENCE OF Ipv6UdpEntry
   MAX-ACCESS  not-accessible
   STATUS      current
   DESCRIPTION
        "A table containing UDP listener information for
         UDP/IPv6 endpoints."
   ::= { udp 6 }

ipv6UdpEntry OBJECT-TYPE
   SYNTAX      Ipv6UdpEntry
   MAX-ACCESS  not-accessible
   STATUS      current
   DESCRIPTION
        "Information about a particular current UDP listener.

         Note that conceptual rows in this table require an
         additional index object compared to udpTable, since
         IPv6 addresses are not guaranteed to be unique on the
         managed node."
   INDEX   { ipv6UdpLocalAddress,
             ipv6UdpLocalPort,
             ipv6UdpIfIndex }
   ::= { ipv6UdpTable 1 }

Ipv6UdpEntry ::= SEQUENCE {
   ipv6UdpLocalAddress    Ipv6Address,
   ipv6UdpLocalPort       INTEGER (0..65535),
   ipv6UdpIfIndex         Ipv6IfIndexOrZero }

ipv6UdpLocalAddress OBJECT-TYPE
   SYNTAX       Ipv6Address
   MAX-ACCESS   not-accessible
   STATUS       current
   DESCRIPTION
        "The local IPv6 address for this UDP listener.
         In the case of a UDP listener which is willing
         to accept datagrams for any IPv6 address
         associated with the managed node, the value ::0
         is used."
   ::= { ipv6UdpEntry 1 }

ipv6UdpLocalPort OBJECT-TYPE

    SYNTAX     INTEGER (0..65535)
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "The local port number for this UDP listener."
    ::= { ipv6UdpEntry 2 }

ipv6UdpIfIndex OBJECT-TYPE
   SYNTAX     Ipv6IfIndexOrZero
   MAX-ACCESS   read-only
   STATUS     current
   DESCRIPTION
        "An index object used to disambiguate conceptual rows in
         the table, since the ipv6UdpLocalAddress/ipv6UdpLocalPort
         pair may not be unique.

         This object identifies the local interface that is
         associated with ipv6UdpLocalAddress for this UDP listener.
         If such a local interface cannot be determined, this object
         should take on the value 0.  (A possible example of this
         would be if the value of ipv6UdpLocalAddress is ::0.)

         The interface identified by a particular non-0 value of
         this index is the same interface as identified by the same
         value of ipv6IfIndex.

         The value of this object must remain constant during
         the life of this UDP endpoint."
   ::= { ipv6UdpEntry 3 }

--
-- conformance information
--

ipv6UdpConformance OBJECT IDENTIFIER ::= { ipv6UdpMIB 2 }

ipv6UdpCompliances OBJECT IDENTIFIER ::= { ipv6UdpConformance 1 }
ipv6UdpGroups      OBJECT IDENTIFIER ::= { ipv6UdpConformance 2 }

-- compliance statements

ipv6UdpCompliance MODULE-COMPLIANCE
   STATUS  current
   DESCRIPTION
        "The compliance statement for SNMPv2 entities which
         implement UDP over IPv6."
   MODULE  -- this module
   MANDATORY-GROUPS { ipv6UdpGroup }
   ::= { ipv6UdpCompliances 1 }

ipv6UdpGroup OBJECT-GROUP
   OBJECTS   { -- these are defined in this module
               -- ipv6UdpLocalAddress (not-accessible)
               -- ipv6UdpLocalPort (not-accessible)
               ipv6UdpIfIndex }
   STATUS    current
   DESCRIPTION
        "The group of objects providing management of
         UDP over IPv6."
   ::= { ipv6UdpGroups 1 }

END

9. Security Considerations ✨

okay bestie, this section is SERIOUS 😭 so let's be careful 🫢

There are no management objects in this MIB with a MAX-ACCESS clause of read-write and/or read-create. So if this MIB is implemented correctly, there's no risk that an intruder can alter or create any management objects of this MIB via direct SNMP SET operations πŸ’–

Some managed objects in this MIB could be considered sensitive in some environments. Like, the MIB tells you which UDP ports processes are listening on πŸ‘€. That could be sensitive, since someone might use it to launch denial-of-service or other attacks πŸ’€, but there are already other ways to get similar info. For example, sending a random UDP packet to an unused port prompts the generation of an ICMP port unreachable message πŸ™ˆ.

So it may be important in some environments to control read access to these objects, and maybe even encrypt the values when sending them over the network via SNMP. Not all versions of SNMP have features for a secure environment. SNMPv1 by itself doesn't provide encryption or strong authentication πŸ”₯.

It is recommended that implementors consider the security features provided by the SNMPv3 framework. Specifically, using the User-based Security Model [RFC2274] and the View-based Access Control Model [RFC2275] is recommended πŸŽ€.

It is then a customer/user responsibility to make sure the SNMP entity giving access to an instance of this MIB is properly configured, so those objects are only given to the principals (users) who have legitimate rights to access them 🌸.

10. Author's Address πŸŽ€

Mike Daniele
Compaq Computer Corporation
110 Spit Brook Rd
Nashua, NH 03062

Phone: +1-603-884-1423
EMail: daniele@zk3.dec.com

Copyright (C) The Internet Society (1998). All Rights Reserved.

Okay so the rules for copying this one: anyone can copy and share this document and translations of it, and make derivative works that comment on, explain, or help implement it, and publish and distribute those in whole or in part with no restriction of any kind πŸ¦‹. The catch is the above copyright notice and this paragraph have to be included on all such copies and derivative works. However, this document itself can't be modified in any way, like removing the copyright notice or references to the Internet Society or other Internet organizations. The exceptions are when it's needed for developing Internet standards (then the copyright procedures in the Internet Standards process must be followed) or when it's required to translate it into languages other than English πŸ“.

The limited permissions above are perpetual and won't be revoked by the Internet Society or its successors or assigns πŸ’œ.

This document and the information in it is provided on an "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIMS 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 🌈.

πŸ“¦ where this page comes from