Programmation Cisco
Programmation Cisco
Network Programming
in a
Cisco Open Network Environment
Start using onePK and EEM
T-SDN4/L3
Bruno Klauser
Consulting Engineer
BN EMEAR CTO Team
[email protected]
© 2011
2013 Cisco and/or its affiliates. All rights reserved. Cisco Connect 1
An Analogy
Highly motivated individuals
Full control over every single detail
© 2012 Cisco and/or its affiliates. All rights reserved. Cisco Connect 3
© 2011 Cisco and/or its affiliates. All rights reserved. Cisco Public 4
Describing Software Architectures
4+1 View Model
• Scenarios: Use Case, Who, What and Why
Examples: Routing-for-(Dollars), Application-Flow-Manipulation,
Network Slicing, SDDC Provisioning, CIN, …
See: https://en.wikipedia.org/wiki/4+1_Architectural_View_Model
© 2012 Cisco and/or its affiliates. All rights reserved. Cisco Connect 5
Cisco Open Network Environment – ONE
Preserve What is Working Open Network Environment
• Resilience, Scale, Security
• Functionality and Rich Features
• Instrumentation
Development View Process View Physical View
Logical View
Evolve for New Requirements
• Operational Simplicity and Automations (Software)
• Programmability and Network-Awareness Network Architectures and Deployment and
Programming Patterns Virtualization
• Upcoming Innovations
© 2012 Cisco and/or its affiliates. All rights reserved. Cisco Connect 6
Cisco Open Network Environment – ONE
Preserve What is Working Open Network Environment
• Resilience, Scale, Security
Network (Software) Deployment and
• Functionality and Rich Features Programming Architectures and Virtualization
• Instrumentation Patterns
Nexus 1000v
CSR 1000v
Evolve for New Requirements onePK Controllers VSG and vFW/ASA,
(ONE/Openflow PoC) vWAAS, vNAM, …
• Operational Simplicity and Automations (SBC, WLC, +++)
• Programmability and Network-Awareness developer.cisco.com, Cisco Openstack Ed
CDN, Training,
• Upcoming Innovations Certification, CIN, CloudConnect, Blade Hosting
Partners, EEM, EASy Sentinels, Agents (UCS-E, …), Virtual
Containers (AirVision,
Open and Integrated Framework Cat, ISR, ASR, …)
• Software Defined Network concepts are a
component of the Open Network Environment Open
Network Environment
Scenarios and Motivations
• Existing APIs, Agents, Controllers and
Infrastructure contribute
© 2012 Cisco and/or its affiliates. All rights reserved. Cisco Connect 7
Cisco Open Network Environment – ONE
Preserve What is Working Open Network Environment
• Resilience, Scale, Security
Network (Software) Deployment and
• Functionality and Rich Features Programming Architectures and Virtualization
• Instrumentation Patterns
Nexus 1000v
CSR 1000v
Evolve for New Requirements onePK Controllers VSG and vFW/ASA,
(ONE/Openflow PoC) vWAAS, vNAM, …
• Operational Simplicity and Automations (SBC, WLC, +++)
• Programmability and Network-Awareness developer.cisco.com, Cisco Openstack Ed
CDN, Training,
• Upcoming Innovations Certification, CIN, CloudConnect, Blade Hosting
Partners, EEM, EASy Sentinels, Agents (UCS-E, …), Virtual
Containers (AirVision,
Open and Integrated Framework Cat, ISR, ASR, …)
• Software Defined Network concepts are a
component of the Open Network Environment Open
Network Environment
Scenarios and Motivations
• Existing APIs, Agents, Controllers and
Infrastructure contribute
© 2012 Cisco and/or its affiliates. All rights reserved. Cisco Connect 8
Network Automation and Manageability
DC Headquarters
See: http://twitter.com/EASyDMI
Note: it is NOT recommended to use a public site or feed other than for demo purpose
Embedded Event Manager (EEM)
email SNMP set SNMP SNMP Reload or Application CLI IOS.sh TCL
Syslog
notification Counter get notification switch-over specific Applets Policies Policies
Actions
EEM Applets
multi-event-correlation
Embedded Event
Manager
Event Detectors
Interface XML CDP
Syslog SNMP Timer none HW Watchdog CLI OIR ERM EOT RF GOLD NetFlow IPSLA Route 802.1x MAC
Counter RPC LLDP
ED EDs EDs ED EDs ED ED ED ED ED ED ED ED ED ED ED ED
ED ED ED
Remote:
• Fan
• Notification • Cron Process Interface
Syslog • Temp
Local: • Count Scheduler Descriptor
Event • Env
• Notification down Database Blocks
• ...
• Get/Set
© 2012 Cisco and/or its affiliates. All rights reserved. Cisco Connect 15
Embedded Event Manager – Applet Evolutions
EEM Version Release Applet Modifications Peanut Gallery Comments
No structure changes
Various New event detectors
2.0 12.3(14)T1 Many new actions
New actions: cli, info, mail, policy, SNMP trap, Modify counters, Publish
2.1 12.2(18)SXF5 Popular CLI / mail
application events,
2.2 12.4M Actions run linear
Read/set tracked objects
Maxrun support ==
maxrun support
2.3 12.4(11)T security
pattern parameter for CLI actions
Can handle CLI prompts
Boolean correlation
2.4 12.4(20)T multi-event support of events within
applet.
Redesign of action mechanism
Program counter added Applets now rock!
12.4(22)T
3.0 Loops, conditionals, regexps, Programming language
12.2(33)SE
context save, error handling feel.
3.1/3.2 - No changes -
Pre-Installation Config +
Pre-Installation Exec MyPackage.tar
Environment Variables
Router# easy-installer tftp://10.1.1.1/mypackage.tar flash:/easy
Configuration
-----------------------------------------------------------------
Files Configure and Install EASy Package ‘mypackage-1.03'
Post-Requisite Verification -----------------------------------------------------------------
1. Display Package Description
Post-Installation Config 2. Configure Package Parameters
Post-Installation Exec 3. Deploy Package Policies
4. Exit
Uninstall
Enter option: 2
See: http://www.cisco.com/go/easy
EASy Package guide: http://tools.cisco.com/squish/cEAe3
For Your
Embedded Automation Systems (EASy) Reference
© 2012 Cisco and/or its affiliates. All rights reserved. Cisco Connect 19
Operational Network Automation
Business Operations
1 3 5
6 7
ICT Operations
b
Virtual / Overlay Networks
Network
Survivability Manageability Automation
© 2012 Cisco and/or its affiliates. All rights reserved. Cisco Connect 20
Operational Network Automation
Business Operations
1 3 5
6 7
ICT Operations
b
Virtual / Overlay Networks
Network
Survivability Manageability Automation
© 2012 Cisco and/or its affiliates. All rights reserved. Cisco Connect 21
Inflection: Business-Driven Network Automations …
Business Operations
1 2 3 5
6 7
ICT Operations
b
Virtual / Overlay Networks
Network
Survivability Manageability Automation
© 2012 Cisco and/or its affiliates. All rights reserved. Cisco Connect 22
Inflection: Business-Driven Network Automations …
Business Operations
1 2 3 5
6 7
ICT Operations
b
Virtual / Overlay Networks
Network
Survivability Manageability Automation
© 2012 Cisco and/or its affiliates. All rights reserved. Cisco Connect 23
Self-Service for Human Users
Business Operations
1 3
ICT Operations
b
Virtual / Overlay Networks
Network
Survivability Manageability Automation
© 2012 Cisco and/or its affiliates. All rights reserved. Cisco Connect 24
Self-Service for Human Users
Business Operations
1 3 Operations
(FCAPS)
ICT Operations
b
Virtual / Overlay Networks
Network
Survivability Manageability Automation
© 2012 Cisco and/or its affiliates. All rights reserved. Cisco Connect 25
Self-Service for Human Users
Business Operations
1 3 Operations
(FCAPS)
Resource
6 Allocation 7
ICT Operations
b
Virtual / Overlay Networks
Network
Survivability Manageability Automation
© 2012 Cisco and/or its affiliates. All rights reserved. Cisco Connect 26
Self-Service for Human Users
Business Operations
1 3 5 Services
Operations
(Location, Guestnet, Onboarding, …)
(FCAPS)
Resource
6 Allocation 7
ICT Operations
b
Virtual / Overlay Networks
Network
Survivability Manageability Automation
© 2012 Cisco and/or its affiliates. All rights reserved. Cisco Connect 27
Self-Service for Human Users
Business Operations
1 3 5 Services
Operations
(Location, Guestnet, Onboarding, …)
(FCAPS)
Resource
6 Allocation 7
ICT Operations
b
Virtual / Overlay Networks
Network
Survivability Manageability Automation
© 2012 Cisco and/or its affiliates. All rights reserved. Cisco Connect 28
Inflection: Network Programming
Business Operations
1 2 3 5
APIs and Agents
Domain
DomainControllers
Controllers c
6 7
ICT Operations
Virtual / Overlay Networks b
Network
Survivability Manageability Automation Autonomy
© 2012 Cisco and/or its affiliates. All rights reserved. Cisco Connect 29
Inflection: Network Programming
Business Operations
1 2 3 5
APIs and Agents
Domain
DomainControllers
Controllers c
ICT Operations
Virtual / Overlay Networks b
Network
Survivability Manageability Automation Autonomy
© 2012 Cisco and/or its affiliates. All rights reserved. Cisco Connect 30
Cisco ONE Platform Kit (onePK)
• Extend
onePK
• Automate onePK IPC Channel
• Customize
API Infrastructure
• Enhance
Any Cisco • Modify ASR
Router or Catalyst Nexus
ISR
Switch
© 2012 Cisco and/or its affiliates. All rights reserved. Cisco Connect 31
Cisco ONE Platform Kit (onePK)
Service Set Description Version v.6.0.5 EFT 2012/2013
onePK Provides
Data Path Provides packet delivery service to application: Copy, Punt, Inject
Provides filtering (NBAR, ACL), classification (Class-maps, Policy-
• Abstractions (Service Sets) Policy maps), actions (Marking, Policing, Queuing, Copy, Punt) and applying
policies to interfaces on network elements
Routing Read RIB routes, add/remove routes, receive RIB notifications
• Programmatic Interfaces (C, Java, (REST) …) Element
Get element properties, CPU/memory statistics, network interfaces,
element and interface events
Discovery L3 topology and local service discovery
• Software Development Kit (SDK) Utility
Syslog events notification, Path tracing capabilities (ingress/egress
and interface stats, next-hop info, etc.)
Debug capability, CLI extension which allows application to
Developer extend/integrate application’s CLIs with network element
© 2012 Cisco and/or its affiliates. All rights reserved. Cisco Connect 34
System Location
Element
YOUR
Interfaces IP address, MTU, Clear Stats, Shut/No Shut Applications
Discovery Filters
© 2012 Cisco and/or its affiliates. All rights reserved. Cisco Connect 35
char *str = NULL;
onep_element_connect(elemA, user, pwd, NULL, &sh);
onep_element_get_property(elemA, &property);
if (property) {
onep_element_to_string(elemA, &str);
if (str) {
fprintf(stderr, "\nElement Info: %s\n", str);
free(str);
}
}
© 2012 Cisco and/or its affiliates. All rights reserved. Cisco Connect 36
Monitor Memory Usage
• Problem: What if we need to dynamically investigate further upon a resource symptom ?
• Solution: Use the integration of EEM + ERM to trigger an EEM event when processor
memory is greater than 80%
resource policy
policy critmem global
system
memory processor
critical rising 80
interval 5
user global critmem
© 2012 Cisco and/or its affiliates. All rights reserved. Cisco Connect 37
Real-World
Example
A Network “Top”
© 2012 Cisco and/or its affiliates. All rights reserved. Cisco Connect 38
Routing RIB, Next-Hop, metric, AD, scope (VRF), Changes
YOUR
QoS Configured Classes Applications
Policy
© 2012 Cisco and/or its affiliates. All rights reserved. Cisco Connect 39
Routing Static routes
YOUR
QoS Service-Policies (Police, Mark, Shape, Queue) Applications
Policy
Security ACLs
© 2012 Cisco and/or its affiliates. All rights reserved. Cisco Connect 40
• Getting Routes
• Setting Routes
© 2012 Cisco and/or its affiliates. All rights reserved. Cisco Connect 41
Example: Routing for Dollars / CO2 / Tulips /…
Setup
• EIGRP
• Routing Topology
• No External Metrics
• No External Algorithm
© 2012 Cisco and/or its affiliates. All rights reserved. Cisco Connect 42
Example: Routing for Dollars / CO2 / Tulips /…
Application Routes
• EIGRP
• onePK
• External Metrics
• External Algorithm
© 2012 Cisco and/or its affiliates. All rights reserved. Cisco Connect 43
Example: Routing for Dollars / CO2 / Tulips /…
router ospf 1
redistribute application <app name> ...
© 2012 Cisco and/or its affiliates. All rights reserved. Cisco Connect 44
Example: Routing for Dollars / CO2 / Tulips /…
Statistics and Metrics
• Code Metrics Framework makes it easy to
modify code and change business
‒ Total lines of code: 4700 (JAVA) logic.
‒ 40% SWING GUI
‒ 20% Dijkstra’s algorithm, lowest cost path determination
‒ 25% Housekeeping: Node and link database
‒ 15% Calls to onePK infrastructure + error checking
• Code increase to add “Latency based routing” on top of “Routing for Dollars”
‒ 100 lines of code Modular java code makes it easy
to deploy on multiple clients.
• Modular code base written in Java has allowed us to port this to mobility client.
© 2012 Cisco and/or its affiliates. All rights reserved. Cisco Connect 45
Example: Routing for Dollars / CO2 / Tulips /…
Recent Extensions
Path determination
based on lowest latency
© 2012 Cisco and/or its affiliates. All rights reserved. Cisco Connect 46
YOUR
Applications
Data Plane Copy or Punt Packets
© 2012 Cisco and/or its affiliates. All rights reserved. Cisco Connect 47
YOUR
Applications
Data Plane Inject New or Modified Packets
© 2012 Cisco and/or its affiliates. All rights reserved. Cisco Connect 48
TRY(rc, onep_dpss_register_for_packets(
ne1,
dpss,
targ_left, Defines traffic of interest
interesting_class,
ONEP_DPSS_ACTION_PUNT, Action to take on
interesting traffic
encrypt_callback,
(void *)intf_left, Where traffic goes next
®_handle), "Register for packets");
© 2012 Cisco and/or its affiliates. All rights reserved. Cisco Connect 49
Real-World
Example
encrypt
http
injects into data path. Unsecure
5 Network
3. Policy APIs on egress router punt telnet 3
and syslog to app encrypt
4. App decrypts punted traffic and re- http onePK application
injects into data path. telnet telnet
5. Traffic that does not match policy 4
passes through unencrypted.
50
© 2012 Cisco and/or its affiliates. All rights reserved. Cisco Connect
5
What Client Sees What Wireshark Sees
51
© 2012 Cisco and/or its affiliates. All rights reserved. Cisco Connect
5
Request + Filter
Examples:
- Getting 50’000 ACLs Block Result 1 iterative
from an Element Iterator
Iterations ...
Examples:
- Get Element Version
- Set Interface Address
Call / Return synchronous
© 2012 Cisco and/or its affiliates. All rights reserved. Cisco Connect 52
© 2012 Cisco and/or its affiliates. All rights reserved. Cisco Connect 53
Portfolio of API, Languages and Abstractions
Network Programming with onePK and Embedded Network Automation
Native Advanced
Higher-Level
Network OS Network OS Object Oriented
Structured API Abstractions /
Embedded Embedded API
Interfaces
Automation Scripting
Event-/Expression- MIB, Tcl, Python, Embedded onePK C onePK Java onePK Libraries
PfR, IPSLA Thresholds, Event Manager, EASy, REST, XMPP, Design
Embedded Event … Patterns, OMNI
Manager Applets, … Controllers, …
Business Operations
1 2 3 4 5
APIs and Agents
ONE Controller
Domain
DomainControllers
Controllers
Open Daylight Controller c
6 7
ICT Operations
APIs and Agents
onePK
Virtual / Overlay Networks b
Network
Survivability Manageability Automation Autonomy
© 2012 Cisco and/or its affiliates. All rights reserved. Cisco Connect 55
© 2011 Cisco and/or its affiliates. All rights reserved. Cisco Public 56
For Your
References – Programmable and Cloud-Intelligent Reference
© 2012 Cisco and/or its affiliates. All rights reserved. Cisco Connect 57
For Your
Network Programming Hands-On Lab Reference
Step-by-step introduction and adoption strategies Real-Life Examples and Case Studies
Where do I start – can I do this? What are Cisco ONE and onePK anyhow?
Practical Examples and Hands-on Lab Illustration in the bigger SDN and Automation Context
© 2011
2013 Cisco and/or its affiliates. All rights reserved. Cisco Connect 64
Děkujeme za pozornost.
© 2013 Cisco and/or its affiliates. All rights reserved. Cisco Connect 65