gestão de redes e sistemas distribuídos
DESCRIPTION
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 - PowerPoint PPT PresentationTRANSCRIPT
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
TMV - 2004Gestão de Redes e Sistemas Distribuídos
2
????
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 - 2004Gestão de Redes e Sistemas Distribuídos
3
RMON - Monitorização Remota
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
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
Grupo alarmGrupo alarm
Grupo relativos alarmes, filtragem e captura de pacotes
TMV - 2004Gestão de Redes e Sistemas Distribuídos
4
AlarmEntry
RMON - Monitorização Remota
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 - 2004Gestão de Redes e Sistemas Distribuídos
5
AlarmEntry
RMON - Monitorização Remota
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 - 2004Gestão de Redes e Sistemas Distribuídos
6
RMON - Monitorização Remota
Ainda sobre os alarmes
TMV - 2004Gestão de Redes e Sistemas Distribuídos
7
RMON - Monitorização Remota
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)
• 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
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)
• 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
Grupo filterGrupo filter
Grupo relativos alarmes, filtragem e captura de pacotes
TMV - 2004Gestão de Redes e Sistemas Distribuídos
8
Aplicação de Filtros
RMON - Monitorização Remota
filterPktData filterPktDataMask
PACOTE
filterPktDataOffset
Bitwise XNOR
Bitwise AND filterPktDataNotMask
Bitwise AND Bitwise AND
Bitwise NOT
Dados a comparar
Só bits a 1 é que são analisados !
Igualdade Desigualdade
TMV - 2004Gestão de Redes e Sistemas Distribuídos
9
filterEntry
RMON - Monitorização Remota
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 - 2004Gestão de Redes e Sistemas Distribuídos
10
Aplicação de Canais
RMON - Monitorização Remota
AND
AND
DataFilter (i, 1)
StatusFilter (i, 1)
DataFilter (i, NiNi)
StatusFilter (i, Ni)
PacoteEstado doPacote
OR
Resultado
Condições:• channelDataControl = on ; pode ser gerado evento; pacote pode ser capturado• channelMatches incrementado por cada pacote que passa o filtro
TMV - 2004Gestão de Redes e Sistemas Distribuídos
11
channelEntry
RMON - Monitorização Remota
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 Integer32, channelIfIndex Integer32, channelAcceptType INTEGER, //Matched ou Failed channelDataControl INTEGER, //On (dados fluem no canal); Off (não) channelTurnOnEventIndex Integer32, //Evento q. põe channelDataControl on channelTurnOffEventIndex Integer32, //Evento q. Põe channelDataControl off channelEventIndex Integer32, //Índice do evento a ser gerado channelEventStatus INTEGER, //eventReady,eventFired,eventAlwaysReady channelMatches Counter32, //Nº de vezes que ocorreu um match channelDescription DisplayString, channelOwner OwnerString, channelStatus EntryStatus }
TMV - 2004Gestão de Redes e Sistemas Distribuídos
12
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
RMON - Monitorização Remota
•Criar uma linha na tabela de filtros
•Criar um canal
•Contar o número de ocorrências do canal
TMV - 2004Gestão de Redes e Sistemas Distribuídos
13
Aplicação de Filtros - exemplo
RMON - Monitorização Remota
filterPktData filterPktDataMask
PACOTE
Inicio do campo protocolo
Bitwise XNOR
Bitwise AND filterPktDataNotMask
Bitwise AND Bitwise AND
Bitwise NOT
Valor de:Protocolo = UDPPorto (UDP)DA Posição de:
Protocolo, Porto, DA = 1
Igualdade = 0
TMV - 2004Gestão de Redes e Sistemas Distribuídos
14
MIB-RMON - Aplicação de Filtros
FilterEntry ::= SEQUENCE { filterIndex INTEGER (1..65535), filterChannelIndex INTEGER (1..65535), filterPktDataOffset INTEGER, filterPktData OCTET STRING, filterPktDataMask OCTET STRING, filterPktDataNotMask OCTET STRING, filterPktStatus INTEGER, filterPktStatusMask INTEGER, filterPktStatusNotMask INTEGER, filterOwner OwnerString, filterStatus EntryStatus }
RMON - Monitorização Remota
TMV - 2004Gestão de Redes e Sistemas Distribuídos
15
MIB-RMON - Aplicação de Filtros
23 bytes
Cabeçalho das Tramas Ethernet0 16 47
Endereço MAC de DestinoEndereço MAC de Origem
Tipo de Protocolo Campo de Informação
Cabeçalho dos Pacotes IP
0 16 31
Versão IHL Tipo de Serviço Comprimento Total do DatagramaIdentificação para reassemblagem Flags Offset do segmentTime to Live Protocolo Checksum do Cabeçalho
Endereço IP de Origem
Endereço IP de Destino
Cabeçalho do Pacote UDP
0 31Porto de Origem Porto de Destino
Comprimento ChecksumCampo de Informação
RMON - Monitorização Remota
TMV - 2004Gestão de Redes e Sistemas Distribuídos
16
MIB-RMON - Aplicação de Filtros
Criar uma linha, na tabela de filtros
Programar o filtro
Terminar a criação do filtro e activá-lo
NOTA: X = iso.org.dod.internet.mgmt.mib-2.rmon Y = filter.filterTable.filterEntry
SetRequest (X.Y.filterStatus[1]= createRequest (2)
SetRequets (X.Y.filterChannelIndex[1] = 1 )
SetRequest (X.Y.filterStatus[1] = valid (1))
Ver em seguida ……………………………………………………………………………………….
RMON - Monitorização Remota
TMV - 2004Gestão de Redes e Sistemas Distribuídos
17
MIB-RMON - Aplicação de Filtros Programar o filtro
• Ponto inicial da análise: identificador do protocolo
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
SetRequest (X.Y.filterPktDataOffset[1] = 23
RMON - Monitorização Remota
TMV - 2004Gestão de Redes e Sistemas Distribuídos
18
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)
Programar o filtro•Indicação se se pretende obter uma igualdade (0) ou desigualdade (1)
SetRequest (X.Y.filterPktDataMask [1] =
ff:00:00:00:00:00:00:ff:ff:ff:ff:00:00:ff:ff)
SetRequest (X.Y.filterPktDataNotMask [1] =
00:00:00:00:00:00:00:00:00:00:00:00:00:00:00)
RMON - Monitorização Remota
TMV - 2004Gestão de Redes e Sistemas Distribuídos
19
MIB-RMON - Aplicação de canais Criar uma linha, na tabela de canais
Programar o canal
Terminar a criação do canal e activá-lo
Obter valores da contagem
NOTA: X = iso.org.dod.internet.mgmt.mib-2.rmon Z = filter.channelTable.channelEntry
SetRequest (X.Z.channelStatus[1]= createRequest (2)
SetRequest (X.Z.channelStatus[1] = valid (1))
SetRequest (X.Z.channelAcceptType[1]= acceptMatched(1))
GetRequest (X.Z.channelMatches[1])
RMON - Monitorização Remota
TMV - 2004Gestão de Redes e Sistemas Distribuídos
20
RMON - Monitorização Remota
Grupo relativos alarmes, filtragem e captura de pacotes
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
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
Grupo packet CaptureGrupo packet Capture
TMV - 2004Gestão de Redes e Sistemas Distribuídos
21
bufferControlEntry
RMON - Monitorização Remota
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 - 2004Gestão de Redes e Sistemas Distribuídos
22
captureBufferEntry
RMON - Monitorização Remota
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 Integer32, captureBufferIndex Integer32, captureBufferPacketID Integer32, //Nº de ordem de rxd dos pacotes captureBufferPacketData OCTET STRING, //Dados captureBufferPacketLength Integer32, //Dimensão captureBufferPacketTime Integer32, //tempo (ms) início da capt. do pacote captureBufferPacketStatus Integer32 }
TMV - 2004Gestão de Redes e Sistemas Distribuídos
23
RMON - Monitorização Remota
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
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
Grupo eventGrupo event
Grupo relativos alarmes, filtragem e captura de pacotes
TMV - 2004Gestão de Redes e Sistemas Distribuídos
24
eventEntry
RMON - Monitorização Remota
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 Integer32, eventDescription DisplayString, eventType INTEGER, //None, log, snmptrap, log-and-trap eventCommunity OCTET STRING, //String de comunidade para o trap eventLastTimeSent TimeTicks, //sysUpTime em que o evento foi gerado eventOwner OwnerString, eventStatus EntryStatus }
TMV - 2004Gestão de Redes e Sistemas Distribuídos
25
logEntry
RMON - Monitorização Remota
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 Integer32, logIndex Integer32, logTime TimeTicks, logDescription DisplayString }
TMV - 2004Gestão de Redes e Sistemas Distribuídos
26
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
RMON - Monitorização Remota
TMV - 2004Gestão de Redes e Sistemas Distribuídos
27
RMON - Monitorização Remota
Exemplo de aplicação
NOTA: X = iso.org.dod.internet.mgmt.mib-2.rmon Y = alarm.alarmTable.alarmEntry
SetRequest (X.Y.alarmStatus[1]= createRequest (2)SetRequet (X.Y.alarmIndex[1] = 1 ) SetRequet (X.Y.alarmOwner[1] = ´RNL´ )
SetRequest (X.Y.alarmStatus[1] = valid (1))
SetRequest (X.Y.alarm.Interval[1] = 60)SetRequest (X.Y.alarmVariable[1]= etherStatsOctets)SetRequest (X.Y.alarmSampleType[1]= 1)SetRequest (X.Y.alarmStartupAlarm[1]= 1)SetRequest (X.Y.alarmRisingThreshold[1]= 30*106/8)SetRequest (X.Y.alarmRisingEventIndex[1]= 2)
Criar a entrada na tabela de alarmes
Programar alarme para medir pacotes à entrada e gerar alarme quando o ritmo atingir 30Mb/s
Activar entrada na tabela de alarmes
TMV - 2004Gestão de Redes e Sistemas Distribuídos
28
RMON - Monitorização Remota
Exemplo de aplicação
NOTA: X = iso.org.dod.internet.mgmt.mib-2.rmon Y = alarm.eventTable.eventEntry
SetRequest (X.Y.eventStatus[2]= createRequest (2)SetRequet (X.Y. eventIndex[2] = 2 ) SetRequet (X.Y. eventOwner[2] = ´RNL´ )
SetRequest (X.Y.eventStatus[1] = valid (1))
SetRequest (X.Y.eventType[2] = snmp-trap (3))SetRequest (X.Y.eventDescription[2]= ´Upper-threshold reached´)SetRequest (X.Y.eventCommunity[2]= ´priv-rnl´)
Criar a entrada na tabela de eventos
Programar o evento para gerar um Trap-SNMP a ser recebido pelos Gestores da comunidade priv-rnl
Activar entrada na tabela de eventos