Transcript Document

ALMA MATER STUDIORUM - UNIVERSITA' DI BOLOGNA
FACOLTA' DI INGEGNERIA - SEDE DI CESENA
LABORATORIO DI INFORMATICA
Network Management
9. Visita guidata alle MIB standard
9.1. snmpMIB, ifMIB, etherMIB, mauMIB
Claudio Salati
Copyright © 2001 by Claudio Salati
1
Quali MIB?
•
RFC 1907: MIB for SNMPv2.
•
RFC 2233: The Interface Group MIB using SMIv2
•
RFC 2665: Definition of Managed Objects for the Ethernet-like
Interface Types
•
RFC 2668: Definition of Managed Objects for IEEE 802.3 Medium
Attachment Units (MAUs)
•
RFC 2011: SNMPv2 MIB for IP using SMIv2
•
RFC 2096: IP Forwarding Table MIB
•
RFC 2012: SNMPv2 MIB for TCP using SMIv2
•
RFC 2013: SNMPv2 MIB for UDP using SMIv2
2
OBJECT IDENTIFIER utilizzati nelle MIB
internet = 1.3.6.1
Vedi:
mgmt (2)
mib-2 (1)
transmission (10)
system (1) -- RFC 1907
snmp (11) -- RFC 1907
•
RFC 1902, SNMPv2-SMI
•
RFC 1907, SNMPv2MIB
•
RFC 2233, ifMIB
interfaces (2) -- RFC 2233
ifMIB (31) -- RFC 2233
experimental (3)
private (4)
enterprises (1)
snmpV2 (6)
snmpModules (1)
snmpMIB (1) -- (RFC 1907)
snmpMIBObjects (1)
3
RFC 1907: MIB for SNMPv2
•
Deriva dalla MIB-II di SNMPv1.
•
Si occupa:
•
della gestione del sistema gestito in quanto tale:
• systemGroup,
•
della gestione dell'agent SNMPv2
• snmpGroup
• snmpBasicNotificationsGroup
•
della gestione della sincronizzazioni di diverse richieste di set
da parte di uno o piu' manager
• snmpSetGroup
•
della gestione dell'infrastruttura amministrativa Communitybased
• snmpCommunityGroup
4
RFC 1907: MIB for SNMPv2
mib-2 = 1.3.6.1.2.1
system (1)
sysDescr (1)
sysObjectID (2)
sysUpTime (3)
sysContact (4)
sysName (5)
sysLocation (6)
sysServices (7)
sysORLastChange (8)
sysORTable (9)
sysOREntry (1)
sysORIndex (1)
sysORID (2)
sysORDescr (3)
sysORUpTime (4)
5
RFC 1907: MIB for SNMPv2
mib-2 = 1.3.6.1.2.1
snmp (11)
snmpInPkts (1)
snmpInBadVersions (3)
snmpInBadCommunityNames (4)
snmpInBadCommunityUses (5)
snmpInASPNarseErrs (6)
snmpEnableAuthenTraps (30)
snmpSilentDrops (31)
snmpProxyDrops (32)
6
RFC 1907: MIB for SNMPv2
snmpMIBObjects = 1.3.6.1.6.3.1.1
snmpTrap (4)
snmpTrapOID (1)
snmpTrapEnterprise (3)
snmpTraps (5)
coldStart (1)
warmStart (2)
authenticationFailure (5)
snmpSet (6)
snmpSetSerialNo (1)
7
RFC 1907: MIB for SNMPv2
•
systemGroup
• vedi lez. 5.4 per la definizione dell'object-group
• vedi lez. 5.2 per la definizione degli object-type principali
• vengono registrate:
• informazioni di inventory:
tipo, funzionalita', identificazione-cliente, localita' di
installazione dell'apparato
• il tempo di vita dell'agent SNMP
• le capability di gestione dell'agent: tabella sysORTable
8
RFC 1907: MIB for SNMPv2
•
snmpGroup
• vedi lezione 5.4 per la definizione dell'object-group
• oltre che una serie di contatori di PDU SNMP il gruppo
contiene l'object-type snmpEnableAuthenTraps (vedi lez. 5.3)
• l'object-type snmpTrapOID (vedi lez. 5.3) non appartiene
formalmente a questo (e a nessun altro) gruppo, anche se
logicamente dovrebbe farne parte
In realta' questo oggetto e' contenuto, insieme a
snmpTrapEnterprise a un sottoalbero OBJECT IDENTIFIER
autonomo, ma non "associato" ad alcun object-group
• l'RFC definisce anche l'object-type snmpTrapEnterprise che
deve essere utilizzato nella realizzazione di un proxy di
traduzione SNMPv2-SNMPv1
9
RFC 1907: MIB for SNMPv2
•
snmpBasicNotificationsGroup
• vedi lez. 5.4 per la definizione del notification-group
• vedi lez. 5.3 per la definizione delle notifiche
• la notifica di warmStart (vedi lez. 5.3) non fa parte del gruppo,
ne' di alcun altro gruppo
•
snmpSetGroup
• vedi lez. 5.4 per la definizione dell'object-group
• vedi lez. 5.2 per la definizione dell'object-type
snmpSetSerialNo, che e' l'unico object-type del gruppo
•
snmpCommunityGroup
• vedi lez. 5.4 per la definizione dell'object-group
• vedi lez. 7 per la definizione degli object-type del gruppo
10
RFC 2233: The Interfaces Group MIB using SMIv2
•
Deriva indirettamente dalla MIB-II di SNMPv1
tramite RFC 1573 di SNMPv2 (Evolution of the Interfaces Group of
MIB-II), che RFC 2233 rende obsoleto
•
Si occupa della gestione di base (type independent) delle
interfacce del sistema gestito
•
N.B.: in un'ottica puramente di gestione di Internet, una
interfaccia si identifica con una sottorete di IP
•
per questo nella tabella delle interfacce e' normalmente
compresa anche l'interfaccia di loopback
11
RFC 2233: The Interfaces Group MIB using SMIv2
la MIB si compone sostanzialmente di 4 tabelle, 3 scalari e 2 notifiche:
• lo scalare ifNumber indica quante sono le interfacce descritte
• lo scalare ifTableLastChange che indica l'istante dell'ultima
modifica di ifNumber
• la tabella ifTable contiene la descrizione di base (indipendente dal
tipo della singola interfaccia) delle ifNumber interfacce
• la tabella ifXTable costituisce una prima estensione di ifTable
indipendente dal tipo della singola interfaccia
• la tabella ifStackTable descrive la struttura layerizzata di
interfacce complesse (l'oggetto scalare ifStackLastChange indica
l'istante di ultima modifica di ifStackTable)
• la tabella ifRcvAddressTable e' utilizzata per interfacce che
utilizzano in ricezione piu' di un indirizzo
• le due notifiche spontanee linkDown e linkUp servono per
informare un/i manager della variazione dello stato operazionale di
una interfaccia (vedi lez. 5.3)
12
RFC 2233: The Interfaces Group MIB using SMIv2
mib-2 = 1.3.6.1.2.1
interfaces (2)
ifNumber (1)
ifTable (2)
ifEntry (1)
ifIndex (1)
ifDescr (2)
ifType (3)
ifSpeed (5)
ifPhysAddress (6)
ifAdminStatus (7)
ifOperStatus (8)
ifLastChange (9)
...
13
RFC 2233: The Interfaces Group MIB using SMIv2
mib-2 = 1.3.6.1.2.1
ifMIB (31)
ifMIBObjects (1)
ifTableLastChange (5)
ifXTable (1)
ifXEntry (1)
ifName (1)
ifLinkUpDowTrapEnable (14)
ifHighSpeed (15)
ifConnectorPresent (17)
ifAlias (18)
...
ifRcvAddressTable (4)
ifRcvAddressEntry (1)
ifRcvAddressAddress (1)
ifRcvAddressStatus (2)
ifRcvAddressType (3)
14
RFC 2233: The Interfaces Group MIB using SMIv2
mib-2 = 1.3.6.1.2.1
ifMIB (31)
ifMIBObjects (1)
ifStackLastChange (6)
ifstackTable (2)
ifStackEntry (1)
ifStackHigherLayer (1)
ifStackLowerLayer (2)
ifStackStatus (3)
15
RFC 2233: The Interfaces Group MIB using SMIv2
snmpMIBObjects = 1.3.6.1.6.3.1.1
snmpTraps (5)
linkDown (3)
linkUp (4)
16
RFC 2233: The Interfaces Group MIB using SMIv2
da RFC 2233: Gestione generica delle interfacce
•
One of the strengths of internetwork-layer protocols such as IP is
that they are designed to run over any network interface.
•
In achieving this, IP considers any and all protocols it runs over as
a single "network interface" layer. A similar view is taken by other
internetwork-layer protocols.
 This concept is represented in MIB-II by the 'interfaces' group
which defines a generic set of managed objects such that any
network interface can be managed in an interfaceindependent manner through these managed objects.
 The 'interfaces' group provides the means for additional managed
objects specific to particular types of network interface (e.g., a
specific medium such as Ethernet) to be defined as extensions
to the 'interfaces' group for media-specific management.
17
RFC 2233: oggetti semplici
ifNumber OBJECT-TYPE
SYNTAX
Integer32
MAX-ACCESS read-only
STATUS
current
DESCRIPTION
"The number of network interfaces (regardless of their current state)
present on this system."
::= { interfaces 1 }
ifTableLastChange OBJECT-TYPE
SYNTAX
TimeTicks
MAX-ACCESS read-only
STATUS
current
DESCRIPTION
"The value of sysUpTime at the time of the last creation or deletion of
an entry in the ifTable. If the number of entries has been unchanged
since the last re-initialization of the local network management
subsystem, then this object contains a zero value."
::= { ifMIBObjects 5 }
18
RFC 2233: tabella ifTable
ifTable OBJECT-TYPE
SYNTAX
SEQUENCE OF IfEntry
MAX-ACCESS not-accessible
STATUS
current
DESCRIPTION
"A list of interface entries. The number of entries is given by the
value of ifNumber."
::= { interfaces 2 }
ifEntry OBJECT-TYPE
SYNTAX
IfEntry
MAX-ACCESS not-accessible
STATUS
current
DESCRIPTION
"An entry containing management information applicable to a
particular interface."
INDEX { ifIndex }
::= { ifTable 1 }
19
RFC 2233: tabella ifTable
IfEntry ::=
SEQUENCE {
ifIndex
InterfaceIndex,
ifType
IANAifType,
ifSpeed
Gauge32,
ifAdminStatus INTEGER,
ifLastChange TimeTicks,
ifInUcastPkts Counter32,
ifDescr
DisplayString,
ifMtu
Integer32,
ifPhysAddress
PhysAddress,
ifOperStatus
INTEGER,
ifInOctets
Counter32,
ifInNUcastPkts
Counter32,
-- deprecated
ifInDiscards Counter32,
ifInErrors Counter32,
ifInUnknownProtos
Counter32,
ifOutOctets Counter32,
ifOutUcastPkts
Counter32,
ifOutNUcastPkts
Counter32, -- deprecated
ifOutDiscards Counter32,
ifOutErrors
Counter32,
ifOutQLen
Gauge32,
-- deprecated
ifSpecific
OBJECT IDENTIFIER
-- deprecated
}
20
RFC 2233: tabella ifXTable
ifXTable
OBJECT-TYPE
SYNTAX
SEQUENCE OF IfXEntry
MAX-ACCESS not-accessible
STATUS
current
DESCRIPTION
"A list of interface entries. The number of entries is given by the value of
ifNumber. This table contains additional objects for the interface table."
::= { ifMIBObjects 1 }
ifXEntry
OBJECT-TYPE
SYNTAX
IfXEntry
MAX-ACCESS not-accessible
STATUS
current
DESCRIPTION
"An entry containing additional management information applicable to a
particular interface."
AUGMENTS { ifEntry }
::= { ifXTable 1 }
21
RFC 2233: tabella ifXTable
IfXEntry ::=
SEQUENCE {
ifName
ifInMulticastPkts
ifOutMulticastPkts
ifHCInOctets
ifHCInMulticastPkts
ifHCOutOctets
ifHCOutMulticastPkts
DisplayString,
Counter32,
Counter32,
Counter64,
Counter64,
Counter64,
Counter64,
ifLinkUpDownTrapEnable
ifHighSpeed
ifPromiscuousMode
ifConnectorPresent
ifAlias
ifCounterDiscontinuityTime
ifInBroadcastPkts
ifOutBroadcastPkts
ifHCInUcastPkts
ifHCInBroadcastPkts
ifHCOutUcastPkts
ifHCOutBroadcastPkts
Counter32,
Counter32,
Counter64,
Counter64,
Counter64,
Counter64,
INTEGER,
Gauge32,
TruthValue,
TruthValue,
DisplayString,
TimeStamp
}
22
RFC 2233: The Interfaces Group MIB using SMIv2
da RFC 2233: Aggiunta/rimozione dinamica di interfacce
• While some interfaces, for example, most physical interfaces, cannot be
created via network management, other interfaces such as logical
interfaces sometimes can be. The ifTable contains only generic
information about an interface. Almost all 'create-able' interfaces have
other, media-specific, information through which configuration parameters
may be supplied prior to creating such an interface.
 Thus, the ifTable does not itself support the creation or deletion of
an interface (specifically, it has no RowStatus column).
 Rather, if a particular interface type supports the dynamic creation
and/or deletion of an interface of that type, then that media-specific
MIB should include an appropriate RowStatus object (see the ATM
LAN-Emulation Client MIB for an example of a MIB which does this).
 Typically, when such a RowStatus object is created/deleted, then the
conceptual row in the ifTable appears/disappears as a by-product, and an
ifIndex value (chosen by the agent) is stored in an appropriate object in the
media-specific MIB.
23
RFC 2233: tabella ifTable: oggetti colonna
ifIndex OBJECT-TYPE
SYNTAX
InterfaceIndex
MAX-ACCESS read-only
STATUS
current
DESCRIPTION
"A unique value, greater than zero, for each interface.
-- indice della tabella ifTable+ifXTable
-- rappresenta l'identificatore univoco di una interfaccia del sistema
-- gestito
• It is recommended that values are assigned contiguously
starting from 1.
• The value for each interface sub-layer must remain constant at
least from one re-initialization of the entity's network
management system to the next re-initialization."
::= { ifEntry 1 }
24
RFC 2233: textual-convention InterfaceIndex
InterfaceIndex ::= TEXTUAL-CONVENTION
DISPLAY-HINT "d"
STATUS
current
DESCRIPTION
"A unique value, greater than zero, for each interface or
interface sub-layer in the managed system.
• It is recommended that values are assigned
contiguously starting from 1.
• The value for each interface sub- layer must remain
constant at least from one re-initialization of the entity's
network management system to the next reinitialization."
SYNTAX
Integer32 (1..2147483647)
25
RFC 2233: tabella ifTable: oggetti colonna
ifType OBJECT-TYPE
SYNTAX
IANAifType
MAX-ACCESS read-only
STATUS
current
DESCRIPTION
"The type of interface.
 Additional values for ifType are assigned by the Internet
Assigned Numbers Authority (IANA), through updating the
syntax of the IANAifType textual convention."
::= { ifEntry 3 }
26
IANAifType-MIB
•
non e' (piu') un RFC
•
e' un modulo MIB scaricabile dal sito della Internet Assigned
Numbers Authority (IANA)
•
definisce la textual-convention IANAifType che enumera tutti i tipi
possibili di interfaccia
•
in particolare definisce diversi valori di ifType per indicare reti di tipo
Ethernet (CSMA/CD)
• ethernetCsmacd(6),
• iso88023Csmacd(7),
• starLan(11), obsoleto
• ieee80212(55),
-- 100BaseVG
• fastEther(62),
-- Fast Ethernet (100BaseT)
• fastEtherFX(69), -- Fast Ethernet (100BaseFX)
• gigabitEthernet (117), -- Gigabit Ethernet
anche se RFC 2665 raccomanda che venga utilizzato il tipo
ethernetCsmacd(6) indipendentemente dal tipo particolare di
Ethernet
27
IANAifType-MIB
IANAifType-MIB DEFINITIONS ::= BEGIN
IMPORTS
MODULE-IDENTITY, mib-2
TEXTUAL-CONVENTION
FROM SNMPv2-SMI
FROM SNMPv2-TC;
ianaifType MODULE-IDENTITY
LAST-UPDATED "200105110000Z" -- May 11, 2001
ORGANIZATION "IANA"
CONTACT-INFO "
Internet Assigned Numbers Authority
Postal: ICANN
4676 Admiralty Way, Suite 330
Marina del Rey, CA 90292
Tel: +1 310 823 9358
E-Mail: [email protected]"
DESCRIPTION
"This MIB module defines the IANAifType Textual Convention, and thus the
enumerated values of the ifType object defined in MIB-II's ifTable."
REVISION "200105110000Z" -- May 11, 2001
DESCRIPTION "Registration of new IANAifType 197."
…
28
IANAifType-MIB
REVISION "200004250000Z" -- Apr 25, 2000
DESCRIPTION "Registration of new IANAifTypes 168 and 169."
REVISION "200003060000Z" -- Mar 6, 2000
DESCRIPTION
"Fixed a missing semi-colon in the IMPORT. Also cleaned up the REVISION log a
bit. It is not complete, but from now on it will be maintained and kept up to date with
each change to this MIB module."
REVISION "199910081430Z" -- Oct 08, 1999
DESCRIPTION
"Include new name assignments up to cnr(85).
This is the first version available via the WWW at:
ftp://ftp.isi.edu/mib/ianaiftype.mib"
REVISION "199401310000Z" -- Jan 31, 1994
DESCRIPTION "Initial version of this MIB as published in RFC 1573."
::= { mib-2 30 }
29
IANAifType-MIB
IANAifType ::= TEXTUAL-CONVENTION
STATUS
current
DESCRIPTION
"This data type is used as the syntax of the ifType object in the (updated)
definition of MIB-II's ifTable.
The definition of this textual convention with the addition of newly
assigned values is published periodically by the IANA, in either the
Assigned Numbers RFC, or some derivative of it specific to Internet
Network Management number assignments. (The latest arrangements
can be obtained by contacting the IANA.)
Requests for new values should be made to IANA via email
([email protected]).
The relationship between the assignment of ifType values and of OIDs to
particular media-specific MIBs is solely the purview of IANA and is subject
to change without notice. Quite often, a media-specific MIB's OIDsubtree assignment within MIB-II's 'transmission' subtree will be the same
as its ifType value. However, in some circumstances this will not be the
case, and implementors must not pre-assume any specific relationship
between ifType values and transmission subtree OIDs."
-- continua alla prossima pagina
30
IANAifType-MIB
SYNTAX INTEGER {
other(1),
-- none of the following
…
ddnX25(4),
rfc877x25(5),
ethernetCsmacd(6),
iso88023Csmacd(7),
iso88024TokenBus(8),
iso88025TokenRing(9),
iso88026Man(10),
…
hyperchannel(14),
fddi(15),
lapb(16),
sdlc(17),
ds1(18),
-- DS1-MIB
e1(19),
-- Obsolete see DS1-MIB
basicISDN(20),
primaryISDN(21),
propPointToPointSerial(22), -- proprietary serial
ppp(23),
softwareLoopback(24),
31
IANAifType-MIB
…
slip(28),
-- generic SLIP
…
ds3(30),
-- DS3-MIB
…
frameRelay(32), -- DTE only.
rs232(33),
para(34),
-- parallel-port
…
atm(37),
-- ATM cells
…
sonet(39),
-- SONET or SDH
…
iso88022llc(41),
…
frameRelayService(44), -- FRNETSERV-MIB
v35(45),
…
modem(48),
-- Generic modem
…
ieee80212(55),
-- 100BaseVG
…
32
IANAifType-MIB
frameRelayInterconnect(58), -- Obsolete use either
-- frameRelay(32) or
-- frameRelayService(44)
…
fastEther(62),
-- Fast Ethernet (100BaseT)
…
v11(64),
-- CCITT V.11/X.21
v36(65),
-- CCITT V.36
g703at64k(66),
-- CCITT G703 at 64Kbps
g703at2mb(67),
-- Obsolete see DS1-MIB
…
fastEtherFX(69), -- Fast Ethernet (100BaseFX)
…
ieee80211(71),
-- radio spread spectrum
…
lapd(77),
-- Link Access Protocol D
…
ds0(81),
-- Digital Signal Level 0
ds0Bundle(82),
-- group of ds0s on the same ds1
bsc(83),
-- Bisynchronous Protocol
…
33
IANAifType-MIB
adsl(94),
-- Asymmetric Digital Subscriber Loop
...
sdsl(96),
-- Symmetric Digital Subscriber Loop
vdsl(97),
-- Very H-Speed Digital Subscrib. Loop
…
gigabitEthernet (117), -- Gigabit Ethernet
hdlc (118),
-- HDLC
…
mplsTunnel (150), -- MPLS Tunnel Virtual Interface
…
mpls (166), -- MPLS
…
pos (171), -- Packet over SONET/SDH Interface
…
plc (174), -- Power Line Communtications
…
opticalChannel (195), -- Optical Channel
opticalTransport (196), -- Optical Transport
…
}
END
34
RFC 2233: The Interfaces Group MIB using SMIv2
da RFC 2233: Eterogeneita' delle interfacce
•
About half the objects in the ifTable are applicable to every type of
interface: packet-oriented, character-oriented, and bit-oriented.
•
Of the other half, two are applicable to both character-oriented and
packet-oriented interfaces, and the rest are applicable only to
packet-oriented interfaces.
•
Thus, while it is desirable for consistency to be able to represent
any/all types of interfaces in the ifTable, it is not possible to
implement the full ifTable for bit- and character-oriented sub-layers.
35
RFC 2233: The Interfaces Group MIB using SMIv2
da RFC 2233: Eterogeneita' delle interfacce
•
The solution adopted builds upon the fact that compliance
statements in SNMPv2 refer to object groups, where object groups
are explicitly defined by listing the objects they contain.
•
Thus multiple compliance statements can be specified, one for all
interfaces and additional ones for specific types of interfaces.
•
The separate compliance statements can be based on separate
object groups, where the object group for all interfaces can contain
only those objects from the ifTable which are appropriate for every
type of interfaces.
•
Using this solution, every sub-layer can have its own conceptual
row in the ifTable.
36
RFC 2233: gruppi di conformita' non ifType-specifici
ifGeneralInformationGroup OBJECT-GROUP
OBJECTS { ifIndex, ifDescr, ifType, ifSpeed, ifPhysAddress,
ifAdminStatus, ifOperStatus, ifLastChange,
ifLinkUpDownTrapEnable, ifConnectorPresent,
ifHighSpeed, ifName, ifNumber, ifAlias,
ifTableLastChange }
STATUS current
DESCRIPTION
"A collection of objects providing information applicable to all network
interfaces."
::= { ifGroups 10 }
ifCounterDiscontinuityGroup OBJECT-GROUP
OBJECTS { ifCounterDiscontinuityTime }
STATUS current
DESCRIPTION
"A collection of objects providing information specific to interface counter
discontinuities."
::= { ifGroups 13 }
37
RFC 2233: gruppi di conformita' ifType-specifici
•
sono definiti 5 gruppi di contatori (misure di performance)
mutuamente esclusivi tra di loro
•
per ogni interfaccia, in base al suo tipo, uno e uno solo di questi
gruppi e' significativo e deve essere implementato
•
uno stesso contatore puo' comparire in diversi gruppi (essere
significativo per diversi tipi di interfacce)
•
i 5 gruppi sono:
•
ifFixedLengthGroup
•
ifHCFixedLengthGroup
•
ifPacketGroup
•
ifHCPacketGroup
•
ifVHCPacketGroup
38
RFC 2233: gruppi di conformita' ifType-specifici
ifFixedLengthGroup OBJECT-GROUP
OBJECTS { ifInOctets, ifOutOctets, ifInUnknownProtos, ifInErrors, ifOutErrors }
STATUS current
DESCRIPTION
"A collection of objects providing information specific to non-high speed
(non-high speed interfaces transmit and receive at speeds less than or
equal to 20,000,000 bits/second) character-oriented or fixed-lengthtransmission network interfaces."
::= { ifGroups 2 }
ifHCFixedLengthGroup OBJECT-GROUP
OBJECTS { ifHCInOctets, ifHCOutOctets, ifInOctets,
ifOutOctets, ifInUnknownProtos, ifInErrors, ifOutErrors }
STATUS current
DESCRIPTION
"A collection of objects providing information specific to high speed (greater
than 20,000,000 bits/second) character-oriented or fixed-lengthtransmission network interfaces."
::= { ifGroups 3 }
39
RFC 2233: gruppi di conformita' ifType-specifici
ifPacketGroup OBJECT-GROUP
OBJECTS { ifInOctets, ifOutOctets, ifInUnknownProtos, ifInErrors, ifOutErrors,
ifMtu, ifInUcastPkts, ifInMulticastPkts, ifInBroadcastPkts,
ifInDiscards, ifOutUcastPkts, ifOutMulticastPkts,
ifOutBroadcastPkts, ifOutDiscards, ifPromiscuousMode }
STATUS current
DESCRIPTION
"A collection of objects providing information specific to non-high speed
(non-high speed interfaces transmit and receive at speeds less than or
equal to 20,000,000 bits/second) packet-oriented network interfaces."
::= { ifGroups 4 }
40
RFC 2233: gruppi di conformita' ifType-specifici
ifHCPacketGroup OBJECT-GROUP
OBJECTS { ifHCInOctets, ifHCOutOctets, ifInOctets, ifOutOctets,
ifInUnknownProtos, ifInErrors, ifOutErrors, ifMtu, ifInUcastPkts,
ifInMulticastPkts, ifInBroadcastPkts, ifInDiscards, ifOutUcastPkts,
ifOutMulticastPkts, ifOutBroadcastPkts, ifOutDiscards,
ifPromiscuousMode }
STATUS current
DESCRIPTION
"A collection of objects providing information specific to high speed
(greater than 20,000,000 bits/second but less than or equal to
650,000,000 bits/second) packet-oriented network interfaces."
::= { ifGroups 5 }
41
RFC 2233: gruppi di conformita' ifType-specifici
ifVHCPacketGroup OBJECT-GROUP
OBJECTS { ifHCInUcastPkts, ifHCInMulticastPkts, ifHCInBroadcastPkts,
ifHCOutUcastPkts, ifHCOutMulticastPkts, ifHCOutBroadcastPkts,
ifHCInOctets, ifHCOutOctets, ifInOctets, ifOutOctets,
ifInUnknownProtos, ifInErrors, ifOutErrors, ifMtu, ifInUcastPkts,
ifInMulticastPkts, ifInBroadcastPkts, ifInDiscards,
ifOutUcastPkts, ifOutMulticastPkts, ifOutBroadcastPkts,
ifOutDiscards, ifPromiscuousMode }
STATUS current
DESCRIPTION
"A collection of objects providing information specific to higher speed
(greater than 650,000,000 bits/second) packet-oriented network
interfaces."
::= { ifGroups 6 }
42
RFC 2233: estensione ifType-specifica di ifTable
ifSpecific OBJECT-TYPE
-- oggetto colonna di ifTable
SYNTAX
OBJECT IDENTIFIER
MAX-ACCESS read-only
STATUS
deprecated
DESCRIPTION
"A reference to MIB definitions specific to the particular media being
used to realize the interface.
...
If no MIB definitions specific to the particular media are available, the value
should be set to the OBJECT IDENTIFIER { 0 0 }."
::= { ifEntry 22 }
 In realta' RFC 2233 indica che:
• The only definition that can both be made explicit and can cover
all the useful situations is to have ifSpecific be the OBJECT
IDENTIFIER that defines the media-specific MIB.
• This effectively makes it redundant because it contains no more
information than is provided by ifType.
• Thus, ifSpecific has been deprecated.
43
RFC 2233: tabella ifTable: oggetti colonna
ifDescr OBJECT-TYPE
SYNTAX
DisplayString (SIZE (0..255))
MAX-ACCESS read-only
STATUS
current
DESCRIPTION
"A textual string containing information about the interface.
This string should include
• the name of the manufacturer,
• the product name and
• the version of the interface hardware/software."
::= { ifEntry 2 }
44
RFC 2233: tabella ifTable: oggetti colonna
ifMtu OBJECT-TYPE
SYNTAX
Integer32
MAX-ACCESS read-only
STATUS
current
DESCRIPTION
"The size of the largest packet which can be sent/received on the
interface, specified in octets.
 For interfaces that are used for transmitting network
datagrams, this is the size of the largest network datagram that
can be sent on the interface."
::= { ifEntry 4 }
45
RFC 2233: tabella ifTable: oggetti colonna
ifSpeed OBJECT-TYPE
SYNTAX
Gauge32
MAX-ACCESS read-only
STATUS
current
DESCRIPTION
"An estimate of the interface's current bandwidth in bits per second.
• For interfaces which do not vary in bandwidth or for those
where no accurate estimation can be made, this object should
contain the nominal bandwidth.
• If the bandwidth of the interface is greater than the maximum
value reportable by this object then this object should report its
maximum value (4,294,967,295) and ifHighSpeed must be used
to report the interace's speed.
• For a sub-layer which has no concept of bandwidth, this object
should be zero."
::= { ifEntry 5 }
46
RFC 2233: tabella ifXTable: oggetti colonna
ifHighSpeed OBJECT-TYPE
SYNTAX
Gauge32
MAX-ACCESS read-only
STATUS
current
DESCRIPTION
"An estimate of the interface's current bandwidth in units of
1,000,000 bits per second.
• If this object reports a value of 'n' then the speed of the interface
is somewhere in the range of `n-500,000' to `n+499,999'.
• For interfaces which do not vary in bandwidth or for those
where no accurate estimation can be made, this object should
contain the nominal bandwidth.
• For a sub-layer which has no concept of bandwidth, this object
should be zero."
::= { ifXEntry 15 }
47
RFC 2233: tabella ifTable: oggetti colonna
ifPhysAddress OBJECT-TYPE
SYNTAX
PhysAddress
MAX-ACCESS read-only
STATUS
current
DESCRIPTION
"The interface's address at its protocol sub-layer.
 For example, for an 802.x interface, this object normally
contains a MAC address.
• The interface's media-specific MIB must define the bit and byte
ordering and the format of the value of this object.
• For interfaces which do not have such an address (e.g., a serial
line), this object should contain an octet string of zero length."
::= { ifEntry 6 }
48
RFC 2233: tabella ifTable: oggetti colonna
ifAdminStatus OBJECT-TYPE
SYNTAX INTEGER {
up(1),
-- ready to pass packets
down(2),
testing(3) -- in some test mode
}
MAX-ACCESS read-write
STATUS
current
DESCRIPTION
"The desired state of the interface.
• The testing(3) state indicates that no operational packets can be passed.
• When a managed system initializes, all interfaces start with
ifAdminStatus in the down(2) state.
• As a result of either explicit management action or per
configuration information retained by the managed system,
ifAdminStatus is then changed to either the up(1) or testing(3)
states (or remains in the down(2) state)."
::= { ifEntry 7 }
49
RFC 2233: tabella ifTable: oggetti colonna
ifOperStatus OBJECT-TYPE
SYNTAX INTEGER {
up(1),
down(2),
testing(3),
unknown(4),
dormant(5),
notPresent(6),
lowerLayerDown(7)
-- ready to pass packets
-- in some test mode
-- status can not be determined
-- for some reason.
-- some component is missing
-- down due to state of
-- lower-layer interface(s)
}
MAX-ACCESS read-only
STATUS
current
-- DESCRIPTION ...
-- vedi prossima pagina
50
RFC 2233: tabella ifTable: oggetti colonna
-- ifOperStatus OBJECT-TYPE: continua da pagina precedente
DESCRIPTION
"The current operational state of the interface.
• The testing(3) state indicates that no operational packets can be
passed.
• If ifAdminStatus is down(2) then ifOperStatus should be down(2).
• If ifAdminStatus is changed to up(1) then
• ifOperStatus should change to up(1) if the interface is ready to
transmit and receive network traffic;
• it should change to dormant(5) if the interface is waiting for
external actions (such as a serial line waiting for an incoming
connection);
• it should remain in the down(2) state if and only if there is a
fault that prevents it from going to the up(1) state;
• it should remain in the notPresent(6) state if the interface has
missing (typically, hardware) components."
::= { ifEntry 8 }
51
RFC 2233: tabella ifTable: oggetti colonna
ifLastChange OBJECT-TYPE
SYNTAX
TimeTicks
MAX-ACCESS read-only
STATUS
current
DESCRIPTION
"The value of sysUpTime at the time the interface entered its current
operational state.
• If the current state was entered prior to the last re-initialization
of the local network management subsystem, then this object
contains a zero value."
::= { ifEntry 9 }
52
RFC 2233: The Interfaces Group MIB using SMIv2
da RFC 2233: Notifiche spontanee
 Operational experience indicates that management stations are
most concerned with an interface being in the down state and
the fact that this state may indicate a failure.
•
Instrumenting transitions into or out of the down state (to/from all
other states except notPresent) has the advantages:
• A transition into the down state (from a state other than
notPresent) will occur when an error is detected on an
interface. Error conditions are presumably of great interest to
network managers.
• Departing the down state (to a state other than the notPresent
state) generally indicates that the interface is going to either
up or dormant, both of which are considered "healthy" states.
•
Transitions to/from the notPresent state are concerned with the
insertion and removal of hardware, and are outside the scope of
these traps.
53
RFC 2233: The Interfaces Group MIB using SMIv2
da RFC 2233: Notifiche spontanee
•
LinkUp and linkDown traps are generated on just after
ifOperStatus leaves, or just before it enters, the down state,
respectively; except that LinkUp and linkDown traps never
generated on transitions to/from the notPresent state.
•
An exception to the above generation of linkUp/linkDown traps on
changes in ifOperStatus, occurs when an interface is "flapping",
i.e., when it is rapidly oscillating between the up and down states.
If traps were generated for each such oscillation, the network and
the network management system would be flooded with
unnecessary traps. In such a situation, the agent should rate-limit
its generation of traps.
54
RFC 2233: notifiche
linkDown NOTIFICATION-TYPE
OBJECTS { ifIndex, ifAdminStatus, ifOperStatus }
STATUS current
DESCRIPTION "
• A linkDown trap signifies that the SNMPv2 entity, acting in an
agent role, has detected that the ifOperStatus object for one of
its communication links is about to enter the down state from
some other state (but not from the notPresent state).
• This other state is indicated by the included value of
ifOperStatus."
::= { snmpTraps 3 }
 notare che il valore comunicato di ifOperStatus e' quello dell'istante
in cui viene teoricamente generata la notifica
55
RFC 2233: notifiche
linkUp NOTIFICATION-TYPE
OBJECTS { ifIndex, ifAdminStatus, ifOperStatus }
STATUS current
DESCRIPTION "
• A linkDown trap signifies that the SNMPv2 entity, acting in an
agent role, has detected that the ifOperStatus object for one of
its communication links left the down state and transitioned into
some other state (but not into the notPresent state).
• This other state is indicated by the included value of
ifOperStatus."
::= { snmpTraps 4 }
notare che il valore comunicato di ifOperStatus e' quello dell'istante in
cui viene teoricamente generata la notifica
56
RFC 2233: The Interfaces Group MIB using SMIv2
da RFC 2233: Controllo delle notifiche spontanee
•
In the multi-layer interface model, each sub-layer for which there is
an entry in the ifTable can generate linkUp/Down Traps.
 Since interface state changes would tend to propagate
through the interface (from top to bottom, or bottom to top), it
is likely that several traps would be generated for each
linkUp/Down occurrence.
•
It is desirable to provide a mechanism for manager stations to
control the generation of these traps.
 To this end, the ifLinkUpDownTrapEnable object has been
added.
 This object allows managers to limit generation of traps to just
