Network Programmability and Automation Fundamentals

Network Programmability and Automation Fundamentals

$89.99

SKU: 9781587145148
Quantity Discount
5 + $67.49

Description

Modernize and optimize network management with APIs and automation Legacy network management approaches don’t scale adequately and can’t be automated well. This guide will help meet tomorrow’s challenges by adopting network programmability based on Application Programming Interfaces (APIs). Using these techniques, you can improve efficiency, reliability, and flexibility; simplify implementation of high-value technologies; automate routine administrative and security tasks; and deploy services far more rapidly. Four expert authors help you transition from a legacy mindset to one based on solving problems with software. They explore today’s emerging network programmability and automation ecosystem; introduce each leading programmable interface; and review the protocols, tools, techniques, and technologies that underlie network programmability. You’ll master key concepts through hands-on examples you can run using Linux, Python, Cisco DevNet sandboxes, and other easily accessible tools. This guide is for all network architects, engineers, operations, and software professionals who want to integrate programmability into their networks. It offers valuable background for Cisco DevNet certification—and skills you can use with any platform, whether you have software development experience or not.

  • Master core concepts and explore the network programmability stack
  • Manage network software and run automation scripts in Linux environments
  • Solve real problems with Python and its Napalm and Nornir automation frameworks
  • Make the most of the HTTP protocol, REST architectural framework, and SSH
  • Encode your data with XML, JSON, or YAML
  • Understand and build data models using YANG that offer a foundation for model-based network programming
  • Leverage modern network management protocols, from gRPC and gNMI to NETCONF and RESTCONF
  • Meet stringent service provider KPIs in large-scale, fast-changing networks
  • Program Cisco devices running IOS XE, IOS XR, and NX-OS as well as Meraki, DNA Center, and Webex platforms
  • Program non-Cisco platforms such as Cumulus Linux and Arista EOS
  • Go from “zero to hero” with Ansible network automation
  • Plan your next steps with more advanced tools and technologies

Introduction xxix

Part I Introduction

Chapter 1 The Network Programmability and Automation Ecosystem 1

First, a Few Definitions 2

Your Network Programmability and Automation Toolbox 14

Software and Network Engineers: The New Era 19

Part II Linux

Chapter 2 Linux Fundamentals 21

The Story of Linux 21

The Linux Boot Process 26

A Linux Command Shell Primer 28

Finding Help in Linux 31

Files and Directories in Linux 35

Input and Output Redirection 57

Archiving Utilities 67

Linux System Maintenance 73

Installing and Maintaining Software on Linux 94

Summary 118

Chapter 3 Linux Storage, Security, and Networks 119

Linux Storage 119

Linux Security 135

Linux Networking 158

Summary 181

Chapter 4 Linux Scripting 183

Regular Expressions and the grep Utility 184

The AWK Programming Language 193

The sed Utility 196

General Structure of Shell Scripts 203

Output and Input 207

Variables 215

Conditional Statements 223

Loops 232

The until-do Loop 237

Functions 238

Expect 242

Summary 246

Part III Python

Chapter 5 Python Fundamentals 249

Scripting Languages Versus Programming Languages 250

Network Programmability 253

Computer Science Concepts 255

Python Fundamentals 260

Summary 309

References 310

Chapter 6 Python Applications 311

Organizing the Development Environment 311

The virtualenv Tool 331

Python Modules 333

Python Applications 336

Summary 385

Part IV Transport

Chapter 7 HTTP and REST 387

HTTP Overview 387

The REST Framework 392

The HTTP Connection 394

HTTP Transactions 397

HTTP Messages 415

Resource Identification 431

Postman 436

HTTP and Bash 447

HTTP and Python 455

Summary 467

Chapter 8 Advanced HTTP 469

HTTP/1.1 Authentication 469

Transport Layer Security (TLS) and HTTPS 487

HTTP/2 503

Summary 508

Chapter 9 SSH 509

SSH Overview 509

Setting Up SSH 521

