SlideShare una empresa de Scribd logo
1 de 39
Descargar para leer sin conexión
Network Automation with Salt and
NAPALM (or how we control 100’s of PoPs around the world)
Mircea Ulinic
CloudFlare, London
RIPE 72 Copenhagen
May 2016
2
CloudFlare (a quick background)
● Once a website is part of the CloudFlare community, its web traffic is routed
through our global network of 80+ locations
● How big?
○ Four+ million zones/domains
○ Authoritative for ~40% of Alexa top 1 million
○ 43+ billion DNS queries/day
■ Second only to Verisign
● 80+ anycast locations globally
○ 40 countries (and growing)
● Origin CA
Our big network challenges
● Deploy new PoPs
● Human error factor
● Replace equipment
● Monitor
3
Automation framework requirements
● Very scalable
● Concurrency
● Easily configurable & customizable
● Config verification & enforcement
● Periodically collect statistics
● Native caching and drivers for useful tools
4
Available solutions (most used)
5
Opinions
6
Ryan D Lane
Jens Rantil
“The learning curve for Salt is higher and the intro docs are rough, but in the long-term Salt’s docs are
much better than Ansible’s, because they’re way more complete (which is also why they’re much worse
as intro docs).”
“To me, Ansible was a great introduction to automated server configuration and deployment. Moving
forward, the scalability, speed and architecture of Salt has it going for it. For cloud deployments I find
the Salt architecture to be a better fit. I would not hesitate to use Salt in the future.”
Salt: the “unwanted child” of network automation
7
https://opennxos.cisco.com/public/getting-started
https://forums.juniper.net/t5/Automation-Programmability/Automation-with-Chef-Puppet-and-Ansible/ba-p/261773
Why?
● Old references
● No feature for net devices as of yesterday
● Not well informed
● Not suitable for tiny VM networks
8
Salt at CloudFlare: used for years
Many thousands of servers already using Salt
Same tool for both servers and net devices
9
10
Salt
(what fits the best our needs)
Ansible
(most used in network automation)
● Long standing sessions
● 20 types of modules
● Customizable
● Many thousands of CloudFlare
servers
● Comes embedded with features and
tools
● Native config enforcement logic
● Real-time job
● Job scheduling
● Runner as a module
● REST API
● High Availability
● GPG encryption
● Pull from Git, SVN
● open/close session per module
● 1 type of module
● Customizable
● ?
● Need to install separate packages
(“roles”) that are not necessarily
dependent
● Real-time job (Tower: $$)
● Job Scheduling (Tower: $$)
● Runner as a class
● REST API (Ansible Tower: $$)
● HA (Tower > Enterprise edition: $$$$)
● Security (Tower: $$)
● Pull from Git, SVN (Tower, $$)
Salt module types (selection)
● Execution modules
● Grains
● States
● Runners
● Pillars
● Returners
11
Embedded execution modules (selection)
12https://docs.saltstack.com/en/develop/ref/modules/all/index.html
Embedded returners (selection)
13
https://docs.saltstack.com/en/develop/ref/returners/all/index.html
Easy to use: salt edge05.cph01 net.facts --return sms
Architecture
14
Problem: you
can’t install
minions on
network devices!
https://www.digitalocean.com/community/tutorials/an-introduction-to-saltstack-terminology-and-concepts
Proxy Minion
15
Solution:
proxy minions
They behave like minions, but
can talk to network devices
Proxy
Disadvantages
● One proxy minion process / device
=> dedicated server preferred
16
NAPALM
17
NAPALM
(Network Automation and Programmability Abstraction Layer with Multivendor support)
https://github.com/napalm-automation
Fast growing library
18
February 2016
http://napalm.readthedocs.io/en/latest/support/index.html#getters-support-matrix
19
Open source recipe: napalm-salt
20
NAPALM
https://github.com/napalm-automation/napalm-salt
NAPALM-Salt for Public use
● NAPALM integrated in Salt Carbon
● Execution Modules
○ NET
○ BGP
○ NTP
○ Probes
● States:
○ NTP, Probes
21
NAPALM-Salt (examples):
1. salt “edge*” net.traceroute 8.8.8.8
2. salt -G “os:junos” net.cli “show version”
3. salt -C “sw* and G@os:nxos” net.arp
4. salt -G “os:iosxr and version:5.3.3” net.mac
5. salt -G “model:MX480” probes.results
6. salt -I “type:router” ntp.set_peers 10.1.130.10
10.1.130.18 10.1.130.22
22
Targeting minions: https://docs.saltstack.com/en/latest/topics/targeting/index.html
Output example:
23
# salt --out=json edge05.cph01 net.arp
[
{
"interface": "ae2.100",
"ip": "10.0.0.1",
"mac": "00:0f:53:36:e4:50",
"age": 129.0
},
{
"interface": "xe-0/0/3.0",
"ip": "10.0.0.2",
"mac": "00:1d:70:83:40:c0",
"age": 1101.0
},
{
"interface": "xe-0/0/3.0",
"ip": "10.0.0.3",
"mac": "10:0e:7e:de:84:07",
"age": 1276.0
},
{
"interface": "xe-0/0/3.0",
"ip": "10.0.0.3",
"mac": "d4:6d:50:35:59:d1",
"age": 964.0
},
Abstracting configurations
protocols {
bgp {
group 4-PUBLIC-ANYCAST-PEERS {
neighbor 192.168.0.1 {
description "Amazon [WW HOSTING ANYCAST]";
family inet {
unicast {
prefix-limit {
maximum 500;
}
}
peer-as 16509;
}
}
}
router bgp 13335
neighbor 192.168.0.1
remote-as 16509
use neighbor-group 4-PUBLIC-ANYCAST-PEERS
description "Amazon [WW HOSTING ANYCAST]"
address-family ipv4 unicast
maximum-prefix 500
bgp.neighbor:
ip: 192.168.0.1
group: 4-PUBLIC-ANYCAST-PEERS
description: "Amazon [WW HOSTING ANYCAST]"
remote_as: 16509
prefix_limit: 500
Abstracted
Example
● Edge router with 1000 BGP peers
● Device is manufactured by VendorA
● Replaced by a device from VendorB
25
Most network engineers
26
Us
27
proxy:
driver: VendorA
proxytype: napalm
host: edge05.cph01
username: ripe
passwd: xxxx
proxy:
driver: VendorB
proxytype: napalm
host: edge05.cph01
username: ripe
passwd: xxxx
vi /etc/salt/pillar/edge05_cph01.sls
Maintain configuration updates
28
schedule:
ntp_config:
function: state.sls
args: router.ntp
returner: smtp
days: 1
bgp_config:
function: state.sls
args: router.bgp
hours: 2
probes_config:
function: state.sls
args: router.probes
days: 3
users_config:
function: state.sls
args: router.users
returner: hipchat
weeks: 1
ntp.peers:
- 10.1.130.22
- 10.1.130.18
- 10.1.128.10
- 10.1.131.10
- 10.1.132.10
- 10.2.52.10
- 10.2.48.10
- 10.2.55.10
- 10.2.50.10
- 10.2.56.10
Define NTP peers in the Pillar Schedule config enforcement checks
NTP state
output example
29
edge01.jnb01:
----------
ID: ntp_config
Function: netntp.managed
Result: True
Started: 09:50:41.228728
Duration: 16813.319 ms
Changes:
----------
peers:
----------
removed:
- 10.10.1.1
servers:
----------
added:
- 17.xxx.xx.253
- 40.xxx.xxx.7
removed:
- 83.xxx.xxx.118
- 92.xx.xxx.58
- 91.xx.xxx.42
Summary for edge01.jnb01
------------
Succeeded: 1 (changed=1)
Failed: 0
------------
Total states run: 1
Total run time: 16.813 s
What else can I do?
Examples:
30
Unique ASNs per geographic area
31
# salt-run bgp.asns_per_area
Canada : 96
Brazil : 167
Australia : 113
Peru : 4
USA : 410
Africa : 21
Asia : 362
Europe : 1004
North America : 421
South America : 183
Oceania : 162
Colombia : 5
Chile : 5
Argentina : 21
Execution time: 2.84680294991 s
#
Execution
module
Runner Pillars
Grains
State
Find stuff (using Salt mine)
32
# salt-run net.find core01.sjc01
Pattern "core01.sjc01" found in the description of the following interfaces
========================================================================================================================
| Device | Interface | Interface Description | UP | Enabled | Speed [Mbps] | MAC Address | IP Addresses |
========================================================================================================================
| sw01.sjc01 | ae0 | core01.sjc01 | True | True | 40000 | 78:fe:3d:ed:02:83 | |
------------------------------------------------------------------------------------------------------------------------
| sw01.sjc01 | xe-1/1/0 | ae0:core01.sjc01:Et3/2/3 | True | True | 10000 | 78:fe:3d:ed:02:83 | |
------------------------------------------------------------------------------------------------------------------------
| sw01.sjc01 | xe-1/1/1 | ae0:core01.sjc01:Et3/2/4 | True | True | 10000 | 78:fe:3d:ed:02:83 | |
------------------------------------------------------------------------------------------------------------------------
| sw01.sjc01 | xe-0/1/1 | ae0:core01.sjc01:Et3/2/2 | True | True | 10000 | 78:fe:3d:ed:02:83 | |
------------------------------------------------------------------------------------------------------------------------
# salt-run net.find 54:e0:32:7e:85:2d
Details for interface xe-4/0/5 on device edge01.sjc01
=====================================================================================================================
| Device | Interface | Interface Description | UP | Enabled | Speed [Mbps] | MAC Address | IP Addresses |
=====================================================================================================================
| edge01.sjc01 | xe-4/0/5 | | | True | 10000 | 54:e0:32:7e:85:2d | |
---------------------------------------------------------------------------------------------------------------------
# salt-run net.find 00:0f:53:36:e4:50
Found ARP entry on edge05.cph01: 10.0.0.1 <-> 00:0F:53:36:E4:50
BGP neighbors of some ASNs
33
# salt-run bgp.neighbors 15169 16509 32934 13414
BGP Neighbors for 15169, 16509, 32934, 13414:
=======================================================================================================================================
| Device |As Number | Neighbor Address | State|#Active/Received/Accepted/Damped | Policy In |
=======================================================================================================================================
| edge01.dub01 | 15169 | 200xxxxxxxxxxxxxxxxxxxxxxxxx | Established 27/48/48/0 | 6-PUBLIC-PEER-IN |
| edge01.dub01 | 16509 | 200xxxxxxxxxxxxxxxxxxxxxxxxx | Established 1/1/1/0 | 6-PUBLIC-PEER-IN |
| edge01.nrt01 | 13414 | 203xxxxxxxxxxxxxxxxxxxxxxxxx | Established 59/59/59/0 | 4-PUBLIC-PEER-IN |
| edge01.nrt01 | 13414 | 200xxxxxxxxxxxxxxxxxxxxxxxxx | Established 3/3/3/0 | 6-PUBLIC-PEER-IN |
| edge01.nrt01 | 16509 | 203xxxxxxxxxxxxxxxxxxxxxxxxx | Established 71/71/71/0 | 4-PUBLIC-PEER-IN |
| edge01.nrt01 | 16509 | 200xxxxxxxxxxxxxxxxxxxxxxxxx | Established 1/1/1/0 | 6-PUBLIC-PEER-IN |
| edge01.nrt01 | 32934 | 203xxxxxxxxxxxxxxxxxxxxxxxxx | Established 26/26/26/0 | 4-PUBLIC-PEER-IN |
| edge01.nrt01 | 32934 | 200xxxxxxxxxxxxxxxxxxxxxxxxx | Established 14/15/14/0 | 6-PUBLIC-PEER-IN |
| edge01.nrt01 | 15169 | 203xxxxxxxxxxxxxxxxxxxxxxxxx | Established 331/331/331/0 | 4-PUBLIC-PEER-IN |
| edge01.tpe01 | 15169 | 203xxxxxxxxxxxxxxxxxxxxxxxxx | Established 331/331/331/0 | 4-PUBLIC-PEER-IN |
| edge01.tpe01 | 15169 | 240xxxxxxxxxxxxxxxxxxxxxxxxx21 | Established 48/48/48/0 | 6-PUBLIC-PEER-IN |
| edge01.waw02 | 16509 | 195xxxxxxxxxxxxxxxxxxxxxxxxx | Established 5/5/5/0 | 4-PUBLIC-PEER-IN |
| edge01.waw02 | 15169 | 195xxxxxxxxxxxxxxxxxxxxxxxxx | Established 177/331/331/0 | 4-PUBLIC-PEER-IN |
| edge01.waw02 | 15169 | 200xxxxxxxxxxxxxxxxxxxxxxxxx | Established 22/48/48/0 | 6-PUBLIC-PEER-IN |
| edge01.waw02 | 32934 | 212xxxxxxxxxxxxxxxxxxxxxxxxx | Established 26/26/26/0 | 4-PUBLIC-PEER-IN |
| edge01.waw02 | 32934 | 200xxxxxxxxxxxxxxxxxxxxxxxxx | Established 14/14/14/0 | 6-PUBLIC-PEER-IN |
| edge01.lhr01 | 13414 | 195xxxxxxxxxxxxxxxxxxxxxxxxx | Established 59/59/59/0 | 4-PUBLIC-PEER-IN |
| edge01.lhr01 | 16509 | 200xxxxxxxxxxxxxxxxxxxxxxxxx | Established 0/1/0/0 | REJECT-ALL |
| edge01.gru01 | 32934 | 200xxxxxxxxxxxxxxxxxxxxxxxxx | Established 12/12/12/0 | 6-PUBLIC-PEER-IN |
Monitor your network
34
2071) "traceroute:edge01.sjc01-edge01.lhr01-Tata-4"
2072) "traceroute:edge01.iad02-edge01.sjc01-GTT-4"
2074) "traceroute:edge01.fra03-edge01.sea01-Cogent-4"
2075) "traceroute:edge01.yul01-edge01.lax01-Cogent-4"
2076) "traceroute:edge01.zrh01-edge01.fra03-GTT-4"
2077) "traceroute:edge01.mxp01-edge01.ams01-GTT-4"
2078) "traceroute:edge01.mia01-edge01.lhr01-GTT-4"
2079) "traceroute:edge01.msp01-edge01.scl01-Telefonica-4"
2080) "traceroute:edge01.fra03-edge01.mia01-Telia-4"
2081) "traceroute:edge01.lim01-edge01.scl01-Telefonica-4"
2082) "traceroute:edge01.arn01-edge01.mia01-GTT-4"
2083) "traceroute:edge01.prg01-edge01.lax01-GTT-4"
2084) "traceroute:edge01.osl01-edge01.lhr01-GTT-4"
# Redis details:
redis.host: localhost
redis.port: 6379
# Schedulers
schedule:
traceroute_runner:
function: traceroute.collect
hours: 2
Traceroute diff
35
Current:
----------------- ------------- ------------- ----------
time src dst probe loss
10:22:46 14-05-16 1.1.1.1 2.2.2.2 26
edge01.phx01 edge01.lax01
----------------- ------------- ------------- ----------
--- ------ ------ ------ ------------- ------------------------------------- --- --------------------------------------
hop rtt 1 rtt 2 rtt 3 ip host asn asn description
1 29.663 29.705 30.057 xx.xx.xx.xx be2929.ccr21.phx02 000 xxxxxxx
2 41.987 xx.xx.xx.xx be2932.ccr22.lax01 000 xxxxxxx
42.604 41.051 xx.xx.xx.xx be2931.ccr21.lax01 000 xxxxxxx
3 41.912 42.036 xx.xx.xx.xx be2179.ccr23.lax05 000 xxxxxxx
41.685 xx.xx.xx.xx be2180.ccr23.lax05 000 xxxxxxx
4 66.714 66.504 66.329 2.2.2.2 2.2.2.2 000 xxxxxxx
--- ------ ------ ------ ------------- ------------------------------------- --- --------------------------------------
Previous:
----------------- ------------- ------------- ----------
time src dst probe loss
08:32:15 14-05-16 1.1.1.1 2.2.2.2 0
----------------- ------------- ------------- ----------
--- ------ ------ ------ ------------- ------------------------------------- --- --------------------------------------
hop rtt 1 rtt 2 rtt 3 ip host asn asn description
1 29.71 xx.xx.xx.xx be2929.ccr21.phx02 000 xxxxxxx
30.569 30.092 xx.xx.xx.xx be2930.ccr22.phx02 000 xxxxxxx
2 41.453 43.002 xx.xx.xx.xx be2931.ccr21.lax01 000 xxxxxxx
41.272 xx.xx.xx.xx be2932.ccr22.lax01 000 xxxxxxx
3 43.856 xx.xx.xx.xx be2180.ccr23.lax05 000 xxxxxxx
42.465 41.741 xx.xx.xx.xx be2179.ccr23.lax05 000 xxxxxxx
4 41.433 42.812 41.479 2.2.2.2 2.2.2.2 000 xxxxxxx
--- ------ ------ ------ ------------- ------------------------------------- --- --------------------------------------
How can you use it?
# apt-get install salt-master (install guide)
# pip install napalm
Examples:
https://github.com/napalm-automation/napalm-salt
36
How can you contribute?
● NAPALM Automation:
https://github.com/napalm-automation
● SaltStack
https://github.com/saltstack/salt
37
Need help/advice?
Join https://networktocode.herokuapp.com/
rooms: #saltstack #napalm
By email:
● Mircea Ulinic: mircea@cloudflare.com
● Jerome Fleury: jf@cloudflare.com
38
Questions
39
By email:
● Mircea Ulinic: mircea@cloudflare.com
● Jerome Fleury: jf@cloudflare.com
?

