13
TechWiseTV Open NX-OS Workshop Shane Corban Product Manager Vishal Jain Technical Architect Parag Deshpande Technical Architect Nicolas Delecroix Technical Marketing Engineer

TechWiseTV Open NX-OS Workshop

Embed Size (px)

Citation preview

Page 1: TechWiseTV  Open NX-OS Workshop

TechWiseTV Open NX-OS

Workshop

Shane Corban Product Manager

Vishal Jain Technical Architect

Parag Deshpande Technical Architect

Nicolas Delecroix Technical Marketing Engineer

Page 2: TechWiseTV  Open NX-OS Workshop

© 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

Page 3: TechWiseTV  Open NX-OS Workshop

© 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

Page 4: TechWiseTV  Open NX-OS Workshop

© 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

Page 5: TechWiseTV  Open NX-OS Workshop

© 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

Page 6: TechWiseTV  Open NX-OS Workshop

© 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

Page 7: TechWiseTV  Open NX-OS Workshop

© 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

Page 8: TechWiseTV  Open NX-OS Workshop

© 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

Page 9: TechWiseTV  Open NX-OS Workshop

© 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

Page 10: TechWiseTV  Open NX-OS Workshop

© 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

Page 11: TechWiseTV  Open NX-OS Workshop

© 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

Page 12: TechWiseTV  Open NX-OS Workshop

© 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"          }        }      }    ]  }}

Page 13: TechWiseTV  Open NX-OS Workshop

© 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