Logotipo de Cisco Automatización de red Cisco NX-OS mediante PythonAutomatización de red de Cisco NX-OS con el producto Python-0

Automatización de red

  • Proceso de uso de software para automatizar el aprovisionamiento, las pruebas, la implementación y la gestión de la red
  • Para ayudar a maximizar la eficiencia y la funcionalidad de la red
  • Las redes son complejas y voluminosas por naturaleza.
  • Operaciones manuales: más retrasos
  • La automatización hace que las redes sean más ágiles y receptivas a los cambios
  • Beneficios:
  • Eficiencia operativa mejorada
  • Errores reducidos

Arquitectura de automatización de redAutomatización de red de Cisco NX-OS con Python-1

Programabilidad de redAutomatización de red de Cisco NX-OS con Python-2

  • Es un conjunto de herramientas para implementar, administrar y solucionar problemas de un dispositivo de red.
  • Perspectiva del ingeniero de redes: interacción con un dispositivo o grupo de dispositivos
  • Perspectiva del desarrollador de software: abstracción de la red. Ver toda la red como un solo dispositivo y manipularla con software

Beneficios de la programabilidad de la red

  • OPEX reducido
  • Personalización
  • Error humano reducido
  • Flexibilidad operativa
  • Mayor oportunidad de innovación

Interfaz de programación de aplicaciones (API)Automatización de red de Cisco NX-OS con Python-3

  • Las API son mecanismos utilizados para comunicarse con aplicaciones y otro software.
  • Una API puede realizar diferentes funciones según su ubicación en el flujo
  • Se utiliza para comunicarse con varios componentes de la red a través del software.
  • Las API suelen ser API RESTful

API de transferencia de estado representacional (REST)

  • Una API que usa REST a menudo se denomina API RESTful
  • Las API RESTful utilizan métodos de Protocolo de transferencia de hipertexto (HTTP) para recopilar y manipular datos.
Función HTTPAcción
CONSEGUIRLeer
CORREOCrear
PARCHEActualizar / Modificar
PONERActualizar / Reemplazar
BORRARBorrar

Códigos de estado HTTP

ESTADO HTTP

CÓDIGO

RESULTADOSENTIDO COMÚN
200OkUsar GET o POST para intercambiar datos con

una API

201CreadoCreación de recursos mediante una llamada de API REST
400Solicitud incorrectaLa solicitud falló debido a un problema del lado del cliente
401No autorizadoCliente no autenticado para acceder al sitio o

Llamada API

403ProhibidoAcceso no concedido basado en proporcionado

cartas credenciales

404ExtraviadoPágina en HTTP URL la ubicación no existe

o esta escondido

Netmiko encimaview

  • Netmiko: biblioteca de Python utilizada ampliamente para interactuar con dispositivos de red
  • Biblioteca de múltiples proveedores
  • Cisco IOS/IOS-XE, NX-OS, cortafuegos, etc.
  • Soporte extendido de la funcionalidad SSH de la biblioteca Paramiko
  • Entrar en los modos de configuración
  • Enviar comandos
  • Recuperando salidas
  • Cuidar las indicaciones de sí/no

NAPALM terminadoview

  • NAPALM: capa de abstracción de programabilidad y automatización de red con soporte de múltiples proveedores
  • Proporciona funciones que permiten:
  • Operaciones de configuración (commit o rollback)
  • Recuperar datos de estado de dispositivos de red
  • Contiene métodos para establecer conexión a dispositivos de red.
  • Puede trabajar en conjunto con herramientas de automatización – Ansible
  • Tiene soporte para varios sistemas operativos de red:
  • IOS, IOS-XR, NX-OS, JunOS, EOS, etc.
Operaciones NAPALM
  • Reemplazar: permite a los usuarios reemplazar la configuración en ejecución existente con una configuración completamente nueva.
  • Fusionar: permite a los usuarios fusionar los cambios de configuración de un file a la configuración en ejecución en el dispositivo.
  • Comparar: compare la nueva configuración propuesta con la existente. Solo se aplica a la operación de reemplazo y no a la operación de fusión.
  • Descartar: restablece la configuración de fusión file A un vacío file. Por lo tanto, no permite aplicar la nueva configuración en el dispositivo.
  • Confirmar: confirma la configuración propuesta en el dispositivo de red. En otras palabras, se utiliza para implementar comotagconfiguración ed.
  • Revertir: revertir (revertir) la configuración en ejecución a la configuración guardada antes de la última confirmación.

Plantillas con Jinja2

  • Jinja es un lenguaje de plantillas moderno para Python: modelado a partir de las plantillas de Django.
  • Permite al usuario interactuar fácilmente con el programa Python
  • Use datos para generar rápidamente contenido dinámico
  • Beneficios:
  • Herencia de plantilla
  • Compilación óptima justo a tiempo
  • Fácil depuración
  • Sintaxis configurable
  • Usado comúnmente con web marcos como Flask
  • Herramientas de gestión de configuración: Ansible, Nornir, etc.

DelimitadoresAutomatización de red Cisco NX-OS usando Python-Nornir encimaview

  • Marco de automatización basado en Python
  • Administre el inventario de red y host y proporcione un marco común para escribir plugins para los dispositivos de red y hosts
  • Requiere la versión mínima de Python 3.6.2
  • Subprocesos múltiples: el valor predeterminado es 20 subprocesos de trabajo
  • Inicializado usando config file – referencias pareja otro files
  • Inventario de hosts file
  • Grupo file
  • Todos estos files están escritos en formato YAML

Nornir Advantages

  • Pitón o Golang (Gornir)
  • Reutilizar bibliotecas existentes: napalm, netmiko
  • Filtrado rápido de hosts basado en cualquier atributo o combinación de atributos
  • Muy rápido debido al uso de hilos.
  • Se puede usar para construir herramientas de automatización altamente flexibles y extensibles usando Flask, Django, etc.
  • Realiza automáticamente el almacenamiento en caché y cierra las conexiones abiertas

Recursos adicionales y referencias

Noticias de prensa de Cisco

Fundamentos de programación y automatización de redes [Más información] CCNP y CCIE Security Core SCOR 350-701 Official Cert Guide
https://www.ciscopress.com/store/ccnp-and-ccie-security-core-scor-350-701-official-cert-9780135971970

Guía de estudio de Cisco DevNet Professional DEVCOR 350-901
https://www.ciscopress.com/store/cisco-devnet-professional-devcor-350-901-study-guide-9780137500048

Otros recursos útiles:
Enterrarview con Vinit Jain, principal colaborador de eventos de Cisco
https://community.cisco.com/t5/networking-documents/interview-with-vinit-jain-cisco-s-top-events-contributor/ta-p/3156059
Publicaciones de Vinit
http://www.ciscopress.com/authors/bio/255ee209-1418-4938-9a42-d3bece2b46c6

Documentos / Recursos

Automatización de red Cisco NX-OS mediante Python [pdf] Manual del usuario
Automatización de red NX-OS usando Python, Automatización de red usando Python, usando Python

Referencias

Deja un comentario

Su dirección de correo electrónico no será publicada. Los campos obligatorios están marcados *