Mastering python networking advanced networking with Python

Become an expert in implementing advanced, network-related tasks with Python. About This Book Build the skills to perform all networking tasks using Python with ease Use Python for network device automation, DevOps, and software-defined networking Get practical guidance to networking with Python Who...

Descripción completa

Detalles Bibliográficos
Otros Autores: Chou, Eric, author (author)
Formato: Libro electrónico
Idioma:Inglés
Publicado: Birmingham, [England] : Packt Publishing 2017.
Edición:1st edition
Materias:
Ver en Biblioteca Universitat Ramon Llull:https://discovery.url.edu/permalink/34CSUC_URL/1im36ta/alma991009630129306719
Tabla de Contenidos:
  • Cover
  • Copyright
  • Credits
  • Foreword
  • About the Author
  • About the Reviewer
  • www.PacktPub.com
  • Customer Feedback
  • Table of Contents
  • Preface
  • Chapter 1: Review of TCP/IP Protocol Suite and Python Language
  • The internet overview
  • Servers, hosts, and network components
  • The rise of datacenter
  • Enterprise datacenters
  • Cloud datacenters
  • Edge datacenters
  • The OSI model
  • Client server models
  • Network protocol suites
  • The Transmission Control Protocol (TCP)
  • Functions and Characteristics of TCP
  • TCP messages and data transfer
  • User Datagram Protocol (UDP)
  • The Internet Protocol (IP)
  • The IP NAT and security
  • IP routing concepts
  • Python language overview
  • Python versions
  • Operating system
  • Running a Python program
  • Python built-In types
  • The None type
  • Numerics
  • Sequences
  • Mapping
  • Sets
  • Python operators
  • Python control flow tools
  • Python functions
  • Python classes
  • Python modules and packages
  • Summary
  • Chapter 2: Low-Level Network Device Interactions
  • The challenges of CLI
  • Constructing a virtual lab
  • Cisco Virtual Internet Routing Lab (VIRL)
  • VIRL tips
  • Cisco DevNet and dCloud
  • GNS3
  • Python Pexpect Library
  • Installation
  • The Pexpect overview
  • Our first Expect program
  • More Pexpect features
  • Pexpect and SSH
  • Putting things together for Pexpect
  • The Python Paramiko library
  • Installating Paramiko
  • The Paramiko overview
  • Our first Paramiko program
  • More Paramiko features
  • Paramiko for Servers
  • Putting things together for Paramiko
  • Looking ahead
  • Downsides of Pexpect and Paramiko compared to other tools
  • Idempotent network device interaction
  • Bad automation speeds bad things up
  • Summary
  • Chapter 3: API and Intent-Driven Networking
  • Infrastructure as the Python code
  • Screen scraping versus API structured output.
  • Data modeling for infrastructure as code
  • The Cisco API and ACI
  • Cisco NX-API
  • Lab Software Installation and Device Preparation
  • NX-API examples
  • Cisco and YANG model
  • The Cisco ACI
  • The Python API for Juniper networks
  • Juniper and NETCONF
  • Device Preparation
  • Juniper NETCONF examples
  • Juniper PyEZ for developers
  • Installation and preparation
  • PyEZ examples
  • The Arista Python API
  • The Arista eAPI management
  • The eAPI preparation
  • eAPI examples
  • The Arista Pyeapi library
  • The Pyeapi installation
  • Pyeapi examples
  • Vendor neutral libraries
  • Summary
  • Chapter 4: The Python Automation Framework - Ansible Basics
  • A quick Ansible example
  • The control node installation
  • Your first Ansible playbook
  • The Public key authorization
  • The inventory file
  • Our first playbook
  • The advantages of Ansible
  • Agentless
  • Idempotent
  • Simple and extensible
  • The vendor Support
  • The Ansible architecture
  • YAML
  • Inventories
  • Variables
  • Templates with Jinja2
  • Ansible networking modules
  • Local connections and facts
  • Provider arguments
  • The Ansible Cisco example
  • The Ansible Juniper example
  • The Ansible Arista example
  • Summary
  • Chapter 5: The Python Automation Framework - Ansible Advance Topics
  • Ansible conditionals
  • The when clause
  • Network module conditional
  • Ansible loops
  • Standard loops
  • Looping over dictionaries
  • Templates
  • The Jinja2 template
  • Jinja2 loops
  • The Jinja2 conditional
  • Group and host variables
  • Group variables
  • Host variables
  • The Ansible vault
  • The Ansible include and roles
  • The Ansible include statement
  • Ansible roles
  • Writing your own custom module
  • The first custom module
  • The second custom module
  • Summary
  • Chapter 6: Network Security with Python
  • The lab setup
  • Python Scapy
  • Installing Scapy
  • Interactive examples.
  • Sniffing
  • The TCP port scan
  • The ping collection
  • Common attacks
  • Scapy resources
  • Access lists
  • Implementing access lists with Ansible
  • MAC access lists
  • The syslog search
  • Searching with regular expressions
  • Other tools
  • Private VLANs
  • UFW with Python
  • Summary
  • Chapter 7: Network Monitoring with Python - Part 1
  • Lab setup
  • SNMP
  • Setup
  • PySNMP
  • Python visualization
  • Matplotlib
  • Installation
  • Matplotlib - the first example
  • Matplotlib for SNMP results
  • Additional Matplotlib resources
  • Pygal
  • Installation
  • Pygal - the first example
  • Pygal for SNMP results
  • Additional Pygal resources
  • Python for Cacti
  • Installation
  • Python script as an input source
  • Summary
  • Chapter 8: Network Monitoring with Python - Part 2
  • Graphviz
  • Lab setup
  • Installation
  • Graphviz examples
  • Python with Graphviz examples
  • LLDP neighbor graphing
  • Information retrieval
  • Python parser script
  • Final playbook
  • Flow-based monitoring
  • NetFlow parsing with Python
  • Python socket and struct
  • ntop traffic monitoring
  • Python extension for ntop
  • sFlow
  • SFlowtool and sFlow-RT with Python
  • Elasticsearch (ELK stack)
  • Setting up a hosted ELK service
  • The logstash format
  • Python helper script for Logstash formatting
  • Summary
  • Chapter 9: Building Network Web Services with Python
  • Comparing Python web frameworks
  • Flask and lab setup
  • Introduction to Flask
  • The HTTPie client
  • URL routing
  • URL variables
  • URL generation
  • The jsonify return
  • Network s API
  • Flask-SQLAlchemy
  • Network content API
  • Devices API
  • The device ID API
  • Network dynamic operations
  • Asynchronous operations
  • Security
  • Additional resources
  • Summary
  • Chapter 10: OpenFlow Basics
  • Lab setup
  • Introducing OpenFlow
  • Basic operations
  • OpenFlow 1.0 vs 1.3
  • Mininet.
  • The Ryu controller with Python
  • Open vSwitch commands
  • The Ryu firewall application
  • Layer 2 OpenFlow switch
  • Planning your application
  • Application components
  • The POX controller
  • Summary
  • Chapter 11: Advanced OpenFlow Topics
  • Setup
  • OpenFlow operations with Ryu
  • Packet inspection
  • Static router
  • Mininet topology
  • Ryu controller code
  • Ryu flow installation
  • Ryu packet generation
  • Final result
  • Router with API
  • Ryu controller with API
  • API usage examples
  • BGP router with OpenFlow
  • Lab router setup
  • Python with the BGP speaker library
  • Ryu BGP application
  • Firewall with OpenFlow
  • Summary
  • Chapter 12: OpenStack, OpenDaylight, and NFV
  • OpenStack
  • OpenStack overview
  • Networking in OpenStack
  • Trying out OpenStack
  • OpenDaylight
  • OpenDaylight programming overview
  • OpenDaylight example
  • Summary
  • Chapter 13: Hybrid SDN
  • Preparing the network
  • Familiarize yourself with the existing framework and tools
  • Network standardization
  • Create minimum viable products
  • Relentlessly experiment
  • Greenfield deployment
  • Controller redundancy
  • Multiple controller example
  • BGP migration example
  • Migration segmentation
  • VIRL and Mininet setup
  • Cisco device configuration
  • Ryu BGP speaker
  • Mininet and REST Router
  • Result and verification
  • More BGP example
  • Examine the JSONRPC over WebSocket
  • Monitoring integration
  • Secure TLS connection
  • Physical switch selection
  • Lab OpenFlow switches
  • Incumbent vendor switches
  • Whitebox Switches
  • Summary
  • Index.