Enabling SSH on Cisco Devices 526

Secure File Transfer 540

Summary 551

References 551

Part V Encoding

Chapter 10 XML 553

XML Overview, History, and Usage 553

XML Syntax and Components 554

Making XML Valid 562

Navigating XML Documents 574

XML Stylesheet Language Transformations (XSLT) 578

Processing XML Files with Python 580

Summary 588

Chapter 11 JSON 591

JavaScript Object Notation (JSON) 591

JSON Schema Definition (JSD) 595

Summary 614

Chapter 12 YAML 615

YAML Structure 616

Handling YAML Data Using Python 626

Summary 637

Part VI Modeling

Chapter 13 YANG 639

A Data Modeling Primer 639

YANG Data Models 642

Types of YANG Modules 663

YANG Tools 673

Summary 688

Part VII Protocols

Chapter 14 NETCONF and RESTCONF 689

NETCONF 689

RESTCONF 739

Summary 779

Chapter 15 gRPC, Protobuf, and gNMI 781

Requirements for Efficient Transport 781

History and Principles of gRPC 782

gRPC as a Transport 784

The Protocol Buffers Data Format 786

Working with gRPC and Protobuf in Python 790

The gNMI Specification 798

The Anatomy of gNMI 799

Managing Network Elements with gNMI/gRPC 814

Summary 818

Chapter 16 Service Provider Programmability 819

The SDN Framework for Service Providers 819

Segment Routing (SR) 823

BGP Link State (BGP-LS) 843

Path Computation Element Protocol (PCEP) 859

Summary 880

Part VIII Programmability Applications

Chapter 17 Programming Cisco Platforms 881

API Classification 882

Network Platforms 883

Meraki 922

DNA Center 931

Collaboration Platforms 942

Summary 954

Chapter 18 Programming Non-Cisco Platforms 957

General Approaches to Programming Networks 957

Implementation Examples 962

Summary 987

Chapter 19 Ansible 989

Ansible Basics 989

Extending Ansible Capabilities 1003

Jinja2 Templates 1034

Using Ansible for Cisco IOS XE 1055

Using Ansible for Cisco IOS XR 1073

Using Ansible for Cisco NX-OS 1084

Using Ansible in Conjunction with NETCONF 1095

Summary 1108

Part IX Looking Ahead

Chapter 20 Looking Ahead 1109

Some Rules of Thumb 1109

What Does All This Mean for Your Career? 1118

9781587145148, TOC, 4/1/2021

  • The definitive guide to take students to expert level in network programmability and automation
  • This book assumes no prior knowledge in programming, Linux, or any other subject, apart from basic knowledge of networks
  • This book is closely aligned with the industry, building the correct and relevant skill set to be competitive in the market of tomorrow as a network engineer
  • Both Cisco and Open Source platforms, tools, and technologies are covered

Khaled Abuelenain, CCIE No. 27401 (R&S, SP), is currently the Consulting Director at Acuative, a Cisco Managed Services Master Partner. Khaled has spent the past 18 years designing, implementing, operating, and automating networks and clouds. He specializes in service provider technologies, SD-WAN, data center technologies, programmability, automation, and cloud architectures. Khaled is especially interested in Linux and OpenStack.

Khaled is a contributing author of the best-selling Cisco Press book Routing TCP/IP, Volume II, 2nd edition, by Jeff Doyle. He also blogs frequently on network programmability and automation on blogs.cisco.com. Khaled is also a member of the DevNet500 group, being one of the first 500 individuals in the world to become DevNet certified. Khaled lives in Riyadh, Saudi Arabia, and when not working or writing, he likes to run marathons and skydive. He can be reached at kabuelenain@gmail.com, on Twitter at @kabuelenain or on LinkedIn at linkedin.com/in/kabuelenain.

Jeff Doyle, CCIE No. 1919, is a Member of Technical Staff at Apstra. Specializing in IP routing protocols, complex BGP policy, SDN/NFV, data center fabrics, IBN, EVPN, MPLS, and IPv6, Jeff has designed or assisted in the design of large-scale IP and IPv6 service provider networks in 26 countries over 6 continents.

