Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

TechWiseTV Open NX-OS Workshop

1,263 views

Published on

We hosted a live workshop on Sep 22, 2015. These are the slides requested by the audience. If you want to hear the replay AND see the live demonstration, follow the link below.
Open NX-OS: Maximize Programmability with NX-API REST
http://cs.co/9008BKHIi

Thanks for watching, Robb, @robbboyd

Helpful links:

Nexus Programmability Guide:
http://www.cisco.com/c/en/us/td/docs/switches/datacenter/nexus9000/sw/7-x/programmability/guide/b_Cisco_Nexus_9000_Series_NX-OS_Programmability_Guide_7x.html

NX API REST Object Model Specification: http://developer.cisco.com

Chef Enterprise Agent (Supermarket): http://supermarket.chef.io

Cisco Chef Cookbook GitHub: https://github.com/cisco/cisco-network-chef-cookbook

Puppet Enterprise Agent (Puppetforge): http://forge.puppetlabs.com

Cisco Puppet Module GitHub: https://github.com/cisco/cisco-network-puppet-module

Cisco Software Repository: https://devhub.cisco.com/artifactory/open-nxos

Nexus 3/9K Datacenter GitHub Repository (NX-API, Ansible, NXAPI REST Scripting Examples, etc): http://github.com/datacenter/nexus9000

Custom Application Integration SDK: http:/​/​devhub.cisco.com/​artifactory/​open-nxos

Virtual vN9K, Please contact your Cisco AM to request access currently

Published in: Technology
  • Slides from our NX-OS Workshop yesterday. Anyone wanting to learn more about network programmability and just how far the Cisco Nexus OS has come...check this out. We hosted a live workshop on Sep 22, 2015. These are the slides requested by the audience. If you want to hear the replay AND see the live demonstration, follow the link below. Open NX-OS: Maximize Programmability with NX-API REST http://cs.co/9008BKHIi Thanks for watching, Robb, @robbboyd Helpful links: Nexus Programmability Guide: http://www.cisco.com/c/en/us/td/docs/switches/datacenter/nexus9000/sw/7-x/programmability/guide/b_Cisco_Nexus_9000_Series_NX-OS_Programmability_Guide_7x.html NX API REST Object Model Specification: http://developer.cisco.com Chef Enterprise Agent (Supermarket): http://supermarket.chef.io Cisco Chef Cookbook GitHub: https://github.com/cisco/cisco-network-chef-cookbook Puppet Enterprise Agent (Puppetforge): http://forge.puppetlabs.com Cisco Puppet Module GitHub: https://github.com/cisco/cisco-network-puppet-module Cisco Software Repository: https://devhub.cisco.com/artifactory/open-nxos Nexus 3/9K Datacenter GitHub Repository (NX-API, Ansible, NXAPI REST Scripting Examples, etc): http://github.com/datacenter/nexus9000 Custom Application Integration SDK: http:/​/​devhub.cisco.com/​artifactory/​open-nxos Virtual vN9K, Please contact your Cisco AM to request access currently
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

