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…mehr
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
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.
Inhaltsangabe
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
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
Es gelten unsere Allgemeinen Geschäftsbedingungen: www.buecher.de/agb
Impressum
www.buecher.de ist ein Internetauftritt der buecher.de internetstores GmbH
Geschäftsführung: Monica Sawhney | Roland Kölbl | Günter Hilger
Sitz der Gesellschaft: Batheyer Straße 115 - 117, 58099 Hagen
Postanschrift: Bürgermeister-Wegele-Str. 12, 86167 Augsburg
Amtsgericht Hagen HRB 13257
Steuernummer: 321/5800/1497
USt-IdNr: DE450055826