Published by Cisco Press (May 27, 2021) © 2021

Khaled Abuelenain | Jeff Doyle | Anton Karneliuk | Vinit Jain
    VitalSource eTextbook (Lifetime access)
    €60,99
    Adding to cart… The item has been added
    ISBN-13: 9780135184264

    Network Programmability and Automation Fundamentals ,1st edition

    Language: English

    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