3. What is Cumulus Linux?
3
BIOS and PXE
Industry Standard Server
SERVER OS
NETWORK OS
Boot Loader and
Industry Standard Switch
4. cumulusnetworks.com
UserSpaceArchitecture– Cumulus Linux Operating System as a Platform
4
Switch
Driver
switchd
CPU, RAM, Flash, etc.
Routing Tables
ARP
Table
Bridge
Table
Ethernet
Interfaces
LinuxKernel
Automation Monitoring
Third Party/Customer Applications
Network Orchestration
Routing
Suite
Bridging VXLAN
Switch Silicon
Front Panel Ports
5. cumulusnetworks.com
But Why should we care?
Your choice of a network OS!
Provides Hardware Choice
Build and Automate on a Linux OS
Oh and its just Linux!
Treat my switch as a server!
6. Cumulus Networks
▪ Infrastructure as code
▪ Enforcement from central
location
▪ Easy change control
Configuration ManagementHot Swap the Whole Switch
▪ With automation the whole
switch can be replaced
and provisioned
▪ High capacity, fine-grained
failure domain
▪ Weeks and months now
take seconds
▪ Pods of equipment can be
stamped out in multiple
locations
Rapid Provisioning
6
NetDevOps: The 90’s called, they want their frosted tips back!
OBM OBM OBM
8. cumulusnetworks.com
The Obvious (or is it?)
Git!….Check out our Github for examples!
https://github.com/CumulusNetworks
Cumulus Workbench - See this in action!
Puppet Forge - Cumulus Linux Modules + Debian
modules
Cumulus VX - Play, Test, Develop and deploy on the free
virtual machines
NetDevOps - We will get there!
10. cumulusnetworks.com
ONIE – Open Network Install Environment
Modern, efficient installer
Network OS installer
• Discovery, transfer, and execution
• Implemented through Linux kernel with BusyBox (OpenWRT-
like)
Industry support
Enables open network hardware ecosystem
Open source
Well-documented
• http://www.onie.org/
10
11. cumulusnetworks.com
Zero Touch Provisioning
Automation option at first Cumulus Linux boot
Request DHCP lease on management network
If option 239 and URL in response, then:
• Request contents of script at URL
• Parse script for CUMULUS-AUTOPROVISIONING
• Execute script locally on switch as root (unless previously successfully
run)
Supported languages
Bash
Perl
Python
Ruby
11
If eth0 is set to DHCP, Zero Touch Provisioning can be
triggered (unless previously successful run) when:
• Switch boots up
• eth0 is brought down and up
12. cumulusnetworks.com
ONIE and ZTP Interaction
12
DHCP Request with ONIE Option
DHCP Address with URL for OS Image
DHCP Request with ZTP Option
DHCP Address with ZTP script URL
Pull Puppet Scripts
OS BootedOS Booted
Baseline Configuration AppliedBaseline Configuration Applied
Device Specific Configuration AppliedDevice Specific Configuration Applied
13. cumulusnetworks.com
Bringing it all together!
Task 1 => Installing and booting a Network OS
Task 2 => Installing Puppet Agent
Task 3 => Now What????
15. Our desired state - Without touching the switch!
15
Install the OS
ZTP Provisioning
Install Puppet agent
Configure MOTD
Configure PTM
Configure interfaces
Configure SVI
Deploy OSPF
Deploy Bridges
16. Modules can be your friends
cumuluslinux/cumulus_interfaces
cumuluslinux/cumulus_interface_policy
cumuluslinux/cumulus_license
cumuluslinux/cumulus_ports
16
18. 18
Install the OS
ZTP Provisioning
Install Puppet agent
Configure MOTD
Configure PTM
Configure interfaces
Configure SVI
Deploy OSPF
Deploy Bridges
Our desired state - Without touching the switch!
Up until now their has not been a hardware agnostic Network operating system. Cumulus Networks is here to change that. Beyond that we see incredible power in allowing the same sort of choice in applications as we've previously highlighted in hardware.
Cumulus Linux is Debian based Linux distribution. Wheezy distribution. This allows customers to draw from the existing ecosystems of Linux tool sets. This is an overview of the applications you can run on a Linux network OS.
For example there is a very good routing stack called Quagga. We’ve taken Quagga, added additional features where required, fixed scaling issues and generaly hardened this routing stack. Like a good Linux systems we’ve up streamed all these improvements back to the Linux community at large.
But in the interest of choice, if you prefer the routing capability of a different routing stack….for example Bird, you are free to use this as well.
You have the choice to tune our Network Operating Stack to your requirements with our without our help. Propreietary vendors and several Linux based hardware vendors
Many of the other network vendors claim to be interoperable with Linux tools….take puppet as an example. But, their Puppet agent is not the standard full featured current release from Puppet, it’s a vendor spefic agent tied to a specific puppet version that allows for limited functionality dictated by the networking vendor.
This a proof point that highlight the difference between a Linux based OS and native
At Cumulus Linux we are enablers not gate keepers.
Once you understand the power of choice and solutions brought about by Cumulus Linux, the next step is to integrate Cumulus Linux into brownfield and greenfield architectures.
IP Fabrics are the most flexible network architectures when it comes to high capacity, scale and evolution.
Enables Scale-out architecture
Easy to configure and troubleshoot
Easy to add new racks
Standard OSPF/BGP – helps with interoperability
Can be used as an underlay in conjunction with Network Virtualization Overlays
Network Virtualization Overlays add additional flexibility
Flexible Virtual Network
Scalable, Multi-tenant
Integrated with Cloud Orchestration tools
Yet, they need a simple migration path coexistent with their existing network architecture
CL2.5 brings the flexibility of L2MLAG network architectures
CL2.5 brings the flexibility of L2MLAG network architectures. Customers can now drop in a networking hardware running Cumulus Linux in existing environments and migrate at their pace and based on the needs to Modern DC networks.
FHRP, Improved Linux-bridging and ifupdown2 integration for required L2 fabrics, L2 scale
Starting with that “loading dock to production” model, let’s begin with the first piece of software that is encountered - ONIE
Cumulus supported platforms are pre loaded with ONIE, this an open source boot loader originally built by Cumulus engineers
This can be considered PXE on steroids, it was built to be flexible enough for a number of management environments.
If you’re familiar with OpenWRT, ONIE is very much a stripped down but fully functional Linux OS
The code base was recently adopted by the Open Compute Project and has extensive documentation
All traditional network operating systems have some level of automated initial configuration fetching.
This is usually limited towards pushing a well crafted configuration file
Cumulus Linux takes a different approach, similar to a post kickstart script or fai helper script
This implementation closely follows the ONIE model: fetching a script over the management interface and executing
Cumulus Linux offers several common scripting languages – pre installed, all of which are available for ZTP script to be written against
Just as with ONIE, state is preserved. If the ZTP script fails or doesn’t complete, it will be fetched on the next system boot.