1
April 18, 2019
Cumulus Networks | Hiroyuki Onishi
LINUX OS DevOps
2
ü
ü
ü
ü
3
Cumulus Networks
Cumulus Networks Confidential
>4.0M
Cumulus Linux
1200+Cumulus Linux
• 200 9
• 126 Sequoia Capital,
Andreessen Horowitz
• 40
• Fortune Top50 19
Cumulus Linux
• 10
100
• ONIE FRR OCP OSS
Founder & CTO
JR Rivers
4
Open Networking
ü
Ø
ü
ü
ü
Ø :
ü
ü Open Source Software / LINUX
5
/
6
/
(L3)
L3 Fabric
L2 Fabric
L2)
IPCLOS
7
Cumulus Linux & Automation
8
§ Linux
§
§
§
§
9
Cumulus Linux Interface – Linux Bash
Cumulus Linux is Linux
Full Shell access
Wireshark
Docker
Python
9
10
Cumulus Linux Interface - CLI
Full Network CLI
Commit/Confirm
<Tab> Completion
<?> Support
Commit Rollback
Junos
10
11
Cumulus Linux Interface - Automation
Ansible/Puppet/Chef
Single point of management
Unify Compute+Network
Supports on-box agents
11
12Open Networking
Ansible: Open Networking Automate your way
cumulusnetworks.com
Cumulus Linux
Module
Cumulus Linux
Template
lineinfile
and/or
and/or
nagios
lldp
and/or
.
.
.
and/or
hundreds of modules
Non-Linux NOS
Proprietary
NOS Module
Python
NOS
API
Linux
13
Cumulus Configuration Overview
Layer 1 and 2
§ Debian/Ubuntu Interfaces File
/etc/network/interfaces
§ Manages IPs, VLANs, MTU
Layer 3
§ Routing Application FRR
/etc/frr/frr.conf
§ Manages BGP, OSPF, EVPN
Built-in full CLI
Tab Completion
Idempotent
Writes to Linux files
§ Easily mix and match modes
The Linux Way Cumulus Command Line (NCLU)
Automation Friendly
Human
Friendly
14
Jinja Templates
Jinja2 templating language
§ Not Ansible specific, originated in web development
Very powerful
§ But complex
Uses vars to build configurations
Ansible template module turns variables into files
Loops for even more power
15
leaf1:
bgp_asn: 65011
clos_interface:
- swp1
- swp2
loopback_ip: "10.1.1.11”
#
leaf2:
bgp_asn: 65012
clos_interface:
- swp1
- swp2
loopback_ip: "10.1.1.12”
#
… etc.
BGP unnumbered
(ipv6 link-local)
AS 65100
lo: 10.5.5.5/32
spine1 spine2
leaf1 leaf2 leaf3
AS 65001
lo: 10.1.1.1/32
AS 65002
lo: 10.2.2.2/32
AS 65003
lo: 10.3.3.3/32
16
Demo :
§ 2x Spine + 2x Leaf Clos
§ Leaf3, Leaf4
AS 65100
lo: 10.5.5.5/32
AS 65100
lo: 10.6.6.6/32
spine1 spine2
leaf1 leaf2
AS 65001
lo: 10.1.1.1/32
AS 65002
lo: 10.2.2.2/32
SSH
Ansible
eth0eth0
BGP unnumbered
(ipv6 link-local)
17
Demo :
BGP unnumbered
(ipv6 link-local)
AS 65100
lo: 10.5.5.5/32
AS 65100
lo: 10.6.6.6/32
spine1 spine2
leaf1 leaf2 leaf3 leaf4
AS 65001
lo: 10.1.1.1/32
AS 65002
lo: 10.2.2.2/32
AS 65003
lo: 10.3.3.3/32
AS 65004
lo: 10.4.4.4/32
§ 2 ONIE/ZTP
Network OS ( )
§
SSH
Ansible
eth0eth0
18
19
Cumulus in the Cloud
Web
Cumulus Networks Confidential
https://cumulusnetworks.com/products/cumulus-in-the-cloud/
20
Cumulus in the Cloud –
Cumulus Networks Confidential
21
Cumulus in the Cloud
Cumulus Networks Confidential
22
Cumulus in the Cloud
L3 CLOS
Cumulus Networks Confidential
23
Cumulus in the Cloud:
24
Cumulus VX
CumulusLinux
Cumulus Github
§
Cumulus Networks Confidential
25
Cumulus VX
Cumulus Networks Confidential
26
Cumulus Github
§ cldemo-vagrant or
§ cldemo-vagrant-onwindows
§ topology_converter
27
Vagrant
§
Code
§ Cumulus Topology
Converter topology.dot
Vagrantfile
Vagrantfile
hostname
Version
RAM
Network
Configuration
28
Host:port -- Host:port
Mac address
üInfrastructure as a Code
29
PLAN
CODE
BUILD
TEST
RELEASE
DEPLOY
OPERATE
MONITOR
DevOps
Development
Operation
ZTP
ONIE
NetQ
Cumulus®
Linux®
Network OS
30
DEMO
31
Prep Simu
Build
Provision
Test
Cleanup
CumulusLinux
Configuration
Change
Lint check
If Result == Good
Deploy
ü YAML
Syntax Check
ü
Ø Vagrant Install
Ø Libvirt/Qemu Install
Ø Plugin Install
ü
Ø Vagrant up
ü
Ø Ansible-playbook
ü
Ø NetQ Check
ü
Ø Vagrant destroy
If Result == Bad
NetQ
Commit
& Push
32
2
server02server01
leaf01 leaf02
51 51
spine01
1
VM-BVM-A
2
server02server01
leaf03 leaf04
51 51
spine02
1
52 52
3 4 3 4
52 52
eth2eth1 eth2eth1
VM-C VM-BVM-A VM-C VM-BVM-A VM-C VM-BVM-A VM-C
Overlay DevOps
VNI26
VNI13
VNI16
33
DEMO
34
Prototyping & Guidance
Implementation & Operationalized Assistance
Continuous Success
35
to
TCO
DC
Cumulus Networks
japan-sales@cumulusnetworks.com
Thank You!
Visit us at cumulusnetworks.com or follow us @cumulusnetworks
© 2018 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.

次世代データセンターを支えるウェブスケールネットワーク