260 likes | 347 Views
Gerenciamento de Rede através de XML. Caio Klein caio @juniper.net. Introdução. Roteadores são dispositivos complexos e apresentam desafios para o gerenciamento remoto Métodos tradicionais de são SNMP e Expect com seus prós e contras bem conhecidos
E N D
Gerenciamento de Rede através de XML Caio Klein caio@juniper.net
Introdução • Roteadores são dispositivos complexos e apresentam desafios para o gerenciamento remoto • Métodos tradicionais de são SNMP e Expect com seus prós e contras bem conhecidos • Operadoras e desenvolvedores de software necessitam de métodos seguros e estáveis para gerenciar roteadores • Tendência de implantação de ferramentas “multivendor” para gerenciar redes • XML é uma alternativa com excelente potencial
XML • Extensible Markup Language • XML é uma linguagem genérica e auto-descritiva utilizada para formatação de documentos • As aplicações lêem os dados, analisam e sabem exatamente o significado de cada parte do documento • Um documento XML é um “arquivo texto com estrutura” • Fácil compreensão • Fácil de analisar • Fácil de depurar • Padrão amplamente adotado • http://www.w3c.org/xml
Por que XML? • Dispositivos de rede geram grandes volumes de dados estruturados • Arquivos de configuração • Tabelas de roteamento • Interfaces físicas e lógicas • Arquivos de bilhetagem • XML é apropriado para descrever dados hierárquicos de maneira padronizada
Inconveniências atuais • SNMP • MIBs proprietárias para explorar o potencial dos equipamentos • Não é orientado a texto • Não existe comando atômico para recuperar informação estruturada • Expect • Sensível a mudanças na CLI • Falta de ferramentas adicionais
Elementos XML • Seis construções principais • Open tags: <tag> • Close tags: </tag> • Data: <tag>data</tag> • Empty tags: <tag/> • Attributes: <tag foo=“bar” goo=“gar”/> • Namespaces: <home> <address>123 Main Street</address> <network xmlns:ns2=“my.identifying.string”> <ns2:address>10.0.0.1</ns2:address> </network> </home>
Exemplo XML <?xml version="1.0" encoding="UTF-8"?> <route> <destination>10.3.1.1/32</destination> <route-entry> <current-active/> <protocol-name>BGP</protocol-name> <preference>170</preference> <ageseconds="1749">00:29:09</age> <local-preference>100</local-preference> <learned-from>10.17.136.2</learned-from> <as-path>1403 170 39 I</as-path> <nh> <selected-next-hop/> <to>192.168.1.254</to> <via>ge-0/0/0.0</via> </nh> </route-entry> </route>
Vantagens do XML • Manipula facilmente incompatibilidades com documentos antigos ou mais novos • Muitas ferramentas disponíveis • Padrão amplamente adotado • http://www.w3c.org/xml
DTDs e XML Schemas • Ferramentas que definem documentos XML • Document Type Definitions (DTDs) • Lista os elementos que podem aparecem em um documento XML e as suas relações hierárquicas • XML Schemas • Define o conteúdo e a semântica além das relações entre elementos • Tipos de dados simples e complexos, faixa de valores, expressões regulares e documentação
XSL • XML Stylesheet Language • Destinado originalmente à interpretar XML • Adequado a tranformações genéricas • Duas utilizações principais • XSLT – Transformações XSL • Transformações XML->XML • Inclui informação adicional • Remove elementos e atributos desnecessários • Rearraja hierarquia, ordena elementos ... • XSL-FO – XSL Formating Objects • Traduz XML para XHTML ou PDF
Funcionalidade XSL XSLT Stylesheet <TD> MTU: <xsl:value-of=“.”/> </TD> XML Input Document XML Output Document <mtu> 1500 </mtu> XSLT Processor <TD> MTU: 1500 </TD> XSLT pode gerar: XML, XHTML, Text, SVG, XSLT
XPath • Padrão de descrição das partes de um documento XML • Utiliza expressões de caminho “Unix-like” • Utilizada por XSL • Ex1: Seleção do número serial de cada componente do chassi • /chassis-inventory/chassis/chassis-module/serial-number • Ex2: Seleção dos componentes com temperatura acima de 40 • chassis-module[@temperature > 40] • Ex3: Obter status da fonte B • chassis-module[name="Power Supply B"]/status
Utilizando XML na Rede • Monitoração da Rede • Configuração de Equipamentos • Provisioning • Diagnóstico de Falhas
Monitoração da Rede • Aplicações periodicamente recuperam dados operacionais • Comparação com dados anteriores pode utilizar “XML diff tools” ou transformar os dados em formato mais apropriado através do XSLT • Utilização do XSLT para interpretar • Web page (XSLT) • Email (XSLT) • Report PDF (XSL-FO) • Exemplo: Levantamento de inventário de harware
Inventário de Hardware Recuperação de inventário da rede . . . . . . . Router A Router Z XSL Transformation Transformação dos dados para o formato exigido pelo BD Adiciona os dados no BD de inventário Inventory DB
Configuração de Equipamentos • Configuração está inserida nos elementos XML • Exemplo: <configuration> <protocols> <bgp> <group> <name>local</name> <neighbor> <name>10.0.0.1</name> <local-address>10.0.0.2</local-address> </neighbor> </group> </bgp> </protocols> </configuration>
Configuração de Equipamentos • Arquivos de configuração no formato XML • A configuração torna-se manipulável por ferramentas padronizadas • Adiciona/remove/modifica configuração através de XSLT • Armazena e recupera informação de uma base de dados XML
Provisioning • Evita escrever multiplos “parsers”, um para cada fabricante • XSLT pode traduzir uma configuração neutra para a configuração específica de um fabricante • XML Schemas podem fornecer tipos de dados, faixas de valores, expressões regulares e informações de ajuda para a configuração de um fabricante • Permite validar parcialmente uma configuração antes de carregá-la
Provisioning Configuração neutra Configuração específica de fabricante BD Clientes TransformaçõesXSL BD Interfaces BD Políticas Roteador(es)
Diagnóstico de Falhas • Qualquer operador sabe “5 comandos” quando entra em um roteador com problema • Diagnóstico pode ser feito aplicando “scripts” XSL sobre saídas em XML • XSL é uma ferramenta poderosa • Inspeciona resultado de múltiplos comandos • Descarta resultados normais • Extrai situações anormais • SVG (Scalable Vector Graphics (XML)) pode gerar gráficos para visualização de valores ao longo do tempo • Pode inspecionar simultaneamente múltiplos roteadores
telnet usr/passwd xml-mode <?xml?> <get-bgp-neigbor> <bgp-neighbor> <end-session> ? Na prática... Aplicação Roteador Autenticador Pedido de conexão (telnet, ssh, ssl) Autenticação usuário (RADIUS, PPK, ...) Solicitação de sessão XML Abertura da sessão Solicitação Resposta Fechamento de sessão Processamento
Sumário • XML simplifica desenvolvimento de aplicações • Informações e ferramentas disponíveis • Formato texto de fácil compreensão • Grande quantidade de engenheiros com know-how • Alternativa confiável aos scripts Expect • A natureza auto descritiva do XML evita problemas como a variação da CLI • Interoperabilidade • XML é um método padrão para a troca de informação entre programas • Adotado por muitos segmentos – eCommerce, databases, networking, ...
Obrigado! http://www.juniper.net