u-m network background information network automation strategy · bluecat 2 we will strongly prefer...

27

Upload: others

Post on 06-Jul-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: U-M Network Background Information Network Automation Strategy · BlueCat 2 We will strongly prefer to rewrite the import script, but will consider reversing the flow. This will depend
Page 2: U-M Network Background Information Network Automation Strategy · BlueCat 2 We will strongly prefer to rewrite the import script, but will consider reversing the flow. This will depend

● U-M Network Background Information

● Network Automation Strategy

● Network Automation Execution

Page 3: U-M Network Background Information Network Automation Strategy · BlueCat 2 We will strongly prefer to rewrite the import script, but will consider reversing the flow. This will depend

1990

2007

2014

2016

C

2000

2010

MM

MM MT

MM

MM MT

MTR

MTR MM MT

MC

MC MC

MM

MCMC

MC MI MS

MM MT MM

MT

MM MT

MS MI

MTRMMMTRMM

MC

Organic Growth of U-M Network Tools:● A broad range of tools● Commercial, open source, dead-end forks of open

source, in-house developed ● Each tool fulfills a particular niche

Tool fragmentation resulted in technical debt:● Legacy and in-house tools support lapsed● Open source tool releases lag● Overlaps in tool versions and functionality● “Source of authority” fragmented across tools

Page 4: U-M Network Background Information Network Automation Strategy · BlueCat 2 We will strongly prefer to rewrite the import script, but will consider reversing the flow. This will depend

200+ Buildings ⧫ 4 Data Centers

Thousands devices● 4 core, 3 border, 227 distribution layer

routers● 3,083 access-layer switches● ~ 14,000 wifi APs

Major device vendors: Cisco and Juniper ● Dozens of device models, dozens of OS

versions: 125+ combinations● Traditional Cisco three-tier architecture● Elements of enterprise and service-provider

networks: spanned VLANs + VRF

Page 5: U-M Network Background Information Network Automation Strategy · BlueCat 2 We will strongly prefer to rewrite the import script, but will consider reversing the flow. This will depend

Significant overlaps in functionality, tool interdependencies, and staff turnover have made our current tool chain difficult to maintain.

perfSONARTesting throughput & latency

Cisco PrimeClient connectivity metrics aggregation and reporting

OmniPeekDistributed packet capture

NetFlowAnalysis with flowtools

Rancid - U-M24 hour pull and analysis (diffs) of all router/switch configs

Cisco PrimeTemplate most of AP configuration changes

TROUBLESHOOTINGCONFIGURATION MANAGEMENT

TOPOLOGY

InterMapperEasily accessible web view, large data volumes, manual data entry

SpectrumAutodiscovery, topology mapping; not as accessible web view

TopologyWalkerNetwork device discovery, machine readable data source for other tools

MONITORING / ALERTING

InterMapperEmail alerts, used by admins for checks of campus devicesSpectrumCustomizable, integrates with other monitoring systems / toolsCactiTracks bandwidth, pps ucast/non-ucast, errors

NetflowUsed for billing purposes

Cisco PrimeCentral monitoring of APs and controllers

SplunkSimple triggered alerts based on syslog

LOGGING

SplunkSyslog from all network devices

CONFIGURATION TOOLS

DCTHomegrown, used by campus admins for port changes support limited

CoolToolsHomegrown, config and query, web front, broad range, limited support

Cisco PrimeTemplate most of AP configuration changes

REMEDYDevice type, role and location for all network hardware - EOL date

INVENTORY

NetDiscoGathers real-time inventory information, best for firmware audit

Cisco PrimeSingle source for all AP and controller data

Rancid U-MHighly customized, captures hardware information

REMEDYBuilding info, time tracking, SA data, feeds CMDB...

DATABASE

NetInfoPrimary source for all logical network data, tracks address space...

ServiceNowCMDB, WiFi engineering DB HOSTMASTER TOOLS

BLUECAT DNS/DHCPAdministration of campus DHCP and DNS service

DNS stats collector - resides on nettools server

Host lookup tool

NetDiscoMatches MAC/IP to switchports, used by admins and IA for device location

same tool/different function

tool functional dependencies

Page 6: U-M Network Background Information Network Automation Strategy · BlueCat 2 We will strongly prefer to rewrite the import script, but will consider reversing the flow. This will depend

