30 de ago de 2018

[ceptro-alumni] seus usuários têm problemas com plataformas de games online ou consoles por causa do CGNAT ou ausência de IPv6?


Olá.

Alguns provedores Internet nos procuram de tempos em tempos para nos relatar dificuldades nesse momento de transição para o IPv6. Um dos tópicos recorrentes é sobre games online. Esses provedores, como a maioria aqui no Brasil, usam alguma espécie de CGNAT para compartilhar endereços IPv4 públicos entre vários usuários. E também entregam já IPv6 na casa do usuário. Acontece que as plataformas de games online e alguns consoles de videogame aparentemente não funcionam bem, ou não funcionam mesmo, nem com IPv6, nem com IPv4 compartilhado, pelo menos em certas situações.

Alguns nos dizem que é um problema bastante sério, que gera muitas ligações no callcenter e bastante insatisfação dos usuários.

Sensibilizados pelo problema e com dificuldades de iniciar um diálogo envolvendo as empresas responsáveis pelos games, nós resolvemos propor
um workshop, uma espécie de debate, no IGF, pra chamar a atenção sobre o assunto. O IGF é um Fórum sobre Governança da Internet, um espaço
global, internacional, para o diálogo sobre vários assuntos relacionados à Internet, onde participam empresas, governos, academia, a comunidade
técnica, ONGs, ou seja, todo mundo... O IGF é organizado pela ONU, mas é um espaço multistakeholder, aberto para a participação de qualquer
indivíduo ou instituição, um espaço de diálogo importantíssimo para a Internet atualmente. Pois bem, propusemos esse debate e ele acontecerá
em algumas semanas, na próxima reunião do IGF, em Paris.

Nós agora precisamos da ajuda dos provedores para levantar mais dados sobre a situação. Seus usuários reclamam de problemas com alguma
plataforma de game online, ou algum console de videogame? Você entende que esse problema específico é relacionado a falta de IPv6 nessa
plataforma, a problemas com a implementação do IPv6 nessa plataforma de games, ou a alguma dificuldade com o CGNAT, com endereços IPv4
compartilhados?

Por exemplo, já ouvimos relatos sobre lentidão de games com CGNAT. Ou sobre a impossibilidade de conexão ao game online, se o usuário está com
CGNAT. Sobre IPs que são colocados em blacklists e nunca mais saem, prejudicando todos os que estão compartilhando o mesmo IP e obrigando o
provedor a tirar o IP do pool usado no NAT. Sobre plataformas que quando entra um segundo usuário com o mesmo IP, o primeiro para de funcionar.
Entre outros. Seus usuários já relataram esse tipo de problemas? Ou outros relacionados?

Preencha por favor o formulário online se tiver informações pra nos fornecer:

https://goo.gl/forms/AQahTOfn6MdnMmYQ2

Obrigado.
--
Antonio Marcos Moreiras
Gerente de Projetos e Desenvolvimento
Centro de Estudos e Pesquisas em Tec. de Redes e Operações (Ceptro.br)
Núcleo de Informação e Coordenação do Ponto BR (NIC.br)
+55 11 5509-3553
+55 11 99154-8838
INOC 22548*266
www.nic.br

11 de ago de 2018

Projeto Universidade EVE-ng


Cadastre sua Instituição de Ensino. Bolsas de Estudo e Descontos Especiais para Estudantes Universitários


O NetFindersBrasil está expandindo sua infraestrutura de Servidores na Nuvem e quer estar presente junto às Instituições de Ensino no Brasil e na preparação das novas gerações de profissionais de TI. Para isso, criamos o Projeto Universidade EVE-ng.

Se você é Estudante Universitário ou Docente de alguma Instituição que tem interesse em utilizar nossos Servidores na Nuvem como recurso para a criação de Laboratórios focados em Redes de Computadores e Segurança da Informação, entre em contato conosco.

Serviços oferecidos para a Comunidade Acadêmica:

- Palestras Gratuitas sobre o uso do EVE-ng (Emulated Virtual Environment) e sobre nossos serviços na Nuvem (Lab as a Service);
- Sorteio de Bolsas de Cursos e Acessos na Nuvem para que os Estudantes possam ter o primeiro contato com a Ferramenta de Simulação de Redes.

Nossa Equipe tem interesse em participar de Eventos dentro de sua Instituição, podemos nos deslocar por todo território nacional, de forma a tornar nosso trabalho mais conhecido.

