0%

Modernize and optimize network management with APIs and automation Legacy network management approaches dont scale adequately and cant be automated well. This guide will help meet tomorrows 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 todays emerging network programmability and automation ecosystem; introduce each leading programmable interface; and review the protocols, tools, techniques, and technologies that underlie network programmability. Youll 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 certificationand 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

Table of Contents

  1. Cover Page
  2. About This eBook
  3. Title Page
  4. Copyright Page
  5. Credits
  6. About the Authors
  7. About the Technical Reviewers
  8. Dedication
  9. Acknowledgments
  10. Contents at a Glance
  11. Contents
  12. Icons Used in This Book
  13. Command Syntax Conventions
  14. Introduction
    1. Goals and Methods of This Book
    2. Who This Book Is For
    3. How This Book Is Organized
    4. How This Book Is Structured
  15. Part I: Introduction
    1. Chapter 1. The Network Programmability and Automation Ecosystem
    2. First, a Few Definitions
    3. Your Network Programmability and Automation Toolbox
    4. Software and Network Engineers: The New Era
  16. Part II: Linux
    1. Chapter 2. Linux Fundamentals
    2. The Story of Linux
    3. The Linux Boot Process
    4. A Linux Command Shell Primer
    5. Finding Help in Linux
    6. Files and Directories in Linux
    7. Input and Output Redirection
    8. Archiving Utilities
    9. Linux System Maintenance
    10. Installing and Maintaining Software on Linux
    11. Summary
    12. Chapter 3. Linux Storage, Security, and Networks
    13. Linux Storage
    14. Linux Security
    15. Linux Networking
    16. Summary
    17. Chapter 4. Linux Scripting
    18. Regular Expressions and the grep Utility
    19. The AWK Programming Language
    20. The sed Utility
    21. General Structure of Shell Scripts
    22. Output and Input
    23. Variables
    24. Conditional Statements
    25. Loops
    26. Functions
    27. Expect
    28. Summary
  17. Part III: Python
    1. Chapter 5. Python Fundamentals
    2. Computer Science Concepts
    3. Python Fundamentals
    4. Summary
    5. References
    6. Chapter 6. Python Applications
    7. Organizing the Development Environment
    8. Python Modules
    9. Python Applications
    10. Summary
  18. Part IV: Transport
    1. Chapter 7. HTTP and REST
    2. HTTP Overview
    3. The REST Framework
    4. The HTTP Connection
    5. HTTP Transactions
    6. HTTP Messages
    7. Resource Identification
    8. Postman
    9. HTTP and Bash
    10. HTTP and Python
    11. Summary
    12. Chapter 8. Advanced HTTP
    13. HTTP/1.1 Authentication
    14. Transport Layer Security (TLS) and HTTPS
    15. HTTP/2
    16. Summary
    17. Chapter 9. SSH
    18. SSH Overview
    19. Setting Up SSH
    20. Enabling SSH on Cisco Devices
    21. Secure File Transfer
    22. Summary
    23. References
  19. Part V: Encoding
    1. Chapter 10. XML
    2. XML Overview, History, and Usage
    3. XML Syntax and Components
    4. Making XML Valid
    5. Navigating XML Documents
    6. XML Stylesheet Language Transformations (XSLT)
    7. Processing XML Files with Python
    8. Summary
    9. Chapter 11. JSON
    10. JavaScript Object Notation (JSON)
    11. JSON Schema Definition (JSD)
    12. Summary
    13. Chapter 12. YAML
    14. YAML Structure
    15. Handling YAML Data Using Python
    16. Summary
  20. Part VI: Modeling
    1. Chapter 13. YANG
    2. A Data Modeling Primer
    3. YANG Data Models
    4. Types of YANG Modules
    5. YANG Tools
    6. Summary
  21. Part VII: Protocols
    1. Chapter 14. NETCONF and RESTCONF
    2. NETCONF
    3. RESTCONF
    4. Summary
    5. Chapter 15. gRPC, Protobuf, and gNMI
    6. Requirements for Efficient Transport
    7. History and Principles of gRPC
    8. gRPC as a Transport
    9. The Protocol Buffers Data Format
    10. Working with gRPC and Protobuf in Python
    11. The gNMI Specification
    12. The Anatomy of gNMI
    13. Managing Network Elements with gNMI/gRPC
    14. Summary
    15. Chapter 16. Service Provider Programmability
    16. The SDN Framework for Service Providers
    17. Segment Routing (SR)
    18. BGP Link State (BGP-LS)
    19. Path Computation Element Protocol (PCEP)
    20. Summary
  22. Part VIII: Programmability Applications
    1. Chapter 17. Programming Cisco Platforms
    2. API Classification
    3. Network Platforms
    4. Meraki
    5. DNA Center
    6. Collaboration Platforms
    7. Summary
    8. Chapter 18. Programming Non-Cisco Platforms
    9. General Approaches to Programming Networks
    10. Implementation Examples
    11. Summary
    12. Chapter 19. Ansible
    13. Ansible Basics
    14. Extending Ansible Capabilities
    15. Jinja2 Templates
    16. Using Ansible for Cisco IOS XE
    17. Using Ansible for Cisco IOS XR
    18. Using Ansible for Cisco NX-OS
    19. Using Ansible in Conjunction with NETCONF
    20. Summary
  23. Part IX: Looking Ahead
    1. Chapter 20. Looking Ahead
    2. Some Rules of Thumb
    3. What Do You Study Next?
    4. What Does All This Mean for Your Career?
  24. Index
  25. Code Snippets
3.146.221.52