Upload
robb-boyd
View
995
Download
1
Embed Size (px)
Citation preview
TechWiseTV Open NX-OS
Workshop
Shane Corban Product Manager
Vishal Jain Technical Architect
Parag Deshpande Technical Architect
Nicolas Delecroix Technical Marketing Engineer
© 2015 Cisco and/or its affiliates. All rights reserved. Cisco PublicPresentation ID
Open NX-OS consistent across both ToR and ModularExtensibilityAuto
DeploymentOpen Application
IntegrationProgrammability
Tool ChoiceDevOpsEnabling
POAP NXAPI
Yocto SDK
Standard Open InterfacesOpen Interfaces Automation
and VisibilityAdaptable NXOSAdaptableSDK
Programmable BootStrap and 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
© 2015 Cisco and/or its affiliates. All rights reserved. Cisco PublicPresentation ID
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
© 2015 Cisco and/or its affiliates. All rights reserved. Cisco PublicPresentation ID
Open NX-OS Package Management via YUM/RPMLXC 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 uploadYUM Install
Linux Daemon
Linux Kernel
• Raw Socket • Netdevs• Libpcap
init.d
Monitoring
server
ASIC
Build Server Target Switch
© 2015 Cisco and/or its affiliates. All rights reserved. Cisco PublicPresentation ID
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 IntegrationSoftware Architecture
© 2015 Cisco and/or its affiliates. All rights reserved. Cisco PublicPresentation ID
Kernel (cgroup, LSM)
NX-OS root file system
Native Linux
Processes
Native Linux
ProcessesBash Bash
Native Linux
Processes
Native Linux
Processes
Native Linux
Processes
Guest root file systemPkg-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 IntegrationSecure Guest Shell
Pkg-4.rpm
© 2015 Cisco and/or its affiliates. All rights reserved. Cisco PublicPresentation ID
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
© 2015 Cisco and/or its affiliates. All rights reserved. Cisco PublicPresentation ID
Open NX-OS Linux Kernel Stack ArchitectureUs
er S
pace
ASIC-1 ASIC-M
Eth1/1 Eth M/NEth1/2
Portchannel1
SubIntf
Switch Ports
Linux
Kern
el
• 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/1Route Table
ARP Table Linux
Networking Stack
NX-OS FIB Routing ProtocolsAdjacenc
y Table
Hard
war
eAp
ps Linux Networking Apps Monitoring/Visibility Automation/
Provisioning
© 2015 Cisco and/or its affiliates. All rights reserved. Cisco PublicPresentation ID
Open NX-OS Interfaces: NX-OS Kernel StackRepresenting VRF context via Linux Name Space
User
Spa
ce
ASIC-1 ASIC-M
Eth1/1 Eth M/NEth1/2
Portchannel1
SubIntf
Switch Ports
Linux
Kern
el
• 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
Hard
war
e
Default Name Space
Default VRF
Name SpaceRed
VRFRed
Name Space
Orange
VRF Orange
Name SpacePurple
VRFPurpl
e
Apps Linux Networking
Apps Monitoring/Visibility Automation/Provisioning
ASIC-3
© 2015 Cisco and/or its affiliates. All rights reserved. Cisco PublicPresentation ID
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
© 2015 Cisco and/or its affiliates. All rights reserved. Cisco PublicPresentation ID
• 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/HTTPSData: JSON/XML
NGINIX
Server
Data Management Engine
Netconf
Transport: SSHData: XML
Object Store
SNMP Agent
SNMPRest Client
Netconf Client
BGP LACP ACL QoSVLAN
Transaction Commit Status: Success/Raise Fault
1 2
3 4
Open NX-OS ProgrammabilityObject Model Based Automation with NX-API REST
© 2015 Cisco and/or its affiliates. All rights reserved. Cisco PublicPresentation ID
Open NX-OS NX-API REST Object Model ProgrammabilityBGP Configuration Example
CLI POST Request (NX-API CLI) POST Request BGP Object (NX-API REST)
router bgp 11router-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" } } } ] }}
© 2015 Cisco and/or its affiliates. All rights reserved. Cisco PublicPresentation ID
Open-NXOS Useful Reference LinksSoftware/Document Reference LinkNexus 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