Building a New IPAM System using Netbox and Batfish

Our requirements

Site
VLAN group (if attached to a VLAN)
VLAN (if attached to a VLAN)
Tenant
VRF
Description (optional if it isn’t in CID or the config required moving forward)
Status (Active, Reserved, Container, Deprecated)
Role (matching the vlan group role)
Netbox Prefix View
Netbox Prefix View Mockup

Populating Netbox using Batfish

Index,Node,VRF,Interface,IP,Mask,Active
0,139–1-router2,GREEN,vlan100,192.0.2.253,24,True
1,139–1-router1,GREEN,vlan100,192.0.2.252,24,True
2,139–1-router2,default,vlan101,192.0.3.1,24,True
class prefix:
def __init__(self, network_object):
self.network_object = network_object
self.in_CID = False
self.in_route_table = False
self.in_batfish = False
self.batfish_devices = list()
self.description = None
self.vrf = None
self.role = None #Dev : 2, Prod : 1 , Management : 3
self.interfaces_batfish = list()
self.status = None #Active, Container, Reserved, Deprecated
self.owners_in_CID = [
'not_in_route_table',
'not_in_Batfish',
'not_in_CID',
'api',
'joel'
]
self.vlan_group = None
self.vlan = None
self.in_netbox = False
self.site_id = None
self.vlan_id = None
{
“network_object”: “192.0.2.0/24”,
“in_CID”: true,
“in_route_table”: false,
“in_batfish”: true,
“batfish_devices”: [
“139–1-router2”,
“139-1-router1”
],
“description”: “student_labs”,
“vrf”: “GREEN”,
“role”: null,
“interfaces_batfish”: [
“Vlan100”,
“Vlan100”
],
“status”: null,
“owners_in_CID”: [
“api”,
“joel”,
“Juan Miller”,
“not_in_route_table”,
“Desiree Martinez”
],
“vlan_group”: null,
“vlan”: “100”,
“in_netbox”: false,
“site_id”: 14470,
“vlan_id”: 31159
}

Looking ahead: Automatic, continuous validation

--

--

--

jlmcguire0@gmail.com

Love podcasts or audiobooks? Learn on the go with our new app.

Recommended from Medium

ELI5: Data Structures in Computer Engineering

How to Plan Your Learning — The Guide for Programmers

Man pointing toward a checklist

Intro To Timeline In Unity

JOJO Bounty System

Delayed_job not executing in production

Adobe Acrobat 7 Installer

Impact of 5G network design on energy efficiency

Loops in swift

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Joel McGuire

Joel McGuire

jlmcguire0@gmail.com

More from Medium

Using Github Actions, Python and Telegram to Get Ribeye Specials

Encrypted pandas DataFrames for secure storage and sharing in Python

cryptpandas

Solved — pytube.exceptions.RegexMatchError: __init__: could not find match for ^\w+\W

How to fix NET::ERR_CERT_AUTHORITY_INVALID Error?