Más contenido relacionado

La actualidad más candente

Extensible Messaging and Presence Protocol (XMPP)
Extensible Messaging and Presence Protocol (XMPP)Extensible Messaging and Presence Protocol (XMPP)
Extensible Messaging and Presence Protocol (XMPP)Sean Tsai
 
flowspec @ APF 2013
flowspec @ APF 2013flowspec @ APF 2013
flowspec @ APF 2013Tom Paseka
 
OpenStack DVR_What is DVR?
OpenStack DVR_What is DVR?OpenStack DVR_What is DVR?
OpenStack DVR_What is DVR?Yongyoon Shin
 
Network Test Automation 2015-04-23 #npstudy
Network Test Automation 2015-04-23 #npstudyNetwork Test Automation 2015-04-23 #npstudy
Network Test Automation 2015-04-23 #npstudyHiroshi Ota
 
Commication Framework in OpenStack
Commication Framework in OpenStackCommication Framework in OpenStack
Commication Framework in OpenStackSean Chang
 
(SDD419) Amazon EC2 Networking Deep Dive and Best Practices | AWS re:Invent 2014
(SDD419) Amazon EC2 Networking Deep Dive and Best Practices | AWS re:Invent 2014(SDD419) Amazon EC2 Networking Deep Dive and Best Practices | AWS re:Invent 2014
(SDD419) Amazon EC2 Networking Deep Dive and Best Practices | AWS re:Invent 2014Amazon Web Services
 
ONOS SDN-IP: Tutorial and Use Case for SDX
ONOS SDN-IP: Tutorial and Use Case for SDXONOS SDN-IP: Tutorial and Use Case for SDX
ONOS SDN-IP: Tutorial and Use Case for SDXAPNIC
 
(NET301) New Capabilities for Amazon Virtual Private Cloud
(NET301) New Capabilities for Amazon Virtual Private Cloud(NET301) New Capabilities for Amazon Virtual Private Cloud
(NET301) New Capabilities for Amazon Virtual Private CloudAmazon Web Services
 
Understanding Open vSwitch
Understanding Open vSwitch Understanding Open vSwitch
Understanding Open vSwitch YongKi Kim
 
Opensample: A Low-latency, Sampling-based Measurement Platform for Software D...
Opensample: A Low-latency, Sampling-based Measurement Platform for Software D...Opensample: A Low-latency, Sampling-based Measurement Platform for Software D...
Opensample: A Low-latency, Sampling-based Measurement Platform for Software D...Junho Suh
 
IxVM on CML
IxVM on CMLIxVM on CML
IxVM on CMLnpsg
 
2015.7.17 JANOG36 BGP Flowspec Interoperability Test @ Interop Tokyo 2015 Sho...
2015.7.17 JANOG36 BGP Flowspec Interoperability Test @ Interop Tokyo 2015 Sho...2015.7.17 JANOG36 BGP Flowspec Interoperability Test @ Interop Tokyo 2015 Sho...
2015.7.17 JANOG36 BGP Flowspec Interoperability Test @ Interop Tokyo 2015 Sho...Shuichi Ohkubo
 
Multihomed Linux router
Multihomed Linux routerMultihomed Linux router
Multihomed Linux routerMarian Marinov
 
Introduction to WAMP, a protocol enabling PUB/SUB and RPC over Websocket
Introduction to WAMP, a protocol enabling PUB/SUB and RPC over WebsocketIntroduction to WAMP, a protocol enabling PUB/SUB and RPC over Websocket
Introduction to WAMP, a protocol enabling PUB/SUB and RPC over Websocketsametmax
 
Introduction to Haproxy
Introduction to HaproxyIntroduction to Haproxy
Introduction to HaproxyShaopeng He
 
[2018.10.19] Andrew Kong - Tunnel without tunnel (Seminar at OpenStack Korea ...
[2018.10.19] Andrew Kong - Tunnel without tunnel (Seminar at OpenStack Korea ...[2018.10.19] Andrew Kong - Tunnel without tunnel (Seminar at OpenStack Korea ...
[2018.10.19] Andrew Kong - Tunnel without tunnel (Seminar at OpenStack Korea ...OpenStack Korea Community
 
Acus08 Advanced Load Balancing Apache2.2
Acus08 Advanced Load Balancing Apache2.2Acus08 Advanced Load Balancing Apache2.2
Acus08 Advanced Load Balancing Apache2.2Jim Jagielski
 
Defeating The Network Security Infrastructure V1.0
Defeating The Network Security Infrastructure  V1.0Defeating The Network Security Infrastructure  V1.0
Defeating The Network Security Infrastructure V1.0Philippe Bogaerts
 

La actualidad más candente (18)

Extensible Messaging and Presence Protocol (XMPP)
Extensible Messaging and Presence Protocol (XMPP)Extensible Messaging and Presence Protocol (XMPP)
Extensible Messaging and Presence Protocol (XMPP)
 
flowspec @ APF 2013
flowspec @ APF 2013flowspec @ APF 2013
flowspec @ APF 2013
 
OpenStack DVR_What is DVR?
OpenStack DVR_What is DVR?OpenStack DVR_What is DVR?
OpenStack DVR_What is DVR?
 
Network Test Automation 2015-04-23 #npstudy
Network Test Automation 2015-04-23 #npstudyNetwork Test Automation 2015-04-23 #npstudy
Network Test Automation 2015-04-23 #npstudy
 
Commication Framework in OpenStack
Commication Framework in OpenStackCommication Framework in OpenStack
Commication Framework in OpenStack
 
(SDD419) Amazon EC2 Networking Deep Dive and Best Practices | AWS re:Invent 2014
(SDD419) Amazon EC2 Networking Deep Dive and Best Practices | AWS re:Invent 2014(SDD419) Amazon EC2 Networking Deep Dive and Best Practices | AWS re:Invent 2014
(SDD419) Amazon EC2 Networking Deep Dive and Best Practices | AWS re:Invent 2014
 
ONOS SDN-IP: Tutorial and Use Case for SDX
ONOS SDN-IP: Tutorial and Use Case for SDXONOS SDN-IP: Tutorial and Use Case for SDX
ONOS SDN-IP: Tutorial and Use Case for SDX
 
(NET301) New Capabilities for Amazon Virtual Private Cloud
(NET301) New Capabilities for Amazon Virtual Private Cloud(NET301) New Capabilities for Amazon Virtual Private Cloud
(NET301) New Capabilities for Amazon Virtual Private Cloud
 
Understanding Open vSwitch
Understanding Open vSwitch Understanding Open vSwitch
Understanding Open vSwitch
 
Opensample: A Low-latency, Sampling-based Measurement Platform for Software D...
Opensample: A Low-latency, Sampling-based Measurement Platform for Software D...Opensample: A Low-latency, Sampling-based Measurement Platform for Software D...
Opensample: A Low-latency, Sampling-based Measurement Platform for Software D...
 
IxVM on CML
IxVM on CMLIxVM on CML
IxVM on CML
 
2015.7.17 JANOG36 BGP Flowspec Interoperability Test @ Interop Tokyo 2015 Sho...
2015.7.17 JANOG36 BGP Flowspec Interoperability Test @ Interop Tokyo 2015 Sho...2015.7.17 JANOG36 BGP Flowspec Interoperability Test @ Interop Tokyo 2015 Sho...
2015.7.17 JANOG36 BGP Flowspec Interoperability Test @ Interop Tokyo 2015 Sho...
 
Multihomed Linux router
Multihomed Linux routerMultihomed Linux router
Multihomed Linux router
 
Introduction to WAMP, a protocol enabling PUB/SUB and RPC over Websocket
Introduction to WAMP, a protocol enabling PUB/SUB and RPC over WebsocketIntroduction to WAMP, a protocol enabling PUB/SUB and RPC over Websocket
Introduction to WAMP, a protocol enabling PUB/SUB and RPC over Websocket
 
Introduction to Haproxy
Introduction to HaproxyIntroduction to Haproxy
Introduction to Haproxy
 
[2018.10.19] Andrew Kong - Tunnel without tunnel (Seminar at OpenStack Korea ...
[2018.10.19] Andrew Kong - Tunnel without tunnel (Seminar at OpenStack Korea ...[2018.10.19] Andrew Kong - Tunnel without tunnel (Seminar at OpenStack Korea ...
[2018.10.19] Andrew Kong - Tunnel without tunnel (Seminar at OpenStack Korea ...
 
Acus08 Advanced Load Balancing Apache2.2
Acus08 Advanced Load Balancing Apache2.2Acus08 Advanced Load Balancing Apache2.2
Acus08 Advanced Load Balancing Apache2.2
 
Defeating The Network Security Infrastructure V1.0
Defeating The Network Security Infrastructure  V1.0Defeating The Network Security Infrastructure  V1.0
Defeating The Network Security Infrastructure V1.0
 

Destacado

PuppetConf 2016: Why Network Automation Matters, and What You Can Do About It...
PuppetConf 2016: Why Network Automation Matters, and What You Can Do About It...PuppetConf 2016: Why Network Automation Matters, and What You Can Do About It...
PuppetConf 2016: Why Network Automation Matters, and What You Can Do About It...Puppet
 
Network Automation - Interconnection tools
Network Automation - Interconnection toolsNetwork Automation - Interconnection tools
Network Automation - Interconnection toolsAndy Davidson
 
Getting started with YANG
Getting started with YANGGetting started with YANG
Getting started with YANGCoreStack
 
The Rules of Network Automation - Interop/NYC 2014
The Rules of Network Automation - Interop/NYC 2014The Rules of Network Automation - Interop/NYC 2014
The Rules of Network Automation - Interop/NYC 2014Jeremy Schulman
 
Network Automation with Ansible
Network Automation with AnsibleNetwork Automation with Ansible
Network Automation with AnsibleAnas
 
Webinar: Network Automation [Tips & Tricks]
Webinar: Network Automation [Tips & Tricks]Webinar: Network Automation [Tips & Tricks]
Webinar: Network Automation [Tips & Tricks]Cumulus Networks
 
Network Automation at Shapeways
Network Automation at ShapewaysNetwork Automation at Shapeways
Network Automation at ShapewaysPuppet
 

Destacado (7)

PuppetConf 2016: Why Network Automation Matters, and What You Can Do About It...
PuppetConf 2016: Why Network Automation Matters, and What You Can Do About It...PuppetConf 2016: Why Network Automation Matters, and What You Can Do About It...
PuppetConf 2016: Why Network Automation Matters, and What You Can Do About It...
 
Network Automation - Interconnection tools
Network Automation - Interconnection toolsNetwork Automation - Interconnection tools
Network Automation - Interconnection tools
 
Getting started with YANG
Getting started with YANGGetting started with YANG
Getting started with YANG
 
The Rules of Network Automation - Interop/NYC 2014
The Rules of Network Automation - Interop/NYC 2014The Rules of Network Automation - Interop/NYC 2014
The Rules of Network Automation - Interop/NYC 2014
 
Network Automation with Ansible
Network Automation with AnsibleNetwork Automation with Ansible
Network Automation with Ansible
 
Webinar: Network Automation [Tips & Tricks]
Webinar: Network Automation [Tips & Tricks]Webinar: Network Automation [Tips & Tricks]
Webinar: Network Automation [Tips & Tricks]
 
Network Automation at Shapeways
Network Automation at ShapewaysNetwork Automation at Shapeways
Network Automation at Shapeways
 

Similar a Network Automation with Salt and NAPALM: Introuction

SolarWinds Scalability for the Enterprise
SolarWinds Scalability for the EnterpriseSolarWinds Scalability for the Enterprise
SolarWinds Scalability for the EnterpriseSolarWinds
 
murakumo Cloud Controller
murakumo Cloud Controllermurakumo Cloud Controller
murakumo Cloud ControllerShingo Kawano
 
StrongLoop Overview
StrongLoop OverviewStrongLoop Overview
StrongLoop OverviewShubhra Kar
 
The Real World - Plugging the Enterprise Into It (nodejs)
The Real World - Plugging  the Enterprise Into It (nodejs)The Real World - Plugging  the Enterprise Into It (nodejs)
The Real World - Plugging the Enterprise Into It (nodejs)Aman Kohli
 
Being HAPI! Reverse Proxying on Purpose
Being HAPI! Reverse Proxying on PurposeBeing HAPI! Reverse Proxying on Purpose
Being HAPI! Reverse Proxying on PurposeAman Kohli
 
Apache Pulsar with MQTT for Edge Computing - Pulsar Summit Asia 2021
Apache Pulsar with MQTT for Edge Computing - Pulsar Summit Asia 2021Apache Pulsar with MQTT for Edge Computing - Pulsar Summit Asia 2021
Apache Pulsar with MQTT for Edge Computing - Pulsar Summit Asia 2021StreamNative
 
Unified Stream Processing at Scale with Apache Samza - BDS2017
Unified Stream Processing at Scale with Apache Samza - BDS2017Unified Stream Processing at Scale with Apache Samza - BDS2017
Unified Stream Processing at Scale with Apache Samza - BDS2017Jacob Maes
 
Exploring the Final Frontier of Data Center Orchestration: Network Elements -...
Exploring the Final Frontier of Data Center Orchestration: Network Elements -...Exploring the Final Frontier of Data Center Orchestration: Network Elements -...
Exploring the Final Frontier of Data Center Orchestration: Network Elements -...Puppet
 
What is a Service Mesh and what can it do for your Microservices
What is a Service Mesh and what can it do for your MicroservicesWhat is a Service Mesh and what can it do for your Microservices
What is a Service Mesh and what can it do for your MicroservicesMatt Turner
 
Pulsar summit asia 2021 apache pulsar with mqtt for edge computing
Pulsar summit asia 2021   apache pulsar with mqtt for edge computingPulsar summit asia 2021   apache pulsar with mqtt for edge computing
Pulsar summit asia 2021 apache pulsar with mqtt for edge computingTimothy Spann
 
Strata Singapore: Gearpump Real time DAG-Processing with Akka at Scale
Strata Singapore: GearpumpReal time DAG-Processing with Akka at ScaleStrata Singapore: GearpumpReal time DAG-Processing with Akka at Scale
Strata Singapore: Gearpump Real time DAG-Processing with Akka at ScaleSean Zhong
 
Cassandra Tools and Distributed Administration (Jeffrey Berger, Knewton) | C*...
Cassandra Tools and Distributed Administration (Jeffrey Berger, Knewton) | C*...Cassandra Tools and Distributed Administration (Jeffrey Berger, Knewton) | C*...
Cassandra Tools and Distributed Administration (Jeffrey Berger, Knewton) | C*...DataStax
 
Cotopaxi - IoT testing toolkit (Black Hat Asia 2019 Arsenal)
Cotopaxi - IoT testing toolkit (Black Hat Asia 2019 Arsenal)Cotopaxi - IoT testing toolkit (Black Hat Asia 2019 Arsenal)
Cotopaxi - IoT testing toolkit (Black Hat Asia 2019 Arsenal)Jakub Botwicz
 
Zero Downtime JEE Architectures
Zero Downtime JEE ArchitecturesZero Downtime JEE Architectures
Zero Downtime JEE ArchitecturesAlexander Penev
 
Hpe service virtualization 3.8 what's new chicago adm
Hpe service virtualization 3.8 what's new chicago admHpe service virtualization 3.8 what's new chicago adm
Hpe service virtualization 3.8 what's new chicago admJeffrey Nunn
 
Smuggling Multi-Cloud Support into Cloud-native Applications using Elastic Co...
Smuggling Multi-Cloud Support into Cloud-native Applications using Elastic Co...Smuggling Multi-Cloud Support into Cloud-native Applications using Elastic Co...
Smuggling Multi-Cloud Support into Cloud-native Applications using Elastic Co...Nane Kratzke
 
Monitoring as Code: Getting to Monitoring-Driven Development - DEV314 - re:In...
Monitoring as Code: Getting to Monitoring-Driven Development - DEV314 - re:In...Monitoring as Code: Getting to Monitoring-Driven Development - DEV314 - re:In...
Monitoring as Code: Getting to Monitoring-Driven Development - DEV314 - re:In...Amazon Web Services
 
Docker Swarm secrets for creating great FIWARE platforms
Docker Swarm secrets for creating great FIWARE platformsDocker Swarm secrets for creating great FIWARE platforms
Docker Swarm secrets for creating great FIWARE platformsFederico Michele Facca
 

Similar a Network Automation with Salt and NAPALM: Introuction (20)

SolarWinds Scalability for the Enterprise
SolarWinds Scalability for the EnterpriseSolarWinds Scalability for the Enterprise
SolarWinds Scalability for the Enterprise
 
murakumo Cloud Controller
murakumo Cloud Controllermurakumo Cloud Controller
murakumo Cloud Controller
 
StrongLoop Overview
StrongLoop OverviewStrongLoop Overview
StrongLoop Overview
 
The Real World - Plugging the Enterprise Into It (nodejs)
The Real World - Plugging  the Enterprise Into It (nodejs)The Real World - Plugging  the Enterprise Into It (nodejs)
The Real World - Plugging the Enterprise Into It (nodejs)
 
Being HAPI! Reverse Proxying on Purpose
Being HAPI! Reverse Proxying on PurposeBeing HAPI! Reverse Proxying on Purpose
Being HAPI! Reverse Proxying on Purpose
 
Apache Pulsar with MQTT for Edge Computing - Pulsar Summit Asia 2021
Apache Pulsar with MQTT for Edge Computing - Pulsar Summit Asia 2021Apache Pulsar with MQTT for Edge Computing - Pulsar Summit Asia 2021
Apache Pulsar with MQTT for Edge Computing - Pulsar Summit Asia 2021
 
Unified Stream Processing at Scale with Apache Samza - BDS2017
Unified Stream Processing at Scale with Apache Samza - BDS2017Unified Stream Processing at Scale with Apache Samza - BDS2017
Unified Stream Processing at Scale with Apache Samza - BDS2017
 
Exploring the Final Frontier of Data Center Orchestration: Network Elements -...
Exploring the Final Frontier of Data Center Orchestration: Network Elements -...Exploring the Final Frontier of Data Center Orchestration: Network Elements -...
Exploring the Final Frontier of Data Center Orchestration: Network Elements -...
 
Our Methodology & Benefits
Our Methodology & BenefitsOur Methodology & Benefits
Our Methodology & Benefits
 
What is a Service Mesh and what can it do for your Microservices
What is a Service Mesh and what can it do for your MicroservicesWhat is a Service Mesh and what can it do for your Microservices
What is a Service Mesh and what can it do for your Microservices
 
Pulsar summit asia 2021 apache pulsar with mqtt for edge computing
Pulsar summit asia 2021   apache pulsar with mqtt for edge computingPulsar summit asia 2021   apache pulsar with mqtt for edge computing
Pulsar summit asia 2021 apache pulsar with mqtt for edge computing
 
Strata Singapore: Gearpump Real time DAG-Processing with Akka at Scale
Strata Singapore: GearpumpReal time DAG-Processing with Akka at ScaleStrata Singapore: GearpumpReal time DAG-Processing with Akka at Scale
Strata Singapore: Gearpump Real time DAG-Processing with Akka at Scale
 
Cassandra Tools and Distributed Administration (Jeffrey Berger, Knewton) | C*...
Cassandra Tools and Distributed Administration (Jeffrey Berger, Knewton) | C*...Cassandra Tools and Distributed Administration (Jeffrey Berger, Knewton) | C*...
Cassandra Tools and Distributed Administration (Jeffrey Berger, Knewton) | C*...
 
Cotopaxi - IoT testing toolkit (Black Hat Asia 2019 Arsenal)
Cotopaxi - IoT testing toolkit (Black Hat Asia 2019 Arsenal)Cotopaxi - IoT testing toolkit (Black Hat Asia 2019 Arsenal)
Cotopaxi - IoT testing toolkit (Black Hat Asia 2019 Arsenal)
 
Zero Downtime JEE Architectures
Zero Downtime JEE ArchitecturesZero Downtime JEE Architectures
Zero Downtime JEE Architectures
 
Hpe service virtualization 3.8 what's new chicago adm
Hpe service virtualization 3.8 what's new chicago admHpe service virtualization 3.8 what's new chicago adm
Hpe service virtualization 3.8 what's new chicago adm
 
Smuggling Multi-Cloud Support into Cloud-native Applications using Elastic Co...
Smuggling Multi-Cloud Support into Cloud-native Applications using Elastic Co...Smuggling Multi-Cloud Support into Cloud-native Applications using Elastic Co...
Smuggling Multi-Cloud Support into Cloud-native Applications using Elastic Co...
 
Monitoring as Code: Getting to Monitoring-Driven Development - DEV314 - re:In...
Monitoring as Code: Getting to Monitoring-Driven Development - DEV314 - re:In...Monitoring as Code: Getting to Monitoring-Driven Development - DEV314 - re:In...
Monitoring as Code: Getting to Monitoring-Driven Development - DEV314 - re:In...
 
Docker Monitoring Webinar
Docker Monitoring  WebinarDocker Monitoring  Webinar
Docker Monitoring Webinar
 
Docker Swarm secrets for creating great FIWARE platforms
Docker Swarm secrets for creating great FIWARE platformsDocker Swarm secrets for creating great FIWARE platforms
Docker Swarm secrets for creating great FIWARE platforms
 

Último

How is AI changing journalism? (v. April 2024)
How is AI changing journalism? (v. April 2024)How is AI changing journalism? (v. April 2024)
How is AI changing journalism? (v. April 2024)Damian Radcliffe
 
Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝soniya singh
 
Russian Call girl in Ajman +971563133746 Ajman Call girl Service
Russian Call girl in Ajman +971563133746 Ajman Call girl ServiceRussian Call girl in Ajman +971563133746 Ajman Call girl Service
Russian Call girl in Ajman +971563133746 Ajman Call girl Servicegwenoracqe6
 
Lucknow ❤CALL GIRL 88759*99948 ❤CALL GIRLS IN Lucknow ESCORT SERVICE❤CALL GIRL
Lucknow ❤CALL GIRL 88759*99948 ❤CALL GIRLS IN Lucknow ESCORT SERVICE❤CALL GIRLLucknow ❤CALL GIRL 88759*99948 ❤CALL GIRLS IN Lucknow ESCORT SERVICE❤CALL GIRL
Lucknow ❤CALL GIRL 88759*99948 ❤CALL GIRLS IN Lucknow ESCORT SERVICE❤CALL GIRLimonikaupta
 
₹5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] 🔝|97111...
₹5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] 🔝|97111...₹5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] 🔝|97111...
₹5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] 🔝|97111...Diya Sharma
 
Hire↠Young Call Girls in Tilak nagar (Delhi) ☎️ 9205541914 ☎️ Independent Esc...
Hire↠Young Call Girls in Tilak nagar (Delhi) ☎️ 9205541914 ☎️ Independent Esc...Hire↠Young Call Girls in Tilak nagar (Delhi) ☎️ 9205541914 ☎️ Independent Esc...
Hire↠Young Call Girls in Tilak nagar (Delhi) ☎️ 9205541914 ☎️ Independent Esc...Delhi Call girls
 
'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...
'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...
'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...APNIC
 
Best VIP Call Girls Noida Sector 75 Call Me: 8448380779
Best VIP Call Girls Noida Sector 75 Call Me: 8448380779Best VIP Call Girls Noida Sector 75 Call Me: 8448380779
Best VIP Call Girls Noida Sector 75 Call Me: 8448380779Delhi Call girls
 
Pune Airport ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready...
Pune Airport ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready...Pune Airport ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready...
Pune Airport ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready...tanu pandey
 
VIP Model Call Girls Hadapsar ( Pune ) Call ON 9905417584 Starting High Prof...
VIP Model Call Girls Hadapsar ( Pune ) Call ON 9905417584 Starting  High Prof...VIP Model Call Girls Hadapsar ( Pune ) Call ON 9905417584 Starting  High Prof...
VIP Model Call Girls Hadapsar ( Pune ) Call ON 9905417584 Starting High Prof...singhpriety023
 
Call Girls In Saket Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Saket Delhi 💯Call Us 🔝8264348440🔝Call Girls In Saket Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Saket Delhi 💯Call Us 🔝8264348440🔝soniya singh
 
INDIVIDUAL ASSIGNMENT #3 CBG, PRESENTATION.
INDIVIDUAL ASSIGNMENT #3 CBG, PRESENTATION.INDIVIDUAL ASSIGNMENT #3 CBG, PRESENTATION.
INDIVIDUAL ASSIGNMENT #3 CBG, PRESENTATION.CarlotaBedoya1
 
Call Now ☎ 8264348440 !! Call Girls in Sarai Rohilla Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Sarai Rohilla Escort Service Delhi N.C.R.Call Now ☎ 8264348440 !! Call Girls in Sarai Rohilla Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Sarai Rohilla Escort Service Delhi N.C.R.soniya singh
 
VIP 7001035870 Find & Meet Hyderabad Call Girls LB Nagar high-profile Call Girl
VIP 7001035870 Find & Meet Hyderabad Call Girls LB Nagar high-profile Call GirlVIP 7001035870 Find & Meet Hyderabad Call Girls LB Nagar high-profile Call Girl
VIP 7001035870 Find & Meet Hyderabad Call Girls LB Nagar high-profile Call Girladitipandeya
 
𓀤Call On 7877925207 𓀤 Ahmedguda Call Girls Hot Model With Sexy Bhabi Ready Fo...
𓀤Call On 7877925207 𓀤 Ahmedguda Call Girls Hot Model With Sexy Bhabi Ready Fo...𓀤Call On 7877925207 𓀤 Ahmedguda Call Girls Hot Model With Sexy Bhabi Ready Fo...
𓀤Call On 7877925207 𓀤 Ahmedguda Call Girls Hot Model With Sexy Bhabi Ready Fo...Neha Pandey
 
Call Girls In Sukhdev Vihar Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Sukhdev Vihar Delhi 💯Call Us 🔝8264348440🔝Call Girls In Sukhdev Vihar Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Sukhdev Vihar Delhi 💯Call Us 🔝8264348440🔝soniya singh
 
GDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark Web
GDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark WebGDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark Web
GDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark WebJames Anderson
 
Moving Beyond Twitter/X and Facebook - Social Media for local news providers
Moving Beyond Twitter/X and Facebook - Social Media for local news providersMoving Beyond Twitter/X and Facebook - Social Media for local news providers
Moving Beyond Twitter/X and Facebook - Social Media for local news providersDamian Radcliffe
 
Hot Call Girls |Delhi |Hauz Khas ☎ 9711199171 Book Your One night Stand
Hot Call Girls |Delhi |Hauz Khas ☎ 9711199171 Book Your One night StandHot Call Girls |Delhi |Hauz Khas ☎ 9711199171 Book Your One night Stand
Hot Call Girls |Delhi |Hauz Khas ☎ 9711199171 Book Your One night Standkumarajju5765
 

Último (20)

How is AI changing journalism? (v. April 2024)
How is AI changing journalism? (v. April 2024)How is AI changing journalism? (v. April 2024)
How is AI changing journalism? (v. April 2024)
 
Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝
 
Russian Call Girls in %(+971524965298 )# Call Girls in Dubai
Russian Call Girls in %(+971524965298  )#  Call Girls in DubaiRussian Call Girls in %(+971524965298  )#  Call Girls in Dubai
Russian Call Girls in %(+971524965298 )# Call Girls in Dubai
 
Russian Call girl in Ajman +971563133746 Ajman Call girl Service
Russian Call girl in Ajman +971563133746 Ajman Call girl ServiceRussian Call girl in Ajman +971563133746 Ajman Call girl Service
Russian Call girl in Ajman +971563133746 Ajman Call girl Service
 
Lucknow ❤CALL GIRL 88759*99948 ❤CALL GIRLS IN Lucknow ESCORT SERVICE❤CALL GIRL
Lucknow ❤CALL GIRL 88759*99948 ❤CALL GIRLS IN Lucknow ESCORT SERVICE❤CALL GIRLLucknow ❤CALL GIRL 88759*99948 ❤CALL GIRLS IN Lucknow ESCORT SERVICE❤CALL GIRL
Lucknow ❤CALL GIRL 88759*99948 ❤CALL GIRLS IN Lucknow ESCORT SERVICE❤CALL GIRL
 
₹5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] 🔝|97111...
₹5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] 🔝|97111...₹5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] 🔝|97111...
₹5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] 🔝|97111...
 
