Gestão de Redes e Sistemas Distribuídos
Monitorização remota – RMON
2003/2004
Teresa Maria Vazão
IST/INESC
Contactos:IST/Tagus-Park
Email: [email protected]
Tel: 214233242
Sumário
 Módulo II
•
•
•
•
•
•
•
Arquitectura de Gestão SNMP
• SNMPv1; MIB-II; SNMPv2
• RMON (cont)
• SNMPv3
Arquitectura de Gestão OSI/TMN
CORBA como Arquitectura de Gestão
Gestão baseada na WEB
JAVA como Arquitectura de Gestão
Gestão DMTF
Integração de Arquitecturas de Gestão
TMV - 2004
Gestão de Redes e Sistemas Distribuídos
2
RMON - Monitorização Remota
Grupo relativos alarmes, filtragem e captura de pacotes
Grupo alarm
Definição de valores de limiar para avaliação de QoS
• Limiar ultrapassado conduz à geração de alarme
• Uma só tabela - alarmTable
•
•
•
•
•
Identificação do valor da variável monitorizada
Periodo de amostragem
Características do valor de limiar (absoluto ou relativo)
Limiares superior e inferior
Alarmes a serem gerados pelos limiares superior e
inferior (indíces da tabela de eventos).
• Tabela indexada por : alarmIndex
TMV - 2004
Gestão de Redes e Sistemas Distribuídos
3
RMON - Monitorização Remota
AlarmEntry
alarmEntry OBJECT-TYPE
SYNTAX
AlarmEntry
MAX-ACCESS not-accessible
STATUS
current
DESCRIPTION
"A list of parameters that set up a periodic checking
for alarm conditions. For example, an instance of the
alarmValue object might be named alarmValue.8"
INDEX { alarmIndex }
::= { alarmTable 1 }
AlarmEntry ::= SEQUENCE {
alarmIndex
Integer32,
alarmInterval
Integer32,
alarmVariable
OBJECT IDENTIFIER,
alarmSampleType
INTEGER,
alarmValue
Integer32,
alarmStartupAlarm
INTEGER,
alarmRisingThreshold
Integer32,
alarmFallingThreshold
Integer32,
alarmRisingEventIndex
Integer32,
alarmFallingEventIndex
Integer32,
alarmOwner
OwnerString,
alarmStatus
EntryStatus
}
TMV - 2004
Gestão de Redes e Sistemas Distribuídos
4
RMON - Monitorização Remota
AlarmEntry
alarmEntry OBJECT-TYPE
SYNTAX
AlarmEntry
MAX-ACCESS not-accessible
STATUS
current
DESCRIPTION
"A list of parameters that set up a periodic checking
for alarm conditions. For example, an instance of the
alarmValue object might be named alarmValue.8"
INDEX { alarmIndex }
::= { alarmTable 1 }
AlarmEntry ::= SEQUENCE {
alarmIndex
Integer32,
alarmInterval
Integer32, //Duração em segundos da amonstragem
alarmVariable
OBJECT IDENTIFIER,
alarmSampleType
INTEGER,
//Variável a ser amostrads
alarmValue
Integer32, //Valor absoluto ou relativo
alarmStartupAlarm
INTEGER,
//Valor que gerou o alarme
alarmRisingThreshold
Integer32, //Limiar superior
alarmFallingThreshold
Integer32, //Limiar inferior
alarmRisingEventIndex
Integer32, //Evento do limiar superior
alarmFallingEventIndex
Integer32, //Evento do limiar inferior
alarmOwner
OwnerString,
alarmStatus
EntryStatus
}
TMV - 2004
Gestão de Redes e Sistemas Distribuídos
5
RMON - Monitorização Remota
Ainda sobre os alarmes
TMV - 2004
Gestão de Redes e Sistemas Distribuídos
6
RMON - Monitorização Remota
Grupo relativos alarmes, filtragem e captura de pacotes
Grupo filter
Selecção dos pacotes a serem monitorizados
• dataFilter - selecção de pacotes com base em padrões
• statusFilter - selecção de pacotes com base em estado
• combinação lógica de ambos (AND ou OR)
• tabela indexada por: filterIndex
• associação de um conjunto de filtros a um canal (channelIfIndex)
• channel -conjunto de pacotes que satisfaz os critérios de
filtragem (acceptMatched) ou que não satisfaz os critérios de
filtragem (acceptFailed)
•
•
•
•
TMV - 2004
mantêm-se um contador de pacotes
tem um estado associado (on ou off)
pode ser configurado para gerar um evento ou o pacote ser capturado
tabela indexada por: channelIndex
Gestão de Redes e Sistemas Distribuídos
7
RMON - Monitorização Remota
filterPktDataOffset
Aplicação de Filtros
PACOTE
filterPktData
Dados a comparar
Bitwise XNOR
Bitwise AND
filterPktDataMask
Só bits a 1 é que
são analisados !
filterPktDataNotMask
Bitwise NOT
Igualdade
Bitwise AND
TMV - 2004
Gestão de Redes e Sistemas Distribuídos
Desigualdade
Bitwise AND
8
RMON - Monitorização Remota
filterEntry
filterEntry OBJECT-TYPE
SYNTAX
FilterEntry
MAX-ACCESS not-accessible
STATUS
current
DESCRIPTION
"A set of parameters for a packet filter applied on a
particular interface. As an example, an instance of the
filterPktData object might be named filterPktData.12"
INDEX { filterIndex }
::= { filterTable 1 }
FilterEntry ::= SEQUENCE {
filterIndex
Integer32,
filterChannelIndex
Integer32,
filterPktDataOffSet
Integer32, //Posição onde se deve iniciar a procura
filterPktData
OCTET STRING, //Bits que se devem procurar
filterPktDataMask
OCTET STRING, //Máscara que identifica os bits a
//analisar
filterPktDataNotMask
OCTET STRING, //Bit=0=>Igualdade; Bit=1=>inverso
filterPktStatus
Integer32,
filterPktStatusMask
Integer32,
filterPktStatusNotMask
Integer32,
filterOwner
OwnerString,
filterStatus
EntryStatus
}
TMV - 2004
Gestão de Redes e Sistemas Distribuídos
9
RMON - Monitorização Remota
Aplicação de Canais
Estado do
Pacote
Pacote
DataFilter (i, 1)
Resultado
AND
StatusFilter (i, 1)
OR
DataFilter (i, Ni)
AND
StatusFilter (i, Ni)
Condições:
• channelDataControl = on ; pode ser gerado evento; pacote pode ser capturado
• channelMatches incrementado por cada pacote que passa o filtro
TMV - 2004
Gestão de Redes e Sistemas Distribuídos
10
RMON - Monitorização Remota
channelEntry
channelEntry OBJECT-TYPE
SYNTAX
ChannelEntry
MAX-ACCESS not-accessible
STATUS
current
DESCRIPTION
"A set of parameters for a packet channel applied on a
particular interface. As an example, an instance of the
channelMatches object might be named channelMatches.3"
INDEX { channelIndex }
::= { channelTable 1 }
ChannelEntry ::= SEQUENCE {
channelIndex
channelIfIndex
channelAcceptType
channelDataControl
channelTurnOnEventIndex
channelTurnOffEventIndex
channelEventIndex
channelEventStatus
channelMatches
channelDescription
channelOwner
channelStatus
}
TMV - 2004
Gestão
Integer32,
Integer32,
INTEGER,
//Matched ou Failed
INTEGER,
//On (dados fluem no canal); Off (não)
Integer32, //Evento q. põe channelDataControl on
Integer32, //Evento q. Põe channelDataControl off
Integer32, //Índice do evento a ser gerado
INTEGER, //eventReady,eventFired,eventAlwaysReady
Counter32, //Nº de vezes que ocorreu um match
DisplayString,
OwnerString,
EntryStatus
de Redes e Sistemas Distribuídos
11
RMON - Monitorização Remota
Uma pausa para descobrirem ….
 Filtrar os pacotes UDP que chegam ao porto 160 da máquina cujo