Jeff is the author of CCIE Professional Development: Routing TCP/IP, Volumes I and II and OSPF and IS-IS: Choosing an IGP for Large-Scale Networks; a co-author of Software-Defined Networking: Anatomy of OpenFlow; and an editor and contributing author of Juniper Networks Routers: The Complete Reference. Jeff is currently writing CCIE Professional Development: Switching TCP/IP. He also writes for Forbes and blogs for both Network World and Network Computing. Jeff is one of the founders of the Rocky Mountain IPv6 Task Force, is an IPv6 Forum Fellow, and serves on the executive board of the Colorado chapter of the Internet Society (ISOC).

Anton Karneliuk, CCIE No. 49412 (R&S, SP), is a Network Engineer and Manager at THG Hosting, responsible for the development, operation, and automation of networks in numerous data centers across the globe and the international backbone. Prior to joining THG, Anton was a team lead in Vodafone Group Network Engineering and Delivery, focusing on introduction of SDN and NFV projects in Germany. Anton has 15 years of extensive experience in design, rollout, operation, and optimization of large-scale service providers and converged networks, focusing on IP/MPLS, BGP, network security, and data center Clos fabrics built using EVPN/VXLAN. He also has several years of full-stack software development experience for network management and automation.

Anton holds a B.S. in telecommunications and an M.S. in information security from Belarusian State University of Informatics and Radio Electronics. You can find him actively blogging about network automation and running online training at Karneliuk. com. Anton lives with his wife in London.

Vinit Jain, CCIE No. 22854 (R&S, SP, Security & DC), is a Network Development Engineer at Amazon, managing the Amazon network backbone operations team. Previously, he worked as a technical leader with the Cisco Technical Assistance Center (TAC), providing escalation support in routing and data center technologies. Vinit is a speaker at various networking forums, including Cisco Live! events. He has co-authored several Cisco Press titles, such as Troubleshooting BGP, and Troubleshooting Cisco Nexus Switches and NX-OS, LISP Network Deployment and Troubleshooting, and has authored and co-authored several video courses, including BGP Troubleshooting, the CCNP DCCOR Complete Video Course, and the CCNP ENCOR Complete Video Course. In addition to his CCIEs, Vinit holds multiple certifications related to programming and databases. Vinit graduated from Delhi University in mathematics and earned a master’s in information technology from Kuvempu University in India. Vinit can be found on Twitter as @VinuGenie.

Network Programmability and Automation covers designing, implementing, monitoring and operating networks using programmable interfaces on network devices versus the legacy (and soon-to-be obsolete) methods and protocols such as the Command Line Interface (CLI) and Simple Network Management Protocol (SNMP). It discusses the protocols, tools, techniques and technologies upon which Network Programmability is based.

Covering the fundamentals that a network engineer needs to transition to the software and programmability domains, the book opens with an introduction that lays the foundation by discussing the market trends and emerging technologies such as SDN, NFV and Cloud, and how network programmability skills are paramount for aligning oneself with these technologies. It provides network engineers with a solid foundation in Python programming and Linux in the context of network programmability and automation.

Covers the fundamentals that a network engineer needs to transition to the software and programmability domains
  • These two volumes will be sufficient as a standalone resource to take you to expert level in Network Programmability and automation
  • This book assumes no prior knowledge in Programming, Linux or any other subject, apart from basic CCNA-level knowledge in Networks
  • This book will be closely aligned with the industry, building the correct and relevant skill set to be competitive in tomorrow’s market as a network engineer
  • Both Cisco and Open Source platforms, tools and technologies are covered

Additional information

Dimensions 2.30 × 7.40 × 9.10 in
Series

Imprint

Format

ISBN-13

ISBN-10

Author

, , ,

BISAC

Subjects

professional, higher education, COM088000, Employability, IT Professional, 2-EB INTERNET WORKINGS