Pedimos a vc, que nos conhece das Redes Sociais, que nos ajude a estar mais próximos de vocês.

Para saber mais sobre o Curso EVE-ng - Laboratórios Avançados, clique aqui.

Para saber mais sobre a Alocação do Servidor na nuvem, clique aqui

Maiores Informações pelo e-mail: adilson.aflorentino@eamsoft.com.br




10 de ago de 2018

Concorra a Cursos Cisco Oficiais na Faixa!


O Departamento de Marketing da Cisco está sorteando duas vagas para os cursos ICND1 e ICND2 na faixa. Inscreva-se já!

Basta entrar no Site abaixo e fazer o cadastro:

https://mkto.cisco.com/ccanrs.html?utm_source=socialExibir

Leia as Regras do Sorteio aqui.

Boa Sorte a Todos!!!

3 de ago de 2018

Fundamentos de Big IP LTM - F5 em Tempo Real (Exame 101)


Curso 100% Hands-on com Labs focados na utilização do balanceador de carga da F5 voltados para o Exame 101

Aulas ministradas usando a plataforma WizIq e os arquivos necessários para a confecção dos laboratórios são disponibilizados num ambiente Moodle.

São disponibilizados ao todo 5 labs montados no EVE-ng usando o Big-IP, distribuídos ao longo do curso de forma que o aluno possa treinar fora do horário de aula os conceitos aprendidos.

◦Quanto: R$ 265,00.(podendo ser parcelado em até 12X via PagSeguro).

◦Quando: de 10/09/2018 a 14/09/2018, sempre das 20:00 as 22:00 (as gravações serão disponibilizadas para quem não puder participar de alguma das sessões)

◦Pré-requisitos: Não é necessário conhecimento prévio de Big IP, basta conhecer redes IP convencionais.

◦Diferenciais:

Acesso 24 horas: Os alunos que participarem do curso Fundamentos de Big IP LTM - F5 em Tempo Real terão acesso a todo o material do curso (aulas gravadas, slides e material de apoio) durante 120 dias para acessar quando desejarem.

Plantão de dúvidas: Cada aula terá um Fórum no Moodle dedicado a sanar as dúvidas referentes aos assuntos abordados no curso.

Certificado de Participação para todos os alunos que assistirem ao curso e realizarem todas as atividades propostas

Conteúdo Programático:

Aula 01 - Entendendo as soluções e Tecnologias da F5 - Lab Inicial

Aula 02 - Apresentando o propósito, usos e vantagens das iRules e iApps

Aula 03 - Uso de Proxy e Arquiteturas de encaminhamento de pacotes. Conceitos de Alta disponibilidade e Balanceamento de Carga

Aula 04 - Segurança: Serviços criptográficos, Autenticação, uso de IPSec e SSL VPN

Aula 05 - Application Delivery Platforms e Técnicas de Aceleração



Os interessados podem comprar o acesso no link abaixo:








Vagas limitadas! Garanta já a sua!

2 de ago de 2018

Agora sou... HCIE RS


Tenho andado sumido aqui do Blog devido a correria, e um dos motivos é a minha Corrida para o HCIE RS que terminou na sexta-feira passada. Já estava a mais de um ano nessa jornada. Primeiro o Exame Teórico, depois o Prático, o qual tomei pau e tive que refazer, e finalmente a Entrevista na última sexta-feira, dia 27/07/2018.

Após uma semana de intensa expectativa, recebi o resultado agora a pouco: Sou O 17o. brasileiro a alcançar a Certificação HCIE RS. Valeu a pena todo o esforço e dedicação!

Pretendo escrever mais a respeito das soluções da Huawei e compartilhar tudo aquilo que aprendi durante essa caminhada.

Agradeço a todos os que me ajudaram nessa caminhada: minha esposa Márcia que suportou minha ausência mais uma vez, o Merivaldo da Huawei, que me proporcionou a oportunidade de realizar os Exames, ao João Vasconcelos e o Claudio Boscatti da 4bios, que me incentivaram a estudar para a Certificação e ao Marco da IBM, grande companheiro de estudos.

Valeu pessoal!!!

30 de jun de 2018

FUNDAMENTOS DE BGP PARA PROVEDORES INTERNET em São Luís do Maranhão


Com o apoio da MICROTEL (ASSOCIAÇÃO NACIONAL DOS MICRO PROVEDORES DE TELECOMUNICAÇÕES), o NetFindersBRasil ministrará em São Luis do Maranhão o curso FUNDAMENTOS DE BGP PARA PROVEDORES INTERNET - com ênfase em Cisco, Juniper e Mikrotik

Descrição:

Os Provedores de Acesso a Internet no Brasil se deparam com um cenário cada vez mais heterogêneo - equipamentos de diversos fabricantes se integram para que as sessões BGP possam fluir dados entre redes diferentes e independentes. Os treinamentos focados em programas de Certificação de fabricantes se mostram incapazes de capacitar os alunos a encarar problemas de interoperabilidade, pois ao contrário do mundo real, focam em apenas uma solução. Este curso se propõe a realizar, de forma prática, a configuração e o Troubleshooting do protocolo BGP utilizando um Ambiente Multivendor.

Metodologia E-Doing (Aprenda Fazendo):

Os alunos irão construir um cenário a partir do zero, levantando todas as configurações, de modo a ter um exemplo de BGP Multi-homing com duas Operadoras de Trânsito, mais uma terceira conexão com um Ponto de Troca de Tráfego (PTT) no último dia do curso

Conteúdo Programático:

Dia 01 - Configuração Básica - Roteadores Cisco, Juniper e Mikrotik: Roteamento Estático, protocolo OSPF
Dia 02 - Configuração BGP - Politicas AS-IN e AS-OUT - Atributos: Weight, Local-Preference, AS-Path Prepend, MED e Communities
Dia 03 - Integração com PTTs (pontos de troca de tráfego)

Diferenciais:

Uso do Emulador EVE (Emulated Virtual Environment) que permite a criação de cenários Multivendor com soluções de dezenas de fabricantes. Os alunos poderão baixar e criar seu próprio servidor local, de modo a utiliza-lo para testes e homologação de cenários de Redes Reais.
120 dias de acesso a Plataforma NetFindersBrasil, onde o aluno poderá interagir via Fóruns de Aula para sanar suas dúvidas após a realização do Treinamento

Periodo:

Dias 27, 28 e 29/07/2018 - das 09:00 as 18:00 - com intervalo de 01 hora para almoço e coffee-breaks nos períodos da manhã e tarde. O curso ocorre após o dia do Evento do FUTUREISP Expedição em São Luis. Confira em http://expedicao.futureisp.com.br/

Investimento:

R$ 1.356,00 (Não Associado MICROTEL) - Podendo ser parcelado via PagSeguro
R$ 1.156,00 (Associado MICROTEL) - Podendo ser parcelado via PagSeguro


Mini-Curriculum do Instrutor:
·Adilson Aparecido Florentino é Tecnólogo em Processamento de Dados pela Universidade Mackenzie e Especialista em Redes de Computadores pela FASP - Faculades Associadas de São Paulo. Atua como Instrutor Cisco desde 2001, primeiro no Programa Cisco Network Academy e atualmente como Instrutor Cisco CCSI # 33706.Possui as Certificações CCNA RS, CCNA Voice, CCNA Security, CCNA Wireless, CCDA, CCDP e CCNP RS.
·Fundador e CEO da EAMSOFT Consultoria e Treinamento em Informática Ltda. Atuou como Professor Universitário em diversas Instituições de Ensino tais como FATEC, IFSP, UNICID, FIAP e IBTA. Prestador de SErviços para o NIC.br nos cursos de IPv6 e Boas Práticas em BGP
·Autor do Livro IPv6 na Prática - primeiro livro em português sobre o tema. Consultor independente atuando em várias empresas em Projetos de Rede e treinamento utilizando roteadores Cisco, Juniper e Mikrotik

Inscrições e Maiores Informações pelo e-mail: adilson.aflorentino@gmail.com

25 de jun de 2018

Assine o Pack EVE Cloud e ganhe um Curso NetFindersBrasil em Modo Gravado na Faixa!!!


Apenas 40 vagas disponíveis, garanta já a sua!!!

Boas Novas!!! Expandimos a capacidade do EVE Cloud e voltamos a cadastrar novos Assinantes. Nesta fase para cobrir os custos da compra do novo Hardware, lançamos um promoção imperdível:

- Adquira o Pack EVE Cloud Semestral (R$ 175,00) e ganhe um curso NetFindersBrasil em Modo Gravado na Faixa!
- Adquira o Pack EVE Cloud Anual (R$ 350,00) e ganhe dois cursos NetFindersBrasil em Modo Gravado na Faixa!