● Transition to FEWER, MORE INTELLIGENT TOOLS to: ○ Proactively alert, even react to problems in the

network○ Harden the network○ Reduce staff time needed to detect and respond

to incidents○ Improve the quality and consistency of network

management and configuration

● Deploy AUTOMATION FRAMEWORK built out to become, for most basic tasks, as trustworthy as the switch itself

Page 7: U-M Network Background Information Network Automation Strategy · BlueCat 2 We will strongly prefer to rewrite the import script, but will consider reversing the flow. This will depend

Networks are currently managed with the existing collection of tools and processes.

Page 8: U-M Network Background Information Network Automation Strategy · BlueCat 2 We will strongly prefer to rewrite the import script, but will consider reversing the flow. This will depend

[New systems]

Salt / Ansible

Our approach is to build a second software stack in parallel, implement the minimum synchronization between the two stacks, build new networks with the new stack, and then migrate existing networks to it.Existing system is left in place and the new system is built in parallel:

● ETL process loads data from the old system into the new

● New system is validated and tested

DB

Page 9: U-M Network Background Information Network Automation Strategy · BlueCat 2 We will strongly prefer to rewrite the import script, but will consider reversing the flow. This will depend

[New systems]

Salt / Ansible

DB

Our approach is to build a second software stack in parallel, implement the minimum synchronization between the two stacks, build new networks with the new stack, and then migrate existing networks to it.Existing system is left in place and the new system is built in parallel:

● ETL process loads data from the old system into the new

● New system is validated and tested● Subsets of networks are gradually

moved to the new system

Page 10: U-M Network Background Information Network Automation Strategy · BlueCat 2 We will strongly prefer to rewrite the import script, but will consider reversing the flow. This will depend

DB

Our approach is to build a second software stack in parallel, implement the minimum synchronization between the two stacks, build new networks with the new stack, and then migrate existing networks to it.Existing system is left in place and the new system is built in parallel:

● ETL process loads data from the old system into the new

● New system is validated and tested● Subsets of networks are gradually

moved to the new system● Existing system runs in parallel while

confidence is built in the new system● Continue to add functionality and

networks to the new system.

Salt / Ansible

[New systems][New systems]

[New systems]

Page 11: U-M Network Background Information Network Automation Strategy · BlueCat 2 We will strongly prefer to rewrite the import script, but will consider reversing the flow. This will depend

DB

● New system○ All functionality

replicated from the old○ Sufficient trust built in

the new service● Old system shut down

Salt / Ansible

[New systems][New systems]

[New systems]

Page 12: U-M Network Background Information Network Automation Strategy · BlueCat 2 We will strongly prefer to rewrite the import script, but will consider reversing the flow. This will depend

● Establish central source of configuration authority for all devices○ Make network changes in the SoA rather than the

device(s).● Software reads configuration data and implements

changes programmatically.○ Network industry seems to be settling on Python,

so we naturally gravitated towards Salt and/or Ansible.

● Utilize open-source tools conventionally○ Refactor existing processes rather than implement

U-M-specific versions.○ If changes are necessary, contribute them upstream

so U-M does not run special software.

Page 13: U-M Network Background Information Network Automation Strategy · BlueCat 2 We will strongly prefer to rewrite the import script, but will consider reversing the flow. This will depend
Page 14: U-M Network Background Information Network Automation Strategy · BlueCat 2 We will strongly prefer to rewrite the import script, but will consider reversing the flow. This will depend
Page 15: U-M Network Background Information Network Automation Strategy · BlueCat 2 We will strongly prefer to rewrite the import script, but will consider reversing the flow. This will depend

Goal: provision a small leaf-spine data center fabric entirely using automation

● Step 1: Datacenter inventory, IPAM, and topology defined in Netbox:○ Network device roles, physical connections between devices. IP addressing/interface assignments...

● Step 2: Templates written to map data from Netbox into device-specific configuration:○ Use some data directly, e.g. interface IP addresses, VLAN IDs...○ Other configuration implicit: e.g. for a device with the “spine” role:

■ for each interface connected to a device with the “leaf” role configure IS-IS on that interface (underlay),

■ configure a route-reflector client for the IP address on the remote end of that connected interface (overlay).

● Step 3: Salt renders complete device configuration, pushed to device via NAPALM load-replace○ Load-replace ensures that the automation process generates and applies all device configurations.

Page 16: U-M Network Background Information Network Automation Strategy · BlueCat 2 We will strongly prefer to rewrite the import script, but will consider reversing the flow. This will depend

● Use several existing sources of operations data, including:○ NetInfo (home-grown tool)○ Custom tables in a Remedy database

● Developed a suite of python scripts to extract data from sources (NetInfo and Remedy), and load them into NetBox.

● Automatically transferring thousands of records and relationships.

● Work to do: validate accuracy, and source data quality.

Page 17: U-M Network Background Information Network Automation Strategy · BlueCat 2 We will strongly prefer to rewrite the import script, but will consider reversing the flow. This will depend

Source of authorityWith this flow, the older systems are the source of authority.

But NetBox will be where automation tools (Salt / Ansible) will pull data from.

Automation

Page 18: U-M Network Background Information Network Automation Strategy · BlueCat 2 We will strongly prefer to rewrite the import script, but will consider reversing the flow. This will depend

Source of authority

We have many existing scripts that pull data from sources like NetInfo and Remedy into other tools like BlueCat.

BlueCat

Automation

Source of authority

Page 19: U-M Network Background Information Network Automation Strategy · BlueCat 2 We will strongly prefer to rewrite the import script, but will consider reversing the flow. This will depend

Source of authority

Option: Rewrite import scriptCreate a new import script that uses the NetBox APIs to pull data and import into systems like BlueCat

BlueCat

Automation

Page 20: U-M Network Background Information Network Automation Strategy · BlueCat 2 We will strongly prefer to rewrite the import script, but will consider reversing the flow. This will depend

Source of authority

Option: Reverse the flowImplement an export script to move data from NetBox to the existing databases.

BlueCat

Automation

Page 21: U-M Network Background Information Network Automation Strategy · BlueCat 2 We will strongly prefer to rewrite the import script, but will consider reversing the flow. This will depend

Source of authority

BlueCat 2

We will strongly prefer to rewrite the import script, but will consider reversing the flow.

This will depend partly on the complexity of the systems involved and how long we expect them to continue to exist.

1Automation

Page 22: U-M Network Background Information Network Automation Strategy · BlueCat 2 We will strongly prefer to rewrite the import script, but will consider reversing the flow. This will depend

● Created a Salt “pillar” (data source middleware) to pull data from the NetBox API.

● Our Pull Request was approved and merged in March. And has since had additional changes contributed by the community.

● This pillar will be included with the next release of Salt (fluorine).

Page 23: U-M Network Background Information Network Automation Strategy · BlueCat 2 We will strongly prefer to rewrite the import script, but will consider reversing the flow. This will depend

● Launching a project to replace an existing tool: “DCT”.

● DCT was built to allow departmental IT staff to make (some) configuration changes to switch ports.

● Going to replace this with an open-source tool with a modular architecture to support different backends and devices.

● Discussing use cases and architecture with the University of Wisconsin.

Looking for collaborators!

Page 24: U-M Network Background Information Network Automation Strategy · BlueCat 2 We will strongly prefer to rewrite the import script, but will consider reversing the flow. This will depend

● Collaborating across our Infrastructure group to stand up GitLab server.

● We are using this extensively to manage:○ code for software projects○ some device configurations○ server deployment configurations (Ansible)

● Initial target has been central IT infrastructure group, but we are expanding to provide this as a service to campus, including research, and teaching and learning uses.

Page 25: U-M Network Background Information Network Automation Strategy · BlueCat 2 We will strongly prefer to rewrite the import script, but will consider reversing the flow. This will depend

● Code review process as part of merge requests.

● CI/CD

○ Code linting / Syntax validation

○ Automated Testing

Create Branch Implement Merge

Request

Review Merge Request

yes

no

Merge branchApprove?“Maintainer”

“Contributor”

Page 26: U-M Network Background Information Network Automation Strategy · BlueCat 2 We will strongly prefer to rewrite the import script, but will consider reversing the flow. This will depend

● Conducting internal workshops to help colleagues build skills and experience with the technologies and approaches we need to adopt.

○ Git

○ Ansible / Salt

○ NetBox

○ Python

○ Software development practices

Page 27: U-M Network Background Information Network Automation Strategy · BlueCat 2 We will strongly prefer to rewrite the import script, but will consider reversing the flow. This will depend