Programabilidade de Redes Cisco - NCE/UFRJ€¦Programabilidade de Redes Cisco Davi Garcia...
Transcript of Programabilidade de Redes Cisco - NCE/UFRJ€¦Programabilidade de Redes Cisco Davi Garcia...
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
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
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
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?
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
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
Cisco Confidential 7 © 2013-2014 Cisco and/or its affiliates. All rights reserved.
Open Network Environment (ONE) Framework
Cisco Confidential 8 © 2013-2014 Cisco and/or its affiliates. All rights reserved.
Open Network Environment (ONE) Framework
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
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
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
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
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
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
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
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
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
Cisco Confidential 18 © 2013-2014 Cisco and/or its affiliates. All rights reserved.
ONE: Agentes (SDN não é OpenFlow!)
Cisco Confidential 19 © 2013-2014 Cisco and/or its affiliates. All rights reserved.
ONE: Controlador OpenDaylight
Cisco Confidential 20 © 2013-2014 Cisco and/or its affiliates. All rights reserved.
ONE: Controlador do ACI (APIC)
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.
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.
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.
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
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!
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
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()
Cisco Confidential 28 © 2013-2014 Cisco and/or its affiliates. All rights reserved.
DEMO1: onePK + Python + CSR 1000v!
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
Obrigado!