SlideShare a Scribd company logo
1
Jul 12, 2017
Dinesh G Dutt | Cumulus Networks
Life After Configuration
Network DevOps 202
2Cumulus Networks
Disclaimers
• Examples shown, software tools used, demos displayed will
be due to my own experience and familiarity
• Modern data center focus
▪ Data comes from talking with network operators
• Not focused on public cloud deployments
• Not focused on security/compliance
3Cumulus Network
Because you want to build Scalable,
Reliable, Predictable, Easy to Operate
Data Center Networks
Why Should I Care ?
4Cumulus Network
The Story So Far
5Cumulus Networks
Applications Evolved...
Mainframe CloudClient-Server
Simple applications on
complex infrastructure
Complex applications
on generic
infrastructure
Complex applications
on complex
infrastructure
6Cumulus Networks
And So Too Did Networks...
L2
L3
SPINE
LEAF
L3
7Cumulus Networks
And So Too Did Networks...
L2
L3
SPINE
LEAF
L3
8Cumulus Networks
And The Way You Built These Networks...
9Cumulus Networks
But Still A Ways To Go In Changing How We Operate...
10Cumulus Networks
Network Automation is Hard
S1
S4
SPINE
LEAF L1 L2 L16
S1 S2 S4S3
10.1.1.1
10.1.1.0
10.1.4.33
10.1.4.32
• Scale: Many things to configure
• Every interface is assigned an IP
address
• Each end of the link SHOULD belong to
the same subnet
• Information is duplicated
• Matching data across nodes is hard to
do without some programming
11Cumulus Networks
So We Introduced BGP Unnumbered
12Cumulus Networks
Savings in IP Address Utilization
Spine Leaf Total
Unnumbered 4 16 20
Traditional BGP 4+ 4*16= 68 16+ 16*4= 80 148
Spine Leaf Total
Unnumbered 16 96 112
Traditional BGP 16 + 16*96 = 1552 96 + 96*16 = 1632 3184
Case 1
Case 2
13Cumulus Networks
Savings in Ansible Playbook Variables with BGP Unnumbered
Spine Leaf Total
BGP
Unnumbered
1 + 1 (loopback subnet + spine ASN) 1 (Leaf ASN base, same loopback subnet)
3
Traditional
BGP
4+(4*16)+1 = 69
(Router IDs +
Total switches*TOR IPv4 +
ASN)
16+(16*4) +16 = 96
(Router IDs +
Total switches*uplink IPv4 +
ASN)
165
Spine Leaf Total
BGP
Unnumbered
1 + 1 (loopback subnet + spine ASN) 1 (Leaf ASN base, same loopback subnet)
3
Traditional
BGP
16+(16*96)+1 = 1552
(Router IDs +
Total switches*TOR IPv4 +
ASN)
96+(96*16) +96 = 1728
(Router IDs +
Total switches*uplink IPv4 +
ASN)
3280
Case 1
Case 2
14Cumulus Networks
So What’s Left ?
Everything after the initial configuration….
15Cumulus Networks
Avoiding the Pitfalls of Automation...
Validating the automation
playbooks
Testing changes before
deploying
16Cumulus Networks
Making Changes Post Initial Deployment With Confidence
17Cumulus Networks
Troubleshooting Networks
18Cumulus Networks
And What About Just Plain Finding Information...
Where is a route
originating from ?
What does the mac
address look like
across my fabric ?
What version is my
router running ?
19Cumulus Networks
This Three-Part
Webinar Addresses
These Questions
Part 1
The Story So Far
Identifying What’s Left
Codifying Validation
Easing Finding Information
Part 2
Troubleshooting
Part 3
Deep Dive Into the Tools - Part 2
20
Validate Configuration
21Cumulus Networks
Why Validate ?
• With DevOps, if automation is code, validation is testing/QA.
• Validating after changes are applied avoids having to
troubleshoot a problem later
• Requires the operator to know the desired state to check
against
22
Why Validation is Hard
• Ansible is not a programming language
▪ Designed more as a configuration
automation tool
• Validating state across the network can
be hard, especially if needing to correlate
multiple pieces
23
Validating BGP
Config
- name: Get bgp summary
command: vtysh -c 'sh ip bgp summary json'
register: cmd_out
become: true
- name: Get the peer count
set_fact:
peer_count: "{{ ((cmd_out.stdout|from_json).totalPeers) }}"
- name: Get the peer list
set_fact:
bgp_peers: "{{ (cmd_out.stdout|from_json).peers }}“
- name: Validate peer count matches the expected number of leaves
assert: { that: '(peer_count|int) == num_leaves' }
when: "{{ 'spine' in group_names }}"
- name: Validate peer count matches the expected number of spines
assert: { that: '(peer_count|int) == num_spines' }
when: "{{ 'leaf' in group_names }}"
- name: Verify all BGP sessions are in established state
assert: { that: 'bgp_peers[item]["state"] == "Established"' }
with_items: "{{ bgp_peers }}"
24Cumulus Networks
But...
This is very elementary and doing more complicated
validation requires programming
25Cumulus Networks
Validating Configuration, Take Two
• NetQ is a fresh-off-the-presses product from Cumulus
Networks
• Provides constructs to simplify validation:
▪ Built for automation suites such as Ansible/Puppet/Chef etc.
▪ Also works well for manual workflows
26Cumulus Networks
- name: Get bgp summary
command: vtysh -c 'sh ip bgp summary json'
register: cmd_out
become: true
- name: Get the peer count
set_fact:
peer_count: "{{ ((cmd_out.stdout|from_json).totalPeers) }}"
- name: Get the peer list
set_fact:
bgp_peers: "{{ (cmd_out.stdout|from_json).peers }}“
- name: Validate peer count matches the expected number of leaves
assert: { that: '(peer_count|int) == num_leaves' }
when: "{{ 'spine' in group_names }}"
- name: Validate peer count matches the expected number of spines
assert: { that: '(peer_count|int) == num_spines' }
when: "{{ 'leaf' in group_names }}"
- name: Verify all BGP sessions are in established state
assert: { that: 'bgp_peers[item]["state"] == "Established"' }
with_items: "{{ bgp_peers }}"
Comparing Validation with NetQ
And NetQ validates:
● More than what the playbook
does
● Works across more complex
topologies and configuration
● Can live in the past as
comfortably as the present
27Cumulus Networks
Validating CLAG
---
- hosts: 'leaf*'
vars_files:
- properties.yml
gather_facts: false
tasks:
- name: Get clagctl output
command: clagctl -j
register: cmd_out
- name: Get the status
set_fact:
clag_status: "{{ (cmd_out.stdout|from_json).status }}"
- name: Get the Individual Bond status
set_fact:
clag_ifs: "{{ (cmd_out.stdout|from_json).clagIntfs }}"
- name: Verify CLAG Peer is up and alive
assert: { that: 'clag_status["peerAlive"] == true' }
- name: Verify all bonds are dual attached
assert: { that: 'clag_ifs[item]["status"] == "dual"' }
with_items: "{{ clag_ifs }}"
And NetQ validates so much more
than what the playbook does:
● Duplicate sysmac use
● Proper backup IP configuration
● ...
28
And What About When Validation Fails ?
29Cumulus Networks
NetQ Validation
Simplifying automating validation just like BGP and OSPF
unnumbered simplified automating configuration
30
Simplifying Searching For
Information
31Cumulus Networks
Sample Topology
32Cumulus Networks
NetQ Show
Run command anywhere, including not on any switch
Provide easy access to network information to non-networking
folks
Safe: Netq is read-only and doesn’t touch any switches to
provide information
33
Thank you!
Visit us at cumulusnetworks.com or follow us @cumulusnetworks or
slack.cumulusnetworks.com
© 2017 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.

