RFC 4747
The Virtual Fabrics MIB
1. Introduction β¨
okay so this memo defines a piece of the Management Information Base (MIB) π that network management protocols in the Internet community can use. the main point is that it describes managed objects for info about the Fibre Channel network's Virtual Fabric function π¦
quick note on the big words: "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" are to be read the way RFC 2119 [RFC2119] describes them π«Ά
2. The Internet-Standard Management Framework π
if you want the full tea on the Internet-Standard Management Framework, check section 7 of RFC 3410 [RFC3410] π managed objects are reached through a virtual info store called the Management Information Base, or MIB, and people usually get at MIB objects through the Simple Network Management Protocol (SNMP) πΈ
the objects in the MIB are defined with the Structure of Management Information (SMI). this memo's MIB module is SMIv2 compliant, which is covered by STD 58, RFC 2578 [RFC2578], STD 58, RFC 2579 [RFC2579] and STD 58, RFC 2580 [RFC2580] π
3. Short Overview of Fibre Channel π§
so Fibre Channel (FC) is basically a bidirectional point-to-point serial data channel, and it's built for high performance π it's a general transport for higher-level protocols like Small Computer System Interface (SCSI) command sets, High-Performance Parallel Interface (HIPPI) data framing, IP (Internet Protocol), IEEE 802.2, and more π₯
physically, Fibre Channel is a bunch of communication points called N_Ports, linked either through a switching network called a Fabric, or through a point-to-point link. an FC "node" is one or more N_Ports. a Fabric can have several Interconnect Elements, and some of them are switches π an N_Port hooks up to the Fabric through a port on a switch called an F_Port. when several FC nodes plug into one switch port using an "Arbitrated Loop" topology, that switch port is an FL_Port and the nodes' ports are NL_Ports π "Nx_Port" means either an N_Port or an NL_Port, and "Fx_Port" means either an F_Port or an FL_Port π
a switch port linked to another switch port by an Inter-Switch Link (ISL) is an E_Port β¨ a B_Port connects a bridge device to an E_Port on a switch, and it only does a subset of what an E_Port does π
lots of FC components (the Fabric, each node, and most ports) have globally-unique names. these are usually formatted as World Wide Names (WWNs), and you can read more about them in [FC-FS] π¦ WWNs are expected to stay persistent across agent and unit resets π«Ά
FC frames carry 24-bit address identifiers that say which source and destination ports they belong to. every FC port has both an address identifier and a WWN π when a Fabric is in use, the FC address identifiers are dynamic and a switch assigns them. each octet of a 24-bit address is one level of an address hierarchy, and the Domain_ID is the highest level π
now the Virtual Fabrics part, which is my favourite π Virtual Fabrics let one physical Fabric get split into several logical Fabrics. each Virtual Fabric can be managed on its own, like a traditional Fabric πΈ the whole point is better use of the physical infrastructure, plus keeping events in one Virtual Fabric from messing with the others π₯ when one Core Switch handles switching for several Virtual Fabrics, that Core Switch is modelled as holding several Virtual Switches, one per Virtual Fabric π§
each Virtual Fabric has a 12-bit Virtual Fabric ID (VF_ID) π when frames from several Virtual Fabrics go over one physical link, the VF_ID in a frame's Virtual Fabric Tagging Header (VFT_Header) tells you which Virtual Fabric that frame belongs to. VFT_Headers get switched on through an initial negotiation exchange between the two connected ports π
4. Relationship to Other MIBs π
this MIB goes beyond [RFC4044]. it covers the part where Fibre Channel switches provide the Virtual Fabrics function π¦
5. MIB Overview πΈ
this MIB module lets you monitor how one or more instances of Fibre Channel Virtual Fabric functionality are running, and configure some of their parameters π (heads up, there are no "managed actions" defined in this MIB module that a remote network management protocol like SNMP can invoke π) it has IMPORTS from [RFC2578], [RFC2579], [RFC2580], [RFC2863], [RFC4044], and [RFC4439]. its REFERENCE clauses refer to [FC-SW-4] β¨
5.1. Fibre Channel Management Instance π§
a Fibre Channel management instance is defined in [RFC4044] as a separable managed instance of Fibre Channel functionality π you can group Fibre Channel functionality into management instances however is most convenient for the implementation(s) π«Ά for example, one grouping is a single SNMP agent with several AgentX [RFC2741] sub-agents, each sub-agent running a different Fibre Channel management instance π
the object fcmInstanceIndex is IMPORTed from the FC-MGMT-MIB [RFC4044] and is the index value that uniquely identifies each Fibre Channel management instance, for example within the same SNMP context ([RFC3411] section 3.3.1) π the t11vfVirtualSwitchTable augments the fcmSwitchTable, and the fcmSwitchTable's primary index variable is fcmInstanceIndex π
5.2. Representing Core and Virtual Switches π¦
when Virtual Switches exist, the fcmSwitchTable in RFC 4044 has a row for each Virtual Switch π the fcmSwitchTable, t11vfCoreSwitchTable, and t11vfVirtualSwitchTable are complementary to each other π the t11vfCoreSwitchTable and t11vfVirtualSwitchTable hold info that helps a management client figure out which Switches are Virtual Switches and how each one relates to a Core Switch πΈ a Virtual Switch has to live inside a single Core Switch, and a Core Switch is defined as a set of entities that share the same Core Switch_Name π₯
RFC 4044 came out before Virtual Switches were standard, and it only represented physical Switches. so the RFC 4044 tables weren't defined as read-create π now that Virtual Switches exist, administrators can create them, so read-create tables are required π the StorageType of the RFC 4044 tables wasn't defined, and the StorageTypes used in this MIB should also apply to the RFC 4044 tables this MIB augments π«Ά
6. The T11-FC-VIRTUAL-FABRIC-MIB Module π
the module itself is next, and it's pure SMI, so here it is exactly as written π§
T11-FC-VIRTUAL-FABRIC-MIB DEFINITIONS ::= BEGIN
IMPORTS
MODULE-IDENTITY, OBJECT-TYPE,
Unsigned32, mib-2
FROM SNMPv2-SMI -- [RFC2578]
MODULE-COMPLIANCE, OBJECT-GROUP
FROM SNMPv2-CONF -- [RFC2580]
RowStatus, StorageType FROM SNMPv2-TC -- [RFC2579]
InterfaceIndex FROM IF-MIB -- [RFC2863]
fcmInstanceIndex, FcNameIdOrZero,
fcmPortEntry, fcmSwitchEntry
FROM FC-MGMT-MIB -- [RFC4044]
T11FabricIndex FROM T11-TC-MIB; -- [RFC4439]
t11FcVirtualFabricMIB MODULE-IDENTITY
LAST-UPDATED "200611100000Z"
ORGANIZATION "IETF IMSS (Internet and Management Support
for Storage) Working Group"
CONTACT-INFO
"
Scott Kipp
McDATA Corporation
Tel: +1 720 558-3452
E-mail: scott.kipp@mcdata.com
Postal: 4 McDATA Parkway
Broomfield, CO USA 80021
G D Ramkumar
SnapTell, Inc.
Tel: +1 650-326-7627
E-mail: gramkumar@stanfordalumni.org
Postal: 2741 Middlefield Rd, Suite 200
Palo Alto, CA USA 94306
Keith McCloghrie
Cisco Systems, Inc.
Tel: +1 408 526-5260
E-mail: kzm@cisco.com
Postal: 170 West Tasman Drive
San Jose, CA USA 95134
"
DESCRIPTION
"This module defines management information specific to
Fibre Channel Virtual Fabrics. A Virtual Fabric is a
Fabric composed of partitions of switches, links and
N_Ports with a single Fabric management domain, Fabric
Services and independence from other Virtual Fabrics.
Copyright (C) The IETF Trust (2006). This version of
this MIB module is part of RFC 4747; see the RFC itself for
full legal notices."
REVISION "200611100000Z"
DESCRIPTION
"Initial version of this MIB module, published as RFC 4747."
::= { mib-2 147 }
t11vfObjects OBJECT IDENTIFIER ::= { t11FcVirtualFabricMIB 1 }
t11vfConformance OBJECT IDENTIFIER ::= { t11FcVirtualFabricMIB 2 }
--********************************
-- MIB object definitions
--
Okay bestie, picking up right where we left off π We're deep in the MIB module now, and it's giving tables, tables, and more tables π¦ First up is the core switch table, which is where each core switch gets its own row πΈ
t11vfCoreSwitchTable OBJECT-TYPE
SYNTAX SEQUENCE OF T11vfCoreSwitchEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"A table of core switches supported by the current
management entity."
::= { t11vfObjects 1 }
t11vfCoreSwitchEntry OBJECT-TYPE
SYNTAX T11vfCoreSwitchEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"Each entry represents one core switch."
INDEX { fcmInstanceIndex, t11vfCoreSwitchSwitchName }
::= { t11vfCoreSwitchTable 1}
T11vfCoreSwitchEntry ::=
SEQUENCE {
t11vfCoreSwitchSwitchName FcNameIdOrZero,
t11vfCoreSwitchMaxSupported Unsigned32,
t11vfCoreSwitchStorageType StorageType
}
t11vfCoreSwitchSwitchName OBJECT-TYPE
SYNTAX FcNameIdOrZero (SIZE(8 | 16))
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"The Core Switch_Name (WWN) of this Core Switch."
::= { t11vfCoreSwitchEntry 1 }
t11vfCoreSwitchMaxSupported OBJECT-TYPE
SYNTAX Unsigned32 (1..4095)
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"In switches that do not support Virtual Fabrics,
this object has the value of 1. If Virtual Fabrics
are supported, this object is the maximum number of
Virtual Fabrics supported by the Core Switch. For
the purpose of this count, the Control VF_ID is
ignored."
::= { t11vfCoreSwitchEntry 2 }
t11vfCoreSwitchStorageType OBJECT-TYPE
SYNTAX StorageType
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"The storage type for this conceptual row.
Conceptual rows having the value 'permanent' need not
allow write-access to any columnar objects in the row."
DEFVAL { nonVolatile }
::= { t11vfCoreSwitchEntry 3 }
Each core switch is identified by its Core Switch_Name (WWN), and the MaxSupported column is the one that counts virtual fabrics. Switches without Virtual Fabric support just report 1, and the Control VF_ID is left out of the count π β¨
Next is the Virtual Switch table π§ When one core switch runs switching for several virtual fabrics, it's modelled as several virtual switches, one per fabric. This table augments the fcmSwitchTable from the FC-MGMT-MIB, so every row here lines up one-to-one with a row there π
-- Virtual Switch table
t11vfVirtualSwitchTable OBJECT-TYPE
SYNTAX SEQUENCE OF T11vfVirtualSwitchEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"A table of Virtual Switches. When one Core Switch
provides switching functions for multiple Virtual Fabrics,
that Core Switch is modeled as containing multiple
Virtual Switches, one for each Virtual Fabric. This table
contains one row for every Virtual Switch on every Core
Switch. This table augments the basic switch information in
the fcmSwitchTable Table in the FC-MGMT-MIB."
REFERENCE
"fcmSwitchTable is defined in the FC-MGMT-MIB [RFC4044]."
::= { t11vfObjects 2 }
t11vfVirtualSwitchEntry OBJECT-TYPE
SYNTAX T11vfVirtualSwitchEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"An entry of the Virtual Switch table. Each row is for a
Virtual Switch.
This table augments the fcmSwitchTable, i.e., every entry
in this table has a one-to-one correspondence with an
entry in the fcmSwitchTable. At the time when the
fcmSwitchTable was defined, it applied to physical
switches. With the definition and usage of virtual
switches, fcmSwitchTable now applies to virtual switches
as well as physical switches, and (in contrast to physical
switches) it is appropriate to provide the capability for
virtual switches to be created via remote management
applications, e.g., via SNMP.
So, this entry contains a RowStatus object (to allow the
creation of a virtual switch), as well as a StorageType
object. Obviously, if a row is created/deleted in this
table, the corresponding row in the fcmSwitchTable will
be created/deleted."
REFERENCE
"fcmSwitchEntry is defined in the FC-MGMT-MIB module
[RFC4044]."
AUGMENTS { fcmSwitchEntry }
::= { t11vfVirtualSwitchTable 1}
T11vfVirtualSwitchEntry ::=
SEQUENCE {
t11vfVirtualSwitchVfId T11FabricIndex,
t11vfVirtualSwitchCoreSwitchName FcNameIdOrZero,
t11vfVirtualSwitchRowStatus RowStatus,
t11vfVirtualSwitchStorageType StorageType
}
t11vfVirtualSwitchVfId OBJECT-TYPE
SYNTAX T11FabricIndex
MAX-ACCESS read-create
STATUS current
DESCRIPTION
"The VF_ID of the Virtual Fabric for which this virtual
switch performs its switching function. The Control
VF_ID is implicitly enabled and is not set.
Communication with the Control VF_ID is required."
REFERENCE
"FC-SW-4, REV 7.5, section 12.2"
::= { t11vfVirtualSwitchEntry 1 }
t11vfVirtualSwitchCoreSwitchName OBJECT-TYPE
SYNTAX FcNameIdOrZero (SIZE(8 | 16))
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The Core Switch_Name (WWN) of the Core Switch that
contains this Virtual Switch."
REFERENCE
"FC-SW-4, REV 7.5, section 12.2."
::= { t11vfVirtualSwitchEntry 2 }
t11vfVirtualSwitchRowStatus OBJECT-TYPE
SYNTAX RowStatus
MAX-ACCESS read-create
STATUS current
DESCRIPTION
"The status of this row."
::= { t11vfVirtualSwitchEntry 3 }
t11vfVirtualSwitchStorageType OBJECT-TYPE
SYNTAX StorageType
MAX-ACCESS read-create
STATUS current
DESCRIPTION
"The storage type for this conceptual row.
Conceptual rows having the value 'permanent' need not
allow write-access to any columnar objects in the row."
DEFVAL { nonVolatile }
::= { t11vfVirtualSwitchEntry 4 }
The big deal here is that virtual switches can be created remotely over SNMP, which physical switches can't do π₯ That's why this row has a RowStatus column for creation, and deleting a row here also deletes its partner row in fcmSwitchTable π
Now the Port table π Each physical port gets four extra columns stacked onto its fcmPortEntry row, covering the Virtual Fabric ID and the tagging status π¦
-- Port table
t11vfPortTable OBJECT-TYPE
SYNTAX SEQUENCE OF T11vfPortEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"A table of Port attributes related to Virtual Fabrics."
::= { t11vfObjects 3 }
t11vfPortEntry OBJECT-TYPE
SYNTAX T11vfPortEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"Each entry represents a physical Port on a switch.
Switches that support Virtual Fabrics would add
these four additional columns to the fcmPortEntry
row."
REFERENCE
"fcmPortEntry is defined in the FC-MGMT-MIB module."
AUGMENTS { fcmPortEntry }
::= { t11vfPortTable 1}
T11vfPortEntry ::=
SEQUENCE {
t11vfPortVfId T11FabricIndex,
t11vfPortTaggingAdminStatus INTEGER,
t11vfPortTaggingOperStatus INTEGER,
t11vfPortStorageType StorageType
}
t11vfPortVfId OBJECT-TYPE
SYNTAX T11FabricIndex
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"The Port VF_ID assigned to this Port. The Port VF_ID is the
default Virtual Fabric that is assigned to untagged frames
arriving at this Port. The Control VF_ID is implicitly
enabled and is not set. Communication with the Control
VF_ID is required."
REFERENCE
"FC-SW-4, REV 7.5, section 12.1"
DEFVAL {1}
::= { t11vfPortEntry 1 }
t11vfPortTaggingAdminStatus OBJECT-TYPE
SYNTAX INTEGER {
off(1),
on(2),
auto(3)
}
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"This object is used to configure the administrative status
of Virtual Fabric tagging on this Port.
SET operation Description
-------------- -------------------------------------------
off(1) To disable Virtual Fabric tagging on this
Port.
on(2) To enable Virtual Fabric tagging on this
Port if the attached Port doesn't
prohibit it.
auto(3) To enable Virtual Fabric tagging if the
peer requests it."
REFERENCE
"FC-SW-4, REV 7.5, section 12.4"
::= { t11vfPortEntry 2 }
t11vfPortTaggingOperStatus OBJECT-TYPE
SYNTAX INTEGER {
off(1),
on(2)
}
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"This object is used to report the operational status of
Virtual Fabric tagging on this Port.
SET operation Description
-------------- -------------------------------------------
off(1) Virtual Fabric tagging is disabled on this
Port.
on(2) Virtual Fabric tagging is enabled on this
Port."
REFERENCE
"FC-SW-4, REV 7.5, section 12.4"
::= { t11vfPortEntry 3 }
t11vfPortStorageType OBJECT-TYPE
SYNTAX StorageType
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"The storage type for this conceptual row, and for the
corresponding row in the augmented fcmPortTable.
Conceptual rows having the value 'permanent' need not
allow write-access to any columnar objects in the row."
DEFVAL { nonVolatile }
::= { t11vfPortEntry 4 }
Tagging has three admin settings: off(1), on(2), and auto(3), and auto(3) is the one that only turns tagging on if the peer asks for it π The operational column just tells you whether tagging is off or on right now π
Last bit for this part is the Locally Enabled table π It's where you assign and check the locally-enabled VF_IDs on each port. The fabrics that actually run on a port are the bit-wise AND of your local set and the attached port's set, which is kinda iconic ngl β¨
-- Locally Enabled Table
t11vfLocallyEnabledTable OBJECT-TYPE
SYNTAX SEQUENCE OF T11vfLocallyEnabledEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"A table for assigning and reporting operational status of
locally-enabled Virtual Fabric IDs to Ports. The set of
Virtual Fabrics operational on the Port is the bit-wise
'AND' of the set of locally-enabled VF_IDs of this Port
and the locally-enabled VF_IDs of the attached Port."
::= { t11vfObjects 4 }
t11vfLocallyEnabledEntry OBJECT-TYPE
SYNTAX T11vfLocallyEnabledEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"An entry for each locally-enabled VF_ID on
each Port."
REFERENCE
"FC-SW-4, REV 7.5, section 12.4"
INDEX { t11vfLocallyEnabledPortIfIndex, t11vfLocallyEnabledVfId }
::= { t11vfLocallyEnabledTable 1}
T11vfLocallyEnabledEntry ::=
SEQUENCE {
t11vfLocallyEnabledPortIfIndex InterfaceIndex,
t11vfLocallyEnabledVfId T11FabricIndex,
t11vfLocallyEnabledOperStatus INTEGER,
t11vfLocallyEnabledRowStatus RowStatus,
t11vfLocallyEnabledStorageType StorageType
}
t11vfLocallyEnabledPortIfIndex OBJECT-TYPE
SYNTAX InterfaceIndex
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"The value of the ifIndex that identifies the Port."
::= { t11vfLocallyEnabledEntry 1 }
t11vfLocallyEnabledVfId OBJECT-TYPE
SYNTAX T11FabricIndex
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"A locally-enabled VF_ID on this Port."
::= { t11vfLocallyEnabledEntry 2 }
t11vfLocallyEnabledOperStatus OBJECT-TYPE
SYNTAX INTEGER {
off(1),
on(2)
}
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"This object is used to report the operational status of
Virtual Fabric tagging on this Port.
Okay that's the table, and the rest of the Locally Enabled stuff is coming up in the next part, so stay tuned π§π
SET operation Description
-------------- -------------------------------------------
off(1) Virtual Fabric tagging is disabled on this
Port.
on(2) Virtual Fabric tagging is enabled on this
Port."
REFERENCE
"FC-SW-4, REV 7.3, section 12.4"
::= { t11vfLocallyEnabledEntry 3 }
t11vfLocallyEnabledRowStatus OBJECT-TYPE
SYNTAX RowStatus
MAX-ACCESS read-create
STATUS current
DESCRIPTION
"The status of this conceptual row.
When a row in this table is in 'active(1)' state,
no object in that row can be modified except
t11vfLocallyEnabledRowStatus and
t11vfLocallyEnabledStorageType."
::= { t11vfLocallyEnabledEntry 4 }
t11vfLocallyEnabledStorageType OBJECT-TYPE
SYNTAX StorageType
MAX-ACCESS read-create
STATUS current
DESCRIPTION
"The storage type for this conceptual row.
Conceptual rows having the value 'permanent' need not
allow write-access to any columnar objects in the row."
DEFVAL { nonVolatile }
::= { t11vfLocallyEnabledEntry 5 }
--********************************
-- Conformance Section
--
t11vfMIBCompliances OBJECT IDENTIFIER ::= { t11vfConformance 1 }
t11vfMIBGroups OBJECT IDENTIFIER ::= { t11vfConformance 2 }
t11vfMIBCompliance MODULE-COMPLIANCE
STATUS current
DESCRIPTION
"Describes the requirements for compliance to the
Fibre Channel Virtual Fabric MIB."
MODULE -- this module
MANDATORY-GROUPS { t11vfGeneralGroup }
OBJECT t11vfCoreSwitchMaxSupported
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required."
OBJECT t11vfCoreSwitchStorageType
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required."
OBJECT t11vfVirtualSwitchVfId
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required."
OBJECT t11vfVirtualSwitchRowStatus
SYNTAX RowStatus { active(1) }
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required."
OBJECT t11vfVirtualSwitchStorageType
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required."
OBJECT t11vfPortVfId
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required."
OBJECT t11vfPortTaggingAdminStatus
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required."
OBJECT t11vfPortStorageType
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required."
OBJECT t11vfLocallyEnabledRowStatus
SYNTAX RowStatus { active(1) }
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required."
OBJECT t11vfLocallyEnabledStorageType
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required."
::= { t11vfMIBCompliances 1 }
-- Units of conformance
t11vfGeneralGroup OBJECT-GROUP
OBJECTS { t11vfCoreSwitchMaxSupported,
t11vfVirtualSwitchVfId,
t11vfVirtualSwitchCoreSwitchName,
t11vfVirtualSwitchRowStatus,
t11vfPortVfId,
t11vfPortTaggingAdminStatus,
t11vfLocallyEnabledOperStatus,
t11vfPortTaggingOperStatus,
t11vfLocallyEnabledRowStatus,
t11vfCoreSwitchStorageType,
t11vfVirtualSwitchStorageType,
t11vfPortStorageType,
t11vfLocallyEnabledStorageType
}
STATUS current
DESCRIPTION
"A collection of objects for monitoring and
configuring Virtual Fabrics in a Fibre Channel switch."
::= { t11vfMIBGroups 1 }
END
7. Security Considerations π
Okay bestie, this part is serious. A bunch of objects in this MIB module have a MAX-ACCESS of read-write and/or read-create, which means they can be changed, created, or deleted. In some network environments those objects can be sensitive or vulnerable. Doing SET operations in a non-secure environment without proper protection can seriously mess up network operations π Here's the tea on which objects are the risky ones:
- Switch-level objects:
t11vfCoreSwitchMaxSupported,t11vfVirtualSwitchVfId,t11vfCoreSwitchStorageType,t11vfVirtualSwitchStorageTypeandt11vfVirtualSwitchRowStatus. The risk is the ability to change the configuration of Virtual Fabrics on a particular switch. - Port-level objects:
t11vfPortTaggingAdminStatus,t11vfLocallyEnabledRowStatus,t11vfPortVfId,t11vfPortStorageTypeandt11vfLocallyEnabledStorageType. The risk is the ability to change the configuration of Virtual Fabrics on a port of a particular switch.
Some of the readable objects in this MIB module, meaning objects with a MAX-ACCESS other than not-accessible, might also be sensitive or vulnerable in some environments. So it matters a lot to control even GET and/or NOTIFY access to them, and maybe even encrypt their values when they travel over the network via SNMP. Here are those objects:
t11vfVirtualSwitchCoreSwitchName,t11vfPortTaggingOperStatusandt11vfLocallyEnabledOperStatus. The risk is the ability to discover the configuration of Virtual Fabrics on a virtual switch or a port.
SNMP versions before 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 gets to access and GET/SET (read/change/create/delete) the objects in this MIB module. π
It is RECOMMENDED that implementers look at the security features provided by the SNMPv3 framework (see [RFC3410], section 8), including full support for the SNMPv3 cryptographic mechanisms for authentication and privacy. π
Deployment of SNMP versions before SNMPv3 is NOT RECOMMENDED. Instead, it is RECOMMENDED to deploy SNMPv3 and to turn on cryptographic security. It is then the customer or operator's job to make sure the SNMP entity giving access to an instance of this MIB module is configured properly, so that only principals (users) with legitimate rights can GET or SET (change/create/delete) the objects. Security is the main character here, periodt β¨
8. IANA Considerations π
IANA has assigned 147 for the MIB module under the appropriate subtree. πΈ
9. Acknowledgements π«Ά
This document was developed by the INCITS Task Group T11.5. Big thank yous to the INCITS Technical Committee T11 and the IMSS WG for their contributions and comments, including these lovely people:
T11 Chair: Robert Snively, Brocade
T11 Vice Chair: Claudio Desanti, Cisco Systems
T11.5 Chair: Roger Cummings, Symantec
IMSS WG Chair: David Black, EMC Corporation
Bert Wijnen, Lucent
10. Normative References π
Here are the normative references, bestie. Every single one is listed with all its details:
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997.
[RFC2578] McCloghrie, K., Perkins, D., Schoenwaelder, J., Case, J.,
Rose, M., and S. Waldbusser, "Structure of Management
Information Version 2 (SMIv2)", RFC 2578, April 1999.
[RFC2579] McCloghrie, K., Perkins, D., Schoenwaelder, J., Case, J.,
Rose, M., and S. Waldbusser, "Textual Conventions for
SMIv2", STD 58, RFC 2579, April 1999.
[RFC2580] McCloghrie, K., Perkins, D., Schoenwaelder, J., Case, J.,
Rose, M., and S. Waldbusser, "Conformance Statements for
SMIv2", RFC 2580, April 1999.
[RFC2863] McCloghrie, K. and F. Kastenholz, "The Interfaces Group
MIB", RFC 2863, June 2000.
[RFC4044] McCloghrie, K., "Fibre Channel Management MIB", RFC 4044,
May 2005.
[RFC4439] DeSanti, C., Gaonkar, V., McCloghrie, K., and S. Gai,
"Fibre Channel Fabric Address Manager MIB", RFC 4439,
March 2006.
[FC-FS] "Fibre Channel Framing and Signaling - 2 (FC-FS-2)", ANSI
INCITS 1619-D,
http://www.t11.org/t11/stat.nsf/upnum/1619-d, 2006.
[FC-SW-4] "Fibre Channel Switch Fabric 4 (FC-SW-4)", ANSI INCITS
418-2006, http://www.t11.org/t11/stat.nsf/upnum/1674-d,
2006.
11. Informative References π‘
And here are the informative ones, the nice-to-know reads:
[RFC3410] Case, J., Mundy, R., Partain, D., and B. Stewart,
"Introduction and Applicability Statements for Internet-
Standard Management Framework", RFC 3410, December 2002.
[RFC2741] Daniele, M., Wijnen, B., Ellison, M., and D. Francisco,
"Agent Extensibility (AgentX) Protocol Version 1", RFC
2741, January 2000.
[RFC3411] Harrington, D., Presuhn, R., and B. Wijnen, "An
Architecture for Describing Simple Network Management
Protocol (SNMP) Management Frameworks", STD 62, RFC 3411,
December 2002.
Authors' Addresses π¦
The lovely authors, with their contact details:
Scott Kipp
McDATA Corporation
4 McDATA Parkway
Broomfield, CO 80021
Phone: +1 720-558-3452
EMail: scott.kipp@mcdata.com
G D Ramkumar
SnapTell, Inc.
2741 Middlefield Rd, Suite 200
Palo Alto, CA 94306
Phone: +1 650-326-7627
EMail: gramkumar@stanfordalumni.org
Keith McCloghrie
Cisco Systems
170 West Tasman Drive
San Jose, CA USA 95134
Phone: +1 408-526-5260
EMail: kzm@cisco.com
Full Copyright Statement π
Copyright (C) The IETF Trust (2006). β¨
This document is subject to the rights, licenses and restrictions contained in BCP 78. Except as set forth there, the authors keep all their rights. π
This document and the information in it are provided on an "AS IS" basis. THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST, 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 β¨
Okay bestie, time for the legal bit π The IETF doesn't take a side on whether any Intellectual Property Rights or other rights might be claimed over the tech in this doc, or whether you can actually get a license for them. It also doesn't claim to have checked for any of those rights itself π If you want the rules on rights for RFC docs, check out BCP 78 and BCP 79 π¦
Copies of IPR disclosures sent to the IETF Secretariat are available, along with any assurances of licenses. You can also find the result of anyone trying to get a general license or permission to use those proprietary rights for implementing or using this spec. Everything is in the IETF online IPR repository at http://www.ietf.org/ipr πΈ
The IETF is inviting any interested party to flag copyrights, patents, patent applications, or other proprietary rights that might cover tech needed to implement this standard. Send that info to ietf-ipr@ietf.org π
Acknowledgement π«Ά
Funding for the RFC Editor function is currently provided by the Internet Society π
π¦ where this page comes from
- ietf: rfc4747 2006-11
- π girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms