31 - Introducing Network Programmability Protocols Flashcards Preview

CCNP Enterprise ENCOR 350-401 > 31 - Introducing Network Programmability Protocols > Flashcards

Flashcards in 31 - Introducing Network Programmability Protocols Deck (47)
Loading flashcards...
1
Q

Scripting can be used to gather data or modify configurations. While using a language like Python allows an administration to perform manual programming, there are tools that can be used specifically for configuration __ and __.

A

automation, management

2
Q

When there is a defined manual workflow to perform a set of tasks, proper tools should be used to automate it. It does not make sense to spend an hour performing a change. This change could take just a few minutes by using a properly engineered tool. This process is where Open Source tools such as __, __, __, and __ can dramatically reduce the number of manual interactions with the network.

A

Puppet, Chef, Ansible, SaltStack

3
Q

What are some features of Puppet?

A

o Created in 2005
o Manages systems in a declarative manner. You define the state the target system should be in without worrying how it happens
o Written in Ruby
o Agent-based – software agent needs to be installed on devices you want to manage

4
Q

What are some features of Chef?

A

o Same model as Puppet
o Based in Ruby, uses a declarative mode
o Agent based
o Refers to automation instruction as recipes

5
Q

What are some features of Ansible?

A

o Alternative to Puppet and Chef
o Written in Python
o Agentless – can integrate and automate any device using any API
o Integrations can use REST, APIs, NETCONF, SSH or even SNMP
o Playbooks are Ansible sets of tasks used to automate devices

6
Q

What are some features of SaltStack?

A

o Open source
o Python based
o Developed by Thomas S Hatch and originally released in 2011
o Designed to be easily moulded to divergent enterprise IT use cases through a highly modular and easily extensible design
o Uses a module design that creates Python modules to handle aspects of the available salt systems

7
Q

___is a data exchange format and open standard. It is easy for humans to read and write and is easy for machines to parse and generate. It is based on a subset of JavaScript and is a text format that is completely language independent.

A

JavaScript Object Notation (JSON)

8
Q

JSON is best known for the __ syntax because JSON objects always begin and end with a __.

A

curly brace

9
Q

JSON is extremely popular, not only because it is easy to read, but for Python programmers, it natively maps into Python as a Python __. So if you understand __, you understand JSON, and vice versa.

A

dictionary, dictionaries

10
Q

On a nexus switch, you can __ commands to JSON to see what output looks like as a JSON object. The data returned with JSON gives a descriptor for every value that is returned, allow for easy interpretation of the data. Management systems will have a much easier job using any data value that is returned with the JSON data than the normal output that an admin see via CLI.

A

pipe

11
Q

Although using JSON __ have not been extremely popular for network APIs, it is important to understand that there are ways to model and define constraints of JSON objects using a JSON-schema document

A

schemas

12
Q

What is a data model?

A
  • Describe a constrained set of data in the form of a schema language
  • Use well-define parameters to standardise the representation of data from a network device so the output among various platforms in the same
  • Not used to actually send information to devices and instead rely on protocols such as NETCONF and RESTCONF.
  • Device config can be validated against a data model to check if the changes are a valid for the device before committing the changes
13
Q

Data models can define attributes and answers such as:

A
  • What is the range of a valid VLAN ID?
  • Can a VLAN name have spaces in it?
  • Should the value be a string or an integer
14
Q

One misconception is that data models are used to __ data to/from a device. This is not the case. Instead, protocols such a NETCONF/RESTCONF send JSON and XML encoded documents that simply adhere to a given model.

A

send

15
Q

___ is a formal contract language with rich syntax and semantics on which you can build applications. It provides these rich semantics that offer constraints, but also provides re-usable structures that can be used between __ models.

A

Yet Another Next Generation (YANG)

16
Q

What are some features of YANG?

A
  • Modelling language
  • Initially build for NETCONF
  • Now also used by RESTCONF
  • Models configurations and operational state data
  • Provides syntax and semantics
  • Utilises reusable data structures
17
Q

There are different types of YANG models. Notably, there are __ standard and __ specific models.

A

industry, vendor/platform

18
Q

What is an industry standard YANG model?

A
  • Standard definition
  • Come from various working groups (IETF, ITO, OpenConfig etc)
  • Focus is to create vendor and platform independent models
19
Q

What is a Cisco common YANG model?

A
  • Cisco definition

* Common across Cisco devices

20
Q

What is a Cisco Platform Specific YANG model?

A
  • Cisco definition

* Unique to specific Cisco platforms i.e “BGP” extensions on IOS-XE

21
Q

There is often a perception that __ is a complex topic to learn about, but it is analogous to browsing a website with a web browser.

