Scripting the Catalyst: Beyond the Basics

Size: px
Start display at page:

Download "Scripting the Catalyst: Beyond the Basics"

Transcription

1

2 Scripting the Catalyst: Beyond the Basics Jeff McLaughlin, Principal TME

3 Cisco Spark How Questions? Use Cisco Spark to communicate with the speaker after the session 1. Find this session in the Cisco Live Mobile App 2. Click Join the Discussion 3. Install Spark or go directly to the space 4. Enter messages/questions in the space cs.co/ciscolivebot# 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public

4 Agenda Why programmability? Planning a script Python and Tools Finding and using Models NCClient and YDK-Py REST APIs Completing the script On-Box Python

5 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 5

6 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 6

7 Why Programmability?

8 Why automation and programmability? Administrator Needs to configure hostname switch1 int g0/0 ip address /24 vlan 100,200, hostname switch6 int g0/0 ip address /24 vlan 100,200, Cisco and/or its affiliates. All rights reserved. Cisco Public 8

9 Notepad is the most common automation tool. It s just a very bad automation tool.... Programmability Reason #1 Do repetitive and tedious tasks more easily 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 9

10 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored if error counters too high: then shutdown interface* * pseudo-code Programmability Reason #2 Programmatic Control of network devices 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 10

11 party apps Cisco ISE NETCONF REST API Catalyst switches APIC-EM Programmability Reason #3 Interaction between network devices and other systems 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 11

12 Transactionality int g0/0 ip address /24 no shutdown router bgp router-id bgp log-neighbor-changes neighbor remote-as neighbor remote-as address-family ipv4 unicast neighbor activate network mask exit-address-family Programmability Reason #4 Stop bad configuration being committed to devices 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 12

13 Operational Simplification How to find the red user's switch/port? 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 13

14 Operational Simplification # ping # show arp i # show mac address-table address 001a.a24d.5141 # show cdp neighbor g0/1 detail How to find the red user's switch/port? 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 14

15 Operational Simplification # show mac address-table address 001a.a24d.5141 # show cdp neighbor g0/10 detail How to find the red user's switch/port? 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 15

16 Operational Simplification How to find the red user's switch/port? # show mac address-table address 001a.a24d.5141 # show cdp neighbor g0/10 detail Vlan Mac Address Type Ports a.a24d.5141 DYNAMIC Gi0/ Cisco and/or its affiliates. All rights reserved. Cisco Public 16

17 Operational Simplification Programmability Reason #5 Automate complex troubleshooting tasks 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 17

18 Time for a demo 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public

19 1 User types command into Spark 2 Command pulled down by script REST 5 Data posted back to Spark room 3 Script sends NETCONF request 4 Switch replies via NETCONF with data NETCONF Catalyst Cisco and/or its affiliates. All rights reserved. Cisco Public 19

20 Planning Tools Models APIs Development 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 20

21 Planning your script

22 What do I want to do? Catalyst Display the routing table 2. Graph the routing table 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 22

23 What tool to use? CLI CFG MGMT TOOLS PYTHON SCRIPT Advantages: Easy to use Well documented Immediate result Advantages: Device roles Powerful templating Easy to learn Advantages: Numerous libraries Programmable intfs Well supported Disadvantages: Time consuming Tedious Error-prone Disadvantages: Less functionality Disadvantages: Development time 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 23

24 Python: Why not C, Ruby, Perl, TCL, Go, etc.? Easy to Learn Interactive shell Easy to begin with simple scripts Libraries! Extensive libraries, like an app store for developers Read Excel, output PDF, draw graphs, etc. And it s well supported in the networking community! 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 24

25 Which tools do I use? Catalyst Cisco and/or its affiliates. All rights reserved. Cisco Public 25

26 Which tools do I use? REST! NETCONF? CLI? SNMP? Catalyst Cisco and/or its affiliates. All rights reserved. Cisco Public 26

27 NETCONF, CLI, SNMP? CLI SNMP NETCONF Venerable/Ancient? Structured Data? Tooling? 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 27

28 Which tools do I use? REST! NETCONF! CLI? SNMP? Catalyst Cisco and/or its affiliates. All rights reserved. Cisco Public 28

29 How do I build it? Catalyst 3850 Read Spark messages Post Spark messages Post PNG image Poll Spark room Parse Spark command Format data from switch Graph data from switch Read the routing table 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 29

30 Setting up Python environment

31 Getting Python Mac Python is probably already installed. Unix/Linux 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 31

32 Getting Python 1 Download and install Python 2.7 or 3 2 PC/Windows Download and install PIP package manager 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 32

33 Python 2 vs 3 Python >>> print "Hello World! Hello World! Python 2 Python 3.6.0a4 >>> print "Hello World!" SyntaxError: Missing parentheses >>> print ("Hello World") Hello World Python 3 Most common version Default installation on Linux Most libraries Losing popularity Several language enhancements Often separate installation Not all libraries supported Commonly used in books/courses Python 2 and 3 are not mutually compatible! 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 33

34 PIP Install $ pip install netaddr Downloading/unpacking netaddr Downloading netaddr py2.py3-none-any.whl (1.6MB): 1.6MB downloaded Installing collected packages: netaddr Successfully installed netaddr Cleaning up... PDFrw YDK-Py OpenPy XL Python NCClient 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 34

35 What libraries do we need? 1 Something to do REST (requests) 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 35

36 What libraries do we need? NETCONF Catalyst Something to do NETCONF (ncclient) 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 36

37 What libraries do we need? 3 Something to do graphing (graphviz) 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 37

38 Virtual Environments V-Env1 V-Env2 V-Env3 Python 2.5 Python 2.7 Python 2.7 Requests = NCClient = Jinja2 = Jinja2 = 2.7 NCClient = paramiko = Requests = NCClient = openpyxl = Cisco and/or its affiliates. All rights reserved. Cisco Public 38

39 Installing Virtual Environment $ pip install virtualenv Collecting virtualenv Downloading virtualenv py2.py3-none-any.whl (1.8MB) 100% 1.8MB 658kB/s Installing collected packages: virtualenv Successfully installed virtualenv Install Virtualenv with PIP like any Python library Cisco and/or its affiliates. All rights reserved. Cisco Public 39

40 Using VirtualEnvironments $ mkdir spark_app $ cd spark_app $ virtualenv env New python executable in /Users/jemclaug/Documents/Projects/CL LV 2017//env/bin/python Installing setuptools, pip, wheel...done. $ source env/bin/activate (env) $... (env) $ (env) $ deactivate $ Make a directory for your project Create a virtual environment Activate the virtual environment Do Pythonic stuff like PIP installs Deactivate 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 40

41 Git and version control Cisco and/or its affiliates. All rights reserved. Cisco Public 41

42 Create code Modify code Save code Save code again 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 42

43 Initial Commit BGP over NC Added oper data Fixed nc_get Initial Commit BGP over NC Added oper data Fixed nc_get Version control scenario 1: You make changes and need to track them Version control scenario 2: You work with collaborator(s) and need to track and merge changes to code Cisco and/or its affiliates. All rights reserved. Cisco Public 43

44 Git is a version control system. GitHub is an online source code repository. GitHub provides an easy way to share code and collaborate. It works together with Git Cisco and/or its affiliates. All rights reserved. Cisco Public 44

