Gerência de Redes (SNMP) Serviços de Diretório (LDAP) Policy Based Networking (PBNM) Edgard Jamhour Mauro Fonseca Carlos Maziero 2006, Edgard Jamhour Definições básicas • Gerência de redes: – conjunto de ferramentas, procedimentos e políticas usadas para manter o funcionamento e eficiência de uma rede, independente de seu tamanho ou finalidade. • Gerência integrada: – ferramentas e procedimentos que podem cooperar entre si, possibilitando a definição de políticas homogêneas em um ambiente heterogêneo. 2006, Edgard Jamhour Áreas funcionais de gerência • Configuração • Falha • Desempenho • Segurança • Contabilidade 2006, Edgard Jamhour Gerência de configuração • Inventory: conjunto de dispositivos na rede, do software e hardware presente nesses dispositivos e sua informação estática. • Configuration: mapa indicando as conexões entre componentes do inventário. • Provisioning: parâmetros operacionais modificáveis que especificam o comportamento de cada dispositivo. 2006, Edgard Jamhour Gerência de falha • Detectar e resolver rapidamente situações que degradam o funcionamento da rede: – – – – Determinar a origem da falha Isolar a falha do restante da rede reconfigurar a rede para diminuir impacto da falha reparar ou trocar componentes com falha 2006, Edgard Jamhour Gerência de desempenho • Assegurar uma capacidade de tráfego mínima na rede. • Assegurar que os dispositivos podem tratar o tráfego presente na rede. • Baseia-se em dados colhidos da rede: – erros de CRC, time-outs, retransmissões • Dados históricos podem ser importantes 2006, Edgard Jamhour Gerência de segurança • Proteção das informações • Controle de acesso ao sistema • Monitorar uso dos recursos • Criar, manter e examinar “log-files” • Muito importante em sistemas abertos • Essencial em hosts conectados à Internet 2006, Edgard Jamhour Gerência de contabilização • Ter uma idéia clara do uso dos recursos – cobrar pelos serviços utilizados – planejar crescimento da rede – detectar abusos no uso dos recursos • Informação de contabilização deve ter acesso restrito. 2006, Edgard Jamhour Modelo de gerência • Baseado em uma estrutura cliente/servidor – agente: age como servidor de informações de gerência – gerente: consulta os agentes para obter informações 2006, Edgard Jamhour Servidor: Agente • Agente: Network Management Entity – executa um processo agente – interage com os dispositivos físicos – coleta, mantém e oferece informações de gerência – responde a pedidos de informação e comandos 2006, Edgard Jamhour Cliente: Gerente • Gerente: Network Management Application – consultas e ações sobre os agentes – executa um software de gerência – interage com o operador do sistema 2006, Edgard Jamhour O ciclo de gerência • As atividades de gerência compõe um ciclo: • Coleta de dados: monitoração (automática) dos recursos gerenciados. • Diagnóstico: tratamento e análise dos dados coletados para delinear o problema. • Ação: controle sobre os recursos gerenciados para corrigir o problema. 2006, Edgard Jamhour Transferência da informação • Dados fluem dos agentes ao gerentes • Pooling: • interações tipo “pedido/resposta” • iniciadas pelo gerente, solicitando dados • podem ser específicas ou genéricas • Event reporting: • indicações de ocorrência de eventos importantes • iniciadas pelo agente • podem ser periódicas ou ocasionais 2006, Edgard Jamhour Uma arquitetura de gerência Management entity requests Managed objects responses notifications Management application events operations Management protocol Management agent MIB Management database 2006, Edgard Jamhour Ferramentas de gerência • Arquitetura de gerência OSI • Gerência usando SNMP • Gerência via Web • Gerência com objetos CORBA 2006, Edgard Jamhour Protocolos de gerência • SNMP • • • • Simple Network Management Protocol Criado pela IETF em 1988 Projetado para monitorar redes simples Dominante em redes TCP/IP • CMIP • • • • Common Management Information Protocol Proposto pela ISO no início dos anos 90 Controle (complexo) de redes complexas Muito presente em redes de telefonia 2006, Edgard Jamhour Informações de gerência • MIB • Management Information Base • Dados mantidos pelos elementos gerenciados • Informação com estrutura hierárquica • SMI • Structure of Management Information • Define notações, formatos, tipos, nomes, ... • Usa como base a notação formal ASN.1 2006, Edgard Jamhour MIB-II - Estrutura geral iso(1) org(3) dod(6) internet(1) Object ID is 1.3.6.1.2.1.7 directory(1) mgmt(2) mib-2(1) system(1) interfaces(1) tcp(6) udpInDatagrams udpNoPorts udpInErrors udpOutDatagrams udp(7) 2006, Edgard Jamhour SNMP • Voltado à monitoração de redes simples • Pode ser embutido em hardware simples • Muito usado em redes TCP/IP • Comandos e tipos de dados fixos • Poucos tipos de mensagens • estrutura bastante simples • Usa UDP/IP • baixo nível de tráfego de gerência • protocolo de transporte sem conexão • não confiável (perda de pacotes) • Comandos e respostas assíncronas 2006, Edgard Jamhour Extensões de SNMP • RMON - Remote Network Monitoring • extensão da MIB-II para gerência • Facilidades para monitoração e coleta • “Remendo” sobre SNMP e MIB • RMON-2 • Coleta de informações mais abrangente • SNMP-V2 • estrutura de segurança melhorada • comunicação entre gerentes (método inform) • MIB e SMI aumentadas: novos tipos de dados 2006, Edgard Jamhour Estrutura de gerência OSI Arquitetura em camadas de serviços: • SMFA • System Management Functional Areas: faltas, contabilidade, configuração, desempenho, segurança • SMF • System Management Functions • CMISE • CMIS: Common Management Information Services • CMIP: Common Management Information Protocol 2006, Edgard Jamhour Arquitetura OSI Specific Management Functional Areas accounting fault security performance configuration System Management Functions object log state workload relationship test alarm summarization security access Event-report accounting CMISE Services get set action create delete event-report CMIP Managed node 2006, Edgard Jamhour O que é SNMP ? • Padrão para gerência na Internet – simples de implementar – amplamente difundido • Composto de: – protocolo para trocas de mensagens – padrões para estruturar a informação • Evolutivo: SNMPv2, SNMPv3, RMON, ... 2006, Edgard Jamhour Estrutura geral do sistema Protocol SNMP manager MIB Request SNMP agent Response MIB Management information 2006, Edgard Jamhour Informações de gerência • Definidas através da SMI – Structure of Management Information – Define como criar a MIB • Endereçada através de MIBs – Management Information Bases – Uma MIB é uma coleção de objetos – Cada objeto representa uma parâmetro de gerência • Transportadas através do SNMP – Single Network Management Protocol 2006, Edgard Jamhour Árvore MIB • Object IDentifier (OID) iso(1) 1 org(3) - Exemple .1.3.6.1.2.1.1 3 dod(6) - iso(1) org(3) dod(6) internet(1) mgmt(2) mib-2(1) system(1) 6 internet(1) 1 directory(1) 4 1 mgmt(2) experimental(3) 2 Notas: - .1.3.6.1 ~100% present. - os ramos mgmt e private são os mais usados. - MIB-2 é uma estrutura padrão que deve ser suportada por nós TCP/IP. private(4) 3 mib-2(1) 1 tcp(6) system(1) 6 1 interfaces(2) 2 ip(4) 4 2006, Edgard Jamhour A MIB versão 2 objeto 1.3.6.1.2.1.1 1.3.6.1. iso.org.dod.internet 1. directory 2. mgmt 3. experimental 4. private 5. security 6. snmpV2 7. mail 1. mib-2 1. enterprises 1. system 2. interfaces 3. address translation 4. ip 5. icmp 6. tcp 7. udp 8. egp 9. oim 10. transmission 11. snmp 2006, Edgard Jamhour Objeto MIB • Definido em ANS.1 - OBJECT-TYPE - - SYNTAX - - READ-ONLY, READ-WRITE. STATUS - - Define o tipo de informação representada pelo objeto MIB. ACCESS - - Descreve o objeto MIB. Object IDentifier (OID). Estado do objeto em relação a comunidade SNMP. DESCRIPTION - Significado da informação representada pelo objeto MIB. Standard MIB Object: sysUpTime OBJECT-TYPE SYNTAX Time-Ticks ACCESS read-only STATUS mandatory DESCRIPTION “Time since the network management portion of the system was last re-initialised. ::= {system 3} 2006, Edgard Jamhour ASN.1 Abstract Syntax Notation One • • • • • Linguagem de descrição de dados da ISO Definição em formato texto não ambíguo Permite definir modelos de dados Formato independente de máquina Implementação dos dados não é considerada 2006, Edgard Jamhour Campo SYNTAX • Define o conteúdo do objeto – – – – INTEGER: inteiros de 32 bits INTEGER (1..100): sub-tipo inteiro OCTET STRING: string de bytes OBJECT IDENTIFIER: localização de outro objeto na MIB • Aceita alguns tipos específicos de aplicação: – – – – IpAddress: OCTET STRING com 4 bytes Counter: inteiro 32 bits monotônico crescente Gauge: inteiro 32 bits limitado no mínimo e no máximo TimeTicks: inteiro 32 bits (1/100 de segundo) 2006, Edgard Jamhour Sub-tipagem INTEGER INTEGER INTEGER INTEGER INTEGER INTEGER INTEGER (-127..128) (1..10) (0 | 2 | 4 | 6 | 8) (0..2 | 20) (-127..-1 | 1..128) (1) 2006, Edgard Jamhour Enumeração usando inteiros Boolean ::= INTEGER { true (1), false (2)} Alarm-level ::= INTEGER { critical (1), major (2), minor (3), warning (4), informational (10) } 2006, Edgard Jamhour Campo ACCESS • Define a acessibilidade do objeto • Valores possíveis em SNMPv1: – – – – read-only read-write write-only not-accessible 2006, Edgard Jamhour Campo STATUS • Situação do objeto na MIB – Mandatory • Devem ser implementados por todos os agentes • Valores contidos devem ser válidos – Optional • Pode ou não ser implementado – Deprecated • Foi substituido por novo objeto, mas ainda é valido • Se tornará obsoleto mais tarde – Obsolete • Não deve ser considerado 2006, Edgard Jamhour Valores escalares e vetoriais • Valores escalares: • uma só instância por variável • OID deve ser completado por “.0” • Exemplo: ....mib-2.ip.ipForwarding: 1.3.6.1.2.1.4.1.0 • Valores vetoriais: • • • • para construir listas e tabelas usam os construtores SEQUENCE e SEQUENCE OF Convenção de tabela: xxxTable Convenção de linha na tabela: xxxEntry 2006, Edgard Jamhour Tabela de conexões TCP tcpConnTable OBJECT-TYPE SYNTAX SEQUENCE OF TcpConnEntry ACCESS not-accessible STATUS mandatory DESCRIPTION “A table containing TCP connection-specific information.” ::= {tcp 13} 2006, Edgard Jamhour Uma conexão TCP na tabela tcpConnEntry OBJECT-TYPE SYNTAX TcpConnEntry ACCESS not-accessible STATUS mandatory DESCRIPTION “Information about a particular current TCP connection. ...” INDEX { tcpConnLocalAddress, tcpConnLocalPort, tcpConnRemAddress, tcpConnRemPort } ::= {tcpConnTable 1} 2006, Edgard Jamhour Uma conexão TCP na tabela (2) TcpConnEntry ::= SEQUENCE { tcpConnState INTEGER, tcpConnLocalAddress IpAddress, tcpConnLocalPort INTEGER (0..65535), tcpConnRemAddress IpAddress, tcpConnRemPort INTEGER (0..65535), } 2006, Edgard Jamhour BER • Basic Encoding Rules • Codificação dos dados para transferência • Usa formato TLV: Type-Length-Value • Type: tipo ASN.1 e infos complementares • Length: tamanho da representação dos dados • Value: string de octetos contendo o valor do dado • A estrutura de codificação é recursiva 2006, Edgard Jamhour A arquitetura SNMP Managed system Management system management application SNMP manager UDP IP link resources management actions SNMP messages MIB objects SNMP agent UDP IP link 2006, Edgard Jamhour O protocolo SNMP • Veicula informações de gerência • transporte de valores das MIBs • Interações sem conexão • Mensagens em UDP/IP • portas 161 e 162 • pacotes de tamanho variável • Mensagens auto-contidas • formato Type - Length - Value 2006, Edgard Jamhour Histórico do SNMP • 1989: SNMP v1 • 1992: Remote Monitoring - RMON • 1993: SNMP v2 • 1996: SNMP v2c (Community Security) • 1996: MIB RMON v2 • 1998: SNMP v3 (User Security Model) 2006, Edgard Jamhour Operações básicas SNMP • GET • GET-NEXT • gerente busca informações dos agentes • acessos em leitura às MIBs • SET • gerente modifica informações dos agentes • acessos em escrita às MIBs • TRAP • agentes enviam informações não solicitadas aos gerentes, informado eventos importantes 2006, Edgard Jamhour Exemplo de uso Get (Nome) SNMP Agent MIB manager Response (‘João’) GetNext (Nome) pessoa.nome = João pessoa.idade = 35 pessoa.sexo = masc Response (35) Set (sexo, fem) Response (Erro) 2006, Edgard Jamhour Restrições das operações • Permitem somente inspeção e/ou alteração de variáveis • A estrutura da MIB não pode ser alterada pelas operações • Somente podem ser acessados valores escalares em cada operação 2006, Edgard Jamhour Limitações de SNMP • Falta de segurança – esquema de autenticação trivial – limitações no uso do método SET • Ineficiência – esquema de eventos limitado e fixo – operação baseada em pooling – comandos transportam poucos dados • Falta de funções específicas – MIB com estrutura fixa – Falta de comandos de controle – Falta de comunicação entre gerenciadores • Não confiável – baseado em UDP/IP – traps sem reconhecimento 2006, Edgard Jamhour Modelo de segurança SNMP • Modelo mais comum: SNMP V2c • Baseado no conceito de comunidade • Uma comunidade define: • método para autenticar acesso (senha) • visibilidade da MIB • privilégios de acesso à MIB • Cada dispositivo implementa uma ou mais comunidades • Comunidade default: “public” 2006, Edgard Jamhour Exemplo de comunidades admin public ensino network 2006, Edgard Jamhour Uma mensagem SNMP • Conteúdo codificado via BER • Geralmente limitada a < 484 bytes preâmbulo msg length 2 bytes protocol version 1 byte community string até 128 bytes PDU header PDU SNMP PDU body 2006, Edgard Jamhour Estrutura das PDUs SNMP Get & Set Trap msg length msg length protocol version preamble protocol version community string community string PDU type PDU type PDU length PDU length Request ID Error Status Enterprises OID SNMP header Agent IP address Error Index Standard trap type Variable bindings Specific trap type Time stamp Variable bindings SNMP body Variable bindings Variable bindings 2006, Edgard Jamhour Preâmbulo e cabeçalho • Versão 0: SNMPv1, 1: SNMPv2, ... • Tipo de PDU 0: getRequest 1: getNextRequest 2: getResponse 3: setRequest 4: trap • Request ID • valor numérico usado para casar pedidos e respostas 2006, Edgard Jamhour Códigos de erro • Error Status: 0: noError: sucesso na operação 1: tooBig: resposta muito grande para enviar 2: noSuchName: OID não suportado pelo agente 3: badValue: valor incorreto para operação set 4: readOnly: tentativa de escrita inválida 5: genErr: erro não relacionado ao protocolo • Error index: • indica qual variável listada na PDU causou o erro. 2006, Edgard Jamhour Conteúdo das mensagens var list size 41 varbind length 23 variable OID variable type variable value 1.3.6.1.2.1.1.2.0 2 1.3.6.1.4.1.311.1.1.3.2 varbind length 14 1.3.6.1.2.1.7.4.0 65 250 variable OID variable type variable value ... 2006, Edgard Jamhour A operação GetNext • Busca próximo elemento na MIB – Usa ordem lexicográfica • 1.3.6.1.2.1.1.4 • 1.3.6.1.2.1.1.4.0 • 1.3.6.1.2.1.1.5.0 • ... • Serve para: • passear na MIB (descoberta da estrutura) • buscar dados em tabelas 2006, Edgard Jamhour Exemplo de passeio na MIB • snmpgetnext -v1 localhost -c public system – SNMPv2-MIB::sysDescr.0 = STRING: Linux espec.ppgia.pucpr.br 2.6.171.2142_FC4smp #1 SMP Tue Jul 11 22:59:20 EDT 2006 x86_64 • snmpget -v1 localhost -c public -O n system.sysDescr.0 – .1.3.6.1.2.1.1.1.0 = STRING: Linux espec.ppgia.pucpr.br 2.6.171.2142_FC4smp #1 SMP Tue Jul 11 22:59:20 EDT 2006 x86_64 • snmpgetnext -v1 localhost -c public -O n .1.3.6.1.2.1.1.1.0 – .1.3.6.1.2.1.1.2.0 = OID: .1.3.6.1.4.1.8072.3.2.10 • snmpgetnext -v1 localhost -c public -O n .1.3.6.1.2.1.1.2.0 – .1.3.6.1.2.1.1.3.0 = Timeticks: (523160) 1:27:11.60 • snmpget -v1 localhost -c public .1.3.6.1.2.1.1.3.0 – SNMPv2-MIB::sysUpTime.0 = Timeticks: (527855) 1:27:58.55 2006, Edgard Jamhour Percurso seqüencial coluna 1 1 linha 1 myVar1.1 2 linha 2 myVar1.2 3 linha 3 myVar1.3 4 linha 4 myVar1.4 coluna 2 5 coluna 3 9 myVar2.1 6 myVar2.2 7 myVar2.3 8 myVar2.4 myVar3.1 10 myVar3.2 11 myVar3.3 12 myVar3.4 13 2006, Edgard Jamhour Traps em SNMP • Mensagens enviadas pelo agente • Não são respostas a pedidos • Representam eventos anormais • Classificam-se em: • genéricos: presentes na MIB padrão • específicos: definidos na MIB “enterprises” 2006, Edgard Jamhour Traps genéricos • coldStart: • o dispositivo foi ligado • configuração local pode ter sido alterada • informa ao gerente sobre sua existência • warmStart: • o dispositivo foi reinicializado • configuração local não foi alterada • linkDown: • link ou porta de comunicação ligada ao nó falhou 2006, Edgard Jamhour Traps genéricos (2) • linkUp: • link ou porta local foi (re)ativada. • authenticationFailure: • o dispositivo recebeu msg SNMP não autorizada • comunidade não reconhecida • número IP de gerente inválido • egpNeighborLoss: • Exterior Gateway Protocol falhou no nó • normalmente usado em roteadores 2006, Edgard Jamhour Serviço de Diretório • Defini-se um serviço de diretório como sendo um "banco de dados" especializado para informações de gerenciamento. • Exemplos bem conhecidos de serviços de diretório são: – Especificação LDAP – Especificação X500 – Especificação DNS (Nomes de Domínio) • Serviços de diretório são utilizados para oferecer um repositório "logicamente" centralizado com as informações de gerenciamento. 2006, Edgard Jamhour Modelos de Serviço de Diretório • Um serviço de diretório deve ser capaz de: – Armazenar qualquer tipo de objeto • DNS, por exemplo, só armazena registros que relacionam nomes com endereços. – Oferecer mecanismos flexíveis de consulta • por exemplo, localizar o email de uma pessoa pela departamento onde trabalha e cargo que ocupa. – Armazenar as informações numa arquitetura decentralizada • Serviço de Diretório = Banco de Dados Distribuído. – Utilizar um mecanismo para nomear os objetos independente do seu tipo. 2006, Edgard Jamhour Serviço de Diretório X500 • X500 é um protocolo CCITT projetado para construir um serviço de diretório distribuído de alcance global. • Ele oferece as seguintes características: – Escalabilidade • Sistema de Banco de Dados Distribuído – Mecanismos de Procura Flexíveis • Linguagem de consulta orientada a objetos – Espaço de Nomes Homogêneo • Mesma notação para qualquer objeto. – Serviço padronizado e aberto. • Definido por normas CCITT 2006, Edgard Jamhour Modelo Funcional X500 (Banco de Dados Distribuído) DUA (Directory User Agent) DAP (Directory Access Protocol) DSP (Directory Service Protocol). DUA DAP DSA DSP DSP DSA DSA DAP DSP DUA Diretório X500 DSA (Directory System Agent) 2006, Edgard Jamhour Modelo Funcional X500 • DSP (Directory Service Protocol). Protocolo que padroniza a comunicação entre servidores. Essa comunicação ocorre quando uma consulta não pode ser satisfeita pelo servidor local. • DAP (Directory Access Protocol). Protocolo de acesso, que padroniza a comunicação entre o cliente e o servidor de diretório. • DUA (Directory User Agent) é o nome dado a parte do software do cliente que interage diretamente com o servidor de diretório. – O desenvolvimento de aplicações que interagem com o diretório é feita através de um conjunto de API's padronizadas pelo protocolo de acesso. • DSA (Directory System Agent) é a denominação dada a porção do software do servidor responsável por atender as requisições dos clientes. 2006, Edgard Jamhour Serviço de Diretório X500 prenome=edgard?email? [email protected] SERVIÇO DE DIRETÓRIO Login Bypass. Login+senha senha OK Políticas IPsec para o IP de destino 200.10.0.1? 2006, Edgard Jamhour Estrutura do X500 • As informações de diretório do X500 estão armazenadas no DIB - Directory Information Base – cada entrada do diretório aponta para um objeto Objeto: Usuário nome: sobrenome: email: Entrada Edgard Jamhour [email protected] Atributos Objeto Atributo 1 (tipo, valores) Atributo 2 (tipo, valores) .... Atributo n (tipo,valores) 2006, Edgard Jamhour Objetos do X500 RDN: Relative Distiguished Name objetos estrutura genérica de uma classe atributo 1: tipo atributo 2: tipo atributo 3: tipo … atributo N: tipo classe Pessoa nome: string sobrenome: string nc: string passord: string email: string nascimento: data uid: string objectclass: Pessoa nome: Albert sobrenome: Einstein nc: aeinstein passord: 1B5A324AB3 email: [email protected] nascimento: 01/08/1908 objectclass: Pessoa nome: Issac sobrenome: Newton nc: inewton passord: 2A2A324ZC3 email: [email protected] nascimento: 03/09/1803 2006, Edgard Jamhour X500: Esquema de Classes • Algumas classes LDAP são derivados do X500 e definidas na RFC 2256. – objectclass: person (derivada de top) • atributos obrigatórios: sn, cn • atributos opcionais: description, seeAlso, telephoneNumber, userPassword – objectclass: organizationalperson (derivada de person) • atributos opcionais: facsimileTelephoneNumber, postOfficeBox, postalAddress , postalCode, preferredDeliveryMethod , etc. – objectclass: inetOrgPerson • atributos opcionais: businessCategory, departmentNumber, employeeType, employeeNumber, homePhone, homePostalAddress, initials, manager, mobile, pager, preferredLanguage, mail, o, roomNumber, secretary, uid 2006, Edgard Jamhour Estrutura em Árvore • Os objetos podem conter outros objetos constituindo uma estrutura hierárquica em forma de árvore. Objetos que contém outros objetos são ditos containers. Uma rede de computadores ou domínio pode ser representado como uma sub-árvore no diretório. Objetos que não contém outros objetos são ditos leaf. 2006, Edgard Jamhour Esquema de Nomes X500 Classe (RDN) RDN= DN = DN: Distiguished Name Raiz () País (P) RDN: P=br RDN: P=fr Organização (O) DN: P=br RDN: O=cefetpr RDN: O=pucpr DN: O=pucpr, P=br RDN: UO=ppgia Unidade Organizacional (UO) Pessoa (NC) RDN: UO=ccet RDN: NC=inewton RDN: UO=ppgia, O=pucpr, P=br RDN: NC=aeinstein DN: NC=aeinstein, UO=ppgia, O=pucpr, P=br 2006, Edgard Jamhour Nomes • Um nome é utilizado para identificar cada objeto no diretório. Existem dois tipos de nomes: • Relative Distinguished Name (RDN): – Nome Característico Relativo – identifica o objeto através de um atributo • cn=ejamhour • Distinguished Name (DN): – Nome Característico – identifica o objeto pelo seu caminho completo a partir da raiz. • cn=ejamhour,ou=Funcionarios,ou=ppgia,o=pucpr.br 2006, Edgard Jamhour LDAP (Lightweight Directory Access Protocol) • Criado como uma alternativa mais simples ao protocolo padrão do X500. – DAP: Directory Access Protocol • Desenvolvido pela Universidade de Michigan em conjunto com o Internet Engineerig Task Force (ETF) • O LDAP está atualmente na versão 3: LDAP v3 • Diversas normas descrevem o funcionamento do LDAP: – – – – – RFC 1777 - Protocolo RFC 1779 - Modelo de Nomes RFC 1823 - API RFC 1959 - formato URL RFC 2044 - conjunto de caracteres internacionais UTF-8 2006, Edgard Jamhour LDAP • Trabalha numa arquitetura cliente-servidor: – clientes LDAP se conectam a um ou mais servidores LDAP para atualizarem e obterem informações sobre o diretório. • Define um conjunto de primitivas para manipular objetos de diretório: – Bind, search, modify, delete, etc. • LDAP inclui suporte para autenticação – Simples (clear text), Kerberos e SSL são utilizados. 2006, Edgard Jamhour Servidor LDAP: • A arquitetura LDAP segue o padrão cliente-servidor. • O servidor LDAP pode ser de dois tipos: – Fazer uma ponte com outro servidor de diretório (e.g. X500) – Ser um servidor stand-alone. 2006, Edgard Jamhour Servidor LDAP como Ponte para X500 DAP LDAP cliente LDAP servidor X500 servidor LDAP DAP servidor X500 2006, Edgard Jamhour Stand-alone LDAP servidor LDAP LDAP cliente LDAP servidor LDAP LDAP 2006, Edgard Jamhour Sintaxe de uma Consulta LDAP • ldap[s]://<host>:<porta>/<base_dn>?<atributos>?<escopo>?<filtro> • ldap://ppgia.pucpr.br/o=pucpr,c=br?email?sub?(sn=Joa*) c=br o=pucpr o=ufpr escopo sub c=br c=br o=pucpr o=pucpr o=ufpr escopo one o=ufpr escopo base 2006, Edgard Jamhour Directory Enable Networks • Criação: – Criado pelo DMTF(Distribute Engineering Task Force) • www.dmtf.org • DMTF: Reuni os principais fabricantes de produtos de hardware e software pare rede: Cisco, 3Com, Microsoft, Sun, Novel, IBM, etc. • Objetivo: – Criar um formato padrão para armazenar informações de rede em um diretório LDAP, de maneira que este possa ser compartilhado por várias aplicações. 2006, Edgard Jamhour CIM - Common Information Model • Os esquemas de diretório propostos pelo DMTF já estão implementados nas versões atuais de Solaris e Windows 2000 sob a denominação CIM: – Common Information Model • Recentemente, o DMTF juntou esforços com o IETF e criou o PCIM: – PCIM: Police Core Information Model (RFC3060) 2006, Edgard Jamhour CIM: Common Information Model Core model Application System Network Physical Device Network Foundation QoS model IPsec model BGP model Bridge model VLAN model 2006, Edgard Jamhour CIM: Common Information Model X500_Top Group (X500) ManagedSystemElement (CIM) Person (X500) Organization (X500) Configuration (CIM) Application (CIM) Protocol (CIM) Service (CIM) Profile (DEN) Policy (DEN) 2006, Edgard Jamhour Directory Enable Networks Futuras Aplicações que usam Diretório Aplicações de Gerenciamento Existentes Futuras Aplicações de Gerenciamento Protocolos de Gerenciamento Existentes hubs switches roteadores DIRECTORY ENABLE NETWORKS ESQUEMA e INTERFACES DIRETÓRIO computadores 2006, Edgard Jamhour Gerência de Redes Baseada em Políticas • A configuração e gerência de redes possui características que podem ser melhor descritas através de políticas. • Exemplo: – Políticas de operação normal, grande volume ou emergenciais. – Para atender essas políticas a rede precisa ser configurada, e não cada equipamento individualmente. – Políticas devem permitir mapear processos de negócio para as aplicações que utilizam a rede. 2006, Edgard Jamhour PCIM • Policy Core Information Model – Resultado entre um trabalho conjunto entre o DMTP e o IETF. • As seguintes RFC´s são atualmente publicadas pelo IETF: – Policy Core Information Model - Version 1 Specification (RFC 3060) – Terminology for Policy-Based Management (RFC 3198) • Os seguintes trabalhos estão no formato de Draft: – Policy Core LDAP Schema – Policy Framework QoS Information Model – Information Model for Describing Network Device QoS Datapath Mechanisms – Policy Core Information Model Extensions 2006, Edgard Jamhour O que é o PCIM? • PCIM é um modelo genérico: – Define um conjunto de classes e relacionamentos de maneira extensível. – Políticas para o controle de objetos gerenciáveis são definidas pela extensão desse modelo. • Princípios: – PCIM representa a estrutura e não o conteúdo de uma política. – O conteúdo deve ser definido para herança das classes genéricas do PCIM de maneira a criar estrutura de políticas especializadas para áreas de aplicação e produtos específicos. 2006, Edgard Jamhour Máquina de Estados • O gerenciamento baseado em políticas presume que a rede é modelada como uma máquina de estados. • As classes e relacionamentos do PCIM são usadas para modelar: – O estado de uma entidade – As ações para manter a entidade num dado estado ou movê-la para outro estado. – A configuração a ser aplicada numa entidade para mantê-la ou movê-la para outro estado. 2006, Edgard Jamhour Políticas = Conjunto de Regras • Uma política PCIM é formada por um conjunto de regras. Cada regra é definida por um conjunto de condições e um conjunto de ações. • As regras podem ser priorizadas e agrupadas para modelar uma hierarquia administrativa. Política Regra 1 Condição 1 … Condição N Ação … Açaõ N Regra 2 … Regra N 2006, Edgard Jamhour Principais Classes do PCIM 2006, Edgard Jamhour PCIMe 2006, Edgard Jamhour Condições 2006, Edgard Jamhour Mapeamento de Políticas no Dispositivo 2006, Edgard Jamhour QPIM: Policy Quality of Service Information Model 2006, Edgard Jamhour Policy Based Networking • PDP: Policy Decision Point • PEP: Policy Enforcement Point Policy Management Tool request aplicativo PEP COPS decision PDP request dispositivo PEP Policy Repository LDAP COPS decision Base de Estados 2006, Edgard Jamhour COPS • Common Open Policy Services Protocol – RFC 2748: • The COPS (Common Open Policy Service) Protocol (Janeiro 2000) – RFC 2749: • COPS usage for RSVP (Janeiro 2000) – RFC 2753: • A Framework for Policy-based Admission Control (Janeiro 2000) – RFC 3084: • COPS Usage for Policy Provisioning (COPS-PR) (Março 2001) 2006, Edgard Jamhour COPS • Protocolo simples, extensível, baseado em TCP. – A conexão TCP é permanente • As mensagens COPS são transmitidas como objetos independentes e flexíveis – novos objetos podem ser criados • A segurança pode ser implementada por IPsec ou TLS. PEP PDP Open Client Type Connection PEP PDP Request Decision Client Connection Accept Report 2006, Edgard Jamhour Princípio • O PDP é stateful. – As requisições feitas pelos PEPs são “lembradas” pelo PDP até que sejam explicitamente apagadas pelo PEP. • As mensagens COPS são enviadas através de conexões TCP iniciadas sempre pelo PEP. – Na inicialização o PEP solicita a carga de uma configuração inicial. – Mas o PDP pode enviar mensagens não solicitadas ao PEP através dessas conexões. • As decisões tomadas pelo PDP são assíncronas. – O PDP pode carregar novas configurações no PEP. – O PDP pode remover certas configurações no PEP quando elas não forem mais necessárias. 2006, Edgard Jamhour Modelo Básico • LPDP: Local Policy Decision Point – Permite ao PEP tomar decisões na ausência do PDP. • O LDPD não é um substituto do PDP. – O PDP central é autoritário sobre o LPDP. – Todas as decisões importantes devem ser enviadas ao PDP central. Nó de Rede PDP PEP COPS LPDP 2006, Edgard Jamhour Funcionamento • 1) O PEP faz uma conexão TCP no PDP. • 2) O PEP envia uma mensagem de “Request” identificando o tipo de política desejada . • 3) O PDP envia para o PEP as configurações através de mensagens “Decision”. • 4) O PEP instala as configurações e quando estiver pronto envia a mensagem “Report”. • 5) O PDP pode enviar uma mensagem “Decision” não solicitada para o PEP para anular uma requisição já concedida. • 6) O PEP deve responder a essa mensagem com “Report”. 2006, Edgard Jamhour Mensagens COPS • As mensagens COPS são formadas por um cabeçalho fixo, seguido por um número variável de objetos. – Version: • atualmente 1 – Flags: • Apenas o flag “Solicited Message Flag” está definido – Op Code: • Mensagem COPS – Client Type: • Identifica o tipo de cliente (para receber a política) – Message Length • Tamanha da mensagem em bytes (inclui o cabeçalho) 1 byte version flags 1 byte op code 2 bytes Client Type Message Length 2006, Edgard Jamhour Op Code • • • • • • • • • • 1 = Request (REQ) 2 = Decision (DEC) 3 = Report State (RPT) 4 = Delete Request State (DRQ) 5 = Synchronize State Req (SSQ) 6 = Client-Open (OPN) 7 = Client-Accept (CAT) 8 = Client-Close (CC) 9 = Keep-Alive (KA) 10= Synchronize Complete (SSC) 2006, Edgard Jamhour Objetos COPS • C-Num – – – – – – – – – – – – – – – – 1 = Handle 2 = Context 3 = In Interface 4 = Out Interface 5 = Reason code 6 = Decision 7 = LPDP Decision 8 = Error 9 = Client Specific Info 10 = Keep-Alive Timer 11 = PEP Identification 12 = Report Type 13 = PDP Redirect Address 14 = Last PDP Address 15 = Accounting Timer 16 = Message Integrity • C-Type – – Depende de C-Num Indica o subtipo ou versão da informação transportada pelo objeto. 2 byte 1 byte Length C-Num 1 byte C-Type Object Contents 2006, Edgard Jamhour Escalabilidade Repositório de Políticas PDP PDP COPS PEP COPS PEP PEP PEP PEP PEP PEP 2006, Edgard Jamhour Modelos de PDP/PEP • O COPs pode ser utilizado em duas estratégias diferentes: – Outsourcing: • Poucas informações são armazenadas no dispositivo gerenciado (PEP). • O PEP consulta ao PDP para tomar decisões relativas aos eventos do dispotivo. – Provisioning: • A maioria das informações de configuração é armazenada no PEP na inicialização do dispositivo. • O PEP toma a maioria das decisões localmente. 2006, Edgard Jamhour Modelo Outsourcing • Cada evento no PEP dispara uma consulta ao PDP. 2006, Edgard Jamhour Modelo Provisioning • O PEP tem autonomia para tomar decisões localmente. 2006, Edgard Jamhour PIB - Policy Information Base • Similar a MIB, utilizada pelo SNMP, uma PIB é uma árvore lógica que permite representar políticas na forma de variáveis unicamente identificadas. PRC - Provisioning Classes PRI - Provisioning Instances 2006, Edgard Jamhour Tipos de Classes PIB • 1) Notify: PEP PDP – os valores dos atributos destas classes são definidos pelo próprio dispositivo (PEP). • 2) Install: PDP PEP – os valores dos atributos destas classes são preenchidos de acordo com a decisão do PDP. • 3) Notify / Install : PDP PEP – as classes deste tipo combinam as características dos dois ítens acima, 2006, Edgard Jamhour Exemplo: Diffserv PIB • O IETF definiu algumas PIBs padronizadas, como para os casos do IPsec e do Diffserv. 2006, Edgard Jamhour Exemplo: Diffserv PIB B B 1 2006, Edgard Jamhour Representação OID 2006, Edgard Jamhour Exemplo: CIM X QPIM X PIB 2006, Edgard Jamhour Princípios do Modelo Provisioning 2006, Edgard Jamhour Feedback do uso de políticas • O feedback do uso de políticas pode ser: – Periódico ou solicitado • As políticas solicitadas definem as características a serem monitoradas e o intervalo para envio de relatórios. • O feedback é enviado pelo PEP pela mensagem de Report • O feedback pode ser utilizado para implementar políticas dinâmicas e mecanismos de contabilização. 2006, Edgard Jamhour Failover • Se a conexão TCP com o PDP cair o PEP usa as políticas guardadas em cache. • No restabelecimento da conexão, o PDP envia uma mensagem de re-sincronização para as políticas guardadas em cache. 2006, Edgard Jamhour Conclusão • Policy Based Networking é uma nova abordagem amplamente adotada pelo DMTF e o IETF. • A arquitetura de Policy Based Networking é baseada no framework: – PDP, PEP e COPS. • Sua aplicabilidade inicial é para gerenciar políticas de QoS e Segurança em dispositivos de rede. • Todavia, o modelo PCIM pode ser adaptado para qualquer outra área de configuração e contabilização de dados. 2006, Edgard Jamhour ANEXOS A RMON 2006, Edgard Jamhour Monitoração de redes • SNMP e MIBs em agentes só permitem analisar valores isolados (nos agentes) • Como medir o tráfego na rede ? tráfego = 137 kbps tráfego = 55 kbps tráfego = ? 2006, Edgard Jamhour Monitores de rede • Ouvem a rede continuamente • Podem ouvir várias redes • Não interferem nas redes monitoradas monitor 2006, Edgard Jamhour Informações monitoradas • Todos os pacotes são ouvidos • Podem ser aplicadas filtragens • tipo de pacote, protocolo, origem, destino, ... • Produção de dados estatísticos • distribuição por tipo de pacote • percentual de colisões • taxas de transferência • Armazenagem de pacotes para análise 2006, Edgard Jamhour Monitorando múltiplas redes • Um monitor para cada sub-rede • Monitores devem ser acessíveis pelo gerente monitores gerente router 2006, Edgard Jamhour Definindo um monitor • Definir a informação a armazenar • significado dos dados • tipos dos dados • estrutura geral da informação • Definir formas de acesso • leitura/escrita • configuração • relatar eventos • Implementar • como um dispositivo dedicado • serviço adicionado a um elemento da rede 2006, Edgard Jamhour RMON • RMON: Remote Monitoring • • • • • Norma para monitores de redes Define uma (imensa) MIB Dados são acessados via SNMP Efetua a monitoração contínua de redes Versões: • RMON v1: monitoração MAC (ethernet, token ring, ...) • RMON v2: monitora camadas mais elevadas • Monitor: agente RMON ou sonda RMON 2006, Edgard Jamhour Objetivos de RMON • Operação off-line • autônoma (independe do gerente) • diminui o tráfego de rede • Monitoração pró-ativa • diagnósticos contínuos • monitoração de desempenho • pode gerar alarmes enviados ao gerente 2006, Edgard Jamhour Objetivos de RMON (2) • Informações de valor agregado • dados estatísticos • informações históricas • Acesso por múltiplos gerentes • diferentes objetivos de gerência • tolerância a falhas • Compatibilidade com padrões • informação na forma de MIBs • acesso via protocolo SNMP 2006, Edgard Jamhour Controle da sonda RMON • Monitor é acessado remotamente para: • configuração geral • invocação de ações • Configuração: • indicar tipo e forma dos dados a coletar • manipulação de tabelas de controle • Ações: • leitura e escrita de valores • invocação de “value triggered commands” 2006, Edgard Jamhour Organização da MIB RMON • Cada grupo consiste de: • uma ou mais tabelas de dados (read-only) • uma ou mais tabelas de controle (read-write) • Tabelas de dados: • valores coletados da rede e processados • Tabelas de controle • indicam que dados devem ser coletados • cada linha representa uma função de coleta • Podem ser fundidas em uma só tabela 2006, Edgard Jamhour Múltiplos gerentes • Vários gerentes podem acessar uma sonda • acessos concorrentes podem saturar a sonda • um gerente pode monopolizar a sonda • Para o controle de múltiplos gerentes: • • • • cada linha da tabela de controle possui um owner propriedade: IP do gerente, localização, telefone, ... informação de propriedade não limita o acesso o monitor pode ser proprietário de algumas linhas 2006, Edgard Jamhour Gerência de tabelas • Complexo e pouco claro (Stallings 96 !) • Inserção e remoção de linhas nas tabelas de controle • Cada linha de tabela de controle possui: • OwnerString: o proprietário da linha de controle • EntryStatus: situação daquela linha: – – – – valid create request under creation invalid • Demais informações 2006, Edgard Jamhour Indexação de tabelas xyzControlTable xyzControlIndex xyzControlParameter xyzControlOwner xyzControlStatus 1 5 Monitor Valid(1) 2 26 Manager alpha Valid(1) 3 19 Manager gamma Valid(1) xyzDataTable XyzDataControlIndex XyzDataIndex xyzDataValue 1 1 46 2 2 1 2 96 85 2 3 77 2 2 4 5 27 92 3 1 86 3 2 26 2006, Edgard Jamhour Inserção de linhas • Através do método SNMP set: set [index, (tipo, valor), (tipo, valor), ...] • erro badValue em caso de dado inválido ou impossibilidade de criação • tratamento de conflitos em acessos simultâneos torna-se necessário 2006, Edgard Jamhour Passos para a criação de linhas • Seqüência de passos para criar linhas: 1. se a linha solicitada não existe (índice inexistente), ela é criada e seu status recebe o valor “createRequest”; 2. imediatamente após a criação o monitor muda o status da linha para “underCreation”; 3. as novas linhas permanecem nesse estado até o gerente terminar de criar todas a linhas desejadas; 4. ao final o gerente seta o campo de status das linhas criadas por ele para o valor “valid”; 5. tentativas de criar linhas cujos índices já existem resultam em erro. 2006, Edgard Jamhour A MIB RMON rmon (16) statistics (1) mib-2 history (2) alarm (3) host (4) hostTopN (5) matrix (6) filter (7) capture (8) event (9) tokenRing (10) 2006, Edgard Jamhour Grupo statistics • Uma tabela para cada sub-rede monitorada • sub-rede referenciada por sua interface • Informações mais importantes: • carga da sub-rede • saúde da sub-rede (erros, colisões) • pacotes fora de tamanho (undersize, oversize) • Mais detalhado que mib-2.interfaces 2006, Edgard Jamhour Grupo history • Amostragens do tráfego nas interfaces ao longo do tempo de operação • Cada linha da tabela de controle define um conjunto de amostras • Cada linha da tabela de dados corresponde a uma amostra • Defaults: • cada amostra dura 1800 segundos • as 50 últimas amostras são mantidas 2006, Edgard Jamhour Outros grupos • hosts • estatísticas sobre hosts na sub-rede • hostTopN • estatísticas sobre hosts segundo algum critério • armazena dados sobre os N primeiros hosts em termos de tráfego, erros, tipos de pacotes, etc. • matrix • armazenar dados sobre tráfego entre pares de hosts • tokenRing • suporte a informações de redes token-ring 2006, Edgard Jamhour Alarmes • Alarmes são registrados na MIB • gerados pelo grupo alarm • tratados pelo grupo event • podem ser enviados ao gerente via traps • Cada entrada da tabela contém: • OID da variável a ser monitorada • intervalo de amostragem • parâmetros de limiar (threshold) • Um exemplo: • + de 500 erros CRC nos últimos 5 minutos 2006, Edgard Jamhour O ciclo de histerese • Pequenas flutuações no valor monitorado poderiam gerar alarmes • excesso de alarmes sem utilidade • Usa dois limiares de disparo do alarme: • inferior: valor mínimo em condições normais • superior: valor máximo em condições normais • Gerar alarmes somente quando: • valor ultrapassar o limite superior • valor descer abaixo do limite inferior • de forma alternada ! 2006, Edgard Jamhour O ciclo de histerese estado do alarme disparo do alarme inferior disparo do alarme superior alarme superior alarme inferior valor monitorado 2006, Edgard Jamhour Geração de alarmes • Alarme é gerado quando: • valor maior que o limiar superior (risingThreshold) • valor menor que o limiar inferior (fallingThreshold) disparos valor lim sup lim inf tempo 2006, Edgard Jamhour O grupo filter • Permite regras de filtragem dos pacotes – dois tipos de filtros: • data filter: padrões de bits nos pacotes • status filter: status dos pacotes (válido, erro de CRC, ...) – filtros podem ser combinados • operações lógicas AND, OR, seqüências • Os pacotes filtrados: • constituem um fluxo chamado canal (channel) • podem disparar eventos • podem ser armazenados no grupo capture 2006, Edgard Jamhour Considerações práticas • Uso correto da sonda e do gerente • • • • evitar uso abusivo de alarmes e eventos uso inteligente de filtros e captura risco de saturar a sonda e a rede poder de processamento da sonda é limitada • Problemas de interoperabilidade • discrepância entre MIBs de fabricantes distintos • muitas funções são parcialmente implementadas 2006, Edgard Jamhour RMON v2 • RMON v1: • limitado à camada MAC • ethernet e token-ring • poucos recursos de configuração • RMON v2: • • • • suporte às demais camadas (3 a 7) monitoração de protocolos de aplicação visibilidade de tráfego vindo de fora (IP) tabelas replicadas para cada protocolo • Outras inovações • grupo MIB de configuração da sonda 2006, Edgard Jamhour ANEXOS B SNMPv2 2006, Edgard Jamhour SNMPv2 • Definido em 1993 (RFC) • Suporte flexível: – gerência centralizada – gerência distribuída • Modificações mais significativas: – estrutura de informação (SMI) – interações “gerente a gerente” – operações do protocolo 2006, Edgard Jamhour SMI em SNMPv2 • Super-conjunto da SMI em SNMPv1 • Especificação e documentação mais elaboradas dos objetos da MIB • Novos conceitos: – – – – definições de novos objetos tabelas conceituais novas definições de notificações módulos de informação 2006, Edgard Jamhour Definições de objetos • Melhor definição de OBJECT-TYPE • Novos tipos de dados: – Counter32 – Unsigned64 • Remoção de ambigüidades de SNMPv1 • Novas interpretações de alguns tipos: – Gauge32 – Counter64 2006, Edgard Jamhour Cláusula MAX ACCESS • Similar a ACCESS, enfatizando que o acesso não pode ser modificado por configuração do agente • Níveis de acesso: – – – – – not accessible accessible for notify read only read-write read-create (tabelas conceituais) 2006, Edgard Jamhour Cláusula STATUS • Novos status: – current – deprecated – obsolete • Desaparecem: – mandatory – optional 2006, Edgard Jamhour Tabelas • Duas categorias de tabelas: – estrutura fixa – estrutura alterável • Criação/deleção de linhas – operações pelo gerente, via SNMP – extremamente complexo e controverso – segue o modelo adotado em RMON 2006, Edgard Jamhour O protocolo SNMPv2 • Três formas de interação – manager to agent, request/response – agent to manager, unconfirmed – manager to manager, request/response • o último é definido em SNMPv2 2006, Edgard Jamhour PDUs SNMPv2 • GetRequest, GetNextRequest – similar à de SNMPv1 – resposta não é mais atômica • SetRequest – idem • GetBulkRequest – busca de grandes blocos de dados – equivale a um GetNextRequest múltiplo 2006, Edgard Jamhour PDUs SNMPv2 • InformRequest – comunicação entre gerentes – enviado pelo gerente que deseja enviar a informação – resposta ResponsePDU sem conteúdo. • ReportPDU – não utilizada (abandonada nas RFCs) 2006, Edgard Jamhour ANEXOS C LDAP 2006, Edgard Jamhour Raizes de Árvore no Servidor Raiz do diretório ou=Groups o=ppgia.pucpr.br ou=People 389 Servidor LDAP o=NetscapeRoot 2006, Edgard Jamhour Exemplo o=ppgia.pucpr.br ou=Exemplo ou=Funcionarios cn=ejamhour Objectclass = organization Objectclass=organizationalUnit ou=Grupos ou=analistas Objectclass =organizationalUnit Objectclass =groupOfNames cn=acalsavara Objectclass =inetOrgPerson 2006, Edgard Jamhour Parâmetros do LDAP • <host> – Nome (ou endereço IP) do servidor LDAP (por exemplo, ldap.ppgia.pucpr.br ou 200.17.98.174). • <porta> – Porta do servidor LDAP. Se nenhuma porta for especificada, assume-se a porta padrão 389. • <base_dn> – dn do ponto de início da procura. • <atributos> – indica quais atributos do objeto serão retornados. • <escopo> – define como efetuar a procura. • <filtro> – define os critérios da procura. 2006, Edgard Jamhour Exemplos de Consulta LDAP em URL • ldap://servidorLDAP/ou=RSD,o=ppgia.pucpr.br • Solicita o todos os campos do objeto RSD • ldap://servidorLDAP /ou=RSD,o=ppgia.pucpr.br? endereço • Solicita apenas o campo endereço do objeto PUCPR. • ldap://servidorLDAP / ou=RSD,o=ppgia.pucpr.br? email?sub?(cn=Alc*) • Solicita todos os emails da PUCPR pertencentes a usuários que tem o nome começando por Alc. 2006, Edgard Jamhour Comandos para localizar o usuário • Procura todas as pessoas em ppgia.pucpr.br: – – – – Servidor: ldap://icaro.ppgia.pucpr.br/ Search Root: o=ppgia.pucpr.br Escopo: sub Filtro: (objectclass=Person) • Procura as pessoas em sua_Unidade – – – – Servidor: ldap://icaro.ppgia.pucpr.br/ Search Root: ou=sua_Unidade,o=ppgia.pucpr.br Escopo: sub Filtro: (objectclass=Person) • Procura as pessoas em Curitiba – – – – Servidor: ldap://icaro.ppgia.pucpr.br/ Search Root: ou=Curitiba,ou=sua_Unidade,o=ppgia.pucpr.br Escopo: sub Filtro: (objectclass=Person) 2006, Edgard Jamhour Procura por Atributos • Atributos disponíveis para Person: – telephoneNumber, seeAlso, userPassword, description • Atributos para organizationalperson: – title, street, ou, postalAddress, postalCode • Exemplo de Consulta: – Filtro: title=Professor) – Filtro: (title=Prof*) 2006, Edgard Jamhour Filtros LDAP • a) Especifica objetos do tipo carro – (objectClass=carro) • b) especifica carros da marca Golf ou Vectra – ( &(objectClass=carro) ( |(marca=Golf)(marca=Audi))) • c) especifica carros da marca Golf ou Vectra mas não importados. – ( &(objectClass=carro) (|(marca=Golf)(marca=Audi)) (!(origem=importado))) 2006, Edgard Jamhour Servidores LDAP Stand Alone e Referral • Quando um servidor LDAP não conhece a resposta a uma pergunta do cliente, e pelo indicar um outro servidor LDAP (chamado referral) ou uma lista de servidores LDAP para o cliente consultar. LDAP LDAP Servidor LDAP CLIENTE LDAP Servidor LDAP LDAP Servidor LDAP 2006, Edgard Jamhour Diretório Distribuído: Smart Referral icaro.ppgia.pucpr.br o=ppgia.pucpr.br hal2002.ppgia.pucpr.br ou=Exemplo o=ppgia.pucpr.br ou=São Paulo ou=Curitiba ou=Exemplo ou=Persons ref=xxxx ou=Curitiba cn=George Bush Objectclass = referral ou=Persons cn=Bill Gates 2006, Edgard Jamhour Sintaxe • O objeto referral deve ter um link para o servidor para o qual se deseja redirecionar as consultas: • No exemplo anterior: – No servidor icaro deve ser criado • A) Um objeto vazio do tipo unidade organizacional: – ou=Curitiba – Este objeto deve ser derivado de: » organizatinalunit » refferal • B) O atributo refferal permite redirecionar as consultas: – ref = ldap://hal2002.pucpr.br/ou=Curitiba,ou=Exemplo, o=ppgia.pucpr.br 2006, Edgard Jamhour Exemplo • O arquivo LDIF que cria um entrada de referral é ilustrado abaixo: – – – – – – – – – – dn: uid=ACalsavara, ou=people, dc=pucpr,dc=br objectclass: top objectclass: person objectclass: organizationalperson objectclass: inetOrgPerson objectclass: referral cn: Alcides Calsavara sn: Calsavara uid: ACalsavara ref: ldap://10.32.1.253/cn=Alcides%20Calsavara,ou=people, l=europe,dc=pucpr,dc=br 2006, Edgard Jamhour Diretório Distribuído: Smart Referral hal2002.ppgia.pucpr.br o=ppgia.pucpr.br ou=Exemplo icaro.ppgia.pucpr.br o=ppgia.pucpr.br ou=Curitiba ou=São Paulo ou=Exemplo ou=Persons cn=George Bush ref=xxxx Objectclass = referral ou=São Paulo ou=Curitiba ou=Persons ref=yyyy cn=Bill Gates 2006, Edgard Jamhour