A

Representational State Transfer (REST)

22
Q

If you understand how to work with a web browser, you understand __. The same HTTP request methods and response codes are used.

A

REST

23
Q

When using REST APIs, you still have a client that performs __ operations (GET) to a network device running a web server. The network device understands the request that is based on the URL and returns JSON or XML encoded objects so that the client can properly consume them.

A

HTTP

24
Q

What are some features of REST?

A
  • Proposed by Roy Fielding in 2000
  • Developed using CRUD operations for use with HTTP
  • Stateless client-server model (each request is treated independently from any other request)
  • Uses simple URIs to identify resources of interest
25
Q

REST supports ___operations by using specific HTTP verbs. __ refers to the four major functions that are implemented in database applications.

A

Create, Read, Update, Delete (CRUD)

26
Q

The most common HTTP verbs are:

A
  • Get – retrieve/read a resource
  • Post – create a new resource
  • Put – update/ replace a resource
  • Patch – update/modify a resource
  • Delete – removes a resource
27
Q

Which REST tool is a simple Linux command line tool within a shell script that provides an easy way to transfer data with URL syntax

A

cURL

28
Q

Which REST tool is a Google Chrome application that provides you a very easy graphical user interface to consume REST APIs from withing the Chrome web browser.

A

Postman

29
Q

Which REST tool makes use of embedded Python libraries and a small variety of methods to send HTTP requests to a resource’s API

A

Python requests

30
Q

The __ is an IETF network management protocol designed specifically for configuration management.

A

Network Configuration Protocol (NETCONF)

31
Q

What are some features of NETCONF?

A
  • Makes a distinction between configuration and state data
  • Utilises multiple configuration data stores (candidate, running, startup)
  • Configuration change transactions
  • Provides client-side configuration validation
  • Uses filtering mechanisms for selective data retrieval
  • Uses a client-server model and SSH as transport protocol
32
Q

__ is a next-generation network management protocol that is designed specifically for transactional-based network management and to improve upon the weakness of SNMP.

A

NETCONF

33
Q

NETCONF makes a distinction between __ and __ data. The information that can be retrieved from a running system is separated into two classes, __ data and __ data.

A

configuration, state

34
Q

Set of writeable data that is required to transform a system from its initial default state into its current state.

A

Configuration data

35
Q

The additional data on a system that is not configuration data such as read-only status information and collected statistics.

A

state data

36
Q

To account for these issues, the NETCONF protocol recognises the difference between configuration data and state data and provides __ for each

A

operations

37
Q

There are four core layers to the NETCONF protocol stack.

A

Protocols
Messages
Operations
Content

38
Q

How the NETCONF client communicates with the NETCONF server

A

Protocols

39
Q

NETCONF encodes everything in XML starting with the XML header and message. The first element in the XML document is always the RPC element that is denoted as < rpc >. It is simply telling the server that an RPC is going to be used on the device. These RPCs map direction back to specific operations on the device

A

Messages

40
Q

NETCONF: Each device and platform supports a given number of __. Common ones are < get-config >, < get >, < copy-config >, < commit >, < validate >, < lock >, < unlock >, < edit-config >, < delete-config >

A

Operations

41
Q

NETCONF: embed as XML objects within the operations tag is XML documents specific the data you want to retrieve or configure. It is the content that is an XML representation of YANG models or XML schema definitions.

A

Content

42
Q

NETCONF supports multiple data stores including a __, __, and __ configuration.

A

running, startup, candidate

43
Q

There are two main general utilities and tools to be aware of when getting started with NETCONF.

A

On-box NETCONF server. You can use it, as shown throughout the lesson, to test sending XML documents to the device.

Python ncclient. It is a NETCONF client that is the defacto way of interacting with NETCONF devices while working in Python

44
Q

REST APIs that are based on HTTP and JSON, are becoming a common way of programming infrastructure. __ is a specification for a REST-like interface that maps to the NETCONG-YANG interface mode. __ is NETCONF/YANG without the SSH but adding JSON and HTTP(S).

A

RESTCONF

45
Q

__ helps support a common, REST-based programming model for network programming in general. This model aligns with the wider trend in infrastructure programming to support RESP APIs.

A

RESTCONF

46
Q

Platforms that are based on Cisco __ software are designed for use in enterprise environments, on devices such as the Cisco 4000 series-integrated services routers or Cisco ASR 1000 series router.

A

IOS XE

47
Q

The Cisco __(Cisco CSR 1000v) is a virtual version of IOS XE software for cloud deployments that helps extend the enterprise network environment of the cloud.

A

Cloud services router