45 Installing git Install Git using the standard installers on Mac/Windows Use the usual methods on Linux (apt-get, yum, rpm, etc.) Highly Recommended: Install GitHub Desktop! 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 45

46 Tracking your project with Git 1 Create.gitignore file $ cat.gitignore.gitignore *.py[co] env/ (Sometimes) Tells git, don't track these files! 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 46

47 Tracking your project with Git 2 Initialize the repo JEMCLAUG-M-34E1:spark_app jemclaug$ git init Initialized empty Git repository in /Users/jemclaug/Documents/Projects/CL LV 2017//spark_app/.git/ 3 Add file(s) to be tracked $ echo "My First File" > file.txt $ git add file.txt 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 47

48 Tracking your project with Git 4 Commit your changes $ git commit Aborting commit due to empty commit message. $ git commit -m "Added my first file" [master (root-commit) cba52b5] Added my first file 1 file changed, 1 insertion(+) create mode file.txt 5 View changes in GH Desktop! 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 48

49 Cloning repo's from GitHub $ git clone Cloning into 'pyfabric'... remote: Counting objects: 89, done. remote: Total 89 (delta 0), reused 0 (delta 0), pack-reused 89 Unpacking objects: 100% (89/89), done. $ cd pyfabric/ $ virtualenv env New python executable in /Users/jemclaug/pyfabric/env/bin/python Installing setuptools, pip, wheel...done. $ source env/bin/activate (env) $ pip install -r requirements.txt Collecting cffi==1.9.1 (from -r requirements.txt (line 1)) Using cached cffi cp27-cp27m-macosx_10_10_intel.whl Collecting cryptography==1.7.1 (from -r requirements.txt (line 2)) Using cached cryptography cp27-cp27m-macosx_10_10_intel.whl 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 49

50 Planning Tools Models APIs Development 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 50

51 Data Models

52 Human-Oriented Interface Machine-Oriented Interface 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 52

53 Machines using human-oriented interfaces can be highly inefficient! 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 53

54 CLI YANG Models Human Oriented Interface Machine Oriented Interface 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 54

55 Structured vs Unstructured Data Un-structured Structured John Smith What is this? His age? The year he graduated college? Meaning of life, the universe & everything? Name: Age: Phone: Keys John Smith Values 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 55