endereço IP é 146.193.1.144 e que está ligada a uma rede Ethernet.
 Contar o número de pacotes UDP recebidos nesse canal
•Criar uma linha na tabela de filtros
•Criar um canal
•Contar o número de ocorrências do canal
TMV - 2004
Gestão de Redes e Sistemas Distribuídos
12
RMON - Monitorização Remota
Aplicação de Filtros - exemplo
Inicio do campo protocolo
PACOTE
Valor de:
Protocolo = UDP
Porto (UDP)
DA
filterPktData
Bitwise XNOR
Bitwise AND
filterPktDataMask
Posição de:
Protocolo, Porto, DA = 1
filterPktDataNotMask
Bitwise NOT
Igualdade = 0
Bitwise AND
TMV - 2004
Gestão de Redes e Sistemas Distribuídos
Bitwise AND
13
RMON - Monitorização Remota
MIB-RMON - Aplicação de Filtros
FilterEntry ::= SEQUENCE {
filterIndex
filterChannelIndex
filterPktDataOffset
filterPktData
filterPktDataMask
filterPktDataNotMask
filterPktStatus
filterPktStatusMask
filterPktStatusNotMask
filterOwner
filterStatus
}
TMV - 2004
INTEGER (1..65535),
INTEGER (1..65535),
INTEGER,
OCTET STRING,
OCTET STRING,
OCTET STRING,
INTEGER,
INTEGER,
INTEGER,
OwnerString,
EntryStatus
Gestão de Redes e Sistemas Distribuídos
14
RMON - Monitorização Remota
MIB-RMON - Aplicação de Filtros
Cabeçalho das Tramas Ethernet
0
16
47
Endereço MAC de Destino
Endereço MAC de Origem
Tipo de Protocolo
Campo de Informação
Cabeçalho dos Pacotes IP
0
23 bytes
16
31
Versão
IHL
Tipo de Serviço
Comprimento Total do Datagrama
Flags
Identificação para reassemblagem
Offset do segment
Time to Live
Protocolo
Checksum do Cabeçalho
Endereço IP de Origem
Endereço IP de Destino
Cabeçalho do Pacote UDP
0
31
Porto de Origem
Comprimento
Porto de Destino
Checksum
Campo de Informação
TMV - 2004
Gestão de Redes e Sistemas Distribuídos
15
RMON - Monitorização Remota
MIB-RMON - Aplicação de Filtros
 Criar uma linha, na tabela de filtros