the sub-layers of interest.
57
Propagazione degli allarmi
•
Si distingue tra guasti primari e guasti secondari (o indotti)
•
Esempio: rete SDH
• se stacco un cavo ho un guasto di LOS sul livello fisico
• verso i livelli superiori il livello fisico propaga un segnale di AIS
che quando rilevato e' anch'esso considerato una condizione
anomala (secondaria)
•
In una rete si possono distinguere due tipi di propagazione dei
guasti:
• locale al nodo su cui e' rilevato anche il guasto primario
•
condizione anomala di SSF (Server Signal Fail)
•
politiche locali di soppressione dei defect secondari
(AIS)
• remota: se del caso, la notifica di defect secondari deve
essere soppressa esplicitamente
58
RFC 2233: The Interfaces Group MIB using SMIv2
da RFC 2233: Controllo delle notifiche spontanee
•
The default setting should limit the number of traps generated to
one per interface per linkUp/Down event.
•
Furthermore, it seems that the state changes of most interest to
network managers occur at the lowest level of an interface stack
(e.g. layer fisico OSI).
 Therefore we specify that by default, only the lowest sub-layer
of the interface generate traps.
N.B.:
•
•
•
quanto detto e' vero per quanto riguarda l'individuazione dei guasti primari.
in realta', dal punto di vista dei servizi applicativi e' opportuna la
generazione di eventi di up/down a livello end-to-end, quindi a livello piu'
alto di quello fisico o anche IP (e.g. layer di trasporto).
Poiche' le interfacce di cui si parla sono di livello inferiore al layer IP una
notifica di linkUp/Down che le riguardi non puo' comunque riguardare una
diagnosi end-to-end
59
RFC 2233: tabella ifXTable: oggetti colonna
ifLinkUpDownTrapEnable OBJECT-TYPE
SYNTAX
INTEGER { enabled(1), disabled(2) }
MAX-ACCESS read-write
STATUS
current
DESCRIPTION
"Indicates whether linkUp/linkDown traps should be generated for
this interface.
 By default, this object should have the value
• enabled(1) for interfaces which do not operate on 'top' of
any other interface (as defined in the ifStackTable), and
• disabled(2) otherwise."
::= { ifXEntry 14 }
60
RFC 2233: tabella ifXTable: oggetti colonna
ifName OBJECT-TYPE
SYNTAX
DisplayString
MAX-ACCESS read-only
STATUS
current
DESCRIPTION
"The textual name of the interface.
• The value of this object should be the name of the interface as assigned
by the local device and should be suitable for use in commands entered
at the device's 'console'. This might be a text name, such as 'le0' or a
simple port number, such as '1', depending on the interface naming
syntax of the device.
• If several entries in the ifTable together represent a single interface as
named by the device, then each will have the same value of ifName.
• Note that for an agent which responds to SNMP queries concerning an
interface on some other (proxied) device, then the value of ifName for
such an interface is the proxied device's local name for it.
• If there is no local name, or this object is otherwise not applicable, then
this object contains a zero-length string."
::= { ifXEntry 1 }
61
RFC 2233: tabella ifXTable: oggetti colonna
ifAlias OBJECT-TYPE
SYNTAX
DisplayString (SIZE(0..64))
MAX-ACCESS read-write
STATUS
current
DESCRIPTION
"This object is an 'alias' name for the interface as specified by a network manager,
and provides a non-volatile 'handle' for the interface.
• On the first instantiation of an interface, the value of ifAlias associated with that
interface is the zero-length string.
• As and when a value is written into an instance of ifAlias through a network
management set operation, then the agent must retain the supplied value in the
ifAlias instance associated with the same interface for as long as that interface
remains instantiated, including across all re-initializations/reboots of the network
management system, including those which result in a change of the interface's
ifIndex value.
• An example of the value which a network manager might store in this object for
a WAN interface is the (Telco's) circuit number/identifier of the interface.
• Some agents may support write-access only for interfaces having particular
values of ifType. An agent which supports write access to this object is required
to keep the value in non-volatile storage, but it may limit the length of new
values depending on how much storage is already occupied by the current
values for other interfaces."
::= { ifXEntry 18 }
62
RFC 2233: tabella ifXTable: oggetti colonna
ifConnectorPresent OBJECT-TYPE
SYNTAX
TruthValue
MAX-ACCESS read-only
STATUS
current
DESCRIPTION
"This object has the value 'true(1)' if the interface sublayer has a
physical connector and the value 'false(2)' otherwise."
::= { ifXEntry 17 }
63
RFC 2233: tabella ifXTable: oggetti colonna
ifPromiscuousMode OBJECT-TYPE
SYNTAX
TruthValue
MAX-ACCESS read-write
STATUS
current
DESCRIPTION
"This object has a value of false(2) if this interface only accepts
packets/frames that are addressed to this station.
This object has a value of true(1) when the station accepts all
packets/frames transmitted on the media.
• The value true(1) is only legal on certain types of media. If
legal, setting this object to a value of true(1) may require the
interface to be reset before becoming effective.
• The value of ifPromiscuousMode does not affect the reception
of broadcast and multicast packets/frames by the interface."
::= { ifXEntry 16 }
64
RFC 2233: tabella ifXTable: oggetti colonna
ifInErrors OBJECT-TYPE
SYNTAX
Counter32
MAX-ACCESS read-only
STATUS
current
DESCRIPTION "
• For packet-oriented interfaces, the number of inbound packets
that contained errors preventing them from being deliverable to a
higher-layer protocol.
• For character-oriented or fixed-length interfaces, the number of
inbound transmission units that contained errors preventing them
from being deliverable to a higher-layer protocol.
• Discontinuities in the value of this counter can occur at reinitialization of the management system, and at other times as
indicated by the value of ifCounterDiscontinuityTime."
::= { ifEntry 14 }
65
RFC 2233: tabella ifXTable: oggetti colonna
ifCounterDiscontinuityTime OBJECT-TYPE
SYNTAX
TimeStamp
MAX-ACCESS read-only
STATUS
current
DESCRIPTION
"The value of sysUpTime on the most recent occasion at which any
one or more of this interface's counters suffered a discontinuity.
• The relevant counters are the specific instances associated
with this interface of any Counter32 or Counter64 object
contained in the ifTable or ifXTable.
• If no such discontinuities have occurred since the last reinitialization of the local management subsystem, then this
object contains a zero value."
::= { ifXEntry 19 }
66
RFC 2233: The Interfaces Group MIB using SMIv2
da RFC 2233: Interface Sub-Layers
•
Experience in defining media-specific management information
has shown the need to distinguish between the multiple sub-layers
beneath the internetwork-layer.
•
In addition, there is a need to manage these sub-layers in devices
(e.g., MAC-layer bridges) which are unaware of which, if any,
internetwork protocols run over these sub-layers.
•
As such, a model of having a single conceptual row in the
interfaces table (MIB-II's ifTable) represent a whole interface
underneath the internetwork-layer, and having a single associated
media-specific MIB module is too simplistic.
•
… have an individual conceptual row in the ifTable to represent
each sub-layer, and have a new separate MIB table (the
ifStackTable) to identify the "superior" and "subordinate" sublayers through INTEGER "pointers" to the appropriate conceptual
rows in the ifTable.
67
Interface Sub-Layers: esempi
• Le sottoreti Ethernet/IEEE 802.3 che si vedranno in seguito
possono venire convenientemenet modellizzate attraverso la
combinazione di 4 diversi layer.
 In realta' esiste anche la possibilita' che un sub-layer operi
come un multiplexer per diverse istanze del layer sottostante
• Una sottorete X.25 inserita in un contesto di inter-rete IP e'
composta di 4 sublayer (dall'alto):
• Sub-Network Dependent Convergence, che si occupa di
fornire al layer IP una interfaccia omogenea a tutte le altre
• Layer di rete (PLP)
• Data Link Layer (LAPB)
• Layer Fisico
 In realta' esiste anche la possibilita' che un sub-layer (quello di
rete PLP) operi come un multiplexer per diverse istanze del
layer sottostante
68
RFC 2233: tabella ifStackTable
ifStackTable OBJECT-TYPE
SYNTAX
SEQUENCE OF IfStackEntry
MAX-ACCESS not-accessible
STATUS
current
DESCRIPTION
"The table containing information on the relationships between the multiple
sub-layers of network interfaces. In particular, it contains information on
which sub-layers run 'on top of' which other sub-layers, where each sublayer corresponds to a conceptual row in the ifTable.
• For example, when the sub-layer with ifIndex value x runs over the
sub-layer with ifIndex value y, then this table contains:
ifStackStatus.x.y=active
• For each ifIndex value, I, which identifies an active interface, there are
always at least two instantiated rows in this table associated with I.
• For one of these rows, I is the value of ifStackHigherLayer;
• for the other, I is the value of ifStackLowerLayer.
(If I is not involved in multiplexing, then these are the only two rows associated
with I.)
• Two rows exist even for an interface which has no others stacked on
top or below it:: ifStackStatus.0.x=active && ifStackStatus.x.0=active ."
::= { ifMIBObjects 2 }
69
RFC 2233: tabella ifStackTable
ifStackEntry OBJECT-TYPE
SYNTAX
IfStackEntry
MAX-ACCESS not-accessible
STATUS
current
DESCRIPTION
"Information on a particular relationship between two sub-layers,
specifying that one sub-layer runs on 'top' of the other sub-layer.
Each sub-layer corresponds to a conceptual row in the ifTable."
INDEX { ifStackHigherLayer, ifStackLowerLayer }
::= { ifStackTable 1 }
IfStackEntry ::=
SEQUENCE {
ifStackHigherLayer
ifStackLowerLayer
ifStackStatus
}
Integer32,
Integer32,
RowStatus
70
RFC 2233: tabella ifStackTable: oggetti colonna
ifStackHigherLayer OBJECT-TYPE
SYNTAX
Integer32
MAX-ACCESS not-accessible
STATUS
current
DESCRIPTION
"The value of ifIndex corresponding to the higher sub-layer of the
relationship,
• i.e., the sub-layer which runs on 'top' of the sub-layer
identified by the corresponding instance of ifStackLowerLayer.
 If there is no higher sub-layer (below the internetwork layer),
then this object has the value 0."
::= { ifStackEntry 1 }
 Notare che questo oggetto non e' di per se stesso accessibile :
il suo valore e' deducibile dal nome dell'oggetto ifStackStatus della
stessa riga
71
RFC 2233: tabella ifStackTable: oggetti colonna
ifStackLowerLayer OBJECT-TYPE
SYNTAX
Integer32
MAX-ACCESS not-accessible
STATUS
current
DESCRIPTION
"The value of ifIndex corresponding to the lower sub-layer of the
relationship,
• i.e., the sub-layer which runs 'below' the sub-layer identified
by the corresponding instance of ifStackHigherLayer.
 If there is no lower sub-layer, then this object has the value 0."
::= { ifStackEntry 2 }
 Notare che questo oggetto non e' di per se stesso accessibile :
il suo valore e' deducibile dal nome dell'oggetto ifStackStatus della
stessa riga
72
RFC 2233: tabella ifStackTable: oggetti colonna
ifStackStatus OBJECT-TYPE
SYNTAX
RowStatus
MAX-ACCESS read-create
STATUS
current
DESCRIPTION
"The status of the relationship between two sub-layers.
• Changing the value of this object from 'active' to 'notInService'
or 'destroy' will likely have consequences up and down the
interface stack.
• Thus, write access to this object is likely to be inappropriate for
some types of interfaces, and many implementations will
choose not to support write-access for any type of interface."
::= { ifStackEntry 3 }
73
RFC 2233: oggetti semplici
ifStackLastChange OBJECT-TYPE
SYNTAX
TimeTicks
MAX-ACCESS read-only
STATUS
current
DESCRIPTION
"The value of sysUpTime at the time of the last change of the
(whole) interface stack.
• A change of the interface stack is defined to be any creation,
deletion, or change in value of any instance of ifStackStatus.
• If the interface stack has been unchanged since the last reinitialization of the local network management subsystem, then
this object contains a zero value."
::= { ifMIBObjects 6 }
74
RFC 2233: tabella ifRcvAddressTable
ifRcvAddressTable OBJECT-TYPE
SYNTAX
SEQUENCE OF IfRcvAddressEntry
MAX-ACCESS not-accessible
STATUS
current
DESCRIPTION
"This table contains an entry for each address (broadcast,
multicast, or uni-cast) for which the system will receive
packets/frames on a particular interface, except as follows:
• for an interface operating in promiscuous mode, entries are only
required for those addresses for which the system would receive frames
were it not operating in promiscuous mode.
• for 802.5 functional addresses, only one entry is required, for the
address which has the functional address bit ANDed with the bit mask
of all functional addresses for which the interface will accept frames.
A system is normally able to use any unicast address which
corresponds to an entry in this table as a source address."
::= { ifMIBObjects 4 }
75
RFC 2233: tabella ifRcvAddressTable
ifRcvAddressEntry OBJECT-TYPE
SYNTAX
IfRcvAddressEntry
MAX-ACCESS not-accessible
STATUS
current
DESCRIPTION
"A list of objects identifying an address for which the system will
accept packets/frames on the particular interface identified by the
index value ifIndex."
INDEX { ifIndex, ifRcvAddressAddress }
-- N.B.: ifRcvAddressAddress non e' IMPLIED
::= { ifRcvAddressTable 1 }
IfRcvAddressEntry ::=
SEQUENCE {
ifRcvAddressAddress PhysAddress,
ifRcvAddressStatus RowStatus,
ifRcvAddressType
INTEGER
}
76
RFC 2233: tabella ifRcvAddressTable
notare che:
•
l'object-type ifIndex non e' una colonna della tabella!
•
Non e' possibile utilizzare la clausola AUGMENTS { ifEntry }
perche' ci possono essere piu' righe di ifRcvAddressTable associate
ad una unica riga di ifTable
•
infatti ci possono essere
• piu' indirizzi diversi attivi su una stessa interfaccia
• piu' indirizzi uguali attivi su interfacce diverse
•
l'univocita' dell'indiciamento e l'informazione di associazione
interfaccia-indirizzo sono date indiciando le righe della tabella sia
con ifIndex che con ifRcvAddressAddress
•
ifRcvAddressAddress stesso non e’ accessibile esplicitamente ma
solo tramite il suo uso in quanto indice, cioe’ come (ultimo) suffisso
del nome OBJECT IDENTIFIER degli oggetti della tabella
effettivamente accessibili
77
RFC 2233: tabella ifRcvAddressTable: oggetti colonna
ifRcvAddressAddress OBJECT-TYPE
SYNTAX
PhysAddress
MAX-ACCESS not-accessible
STATUS
current
DESCRIPTION
"An address for which the system will accept packets/frames on
this entry's interface."
::= { ifRcvAddressEntry 1 }
ifRcvAddressStatus OBJECT-TYPE
SYNTAX
RowStatus
MAX-ACCESS read-create
STATUS
current
DESCRIPTION
"This object is used to create and delete rows in the
ifRcvAddressTable."
::= { ifRcvAddressEntry 2 }
78
RFC 2233: tabella ifRcvAddressTable: oggetti colonna
ifRcvAddressType OBJECT-TYPE
SYNTAX
INTEGER { other(1),
volatile(2),
nonVolatile(3) }
MAX-ACCESS read-create
STATUS
current
DESCRIPTION "
• This object has the value nonVolatile(3) for those entries in the
table which are valid and will not be deleted by the next restart of
the managed system.
• Entries having the value volatile(2) are valid and exist, but have
not been saved, so that will not exist after the next restart of the
managed system.
• Entries having the value other(1) are valid and exist but are not
classified as to whether they will continue to exist after the next
restart."
DEFVAL { volatile }
::= { ifRcvAddressEntry 3 }
79
RFC 2233: gruppi di conformita'
ifStackGroup2 OBJECT-GROUP
OBJECTS { ifStackStatus, ifStackLastChange }
STATUS current
DESCRIPTION
"A collection of objects providing information on the
layering of MIB-II interfaces."
::= { ifGroups 11 }
ifRcvAddressGroup OBJECT-GROUP
OBJECTS { ifRcvAddressStatus, ifRcvAddressType }
STATUS current
DESCRIPTION
"A collection of objects providing information on the
multiple addresses which an interface receives."
::= { ifGroups 7 }
 N.B.: sono citati solo oggetti con MAX-ACCESS diverso da notaccessible
80
RFC 2233: module compliance
1
ifCompliance2 MODULE-COMPLIANCE
STATUS current
DESCRIPTION
"The compliance statement for SNMPv2 entities which have network
interfaces"
MODULE -- this module
MANDATORY-GROUPS { ifGeneralInformationGroup, ifStackGroup2,
ifCounterDiscontinuityGroup }
GROUP
ifFixedLengthGroup
DESCRIPTION
"This group is mandatory for all network interfaces which are characteroriented or transmit data in fixed-length transmission units."
GROUP
ifHCFixedLengthGroup
DESCRIPTION
"This group is mandatory only for those network interfaces which are
character-oriented or transmit data in fixed-length transmission units,
and for which the value of the corresponding instance of ifSpeed is
greater than 20,000,000 bits/second."
81
RFC 2233: module compliance
GROUP
2
ifPacketGroup
DESCRIPTION
"This group is mandatory for all network interfaces which are
packet-oriented."
GROUP
ifHCPacketGroup
DESCRIPTION
"This group is mandatory only for those network interfaces which
are packet-oriented and for which the value of the corresponding
instance of ifSpeed is greater than 650,000,000 bits/second."
GROUP
ifRcvAddressGroup
DESCRIPTION
"The applicability of this group MUST be defined by the mediaspecific MIBs.
Media-specific MIBs must define the exact meaning, use, and
semantics of the addresses in this group."
82
RFC 2233: module compliance
OBJECT
3
ifLinkUpDownTrapEnable
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required."
OBJECT
ifPromiscuousMode
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required."
OBJECT
ifStackStatus
SYNTAX
INTEGER { active(1) } -- subset of RowStatus
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required, and only one of the six
enumerated values for the RowStatus textual convention
need be supported, specifically: active(1)."
-- sostanzialmente ci dice che non e' necessario supportare lo stato
-- notInService. Infatti, lo stato notReady in questo caso non ha
-- alcun senso (esercizio: spiegare il perche')
83
RFC 2233: module compliance
OBJECT
4
ifAdminStatus
SYNTAX
INTEGER { up(1), down(2) }
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required,
nor is support for the value testing(3)."
OBJECT
ifAlias
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required."
::= { ifCompliances 2 }
84
RFC 2233: The Interfaces Group MIB using SMIv2
Test
•
Il supporto della gestione di test sulle interfacce e' definito come
opzionale in RFC 2233.
•
In realta' la tabella ifTestTable che modella questa funzionalita' ha
STATUS deprecated, e tutto quanto riferito ai test in precedenti
versioni del documento e' stato rimosso
•
tuttavia il testo della MIB dichiara in un commento:
-- The Interface Test Table
--- This group of objects is optional. However, a media-specific
-- MIB may make implementation of this group mandatory.
•
In questo momento e' in via di sviluppo una nuova MIB per il
supporto del Test Management: questa nuova MIB dovrebbe
rendere definitivamente obsoleta la ifTestTable di ifMIB
85
MIB per tipi specifici di interfaccia
•
Da RFC 2233:
The 'interfaces' group provides the means for additional managed
objects specific to particular types of network interface (e.g., a
specific medium such as Ethernet) to be defined as extensions to
the 'interfaces' group for media-specific management.
•
RFC 2233 specifica anche le linee guida che devono essere seguite
nella definizione di MIB per interfacce specifiche. Tra le altre cose
viene richiesto alla MIB specifica di
•
indicare a quale/i valori di ifType si applica
•
indicare se per il tipo di interfaccia supportato e' significativo
l'uso della ifRcvAddressTable
•
indicare il modello di layering per quel tipo di interfaccia
•
chiarire le possibili ambiguita' semantiche presenti nella
definizione nella MIB generica delle interfacce
86
RFC 2665: MIB for Ethernet-like Interface Types
•
Questa MIB modella (e' applicabile a) tutti i tipi di interfacce Ethernetlike (o IEEE 802.3 e derivati-like):
• da 3Mb/s a 1 Gb/s
• con funzionamento half-duplex o full-duplex
•
La sua relazione con la MIB generica delle interfacce e' definita
esplicitamente (come prescritto da RFC 2233) nella sez. 3.2 dell'RFC
•
sez. 3.2.1 definisce che le interfacce Ethernet non sono layerizzate (il
sub-layer di MAC-control, in particolare, anche se modellato
esplicitamente non viene rappresentato tramite una riga della tabella
delle interfacce)
•
RFC 2665 lascia tuttavia aperta la strada alla introduzione di sublayer in caso di disponibilita' di MIB per IEEE 802.2 (LLC) e
transceivers.
• Da RFC 2665: "One could foresee the development of an 802.2
and enet-transceiver MIB. They could be higher and lower
sublayers, respectively."
• La MIB per i MAU IEEE 802.3 e' disponibile (RFC 2668)
87
RFC 2665: MIB for Ethernet-like Interface Types
 Struttura layerizzata di una sottorete IEEE 802
LLC
MAC CONTROL
MAC
normalmente non implementato
opzionale
Gestiti da
RFC 2665
Physical
MAU
88
RFC 2665: MIB for Ethernet-like Interface Types
•
sez. 3.2.4 definisce la necessita' da parte delle interfacce Ethernetlike di utilizzare la tabella ifRcvAddressTable di ifMIB
• infatti una interfaccia Ethernet puo' ricevere frame sulla base
di uno o piu' indirizzi individuali, multicat, broadcast (un solo
indirizzo broadcast)
• quale indirizzo registrare nell'oggetto colonna ifPhysAddress di
ifTable nel caso ci siano piu' indirizzi individuali?
RFC 2665:
 This object contains the IEEE 802.3 address which is
placed in the source-address field of any Ethernet frames
•
•
•
In a system where there are several such addresses the
designer has a tougher choice. The address chosen should be
the one most likely to be of use to network management (e.g.
the address placed in ARP responses for systems which are
primarily IP systems).
If the designer truly can not chose, use of the factory-provided
ROM address is suggested.
If the address can not be determined, an octet string of zero
length should be returned.
89
RFC 2665: MIB for Ethernet-like Interface Types
•
sez. 3.2.7 definisce le linee guida per applicare gli oggetti della MIB
generica delle interfacce ad interfacce Ethernet-like.
•
Notare che il valore dell'oggetto colonna ifMTU di ifTable
dipende dal fatto che l'interfaccia sia utilizzata come pura
Ethernet (secondo IEEE 802 equivalente ad un layer MAC) o
come IEEE 802.2 (LLC)
•
poiche' non esiste una layerizzazione esplicita (non esiste
nemmeno una MIB IEEE 802.2), permane l'ambiguita', che
pero' e' risolta in pratica dal fatto che
•
in realta' una interfaccia Ethernet offre si' un servizio
multiprotocollo (puro Ethernet ma anche MAC layer IEEE
802.3)
•
ma mai di norma un servizio IEEE 802.2 (CL o CO)
90
RFC 2665: MIB for Ethernet-like Interface Types
•
le linee guida per utilizzare l'oggetto ifSpeed della MIB generica
delle interfacce (specifica analoga si applica a ifHighSpeed).
•
"The current operational speed of the interface in bits per second.
•
For current ethernet-like interfaces, this will be equal to 1,000,000 (1
million), 10,000,000 (10 million), 100,000,000 (100 million), or
1,000,000,000 (1 billion).
•
If the interface implements auto-negotiation, auto-negotiation is
enabled for this interface, and the interface has not yet negotiated to
an operational speed, this object SHOULD reflect the maximum
speed supported by the interface.
•
Note that this object MUST NOT indicate a doubled value when
operating in full-duplex mode. It MUST indicate the correct line speed
regardless of the current duplex mode.
•
The duplex mode of the interface may be determined by examining
either the dot3StatsDuplexStatus object in this MIBmodule, or the
ifMauType object in the 802.3 MAU MIB."
91
RFC 2665: MIB for Ethernet-like Interface Types
•
relazione con la MIB MAU
RFC 2665:
•
Support for the mauModIfCompl2 compliance statement of the
MAU-MIB (RFC 2668) is REQUIRED for Ethernet-like
interfaces.
•
This MIB is needed in order to allow applications
•
•
to determine the current MAU type in use by the interface,
and
•
to control autonegotiation and duplex mode for the
interface.
Implementing this MIB module without implementing the MAUMIB would leave applications with no standard way to
determine the media type in use, and no standard way to
control the duplex mode of the interface.
92
RFC 2665: MIB for Ethernet-like Interface Types
transmission =
1.3.6.1.2.1.10
dot3 (7)
dot3StatsTable (2)
dot3StatsEntry (1)
dot3StatsIndex (1)
...
dot3StatsDuplexStatus (19)
dot3CollTable (5)
dot3CollEntry (1)
dot3CollCount (2)
dot3CollFrequencies (3)
dot3ControlTable (5)
dot3ControlEntry (1)
dot3ControlFunctionsSupported (1)
dot3ControlInUnknownOpcodes (2)
dot3PauseTable (10)
dot3PauseEntry (1)
dot3PauseAdminMode (1)
dot3PauseOperMode (2)
...
93
RFC 2665: MIB for Ethernet-like Interface Types
dot3StatsTable OBJECT-TYPE
SYNTAX SEQUENCE OF Dot3StatsEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"Statistics for a collection of ethernet-like interfaces attached to a
particular system. There will be one row in this table for each
ethernet-like interface in the system."
::= { dot3 2 }
dot3StatsEntry OBJECT-TYPE
SYNTAX Dot3StatsEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"Statistics for a particular interface to an ethernet-like medium."
INDEX
{ dot3StatsIndex }
::= { dot3StatsTable 1 }
94
RFC 2665: MIB for Ethernet-like Interface Types
Dot3StatsEntry ::=
SEQUENCE {
dot3StatsIndex
InterfaceIndex,
dot3StatsAlignmentErrors
dot3StatsFCSErrors
dot3StatsSingleCollisionFrames
dot3StatsMultipleCollisionFrames
dot3StatsSQETestErrors
dot3StatsDeferredTransmissions
dot3StatsLateCollisions
dot3StatsExcessiveCollisions
dot3StatsInternalMacTransmitErrors
dot3StatsCarrierSenseErrors
dot3StatsFrameTooLongs
dot3StatsInternalMacReceiveErrors
Counter32,
Counter32,
Counter32,
Counter32,
Counter32,
Counter32,
Counter32,
Counter32,
Counter32,
Counter32,
Counter32,
Counter32,
dot3StatsEtherChipSet
OBJECT IDENTIFIER,
dot3StatsSymbolErrors
Counter32,
dot3StatsDuplexStatus
INTEGER
}
95
RFC 2665: MIB for Ethernet-like Interface Types
dot3StatsIndex OBJECT-TYPE
SYNTAX
InterfaceIndex
MAX-ACCESS read-only
STATUS
current
DESCRIPTION
"An index value that uniquely identifies an interface to an ethernetlike medium.
 The interface identified by a particular value of this index is
the same interface as identified by the same value of ifIndex."
REFERENCE "RFC 2233, ifIndex"
::= { dot3StatsEntry 1 }
96
RFC 2665: MIB for Ethernet-like Interface Types
dot3StatsEtherChipSet OBJECT-TYPE
SYNTAX
OBJECT IDENTIFIER
MAX-ACCESS read-only
STATUS
deprecated
DESCRIPTION "
This object contains an OBJECT IDENTIFIER which identifies the chipset
used to realize the interface.
• Ethernet-like interfaces are typically built out of several different
chips. The MIB implementor is presented with a decision of which
chip to identify via this object.
• The implementor should identify the chip which is usually called the
Medium Access Control chip.
• If no such chip is easily identifiable, the implementor should identify
the chip which actually gathers the transmit and receive statistics
and error indications.
• This would allow a manager station to correlate the statistics and
the chip generating them, giving it the ability to take into account
any known anomalies in the chip."
::= { dot3StatsEntry 17 }
97
RFC 2665: MIB for Ethernet-like Interface Types
dot3StatsDuplexStatus OBJECT-TYPE
SYNTAX
INTEGER { unknown(1), halfDuplex(2), fullDuplex(3) }
MAX-ACCESS read-only
STATUS
current
DESCRIPTION
"The current mode of operation of the MAC entity.
•
•
•
•
•
'unknown' indicates that the current duplex mode could not be
determined.
Management control of the duplex mode is accomplished through the
MAU MIB (infatti l'oggetto dot3StatsDuplexStatus ha MAX-ACCESS
read-only).
When an interface does not support autonegotiation, or when
autonegotiation is not enabled, the duplex mode is controlled using
ifMauDefaultType.
When autonegotiation is supported and enabled, duplex mode is
controlled using ifMauAutoNegAdvertisedBits.
In either case, the currently operating duplex mode is reflected both
in this object and in ifMauType. ..."
REFERENCE "[IEEE 802.3 Std.], 30.3.1.1.32, aDuplexStatus."
::= { dot3StatsEntry 19 }
98
RFC 2665: MIB for Ethernet-like Interface Types
dot3StatsDuplexStatus
DESCRIPTION "
-- continua
•
Note that this object provides redundant information with
ifMauType.
•
Normally, redundant objects are discouraged.
•
However, in this instance, it allows a management application
to determine the duplex status of an interface without having
to know every possible value of ifMauType.
•
This was felt to be sufficiently valuable to justify the
redundancy."
99
RFC 2665: MIB for Ethernet-like Interface Types
dot3ControlTable OBJECT-TYPE
SYNTAX
SEQUENCE OF Dot3ControlEntry
MAX-ACCESS not-accessible
STATUS
current
DESCRIPTION
"A table of descriptive and status information about the MAC
Control sublayer on the ethernet-like interfaces attached to a
particular system.
• There will be one row in this table for each ethernet-like
interface in the system which implements the MAC Control
sublayer.
• If some, but not all, of the ethernet-like interfaces in the
system implement the MAC Control sublayer, there will be
fewer rows in this table than in the dot3StatsTable."
::= { dot3 9 }
100
RFC 2665: MIB for Ethernet-like Interface Types
dot3ControlEntry OBJECT-TYPE
SYNTAX
Dot3ControlEntry
MAX-ACCESS not-accessible
STATUS
current
DESCRIPTION
"An entry in the table, containing information about the MAC
Control sublayer on a single ethernet-like interface."
INDEX
{ dot3StatsIndex }
-- N.B.: non e' AUGMENTS {dot3StatsEntry }
-- infatti non necessariamente c'e' una riga di dot3ControlTable per
-- ogni riga di dot3StatsTable.
-- pero' si usa la colonna indice di dot3StatsTable anche qui!
::= { dot3ControlTable 1 }
Dot3ControlEntry ::=
SEQUENCE {
dot3ControlFunctionsSupported
dot3ControlInUnknownOpcodes
}
BITS,
Counter32
101
RFC 2665: MIB for Ethernet-like Interface Types
dot3ControlFunctionsSupported OBJECT-TYPE
SYNTAX
BITS { pause(0) } -- 802.3x flow control
MAX-ACCESS read-only
STATUS
current
DESCRIPTION
"A list of the possible MAC Control functions implemented for this
interface."
REFERENCE
"[IEEE 802.3 Std.], 30.3.3.2, aMACControlFunctionsSupported."
::= { dot3ControlEntry 1 }
102
RFC 2665: MIB for Ethernet-like Interface Types
dot3PauseTable OBJECT-TYPE
SYNTAX
SEQUENCE OF Dot3PauseEntry
MAX-ACCESS not-accessible
STATUS
current
DESCRIPTION
"A table of descriptive and status information about the MAC
Control PAUSE function on the ethernet-like interfaces attached to
a particular system.
• There will be one row in this table for each ethernet-like
interface in the system which supports the MAC Control
PAUSE function (i.e., the 'pause' bit in the corresponding
instance of dot3ControlFunctionsSupported is set).
• If some, but not all, of the ethernet-like interfaces in the
system implement the MAC Control PAUSE function (for
example, if some interfaces only support half-duplex), there
will be fewer rows in this table than in the dot3StatsTable."
::= { dot3 10 }
103
RFC 2665: MIB for Ethernet-like Interface Types
dot3PauseEntry OBJECT-TYPE
SYNTAX
Dot3PauseEntry
MAX-ACCESS not-accessible
STATUS
current
DESCRIPTION
"An entry in the table, containing information about the MAC
Control PAUSE function on a single ethernet-like interface."
INDEX
{ dot3StatsIndex }
::= { dot3PauseTable 1 }
Dot3PauseEntry ::=
SEQUENCE {
dot3PauseAdminMode
dot3PauseOperMode
dot3InPauseFrames
dot3OutPauseFrames
}
INTEGER,
INTEGER,
Counter32,
Counter32
104
RFC 2665: MIB for Ethernet-like Interface Types
dot3PauseAdminMode OBJECT-TYPE
SYNTAX
INTEGER { disabled(1), enabledXmit(2),
enabledRcv(3), enabledXmitAndRcv(4) }
MAX-ACCESS read-write
STATUS
current
DESCRIPTION
"This object is used to configure the default administrative PAUSE mode for this
interface. This object represents the administratively-configured PAUSE mode for
this interface. Attempts to set the object to 'enabledXmit(2)' or 'enabledRcv(3)' will
fail on interfaces that do not support operation at greater than 100 Mb/s. The value
of this object is ignored when the interface is not operating in full-duplex mode.
If auto-negotiation is not enabled or is not implemented for the active MAU
attached to this interface, the value of this object determines the operational
PAUSE mode of the interface whenever it is operating in full-duplex mode. In this
case, a set to this object will force the interface into the specified mode.
If auto-negotiation is implemented and enabled for the MAU attached to this
interface, the PAUSE mode for this interface is determined by auto-negotiation,
and the value of this object denotes the mode to which the interface will
automatically revert if/when auto-negotiation is later disabled. Note that when autonegotiation is running, administrative control of the PAUSE mode may be
accomplished using the ifMauAutoNegCapAdvertisedBits object in the MAU-MIB."
::= { dot3PauseEntry 1 }
105
RFC 2665: MIB for Ethernet-like Interface Types
dot3PauseOperMode OBJECT-TYPE
SYNTAX
INTEGER { disabled(1), enabledXmit(2),
enabledRcv(3), enabledXmitAndRcv(4) }
MAX-ACCESS read-only
STATUS
current
DESCRIPTION
"This object reflects the PAUSE mode currently in use on this
interface, as determined by either
1. the result of the auto-negotiation function or
2. if auto-negotiation is not enabled or is not implemented for
the active MAU attached to this interface, by the value of
dot3PauseAdminMode.
•
•
•
Interfaces operating at 100 Mb/s or less will never return
'enabledXmit(2)' or 'enabledRcv(3)'.
Interfaces operating in half-duplex mode will always return
'disabled(1)'.
Interfaces on which auto-negotiation is enabled but not yet
completed should return the value 'disabled(1)'."
::= { dot3PauseEntry 2 }
106
RFC 2665: MIB for Ethernet-like Interface Types
-- the Ethernet-like Collision Statistics group
-- Implementation of this group is optional; it is appropriate
-- for all systems which have the necessary metering
-- (e che funzionano in modalita' half duplex)
dot3CollTable OBJECT-TYPE
SYNTAX
SEQUENCE OF Dot3CollEntry
MAX-ACCESS not-accessible
STATUS
current
DESCRIPTION
"A collection of collision histograms for a particular set of
interfaces."
REFERENCE "[IEEE 802.3 Std.], 30.3.1.1.30, aCollisionFrames."
::= { dot3 5 }
107
RFC 2665: MIB for Ethernet-like Interface Types
dot3CollEntry OBJECT-TYPE
SYNTAX
Dot3CollEntry
MAX-ACCESS not-accessible
STATUS
current
DESCRIPTION
"A cell in the histogram of per-frame collisions for a particular
interface. An instance of this object represents the frequency of
individual MAC frames for which the transmission (successful or
otherwise) on a particular interface is accompanied by a particular
number of media collisions."
INDEX
{ ifIndex, dot3CollCount }
::= { dot3CollTable 1 }
Dot3CollEntry ::=
SEQUENCE {
dot3CollCount
INTEGER,
dot3CollFrequencies Counter32
}
108