Gerenciamento distribudo Liane Tarouco UFRGS Monitorao processo passivo
Gerenciamento distribuído Liane Tarouco UFRGS
Monitoração • processo passivo • observação e análise do estado da rede – obtenção de informações – identificação de falhas e determinação de suas causas • ações para remediar a falha – respostas pró-ativas para minimizar a ocorrência de falhas
Controle • processo ativo • alteração de valores de variáveis de vários componentes da rede – execução de ações pré-definidas – área de configuração • inicialização • manutenção • ativação/desativação de elementos
Gerenciamento • Centralizado • Hierárquico • Distribuído
MIBs • Durante os anos de vida do SNMP, surgiram várias e várias MIB's. • Elas formam uma coleção de dados e valores necessários para monitorar e controlar dispositivos de rede que foram levantados por especialistas durante todos estes anos. • As MIB's e a especificação SMI são o mais importante legado do SNMP.
Meta-variáveis • Meta-variáveis são variáveis que existem apenas na definição da MIB. • Cada meta-variável é definida em função de variáveis reais da MIB.
Exemplo de meta-avariável • Por exemplo, poderia existir uma metavariável chamada "taxa de erro" que seria calculada utilizando como base as variáveis reais • if. In. Erros, if. Out. Erros e sys. Up. Time, fazendo -se: • Taxa de erro = (if. In. Erros + if. Out. Erros)/ sys. Up. Time
Implementação das metavariáveis • Para obter o valor destas meta-variáveis, a estação de gerenciamento tem que executar a função ela mesma. • Isto implica que esta função deve ser expressa em alguns procedimentos que devem ser mapeados em get's e set's. • Alguns acham que estas funções seriam melhor expressas em forma de simples scripts.
Implementação das metavariáveis • Extensões ao conceito de meta-variáveis. – Dispositivos dedicados para gerar os valores destas meta-variáveis e exportá-las como variáveis reais SNMP através de uma MIB própria deste dispositivo. – Os próprios agentes calcularem os valores das meta-variáveis, tornando-as assim variáveis reais.
RFC 2982 - Expression MIB • On managed systems that can afford the overhead, the Expression MIB is a way to create new, customized MIB objects for monitoring. • Provide custom objects for the Event MIB • A complex expression can evaluate to a rate of flow or a boolean and thus be subject to testing as an event trigger, resulting in an SNMP notification
RFC 2982 - Expression MIB • MIB has the following sections: • Resource -- management of the MIB's use of system resources. • Definition -- definition of expressions. • Value -- values of evaluated expressions.
Gerenciamento Ação corretiva Monitoração Detecção de problema Descoberta
Ambiente de gerenciamento Service Management System Management Console Service Management System Application Managing System Managed Mail Systems . . . Managed Network Systems Network Managing System
Ambiente de rede atual é distribuído Application Server End User Hub End User Router
Mo. M • Manager of Manager • SNMPv 2 - mensagens adicionais – Get Bulk – Information. Request gerente Get Request Get Response Trap Set. Request Get. Bulk. Response Inform. Request Response agente gerente
Mo. M • Gerente de domínio
Manager-to-Manager MIB • Define um conjunto de variáveis que descrevem o comportamento de uma entidade SNMPv 2 atuando como gerente em uma arquitetura hierárquica. • Composta pelos grupos Alarm e Event. – grupo Alarm permite a descrição e configuração de alarmes (Threshold Alarms). – grupo Event permite a definição de eventos configuração de notificações geradas em resposta à ocorrência de eventos.
Gerenciamento OSI • CMIS - Common Management Information Services – CMISE - Common Management Service Elements – CMIP - Common Management Information Protocol
CMIP • • M-Event-Report M-Get M-Cancel-Get M-Set M-Action M-Create M-Delete
Scripting MIB's • Inserir um script a um dispositivo, iniciar sua execução, requisitar ou esperar que lhe seja informado o resultado. – Um script poderia, por exemplo, monitorar as variáveis de um dispositivo observando sinais de erro. – Depois ele poderia reportar o problema, fazer mais testes para se fazer um diagnóstico, ou tomar atitudes com o intuito de se fazer uma correção.
Scripts • Um script completo pode ser expresso como uma linguagem interpretativa, onde cada linha do mesmo seria uma linha da tabela. • Assim, cada linha seria executada mediante a alteração dos objetos correspondentes. • Uma outra possibilidade seria tratar um script inteiro como uma variável, e a sua invocação pelo gerente e daria através de uma mensagem get. O agente, mediante o recebimento desta mensagem, espera que o script termine a execução e retorna o resultado para o gerente, como se fosse uma variável comun.
Dificuldades com scripts • • Segurança dos Scripts Integridade dos Scripts Controle de Recursos Recuperação de um Script Poder Expressivo Migração Depuração
Segurança dos Scripts • Segurança dos Scripts: esta segurança se refere aos limites que se devem impor aos scripts, ou seja, fazer com que o mesmo faça apenas o que ele tem que fazer e que não possa ser usado para causar danos;
Integridade dos Scripts • Integridade dos Scripts: garantir que o script que está executando é realmente aquele que se espera;
Controle de Scripts • Controle de Scripts: uma estação de gerenciamento deve estar apta a controlar a execução do script e até de abortá-lo;
Controle de Recursos • Controle de Recursos: como os scripts são programas, limites devem poder ser impostos em termos de consumo de CPU, de memória e de outros recursos;
Recuperação de um Script • Recuperação de um Script: é importante que uma estação possa saber da existência de scripts que ela criou, no caso, por exemplo, de uma reinicialização após uma pane;
Poder Expressivo • Poder Expressivo: existe uma discussão sobre quais as ações que um script pode invocar. Há um consenso de que as primitivas a serem invocadas sejam de alto nível
Exemplos de primitivas • • • Ping ICMP; Traceroute; Descoberta do caminho MTU; Ferramentas de consultas a DNS; Operações SNMP, incluindo o acesso às MIB's; Ferramentas de consultas às bases de dados locais de redes; • Ferramenta ou serviço que regule intervalos de tempo; • Ferramentas para enviar mensagens aos usuários em situações adversas.
Migração dos Scripts • Migração dos Scripts: este não é um problema sério desde que a estação que criou o script o controle, e desde que o mesmo tenha autorização de executar em outra máquina;
Depuração dos Scripts • Depuração dos Scripts: como scripts também são programas, eles também podem apresentar problemas. • Espera-se que um script seja simples o suficiente para que não se precise de uma ferramenta de depuração.
Gerenciamento por Delegação ou Gerentes por Área Semi-Autônomos • A utilização de scripts traz consigo a possibilidade de se criar um sistema onde as tarefas de monitoração e de controle de um gerente de mais alto nível podem ser repassadas para subgerentes, responsáveis por uma área específica, determinada pela proximidade com os dispositivos gerenciados.
Gerenciamento por delegação • A idéia básica é "gerenciamento por delegação", onde o gerente do nível superior cria um script que é carregado nos gerentes de área para execução. • Este gerente de área ou subgerente, é um dispositivo multi-threadead e pode executar vários scripts simultaneamente, permitindo, assim, que um único subgerente possa ser invocado por vários gerentes superiores
Gerenciamento por delegação • Delegação de tarefas para entidade subordinadas – gerentes intermediários – agentes • Mobilidade de Código • métodos push - envio de código como parâmetro para entidade • método pull - entidade recebe um ponteiro para o repositório de código
Gerenciamento por delegação
Gerenciamento por delegação Vantagens • redução de tempo • redução do tráfego gerado por polling • operações off-line • autonomia de agentes • flexibilidade para extensão das funções
RFC 2591 - Scheduling MIB • Managed Objects for Scheduling Management Operations • Scheduling of actions periodically or at specified dates and times • Schedules can be enabled or disabled by modifying a control object • Scheduled actions are modeled by SNMP set operations on local MIB variables
Scheduling MIB • • • • • • Sched. Entry : : = SEQUENCE { sched. Owner Snmp. Admin. String, sched. Name Snmp. Admin. String, sched. Descr Snmp. Admin. String, sched. Interval Unsigned 32, sched. Week. Day BITS, sched. Month BITS, sched. Day BITS, sched. Hour BITS, sched. Minute BITS, sched. Context. Name Snmp. Admin. String, sched. Variable. Pointer, sched. Value Integer 32, sched. Type INTEGER, sched. Admin. Status INTEGER, sched. Oper. Status INTEGER, sched. Failures Counter 32, sched. Last. Failure Snmp. Pdu. Error. Status, sched. Last. Failed Date. And. Time, sched. Storage. Type, sched. Row. Status }
Scheduling MIB sched. Admin. Status OBJECT-TYPE SYNTAX INTEGER { enabled(1), disabled(2) } MAX-ACCESS read-create STATUS current DESCRIPTION "The desired state of the schedule. " DEFVAL { disabled } : : = { sched. Entry 14 }
Scheduling MIB sched. Oper. Status OBJECT-TYPE SYNTAX INTEGER { enabled(1), disabled(2), finished(3) } MAX-ACCESS read-only STATUS current DESCRIPTION "The current operational state of this schedule. The state enabled(1) indicates this entry is active and that the scheduler will invoke actions at appropriate times. The disabled(2) state indicates that this entry is currently inactive and ignored by the scheduler. The finished(3) state indicates that the schedule has ended. Schedules in the finished(3) state are ignored by the scheduler. A one-shot schedule enters the finished(3) state when it deactivates itself. " : : = { sched. Entry 15 }
RFC 2592 - Managed Objects for the Delegation of Management Scripts • Used to delegate management functions to distributed managers • Management functions are defined as management scripts written in a management scripting language
Script MIB • Capabilities to transfer management scripts to a distributed manager • Capabilities for initiating, suspending, resuming and terminating management scripts. • Capabilities to transfer arguments for management scripts • Capabilities to monitor and control running management scripts. • Capabilities to transfer the results produced by running management scripts.
Script MIB • • • language group (sm. Language. Group) script group (sm. Script. Group) script code group (sm. Code. Group) script launch group (sm. Launch. Group) running script group (sm. Run. Group)
sm. Script. Group • Single table, called the sm. Script. Table. • The sm. Script. Table lists all scripts known to a Script MIB implementation. • The sm. Script. Table contains objects that allow the following operations: – download scripts from a URL (pull model) – read scripts from local non-volatile storage – store scripts in local non-volatile storage – delete scripts from local non-volatile storage – list permanent scripts (that can not be changed or removed)
sm. Code. Group • The sm. Code. Group consists of a single table, called the sm. Code. Table, which provides the ability to transfer and modify scripts via SNMP set requests. • In particular, the sm. Code. Table allows the following operations: – download scripts via SNMP (push model) – modify scripts via SNMP (editing)
sm. Launch. Group • The sm. Launch. Group contains a single table, the sm. Launch. Table. • An entry in the sm. Launch. Table represents a launch button which can be used to start a script. • The sm. Launch. Table allows the following operations: – associate a script with an owner used during script execution – provide arguments and parameters for script invocation – invoke scripts with a single set operation
sm. Run. Group • The sm. Run. Group contains a single table, called the sm. Run. Table, which lists all scripts that are currently running or have terminated recently.
sm. Run. Table • The sm. Run. Table contains objects that allow the following operations: – retrieve status information from running scripts – control running scripts (suspend, resume, abort) – retrieve results from recently terminated scripts – control the remaining maximum lifetime of running script – control how long script results are accessible
RFC 2592 • Managed Objects for Remote Ping, Traceroute, and Lookup Operations
Ping MIB • The DISMAN-PING-MIB consists of the following components: • ping. Max. Concurrent. Requests • ping. Ctl. Table • ping. Results. Table • ping. Probe. History. Table
Traceroute MIB The DISMAN-TRACEROUTE-MIB consists of the following components: • trace. Route. Max. Concurrent. Requests • trace. Route. Ctl. Table • trace. Route. Results. Table • trace. Route. Probe. History. Table • trace. Route. Hops. Table
Lookup MIB • Provides access to the resolver gethostbyname() and gethostbyaddr() functions at a remote host. The DISMAN-NSLOOKUP-MIB consists of the following components: • lookup. Max. Concurrent. Requests, and lookup. Purge. Time • lookup. Ctl. Table • lookup. Results. Table
RFC 2592 - Managed Objects for the Delegation of Management Scripts
Agentes Móveis • Verme - programa que se move através da rede, indo de computador a computador e com a capacidade ainda de se reproduzir • Em termos de gerenciamento de redes, vermes são scripts que se replicam e migram. • Eles, como também o gerenciamento por delegação, são derivados do conceito de scripting MIB's.
Agentes móveis Agente móvel cliente request response server
Agentes migratórios • Pode-se utilizar tais agentes para aprimorar a detecção de falhas e a sua correção nas aplicações de gerenciamento SNMP. • No caso, por exemplo, de um dispositivo estar mandando notificação de um problema interno, um agente pode ser disparado especificamente para aquele dispositivo e para aquele problema.
SNMP Agente extensibility • RFC 1592 permite a usuários dinamicamente – deletar, adicionar ou substituir vaiáveis gerenciáveis na MIB local sem requerer recompilação do agente SNMP manager Subagent 1 MIB 1 Master Agent Subagent 2 Subagent 3 MIB 2 MIB 3
Event MIB • Monitorar objetos no sistema local ou remoto e disparar ações simples quando uma condições de disparo é atingida • Mantem conceito RMON - enviar notificação em resposta ao disparo (trigger) e adiciona o conceito de limiares • Superconjunto das capacidades dps grupos alarm e event da MIB RMON para prover alarmes referentes a objetos em outra rede
Questões sobre agentes migratórios • Existem muitas perguntas a serem respondidas: – Como e para onde os agentes devem migrar? – Eles devem poder se reproduzir ou apenas migrar? – Como seria seu plano de ação? – Como garantir ao gerente o controle e o resgate de agentes que foram disparados? – O que fazer quando o agente não retorna ao gerente?
Segurança • Problemas de segurança da rede podem minar a segurança de aplicações distribuídas • Problemas da segurança – – interrupção interceptação modificação mascaramento
Soluções • Autenticação – RDS (Remote Delegation Service) devem ser autenticados para poder delegar e executar agentes remotamente assinatura digital - MD 5 • detecção de alterações em uma solicitação • garantir a integridade de dados – garantir que não aconteça duplicação, modificação ou resenquenciamento – DES (Data Encryption Standard)
Cyber agent • "cyber agent" escrito em Java e que possui as • seguintes características: – Mobilidade entre computadores conectados via TCP/IP; – Independência de plataforma entre computadores com suporte a Java; – Possui níveis de segurança, cobrindo: autenticação, – integridade e privacidade; – Habilidade para transportar dados e programas. – A estação gerente pode lançar os agentes que fazem a migração entre as máquinas de acordo com um plano de viagem prédeterminado e que pode ser seqüencial ou simultâneo. Após o término de sua "viagem", os agentes retornam ao gerente com os resultados.
Agent. X - extensible agents Motivation: • a "master" agent that is available on the standard transport address and that accepts SNMP protocol messages • a set of "subagents" that each contain management instrumentation
Agent. X
Agent. X - extensible agents • a protocol that operates between the master agent and subagents, permitting subagents to "connect" to the master agent, and the master agent to multiplex received SNMP protocol messages amongst the subagents. • a set of tools to aid subagent development, and a runtime (API) environment that hides much of the protocol operation between a subagent and the master agent.
RFC 2741 - Managed Objects for Extensible SNMP Agents • The SNMP Agent Extensibility Protocol (Agent. X) is a protocol used to distribute the implementation of an SNMP agent amongst a single "master agent" and multiple "subagents"
Agent. X - Goals • List the set of subagent connections that currently have logical sessions open with the master agent. • Identify each subagent connection transport address and type. • Identify each subagent session vendor, Agent. X protocol version, and other characteristics.
Agent. X - Goals • Identify the set of MIB objects each session implements, the context in which the objects are registered, and the priority of the registration. • Determine protocol operational parameters such as the timeout interval for responses from a session and the priority at which a session registers a particular MIB region. • Allow (but do not require) managers to explicitly close subagent sessions with the master agent.
Agentes migratórios e Gerenciamento por delegação • Uma outra utilização para agentes migratórios, seria a combinação deste conceito com o de gerenciamento por delegação. • Nesta proposta, os subgerentes monitorariam os dispositivos sob sua responsabilidade através de agentes migratórios. • O gerente central poderia determinar que cada subgerente utilizasse um plano de viagem distinto para se fazer o gerenciamento dos dispositivos sob seu controle.
- Slides: 69