Os cursos servirão de roteiro para que vc possa melhor aproveitar o Servidor realizando dezenas de Laboratórios no Ambiente Virtual.

Confira a Lista de Cursos Disponíveis em:

http://netfindersbrasil.blogspot.com/p/cursos.html


Para saber mais sobre o Serviço EVE Cloud na nuvem e quais imagens de quais fabricantes estão disponíveis, leia o Post abaixo:

http://netfindersbrasil.blogspot.com/2017/02/alugue-um-servidor-unetlab-eve-na-nuvem.html


Não perca esta oportunidade! Sao apenas 40 vagas disponíveis, não temos previsão de quando iremos ampliar novamente a infraestrutura.


Entre em contato pelo e-mail adilson.aflorentino@eamsoft.com.br e solicite as instruções de pagamento.






4 de jun de 2018

FUNDAMENTOS DE IOS-XR - UTILIZANDO A FAMILIA ASR 9000 COMO ROUTER DE BORDA


O NetFindersBrasil, em parceria com a AINET - Associaçao de Instrutores do NETACAD, estará ministrando no final do mês de junho um treinamento de Fundamentos de IOS XR voltado as necessidades dos Provedores de Internet interessados em utilizar os Roteadores Cisco da Familia ASR 9000 como Roteadores de Borda.

Os participantes do curso também serão apresentados ao Programa ISP Express - onde poderão adquirir Produtos e Serviços Cisco com até 70% de desconto e Financiados em 60 X


Descrição:

Os roteadores da família Cisco ASR tem ganho cada vez mais espaço entre os Provedores de Internet brasileiros. Isto se deve tanto aos preços cada vez mais acessíveis destas caixas quanto ao crescente poder de processamento que elas entregam. Há uma carência de profissionais capacitados a operar equipamentos baseados em IOS-XR, o qual possui muitas diferenças do IOS tradicional, os cursos oficiais são muito escassos e de custo elevado. Este curso visa capacitar o aluno a operar um roteador com IO-XR, configurar roteamento estático e dinâmico, criar filtros e listas de controle de acesso, além de implementar CG-NAT e guarda de logs.

Metodologia E-Doing (Aprenda Fazendo):

Os alunos irão construir um cenário a partir do zero, levantando todas as configurações, de modo a ter um exemplo de Sistema Autônomo BGP Multi-homing com Roteador de Borda Cisco ASR virtualizado no ambiente EVE-ng.

Conteúdo Programático:

Aula 01 - Introdução ao IOS XR , Configuração Básica e criação de ACLs
Aula 02 - Roteamento Estático e Dinâmico, Protocolo OSPF em área única e múltiplas áreas
Aula 03 - Protocolo BGP - vizinhanças iBGP e eBGP, Atributos BGP
Aula 04 - Route Filtering – Politicas AS-IN e AS-OUT (IPv4 e IPv6), NAT 444 e guarda de logs

Diferenciais:

- Uso de Equipamentos Físicos para simular problemas do dia-a-dia, tais como Password Recovery, Atualização do Sistema Operacional, entre outros.

- Uso do Emulador EVE (Emulated Virtual Environment) que permite a criação de cenários Multivendor com soluções de dezenas de fabricantes. Os alunos poderão baixar e criar seu próprio servidor local, de modo a utiliza-lo para testes e homologação de cenários de Redes Reais.

Periodo:

Dias 25, 26, 27 e 28/06/2018 - das 09:00 as 18:00 - com intervalo de 01 hora para almoço e coffee-breaks nos períodos da manhã e tarde

Investimento:

R$ 1.790,00 (podendo ser dividido em 03 vezes sem juros via PagSeguro)

Endereço:

AINET - Associação dos Instrutores do NETACAD
Rua Vergueiro 1421 9° andar - cj 901 à 905 - Vila Mariana, São Paulo - SP, 04101-000
(Próximo a Estação de Metrô Paraiso)

Mini-Curriculum do Instrutor:

·Adilson Aparecido Florentino é Tecnólogo em Processamento de Dados pela Universidade Mackenzie e Especialista em Redes de Computadores pela FASP - Faculades Associadas de São Paulo. Atua como Instrutor Cisco desde 2001, primeiro no Programa Cisco Network Academy e atualmente como Instrutor Cisco CCSI # 33706. Possui as Certificações CCNA RS, CCNA Voice, CCNA Security, CCNA Wireless, CCDA, CCDP e CCNP RS.