More Related Content

What's hot (20)

PDF
NFD9 - Dinesh Dutt, Data Center Architectures
Cumulus Networks
 
PDF
Remote VPN
Netwax Lab
 
PDF
Cumulus Linux 2.5.5 What's New
Cumulus Networks
 
PPTX
Network Architecture for Containers
Cumulus Networks
 
PDF
debugging openstack neutron /w openvswitch
어형 이
 
PDF
SSL Web VPN
Netwax Lab
 
PDF
Linux Networking Explained
Thomas Graf
 
PPTX
MTU (maximum transmission unit) & MRU (maximum receive unit)
NetProtocol Xpert
 
DOC
Dmvpn with configuration example
3Anetwork com
 
PDF
Openstack Networking Internals - first part
lilliput12
 
PDF
2015 FOSDEM - OVS Stateful Services
Thomas Graf
 
PDF
Open stack advanced_part
lilliput12
 
PDF
Open VSwitch .. Use it for your day to day needs
rranjithrajaram
 
PDF
Understanding Open vSwitch
YongKi Kim
 
PPTX
Ipv6 deployment at the university of reading - Networkshop44
Jisc
 
PDF
Anycast all the things
Maximilan Wilhelm
 
PDF
Quic illustrated
Alexander Krizhanovsky
 