TechWiseTV Open NX-OS Workshop

  1. 1. TechWiseTV Open NX-OS Workshop Shane Corban Product Manager Vishal Jain Technical Architect Parag Deshpande Technical Architect Nicolas Delecroix Technical Marketing Engineer
  2. 2. Open NX-OS consistent across both ToR and ModularExtensibilityAuto Deployment Open Application Integration Programmability Tool Choice DevOps Enabling POAP NXAPI Yocto SDK Standard Open Interfaces Open Interfaces Automation and Visibility Adaptable NXOS Adaptable SDK ProgrammableBootStrap and Provisioning BootStrap/ Provisioning Package and Application Management Native Application Integration PXE OPEN NXOS – Enhancements across all NX-OS Infrastructure Layers Data Models OPEN NX-OS - Extensible, Open, Programmable Server Management Tools
  3. 3. Open NX-OS: Infrastructure Layer Enhancements OPEN PACKAGE/APPLICATION INTEGRATION OPEN INTERFACE LINUX ARCHITECTURE OPEN NX-API REST (MODEL BASED) Open NX-OS supported across Nexus 3K/9K Open NXOS
  4. 4. Open NX-OS Package Management via YUM/RPM LXC and Native Daemons • Ability to third party packages in Secure Guestshell or natively in NX- OS kernel • Install all third party applications (Puppet/Chef, etc) as RPMs • Daemon managed via standard Linux interfaces • Built-in support for YUM package manager • Patching and upgrade using standard rpm/yum workflows • NX-OS processes(BGP) can be upgraded/patched via “yum update” Package as RPM C app with standard Linux constructs Open Embedded 64 bit Build Environment Cisco/Local Repository RPM local repository RPM upload YUM Install Linux Daemon Linux Kernel • Raw Socket • Netdevs • Libpcap init.d Monitoring server ASIC Build Server Target Switch
  5. 5. Third Party Protocol Apps Devops Orchestration Automation Monitoring/ Analytics Third Party/Custom Applications tcollector 64 Bit Yocto Based Linux Kernel Switch Hardware Routing/Switching Packages Kernel Route Kernel ARP Kstack/Netdevs Kernel Space User Space Base NX-OS OpenLLDP Open NX-OS Third Party Application Integration SoftwareArchitecture
  6. 6. Kernel (cgroup, LSM) NX-OS root file system Native Linux Processes Native Linux Processes Bash Bash Native Linux Processes Native Linux Processes Native Linux Processes Guest root file system Pkg-1.rpm Pkg-2.rpm Pkg-2.rpm Pkg-3.rpm Ns=globalNs=global Ns=guestshell Ns=guestshell Ns=guestshellNs=global Ns=guestshell Native Shell, RPM + Containers • Secure common distribution CentOS7 environment in which customer may install their own custom applications • Use “guestshell resize” command to restrict CPU/memory/rootfs resources available to Guest Shell Open NX-OS: Third Party Application Integration Secure Guest Shell Pkg-4.rpm
  7. 7. Open NX-OS: Infrastructure Layer Enhancements OPEN PACKAGE/APPLICATION INTEGRATION OPEN INTERFACE LINUX ARCHITECTURE OPEN NX-API REST (MODEL BASED) Open NX-OS supported across Nexus 3K/9K Open NXOS
  8. 8. Open NX-OS Linux Kernel Stack Architecture UserSpace ASIC-1 ASIC-M Eth1/1 Eth M/NEth1/2 Portchannel1 SubIntf Switch Ports LinuxKernel • Allows 3rd party apps to inject routes to hardware using Linux interfaces • Install 3rd party routing protocols built on Linux interfaces NetDevices ASIC-2 . . . Eth1/1 Route Table ARP Table Linux Networking Stack NX-OS FIB Routing Protocols Adjacency Table HardwareApps Linux Networking Apps Monitoring/Visibility Automation/Provisioning
  9. 9. Open NX-OS Interfaces: NX-OS Kernel Stack Representing VRF context via Linux Name Space UserSpace ASIC-1 ASIC-M Eth1/1 Eth M/NEth1/2 Portchannel1 SubIntf Switch Ports LinuxKernel • Forwarding information within the ‘VRF’ context can be accessed via a corresponding Linux Name Space • setns, ip-netns to change VRFs and add routes within a given namespace. NetDevices ASIC-2 . . . Eth1/1Linux Networking Stack Hardware Default Name Space Default VRF Name Space Red VRF Red Name Space Orange VRF Orange Name Space Purple VRF Purple Apps Linux Networking Apps Monitoring/Visibility Automation/Provisioning ASIC-3
  10. 10. Open NX-OS: Infrastructure Layer Enhancements OPEN PACKAGE/APPLICATION INTEGRATION OPEN INTERFACE LINUX ARCHITECTURE OPEN NX-API REST (MODEL BASED) Open NX-OS supported across Nexus 3K/9K Open NXOS
  11. 11. • Object models for NX-OS switch processes (BGP, VLAN, etc) are exposed to customer and are programmed via RESTful API’s asynchronously. • SNMP goes via DME(Object Store) or legacy path based on component and operation type (GET/SET). • All manageability agents over CLI are still supported via CLI including existing NX-API implementation • Models are rendered as configuration changes on backend processes via DME(Object Store). REST CLIENT PROCESS FLOW: 1. Client sends REST request over HTTP 2. DME validates posted/input REST objects against cisco models and returns Success/Failure to calling REST client 3. Transactions Committed on backend processes 4. Report Status(Success/Raise Fault) NX-API Python API BashTCL CLI(VSH) Transport: HTTP/HTTPS Data: JSON/XML NGINI X Server Data Management Engine Netconf Transport: SSH Data: XML Object Store SNMP Agent SNMP Rest Client Netconf Client BGP LACP ACL QoSVLAN Transaction Commit Status: Success/Raise Fault 1 2 3 4 Open NX-OS Programmability Object Model Based Automation with NX-API REST
  12. 12. Open NX-OS NX-API REST Object Model Programmability BGP Configuration Example CLI POST Request (NX-API CLI) POST Request BGP Object (NX-API REST) router bgp 11 router-id 1.1.1.1 POST http://Switch-IP/ins {'content-type':'application/json- rpc'}.json() { "jsonrpc": "2.0", "method": "cli", "params": { "cmd": "config t", "version": 1 }, "id": 1}, { "jsonrpc": "2.0", "method": "cli", "params": { "cmd": "router bgp 11", "version": 1 },"id": 1}, { "jsonrpc": "2.0", "method": "cli", "params": { "cmd": "router-id 1.1.1.1", "version": 1}, "id": 2}] POST http://Switch- IP/api/mo/sys/bgp/inst.json { "bgpInst" : { "children" : [{ "bgpDom" : { 11 "attributes" : { "name":"default", "rtrId" : "1.1.1.1" } } } ] } }
  13. 13. Open-NXOS Useful Reference Links Software/Document Reference Link Nexus Programmability Guide http://www.cisco.com/c/en/us/td/docs/switches/datacenter/nexus9000/sw/7- x/programmability/guide/b_Cisco_Nexus_9000_Series_NX- OS_Programmability_Guide_7x.html NX API REST Object Model Specification http://developer.cisco.com Chef Enterprise Agent (Supermarket) http://supermarket.chef.io Cisco Chef Cookbook GitHub https://github.com/cisco/cisco-network-chef-cookbook Puppet Enterprise Agent (Puppetforge) http://forge.puppetlabs.com Cisco Puppet Module GitHub https://github.com/cisco/cisco-network-puppet-module Cisco Software Repository https://devhub.cisco.com/artifactory/open-nxos Nexus 3/9K Datacenter GitHub Repository (NX- API, Ansible, NXAPI REST Scripting Examples, etc) http://github.com/datacenter/nexus9000 Custom Application Integration SDK http:/​/​devhub.cisco.com/​artifactory/​open-nxos Virtual vN9K Please contact your Cisco AM to request access currently

×