·Fundador e CEO da EAMSOFT Consultoria e Treinamento em Informática Ltda. Atuou como Professor Universitário em diversas Instituições de Ensino tais como FATEC, IFSP, UNICID, FIAP e IBTA. Prestador de SErviços para o NIC.br nos cursos de IPv6 e Boas Práticas em BGP

·Autor do Livro IPv6 na Prática - primeiro livro em português sobre o tema. Consultor independente atuando em várias empresas em Projetos de Rede e treinamento utilizando roteadores Cisco, Juniper e Mikrotik

Vagas Limitadas! garanta já a sua clicando no botão abaixo:






Evento live nesta quarta-feira, dia 6/6 - 6 anos do lançamento mundial do IPv6

Participem da comemoração dos 6 anos de lançamento mundial do IPv6! Nesta quarta-feira, dia 6/6, às 6 da tarde!

Evento ao vivo pelo canal do YouTube da ISOC Brasil.

1 de jun de 2018

YAML e JINJA2 - Parte II

Continuando com YAML, seja o arquivo teste.yml com a seguinte conteúdo:


---
SW1:
 router-id: "1.1.1.1"
 vlans:
    - vlan: 100
      desc: "Vlan da rede 192.168.100.0"
    - vlan: 200
      desc: "Vlan da rede 192.168.200.0"
    - vlan: 300 
      desc: "Vlan da rede 10.10.10.0"
    
 ospf:
    networks:
     - net: 192.168.100.0 
       netmask: "0.0.0.255"
       area: 0
     - net: 192.168.200.0 
       netmask: "0.0.0.128"
       area: 1
     - net: 10.10.10.0 
       netmask: "0.0.0.255"
       area: 2
...

O seguinte script lê o arquivo yaml e armazena o resultado em um dicionário de nome config.

#!/usr/bin/python

import yaml
from pprint import pprint

YAMFILE="/home/jose/teste.yml"

config = yaml.load(open(YAMFILE)) 

pprint(config)

O método load() é o encarregado de fazer o parseamento. O print do dicionário seria:

{'SW1': {'ospf': {'networks': [{'area': 0,
                                'net': '192.168.100.0',
                                'netmask': '0.0.0.255'},
                               {'area': 1,
                                'net': '192.168.200.0',
                                'netmask': '0.0.0.128'},
                               {'area': 2,
                                'net': '10.10.10.0',
                                'netmask': '0.0.0.255'}]},
         'router-id': '1.1.1.1',
         'vlans': [{'desc': 'Vlan da rede 192.168.100.0', 'vlan': 100},
                   {'desc': 'Vlan da rede 192.168.200.0', 'vlan': 200},
                   {'desc': 'Vlan da rede 10.10.10.0', 'vlan': 300}]}}
 

Podemos utilizar esse dicionário para criar um arquivo de configuração para SW1 por exemplo:

#!/usr/bin/python
import yaml
from pprint import pprint

#Carregando arquivo YAML na variavel dicionario config
config = yaml.load(open('teste.yml'))
#pprint(config)

for vlan in config['SW1']['vlans']:
 print("!")
 print("vlan %s" % vlan['vlan']) 
 print("desc %s" % vlan['desc'])

print("!")
print("router ospf 1")
print("router-id %s" % config['SW1']['router-id'])
for networks in config['SW1']['ospf']['networks']:
 print("network %s %s area %s" % (networks['net'],networks['netmask'],networks['area']))

O código acima quando executado resulta em:

!
vlan 100
desc Vlan da rede 192.168.100.0
!
vlan 200
desc Vlan da rede 192.168.200.0
!
vlan 300
desc Vlan da rede 10.10.10.0
!
router ospf 1
router-id 1.1.1.1
network 192.168.100.0 0.0.0.255 area 0
network 192.168.200.0 0.0.0.128 area 1
network 10.10.10.0 0.0.0.255 area 2


Que é uma configuração para um dispositivo Cisco IOS.

Temos visto que é possivél utilizar o dicionário gerado pelo parser pyyaml para gerar o nosso arquivo de configuração.

No script acima toda a lógica de como gerar o arquivo de configuração, esta no código fonte do script, dessa forma se outra pessoa por exemplo tem um arquivo yaml igual ao nosso e precisa gerar um arquivo de configuração, ela terá que desenvolver novamente a mesma lógica no seu código fonte.

Não seria legal por exemplo, ter essa lógica de como gerar o arquivo de configuração em algum "template", de forma a que nosso script simplesmente carrega o arquivo yaml, chama esse "template" e o nosso arquivo de configuração é gerado automaticamente?

Para isso utilizamos JINJA2!!, com JINJA2, podemos criar um template e simplesmente colocar como dados de entrada para dito template, os dados do nosso arquivo YAML, e pronto arquivo de configuração gerado.


Próximo post falaremos sobre a sintaxes de JINJA2... Obrigado e Bom Final de Semana...

Abçs
Jose






12 de mai de 2018

YAML e JINJA2 - Parte I

Olá Pessoal Boa Noite, hoje vamos falar um pouco sobre templates e criação automática de configurações.

YAML são as iniciais de Yet Another Markup Language, o objetivo inicial de YAML foi o de poder transformar estruturas de dados em um formato que possa ser armazenado em arquivos, ou enviado via rede para outras máquinas; da mesma forma que XML.

A diferença de XML, YAML é mais intuitivo fazendo que sua escrita e leitura sejam mais fáceis de entender.

Devido à essa facilidade na leitura e escrita, YAML é amplamente utilizado na definição de configurações. Por exemplo se eu quiser definir um roteador que vai precisar executar "bgp", eu posso colocar todas essas definições em um arquivo, YAML. Esse arquivo posteriormente pode se utilizado por outro software como JINJA2, para gerar arquivos de configurações, podendo inclusive, com ajuda de templates JINJA2, gerar configurações para diferentes fabricantes.



Os arquivos YAML precisam ser processados por um "parser", esse parser se encarrega de ler o arquivo YAM e criar uma estrutura de dados a qual possamos acessar. Em Python esse parser é feito pela livraria PyYAML

Antes de continuar com YAML, vou lhes mostrar alguns conceitos sobre estruturas de dados aninhados em python, isso vai ajudar no entendimento da sintaxes YAML.

Diccionarios Aninhados


Até agora conhecemos os diccionarios em python, porém nada impede ter diccionarios dentro de diccionarios. Exemplo:

Roteadores={'R1':{'hostname':'R1SP','ip':'1.1.1.1'},'R2':{'hostname':'R1SP','ip':'1.1.1.1'}}

O diccionario acima "Roteadores", tem duas chaves, a primeira chave 'R1' e a segunda 'R2'. O detalhe é que o valor associado à chave 'R1' é um outro diccionario, o mesmo para 'R2'.

Vamos testar no interpretador de python:


>>> Roteadores={'R1':{'hostname':'R1SP','ip':'1.1.1.1'},'R2':{'hostname':'R1SP','ip':'1.1.1.1'}}
>>> Roteadores
{'R1': {'ip': '1.1.1.1', 'hostname': 'R1SP'}, 'R2': {'ip': '1.1.1.1', 'hostname': 'R1SP'}}
>>> Roteadores['R1']
{'ip': '1.1.1.1', 'hostname': 'R1SP'}
>>> Roteadores['R2']
{'ip': '1.1.1.1', 'hostname': 'R1SP'}
>>> Roteadores['R1']['ip']
'1.1.1.1'
>>> Roteadores['R2']['ip']
'1.1.1.1'
>>> 

Para poder ir digamos assim acessando aos valores de diccionarios mais baixos podemos utilizar a notação Diccionario_Pai[chave-1][chave-2]...[chave-n].


Listas de Diccionarios

Ao igual que existem diccionarios aninhados, nada impede ter por exemplo uma lista de diccionarios. Vejamos:

>>> Roteadores=[{'hostname':'R1SP','ip':'1.1.1.1'},{'hostname':'R1SP','ip':'1.1.1.1'}]
>>> Roteadores
[{'ip': '1.1.1.1', 'hostname': 'R1SP'}, {'ip': '1.1.1.1', 'hostname': 'R1SP'}]
>>> Roteadores[0]
{'ip': '1.1.1.1', 'hostname': 'R1SP'}
>>> Roteadores[1]
{'ip': '1.1.1.1', 'hostname': 'R1SP'}
>>> Roteadores[0]['ip']
'1.1.1.1'
>>> Roteadores[1]['ip']
'1.1.1.1'
>>> 

Agora o acesso aos elementos do diccionario é um pouco diferente, utilizamos uma combinação do index da lista e a chave do diccionario.

Ao momento de processar um arquivo YAML para poder utilizar ele em JINJA2 p.e, vamos utilizar bastante as estruturas acima mostradas.

Instalação do módulo PyYAML para parseamento


Para parsear os arquivos YAML é preciso instalar o módulo pyyaml.

sudo pip install pyyaml

E para utilizar basta importar o módulo em nosso interpretador python

import yaml



Agora sim ...Continuando com YAML.....


Sintaxes em YAML


Inicio de um Documento

Se utiliza o string '---' para indicar o inicio de um documento YAML.

Fim de um Documento

Se utiliza o string '...' para indicar o fim de um documento YAML.

Podem ser inseridos vários documentos em um único arquivo YAML.

Indentação

YAML utiliza indentação para definir hierarquias, similar a indentação em python. Exemplo:

R1:
  hostname: R1SP

No exemplo acima a chave "hostname", com valor "R1SP" esta embaixo da chave "R1". Existe uma hierarquia em YAML.

Em python a configuração acima pode ser traduzida para o seguinte diccionario:

{'R1':{'hostname':'R1SP'}}

Separador

Em YAML somente se utiliza "espaço" como separador, nada de TAB.


Escalares

YAML, permite a definição de diferentes tipos de variavéis, inteiro, float, string boolean. A forma como é definido é do tipo "chave:valor". O tipo de variavél é reconhecido automáticamente.

myInteiro: 10
myFloat: 3.14
myString: "Post de YAML"

Em python a configuração acima se traduz para:

{'myInteiro': 10, 'myFloat': 3.14, 'myString': 'Post de YAML'}

Strings podem estar entre aspas simples o duplas. Se utilizam duplas quando precisamos utilizar caracteres especiais nesse caso também utilizamos o caractere "\"

myString: "Primeira Linha\nSegunda Linha" 

As vezes precisamos armazenar um string de forma literal nesse caso podemos utilizar o operador '|':

myString: |
  "Post de YAML
  exemplo de string.

  Novo paragrafo"

Em python a configuração acima se traduz em:   

{'myString': '"Post de YAML\n exemplo de string.\n Novo paragrafo"\n'}

é possivél também indicar em YAML para que sejam trocados os ENTERs por espaços (quem vai fazer isso é o parser), nesse caso utilizamos o operador '>'

myString: >
  "Post de YAML
  exemplo de string.

  Novo paragrafo"

Em python a configuração acima se traduz em:   

{'myString': '"Post de YAML exemplo de string. Novo paragrafo"\n'}

Listas

Para definir uma lista se utiliza o carater '-' por cada item da lista.

roteadores:
  - R1
  - R2
  - R3

A estrutura de dados acima pode ser lida como: "A chave 'roteadores' tem como valor a lista de valores R1,R2 e R3'.

Em python ficaria:

{'roteadores': ['R1', 'R2', 'R3']}
Inclusive posso ter valores duplicados na lista, isso não é um problema.

roteadores:
  - router
  - router

A estrutura acima pode ser lida como: "A chave 'roteadores' tem como valor uma lista, que a sua vez contem dois itens; item-0=router e item-1=router"

Em python ficaria:

{'roteadores': ['router', 'router']}

Diccionarios

Dicionarios são estruturas de dados com um conjunto de mapeamentos do tipo chave:valor

R1:
  hostname: 'R1SP'
  ip: '1.1.1.1'
  user: 'cisco'
  pass: 'cisco'

A estrutura de dados acima pode ser lida como: "A chave 'R1', tem como valor um outro conjunto de pares chave:valor hostname:'R1SP', ip:'1.1.1.1' etc.

Em Python ficaria:

{'R1': 

   {'hostname': 'R1SP', 
    'ip': '1.1.1.1', 
    'pass': 'cisco', 
    'user': 'cisco'}
}

No caso de diccionarios não é possivél ter chaves duplicadas. Exemplo:

R1:
  hostname: 'R1SP'
  ip: '1.1.1.1'
  user: 'cisco'
  pass: 'cisco'
  ip: '11.11.11.11'

No exemplo acima o valor para a chave 'ip' será '11.11.11.11'. Ao colocar a mesma chave, o valor para essa chave será sobreescrito.

Em python ficaria:

{'R1': 
   {'hostname': 'R1SP', 
    'ip': '11.11.11.11', 
    'pass': 'cisco', 
    'user': 'cisco'}
}


Existe a possibilidade de combinar diccionarios e listas.

Exemplo, preciso definir uma configuração para dois roteadores e tenho os seguintes dados:

Roteador1: Nome R1SP, ip de acesso 1.1.1.1

Roteador2: Nome R2SP ip de acesso 2.2.2.2

A configuração YAML poderia ficar:

roteadores:
 - router:
     hostname: 'R1SP'
     ip: '1.1.1.1'
 - router:
     hostname: 'R2SP'
     ip: '2.2.2.2'


Em Python ficaria:


{'roteadores': 
   [{'router': {'hostname': 'R1SP', 'ip': '1.1.1.1'}}, 
    {'router': {'hostname': 'R2SP', 'ip': '2.2.2.2'}}
   ]
}

Vamos asignar o valor do diccionario acima para a variável MyRouters em python, e ir acessando aos valores da estrutura na medida que nos aprondufamos na hierarquia.

>>> import yaml

>>> MyRouters={'roteadores': 
...    [{'router': {'hostname': 'R1SP', 'ip': '1.1.1.1'}}, 
...     {'router': {'hostname': 'R2SP', 'ip': '2.2.2.2'}}
...    ]
... }
>>> MyRouters['roteadores']
[{'router': {'ip': '1.1.1.1', 'hostname': 'R1SP'}}, {'router': {'ip': '2.2.2.2', 'hostname': 'R2SP'}}]

>>> MyRouters['roteadores'][0]
{'router': {'ip': '1.1.1.1', 'hostname': 'R1SP'}}

>>> MyRouters['roteadores'][1]
{'router': {'ip': '2.2.2.2', 'hostname': 'R2SP'}}

>>> MyRouters['roteadores'][0]['router']
{'ip': '1.1.1.1', 'hostname': 'R1SP'}

>>> MyRouters['roteadores'][1]['router']
{'ip': '2.2.2.2', 'hostname': 'R2SP'}

>>> MyRouters['roteadores'][0]['router']['ip']
'1.1.1.1'

>>> MyRouters['roteadores'][1]['router']['ip']
'2.2.2.2'
>>> 


Existe um site de parseamento online, onde vocês podem praticar http://yaml-online-parser.appspot.com/. No site vocês colocam sua configuração YAML e escolhem como saída Python. Ele vai lhes mostrar qual será a estrutura em python do seu arquivo YAML.

Um outro exemplo, um switch para o qual precisa ser gerado uma configuração para 3 VLANs, e OSPF.


SW1:
 router-id: "1.1.1.1"
 vlans:
    - vlan: 
       id: 100
       desc: "Vlan da rede 192.168.100.0"
    - vlan: 
       id: 200
       desc: "Vlan da rede 192.168.200.0"
    - vlan: 
       id: 300
       desc: "Vlan da rede 10.10.10.0"
    
 ospf:
    networks:
     - network:
        net: 192.168.100.0 
        netmask: "255.255.255.0"
        area: 0
     - network:
        net: 192.168.200.0 
        netmask: "255.255.255.128"
        area: 1
     - network:
        net: 10.10.10.0 
        netmask: "255.255.255.0"
        area: 2


Por hoje é isso Pessoal!!... Um Feliz Dia das Mais!!

Abçs
Jose

Agora sou... CCNA CYBER OPS


Ontem, sexta-feira, 11/05/2018, conquistei o titulo de CCNA Cyber OPS. Após ter concluído os Exames 210-250 SECFND e 210-255 SECOPS. A Cisco tem bancado, através do programa Cisco Global Cyber Ops Scholarship, não só os cursos online preparatórios para esses Exames, como também os vouchers (100% na faixa) para que os interessados no tema possam tirar essa certificação, a custo zero.

Com o constante aumento dos Cyber ataques e ameaças eletrônicas, eu creio que todo profissional de TI deveria passar por estes treinamentos, de forma a ficar antenado com os temas relacionados a Tratamento de Incidentes de Segurança na Web.

Agradeço ao Bruno Nunes, que montou um grupo de estudos no WhatsApp para os interessados no CCNA Cyber, pelas dicas e compartilhamento de material.

Fica a Dica!

LinkWithin

Related Posts with Thumbnails