PDF
Configuring a gns3 ethernet nio cloud free ccna workbook
Dare Tintin
 
PDF
LF_OVS_17_OVS-DPDK: Embracing your NUMA nodes.
LF_OpenvSwitch
 
PDF
Ultra fast DDoS Detection with FastNetMon at Coloclue (AS 8283)
Pavel Odintsov
 
NFD9 - Dinesh Dutt, Data Center Architectures
Cumulus Networks
 
Remote VPN
Netwax Lab
 
Cumulus Linux 2.5.5 What's New
Cumulus Networks
 
Network Architecture for Containers
Cumulus Networks
 
debugging openstack neutron /w openvswitch
어형 이
 
SSL Web VPN
Netwax Lab
 
Linux Networking Explained
Thomas Graf
 
MTU (maximum transmission unit) & MRU (maximum receive unit)
NetProtocol Xpert
 
Dmvpn with configuration example
3Anetwork com
 
Openstack Networking Internals - first part
lilliput12
 
2015 FOSDEM - OVS Stateful Services
Thomas Graf
 
Open stack advanced_part
lilliput12
 
Open VSwitch .. Use it for your day to day needs
rranjithrajaram
 
Understanding Open vSwitch
YongKi Kim
 
Ipv6 deployment at the university of reading - Networkshop44
Jisc
 
Anycast all the things
Maximilan Wilhelm
 
Quic illustrated
Alexander Krizhanovsky
 
Configuring a gns3 ethernet nio cloud free ccna workbook
Dare Tintin
 
LF_OVS_17_OVS-DPDK: Embracing your NUMA nodes.
LF_OpenvSwitch
 
Ultra fast DDoS Detection with FastNetMon at Coloclue (AS 8283)
Pavel Odintsov
 

Similar to NetDevOps 202: Life After Configuration (20)

PPTX
Webinar: Agile Network Deployment
VasudhaSridharan
 
PDF
Operationalizing BGP in the SDDC
Cumulus Networks
 
PPTX
Cumulus Linux 2.5.3
Cumulus Networks
 
PDF
次世代データセンターを支えるウェブスケールネットワーク
Hiroyuki Onishi
 
PPTX
Best practices for network troubleshooting
Cumulus Networks
 
PDF
Automating the Network
Puppet
 
PPTX
What is NetDevOps? How? Leslie Carr PuppetConf 2015
Leslie Carr
 
PPTX
Big Data, Better Networks
Cumulus Networks
 
PPTX
Infrastructure as Code for Network
Damien Garros
 
PDF
Ansible & Cumulus Networks - Simplify Network Automation
Cumulus Networks
 
PDF
Big data, better networks
Cumulus Networks
 
PDF
Modern Data Center Network Architecture - The house that Clos built
Cumulus Networks
 
PDF
Configuration & Routing of Clos Networks
Cumulus Networks
 
