Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Programabilidade de Redes Cisco (onePK)

Sponsored · Ship Features Fearlessly Turn features on and off without deploys. Used by thousands of Ruby developers. →
Avatar for Davi Garcia Davi Garcia
September 04, 2014

Programabilidade de Redes Cisco (onePK)

Apresentação feita no Cisco Network Academy Day 2014, no campus da Ilha do Fundão da Universidade Federal do Rio de Janeiro, sobre programabilidade de redes Cisco com onePK.

Avatar for Davi Garcia

Davi Garcia

September 04, 2014

More Decks by Davi Garcia

Other Decks in Technology

Transcript

  1. Programabilidade de Redes Cisco Davi Garcia ([email protected]) Consulting Software Engineer

    Cisco Rio Center of Innovation, Brazil Setembro, 2014 Cisco Networking Academy Day 2014, Rio de Janeiro - Brasil
  2. 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
  3. 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
  4. 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?
  5. 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
  6. 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
  7. Cisco Confidential 7 © 2013-2014 Cisco and/or its affiliates. All

    rights reserved. Open Network Environment (ONE) Framework
  8. Cisco Confidential 8 © 2013-2014 Cisco and/or its affiliates. All

    rights reserved. Open Network Environment (ONE) Framework
  9. 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
  10. 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
  11. 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
  12. 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
  13. 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
  14. 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
  15. 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
  16. 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
  17. 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
  18. Cisco Confidential 18 © 2013-2014 Cisco and/or its affiliates. All

    rights reserved. ONE: Agentes (SDN não é OpenFlow!)
  19. Cisco Confidential 19 © 2013-2014 Cisco and/or its affiliates. All

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

    rights reserved. ONE: Controlador do ACI (APIC)
  21. 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.
  22. 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.
  23. 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.
  24. 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
  25. 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!
  26. 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
  27. 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()
  28. Cisco Confidential 28 © 2013-2014 Cisco and/or its affiliates. All

    rights reserved. DEMO1: onePK + Python + CSR 1000v!
  29. 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