Gerenciamento de Rede através de XML Caio Klein caio@juniper.net

Preview:

Citation preview

Gerenciamento de Rede através de XML

Caio Kleincaio@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>

<?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> <age seconds="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>

Exemplo XML

Vantagens do XML

Manipula facilmente incompatibilidades com documentos antigos ou mais novos

Muitas ferramentas disponíveisPadrã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

XSLTProcessor

XSLTStylesheet

XMLInput

Document

XMLOutput

Document

XSLT pode gerar: XML, XHTML, Text, SVG, XSLT

<TD>MTU: 1500</TD>

<mtu>1500</mtu>

<TD>MTU: <xsl:value-of=“.”/></TD>

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 &gt; 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

Inventory DB

Router A

Router Z

. . . . . .

.

Recuperação de inventário da rede

Transformação dos dados para o formato exigido pelo BD

Adiciona os dados no BD de inventário

XSL Transformation

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

Roteador(es)

BD Clientes

BD Interfaces

BD Políticas

TransformaçõesXSL

Configuração específica de

fabricante

Configuração neutra

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

Na prática...

Pedido de conexão (telnet, ssh, ssl)

Processamento

Resposta

Solicitação

Abertura da sessão

Solicitação de sessão XML

Autenticação usuário (RADIUS, PPK, ...)

Fechamento de sessão

Aplicação Roteador Autenticador

telnet

usr/passwd

xml-mode

<?xml?>

<get-bgp-neigbor>

<bgp-neighbor>

<end-session>

?

Captura da Solicitação

Captura da Resposta

Resultado do 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, ...

http://www.juniper.net

Obrigado!