SetRequest (X.Y.filterStatus[1]= createRequest (2)
SetRequets (X.Y.filterChannelIndex[1] = 1 )
 Programar o filtro
Ver em seguida ……………………………………………………………………………………….
 Terminar a criação do filtro e activá-lo
SetRequest (X.Y.filterStatus[1] = valid (1))
NOTA: X = iso.org.dod.internet.mgmt.mib-2.rmon
Y = filter.filterTable.filterEntry
TMV - 2004
Gestão de Redes e Sistemas Distribuídos
16
RMON - Monitorização Remota
MIB-RMON - Aplicação de Filtros
 Programar o filtro
•
Ponto inicial da análise: identificador do protocolo
SetRequest (X.Y.filterPktDataOffset[1] = 23
 Programar o filtro
•
Os dados que se vão comparar com os pacotes de entrada:
• IP Dest = 146.193.1.144  92:c1:1:90
• Port=160  a0
• Protocolo = UDP = 17  11
SetRequest (X.Y.filterPktData[1]=
11:00:00:00:00:00:00:92:c1:1:90:00:00:00:00:a0
TMV - 2004
Gestão de Redes e Sistemas Distribuídos
17
RMON - Monitorização Remota
MIB-RMON - Aplicação de Filtros
 Programar o filtro
•
A máscara que vai ser aplicada no processo de comparação
(só os bits com 1 vão ser analisados)
SetRequest (X.Y.filterPktDataMask [1] =
ff:00:00:00:00:00:00:ff:ff:ff:ff:00:00:ff:ff)
 Programar o filtro
•
Indicação se se pretende obter uma igualdade (0) ou desigualdade (1)
SetRequest (X.Y.filterPktDataNotMask [1] =
00:00:00:00:00:00:00:00:00:00:00:00:00:00:00)
TMV - 2004
Gestão de Redes e Sistemas Distribuídos
18
RMON - Monitorização Remota
MIB-RMON - Aplicação de canais
 Criar uma linha, na tabela de canais
SetRequest (X.Z.channelStatus[1]= createRequest (2)
 Programar o canal
SetRequest (X.Z.channelAcceptType[1]= acceptMatched(1))
 Terminar a criação do canal e activá-lo
SetRequest (X.Z.channelStatus[1] = valid (1))
 Obter valores da contagem
GetRequest (X.Z.channelMatches[1])
NOTA: X = iso.org.dod.internet.mgmt.mib-2.rmon
Z = filter.channelTable.channelEntry
TMV - 2004
Gestão de Redes e Sistemas Distribuídos
19
RMON - Monitorização Remota
Grupo relativos alarmes, filtragem e captura de pacotes
Grupo packet Capture
Selecção dos pacotes a serem capturados de um dos
canais associados aos filtros
• Tabela de Controlo - bufferControlTable
• Canal objecto de captura
• Parâmetros da tabela de dados
• tipo de acção a realizar quando o buffer estiver cheio, dimensão
máxima da (parte) de pacote a capturar , tamanho do buffer
• Tabela de Dados - captureBufferTable:
• (partes) de pacotes capturados, dimensão do pacote real,
instante de captura
• tabela indexada por: captureBufControlInd + captureBufInd
TMV - 2004
Gestão de Redes e Sistemas Distribuídos
20
RMON - Monitorização Remota
bufferControlEntry
bufferControlEntry OBJECT-TYPE
SYNTAX
BufferControlEntry
MAX-ACCESS not-accessible
STATUS
current
DESCRIPTION
"A set of parameters that control the collection of a stream
of packets that have matched filters. As an example, an
instance of the bufferControlCaptureSliceSize object might
be named bufferControlCaptureSliceSize.3"
INDEX { bufferControlIndex }
::= { bufferControlTable 1 }
BufferControlEntry ::= SEQUENCE {
bufferControlIndex
Integer32,
bufferControlChannelIndex
Integer32, //Id. canais que originam pacotes
bufferControlFullStatus
INTEGER,
//spaceAvailable ou full
bufferControlFullAction
INTEGER,
//lockWhenFull -> full
bufferControlCaptureSliceSize
Integer32, //Nº máx. de octetos capturados/pacote
bufferControlDownloadSliceSize
Integer32, //N máx. de octetos/pacote lidos (SNMP)
bufferControlDownloadOffset
Integer32, //Offset do 1º octeto lido (SNMP)
bufferControlMaxOctetsRequested
Integer32, //Nº máx. de octetos do buffer (pedido)
bufferControlMaxOctetsGranted
Integer32, //Nº máx. de octectos do buffer (dado)
bufferControlCapturedPackets
Integer32, //Nº de octectos no buffer
bufferControlTurnOnTime
TimeTicks, //sysUpTime do início da captura
bufferControlOwner
OwnerString,
bufferControlStatus
EntryStatus
}
TMV - 2004
Gestão de Redes e Sistemas Distribuídos
21
RMON - Monitorização Remota
captureBufferEntry
captureBufferEntry OBJECT-TYPE
SYNTAX
CaptureBufferEntry
MAX-ACCESS not-accessible
STATUS
current
DESCRIPTION
"A packet captured off of an attached network. As an
example, an instance of the captureBufferPacketData
object might be named captureBufferPacketData.3.1783"
INDEX { captureBufferControlIndex, captureBufferIndex }
::= { captureBufferTable 1 }
CaptureBufferEntry ::= SEQUENCE
captureBufferControlIndex
captureBufferIndex
captureBufferPacketID
captureBufferPacketData
captureBufferPacketLength
captureBufferPacketTime
captureBufferPacketStatus
}
TMV - 2004
{
Integer32,
Integer32,
Integer32, //Nº de ordem de rxd dos pacotes
OCTET STRING, //Dados
Integer32, //Dimensão
Integer32, //tempo (ms) início da capt. do pacote
Integer32
Gestão de Redes e Sistemas Distribuídos
22
RMON - Monitorização Remota
Grupo relativos alarmes, filtragem e captura de pacotes
Grupo event
Definição de eventos
• Um evento é gerado por uma condição e pode causar uma
acção, causar o armazenamento em logs ou gerar um Trap.
• Tabela de Controlo - eventControlTable
• Descrição de um evento
• Parâmetros da tabela de dados
• tipo de evento (none, Log, snmp-trap, log-and-trap) , comunidade
do(s) Gestor(es) de destino do Trap
• Tabela de Dados - logTable:
• evento armazenado e tempo de geraçãp
• tabela indexada por: logEventIndex + logIndex
TMV - 2004
Gestão de Redes e Sistemas Distribuídos
23
RMON - Monitorização Remota
eventEntry
eventEntry OBJECT-TYPE
SYNTAX
EventEntry
MAX-ACCESS not-accessible
STATUS
current
DESCRIPTION
"A set of parameters that describe an event to be generated
when certain conditions are met. As an example, an instance
of the eventLastTimeSent object might be named
eventLastTimeSent.6"
INDEX { eventIndex }
::= { eventTable 1 }
EventEntry ::= SEQUENCE
eventIndex
eventDescription
eventType
eventCommunity
eventLastTimeSent
eventOwner
eventStatus
}
TMV - 2004
{
Integer32,
DisplayString,
INTEGER,
//None, log, snmptrap, log-and-trap
OCTET STRING, //String de comunidade para o trap
TimeTicks,
//sysUpTime em que o evento foi gerado
OwnerString,
EntryStatus
Gestão de Redes e Sistemas Distribuídos
24
RMON - Monitorização Remota
logEntry
logEntry OBJECT-TYPE
SYNTAX
LogEntry
MAX-ACCESS not-accessible
STATUS
current
DESCRIPTION
"A set of data describing an event that has been
logged. For example, an instance of the logDescription
object might be named logDescription.6.47"
INDEX { logEventIndex, logIndex }
::= { logTable 1 }
LogEntry ::= SEQUENCE {
logEventIndex
logIndex
logTime
logDescription
}
TMV - 2004
Integer32,
Integer32,
TimeTicks,
DisplayString
Gestão de Redes e Sistemas Distribuídos
25
RMON - Monitorização Remota
Uma pausa para descobrirem ….
 Definir a programação necessária à geração de Trap-snmp
quando o ritmo de chegada de octetos atingir 30Mb/s ?
Criar uma linha nas tabelas
• alarmTable para definir as condições de geração de
alarme
• eventTable para definir o alarme
TMV - 2004
Gestão de Redes e Sistemas Distribuídos
26
RMON - Monitorização Remota
Exemplo de aplicação
Criar a entrada na tabela de alarmes
SetRequest (X.Y.alarmStatus[1]= createRequest (2)
SetRequet (X.Y.alarmIndex[1] = 1 )
SetRequet (X.Y.alarmOwner[1] = ´RNL´ )
Programar alarme para medir pacotes à entrada e
gerar alarme quando o ritmo atingir 30Mb/s
SetRequest
SetRequest
SetRequest
SetRequest
SetRequest
SetRequest
(X.Y.alarm.Interval[1] = 60)
(X.Y.alarmVariable[1]= etherStatsOctets)
(X.Y.alarmSampleType[1]= 1)
(X.Y.alarmStartupAlarm[1]= 1)
(X.Y.alarmRisingThreshold[1]= 30*106/8)
(X.Y.alarmRisingEventIndex[1]= 2)
Activar entrada na tabela de alarmes
SetRequest (X.Y.alarmStatus[1] = valid (1))
NOTA: X = iso.org.dod.internet.mgmt.mib-2.rmon
Y = alarm.alarmTable.alarmEntry
TMV - 2004
Gestão de Redes e Sistemas Distribuídos
27
RMON - Monitorização Remota
Exemplo de aplicação
Criar a entrada na tabela de eventos
SetRequest (X.Y.eventStatus[2]= createRequest (2)
SetRequet (X.Y. eventIndex[2] = 2 )
SetRequet (X.Y. eventOwner[2] = ´RNL´ )
Programar o evento para gerar um Trap-SNMP a ser
recebido pelos Gestores da comunidade priv-rnl
SetRequest (X.Y.eventType[2] = snmp-trap (3))
SetRequest (X.Y.eventDescription[2]= ´Upper-threshold reached´)
SetRequest (X.Y.eventCommunity[2]= ´priv-rnl´)
Activar entrada na tabela de eventos
SetRequest (X.Y.eventStatus[1] = valid (1))
NOTA: X = iso.org.dod.internet.mgmt.mib-2.rmon
Y = alarm.eventTable.eventEntry
TMV - 2004
Gestão de Redes e Sistemas Distribuídos
28
Resumo da aula
• RMON
• Estudo de RMON 1 (cont)
TMV - 2004
Gestão de Redes e Sistemas Distribuídos
29
Download

aula11