Home Page Icon
Home Page
Table of Contents for
cover
Close
cover
by Mandy Whaley, Michael Kennedy, Eric Chou
Mastering Python Networking - Third Edition
Preface
Who this book is for
What this book covers
To get the most out of this book
Download the example code files
Download the color images
Conventions used
Get in touch
Reviews
Review of TCP/IP Protocol Suite and Python
An overview of the internet
Servers, hosts, and network components
The rise of data centers
Enterprise data centers
Cloud data centers
Edge data centers
The OSI model
Client-server model
Network protocol suites
The transmission control protocol
Functions and characteristics of TCP
TCP messages and data transfer
The user datagram protocol
The internet protocol
IP network address translation (NAT) and network 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
Low-Level Network Device Interactions
The challenges of the CLI
Constructing a virtual lab
Physical devices
Virtual devices
Cisco VIRL
VIRL tips
Cisco DevNet and dCloud
GNS3
Python Pexpect library
Python virtual environment
Pexpect installation
Pexpect overview
Our first Pexpect program
More Pexpect features
Pexpect and SSH
Putting things together for Pexpect
The Python Paramiko library
Installation of Paramiko
Paramiko overview
Our first Paramiko program
More Paramiko features
Paramiko for servers
Putting things together for Paramiko
The Netmiko library
The Nornir framework
Downsides of Pexpect and Paramiko compared to other tools
Idempotent network device interaction
Bad automation speeds bad things up
Summary
APIs and Intent-Driven Networking
Infrastructure-as-code
Intent-driven networking
Screen scraping versus API structured output
Data modeling for infrastructure-as-code
YANG and NETCONF
The Cisco API and ACI
Cisco NX-API
Lab software installation and device preparation
NX-API examples
The Cisco YANG model
The Cisco ACI and APIC-EM
Cisco Meraki controller
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
Arista eAPI management
eAPI preparation
eAPI examples
The Arista Pyeapi library
Pyeapi installation
Pyeapi examples
VyOS example
Other libraries
Summary
The Python Automation Framework – Ansible Basics
Ansible – a more declarative framework
A quick Ansible example
The control node installation
Running different versions of Ansible from source
Lab setup
Your first Ansible playbook
The public key authorization
The inventory file
Our first playbook
The Advantages of Ansible
Agentless
Idempotence
Simple and extensible
Network vendor support
The Ansible architecture
YAML
Inventories
Variables
Templates with Jinja2
Ansible networking modules
Local connections and facts
Provider arguments
The Ansible Cisco example
Ansible 2.8 playbook example
The Ansible Juniper example
The Ansible Arista example
Summary
The Python Automation Framework – Beyond Basics
Lab preparation
Ansible conditionals
The when clause
Ansible network facts
Network module conditional
Ansible loops
Standard loops
Looping over dictionaries
Templates
The Jinja2 template variables
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
Network Security with Python
The lab setup
Python Scapy
Installing Scapy
Interactive examples
Packet captures with Scapy
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 the regular expression module
Other tools
Private VLANs
UFW with Python
Further reading
Summary
Network Monitoring with Python – Part 1
Lab setup
SNMP
Setup
PySNMP
Python for data 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
Network Monitoring with Python – Part 2
Graphviz
Lab setup
Installation
Graphviz examples
Python with Graphviz examples
LLDP neighbor graphing
Information retrieval
Python parser script
Testing the 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
Summary
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 resource API
Flask-SQLAlchemy
The network content API
The devices API
The device ID API
Network dynamic operations
Asynchronous operations
Authentication and authorization
Running Flask in containers
Summary
AWS Cloud Networking
AWS setup
The AWS CLI and Python SDK
AWS network overview
Virtual private cloud
Route tables and route targets
Automation with CloudFormation
Security groups and network ACLs
Elastic IP
NAT gateways
Direct Connect and VPN
VPN gateways
Direct Connect
Network scaling services
Elastic Load Balancing
Route 53 DNS service
CloudFront CDN services
Other AWS network services
Summary
Azure Cloud Networking
Azure and AWS network service comparison
Azure setup
Azure administration and APIs
Azure service principal
Python versus PowerShell
Azure global infrastructure
Azure virtual networks
Internet access
Network resource creation
VNet service endpoint
VNet peering
VNet routing
Network security groups
Azure VPNs
Azure ExpressRoute
Azure Network Load Balancers
Other Azure network services
Summary
Network Data Analysis with Elastic Stack
What is the Elastic Stack?
Lab topology
Elastic Stack as a Service
First End-to-End example
Elasticsearch with a Python client
Data ingestion with Logstash
Data ingestion with Beats
Search with Elasticsearch
Data visualization with Kibana
Summary
Working with Git
Content management considerations and Git
Introduction to Git
Benefits of Git
Git terminology
Git and GitHub
Setting up Git
Gitignore
Git usage examples
Git branch
GitHub example
Collaborating with pull requests
Git with Python
GitPython
PyGitHub
Automating configuration backup
Collaborating with Git
Summary
Continuous Integration with Jenkins
The traditional change management process
An introduction to continuous integration
Installing Jenkins
Jenkins example
The first job for the Python script
Jenkins plugins
Network continuous integration example
Jenkins with Python
Continuous integration for networking
Summary
Test-Driven Development for Networks
Test-driven development overview
Test definitions
Topology as code
Python's unittest module
More on Python testing
pytest examples
Writing tests for networking
Testing for reachability
Testing for network latency
Testing for security
Testing for transactions
Testing for network configuration
Testing for Ansible
pytest Integration with Jenkins
Jenkins integration
pyATS and Genie
Summary
Other Books You May Enjoy
Index
Search in book...
Toggle Font Controls
Playlists
Add To
Create new playlist
Name your new playlist
Playlist description (optional)
Cancel
Create playlist
Sign In
Email address
Password
Forgot Password?
Create account
Login
or
Continue with Facebook
Continue with Google
Sign Up
Full Name
Email address
Confirm Email Address
Password
Login
Create account
or
Continue with Facebook
Continue with Google
Next
Next Chapter
Title_page
Add Highlight
No Comment
..................Content has been hidden....................
You can't read the all page of ebook, please click
here
login for view all page.
Day Mode
Cloud Mode
Night Mode
Reset