SlideShare a Scribd company logo
v 
Switch as a Server 
Leslie Carr
Who is Leslie? 
§ Operations Engineer 
§ Google 
§ Craigslist 
§ Twitter 
§ Wikimedia Foundation 
(Wikipedia)
Who is Leslie? 
§ Cumulus Networks®
What is Cumulus Linux? 
§ Cumulus® Linux® 
§ Debian based distribution for Network switches 
Cumulus Philosophy 
§ Manage your network switch as a server 
§ Use existing linux tools to configure network switches 
§ Current release — Based on Debian wheezy
Cumulus® Linux® Hardware Compatibility List 
cumulusnetworks.com 5
v 
Installation and Configuration
Traditional Network Gear Process 
§ Comes preinstalled with (old) software 
§ Telnet or serial into box 
§ TFTP new image 
§ Enable SSH (sometimes with passwords!) 
§ Copy/paste configuration 
§ Automation usually restricted to Perl, TCL, and expect 
scripts
Normal Server Installation 
§ Reboot and bios with PXE automatically catches 
§ TFTP boot image 
§ New image pulled over via normal means (usually 
webserver, sometimes TFTP) 
§ Pre/post installation scripts runs 
§ Automation software manages configuration and 
administration
Network OS installer discovery and execution 
§ Like a pre-installed BIOS, PXE, and kickstarter in one 
§ Implemented through Linux kernel with BusyBox 
Donated to the Open Compute Project (OCP) 
http://www.onie.org 
ONIE
Cumulus Linux OS Installation with ONIE 
§ Look for installer (“discover”) 
§ Locally, e.g. USB if available 
§ Over the network on eth0 
• DHCP, IPv6 neighbor, TFTP 
§ Search for file name and execute 
§ onie-­‐installer-­‐* 
cumulusnetworks.com 10 
1 
2 
Cumulus Linux 
OS image
During the DHCP process over eth0 (management interface), Cumulus 
Linux will request DHCP option 239. This option is used to specify the 
custom provisioning script. It will also send the following headers: 
Header 
Value 
Example 
-­‐-­‐-­‐-­‐-­‐-­‐ 
-­‐-­‐-­‐-­‐-­‐ 
-­‐-­‐-­‐-­‐-­‐-­‐-­‐ 
User-­‐Agent 
CumulusLinux-­‐AutoProvision/0.4 
CUMULUS-­‐ARCH 
CPU 
architecture 
powerpc 
CUMULUS-­‐BUILD 
1.5.1-­‐5c6829a-­‐201309251712-­‐final 
CUMULUS-­‐LICENSE-­‐INSTALLED 
Either 
0 
or 
1 
1 
CUMULUS-­‐MANUFACTURER 
dni 
CUMULUS-­‐PRODUCTNAME 
et-­‐7448bf 
CUMULUS-­‐SERIAL 
XYZ123004 
CUMULUS-­‐VERSION 
1.5.1 
CUMULUS-­‐PROV-­‐COUNT 
0 
CUMULUS-­‐PROV-­‐MAX 
32 
ZTP
ZTP Execution 
§ Script must contain CUMULUS-­‐AUTOPROVISIONING 
Can be in the following languages : 
§ Perl 
§ Python 
§ Ruby 
§ Shell
ZTP Example with Puppet 
1 
#!/bin/bash 
2 
3 
function 
error() 
{ 
4 
echo 
-­‐e 
"e[0;33mERROR: 
Provisioning 
failed 
running 
$BASH_COMMAND 
at 
line 
$BASH_LINENO 
of 
$(basename 
$0) 
e[0m" 
>&2 
5 
exit 
1 
6 
} 
7 
trap 
error 
ERR 
8 
# 
Allow 
Cumulus 
testing 
repo 
9 
sed 
-­‐i 
/etc/apt/sources.list 
-­‐e 
's/^#s* 
(deb.*testing.*)$/1/g' 
10 
11 
# 
Upgrade 
and 
install 
Puppet 
12 
apt-­‐get 
update 
-­‐y 
13 
apt-­‐get 
upgrade 
-­‐y 
14 
apt-­‐get 
install 
puppet 
-­‐y 
15 
16 
echo 
"Configuring 
puppet" 
| 
wall 
-­‐n 
17 
sed 
-­‐i 
/etc/default/puppet 
-­‐e 
's/ 
START=no/START=yes/' 
18 
19 
service 
puppet 
restart 
20 
21 
# 
CUMULUS-­‐AUTOPROVISIONING 
22 
23 
exit 
0
Comparison 
Similar to installing a server OS using PXE 
app app app 
Server OS 
BIOS and PXE 
bare metal server 
app app app 
Network OS 
Boot Loader and ONIE 
bare metal switch 
ONIE looks for and installs network OS image 
boot into 
Network OS 
boot into 
Boot Loader and ONIE 
Boot Loader and ONIE
Video
§ Because Debian based, we can do everything via 
puppet 
§ users 
§ interface configuration 
§ routing software (Quagga) configuration 
Puppet
Video!
Make Life Even Better 
How can we make your life better?
Interim Puppet Server! 
Warning - small hard drive and limited processing 
power -- not recommended for long term 
Scenario - installing new rack with limited 
connectivity 
* make switch puppetmaster
Example Topology 
leaf 1 leaf 2 
swp1 - 4 swp1 - 4 
Puppetmaster
Video
Transition
Existing Network Interface Managers 
§ Optimized for desktop and hypervisor environments 
§ Complexity increases with interface configuration scale 
§ Burden of network interface configuration dependency 
ordering is on the user 
§ Lack of support for incremental changes to network 
interfaces: minimal disruption 
§ Lack of tools to query and validate running interface 
configuration
Linux Networking 
§ Switch networking characteristics: 
§ Large number of interfaces 
§ Switch ports, bridges, bonds, vlans 
§ Large number of interface attributes 
§ Addresses, bridge stp, mstp and igmp attributes 
§ Mostly static configuration
ifupdown 
§ Benefits 
§ Pluggable architecture 
§ Uses native Linux tools, 
enabling faster development 
§ Good user documentation, well 
known tool 
§ Challenges 
§ No knowledge of interface 
configuration dependency 
(burden on the user) 
§ Large scale configuration 
results in large files or too 
many files 
§ No support for incremental 
configurations 
§ No support to query/validate 
running interface 
configuration 
§ literate program 
§ Bugs
ifupdown2 
§ New implementation of ifupdown in Python 
§ Backward compatible with ifupdown interfaces format and 
commands 
§ Continues to use existing Linux native tools to configure network 
interfaces. 
§ Large number of interface attributes 
§ Pluggable architecture add-on python modules for interface 
configuration 
§ Meets some shortcomings seen with existing network interface 
managers on network switches 
§ ifreload acts like HUP instead of restart
ifupdown2 compare cli? 
ifupdown 
auto 
swp19 
iface 
swp19 
inet 
manual 
up 
link 
set 
$IFACE 
up 
down 
link 
set 
$IFACE 
down 
pre-­‐up 
/sbin/ethtool 
-­‐s 
$IFACE 
speed 
1000 
auto 
swp19.100 
iface 
swp19.100 
inet 
manual 
up 
link 
set 
$IFACE 
up 
down 
link 
set 
$IFACE 
down 
auto 
vlan100 
iface 
vlan100 
inet 
manual 
bridge_ports 
swp19.100 
mstpctl_stp 
on 
ifupdown2 
auto 
swp19 
iface 
swp19 
link-­‐speed 
1000 
auto 
vlan100 
iface 
vlan100 
bridge-­‐ports 
swp19.100 
bridge-­‐stp 
on
Network Interface Dependency 
▪ Handles network interface dependency 
using dependency graphs 
▪ Uses topological sort to order network 
interface configurations 
▪ Provides options and tools to query and 
execute interface configuration in 
dependency order 
▪ Built-in devices support 
ifupdown2 implicitly recognizes vlan and physical 
interfaces that appear as dependents and does the 
required minimal configuration to get them up: No 
need to specify `iface swp1.1000` in the example 
cumulusnetworks.com
ifupdown2 - Mako Templates 
## 
Note 
that 
the 
"range" 
ends 
with 
'4' 
## 
But 
will 
iterate 
only 
from 
1 
to 
3 
## 
See 
Python 
range() 
for 
more 
details 
% 
for 
i 
in 
range(1, 
4): 
auto 
swp${i} 
iface 
swp${i} 
% 
endfor 
<%def 
name="interface_defaults()"> 
mtu 
9000 
link-­‐speed 
10000 
link-­‐duplex 
full 
link-­‐autoneg 
off 
</%def> 
% 
for 
i 
in 
range(3,7): 
auto 
swp${i} 
iface 
swp${i} 
${interface_defaults()} 
% 
endfor 
auto 
default_bridge 
iface 
default_bridge 
bridge_ports 
glob 
swp3-­‐6 
bridge-­‐stp 
on
Find out more! 
§ Ifupdown2 
§ https://github.com/CumulusNetworks/ifupdown2 
§ PTM 
§ https://github.com/CumulusNetworks/ptm 
Example Code 
§ https://github.com/LeslieCarr/puppet-presentation 
Cumulus Open Source 
§ http://oss.cumulusnetworks.com 
Twitter 
§ @lesliegeek
Bringing the Linux Revolution to Networking 
§ Thank You! 
© 2014 Cumulus Networks. Cumulus Networks, the Cumulus Networks Logo, and Cumulus Linux are trademarks or registered trademarks of Cumulus Networks, Inc. or its 
affiliates in the U.S. and other countries. Other names may be trademarks of their respective owners. The registered trademark Linux® is used pursuant to a sublicense from LMI, 
the exclusive licensee of Linus Torvalds, owner of the mark on a world-wide basis. 
cumulusnetworks.com

More Related Content

PDF
Ansible & Cumulus Networks - Simplify Network Automation
Cumulus Networks
 
PDF
Achieving Continuous Delivery: An Automation Story
jimi-c
 
PPTX
Network automation (NetDevOps) with Ansible
Bangladesh Network Operators Group
 
PPTX
Zero Code Multi-Cloud Automation with Ansible and Terraform
Avi Networks
 
PDF
Automation Evolution with Junos
MarketingArrowECS_CZ
 
PDF
Ansible
Raul Leite
 
PDF
Ansible Case Studies
Greg DeKoenigsberg
 
PDF
Network Automation with Ansible
Anas
 
Ansible & Cumulus Networks - Simplify Network Automation
Cumulus Networks
 
Achieving Continuous Delivery: An Automation Story
jimi-c
 
Network automation (NetDevOps) with Ansible
Bangladesh Network Operators Group
 
Zero Code Multi-Cloud Automation with Ansible and Terraform
Avi Networks
 
Automation Evolution with Junos
MarketingArrowECS_CZ
 
Ansible
Raul Leite
 
Ansible Case Studies
Greg DeKoenigsberg
 
Network Automation with Ansible
Anas
 

What's hot (20)

PDF
One-click Hadoop Cluster Deployment on OpenPOWER Systems
Pradeep Kumar
 
PDF
Mitchell Hashimoto, HashiCorp
Ontico
 
PDF
Automating the Cloud with Terraform, and Ansible
Brian Hogan
 
PPTX
An Introduction into Bosh | anynines
anynines GmbH
 
PPTX
Immutable Infrastructure with Packer Ansible and Terraform
Michael Peacock
 
PPTX
Managing Large Selenium Grid
dimakovalenko
 
PPTX
Ansible presentation
Suresh Kumar
 
PDF
Managing Your Cisco Datacenter Network with Ansible
fmaccioni
 
PPTX
Distributed automation sel_conf_2015
aragavan
 
PDF
StackiFest16: Building a Cart
StackIQ
 
PPTX
Experience Report: Cloud Foundry Open Source Operations | anynines
anynines GmbH
 
PDF
Automating the Network
Puppet
 
PDF
[2018.10.19] 김용기 부장 - IAC on OpenStack (feat. ansible)
OpenStack Korea Community
 
PDF
Hands On Introduction To Ansible Configuration Management With Ansible Comple...
SlideTeam
 
PDF
Cobbler, Func and Puppet: Tools for Large Scale Environments
ViSenze - Artificial Intelligence for the Visual Web
 
PPTX
Accelerating with Ansible
Global Knowledge Training
 
PPTX
What Is Ansible? | How Ansible Works? | Ansible Tutorial For Beginners | DevO...
Simplilearn
 
PPTX
Go Faster with Ansible (PHP meetup)
Richard Donkin
 
PPTX
No Docker? No Problem: Automating installation and config with Ansible
Jeff Potts
 
PDF
Running Cloud Foundry for 12 months - An experience report | anynines
anynines GmbH
 
One-click Hadoop Cluster Deployment on OpenPOWER Systems
Pradeep Kumar
 
Mitchell Hashimoto, HashiCorp
Ontico
 
Automating the Cloud with Terraform, and Ansible
Brian Hogan
 
An Introduction into Bosh | anynines
anynines GmbH
 
Immutable Infrastructure with Packer Ansible and Terraform
Michael Peacock
 
Managing Large Selenium Grid
dimakovalenko
 
Ansible presentation
Suresh Kumar
 
Managing Your Cisco Datacenter Network with Ansible
fmaccioni
 
Distributed automation sel_conf_2015
aragavan
 
StackiFest16: Building a Cart
StackIQ
 
Experience Report: Cloud Foundry Open Source Operations | anynines
anynines GmbH
 
Automating the Network
Puppet
 
[2018.10.19] 김용기 부장 - IAC on OpenStack (feat. ansible)
OpenStack Korea Community
 
Hands On Introduction To Ansible Configuration Management With Ansible Comple...
SlideTeam
 
Cobbler, Func and Puppet: Tools for Large Scale Environments
ViSenze - Artificial Intelligence for the Visual Web
 
Accelerating with Ansible
Global Knowledge Training
 
What Is Ansible? | How Ansible Works? | Ansible Tutorial For Beginners | DevO...
Simplilearn
 
Go Faster with Ansible (PHP meetup)
Richard Donkin
 
No Docker? No Problem: Automating installation and config with Ansible
Jeff Potts
 
Running Cloud Foundry for 12 months - An experience report | anynines
anynines GmbH
 
Ad

Similar to Switch as a Server - PuppetConf 2014 - Leslie Carr (20)

PPTX
The Switch as a Server - PuppetConf 2014
Puppet
 
PDF
Puppet Camp Charlotte 2015: Manage Your Switches Like Servers
Puppet
 
PPTX
Hardware accelerated switching with Linux @ SWLUG Talks May 2014
Nat Morris
 
PPTX
ONIE: Open Network Install Environment @ OSDC 2014 Netways, Berlin
Nat Morris
 
PDF
Manage your switches like servers
Cumulus Networks
 
PDF
Ifupdown2: Network Interface Manager
Cumulus Networks
 
PDF
ONIE LinuxCon 2015
Curt Brune
 
PPT
Automating Networking! Do I Have to Start at Ground Zero?
Puppet
 
PDF
NFD9 - Matt Peterson, Data Center Operations
Cumulus Networks
 
PPTX
OSDC 2014 ONIE by Nat Morris
Cumulus Networks
 
PDF
Cumulus Networks & Puppet Labs webinar
Cumulus Networks
 
PDF
OSDC 2014: Nat Morris - Open Network Install Environment
NETWAYS
 
PDF
Unattended Deployment with Zero Touch Provisioning (ZTP)
Cumulus Networks
 
PDF
ONIE / Cumulus Networks Webinar
Cumulus Networks
 
PPTX
Webinar-Linux Networking is Awesome
Cumulus Networks
 
PPTX
TechWiseTV Workshop: Open NX-OS and Devops with Puppet Labs
Robb Boyd
 
PDF
Cumulus networks conversion guide
Scott Suehle
 
PPTX
Linux networking is Awesome!
Cumulus Networks
 
PDF
Linux Services and Networking, Systemd vs Cron.pdf
cowepep906
 
PDF
NFD9 - David Sinn, Real World Examples
Cumulus Networks
 
The Switch as a Server - PuppetConf 2014
Puppet
 
Puppet Camp Charlotte 2015: Manage Your Switches Like Servers
Puppet
 
Hardware accelerated switching with Linux @ SWLUG Talks May 2014
Nat Morris
 
ONIE: Open Network Install Environment @ OSDC 2014 Netways, Berlin
Nat Morris
 
Manage your switches like servers
Cumulus Networks
 
Ifupdown2: Network Interface Manager
Cumulus Networks
 
ONIE LinuxCon 2015
Curt Brune
 
Automating Networking! Do I Have to Start at Ground Zero?
Puppet
 
NFD9 - Matt Peterson, Data Center Operations
Cumulus Networks
 
OSDC 2014 ONIE by Nat Morris
Cumulus Networks
 
Cumulus Networks & Puppet Labs webinar
Cumulus Networks
 
OSDC 2014: Nat Morris - Open Network Install Environment
NETWAYS
 
Unattended Deployment with Zero Touch Provisioning (ZTP)
Cumulus Networks
 
ONIE / Cumulus Networks Webinar
Cumulus Networks
 
Webinar-Linux Networking is Awesome
Cumulus Networks
 
TechWiseTV Workshop: Open NX-OS and Devops with Puppet Labs
Robb Boyd
 
Cumulus networks conversion guide
Scott Suehle
 
Linux networking is Awesome!
Cumulus Networks
 
Linux Services and Networking, Systemd vs Cron.pdf
cowepep906
 
NFD9 - David Sinn, Real World Examples
Cumulus Networks
 
Ad

More from Cumulus Networks (20)

PPTX
Building a Layer 3 network with Cumulus Linux
Cumulus Networks
 
PDF
Operationalizing EVPN in the Data Center: Part 2
Cumulus Networks
 
PDF
Demystifying EVPN in the data center: Part 1 in 2 episode series
Cumulus Networks
 
PPTX
Best practices for network troubleshooting
Cumulus Networks
 
PDF
NetDevOps 202: Life After Configuration
Cumulus Networks
 
PPTX
Cumulus Networks: Automating Network Configuration
Cumulus Networks
 
PDF
How deep is your buffer – Demystifying buffers and application performance
Cumulus Networks
 
PPTX
Demystifying Networking: Data Center Networking Trends 2017
Cumulus Networks
 
PPTX
Building Scalable Data Center Networks
Cumulus Networks
 
PPTX
Network Architecture for Containers
Cumulus Networks
 
PPTX
Webinar: Network Automation [Tips & Tricks]
Cumulus Networks
 
PPTX
July NYC Open Networking Meeup
Cumulus Networks
 
PPTX
Demystifying Networking Webinar Series- Routing on the Host
Cumulus Networks
 
PPTX
Operationalizing VRF in the Data Center
Cumulus Networks
 
PPTX
Microservices Network Architecture 101
Cumulus Networks
 
PDF
Webinar- Tea for the Tillerman
Cumulus Networks
 
PDF
Dreamhost deploying dreamcompute at scale
Cumulus Networks
 
PDF
Operationalizing BGP in the SDDC
Cumulus Networks
 
PDF
Cumulus Linux 2.5.5 What's New
Cumulus Networks
 
PDF
Cumulus Linux 2.5.4
Cumulus Networks
 
Building a Layer 3 network with Cumulus Linux
Cumulus Networks
 
Operationalizing EVPN in the Data Center: Part 2
Cumulus Networks
 
Demystifying EVPN in the data center: Part 1 in 2 episode series
Cumulus Networks
 
Best practices for network troubleshooting
Cumulus Networks
 
NetDevOps 202: Life After Configuration
Cumulus Networks
 
Cumulus Networks: Automating Network Configuration
Cumulus Networks
 
How deep is your buffer – Demystifying buffers and application performance
Cumulus Networks
 
Demystifying Networking: Data Center Networking Trends 2017
Cumulus Networks
 
Building Scalable Data Center Networks
Cumulus Networks
 
Network Architecture for Containers
Cumulus Networks
 
Webinar: Network Automation [Tips & Tricks]
Cumulus Networks
 
July NYC Open Networking Meeup
Cumulus Networks
 
Demystifying Networking Webinar Series- Routing on the Host
Cumulus Networks
 
Operationalizing VRF in the Data Center
Cumulus Networks
 
Microservices Network Architecture 101
Cumulus Networks
 
Webinar- Tea for the Tillerman
Cumulus Networks
 
Dreamhost deploying dreamcompute at scale
Cumulus Networks
 
Operationalizing BGP in the SDDC
Cumulus Networks
 
Cumulus Linux 2.5.5 What's New
Cumulus Networks
 
Cumulus Linux 2.5.4
Cumulus Networks
 

Recently uploaded (20)

PDF
A Strategic Analysis of the MVNO Wave in Emerging Markets.pdf
IPLOOK Networks
 
PPTX
New ThousandEyes Product Innovations: Cisco Live June 2025
ThousandEyes
 
PPTX
Introduction to Flutter by Ayush Desai.pptx
ayushdesai204
 
PDF
Using Anchore and DefectDojo to Stand Up Your DevSecOps Function
Anchore
 
PDF
Peak of Data & AI Encore - Real-Time Insights & Scalable Editing with ArcGIS
Safe Software
 
PDF
Unlocking the Future- AI Agents Meet Oracle Database 23ai - AIOUG Yatra 2025.pdf
Sandesh Rao
 
PDF
Brief History of Internet - Early Days of Internet
sutharharshit158
 
PPTX
Applied-Statistics-Mastering-Data-Driven-Decisions.pptx
parmaryashparmaryash
 
PDF
Make GenAI investments go further with the Dell AI Factory
Principled Technologies
 
PDF
Research-Fundamentals-and-Topic-Development.pdf
ayesha butalia
 
PPTX
Simple and concise overview about Quantum computing..pptx
mughal641
 
PDF
Accelerating Oracle Database 23ai Troubleshooting with Oracle AHF Fleet Insig...
Sandesh Rao
 
PDF
NewMind AI Weekly Chronicles - July'25 - Week IV
NewMind AI
 
PPTX
AI in Daily Life: How Artificial Intelligence Helps Us Every Day
vanshrpatil7
 
PDF
GDG Cloud Munich - Intro - Luiz Carneiro - #BuildWithAI - July - Abdel.pdf
Luiz Carneiro
 
PDF
Trying to figure out MCP by actually building an app from scratch with open s...
Julien SIMON
 
PDF
Doc9.....................................
SofiaCollazos
 
PDF
Data_Analytics_vs_Data_Science_vs_BI_by_CA_Suvidha_Chaplot.pdf
CA Suvidha Chaplot
 
PPTX
cloud computing vai.pptx for the project
vaibhavdobariyal79
 
PDF
Orbitly Pitch Deck|A Mission-Driven Platform for Side Project Collaboration (...
zz41354899
 
A Strategic Analysis of the MVNO Wave in Emerging Markets.pdf
IPLOOK Networks
 
New ThousandEyes Product Innovations: Cisco Live June 2025
ThousandEyes
 
Introduction to Flutter by Ayush Desai.pptx
ayushdesai204
 
Using Anchore and DefectDojo to Stand Up Your DevSecOps Function
Anchore
 
Peak of Data & AI Encore - Real-Time Insights & Scalable Editing with ArcGIS
Safe Software
 
Unlocking the Future- AI Agents Meet Oracle Database 23ai - AIOUG Yatra 2025.pdf
Sandesh Rao
 
Brief History of Internet - Early Days of Internet
sutharharshit158
 
Applied-Statistics-Mastering-Data-Driven-Decisions.pptx
parmaryashparmaryash
 
Make GenAI investments go further with the Dell AI Factory
Principled Technologies
 
Research-Fundamentals-and-Topic-Development.pdf
ayesha butalia
 
Simple and concise overview about Quantum computing..pptx
mughal641
 
Accelerating Oracle Database 23ai Troubleshooting with Oracle AHF Fleet Insig...
Sandesh Rao
 
NewMind AI Weekly Chronicles - July'25 - Week IV
NewMind AI
 
AI in Daily Life: How Artificial Intelligence Helps Us Every Day
vanshrpatil7
 
GDG Cloud Munich - Intro - Luiz Carneiro - #BuildWithAI - July - Abdel.pdf
Luiz Carneiro
 
Trying to figure out MCP by actually building an app from scratch with open s...
Julien SIMON
 
Doc9.....................................
SofiaCollazos
 
Data_Analytics_vs_Data_Science_vs_BI_by_CA_Suvidha_Chaplot.pdf
CA Suvidha Chaplot
 
cloud computing vai.pptx for the project
vaibhavdobariyal79
 
Orbitly Pitch Deck|A Mission-Driven Platform for Side Project Collaboration (...
zz41354899
 

Switch as a Server - PuppetConf 2014 - Leslie Carr

  • 1. v Switch as a Server Leslie Carr
  • 2. Who is Leslie? § Operations Engineer § Google § Craigslist § Twitter § Wikimedia Foundation (Wikipedia)
  • 3. Who is Leslie? § Cumulus Networks®
  • 4. What is Cumulus Linux? § Cumulus® Linux® § Debian based distribution for Network switches Cumulus Philosophy § Manage your network switch as a server § Use existing linux tools to configure network switches § Current release — Based on Debian wheezy
  • 5. Cumulus® Linux® Hardware Compatibility List cumulusnetworks.com 5
  • 6. v Installation and Configuration
  • 7. Traditional Network Gear Process § Comes preinstalled with (old) software § Telnet or serial into box § TFTP new image § Enable SSH (sometimes with passwords!) § Copy/paste configuration § Automation usually restricted to Perl, TCL, and expect scripts
  • 8. Normal Server Installation § Reboot and bios with PXE automatically catches § TFTP boot image § New image pulled over via normal means (usually webserver, sometimes TFTP) § Pre/post installation scripts runs § Automation software manages configuration and administration
  • 9. Network OS installer discovery and execution § Like a pre-installed BIOS, PXE, and kickstarter in one § Implemented through Linux kernel with BusyBox Donated to the Open Compute Project (OCP) http://www.onie.org ONIE
  • 10. Cumulus Linux OS Installation with ONIE § Look for installer (“discover”) § Locally, e.g. USB if available § Over the network on eth0 • DHCP, IPv6 neighbor, TFTP § Search for file name and execute § onie-­‐installer-­‐* cumulusnetworks.com 10 1 2 Cumulus Linux OS image
  • 11. During the DHCP process over eth0 (management interface), Cumulus Linux will request DHCP option 239. This option is used to specify the custom provisioning script. It will also send the following headers: Header Value Example -­‐-­‐-­‐-­‐-­‐-­‐ -­‐-­‐-­‐-­‐-­‐ -­‐-­‐-­‐-­‐-­‐-­‐-­‐ User-­‐Agent CumulusLinux-­‐AutoProvision/0.4 CUMULUS-­‐ARCH CPU architecture powerpc CUMULUS-­‐BUILD 1.5.1-­‐5c6829a-­‐201309251712-­‐final CUMULUS-­‐LICENSE-­‐INSTALLED Either 0 or 1 1 CUMULUS-­‐MANUFACTURER dni CUMULUS-­‐PRODUCTNAME et-­‐7448bf CUMULUS-­‐SERIAL XYZ123004 CUMULUS-­‐VERSION 1.5.1 CUMULUS-­‐PROV-­‐COUNT 0 CUMULUS-­‐PROV-­‐MAX 32 ZTP
  • 12. ZTP Execution § Script must contain CUMULUS-­‐AUTOPROVISIONING Can be in the following languages : § Perl § Python § Ruby § Shell
  • 13. ZTP Example with Puppet 1 #!/bin/bash 2 3 function error() { 4 echo -­‐e "e[0;33mERROR: Provisioning failed running $BASH_COMMAND at line $BASH_LINENO of $(basename $0) e[0m" >&2 5 exit 1 6 } 7 trap error ERR 8 # Allow Cumulus testing repo 9 sed -­‐i /etc/apt/sources.list -­‐e 's/^#s* (deb.*testing.*)$/1/g' 10 11 # Upgrade and install Puppet 12 apt-­‐get update -­‐y 13 apt-­‐get upgrade -­‐y 14 apt-­‐get install puppet -­‐y 15 16 echo "Configuring puppet" | wall -­‐n 17 sed -­‐i /etc/default/puppet -­‐e 's/ START=no/START=yes/' 18 19 service puppet restart 20 21 # CUMULUS-­‐AUTOPROVISIONING 22 23 exit 0
  • 14. Comparison Similar to installing a server OS using PXE app app app Server OS BIOS and PXE bare metal server app app app Network OS Boot Loader and ONIE bare metal switch ONIE looks for and installs network OS image boot into Network OS boot into Boot Loader and ONIE Boot Loader and ONIE
  • 15. Video
  • 16. § Because Debian based, we can do everything via puppet § users § interface configuration § routing software (Quagga) configuration Puppet
  • 18. Make Life Even Better How can we make your life better?
  • 19. Interim Puppet Server! Warning - small hard drive and limited processing power -- not recommended for long term Scenario - installing new rack with limited connectivity * make switch puppetmaster
  • 20. Example Topology leaf 1 leaf 2 swp1 - 4 swp1 - 4 Puppetmaster
  • 21. Video
  • 23. Existing Network Interface Managers § Optimized for desktop and hypervisor environments § Complexity increases with interface configuration scale § Burden of network interface configuration dependency ordering is on the user § Lack of support for incremental changes to network interfaces: minimal disruption § Lack of tools to query and validate running interface configuration
  • 24. Linux Networking § Switch networking characteristics: § Large number of interfaces § Switch ports, bridges, bonds, vlans § Large number of interface attributes § Addresses, bridge stp, mstp and igmp attributes § Mostly static configuration
  • 25. ifupdown § Benefits § Pluggable architecture § Uses native Linux tools, enabling faster development § Good user documentation, well known tool § Challenges § No knowledge of interface configuration dependency (burden on the user) § Large scale configuration results in large files or too many files § No support for incremental configurations § No support to query/validate running interface configuration § literate program § Bugs
  • 26. ifupdown2 § New implementation of ifupdown in Python § Backward compatible with ifupdown interfaces format and commands § Continues to use existing Linux native tools to configure network interfaces. § Large number of interface attributes § Pluggable architecture add-on python modules for interface configuration § Meets some shortcomings seen with existing network interface managers on network switches § ifreload acts like HUP instead of restart
  • 27. ifupdown2 compare cli? ifupdown auto swp19 iface swp19 inet manual up link set $IFACE up down link set $IFACE down pre-­‐up /sbin/ethtool -­‐s $IFACE speed 1000 auto swp19.100 iface swp19.100 inet manual up link set $IFACE up down link set $IFACE down auto vlan100 iface vlan100 inet manual bridge_ports swp19.100 mstpctl_stp on ifupdown2 auto swp19 iface swp19 link-­‐speed 1000 auto vlan100 iface vlan100 bridge-­‐ports swp19.100 bridge-­‐stp on
  • 28. Network Interface Dependency ▪ Handles network interface dependency using dependency graphs ▪ Uses topological sort to order network interface configurations ▪ Provides options and tools to query and execute interface configuration in dependency order ▪ Built-in devices support ifupdown2 implicitly recognizes vlan and physical interfaces that appear as dependents and does the required minimal configuration to get them up: No need to specify `iface swp1.1000` in the example cumulusnetworks.com
  • 29. ifupdown2 - Mako Templates ## Note that the "range" ends with '4' ## But will iterate only from 1 to 3 ## See Python range() for more details % for i in range(1, 4): auto swp${i} iface swp${i} % endfor <%def name="interface_defaults()"> mtu 9000 link-­‐speed 10000 link-­‐duplex full link-­‐autoneg off </%def> % for i in range(3,7): auto swp${i} iface swp${i} ${interface_defaults()} % endfor auto default_bridge iface default_bridge bridge_ports glob swp3-­‐6 bridge-­‐stp on
  • 30. Find out more! § Ifupdown2 § https://github.com/CumulusNetworks/ifupdown2 § PTM § https://github.com/CumulusNetworks/ptm Example Code § https://github.com/LeslieCarr/puppet-presentation Cumulus Open Source § http://oss.cumulusnetworks.com Twitter § @lesliegeek
  • 31. Bringing the Linux Revolution to Networking § Thank You! © 2014 Cumulus Networks. Cumulus Networks, the Cumulus Networks Logo, and Cumulus Linux are trademarks or registered trademarks of Cumulus Networks, Inc. or its affiliates in the U.S. and other countries. Other names may be trademarks of their respective owners. The registered trademark Linux® is used pursuant to a sublicense from LMI, the exclusive licensee of Linus Torvalds, owner of the mark on a world-wide basis. cumulusnetworks.com