PDF
How our Cloudy Mindsets Approached Physical Routers
Steffen Gebert
 
PDF
Puppet Camp Charlotte 2015: Manage Your Switches Like Servers
Puppet
 
PPTX
Network automation with Ansible and Python
Jisc
 
PDF
Enhancing Network and Runtime Security with Cilium and Tetragon by Raymond De...
ContainerDay Security 2023
 
PDF
Kick starting Network Automation
Walid Shaari
 
PDF
Cumulus Linux 2.5 Overview
Cumulus Networks
 
PDF
Demystifying EVPN in the data center: Part 1 in 2 episode series
Cumulus Networks
 
Webinar: Agile Network Deployment
VasudhaSridharan
 
Operationalizing BGP in the SDDC
Cumulus Networks
 
Cumulus Linux 2.5.3
Cumulus Networks
 
次世代データセンターを支えるウェブスケールネットワーク
Hiroyuki Onishi
 
Best practices for network troubleshooting
Cumulus Networks
 
Automating the Network
Puppet
 
What is NetDevOps? How? Leslie Carr PuppetConf 2015
Leslie Carr
 
Big Data, Better Networks
Cumulus Networks
 
Infrastructure as Code for Network
Damien Garros
 
Ansible & Cumulus Networks - Simplify Network Automation
Cumulus Networks
 
Big data, better networks
Cumulus Networks
 
Modern Data Center Network Architecture - The house that Clos built
Cumulus Networks
 
Configuration & Routing of Clos Networks
Cumulus Networks
 
How our Cloudy Mindsets Approached Physical Routers
Steffen Gebert
 
Puppet Camp Charlotte 2015: Manage Your Switches Like Servers
Puppet
 
Network automation with Ansible and Python
Jisc
 
Enhancing Network and Runtime Security with Cilium and Tetragon by Raymond De...
ContainerDay Security 2023
 
Kick starting Network Automation
Walid Shaari
 
Cumulus Linux 2.5 Overview
Cumulus Networks
 
Demystifying EVPN in the data center: Part 1 in 2 episode series
Cumulus Networks
 
Ad

More from Cumulus Networks (15)

PPTX
Building a Layer 3 network with Cumulus Linux
Cumulus Networks
 
PDF
Operationalizing EVPN in the Data Center: Part 2
Cumulus Networks
 
PPTX
Demystifying Networking: Data Center Networking Trends 2017
Cumulus Networks
 
PPTX
Operationalizing VRF in the Data Center
Cumulus Networks
 
PPTX
Microservices Network Architecture 101
Cumulus Networks
 
PPTX
Linux networking is Awesome!
Cumulus Networks
 
PPTX
Webinar-Linux Networking is Awesome
Cumulus Networks
 
PDF
Webinar- Tea for the Tillerman
Cumulus Networks
 
PDF
Dreamhost deploying dreamcompute at scale
Cumulus Networks
 
PDF
Manage your switches like servers
Cumulus Networks
 
PDF
Cumulus Linux 2.5.4
Cumulus Networks
 
PDF
Open Networking for Your OpenStack
Cumulus Networks
 
PDF
Mlag invisibile layer 2 redundancy
Cumulus Networks
 
PDF
Using linux to manage the entire rack
Cumulus Networks
 
PDF
Open Hardware for All - Webinar March 25, 2015
Cumulus Networks
 
Building a Layer 3 network with Cumulus Linux
Cumulus Networks
 
Operationalizing EVPN in the Data Center: Part 2
Cumulus Networks
 
Demystifying Networking: Data Center Networking Trends 2017
Cumulus Networks
 
Operationalizing VRF in the Data Center
Cumulus Networks
 
Microservices Network Architecture 101
Cumulus Networks
 
Linux networking is Awesome!
Cumulus Networks
 
Webinar-Linux Networking is Awesome
Cumulus Networks
 
Webinar- Tea for the Tillerman
Cumulus Networks
 
Dreamhost deploying dreamcompute at scale
Cumulus Networks
 
Manage your switches like servers
Cumulus Networks
 
Cumulus Linux 2.5.4
Cumulus Networks
 
Open Networking for Your OpenStack
Cumulus Networks
 
Mlag invisibile layer 2 redundancy
Cumulus Networks
 
Using linux to manage the entire rack
Cumulus Networks
 
Open Hardware for All - Webinar March 25, 2015
Cumulus Networks
 
Ad

Recently uploaded (20)

PPTX
Get Started with Maestro: Agent, Robot, and Human in Action – Session 5 of 5
klpathrudu
 
PDF
Download Canva Pro 2025 PC Crack Full Latest Version
bashirkhan333g
 
PDF
MiniTool Power Data Recovery 8.8 With Crack New Latest 2025
bashirkhan333g
 
PDF
MiniTool Partition Wizard Free Crack + Full Free Download 2025
bashirkhan333g
 
PDF
Ready Layer One: Intro to the Model Context Protocol
mmckenna1
 
PDF
UITP Summit Meep Pitch may 2025 MaaS Rebooted
campoamor1
 
PPTX
Smart Doctor Appointment Booking option in odoo.pptx
AxisTechnolabs
 
PPTX
Foundations of Marketo Engage - Powering Campaigns with Marketo Personalization
bbedford2
 
PDF
How to Hire AI Developers_ Step-by-Step Guide in 2025.pdf
DianApps Technologies
 
PPTX
Agentic Automation: Build & Deploy Your First UiPath Agent
klpathrudu
 
PDF
Best Web development company in india 2025
Greenusys
 
PPTX
Function & Procedure: Function Vs Procedure in PL/SQL
Shani Tiwari
 
PDF
Is Framer the Future of AI Powered No-Code Development?
Isla Pandora
 
PDF
Everything you need to know about pricing & licensing Microsoft 365 Copilot f...
Q-Advise
 
PDF
Salesforce Experience Cloud Consultant.pdf
VALiNTRY360
 
PDF
AOMEI Partition Assistant Crack 10.8.2 + WinPE Free Downlaod New Version 2025
bashirkhan333g
 
PDF
Simplify React app login with asgardeo-sdk
vaibhav289687
 
PDF
IObit Driver Booster Pro 12.4.0.585 Crack Free Download
henryc1122g
 
PPTX
BB FlashBack Pro 5.61.0.4843 With Crack Free Download
cracked shares
 
PDF
Top Agile Project Management Tools for Teams in 2025
Orangescrum
 
Get Started with Maestro: Agent, Robot, and Human in Action – Session 5 of 5
klpathrudu
 
Download Canva Pro 2025 PC Crack Full Latest Version
bashirkhan333g
 
MiniTool Power Data Recovery 8.8 With Crack New Latest 2025
bashirkhan333g
 
MiniTool Partition Wizard Free Crack + Full Free Download 2025
bashirkhan333g
 
Ready Layer One: Intro to the Model Context Protocol
mmckenna1
 
UITP Summit Meep Pitch may 2025 MaaS Rebooted
campoamor1
 
Smart Doctor Appointment Booking option in odoo.pptx
AxisTechnolabs
 
Foundations of Marketo Engage - Powering Campaigns with Marketo Personalization
bbedford2
 
How to Hire AI Developers_ Step-by-Step Guide in 2025.pdf
DianApps Technologies
 
Agentic Automation: Build & Deploy Your First UiPath Agent
klpathrudu
 
Best Web development company in india 2025
Greenusys
 
Function & Procedure: Function Vs Procedure in PL/SQL
Shani Tiwari
 
Is Framer the Future of AI Powered No-Code Development?
Isla Pandora
 
Everything you need to know about pricing & licensing Microsoft 365 Copilot f...
Q-Advise
 
Salesforce Experience Cloud Consultant.pdf
VALiNTRY360
 
AOMEI Partition Assistant Crack 10.8.2 + WinPE Free Downlaod New Version 2025
bashirkhan333g
 
Simplify React app login with asgardeo-sdk
vaibhav289687
 
IObit Driver Booster Pro 12.4.0.585 Crack Free Download
henryc1122g
 
BB FlashBack Pro 5.61.0.4843 With Crack Free Download
cracked shares
 
Top Agile Project Management Tools for Teams in 2025
Orangescrum
 

NetDevOps 202: Life After Configuration

  • 1. 1 Jul 12, 2017 Dinesh G Dutt | Cumulus Networks Life After Configuration Network DevOps 202
  • 2. 2Cumulus Networks Disclaimers • Examples shown, software tools used, demos displayed will be due to my own experience and familiarity • Modern data center focus ▪ Data comes from talking with network operators • Not focused on public cloud deployments • Not focused on security/compliance
  • 3. 3Cumulus Network Because you want to build Scalable, Reliable, Predictable, Easy to Operate Data Center Networks Why Should I Care ?
  • 5. 5Cumulus Networks Applications Evolved... Mainframe CloudClient-Server Simple applications on complex infrastructure Complex applications on generic infrastructure Complex applications on complex infrastructure
  • 6. 6Cumulus Networks And So Too Did Networks... L2 L3 SPINE LEAF L3
  • 7. 7Cumulus Networks And So Too Did Networks... L2 L3 SPINE LEAF L3
  • 8. 8Cumulus Networks And The Way You Built These Networks...
  • 9. 9Cumulus Networks But Still A Ways To Go In Changing How We Operate...
  • 10. 10Cumulus Networks Network Automation is Hard S1 S4 SPINE LEAF L1 L2 L16 S1 S2 S4S3 10.1.1.1 10.1.1.0 10.1.4.33 10.1.4.32 • Scale: Many things to configure • Every interface is assigned an IP address • Each end of the link SHOULD belong to the same subnet • Information is duplicated • Matching data across nodes is hard to do without some programming
  • 11. 11Cumulus Networks So We Introduced BGP Unnumbered
  • 12. 12Cumulus Networks Savings in IP Address Utilization Spine Leaf Total Unnumbered 4 16 20 Traditional BGP 4+ 4*16= 68 16+ 16*4= 80 148 Spine Leaf Total Unnumbered 16 96 112 Traditional BGP 16 + 16*96 = 1552 96 + 96*16 = 1632 3184 Case 1 Case 2
  • 13. 13Cumulus Networks Savings in Ansible Playbook Variables with BGP Unnumbered Spine Leaf Total BGP Unnumbered 1 + 1 (loopback subnet + spine ASN) 1 (Leaf ASN base, same loopback subnet) 3 Traditional BGP 4+(4*16)+1 = 69 (Router IDs + Total switches*TOR IPv4 + ASN) 16+(16*4) +16 = 96 (Router IDs + Total switches*uplink IPv4 + ASN) 165 Spine Leaf Total BGP Unnumbered 1 + 1 (loopback subnet + spine ASN) 1 (Leaf ASN base, same loopback subnet) 3 Traditional BGP 16+(16*96)+1 = 1552 (Router IDs + Total switches*TOR IPv4 + ASN) 96+(96*16) +96 = 1728 (Router IDs + Total switches*uplink IPv4 + ASN) 3280 Case 1 Case 2
  • 14. 14Cumulus Networks So What’s Left ? Everything after the initial configuration….
  • 15. 15Cumulus Networks Avoiding the Pitfalls of Automation... Validating the automation playbooks Testing changes before deploying
  • 16. 16Cumulus Networks Making Changes Post Initial Deployment With Confidence
  • 18. 18Cumulus Networks And What About Just Plain Finding Information... Where is a route originating from ? What does the mac address look like across my fabric ? What version is my router running ?
  • 19. 19Cumulus Networks This Three-Part Webinar Addresses These Questions Part 1 The Story So Far Identifying What’s Left Codifying Validation Easing Finding Information Part 2 Troubleshooting Part 3 Deep Dive Into the Tools - Part 2
  • 21. 21Cumulus Networks Why Validate ? • With DevOps, if automation is code, validation is testing/QA. • Validating after changes are applied avoids having to troubleshoot a problem later • Requires the operator to know the desired state to check against
  • 22. 22 Why Validation is Hard • Ansible is not a programming language ▪ Designed more as a configuration automation tool • Validating state across the network can be hard, especially if needing to correlate multiple pieces
  • 23. 23 Validating BGP Config - name: Get bgp summary command: vtysh -c 'sh ip bgp summary json' register: cmd_out become: true - name: Get the peer count set_fact: peer_count: "{{ ((cmd_out.stdout|from_json).totalPeers) }}" - name: Get the peer list set_fact: bgp_peers: "{{ (cmd_out.stdout|from_json).peers }}“ - name: Validate peer count matches the expected number of leaves assert: { that: '(peer_count|int) == num_leaves' } when: "{{ 'spine' in group_names }}" - name: Validate peer count matches the expected number of spines assert: { that: '(peer_count|int) == num_spines' } when: "{{ 'leaf' in group_names }}" - name: Verify all BGP sessions are in established state assert: { that: 'bgp_peers[item]["state"] == "Established"' } with_items: "{{ bgp_peers }}"
  • 24. 24Cumulus Networks But... This is very elementary and doing more complicated validation requires programming
  • 25. 25Cumulus Networks Validating Configuration, Take Two • NetQ is a fresh-off-the-presses product from Cumulus Networks • Provides constructs to simplify validation: ▪ Built for automation suites such as Ansible/Puppet/Chef etc. ▪ Also works well for manual workflows
  • 26. 26Cumulus Networks - name: Get bgp summary command: vtysh -c 'sh ip bgp summary json' register: cmd_out become: true - name: Get the peer count set_fact: peer_count: "{{ ((cmd_out.stdout|from_json).totalPeers) }}" - name: Get the peer list set_fact: bgp_peers: "{{ (cmd_out.stdout|from_json).peers }}“ - name: Validate peer count matches the expected number of leaves assert: { that: '(peer_count|int) == num_leaves' } when: "{{ 'spine' in group_names }}" - name: Validate peer count matches the expected number of spines assert: { that: '(peer_count|int) == num_spines' } when: "{{ 'leaf' in group_names }}" - name: Verify all BGP sessions are in established state assert: { that: 'bgp_peers[item]["state"] == "Established"' } with_items: "{{ bgp_peers }}" Comparing Validation with NetQ And NetQ validates: ● More than what the playbook does ● Works across more complex topologies and configuration ● Can live in the past as comfortably as the present
  • 27. 27Cumulus Networks Validating CLAG --- - hosts: 'leaf*' vars_files: - properties.yml gather_facts: false tasks: - name: Get clagctl output command: clagctl -j register: cmd_out - name: Get the status set_fact: clag_status: "{{ (cmd_out.stdout|from_json).status }}" - name: Get the Individual Bond status set_fact: clag_ifs: "{{ (cmd_out.stdout|from_json).clagIntfs }}" - name: Verify CLAG Peer is up and alive assert: { that: 'clag_status["peerAlive"] == true' } - name: Verify all bonds are dual attached assert: { that: 'clag_ifs[item]["status"] == "dual"' } with_items: "{{ clag_ifs }}" And NetQ validates so much more than what the playbook does: ● Duplicate sysmac use ● Proper backup IP configuration ● ...
  • 28. 28 And What About When Validation Fails ?
  • 29. 29Cumulus Networks NetQ Validation Simplifying automating validation just like BGP and OSPF unnumbered simplified automating configuration
  • 32. 32Cumulus Networks NetQ Show Run command anywhere, including not on any switch Provide easy access to network information to non-networking folks Safe: Netq is read-only and doesn’t touch any switches to provide information
  • 33. 33 Thank you! Visit us at cumulusnetworks.com or follow us @cumulusnetworks or slack.cumulusnetworks.com © 2017 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.