Hire↠Young Call Girls in Tilak nagar (Delhi) ☎️ 9205541914 ☎️ Independent Esc...
Hire↠Young Call Girls in Tilak nagar (Delhi) ☎️ 9205541914 ☎️ Independent Esc...Hire↠Young Call Girls in Tilak nagar (Delhi) ☎️ 9205541914 ☎️ Independent Esc...
Hire↠Young Call Girls in Tilak nagar (Delhi) ☎️ 9205541914 ☎️ Independent Esc...
 
'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...
'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...
'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...
 
Best VIP Call Girls Noida Sector 75 Call Me: 8448380779
Best VIP Call Girls Noida Sector 75 Call Me: 8448380779Best VIP Call Girls Noida Sector 75 Call Me: 8448380779
Best VIP Call Girls Noida Sector 75 Call Me: 8448380779
 
Pune Airport ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready...
Pune Airport ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready...Pune Airport ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready...
Pune Airport ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready...
 
VIP Model Call Girls Hadapsar ( Pune ) Call ON 9905417584 Starting High Prof...
VIP Model Call Girls Hadapsar ( Pune ) Call ON 9905417584 Starting  High Prof...VIP Model Call Girls Hadapsar ( Pune ) Call ON 9905417584 Starting  High Prof...
VIP Model Call Girls Hadapsar ( Pune ) Call ON 9905417584 Starting High Prof...
 
Call Girls In Saket Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Saket Delhi 💯Call Us 🔝8264348440🔝Call Girls In Saket Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Saket Delhi 💯Call Us 🔝8264348440🔝
 
INDIVIDUAL ASSIGNMENT #3 CBG, PRESENTATION.
INDIVIDUAL ASSIGNMENT #3 CBG, PRESENTATION.INDIVIDUAL ASSIGNMENT #3 CBG, PRESENTATION.
INDIVIDUAL ASSIGNMENT #3 CBG, PRESENTATION.
 
Call Now ☎ 8264348440 !! Call Girls in Sarai Rohilla Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Sarai Rohilla Escort Service Delhi N.C.R.Call Now ☎ 8264348440 !! Call Girls in Sarai Rohilla Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Sarai Rohilla Escort Service Delhi N.C.R.
 
VIP 7001035870 Find & Meet Hyderabad Call Girls LB Nagar high-profile Call Girl
VIP 7001035870 Find & Meet Hyderabad Call Girls LB Nagar high-profile Call GirlVIP 7001035870 Find & Meet Hyderabad Call Girls LB Nagar high-profile Call Girl
VIP 7001035870 Find & Meet Hyderabad Call Girls LB Nagar high-profile Call Girl
 
𓀤Call On 7877925207 𓀤 Ahmedguda Call Girls Hot Model With Sexy Bhabi Ready Fo...
𓀤Call On 7877925207 𓀤 Ahmedguda Call Girls Hot Model With Sexy Bhabi Ready Fo...𓀤Call On 7877925207 𓀤 Ahmedguda Call Girls Hot Model With Sexy Bhabi Ready Fo...
𓀤Call On 7877925207 𓀤 Ahmedguda Call Girls Hot Model With Sexy Bhabi Ready Fo...
 
Call Girls In Sukhdev Vihar Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Sukhdev Vihar Delhi 💯Call Us 🔝8264348440🔝Call Girls In Sukhdev Vihar Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Sukhdev Vihar Delhi 💯Call Us 🔝8264348440🔝
 
GDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark Web
GDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark WebGDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark Web
GDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark Web
 
Moving Beyond Twitter/X and Facebook - Social Media for local news providers
Moving Beyond Twitter/X and Facebook - Social Media for local news providersMoving Beyond Twitter/X and Facebook - Social Media for local news providers
Moving Beyond Twitter/X and Facebook - Social Media for local news providers
 
Hot Call Girls |Delhi |Hauz Khas ☎ 9711199171 Book Your One night Stand
Hot Call Girls |Delhi |Hauz Khas ☎ 9711199171 Book Your One night StandHot Call Girls |Delhi |Hauz Khas ☎ 9711199171 Book Your One night Stand
Hot Call Girls |Delhi |Hauz Khas ☎ 9711199171 Book Your One night Stand
 

Network Automation with Salt and NAPALM: Introuction

  • 1. Network Automation with Salt and NAPALM (or how we control 100’s of PoPs around the world) Mircea Ulinic CloudFlare, London RIPE 72 Copenhagen May 2016
  • 2. 2 CloudFlare (a quick background) ● Once a website is part of the CloudFlare community, its web traffic is routed through our global network of 80+ locations ● How big? ○ Four+ million zones/domains ○ Authoritative for ~40% of Alexa top 1 million ○ 43+ billion DNS queries/day ■ Second only to Verisign ● 80+ anycast locations globally ○ 40 countries (and growing) ● Origin CA
  • 3. Our big network challenges ● Deploy new PoPs ● Human error factor ● Replace equipment ● Monitor 3
  • 4. Automation framework requirements ● Very scalable ● Concurrency ● Easily configurable & customizable ● Config verification & enforcement ● Periodically collect statistics ● Native caching and drivers for useful tools 4
  • 6. Opinions 6 Ryan D Lane Jens Rantil “The learning curve for Salt is higher and the intro docs are rough, but in the long-term Salt’s docs are much better than Ansible’s, because they’re way more complete (which is also why they’re much worse as intro docs).” “To me, Ansible was a great introduction to automated server configuration and deployment. Moving forward, the scalability, speed and architecture of Salt has it going for it. For cloud deployments I find the Salt architecture to be a better fit. I would not hesitate to use Salt in the future.”
  • 7. Salt: the “unwanted child” of network automation 7 https://opennxos.cisco.com/public/getting-started https://forums.juniper.net/t5/Automation-Programmability/Automation-with-Chef-Puppet-and-Ansible/ba-p/261773
  • 8. Why? ● Old references ● No feature for net devices as of yesterday ● Not well informed ● Not suitable for tiny VM networks 8
  • 9. Salt at CloudFlare: used for years Many thousands of servers already using Salt Same tool for both servers and net devices 9
  • 10. 10 Salt (what fits the best our needs) Ansible (most used in network automation) ● Long standing sessions ● 20 types of modules ● Customizable ● Many thousands of CloudFlare servers ● Comes embedded with features and tools ● Native config enforcement logic ● Real-time job ● Job scheduling ● Runner as a module ● REST API ● High Availability ● GPG encryption ● Pull from Git, SVN ● open/close session per module ● 1 type of module ● Customizable ● ? ● Need to install separate packages (“roles”) that are not necessarily dependent ● Real-time job (Tower: $$) ● Job Scheduling (Tower: $$) ● Runner as a class ● REST API (Ansible Tower: $$) ● HA (Tower > Enterprise edition: $$$$) ● Security (Tower: $$) ● Pull from Git, SVN (Tower, $$)
  • 11. Salt module types (selection) ● Execution modules ● Grains ● States ● Runners ● Pillars ● Returners 11
  • 12. Embedded execution modules (selection) 12https://docs.saltstack.com/en/develop/ref/modules/all/index.html
  • 14. Architecture 14 Problem: you can’t install minions on network devices! https://www.digitalocean.com/community/tutorials/an-introduction-to-saltstack-terminology-and-concepts
  • 15. Proxy Minion 15 Solution: proxy minions They behave like minions, but can talk to network devices Proxy
  • 16. Disadvantages ● One proxy minion process / device => dedicated server preferred 16
  • 17. NAPALM 17 NAPALM (Network Automation and Programmability Abstraction Layer with Multivendor support) https://github.com/napalm-automation
  • 18. Fast growing library 18 February 2016 http://napalm.readthedocs.io/en/latest/support/index.html#getters-support-matrix
  • 19. 19
  • 20. Open source recipe: napalm-salt 20 NAPALM https://github.com/napalm-automation/napalm-salt
  • 21. NAPALM-Salt for Public use ● NAPALM integrated in Salt Carbon ● Execution Modules ○ NET ○ BGP ○ NTP ○ Probes ● States: ○ NTP, Probes 21
  • 22. NAPALM-Salt (examples): 1. salt “edge*” net.traceroute 8.8.8.8 2. salt -G “os:junos” net.cli “show version” 3. salt -C “sw* and G@os:nxos” net.arp 4. salt -G “os:iosxr and version:5.3.3” net.mac 5. salt -G “model:MX480” probes.results 6. salt -I “type:router” ntp.set_peers 10.1.130.10 10.1.130.18 10.1.130.22 22 Targeting minions: https://docs.saltstack.com/en/latest/topics/targeting/index.html
  • 23. Output example: 23 # salt --out=json edge05.cph01 net.arp [ { "interface": "ae2.100", "ip": "10.0.0.1", "mac": "00:0f:53:36:e4:50", "age": 129.0 }, { "interface": "xe-0/0/3.0", "ip": "10.0.0.2", "mac": "00:1d:70:83:40:c0", "age": 1101.0 }, { "interface": "xe-0/0/3.0", "ip": "10.0.0.3", "mac": "10:0e:7e:de:84:07", "age": 1276.0 }, { "interface": "xe-0/0/3.0", "ip": "10.0.0.3", "mac": "d4:6d:50:35:59:d1", "age": 964.0 },
  • 24. Abstracting configurations protocols { bgp { group 4-PUBLIC-ANYCAST-PEERS { neighbor 192.168.0.1 { description "Amazon [WW HOSTING ANYCAST]"; family inet { unicast { prefix-limit { maximum 500; } } peer-as 16509; } } } router bgp 13335 neighbor 192.168.0.1 remote-as 16509 use neighbor-group 4-PUBLIC-ANYCAST-PEERS description "Amazon [WW HOSTING ANYCAST]" address-family ipv4 unicast maximum-prefix 500 bgp.neighbor: ip: 192.168.0.1 group: 4-PUBLIC-ANYCAST-PEERS description: "Amazon [WW HOSTING ANYCAST]" remote_as: 16509 prefix_limit: 500 Abstracted
  • 25. Example ● Edge router with 1000 BGP peers ● Device is manufactured by VendorA ● Replaced by a device from VendorB 25
  • 27. Us 27 proxy: driver: VendorA proxytype: napalm host: edge05.cph01 username: ripe passwd: xxxx proxy: driver: VendorB proxytype: napalm host: edge05.cph01 username: ripe passwd: xxxx vi /etc/salt/pillar/edge05_cph01.sls
  • 28. Maintain configuration updates 28 schedule: ntp_config: function: state.sls args: router.ntp returner: smtp days: 1 bgp_config: function: state.sls args: router.bgp hours: 2 probes_config: function: state.sls args: router.probes days: 3 users_config: function: state.sls args: router.users returner: hipchat weeks: 1 ntp.peers: - 10.1.130.22 - 10.1.130.18 - 10.1.128.10 - 10.1.131.10 - 10.1.132.10 - 10.2.52.10 - 10.2.48.10 - 10.2.55.10 - 10.2.50.10 - 10.2.56.10 Define NTP peers in the Pillar Schedule config enforcement checks
  • 29. NTP state output example 29 edge01.jnb01: ---------- ID: ntp_config Function: netntp.managed Result: True Started: 09:50:41.228728 Duration: 16813.319 ms Changes: ---------- peers: ---------- removed: - 10.10.1.1 servers: ---------- added: - 17.xxx.xx.253 - 40.xxx.xxx.7 removed: - 83.xxx.xxx.118 - 92.xx.xxx.58 - 91.xx.xxx.42 Summary for edge01.jnb01 ------------ Succeeded: 1 (changed=1) Failed: 0 ------------ Total states run: 1 Total run time: 16.813 s
  • 30. What else can I do? Examples: 30
  • 31. Unique ASNs per geographic area 31 # salt-run bgp.asns_per_area Canada : 96 Brazil : 167 Australia : 113 Peru : 4 USA : 410 Africa : 21 Asia : 362 Europe : 1004 North America : 421 South America : 183 Oceania : 162 Colombia : 5 Chile : 5 Argentina : 21 Execution time: 2.84680294991 s # Execution module Runner Pillars Grains State
  • 32. Find stuff (using Salt mine) 32 # salt-run net.find core01.sjc01 Pattern "core01.sjc01" found in the description of the following interfaces ======================================================================================================================== | Device | Interface | Interface Description | UP | Enabled | Speed [Mbps] | MAC Address | IP Addresses | ======================================================================================================================== | sw01.sjc01 | ae0 | core01.sjc01 | True | True | 40000 | 78:fe:3d:ed:02:83 | | ------------------------------------------------------------------------------------------------------------------------ | sw01.sjc01 | xe-1/1/0 | ae0:core01.sjc01:Et3/2/3 | True | True | 10000 | 78:fe:3d:ed:02:83 | | ------------------------------------------------------------------------------------------------------------------------ | sw01.sjc01 | xe-1/1/1 | ae0:core01.sjc01:Et3/2/4 | True | True | 10000 | 78:fe:3d:ed:02:83 | | ------------------------------------------------------------------------------------------------------------------------ | sw01.sjc01 | xe-0/1/1 | ae0:core01.sjc01:Et3/2/2 | True | True | 10000 | 78:fe:3d:ed:02:83 | | ------------------------------------------------------------------------------------------------------------------------ # salt-run net.find 54:e0:32:7e:85:2d Details for interface xe-4/0/5 on device edge01.sjc01 ===================================================================================================================== | Device | Interface | Interface Description | UP | Enabled | Speed [Mbps] | MAC Address | IP Addresses | ===================================================================================================================== | edge01.sjc01 | xe-4/0/5 | | | True | 10000 | 54:e0:32:7e:85:2d | | --------------------------------------------------------------------------------------------------------------------- # salt-run net.find 00:0f:53:36:e4:50 Found ARP entry on edge05.cph01: 10.0.0.1 <-> 00:0F:53:36:E4:50
  • 33. BGP neighbors of some ASNs 33 # salt-run bgp.neighbors 15169 16509 32934 13414 BGP Neighbors for 15169, 16509, 32934, 13414: ======================================================================================================================================= | Device |As Number | Neighbor Address | State|#Active/Received/Accepted/Damped | Policy In | ======================================================================================================================================= | edge01.dub01 | 15169 | 200xxxxxxxxxxxxxxxxxxxxxxxxx | Established 27/48/48/0 | 6-PUBLIC-PEER-IN | | edge01.dub01 | 16509 | 200xxxxxxxxxxxxxxxxxxxxxxxxx | Established 1/1/1/0 | 6-PUBLIC-PEER-IN | | edge01.nrt01 | 13414 | 203xxxxxxxxxxxxxxxxxxxxxxxxx | Established 59/59/59/0 | 4-PUBLIC-PEER-IN | | edge01.nrt01 | 13414 | 200xxxxxxxxxxxxxxxxxxxxxxxxx | Established 3/3/3/0 | 6-PUBLIC-PEER-IN | | edge01.nrt01 | 16509 | 203xxxxxxxxxxxxxxxxxxxxxxxxx | Established 71/71/71/0 | 4-PUBLIC-PEER-IN | | edge01.nrt01 | 16509 | 200xxxxxxxxxxxxxxxxxxxxxxxxx | Established 1/1/1/0 | 6-PUBLIC-PEER-IN | | edge01.nrt01 | 32934 | 203xxxxxxxxxxxxxxxxxxxxxxxxx | Established 26/26/26/0 | 4-PUBLIC-PEER-IN | | edge01.nrt01 | 32934 | 200xxxxxxxxxxxxxxxxxxxxxxxxx | Established 14/15/14/0 | 6-PUBLIC-PEER-IN | | edge01.nrt01 | 15169 | 203xxxxxxxxxxxxxxxxxxxxxxxxx | Established 331/331/331/0 | 4-PUBLIC-PEER-IN | | edge01.tpe01 | 15169 | 203xxxxxxxxxxxxxxxxxxxxxxxxx | Established 331/331/331/0 | 4-PUBLIC-PEER-IN | | edge01.tpe01 | 15169 | 240xxxxxxxxxxxxxxxxxxxxxxxxx21 | Established 48/48/48/0 | 6-PUBLIC-PEER-IN | | edge01.waw02 | 16509 | 195xxxxxxxxxxxxxxxxxxxxxxxxx | Established 5/5/5/0 | 4-PUBLIC-PEER-IN | | edge01.waw02 | 15169 | 195xxxxxxxxxxxxxxxxxxxxxxxxx | Established 177/331/331/0 | 4-PUBLIC-PEER-IN | | edge01.waw02 | 15169 | 200xxxxxxxxxxxxxxxxxxxxxxxxx | Established 22/48/48/0 | 6-PUBLIC-PEER-IN | | edge01.waw02 | 32934 | 212xxxxxxxxxxxxxxxxxxxxxxxxx | Established 26/26/26/0 | 4-PUBLIC-PEER-IN | | edge01.waw02 | 32934 | 200xxxxxxxxxxxxxxxxxxxxxxxxx | Established 14/14/14/0 | 6-PUBLIC-PEER-IN | | edge01.lhr01 | 13414 | 195xxxxxxxxxxxxxxxxxxxxxxxxx | Established 59/59/59/0 | 4-PUBLIC-PEER-IN | | edge01.lhr01 | 16509 | 200xxxxxxxxxxxxxxxxxxxxxxxxx | Established 0/1/0/0 | REJECT-ALL | | edge01.gru01 | 32934 | 200xxxxxxxxxxxxxxxxxxxxxxxxx | Established 12/12/12/0 | 6-PUBLIC-PEER-IN |
  • 34. Monitor your network 34 2071) "traceroute:edge01.sjc01-edge01.lhr01-Tata-4" 2072) "traceroute:edge01.iad02-edge01.sjc01-GTT-4" 2074) "traceroute:edge01.fra03-edge01.sea01-Cogent-4" 2075) "traceroute:edge01.yul01-edge01.lax01-Cogent-4" 2076) "traceroute:edge01.zrh01-edge01.fra03-GTT-4" 2077) "traceroute:edge01.mxp01-edge01.ams01-GTT-4" 2078) "traceroute:edge01.mia01-edge01.lhr01-GTT-4" 2079) "traceroute:edge01.msp01-edge01.scl01-Telefonica-4" 2080) "traceroute:edge01.fra03-edge01.mia01-Telia-4" 2081) "traceroute:edge01.lim01-edge01.scl01-Telefonica-4" 2082) "traceroute:edge01.arn01-edge01.mia01-GTT-4" 2083) "traceroute:edge01.prg01-edge01.lax01-GTT-4" 2084) "traceroute:edge01.osl01-edge01.lhr01-GTT-4" # Redis details: redis.host: localhost redis.port: 6379 # Schedulers schedule: traceroute_runner: function: traceroute.collect hours: 2
  • 35. Traceroute diff 35 Current: ----------------- ------------- ------------- ---------- time src dst probe loss 10:22:46 14-05-16 1.1.1.1 2.2.2.2 26 edge01.phx01 edge01.lax01 ----------------- ------------- ------------- ---------- --- ------ ------ ------ ------------- ------------------------------------- --- -------------------------------------- hop rtt 1 rtt 2 rtt 3 ip host asn asn description 1 29.663 29.705 30.057 xx.xx.xx.xx be2929.ccr21.phx02 000 xxxxxxx 2 41.987 xx.xx.xx.xx be2932.ccr22.lax01 000 xxxxxxx 42.604 41.051 xx.xx.xx.xx be2931.ccr21.lax01 000 xxxxxxx 3 41.912 42.036 xx.xx.xx.xx be2179.ccr23.lax05 000 xxxxxxx 41.685 xx.xx.xx.xx be2180.ccr23.lax05 000 xxxxxxx 4 66.714 66.504 66.329 2.2.2.2 2.2.2.2 000 xxxxxxx --- ------ ------ ------ ------------- ------------------------------------- --- -------------------------------------- Previous: ----------------- ------------- ------------- ---------- time src dst probe loss 08:32:15 14-05-16 1.1.1.1 2.2.2.2 0 ----------------- ------------- ------------- ---------- --- ------ ------ ------ ------------- ------------------------------------- --- -------------------------------------- hop rtt 1 rtt 2 rtt 3 ip host asn asn description 1 29.71 xx.xx.xx.xx be2929.ccr21.phx02 000 xxxxxxx 30.569 30.092 xx.xx.xx.xx be2930.ccr22.phx02 000 xxxxxxx 2 41.453 43.002 xx.xx.xx.xx be2931.ccr21.lax01 000 xxxxxxx 41.272 xx.xx.xx.xx be2932.ccr22.lax01 000 xxxxxxx 3 43.856 xx.xx.xx.xx be2180.ccr23.lax05 000 xxxxxxx 42.465 41.741 xx.xx.xx.xx be2179.ccr23.lax05 000 xxxxxxx 4 41.433 42.812 41.479 2.2.2.2 2.2.2.2 000 xxxxxxx --- ------ ------ ------ ------------- ------------------------------------- --- --------------------------------------
  • 36. How can you use it? # apt-get install salt-master (install guide) # pip install napalm Examples: https://github.com/napalm-automation/napalm-salt 36
  • 37. How can you contribute? ● NAPALM Automation: https://github.com/napalm-automation ● SaltStack https://github.com/saltstack/salt 37
  • 38. Need help/advice? Join https://networktocode.herokuapp.com/ rooms: #saltstack #napalm By email: ● Mircea Ulinic: mircea@cloudflare.com ● Jerome Fleury: jf@cloudflare.com 38
  • 39. Questions 39 By email: ● Mircea Ulinic: mircea@cloudflare.com ● Jerome Fleury: jf@cloudflare.com ?