Stream Control Transmission Protocol (SCTP) Management Information Base (MIB)
Extracted elements (25)
Counter64 is used instead of Counter32 for high-traffic SCTP statistics counters (chunks and packets) because Counter32 objects that would wrap around in less than one hour must use Counter64 per RFC 2863. Counter32 is retained for lower-rate association-state counters.
DNS addresses are not stored in the address index objects of this MIB. They are always resolved to the on-the-wire (numeric IP) form prior to connection setup, and only the resolved form appears in MIB objects. The DNS name received at init time is stored separately in sctpAssocRemHostName.
Entries in sctpAssocTable are created when the association reaches the established state (COOKIE-ECHO sent on originating side, COOKIE-ACK sent on server side), not at earlier initiation phases. All entry fields are filled with valid values at this point.
sctpRtoAlgorithm only defines 'other(1)' and 'vanj(2)' as valid values because SCTP (RFC 2960) mandates Van Jacobson's algorithm for RTO calculation; 'other' is reserved for future use. This differs from the TCP MIB which has additional algorithm options.
If the size of InetAddress index objects (sctpAssocLocalAddr, sctpAssocRemAddr) exceeds 114 octets, or sctpAssocRemHostName exceeds 115 octets, the resulting OIDs will have more than 128 sub-identifiers and cannot be accessed using SNMPv1, SNMPv2c, or SNMPv3.
The sctpAssocMaxRetr value for an association must be smaller than the sum of all sctpAssocRemAddrMaxPathRtx values across all paths, consistent with RFC 2960's requirement that the per-association retransmission limit not exceed the aggregate of per-path limits.
Deployment of SNMP versions prior to SNMPv3 is NOT RECOMMENDED. It is RECOMMENDED that implementers support SNMPv3 with full cryptographic mechanisms (authentication and privacy) for this MIB module.
If the reverse lookup tables are implemented, an entry in them MUST be created after the corresponding entry in sctpAssocTable has been created, to ensure the indexed field exists.
Implementations are only required to support globally unique IPv4 (4-octet) and IPv6 (16-octet) addresses in address index objects. Implementations that connect multiple zones are expected to additionally support non-global IPv4 and non-global IPv6 address types with zone indices.
It is NOT possible to create rows in any table (sctpAssocTable, sctpAssocLocalAddrTable, sctpAssocRemAddrTable, and reverse lookup tables) using SNMP. It is NOT possible to delete rows in any table using SNMP except via deleteTCB(9) in sctpAssocTable.
The only value a management station MAY write to sctpAssocState is deleteTCB(9). If any other value is received, the agent MUST return a wrongValue error.
The sctpAssocRemHostName object MUST contain a zero-length string when no DNS domain name was received from the peer at init time. Otherwise it contains the remote hostname received in the INIT or INIT-ACK chunk.
Conformance is defined by four mandatory groups: sctpLayerParamsGroup (7 layer-wide config objects), sctpStatsGroup (22 layer/association statistics), sctpPerAssocParamsGroup (19 per-association parameter objects), and sctpPerAssocStatsGroup (4 per-association flow control stats). The sctpInverseGroup (reverse lookup tables) is optional.
Five reverse lookup tables are defined to avoid expensive tree walks: sctpLookupLocalPortTable (by local port), sctpLookupRemPortTable (by remote port), sctpLookupRemHostNameTable (by remote hostname), sctpLookupRemPrimIPAddrTable (by primary remote IP), and sctpLookupRemIPAddrTable (by any remote IP).
sctpAssocLocalAddrTable (sctpObjects 4) is an expanded table indexed by {sctpAssocId, sctpAssocLocalAddrType, sctpAssocLocalAddr}, containing one entry per local IP address for each association. Supports SCTP multihoming.
sctpAssocRemAddrActive (TruthValue) indicates per-path reachability: true means the remote address is Active (failure threshold not reached); false means Inactive (no heartbeat or message received, threshold reached). sctpAssocRemAddrHBActive indicates whether heartbeat checking is enabled for that path.
sctpAssocRemAddrTable (sctpObjects 5) is an expanded table indexed by {sctpAssocId, sctpAssocRemAddrType, sctpAssocRemAddr}, storing per-path state including active/inactive status (sctpAssocRemAddrActive), heartbeat activation, current RTO, max path retransmissions, and retransmission count.
sctpAssocTable (OID sctpObjects 3) is the main per-association table, indexed by sctpAssocId (Unsigned32 1..4294967295). It stores remote hostname, local/remote ports, primary remote address, heartbeat interval, state, stream counts, max retransmissions, and per-association statistics.
The sctpParams group (sctpObjects 2) contains layer-wide configuration scalars: sctpRtoAlgorithm (other|vanj, default vanj), sctpRtoMin (default 1000 ms), sctpRtoMax (default 60000 ms), sctpRtoInitial (default 3000 ms), sctpMaxAssocs (-1 for dynamic), sctpValCookieLife (default 60000 ms), sctpMaxInitRetr (default 8).
The sctpStats group (sctpObjects 1) includes layer-wide scalars: sctpCurrEstab (Gauge32 of associations in ESTABLISHED/SHUTDOWN-RECEIVED/SHUTDOWN-PENDING), sctpActiveEstabs, sctpPassiveEstabs, sctpAborteds, sctpShutdowns, sctpOutOfBlues, sctpChecksumErrors, chunk and packet counters, and a discontinuity timestamp.
The SCTP MIB module is assigned OID mib-2 104 (sctpMIB OBJECT IDENTIFIER ::= { mib-2 104 }). This is the top-level registration for all SCTP MIB objects.
The association and address tables have privacy implications by disclosing which hosts are connected to which other hosts. This information is sensitive for preventing traffic analysis and protecting individual privacy.
The sctpAssocState object has MAX-ACCESS read-write, allowing a management station to terminate arbitrary associations by writing deleteTCB(9). Unauthorized SET access could cause a denial-of-service attack.
The sctpAssocTable, address tables, and lookup tables expose active association details including local/remote IP addresses and open ports, which an attacker could use to identify vulnerable services without running a port scanner.
The sctpAssocState object represents the SCTP association finite state machine with states: closed(1), cookieWait(2), cookieEchoed(3), established(4), shutdownPending(5), shutdownSent(6), shutdownReceived(7), shutdownAckSent(8), and the management-only deleteTCB(9). Transitions follow RFC 2960 Section 4.