56 Hierarchical Structured Data (XML-like) First User Second User { { <user1> <name>john Smith</name> <age>42</age> <phone> </phone> </user1> <user2> <name>sarah Kim</name> <age>27</age> <phone> </phone> </user2> 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 56

57 Ancient unstructured data COULDYOUREADITIFWEWROTELIKETHIS WITHNOPUNCTUATIONITISHARDTOFIGUR EOUTWHEREONEWORDORSENTENCEBE GINSORENDSANDITISNOTEASYTOSEPAR ATEOUTALLTHEELEMENTSOFTHETEXTTH ANKGOODNESSSOMEONECAMEUPWITHA BETTERWAY 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 57

58 Note inconsistent key format! switch1# sh int e1/10 Ethernet1/10 is up Hardware: 1000/10000 Ethernet, address: d (bia d0.9331) Description: To UCS-11 MTU 1500 bytes, BW Kbit, DLY 10 usec, reliability 255/255, txload 1/255, rxload 1/255 Switchport monitor is off EtherType is 0x8100 Last link flapped 8week(s) 2day(s) Last clearing of "show interface" counters 1d02h 30 seconds input rate 944 bits/sec, 118 bytes/sec, 0 packets/sec 30 seconds output rate bits/sec, bytes/sec, 5221 packets/sec CLI = Unstructured Data 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 58

59 What we need: Standard, structured way to represent configuration and operational data. <ipv4 xmlns=" <addresses> <address> <ip> </ip> <config> <ip> </ip> <prefix-length>24</prefix-length> </config> </address> </addresses> </ipv4> 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 59

60 The train to Paris leaves at 11:30. Le train à Paris part à 11: Cisco and/or its affiliates. All rights reserved. Cisco Public 60

61 XML vs JSON <interfaces xmlns:= [ ]yang:ietf-interfaces > <interface> <name>eth0</name> <type>ethernetcsmacd</type> <location>0</location> <enabled>true</enabled> <if-index>2</if-index> </interface> </interfaces> NETCONF/RESTCONF { } "ietf-interfaces:interfaces": { "interface": [ { "name": "eth0, "type": "ethernetcsmacd, "location": "0, "enabled": true, "if-index": 2 } ] } RESTCONF 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 61

62 Error! Sends <interface>gigabit 1/0</interface> <ifaddr> /24</ifaddr> Expecting Expecting: <interface> <name>gigabit 1/0</name> <address> /24</address> </interface> 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 62

63 So why do we need YANG? <interface>ethernet 0/0</interface> <name>switch1 to UCS1</name> <ipaddr> /24</ipaddr> <name>ethernet 0/0</name> <descr>switch1 to UCS1</descr> <ip> /24</ip> Question: Which of these is correct? Answer: They all are! <ifname>ethernet 0/0</ifname> <ifalias>switch1 to UCS1</ifalias> <ifaddr> /24</ifaddr> 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 63

64 YANG Data Models container ip { list vrf { leaf rd } } vrf red rd 1:1 <vrf>red</vrf> <rd>1:1</rd> YANG Model Data XML Data YANG models do not contain data or XML. YANG models are like templates used to generate consistent XML Cisco and/or its affiliates. All rights reserved. Cisco Public 64

65 YANG Data Models <vrf>red</vrf> <rd>1:1</rd> container ip { list vrf { leaf rd } } vrf red rd 1:1 XML YANG Model Data { vrf : red rd : 1:1 } JSON YANG models can be used as a template for generating structured data in many different formats Cisco and/or its affiliates. All rights reserved. Cisco Public 65

66 YANG Configuration Model Example* container ip { YANG list vrf { description "Configure an IP VPN Routing/Forwarding instance"; } } leaf name { type string; } leaf rd { description "Specify Route Distinguisher"; type rd-type; } <ip> <vrf> <name>vrf_red</name> <rd>65000:1</rd> </vrf> <vrf> <name>vrf_green</name> <rd>65000:2</rd> </vrf> </ip> ip vrf vrf_red rd 65001:1! ip vrf vrf_green rd 65001:2! XML CLI * Note: YANG model simplified for clarity 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 66

67 So why is this: <ip> <vrf> <name>vrf_red</name> <rd>65000:1</rd> </vrf> <vrf> <name>vrf_green</name> <rd>65000:2</rd> </vrf> </ip>...better than this? ip vrf vrf_red rd 65001:1! ip vrf vrf_green rd 65001:2! 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 67

68 CLI ip vrf vrf_red rd 65001:1! ip vrf vrf_green rd 65001:2! Good for human consumption Unstructured from a machine perspective 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 68

69 YANG-structured data <ip> <vrf> <name>vrf_red</name> <rd>65000:1</rd> </vrf> <vrf> <name>vrf_green</name> <rd>65000:2</rd> </vrf> </ip> Designed for machine consumption Directly convertible to/from Python dicts! 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 69

70 Where are YANG models? Models installed on device automatically with IOS-XE. On some devices/versions, can be updated independently Also can be downloaded from GitHub Cisco and/or its affiliates. All rights reserved. Cisco Public 70

71 Who defines the YANG models? Vendors Standards Bodies Only work on specific vendor devices Greater feature coverage Can be OS-unique (IOS-XE, XR, etc.) Multi-vendor support More limited feature coverage Allow vendor-specific extensions 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 71

72 Important Point! Cisco s data models and IETF/OpenConfig data models are just two ways of doing the same thing. <interfaces xmlns="urn:ietf:params:xml:ns:yang:ietf-interfaces"> <interface> <name>gigabitethernet 1/0/24</name> <description>configured by NETCONF!</description> </interface> </interfaces> IETF-defined model Both of these do exactly the same thing! <native xmlns=" <interface> <GigabitEthernet> <name>1/0/24</name> <description>configured by NETCONF!</description> </GigabitEthernet> </interface> </native> Cisco-defined native model 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 72

73 Important Point! Cisco s data models and IETF/OpenConfig data models are just two ways of doing the same thing. <interfaces xmlns="urn:ietf:params:xml:ns:yang:ietf-interfaces"> <interface> <name>gigabitethernet 1/0/24</name> <description>configured by NETCONF!</description> </interface> </interfaces> switch# show run interface g1/0/24 interface Both of these GigabitEthernet do exactly the 1/0/24 same thing! description Configured by NETCONF! <native xmlns=" <interface> <GigabitEthernet> <name>1/0/24</name> <description>configured by NETCONF!</description> </GigabitEthernet> </interface> </native> IETF-defined model Cisco-defined native model 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 73

74 Configuration vs. Operational data Configuration data tells the device what to do. It is data that you see in a show run. Operational data tells us how a device is operating, from show commands other than show run. # sh run int g0/0 interface GigabitEthernet0/0 description Management Interface vrf forwarding Mgmt-vrf ip address # sh int g0/0 GigabitEthernet0/0 is up, line protocol up Hardware is RP management port Description: Management Interface We can write configuration data (think conf t ), and we can read configuration data (think show run ). Operational data is read-only. Some data can be read either as config data or operational data! 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 74

75 Models and structured data are particularly important for efficiently reading operational data Cisco and/or its affiliates. All rights reserved. Cisco Public 75

76 PID Runtime(ms) Invoked usecs 5Sec 1Min 5Min TTY Process % 0.00% 0.00% 0 Chunk Manager % 0.01% 0.00% 0 Load Meter Challenge: Write a Python script to go through the list of nearly 500 running processes and print the names of only those with runtime of 10 seconds or greater. Regex hard to understand Tied directly to table layout 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 76

77 Regular Expressions -Stackexchange user 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 77

78 PID Runtime(ms) Invoked usecs 5Sec 1Min 5Min TTY Process % 0.00% 0.00% 0 Chunk Manager % 0.01% 0.00% 0 Load Meter Challenge: Write a Python script to go through the list of nearly 500 running processes and print the names of only those with runtime of 10 seconds or greater. XML easily rendered as Python dict Uses YANG data models Intuitive nomenclature 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 78

79 NETCONF vs. YANG Communication Protocol NETCONF Data Description YANG SNMP MIB/ASN Cisco and/or its affiliates. All rights reserved. Cisco Public 79

80 NETCONF protocol stack CONTENT XML (based on YANG) OPERATIONS GET, EDIT-CONFIG, ETC MESSAGES RPC SECURE TRANSPORT SSH 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 80

81 Enabling NETCONF: 3 Steps C3850-1#conf t Enter configuration commands, one per line. End with CNTL/Z. C3850-1(config)#aaa new-model C3850-1(config)#aaa authentication login default local C3850-1(config)#aaa authorization exec default local C3850-1(config)#username admin password cisco C3850-1(config)#line vty 0 15 C3850-1(config-line)#transport input all C3850-1(config)#netconf-yang C3850-1(config)# Enable AAA Enable SSH Enable NETCONF 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 81

82 Finding and using YANG models

83 What are we looking for? Extract route and next hop interface or IP from routing table NO regular expressions!!! Open model if possible 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 83

84 YangExplorer: A Cisco tool for exploring models Available at: -explorer Or just Google: "cisco yangexplorer" 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 84

85 YangExplorer: A Cisco tool for exploring models Models on device Models subscribed on YangExplorer 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 85

86 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 86

87 Finding a model, method 1 Either scroll through the model list or search for a specific model. Click RPC. The XML is displayed Cisco and/or its affiliates. All rights reserved. Cisco Public 87

88 Finding a model, method 2 Pull the config from an existing device. Select get-config for the hierarchy you need. Click Run RPC. The XML is displayed Cisco and/or its affiliates. All rights reserved. Cisco Public 88

89 Planning Tools Models APIs Development 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 89

90 Python NETCONF Libraries

91 NCClient Python Library Raw XML NETCONF NCClient 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 91

92 NCClient "Get" Example 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 92

93 YANG Developer Kit (YDK) 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 93

94 NCClient: YDK: <interface> <GigabitEthernet> <name>1/0/14</name> <description>to_core_switch</description> <ip> <address> <primary> <address> </address> <mask> </mask> </primary> </address> </ip> </GigabitEthernet> </interface> gigabitethernet= interface.gigabitethernet() gigabitethernet.name = "1/0/14" gigabitethernet.description = "To_Core_Switch" gigabitethernet.ip.address.primary.address = " " gigabitethernet.ip.address.primary.mask = " " ip_add.gigabitethernet.append(gigabitethernet) 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 94

95 REST APIs

96 Consider some of the things you can do with an app like Spark Cisco and/or its affiliates. All rights reserved. Cisco Public 96

97 Add a user to a room 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 97

98 Read a message 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 98

99 API s allow you to do same things with a script instead of by clicking.. Create a space Add a user to a space Read a message 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 99

100 REST API calls use HTTP methods like GET, PUT and POST Cisco and/or its affiliates. All rights reserved. Cisco Public 100

101 ...and like a web page, REST APIs use URLs Cisco and/or its affiliates. All rights reserved. Cisco Public 101

102 REST API URLs determine what resource is being accessed. POST POST POST Cisco and/or its affiliates. All rights reserved. Cisco Public 102

103 The headers of the request contain basic information such as an authentication token, while the body of the request contains the data to send Cisco and/or its affiliates. All rights reserved. Cisco Public 103

104 How do I find REST APIs? REST APIs are useless unless they are documented Cisco and/or its affiliates. All rights reserved. Cisco Public 104

105 Headers for call Content needed API Test Button! 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 105

106 Often you don t need to know REST to use REST! Libraries make the calls easy Cisco and/or its affiliates. All rights reserved. Cisco Public 106

107 Our script will use a library I created, spark.py... Example: Post a message: Easier than Cisco and/or its affiliates. All rights reserved. Cisco Public 107

108 Pulling it all together

109 Planning Tools Models APIs Development 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 109

110 Script Flow 1 What Pull messages from Spark How Spark library Example 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 110

111 Script Flow 2 What Parse message How Python conditions Example* * simple, but can be improved using NLP 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 111

112 Script Flow 3 What Collect routes How NETCONF w/ NCClient Example 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 112

113 Script Flow 4 (Optional) What Graph Routes How Graphviz Library Example 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 113

114 Script Flow 5 What Post response to Spark How Spark library Example (With graph) 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 114

115 On-Box Scripting

116 Off-box Python Scripting NETCONF* Off-box scripts run on an external server and communicate with the switch over the network using NETCONF or other protocols. * or other protocol 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 116

117 On-box Python Scripting CLI NETCONF Syslog On-box Python scripts run in a container on the device itself. They can communicate with the network or the device itself. Guestshell Container 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 117

118 Advantages On-Box Access CLI directly on device Trigger syslog messages Interact with Embedded Event Manager Access device bootflash Zero Touch Provisioning Use interactive Python shell 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 118

119 Embedded Event Manager EEM takes certain actions based on triggering events. Events: cli temperature IPSLA Etc Trigger Actions: cli python reload syslog Etc 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 119

120 3 Spark posts diff to room 4 Python script diffs configs and sends diff to Spark Catalyst User changes device config EEM 2 Change detected by EEM 3 EEM Triggers on-box Python script 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 120

121 Wrapping Up

122 How do I learn Python? Automate the Boring Stuff with Python, Al Sweigart Great introduction to Python focused on automation. (Not specifically network automation.) Covers Python 3.0 only. Assumes zero knowledge. Read Excel docs, generate PDFs, etc. Highly recommended. Real Python. Three-part course. Begins with basics assuming no knowledge. Covers Python 2.7 and 3.0. Parts II and III focus on web development with Python. Covers flask, Django, jinja2 templates. Many resources on the web site for free Cisco and/or its affiliates. All rights reserved. Cisco Public 122

123 Cisco DevNet Learning Labs Sandboxes API Documentation Python, YDK, REST And More! Cisco and/or its affiliates. All rights reserved. Cisco Public 123

124 "If a thing is worth doing, it is worth doing badly." - G.K. Chesterton 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 124

125 Work in the USB lab Identify one problem you can solve with a script Start small Copy and mod scripts from DevNet (developer.cisco.com) 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 125

126 Cisco Spark How Questions? Use Cisco Spark to communicate with the speaker after the session 1. Find this session in the Cisco Live Mobile App 2. Click Join the Discussion 3. Install Spark or go directly to the space 4. Enter messages/questions in the space cs.co/ciscolivebot# 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public

127 Please complete your Online Session Evaluations after each session Complete 4 Session Evaluations & the Overall Conference Evaluation (available from Thursday) to receive your Cisco Live T-shirt All surveys can be completed via the Cisco Live Mobile App or the Communication Stations Complete Your Online Session Evaluation Don t forget: Cisco Live sessions will be available for viewing on-demand after the event at Cisco and/or its affiliates. All rights reserved. Cisco Public

128 Continue Your Education Demos in the Cisco campus Walk-in Self-Paced Labs Tech Circle Meet the Engineer 1:1 meetings Related sessions 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 128

129 Thank you

130

IOS XE Architecture and Programmability

IOS XE Architecture and Programmability IOS XE Architecture and Programmability Jeff McLaughlin, Principal TME Cisco Spark How Questions? Use Cisco Spark to communicate with the speaker after the session 1. Find this session in the Cisco Live

More information

Introduction to Catalyst Programmability

Introduction to Catalyst Programmability BRKCRS-1450 Introduction to Catalyst Programmability Fabrizio Maccioni, Technical Marketing Engineer Cisco Spark How Questions? Use Cisco Spark to communicate with the speaker after the session 1. Find

More information

Introduction to OpenConfig

Introduction to OpenConfig DEVNET-1775 Introduction to OpenConfig Santiago Álvarez, TME Cisco Spark How Questions? Use Cisco Spark to communicate with the speaker after the session 1. Find this session in the Cisco Live Mobile App

More information

Using the YANG Development Kit (YDK) with Cisco IOS XE

Using the YANG Development Kit (YDK) with Cisco IOS XE Using the YANG Development Kit (YDK) with Cisco IOS XE 1. Overview The YANG Development Kit (YDK) is a software development kit that provides APIs that are generated from YANG data models. These APIs,

More information

Coding Getting Started with Python

Coding Getting Started with Python DEVNET-3602 Coding 1002 - Getting Started with Python Matthew DeNapoli, DevNet Developer Evangelist Cisco Spark How Questions? Use Cisco Spark to communicate with the speaker after the session 1. Find

More information

NXOS in the Real World Using NX-API REST

NXOS in the Real World Using NX-API REST NXOS in the Real World Using NX-API REST Adrian Iliesiu Corporate Development Engineer Cisco Spark How Questions? Use Cisco Spark to communicate with the speaker after the session 1. Find this session

More information

Empower your testing with Cisco Test Automation Solution Featuring pyats & Genie

Empower your testing with Cisco Test Automation Solution Featuring pyats & Genie Empower your testing with Cisco Test Automation Solution Featuring pyats & Genie Siming Yuan, Technical Leader, Engineering, Cisco Jean-Benoit Aubin, Engineer, Software Engineering, Cisco Sedy Yadollahi,

More information

Cisco IOS XR Programmability for Cloud-Scale Networking

Cisco IOS XR Programmability for Cloud-Scale Networking Cisco IOS XR Programmability for Cloud-Scale Networking LABRST-2332 Santiago Álvarez, Distinguished Technical Marketing Engineer @111pontes Level of Expertise With Network Programmability 1. Can t spell

More information

Coding Intro to APIs and REST

Coding Intro to APIs and REST DEVNET-3607 Coding 1001 - Intro to APIs and REST Matthew DeNapoli DevNet Developer Evangelist Cisco Spark How Questions? Use Cisco Spark to communicate with the speaker after the session 1. Find this session

More information

DEVNET Introduction to Git. Ashley Roach Principal Engineer Evangelist

DEVNET Introduction to Git. Ashley Roach Principal Engineer Evangelist DEVNET-1080 Introduction to Git Ashley Roach Principal Engineer Evangelist Twitter: @aroach Email: asroach@cisco.com Cisco Spark How Questions? Use Cisco Spark to communicate with the speaker after the

More information

NETCONF Protocol. Restrictions for the NETCONF Protocol. Information About the NETCONF Protocol

NETCONF Protocol. Restrictions for the NETCONF Protocol. Information About the NETCONF Protocol Restrictions for the, on page 1 Information About the, on page 1 How to Configure the, on page 4 Verifying the Configuration, on page 7 Additional References for, on page 9 Feature Information for, on

More information

Optimizing the Usability of YANG Models for Network Automation

Optimizing the Usability of YANG Models for Network Automation ydk.io Optimizing the Usability of YANG Models for Network Automation Craig Hill Distinguished Systems Engineer U.S. Public Sector CTO Office @netwrkr95 CCIE #1628 crhill@cisco.com CHI-NOG Chicago, IL

More information

Get Hands On With DNA Center APIs for Managing Intent

Get Hands On With DNA Center APIs for Managing Intent DEVNET-3620 Get Hands On With DNA Center APIs for Managing Intent Adam Radford Distinguished Systems Engineer Cisco Spark How Questions? Use Cisco Spark to communicate with the speaker after the session

More information

Catalyst 9K High Availability Lab

Catalyst 9K High Availability Lab LTRCRS-2090 Catalyst 9K High Availability Lab Minhaj Uddin Technical Marketing Engineering Sai Zeya Technical Marketing Engineering Cisco Spark How Questions? Use Cisco Spark to communicate with the speaker

More information

Hands On Exploration of NETCONF and YANG

Hands On Exploration of NETCONF and YANG Hands On Exploration of NETCONF and YANG Bryan Byrne, CCIE 25607 (R/S) Technical Solutions Architect Enterprise Networks @bryan25607 Agenda Introduction Module 1 YANG Data Modeling Module 2 Introduction

More information

Cisco Network Programmability for the Enterprise NPEN v1.0

Cisco Network Programmability for the Enterprise NPEN v1.0 Course Overview This course teaches how to automate common Cisco enterprise platforms such as IOS-XE and IOS-XR routers as well as ASA firewalls. This course also includes coverage of the automation capabilities

More information

PnP Deep Dive Hands-on with APIC-EM and Prime Infrastructure

PnP Deep Dive Hands-on with APIC-EM and Prime Infrastructure LTRNMS-2007 PnP Deep Dive Hands-on with APIC-EM and Prime Infrastructure Thomas Gerneth, Julian Mueller,Tobias Huelsdau Cisco Spark How Questions? Use Cisco Spark to communicate with the speaker after

More information

Insights into your WLC with Wireless Streaming Telemetry

Insights into your WLC with Wireless Streaming Telemetry Insights into your WLC with Wireless Streaming Telemetry Jeremy Cohoe Technical Marketing Engineer Cisco Spark How Questions? Use Cisco Spark to communicate with the speaker after the session 1. Find this

More information

Your API Toolbelt Tools and techniques for testing, monitoring, and troubleshooting REST API requests

Your API Toolbelt Tools and techniques for testing, monitoring, and troubleshooting REST API requests DEVNET-1631 Your API Toolbelt Tools and techniques for testing, monitoring, and troubleshooting REST API requests Adam Kalsey, Spark Developer Relations Cisco Spark How Questions? Use Cisco Spark to communicate

More information

Automation and Programmability using Cisco Open NXOS and DevOps Tools

Automation and Programmability using Cisco Open NXOS and DevOps Tools Automation and Programmability using Cisco Open NXOS and DevOps Tools Jeff Lester Sr. Solutions Integration Architect Matt Tarkington Consulting Engineer Services Cisco Spark How Questions? Use Cisco Spark

More information

Using the Management Ethernet Interface

Using the Management Ethernet Interface This chapter covers the following topics: Gigabit Ethernet Management Interface Overview, page 1 Gigabit Ethernet Port Numbering, page 1 IP Address Handling in ROMmon and the Management Ethernet Port,

More information

NetDevOps for the Network Dude How to get started with API's, Ansible and Python

NetDevOps for the Network Dude How to get started with API's, Ansible and Python DEVNET-1002 NetDevOps for the Network Dude How to get started with API's, Ansible and Python François Caen, Systems Engineer - @f_caen Cisco Spark How Questions? Use Cisco Spark to communicate with the

More information

Using the Management Ethernet Interface

Using the Management Ethernet Interface The Cisco ASR 920 Series Router has one Gigabit Ethernet Management Ethernet interface on each Route Switch Processor. The purpose of this interface is to allow users to perform management tasks on the

More information

CCNA Semester 2 labs. Labs for chapters 2 10

CCNA Semester 2 labs. Labs for chapters 2 10 CCNA Semester 2 labs Labs for chapters 2 10 2.2.2.5 Lab - Configuring IPv4 Static and Default Routes 2.3.2.4 Lab - Troubleshooting Static Routes 3.2.1.9 Lab - Configuring Basic RIPv2 5.2.2.9 Lab - Configuring

More information

Consuming Model-Driven Telemetry

Consuming Model-Driven Telemetry Consuming Model-Driven Telemetry Cristina Precup & Stefan Braicu Software Systems Engineers Cisco Spark How Questions? Use Cisco Spark to communicate with the speaker after the session 1. Find this session

More information

Basic Router Configuration

Basic Router Configuration This section includes information about some basic router configuration, and contains the following sections: Default Configuration, on page 1 Configuring Global Parameters, on page 2 Configuring Gigabit

More information

NSO in Brownfield: Fully Automated One-Click Reconciliation

NSO in Brownfield: Fully Automated One-Click Reconciliation BRKNMS-2530 NSO in Brownfield: Fully Automated One-Click Reconciliation Fatih Ayvaz, Solutions Architect Cisco Spark How Questions? Use Cisco Spark to communicate with the speaker after the session 1.

More information

Lab - Troubleshooting Connectivity Issues

Lab - Troubleshooting Connectivity Issues Lab - Troubleshooting Connectivity Issues Topology Addressing Table R1 ISP Objectives Device Interface IP Address Subnet Mask Default Gateway G0/1 192.168.1.1 255.255.255.0 N/A S0/0/0 10.1.1.1 255.255.255.252

More information

NetDevOps Style Configuration Management for the Network

NetDevOps Style Configuration Management for the Network DEVNET-3616 NetDevOps Style Configuration Management for the Network Hank Preston, NetDevOps Evangelist ccie 38336, R/S @hfpreston Cisco Spark How Questions? Use Cisco Spark to communicate with the speaker

More information

Application Hosting in IOS-XE

Application Hosting in IOS-XE DEVNET-1695 Application Hosting in IOS-XE Bryan Byrne, CCIE 25607 (R/S) Technical Solutions Architect Enterprise Networks @bryan25607 Cisco Spark How Questions? Use Cisco Spark to communicate with the

More information

Technologies for the future of Network Insight and Automation

Technologies for the future of Network Insight and Automation Technologies for the future of Network Insight and Automation Richard Wade (ricwade@cisco.com) Technical Leader, Asia-Pacific Infrastructure Programmability This Session s Context Service Creation Service

More information

Automation with Meraki Provisioning API

Automation with Meraki Provisioning API DEVNET-2120 Automation with Meraki Provisioning API Courtney M. Batiste, Solutions Architect- Cisco Meraki Cisco Spark How Questions? Use Cisco Spark to communicate with the speaker after the session 1.

More information

Getting Started With Containers

Getting Started With Containers DEVNET 2042 Getting Started With Containers Matt Johnson Developer Evangelist @mattdashj Cisco Spark How Questions? Use Cisco Spark to communicate with the speaker after the session 1. Find this session

More information

Maximizing Network Programmability and Automation with Open NX-OS

Maximizing Network Programmability and Automation with Open NX-OS BRKDCN-2025 Maximizing Network Programmability and Automation with Open NX-OS Nicolas Delecroix, Technical Marketing Engineer, INSBU Cisco Spark How Questions? Use Cisco Spark to communicate with the speaker

More information

DevNet Workshop-Hands-on with CloudCenter and Jenkins

DevNet Workshop-Hands-on with CloudCenter and Jenkins DevNet Workshop-Hands-on with CloudCenter and Jenkins Tuan Nguyen, Technical Marketing Engineer, CPSG Cisco Spark How Questions? Use Cisco Spark to communicate with the speaker after the session 1. Find

More information

Components to Use Data Models

Components to Use Data Models The process of automating configurations in a network involves the use of these core components: Client application: manages and monitors the configuration of the devices in the network. Router: acts as

More information

Lab Configuring Basic Switch Settings (Solution)

Lab Configuring Basic Switch Settings (Solution) (Solution) Topology Addressing Table Objectives Device Interface IP Address Subnet Mask Default Gateway S1 VLAN 99 192.168.1.2 255.255.255.0 192.168.1.1 PC-A NIC 192.168.1.10 255.255.255.0 192.168.1.1

More information

Configuring Management Interfaces on Cisco IOS XR Software

Configuring Management Interfaces on Cisco IOS XR Software Configuring Management Interfaces on Cisco IOS XR Software This module describes configuration procedures for management interfaces on the route processors (RPs). Although the management interfaces on

More information

Cisco UCS Agentless Configuration Management Ansible or Microsoft DSC

Cisco UCS Agentless Configuration Management Ansible or Microsoft DSC DEVNET-2916 Cisco UCS Agentless Configuration Management Ansible or Microsoft DSC John McDonough, Technical Leader Developer Evangelist Cisco Spark How Questions? Use Cisco Spark to communicate with the

More information

Using the Management Interfaces

Using the Management Interfaces The following management interfaces are provided for external users and applications: Gigabit Ethernet Management Interface, page 1 SNMP, page 7 Gigabit Ethernet Management Interface Gigabit Ethernet Management

More information

Lab Configuring Switch Security Features Topology

Lab Configuring Switch Security Features Topology Topology Addressing Table Objectives Device Interface IP Address Subnet Mask Default Gateway R1 G0/1 172.16.99.1 255.255.255.0 N/A S1 VLAN 99 172.16.99.11 255.255.255.0 172.16.99.1 PC-A NIC 172.16.99.3

More information

Components to Use Data Models

Components to Use Data Models The process of automating configurations in a network involves the use of these core components: Client application: manages and monitors the configuration of the devices in the network. Router: acts as

More information

VXLAN EVPN Fabric and automation using Ansible

VXLAN EVPN Fabric and automation using Ansible VXLAN EVPN Fabric and automation using Ansible Faisal Chaudhry, Principal Architect Umair Arshad, Sr Network Consulting Engineer Lei Tian, Solution Architecture Cisco Spark How Questions? Use Cisco Spark

More information

Finesse APIs: Getting started with the REST APIs and XMPP events

Finesse APIs: Getting started with the REST APIs and XMPP events Finesse APIs: Getting started with the REST APIs and XMPP events Denise Kwan, Software Engineer @ DevNet Cisco Spark How Questions? Use Cisco Spark to communicate with the speaker after the session 1.

More information

Programmability and Automation on Cisco Nexus Platforms

Programmability and Automation on Cisco Nexus Platforms Programmability and Automation on Cisco Nexus Platforms Krishna Chaitanya, Solutions Architect Cisco Spark How Questions? Use Cisco Spark to communicate with the speaker after the session 1. Find this

More information

CS IT ports switch basic configuration. Lecture (01) Introduction to 24 ports managed switches By: Dr. Ahmed ElShafee.

CS IT ports switch basic configuration. Lecture (01) Introduction to 24 ports managed switches By: Dr. Ahmed ElShafee. Lecture (01) Introduction to 24 ports managed switches By: Dr. Ahmed ElShafee CS IT Agenda 24 ports switch basic configuration Switch remote configuration peer2peer star network clients/server star network

More information

1 of :22

1 of :22 Feedback: Help us help you Please rate this document. Excellent Good Average Fair Poor This document solved my problem. Yes No Just Browsing Suggestions to improve this document. (512 character limit)

More information

Managing Cisco UCS with the Python SDK

Managing Cisco UCS with the Python SDK DEVNET-2060 Managing Cisco UCS with the Python SDK John McDonough, Technical Leader Developer Evangelist Cisco Spark How Questions? Use Cisco Spark to communicate with the speaker after the session 1.

More information

CloudCenter for Developers

CloudCenter for Developers DEVNET-1198 CloudCenter for Developers Conor Murphy, Systems Engineer Data Centre Cisco Spark How Questions? Use Cisco Spark to communicate with the speaker after the session 1. Find this session in the

More information

BGP in the Enterprise for Fun and (fake) Profit: A Hands-On Lab

BGP in the Enterprise for Fun and (fake) Profit: A Hands-On Lab BGP in the Enterprise for Fun and (fake) Profit: A Hands-On Lab Michael Kowal, Principal Systems Engineer, @ciscomk Dash Thompson, Systems Engineer, @dash_thompson Abel Ramirez, Systems Engineer, @ramirezabel21

More information

Designing and Implementing Cisco Network Programmability (NPDESI) v1.0

Designing and Implementing Cisco Network Programmability (NPDESI) v1.0 Data Sheet Learning Services Designing and Implementing Cisco Network Programmability (NPDESI) v1.0 Overview The Designing and Implementing Cisco Network Programmability (NPDESI) version 1.0 Cisco Training

More information

Using Setup Mode to Configure a Cisco Networking Device

Using Setup Mode to Configure a Cisco Networking Device Using Setup Mode to Configure a Cisco Networking Device First Published: August 9, 2005 Last Updated: December 3, 2010 Setup mode provides an interactive menu to help you to create an initial configuration

More information

Configuring IEEE 802.3ad Link Bundling and Load Balancing

Configuring IEEE 802.3ad Link Bundling and Load Balancing Configuring IEEE 802.3ad Link Bundling and Load Balancing This document describes how the IEEE 802.3ad link bundling and load balancing leverages the EtherChannel infrastructure within Cisco software to

More information

Using the Cisco NX-OS Setup Utility

Using the Cisco NX-OS Setup Utility This chapter contains the following sections: Configuring the Switch, page 1 Configuring the Switch Image Files on the Switch The Cisco Nexus devices have the following images: BIOS and loader images combined

More information

WORKSHOP: from Zero to a Network Application with #golang

WORKSHOP: from Zero to a Network Application with #golang WORKSHOP: from Zero to a Network Application with #golang Patrick Riel, priel@cisco.com Stève Sfartz, stsfartz@cisco.com Cisco Spark How Questions? Use Cisco Spark to communicate with the speaker after

More information

Implementing the Network Configuration Protocol

Implementing the Network Configuration Protocol Implementing the Network Configuration Protocol This module provides details of the Network Configuration Protocol. For relevant commands, see Cisco ASR 9000 Series Aggregation Services Router System Security

More information

Using the Cisco NX-OS Setup Utility

Using the Cisco NX-OS Setup Utility This chapter contains the following sections: Configuring the Switch, page 1 Configuring the Switch Image Files on the Switch The Cisco Nexus devices have the following images: BIOS and loader images combined

More information

Hands-On with IoT Standards & Protocols

Hands-On with IoT Standards & Protocols DEVNET-3623 Hands-On with IoT Standards & Protocols Casey Bleeker, Developer Evangelist @geekbleek Cisco Spark How Questions? Use Cisco Spark to communicate with the speaker after the session 1. Find this

More information

This guide presents the instructions and other information concerning the lab activities for this course.

This guide presents the instructions and other information concerning the lab activities for this course. DCICT Lab Guide 11/03/2013 Overview Outline This guide presents the instructions and other information concerning the lab activities for this course. This guide includes these activities: Activity 1-1:

More information

Git, Atom, virtualenv, oh my! Learn about dev tools to live by!

Git, Atom, virtualenv, oh my! Learn about dev tools to live by! BRKDEV-2633 Git, Atom, virtualenv, oh my! Learn about dev tools to live by! Ashley Roach, Principal Engineer Evangelist Agenda Introduction Why are developer tools useful? What s in the toolbelt? Tool

More information

Cisco WAN Automation Engine (WAE) Network Programmability with Segment Routing

Cisco WAN Automation Engine (WAE) Network Programmability with Segment Routing LTRMPL-2104 Cisco WAN Automation Engine (WAE) Network Programmability with Segment Routing Josh Peters Technical Marketing Engineer Derek Tay Technical Marketing Engineer Cisco Spark How Questions? Use

More information

2018 Cisco and/or its affiliates. All rights reserved. Cisco Public

2018 Cisco and/or its affiliates. All rights reserved. Cisco Public Cisco ACI App Center Fabrice Servais, Software Engineer, Data Center Networking, Cisco Cisco Spark How Questions? Use Cisco Spark to communicate with the speaker after the session 1. Find this session

More information

Lab Exploring Cisco IOS and Configuring Basic Switch Settings

Lab Exploring Cisco IOS and Configuring Basic Switch Settings Topology Addressing Table Objectives Device Interface IP Address Subnet Mask Default Gateway S1 VLAN 99 192.168.1.2 255.255.255.0 192.168.1.1 PC-A NIC 192.168.1.10 255.255.255.0 192.168.1.1 Part 1: Cable

More information

GRE Tunnel with VRF Configuration Example

GRE Tunnel with VRF Configuration Example GRE Tunnel with VRF Configuration Example Document ID: 46252 Contents Introduction Prerequisites Requirements Components Used Conventions Configure Network Diagram Configurations Verify Troubleshoot Caveats

More information

Cisco SD-Access Hands-on Lab

Cisco SD-Access Hands-on Lab LTRCRS-2810 Cisco SD-Access Hands-on Lab Larissa Overbey - Technical Marketing Engineer, Cisco Derek Huckaby - Technical Marketing Engineer, Cisco https://cisco.box.com/v/ltrcrs-2810-bcn2018 Password:

More information

APIs Assist Troubleshooting in Manufacturing

APIs Assist Troubleshooting in Manufacturing APIs Assist Troubleshooting in Manufacturing Gabriel Zapodeanu Technology Solutions Architect, Cisco Systems gzapodea@cisco.com, @zapodeanu, github.com/gzapodea Agenda Wireless Networks in Manufacturing

More information

Configuring Ethernet Management Port

Configuring Ethernet Management Port Prerequisites for Ethernet Management Ports, page 1 Information About the Ethernet Management Port, page 1 How to Configure the Ethernet Management Port, page 4 Example for Configuring IP Address on Ethernet

More information

Cisco Plug and Play Feature Guide Cisco Services. Cisco Plug and Play Feature Guide Cisco and/or its affiliates.

Cisco Plug and Play Feature Guide Cisco Services. Cisco Plug and Play Feature Guide Cisco and/or its affiliates. Cisco Services TABLE OF CONTENTS Configuring Cisco Plug and Play... 14 Contents Introduction... 3 Cisco Plug and Play Components... 3 Plug-n-Play Agent... 3 Key Benefits... 4 Plug and Play Server... 4

More information

Address Resolution Protocol

Address Resolution Protocol The (ARP) feature performs a required function in IP routing. ARP finds the hardware address, also known as Media Access Control (MAC) address, of a host from its known IP address. ARP maintains a cache

More information

Internet of Things Field Network Director

Internet of Things Field Network Director Internet of Things Field Network Director Prithvi Manduva, IoT Escalation Engineer Cisco Spark How Questions? Use Cisco Spark to communicate with the speaker after the session 1. Find this session in the

More information

RESTCONF Programmable Interface

RESTCONF Programmable Interface This chapter describes how to set-up and configure an HTTP-based protocol-representational State Transfer Configuration Protocol (RESTCONF). RESTCONF provides a programmatic interface based on standard

More information

Laboration 2 Troubleshooting Switching and First-Hop Redundancy

Laboration 2 Troubleshooting Switching and First-Hop Redundancy Laboration 2 Troubleshooting Switching and First-Hop Redundancy Topology All contents are Copyright 1992 2011 Cisco Systems, Inc. All rights reserved. This document is Cisco Public Information. Page 1

More information

Configuring EtherChannel and 802.1Q Trunking Between Catalyst L2 Fixed Configuration Switches and a Router (InterVLAN Routing)

Configuring EtherChannel and 802.1Q Trunking Between Catalyst L2 Fixed Configuration Switches and a Router (InterVLAN Routing) Cisco - Configuring EtherChannel and 802.1Q Trunking Between Catalyst L2 Fixed Conf... Page 1 of 13 Configuring EtherChannel and 802.1Q Trunking Between Catalyst L2 Fixed Configuration Switches and a Router

More information

Using Setup Mode to Configure a Cisco Networking Device

Using Setup Mode to Configure a Cisco Networking Device Using Setup Mode to Configure a Cisco Networking Device Setup mode provides an interactive menu to help you to create an initial configuration file for a new networking device, or a device that you have

More information

Serviceability of SD-WAN

Serviceability of SD-WAN BRKCRS-2112 Serviceability of SD-WAN Chandrabalaji Rajaram & Ali Shaikh Cisco Spark How Questions? Use Cisco Spark to communicate with the speaker after the session 1. Find this session in the Cisco Live

More information

Lab Viewing Network Device MAC Addresses

Lab Viewing Network Device MAC Addresses Topology Addressing Table Objectives Device Interface IP Address Subnet Mask Default Gateway S1 VLAN 1 192.168.1.1 255.255.255.0 N/A PC-A NIC 192.168.1.3 255.255.255.0 192.168.1.1 Part 1: Configure Devices

More information

Cisco Spark Messaging APIs - Integration Platforms as a Service Real World Use-Cases

Cisco Spark Messaging APIs - Integration Platforms as a Service Real World Use-Cases DEVNET-2023 Cisco Spark Messaging APIs - Integration Platforms as a Service Real World Use-Cases David Staudt DevNet Developer Evangelist / Principal Engineer Cisco Spark How Questions? Use Cisco Spark

More information

Guest Shell. Finding Feature Information. Information About Guest Shell. Guest Shell Overview

Guest Shell. Finding Feature Information. Information About Guest Shell. Guest Shell Overview Guestshell is a virtualized Linux-based environment, designed to run custom Linux applications, including Python for automated control and management of Cisco devices. It also includes the automated provisioning

More information

Software Development I

Software Development I 6.148 Software Development I Two things How to write code for web apps. How to collaborate and keep track of your work. A text editor A text editor A text editor Anything that you re used to using Even

More information

The objective of this lab is to become familiar with Cisco switches as well as the Spanning Tree Protocol.

The objective of this lab is to become familiar with Cisco switches as well as the Spanning Tree Protocol. CIS 83 LAB 4 - Spanning Tree Protocol Rich Simms October 3, 2006 Objective The objective of this lab is to become familiar with Cisco switches as well as the Spanning Tree Protocol. Scenario This lab was

More information

Configuring Gigabit Ethernet Interfaces

Configuring Gigabit Ethernet Interfaces This chapter explains how to configure the Gigabit Ethernet (GE) interface on the Cisco ASR 901 router. Configuring the Interface, page 1 Setting the Speed and Duplex Mode, page 2 Enabling the Interface,

More information

If this is your first time configuring the switch, you will notice that the Switch IOS is almost identical to Router IOS.

If this is your first time configuring the switch, you will notice that the Switch IOS is almost identical to Router IOS. Spanning Tree Lab Objective Create a basic switch configuration and verify it. Determine which switch is selected as the root switch with the factory default settings. Force the other switch to be selected

More information

UniNets MPLS LAB MANUAL MPLS. UNiNets Multiprotocol label Switching MPLS LAB MANUAL. UniNets MPLS LAB MANUAL

UniNets MPLS LAB MANUAL MPLS. UNiNets Multiprotocol label Switching MPLS LAB MANUAL. UniNets MPLS LAB MANUAL MPLS UNiNets Multiprotocol label Switching MPLS LAB MANUAL CCNP TOPOLOGY Lab: OSPF Routing VPN Topology: Task1: Perform the basic Configuration to provide the reachability as per diagram. SW1 Configuration

More information

IPv6 Tunnel through an IPv4 Network

IPv6 Tunnel through an IPv4 Network IPv6 Tunnel through an IPv4 Network Document ID: 25156 Contents Introduction Prerequisites Requirements Components Used Conventions Configure Network Diagram Configurations (Manual IPv6 Mode) Configurations

More information

Management IP Interface

Management IP Interface The management interface is used for the video control plane messages, such as session creation and deletion, between the Logical Edge Devices (LED) and the external Edge Resource Manager (ERM) server.

More information

TRex Realistic Traffic Generator

TRex Realistic Traffic Generator DEVNET-1120 TRex Realistic Traffic Generator Hanoch Haim, Principal Engineer Cisco Spark How Questions? Use Cisco Spark to communicate with the speaker after the session 1. Find this session in the Cisco

More information

APIs and API Design with Python

APIs and API Design with Python APIs and API Design with Python Lecture and Lab 5 Day Course Course Overview Application Programming Interfaces (APIs) have become increasingly important as they provide developers with connectivity to

More information

The NX-API CLI also supports JSON/CLI Execution in Cisco Nexus 3500 Series devices.

The NX-API CLI also supports JSON/CLI Execution in Cisco Nexus 3500 Series devices. About, page 1 Using, page 2 XML and JSON Supported Commands, page 9 About On Cisco Nexus devices, command-line interfaces (CLIs) are run only on the device. improves the accessibility of these CLIs by

More information

An Introduction to Monitoring Encrypted Network Traffic with "Joy"

An Introduction to Monitoring Encrypted Network Traffic with Joy An Introduction to Monitoring Encrypted Network Traffic with "Joy" Philip Perricone (SE) Bill Hudson (TL) Blake Anderson (TL) David McGrew (Fellow) Cisco Spark How Questions? Use Cisco Spark to communicate

More information

2 Initialize a git repository on your machine, add a README file, commit and push

2 Initialize a git repository on your machine, add a README file, commit and push BioHPC Git Training Demo Script First, ensure that git is installed on your machine, and you have configured an ssh key. See the main slides for instructions. To follow this demo script open a terminal

More information

Multi-domain Service Orchestration with Cisco Network Service Orchestrator. Gabor Szabo Version 1.2

Multi-domain Service Orchestration with Cisco Network Service Orchestrator. Gabor Szabo Version 1.2 Multi-domain Service Orchestration with Cisco Network Service Orchestrator Gabor Szabo gabszabo@cisco.com Version 1.2 Agenda Theory & Concepts Cisco NSO inroduction Demonstration: simple service Use-Cases

More information

Switch configuration. By the end of this session, you will be able to: Describe basic switch configuration methods. Configure a switch.

Switch configuration. By the end of this session, you will be able to: Describe basic switch configuration methods. Configure a switch. By the end of this session, you will be able to: Describe basic switch configuration methods. Configure a switch. 4 SESSION OVERVIEW... 2 MANAGEMENT OPTIONS... 3 WHY CONFIGURE SWITCHES?... 4 CONSOLE PORT...

More information

nacelle Documentation

nacelle Documentation nacelle Documentation Release 0.4.1 Patrick Carey August 16, 2014 Contents 1 Standing on the shoulders of giants 3 2 Contents 5 2.1 Getting Started.............................................. 5 2.2

More information

Guest Shell. Finding Feature Information. Information About Guest Shell. Guest Shell Overview

Guest Shell. Finding Feature Information. Information About Guest Shell. Guest Shell Overview Guestshell is a virtualized Linux-based environment, designed to run custom Linux applications, including Python for automated control and management of Cisco devices. It also includes the automated provisioning

More information

Configuring Interfaces

Configuring Interfaces CHAPTER 4 This chapter describes how to configure interfaces for the Catalyst 4500 series switches. It also provides guidelines, procedures, and configuration examples. This chapter includes the following

More information

CCNA Practice test. 2. Which protocol can cause high CPU usage? A. NTP B. WCCP C. Telnet D. SNMP Answer: D

CCNA Practice test. 2. Which protocol can cause high CPU usage? A. NTP B. WCCP C. Telnet D. SNMP Answer: D 1. Which network would support at least 30 hosts? A. 10.0.0.0 255.255.255.252 B. 10.0.0.0 255.255.255.240 C. 10.0.0.0 255.255.255.224 D. 10.0.0.0 255.255.255.248 2. Which protocol can cause high CPU usage?

More information

Cisco SD-Access Building the Routed Underlay

Cisco SD-Access Building the Routed Underlay Cisco SD-Access Building the Routed Underlay Rahul Kachalia Sr. Technical Leader Cisco Spark How Questions? Use Cisco Spark to communicate with the speaker after the session 1. Find this session in the

More information

Chapter 10 Configure Clientless Remote Access SSL VPNs Using ASDM

Chapter 10 Configure Clientless Remote Access SSL VPNs Using ASDM Chapter 10 Configure Clientless Remote Access SSL VPNs Using ASDM Topology Note: ISR G1 devices use FastEthernet interfaces instead of GigabitEthernet Interfaces. 2016 Cisco and/or its affiliates. All

More information

Model-Driven Telemetry. Shelly Cadora Principal Engineer, Technical Marketing

Model-Driven Telemetry. Shelly Cadora Principal Engineer, Technical Marketing Model-Driven Telemetry Shelly Cadora Principal Engineer, Technical Marketing We Need More Data Use Cases Network Health Troubleshooting / Remediation SLAs, Performance Tuning Capacity Planning Product

More information

Programming Device APIs

Programming Device APIs Programming Device APIs Fabrizio Maccioni Technical Marketing Engineer - Cisco BRKSDN-2119 Agenda Introduction Device APIs History WSMA NETCONF 1.0 Model Driven Programmability NETCONF 1.1 RESTCONF grpc

More information