Top Banner
Managing network devices like servers Mircea Ulinic Cloudflare, London San Jose, CA October 2017 1
20

Managing network devices like servers - NANOG … · Managing network devices like servers Mircea Ulinic Cloudflare, London San Jose, CA October 2017 1. 2 Mircea Ulinic ... LinkedIn

Apr 25, 2018

Download

Documents

hanga
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Managing network devices like servers - NANOG … · Managing network devices like servers Mircea Ulinic Cloudflare, London San Jose, CA October 2017 1. 2 Mircea Ulinic ... LinkedIn

Managing network devices like servers

Mircea UlinicCloudflare, London

San Jose, CAOctober 2017

1

Page 2: Managing network devices like servers - NANOG … · Managing network devices like servers Mircea Ulinic Cloudflare, London San Jose, CA October 2017 1. 2 Mircea Ulinic ... LinkedIn

2

Mircea Ulinic

● Network engineer at Cloudflare● Member and maintainer at NAPALM Automation● Integrated NAPALM in Salt● OpenConfig representative● https://mirceaulinic.net/

Twitter: @mirceaulinic

GitHub: mirceaulinic

Page 3: Managing network devices like servers - NANOG … · Managing network devices like servers Mircea Ulinic Cloudflare, London San Jose, CA October 2017 1. 2 Mircea Ulinic ... LinkedIn

3

How are servers managed?

● (Typically) many more servers than network devices● SRE teams are generally large● Automation methodologies for many years● Variety of tools, including:

○ Salt○ Ansible○ Chef○ Puppet

● Many features already implemented● Plenty of success stories

Page 4: Managing network devices like servers - NANOG … · Managing network devices like servers Mircea Ulinic Cloudflare, London San Jose, CA October 2017 1. 2 Mircea Ulinic ... LinkedIn

4

Network platforms that can be managed like servers

● White box devices○ Arista EOS○ Cumulus○ etc.

● Containerised solutions○ Cisco IOS-XR (64 bit only)○ Cisco NX-OS○ etc.

Page 5: Managing network devices like servers - NANOG … · Managing network devices like servers Mircea Ulinic Cloudflare, London San Jose, CA October 2017 1. 2 Mircea Ulinic ... LinkedIn

5

Network platforms that can’t be managed like servers

● Junos● Cisco IOS-XR, 32 bit● Cisco IOS-XE, IOS● Many many others...

5

Page 6: Managing network devices like servers - NANOG … · Managing network devices like servers Mircea Ulinic Cloudflare, London San Jose, CA October 2017 1. 2 Mircea Ulinic ... LinkedIn

● Very scalable○ e.g., LinkedIn 70,000 servers

● Concurrency● Event-driven● Easily configurable & customizable● Native caching and drivers for useful tools

6

Automation framework example: Salt

Page 7: Managing network devices like servers - NANOG … · Managing network devices like servers Mircea Ulinic Cloudflare, London San Jose, CA October 2017 1. 2 Mircea Ulinic ... LinkedIn

7

Salt Architectures (1): typical hub and spoke

Masterserver

Minionserver

Minionserver

Minionserver

...

https://docs.saltstack.com/en/latest/topics/topology/index.html

Page 8: Managing network devices like servers - NANOG … · Managing network devices like servers Mircea Ulinic Cloudflare, London San Jose, CA October 2017 1. 2 Mircea Ulinic ... LinkedIn

8

Salt Architectures (2): multi master

Masterserver

Minionserver

Minionserver

Minionserver

...

Masterserver

Masterserver

Page 9: Managing network devices like servers - NANOG … · Managing network devices like servers Mircea Ulinic Cloudflare, London San Jose, CA October 2017 1. 2 Mircea Ulinic ... LinkedIn

9

Salt Architectures (3): masterless minions

Minionserver

Minionserver

Minionserver

...

Page 10: Managing network devices like servers - NANOG … · Managing network devices like servers Mircea Ulinic Cloudflare, London San Jose, CA October 2017 1. 2 Mircea Ulinic ... LinkedIn

10

Arista EOS Salt minion: Installation (1)

edge01.bjm01#copy https://salt-eos.netops.life/salt-eos-latest.swix flash:

edge01.bjm01#copy https://salt-eos.netops.life/startup.sh flash:

Copy the SWIX extension to the flash

edge01.bjm01#copy flash:salt-eos-latest.swix extension:

edge01.bjm01#extension salt-eos-latest.swix force

Install the SWIX extension

Page 11: Managing network devices like servers - NANOG … · Managing network devices like servers Mircea Ulinic Cloudflare, London San Jose, CA October 2017 1. 2 Mircea Ulinic ... LinkedIn

11

Arista EOS Salt minion: Installation (2)

edge01.bjm01#show extensions | include salt-eos

salt-eos-2017-7-1.swix 1.0.11/1.fc25 A, F 27

Verify the installation

edge01.bjm01(config)#management api http-commands

protocol unix-socket

no shutdown

Enable the local unix socket

Page 12: Managing network devices like servers - NANOG … · Managing network devices like servers Mircea Ulinic Cloudflare, London San Jose, CA October 2017 1. 2 Mircea Ulinic ... LinkedIn

12

Arista EOS Salt minion: Installation (3)

edge01.bjm01#bash

#sudo /mnt/flash/startup.sh

Execute the Salt Minion startup script

Complete installation notes at:https://docs.saltstack.com/en/latest/topics/installation/eos.html

Page 13: Managing network devices like servers - NANOG … · Managing network devices like servers Mircea Ulinic Cloudflare, London San Jose, CA October 2017 1. 2 Mircea Ulinic ... LinkedIn

13

Arista EOS Salt minion: Installation (3)

edge01.bjm01#bash

#sudo /mnt/flash/startup.sh

Execute the Salt Minion startup script

Complete installation notes at:https://docs.saltstack.com/en/latest/topics/installation/eos.html

Page 14: Managing network devices like servers - NANOG … · Managing network devices like servers Mircea Ulinic Cloudflare, London San Jose, CA October 2017 1. 2 Mircea Ulinic ... LinkedIn

14

Cumulus Linux Salt minion: Installation

wget -O bootstrap-salt.sh https://bootstrap.saltstack.com

1. Download the Salt bootstrap script

sudo sh bootstrap-salt.sh

3. Install the Salt minion

2. Check the script!!!

Page 15: Managing network devices like servers - NANOG … · Managing network devices like servers Mircea Ulinic Cloudflare, London San Jose, CA October 2017 1. 2 Mircea Ulinic ... LinkedIn

15

Salt CLI execution: server$ sudo salt 'some-server' disk.usage

some-server:

----------

/:

----------

1K-blocks:

65869280

available:

60808360

capacity:

8%

filesystem:

rootfs

used:

5060920

/dev:

----------

1K-blocks:

65902000

Page 16: Managing network devices like servers - NANOG … · Managing network devices like servers Mircea Ulinic Cloudflare, London San Jose, CA October 2017 1. 2 Mircea Ulinic ... LinkedIn

16

Salt CLI execution: Arista EOS minion*$ sudo salt 'edge01.bjm01' disk.usage

edge01.bjm01:

----------

/:

----------

1K-blocks:

4870812

available:

4812376

capacity:

2%

filesystem:

none

used:

58436

/dev:

----------

1K-blocks:

8192

* This is real output collected from a device carrying Internet traffic

Page 17: Managing network devices like servers - NANOG … · Managing network devices like servers Mircea Ulinic Cloudflare, London San Jose, CA October 2017 1. 2 Mircea Ulinic ... LinkedIn

Need help/advice?

Join https://networktocode.herokuapp.com/rooms: #saltstack #napalm

By email: ● Mircea Ulinic: [email protected]● Frankie Hui: [email protected]

17

Page 18: Managing network devices like servers - NANOG … · Managing network devices like servers Mircea Ulinic Cloudflare, London San Jose, CA October 2017 1. 2 Mircea Ulinic ... LinkedIn

Questions

18

By email: ● Mircea Ulinic: [email protected]● Frankie Hui: [email protected]

?

Page 19: Managing network devices like servers - NANOG … · Managing network devices like servers Mircea Ulinic Cloudflare, London San Jose, CA October 2017 1. 2 Mircea Ulinic ... LinkedIn

How can you contribute?

● NAPALM Automation:https://github.com/napalm-automation

● SaltStackhttps://github.com/saltstack/salt

19

Page 20: Managing network devices like servers - NANOG … · Managing network devices like servers Mircea Ulinic Cloudflare, London San Jose, CA October 2017 1. 2 Mircea Ulinic ... LinkedIn

ReferencesArista Software downloadAuthentication systemBeaconsEnginesEvent SystemGrainsJinjaload_template documentationMaster config file, defaultMaster config file, exampleMaster configuration optionsMaster systemd fileMineNAPALMNAPALM BGP execution module functionsNAPALM GrainsNAPALM InstallationNAPALM network execution module functionsNAPALM NTP execution module functions

20

NAPALM ProxyNAPALM route execution module functionsNAPALM SNMP execution module functionsNAPALM users execution module functionsNested outputterNETAPI ModulesNetconfig stateNode GroupsNTP stateOrchestrationOutput modulesPillarPillar modulesProxy config file, defaultProxy config file, exampleProxy MinionProxy systemd fileReactorREST CherryPy