SNMP-COMMUNITY-MIB(7)
πΈ NAME πΈ
Okay bestie, this is SNMP-COMMUNITY-MIB(7) β the Erlang/OTP MIB module for supporting coexistence between SNMPv1, SNMPv2, and SNMPv3. That's literally the whole NAME vibe: coexistence, no cap. π
π DESCRIPTION π
This page is a MIB module, so it's basically a whole bunch of SNMP definitions doing their thing. It opens with SNMP-COMMUNITY-MIB DEFINITIONS ::= BEGIN, then the imports show up. Here's the exact opening block, untouched:
SNMP-COMMUNITY-MIB DEFINITIONS ::= BEGIN
IMPORTS
IpAddress
FROM RFC1155-SMI
MODULE-IDENTITY,
OBJECT-TYPE,
Integer32,
snmpModules
FROM SNMPv2-SMI
RowStatus,
TestAndIncr,
StorageType
FROM SNMPv2-TC
SnmpAdminString,
SnmpEngineID
FROM SNMP-FRAMEWORK-MIB
SnmpTagValue,
snmpTargetAddrEntry
FROM SNMP-TARGET-MIB
MODULE-COMPLIANCE,
OBJECT-GROUP
FROM SNMPv2-CONF;
Quick vibe translation of the import guest list:
IpAddressfromRFC1155-SMIMODULE-IDENTITY,OBJECT-TYPE,Integer32, andsnmpModulesfromSNMPv2-SMIRowStatus,TestAndIncr, andStorageTypefromSNMPv2-TCSnmpAdminStringandSnmpEngineIDfromSNMP-FRAMEWORK-MIBSnmpTagValueandsnmpTargetAddrEntryfromSNMP-TARGET-MIBMODULE-COMPLIANCEandOBJECT-GROUPfromSNMPv2-CONF
β¨
π the module identity, aka the SNMPv3 Working Group flex
Next is snmpCommunityMIB MODULE-IDENTITY. LAST-UPDATED is "9805110000Z" β the comment says -- 11 May 1998, midnight β and ORGANIZATION is "SNMPv3 Working Group". The CONTACT-INFO is long and iconic, so here's the whole exact thing. Do not skip the contact info, bestie, it's part of the lore:
snmpCommunityMIB MODULE-IDENTITY
LAST-UPDATED "9805110000Z" -- 11 May 1998, midnight
ORGANIZATION "SNMPv3 Working Group"
CONTACT-INFO "WG-email: snmpv3@tis.com
Subscribe: majordomo@tis.com
In msg body: subscribe snmpv3
Chair: Russ Mundy
Trusted Information Systems
postal: 3060 Washington Rd
Glenwood MD 21738
USA
email: mundy@tis.com
phone: +1-301-854-6889
Co-editor: Rob Frye
MCI Communications Corp.
Postal: 2100 Reston Parkway, Suite 600
Reston, VA 20191
USA
E-mail: Rob.Frye@mci.com
Phone: +1 703 715 7225
Co-editor: David B. Levi
SNMP Research, Inc.
Postal: 3001 Kimberlin Heights Road
Knoxville, TN 37920-9716
E-mail: levi@snmp.com
Phone: +1 423 573 1434
Co-editor: Shawn A. Routhier
Integrated Systems Inc.
Postal: 333 North Ave 4th Floor
Wakefield, MA 01880
E-mail: sar@epilogue.com
Phone: +1 781 245 0804
Co-editor: Bert Wijnen
IBM T. J. Watson Research
postal: Schagen 33
3461 GL Linschoten
Netherlands
email: wijnen@vnet.ibm.com
phone: +31-348-432-794
"
DESCRIPTION
"This MIB module defines objects to help support coexistence
between SNMPv1, SNMPv2, and SNMPv3."
::= { snmpModules 18 }
The module's own DESCRIPTION says it defines objects to help support coexistence between SNMPv1, SNMPv2, and SNMPv3. And the OID assignment is ::= { snmpModules 18 }. Periodt. π
π§ administrative assignments
Administrative assignments are up next. It's literally:
-- Administrative assignments ****************************************
snmpCommunityMIBObjects OBJECT IDENTIFIER ::= { snmpCommunityMIB 1 }
snmpCommunityMIBConformance OBJECT IDENTIFIER ::= { snmpCommunityMIB 2 }
π¦ the snmpCommunityTable comment block
Before the table, there's a comment block. Here it is exact:
--
-- The snmpCommunityTable contains a database of community strings.
-- This table provides mappings between community strings, and the
-- parameters required for View-based Access Control.
--
So yeah, snmpCommunityTable contains a database of community strings, and it provides mappings between community strings and the parameters required for View-based Access Control. Main character table behavior. π
πΈ snmpCommunityTable and snmpCommunityEntry
Here are the table and entry definitions, exact. snmpCommunityTable has SYNTAX SEQUENCE OF SnmpCommunityEntry, MAX-ACCESS not-accessible, and STATUS current. Its description says it's the table of community strings configured in the SNMP engine's Local Configuration Datastore (LCD). The entry is indexed by IMPLIED snmpCommunityIndex and describes info about a particular community string.
snmpCommunityTable OBJECT-TYPE
SYNTAX SEQUENCE OF SnmpCommunityEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"The table of community strings configured in the SNMP
engine's Local Configuration Datastore (LCD)."
::= { snmpCommunityMIBObjects 1 }
snmpCommunityEntry OBJECT-TYPE
SYNTAX SnmpCommunityEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"Information about a particular community string."
INDEX { IMPLIED snmpCommunityIndex }
::= { snmpCommunityTable 1 }
π SnmpCommunityEntry SEQUENCE
This is the SnmpCommunityEntry ::= SEQUENCE β all eight columns, exactly:
SnmpCommunityEntry ::= SEQUENCE {
snmpCommunityIndex SnmpAdminString,
snmpCommunityName OCTET STRING,
snmpCommunitySecurityName SnmpAdminString,
snmpCommunityContextEngineID SnmpEngineID,
snmpCommunityContextName SnmpAdminString,
snmpCommunityTransportTag SnmpTagValue,
snmpCommunityStorageType StorageType,
snmpCommunityStatus RowStatus
}
π
snmpCommunityIndex
Unique index value of a row in this table. It's SnmpAdminString (SIZE(1..32)), and it's not-accessible.
snmpCommunityIndex OBJECT-TYPE
SYNTAX SnmpAdminString (SIZE(1..32))
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"The unique index value of a row in this table."
::= { snmpCommunityEntry 1 }
π
snmpCommunityName
This is the community string for which a row in this table represents a configuration. Syntax is OCTET STRING (SIZE(1..64)), and it's read-create.
snmpCommunityName OBJECT-TYPE
SYNTAX OCTET STRING (SIZE(1..64))
MAX-ACCESS read-create
STATUS current
DESCRIPTION
"The community string for which a row in this table
represents a configuration."
::= { snmpCommunityEntry 2 }
π
snmpCommunitySecurityName
A human readable string representing the corresponding value of snmpCommunityName in a Security Model independent format. It's SnmpAdminString, and it's read-create.
snmpCommunitySecurityName OBJECT-TYPE
SYNTAX SnmpAdminString
MAX-ACCESS read-create
STATUS current
DESCRIPTION
"A human readable string representing the corresponding
value of snmpCommunityName in a Security Model
independent format."
::= { snmpCommunityEntry 3 }
π
snmpCommunityContextEngineID
This is the contextEngineID indicating the location of the context in which management information is accessed when using the community string specified by the corresponding instance of snmpCommunityName. The default value is the snmpEngineID of the entity in which this object is instantiated. It's SnmpEngineID, read-create.
snmpCommunityContextEngineID OBJECT-TYPE
SYNTAX SnmpEngineID
MAX-ACCESS read-create
STATUS current
DESCRIPTION
"The contextEngineID indicating the location of the
context in which management information is accessed
when using the community string specified by the
corresponding instance of snmpCommunityName.
The default value is the snmpEngineID of the entity in
which this object is instantiated."
::= { snmpCommunityEntry 4 }
π
snmpCommunityContextName
The context in which management information is accessed when using the community string specified by the corresponding instance of snmpCommunityName. DEFVAL is { ''H } β the empty string. It's SnmpAdminString, read-create.
snmpCommunityContextName OBJECT-TYPE
SYNTAX SnmpAdminString
MAX-ACCESS read-create
STATUS current
DESCRIPTION
"The context in which management information is accessed
when using the community string specified by the corresponding
instance of snmpCommunityName."
DEFVAL { ''H } -- the empty string
::= { snmpCommunityEntry 5 }
π
snmpCommunityTransportTag
This one specifies a set of transport endpoints from which an agent will accept management requests. If a management request containing this community is received on a transport endpoint other than the transport endpoints identified by this object, the request is deemed unauthentic. The transports identified by this object are specified in the snmpTargetAddrTable; entries in that table whose snmpTargetAddrTagList contains this tag value are identified. If the value of this object has zero-length, transport endpoints are not checked when authenticating messages containing this community string. DEFVAL is { ''H } β the empty string. It's SnmpTagValue, read-create.
snmpCommunityTransportTag OBJECT-TYPE
SYNTAX SnmpTagValue
MAX-ACCESS read-create
STATUS current
DESCRIPTION
"This object specifies a set of transport endpoints
from which an agent will accept management requests.
If a management request containing this community
is received on a transport endpoint other than the
transport endpoints identified by this object, the
request is deemed unauthentic.
The transports identified by this object are specified
in the snmpTargetAddrTable. Entries in that table
whose snmpTargetAddrTagList contains this tag value
are identified.
If the value of this object has zero-length, transport
endpoints are not checked when authenticating messages
containing this community string."
DEFVAL { ''H } -- the empty string
::= { snmpCommunityEntry 6 }
π
snmpCommunityStorageType
The storage type for this conceptual row in the snmpCommunityTable. Conceptual rows having the value 'permanent' need not allow write-access to any columnar object in the row. It's StorageType, read-create.
snmpCommunityStorageType OBJECT-TYPE
SYNTAX StorageType
MAX-ACCESS read-create
STATUS current
DESCRIPTION
"The storage type for this conceptual row in the
snmpCommunityTable. Conceptual rows having the value
'permanent' need not allow write-access to any
columnar object in the row."
::= { snmpCommunityEntry 7 }
π
snmpCommunityStatus
The status of this conceptual row in the snmpCommunityTable. An entry in this table is not qualified for activation until instances of all corresponding columns have been initialized, either through default values, or through Set operations. The snmpCommunityName and snmpCommunitySecurityName objects must be explicitly set. It's RowStatus, read-create.
snmpCommunityStatus OBJECT-TYPE
SYNTAX RowStatus
MAX-ACCESS read-create
STATUS current
DESCRIPTION
"The status of this conceptual row in the snmpCommunityTable.
An entry in this table is not qualified for activation
until instances of all corresponding columns have been
initialized, either through default values, or through
Set operations. The snmpCommunityName and
snmpCommunitySecurityName objects must be explicitly set."
::= { snmpCommunityEntry 8 }
π¦ the snmpTargetAddrExtTable comment block
Then there's this comment block about how snmpTargetAddrExtTable augments the snmpTargetAddrTable. Exact:
--
-- The snmpTargetAddrExtTable augments the snmpTargetAddrTable with
-- a transport address mask value and a maximum message size value.
-- The transport address mask allows entries in the
-- snmpTargetAddrTable to define a set of addresses instead of just
-- a single address. The maximum message size value allows the
-- maximum message size of another SNMP entity to be configured
-- for use in SNMPv1 (and SNMPv2c) transactions, where the message
-- format does not specify a maximum message size.
--
β¨ snmpTargetAddrExtTable and snmpTargetAddrExtEntry
Here's the table and entry. snmpTargetAddrExtTable is SEQUENCE OF SnmpTargetAddrExtEntry, not-accessible, and its description says it's the table of mask and mms values associated with the snmpTargetAddrTable. The entry is SnmpTargetAddrExtEntry, not-accessible, describes information about a particular mask and mms value, and it AUGMENTS { snmpTargetAddrEntry }.
snmpTargetAddrExtTable OBJECT-TYPE
SYNTAX SEQUENCE OF SnmpTargetAddrExtEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"The table of mask and mms values associated with the
snmpTargetAddrTable."
::= { snmpCommunityMIBObjects 2 }
snmpTargetAddrExtEntry OBJECT-TYPE
SYNTAX SnmpTargetAddrExtEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"Information about a particular mask and mms value."
AUGMENTS { snmpTargetAddrEntry }
::= { snmpTargetAddrExtTable 1 }
π SnmpTargetAddrExtEntry SEQUENCE
This sequence has exactly two columns:
SnmpTargetAddrExtEntry ::= SEQUENCE {
snmpTargetAddrTMask OCTET STRING,
snmpTargetAddrMMS Integer32
}
π
snmpTargetAddrTMask
The mask value associated with an entry in the snmpTargetAddrTable. The value of this object must have the same length as the corresponding instance of snmpTargetAddrTAddress, or must have length 0. Syntax is OCTET STRING (SIZE (0..255)), it's read-create, and DEFVAL { ''H }.
snmpTargetAddrTMask OBJECT-TYPE
SYNTAX OCTET STRING (SIZE (0..255))
MAX-ACCESS read-create
STATUS current
DESCRIPTION
"The mask value associated with an entry in the
snmpTargetAddrTable. The value of this object must
have the same length as the corresponding instance of
snmpTargetAddrTAddress, or must have length 0."
DEFVAL { ''H }
::= { snmpTargetAddrExtEntry 1 }
π
snmpTargetAddrMMS
The maximum message size value associated with an entry in the snmpTargetAddrTable. Syntax is Integer32 (484..65535), it's read-create, and DEFVAL { 2048 }.
snmpTargetAddrMMS OBJECT-TYPE
SYNTAX Integer32 (484..65535)
MAX-ACCESS read-create
STATUS current
DESCRIPTION
"The maximum message size value associated with an entry
in the snmpTargetAddrTable."
DEFVAL { 2048 }
::= { snmpTargetAddrExtEntry 2 }
π final comment for part 1
This is where part 1 lands β with the comment about snmpTrapAddress and snmpTrapCommunity. Exact:
--
-- The snmpTrapAddress and snmpTrapCommunity objects are included
-- in notifications that are forwarded by a proxy, which were
-- originally received as SNMPv1 Trap messages.
--
Part 2 literally continues from this comment, bestie. π«Ά
okay so now we get to the actual objects, and bestie, these two are the proxy-forwarder girlies π
π snmpTrapAddress
SYNTAX IpAddress
MAX-ACCESS accessible-for-notify
STATUS current
The way this one is literally the agent-addr field of a Trap PDU that a proxy forwarder application is forwarding using an SNMP version that is not SNMPv1. π«Ά And the value SHOULD (we love a SHOULD, it's giving "you really should but we're not gonna make a whole thing of it") contain the agent-addr field value from the original Trap PDU, exactly as generated by an SNMPv1 agent.
::= { snmpCommunityMIBObjects 3 } β that's where she lives, iykyk β¨
π snmpTrapCommunity
same energy, different field:
SYNTAX OCTET STRING
MAX-ACCESS accessible-for-notify
STATUS current
This one is the community string field of an SNMPv1 message containing a Trap PDU, and that message is being forwarded by a proxy forwarder application using an SNMP version other than SNMPv1. Its value SHOULD contain the community string field value from the original SNMPv1 message containing that Trap PDU, as generated by the SNMPv1 agent. no cap, it's just the original community tag riding along so the other end knows what's up πΈ
::= { snmpCommunityMIBObjects 4 }
β¨ Conformance Information β¨
two OID anchors, that's the whole vibe:
snmpCommunityMIBCompliancesβOBJECT IDENTIFIER ::= { snmpCommunityMIBConformance 1 }snmpCommunityMIBGroupsβOBJECT IDENTIFIER ::= { snmpCommunityMIBConformance 2 }
π Compliance statements π
π snmpCommunityMIBCompliance
She's a MODULE-COMPLIANCE, STATUS current, and her description is: the compliance statement for SNMP engines which implement the SNMP-COMMUNITY-MIB. periodt. If your engine does the MIB, this is the paperwork π
Under MODULE β this module β the only mandatory group is:
MANDATORY-GROUPS { snmpCommunityGroup }
Then comes a whole stack of OBJECT clauses, and here's the tea π: every single one is MIN-ACCESS read-only with the exact same description, "Write access is not required." So nobody is out here forcing you to make these writable. It's optional. breathe.
snmpCommunityNameβMIN-ACCESS read-only, "Write access is not required."snmpCommunitySecurityNameβMIN-ACCESS read-only, "Write access is not required."snmpCommunitySecurityLevelβMIN-ACCESS read-only, "Write access is not required."snmpCommunityContextEngineIDβMIN-ACCESS read-only, "Write access is not required."snmpCommunityContextNameβMIN-ACCESS read-only, "Write access is not required."snmpCommunityTransportTagβMIN-ACCESS read-only, "Write access is not required."snmpCommunityStorageTypeβMIN-ACCESS read-only, "Write access is not required."snmpCommunityStatusβMIN-ACCESS read-only, "Write access is not required."
(multiply that by eight, it is exactly as repetitive as it looks, and yes the MIB really does spell it out eight separate times π)
::= { snmpCommunityMIBCompliances 1 } β locked in π₯
π snmpCommunityGroup
An OBJECT-GROUP and honestly the main character of this whole page. Her OBJECTS list is:
snmpCommunityName,
snmpCommunitySecurityName,
snmpCommunityContextEngineID,
snmpCommunityContextName,
snmpCommunityTransportTag,
snmpCommunityStorageType,
snmpCommunityStatus,
snmpTargetAddrTMask,
snmpTargetAddrMMS,
snmpTrapCommunity,
snmpTrapAddress
STATUS current, and the description is literally: a collection of objects providing for configuration of community strings for SNMPv1 (and SNMPv2c) usage. cute, concise, ate π
::= { snmpCommunityMIBGroups 1 }
and then she justβ
END
iconic exit, no notes π
okay that's the whole MIB bestie, go configure your community strings responsibly and remember: SNMPv1 (and SNMPv2c) only, we don't claim anything else here π§
so yeah, this page is brought to you by Erlang/OTP, filed under the SNMP section (which is why she's SNMP-COMMUNITY-MIB(7), section 7, very demure, very manual-page π
). mwah, go touch some OIDs πβ¨
π¦ where this page comes from
- debian bookworm: erlang-manpages 1:25.2.3+dfsg-1+deb12u1 Β· Apache-2.0
- debian bookworm: erlang-manpages 1:25.2.3+dfsg-1+deb12u4 Β· Apache-2.0
- ubuntu jammy: erlang-manpages 1:24.2.1+dfsg-1 Β· Apache-2.0
- ubuntu jammy: erlang-manpages 1:24.2.1+dfsg-1ubuntu0.8 Β· Apache-2.0
- ubuntu noble: erlang-manpages 1:25.3.2.8+dfsg-1ubuntu4 Β· Apache-2.0
- ubuntu noble: erlang-manpages 1:25.3.2.8+dfsg-1ubuntu4.8 Β· Apache-2.0
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms