30
Programabilidade de Redes Cisco Davi Garcia ([email protected]) Software Solution Developer Cisco Center of Innovation (COI), Rio de Janeiro – Brasil Setembro, 2014 Cisco Networking Academy Day 2014, Rio de Janeiro - Brasil

Programabilidade de Redes Cisco - NCE/UFRJ€¦Programabilidade de Redes Cisco Davi Garcia ([email protected]) Software Solution Developer Cisco Center of Innovation (COI), Rio de

Embed Size (px)

Citation preview

Page 1: Programabilidade de Redes Cisco - NCE/UFRJ€¦Programabilidade de Redes Cisco Davi Garcia (davigar@cisco.com) Software Solution Developer Cisco Center of Innovation (COI), Rio de

Programabilidade de Redes Cisco

Davi Garcia ([email protected])

Software Solution Developer Cisco Center of Innovation (COI), Rio de Janeiro – Brasil

Setembro, 2014

Cisco Networking Academy Day 2014, Rio de Janeiro - Brasil

Page 2: Programabilidade de Redes Cisco - NCE/UFRJ€¦Programabilidade de Redes Cisco Davi Garcia (davigar@cisco.com) Software Solution Developer Cisco Center of Innovation (COI), Rio de

Cisco Confidential 2 © 2013-2014 Cisco and/or its affiliates. All rights reserved.

§  Conceitos §  Open Network Environment (ONE) Framework

§  APIs Programáticas - onePK §  Controladores e Agentes §  Virtual Network Overlays

§  Certificações para Programabilidade

§  DEMO1: onePK + Python + CSR 1000v

§  DEMO2: “Routing for Dollar” no Cisco Live!

Agenda

Page 3: Programabilidade de Redes Cisco - NCE/UFRJ€¦Programabilidade de Redes Cisco Davi Garcia (davigar@cisco.com) Software Solution Developer Cisco Center of Innovation (COI), Rio de

Cisco Confidential 3 © 2013-2014 Cisco and/or its affiliates. All rights reserved.

Conceitos: Como é a rede de hoje?

Plano de Dados/Encaminhamento: Responsável por mover o tráfego da rede (aplicações, usuários, equipamentos) entre a interface de origem e destino. Plano de Controle: Responsável por determinar como o encaminhamento da informação será realizado. Uso de protocolos dinâmicos para troca de informação com vizinhos (STP, OSPF, EIGRP). Plano de Gerência: Responsável por garantir as funções administrativas do dispositivo (SSH, Telnet, Syslog).

Dados

Controle

Gerência

Page 4: Programabilidade de Redes Cisco - NCE/UFRJ€¦Programabilidade de Redes Cisco Davi Garcia (davigar@cisco.com) Software Solution Developer Cisco Center of Innovation (COI), Rio de

Cisco Confidential 4 © 2013-2014 Cisco and/or its affiliates. All rights reserved.

“Software-Defined Networking (SDN) é uma abordagem para redes de computadores que permite aos administradores de rede gerenciar serviços de rede através da abstração de funcionalidade de nível mais baixo. Isto é feito através do desacoplamento do sistema que toma decisões sobre onde o tráfego é enviado (o plano de controle) dos sistemas subjacentes que encaminham o tráfego para o destino selecionado (o plano de dados).”

Conceitos: O que é SDN?

Page 5: Programabilidade de Redes Cisco - NCE/UFRJ€¦Programabilidade de Redes Cisco Davi Garcia (davigar@cisco.com) Software Solution Developer Cisco Center of Innovation (COI), Rio de

Cisco Confidential 5 © 2013-2014 Cisco and/or its affiliates. All rights reserved.

Conceitos: Modelos de SDN

SDN Classica

§  Resultado de trabalhos academicos em Stanford. §  Remove o plano de controle do elemento de rede. §  Plano de controle é todo externo e centralizado. §  Interação entre plano de controle externo e o

plano de dados é através de Southbound API (OpenFlow).

Gerência Dados

Controle

Aplicação

NAPI

SAPI

Page 6: Programabilidade de Redes Cisco - NCE/UFRJ€¦Programabilidade de Redes Cisco Davi Garcia (davigar@cisco.com) Software Solution Developer Cisco Center of Innovation (COI), Rio de

Cisco Confidential 6 © 2013-2014 Cisco and/or its affiliates. All rights reserved.

Conceitos: Modelos de SDN

SDN Híbrida

§  Evolução do modelo clássico. §  Viabiliza um plano de controle externo sem

remover o plano de controle do elemento de rede. §  Proporciona maior flexibilidade e segurança nas

interação entre aplicação, plano de controle externo e plano de dados do elemento de rede.

Gerência Controle

Dados

Controle

Aplicação

NAPI

SAPI

Page 7: Programabilidade de Redes Cisco - NCE/UFRJ€¦Programabilidade de Redes Cisco Davi Garcia (davigar@cisco.com) Software Solution Developer Cisco Center of Innovation (COI), Rio de

Cisco Confidential 7 © 2013-2014 Cisco and/or its affiliates. All rights reserved.

Open Network Environment (ONE) Framework

Page 8: Programabilidade de Redes Cisco - NCE/UFRJ€¦Programabilidade de Redes Cisco Davi Garcia (davigar@cisco.com) Software Solution Developer Cisco Center of Innovation (COI), Rio de

Cisco Confidential 8 © 2013-2014 Cisco and/or its affiliates. All rights reserved.

Open Network Environment (ONE) Framework

Page 9: Programabilidade de Redes Cisco - NCE/UFRJ€¦Programabilidade de Redes Cisco Davi Garcia (davigar@cisco.com) Software Solution Developer Cisco Center of Innovation (COI), Rio de

Cisco Confidential 9 © 2013-2014 Cisco and/or its affiliates. All rights reserved.

§  Aplicação (“Application”): §  Software externo desenvolvido com o uso das APIs do onePK;

§  Elemento de Rede (“Network Element”, NE): §  Plataforma que oferece seus serviços disponíveis através do onePK; §  Cisco IOS Routers, Cisco IOS-XE, Cisco IOS-XR, Cisco NX-OS;

§  Sessão (“Session”): §  Comunicação estabelecida entre a aplicação externa e o elemento de rede;

§  Conjuntos de Serviços (“Service Sets”): §  As funcionalidades providas pelo onePK são separadas por grupos;

onePK: Terminologia

Page 10: Programabilidade de Redes Cisco - NCE/UFRJ€¦Programabilidade de Redes Cisco Davi Garcia (davigar@cisco.com) Software Solution Developer Cisco Center of Innovation (COI), Rio de

Cisco Confidential 10 © 2013-2014 Cisco and/or its affiliates. All rights reserved.

onePK: Arquitetura

IOS IOS-XE NX-OS IOS-XR

C Java Python

Aplicação

Canal de Comunicação OnePK

Page 11: Programabilidade de Redes Cisco - NCE/UFRJ€¦Programabilidade de Redes Cisco Davi Garcia (davigar@cisco.com) Software Solution Developer Cisco Center of Innovation (COI), Rio de

Cisco Confidential 11 © 2013-2014 Cisco and/or its affiliates. All rights reserved.

onePK: Modelos de Implantação

Process Hosting

§  Separação lógica (LXC, KVM/QEMU). §  Recursos compartilhados de HW. §  Próxima aos planos de controle e dados. App

IOS

Elemento de Rede

Page 12: Programabilidade de Redes Cisco - NCE/UFRJ€¦Programabilidade de Redes Cisco Davi Garcia (davigar@cisco.com) Software Solution Developer Cisco Center of Innovation (COI), Rio de

Cisco Confidential 12 © 2013-2014 Cisco and/or its affiliates. All rights reserved.

onePK: Modelos de Implantação

Blade Hosting

§  Separação física (UCS-E). §  Recursos dedicados de HW. §  Próxima aos planos de controle e dados.

App

IOS

Elemento de Rede

Page 13: Programabilidade de Redes Cisco - NCE/UFRJ€¦Programabilidade de Redes Cisco Davi Garcia (davigar@cisco.com) Software Solution Developer Cisco Center of Innovation (COI), Rio de

Cisco Confidential 13 © 2013-2014 Cisco and/or its affiliates. All rights reserved.

onePK: Modelos de Implantação

End-Node Hosting

§  Separação física (servidor externo). §  Recursos dedicados de HW (UCS-E). §  Distante dos planos de controle e dados.

App

IOS Elemento de Rede

Elemento Externo

Page 14: Programabilidade de Redes Cisco - NCE/UFRJ€¦Programabilidade de Redes Cisco Davi Garcia (davigar@cisco.com) Software Solution Developer Cisco Center of Innovation (COI), Rio de

Cisco Confidential 14 © 2013-2014 Cisco and/or its affiliates. All rights reserved.

onePK: API Service Sets •  Lógica interna para encaminhamento dos pacotes. Data Path •  Mecanismos internos de controle de encaminhamento. Policy •  Roteamento/encaminhamento e eventos do elemento de rede . Routing •  Propriedades gerais do elemento de rede e seus componentes. Element •  Logs e funções auxiliares, como AAA do elemento de rede. Utility •  Mecanismo para determinar elementos vizinhos, topologia e etc. Discovery •  Serviços adicionais de para facilitar desenvolvimento. Developer

Page 15: Programabilidade de Redes Cisco - NCE/UFRJ€¦Programabilidade de Redes Cisco Davi Garcia (davigar@cisco.com) Software Solution Developer Cisco Center of Innovation (COI), Rio de

Cisco Confidential 15 © 2013-2014 Cisco and/or its affiliates. All rights reserved.

onePK: Compatibilidade dos API Service Sets

Service Sets C Java Python

Data Path

Policy

Routing

Element

Discovery

Utility

Developer

Page 16: Programabilidade de Redes Cisco - NCE/UFRJ€¦Programabilidade de Redes Cisco Davi Garcia (davigar@cisco.com) Software Solution Developer Cisco Center of Innovation (COI), Rio de

Cisco Confidential 16 © 2013-2014 Cisco and/or its affiliates. All rights reserved.

§  Cisco Integrated Service Routers da segunda geração (ISR G2): §  Cisco IOS Release 15.4(2)T.

§  Cisco ASR 1000, ISR 4400 e CSR 1000v: §  Cisco IOS-XE Release 3.12.0S.

§  Cisco ASR 9000: §  Cisco IOS-XR Release 5.2.0.

Referência: https://developer.cisco.com/fileMedia/download/7513cf78-ef38-4232-82b5-21e36083d581

onePK: Plataformas Suportadas

Page 17: Programabilidade de Redes Cisco - NCE/UFRJ€¦Programabilidade de Redes Cisco Davi Garcia (davigar@cisco.com) Software Solution Developer Cisco Center of Innovation (COI), Rio de

Cisco Confidential 17 © 2013-2014 Cisco and/or its affiliates. All rights reserved.

§  VM baseada em Ubuntu Desktop. §  SDKs de C, Java e Python.

§  Incluso tutoriais e documentação offline!

§  Possivel criar instâncias virtuais de IOS.

§  Compatível com VirtualBox!

Referência: https://developer.cisco.com/site/networking/one/onepk/sdk-and-docs/all-in-one-vm/index.gsp

onePK: All-in-One Virtual Machine

Page 18: Programabilidade de Redes Cisco - NCE/UFRJ€¦Programabilidade de Redes Cisco Davi Garcia (davigar@cisco.com) Software Solution Developer Cisco Center of Innovation (COI), Rio de

Cisco Confidential 18 © 2013-2014 Cisco and/or its affiliates. All rights reserved.

ONE: Agentes (SDN não é OpenFlow!)

Page 19: Programabilidade de Redes Cisco - NCE/UFRJ€¦Programabilidade de Redes Cisco Davi Garcia (davigar@cisco.com) Software Solution Developer Cisco Center of Innovation (COI), Rio de

Cisco Confidential 19 © 2013-2014 Cisco and/or its affiliates. All rights reserved.

ONE: Controlador OpenDaylight

Page 20: Programabilidade de Redes Cisco - NCE/UFRJ€¦Programabilidade de Redes Cisco Davi Garcia (davigar@cisco.com) Software Solution Developer Cisco Center of Innovation (COI), Rio de

Cisco Confidential 20 © 2013-2014 Cisco and/or its affiliates. All rights reserved.

ONE: Controlador do ACI (APIC)

Page 21: Programabilidade de Redes Cisco - NCE/UFRJ€¦Programabilidade de Redes Cisco Davi Garcia (davigar@cisco.com) Software Solution Developer Cisco Center of Innovation (COI), Rio de

Cisco Confidential 21 © 2013-2014 Cisco and/or its affiliates. All rights reserved.

ONE: Virtual Network Overlays

Redes Físicas §  Topologias físicas complexas. §  Fronteiras L2/L3. §  Falta de flexibilidade. §  Aplicações precisam ser adaptadas.

Page 22: Programabilidade de Redes Cisco - NCE/UFRJ€¦Programabilidade de Redes Cisco Davi Garcia (davigar@cisco.com) Software Solution Developer Cisco Center of Innovation (COI), Rio de

Cisco Confidential 22 © 2013-2014 Cisco and/or its affiliates. All rights reserved.

ONE: Virtual Network Overlays

Tecnologias de Overlay §  Abstraem a complexidade física. §  Permitem melhor uso dos recursos. §  VXLAN, NVGRE, ACI.

Page 23: Programabilidade de Redes Cisco - NCE/UFRJ€¦Programabilidade de Redes Cisco Davi Garcia (davigar@cisco.com) Software Solution Developer Cisco Center of Innovation (COI), Rio de

Cisco Confidential 23 © 2013-2014 Cisco and/or its affiliates. All rights reserved.

ONE: Virtual Network Overlays

Redes Lógicas (Overlay) §  Criação de topologias lógicas. §  Escalabilidade (L2/L3). §  Transparente para as aplicações. §  Uso da melhor topologia possível.

Page 24: Programabilidade de Redes Cisco - NCE/UFRJ€¦Programabilidade de Redes Cisco Davi Garcia (davigar@cisco.com) Software Solution Developer Cisco Center of Innovation (COI), Rio de

Cisco Confidential 24 © 2013-2014 Cisco and/or its affiliates. All rights reserved.

Cisco Business Application Engineer Specialist §  Sem pré-requisitos! §  Exames: 600-501 (NPIBA) e 600-509 (NPIBAACI).

Cisco Network Programmability Developer Specialist §  Pré-Requisito: CCNA §  Exames: 600-502 (NPDEV) e 600-510 (NPDEVACI).

Cisco Network Programmability Design Specialist §  Pré-Requisito: CCNP §  Exames: 600-503 (NPDES) e 600-511 (NPDESACI).

Cisco Network Programmability Engineer Specialist §  Pré-Requisito: CCNP §  Exames: 600-504 (NPENG) e 600-512 (NPENGACI).

Certificações para Programabilidade

Page 25: Programabilidade de Redes Cisco - NCE/UFRJ€¦Programabilidade de Redes Cisco Davi Garcia (davigar@cisco.com) Software Solution Developer Cisco Center of Innovation (COI), Rio de

Cisco Confidential 25 © 2013-2014 Cisco and/or its affiliates. All rights reserved.

1.  Obter a OVA (imagem) mais recente do Cisco CSR 1000v: http://software.cisco.com

2.  Importar a OVA do CSR no VMware (vSphere/Workstation/Fusion). 3.  Obter o SDK Python do onePK versão 1.2.1:

https://developer.cisco.com

4.  Confirmar que a versão do Python na sua máquina é 2.7.x. 5.  Após descompactar, instalar o SDK (privilégios de administrador):

# python setup.py install

6.  Verificar se o SDK foi instalado adequadamente (carregar o módulo): # python >>> import onep

DEMO1: onePK + Python + CSR 1000v!

Page 26: Programabilidade de Redes Cisco - NCE/UFRJ€¦Programabilidade de Redes Cisco Davi Garcia (davigar@cisco.com) Software Solution Developer Cisco Center of Innovation (COI), Rio de

Cisco Confidential 26 © 2013-2014 Cisco and/or its affiliates. All rights reserved.

DEMO1: onePK + Python + CSR 1000v!

7.  Configurar o OnePK e gerar o certificado digital local no CSR 1000v : CSR1KV-ONEPK(config)# interface gigabitEthernet 1 CSR1KV-ONEPK(config-if)# ip address <endereço IP> <máscara de rede> CSR1KV-ONEPK(config-if)# no shutdown

CSR1KV-ONEPK(config)# onep CSR1KV-ONEPK(config-onep)# transport type tls disable-remotecert-validation CSR1KV-ONEPK(config-onep)# exit

CSR1KV-ONEPK(config)# crypto pki trustpoint <nome do trustpoint criado pelo passo anterior> CSR1KV-ONEPK(ca-trustpoint)# serial-number CSR1KV-ONEPK(ca-trustpoint)# ip-address <endereço IP usado anteriormente> CSR1KV-ONEPK(ca-trustpoint)# exit

CSR1KV-ONEPK(config)# crypto pki enroll <nome do trustpoint>

CSR1KV-ONEPK(config)# crypto pki export <nome do trustpoint> pem terminal

Page 27: Programabilidade de Redes Cisco - NCE/UFRJ€¦Programabilidade de Redes Cisco Davi Garcia (davigar@cisco.com) Software Solution Developer Cisco Center of Innovation (COI), Rio de

Cisco Confidential 27 © 2013-2014 Cisco and/or its affiliates. All rights reserved.

DEMO1: onePK + Python + CSR 1000v!

8.  Escreva seu programa Python usando a API (Element Service Set): from onep.element.SessionConfig import SessionConfig from onep.element.NetworkElement import NetworkElement

config = SessionConfig(None) config.ca_certs = 'csr1kv-onepk.pem’ # Arquivo texto com a saída do último comando no CSR. config.transportMode = SessionConfig.SessionTransportMode.TLS

ne = NetworkElement(’<endereço IP configurado no CSR>', ’<nome da aplicação>’) # Info do CSR. ne.connect('admin', 'cisco', config) # Usar usuário/senha do configurado no CSR.

hostname = ne.properties.sys_name uptime = ne.properties.sys_uptime free_memory = ne.get_free_system_memory() print("Host: %s | Uptime: %d | Memory: %d" % (hostname, uptime, free_memory))

ne.disconnect()

Page 28: Programabilidade de Redes Cisco - NCE/UFRJ€¦Programabilidade de Redes Cisco Davi Garcia (davigar@cisco.com) Software Solution Developer Cisco Center of Innovation (COI), Rio de

Cisco Confidential 28 © 2013-2014 Cisco and/or its affiliates. All rights reserved.

DEMO1: onePK + Python + CSR 1000v!

Page 29: Programabilidade de Redes Cisco - NCE/UFRJ€¦Programabilidade de Redes Cisco Davi Garcia (davigar@cisco.com) Software Solution Developer Cisco Center of Innovation (COI), Rio de

Cisco Confidential 29 © 2013-2014 Cisco and/or its affiliates. All rights reserved.

DEMO2: “Routing for Dollar” no Cisco Live!

Youtube: https://www.youtube.com/watch?v=xZMR0dRxzVI

Page 30: Programabilidade de Redes Cisco - NCE/UFRJ€¦Programabilidade de Redes Cisco Davi Garcia (davigar@cisco.com) Software Solution Developer Cisco Center of Innovation (COI), Rio de

Obrigado!