This repository is Obsolete / Deprecated and should not be used.
Please use the actively maintained repository instead:
👉 https://github.com/forwardnetworks/forward-netbox
Forward Networks’ flagship product, Forward Enterprise, provides a vendor-agnostic network digital twin of the network.
This software platform generates a virtual replica, commonly known as a digital twin, encompassing your entire network, including all its devices, connections, and configurations, both on-premises and in the cloud.
The platform enables you to:
- Proactively identify and resolve issues
- Gain deeper network visibility
- Simplify network operations
- Enhance security posture
NetBox is a network documentation and Infrastructure Resource Modeling (IRM) tool designed specifically for network engineers and operators.
It provides:
- IP address management
- DCIM functionality
- A centralized source of truth
The integration between Forward Enterprise and NetBox enables you to:
- Onboard NetBox from Forward Enterprise (Locations, Vendors, Device Types, Models, Devices, Interfaces, Virtual Device Contexts, Virtual Chassis)
- Optionally import device attributes from NetBox into Forward (roles, tenants, racks, etc.)
The Python script will:
- Retrieve Forward Data (via NQE queries)
- Retrieve NetBox Data
- Translate & Map
- Push into NetBox
| Forward | NetBox |
|---|---|
| Locations | Sites |
| Vendors | Manufacturers |
| Device Types | Device Roles |
| Device Models | Device Types |
| Devices | Devices |
| Interfaces | Interfaces |
| Virtual Device Contexts | Virtual Device Contexts |
| Virtual Chassis | Virtual Chassis |
- Forward NQE queries from the Forward Library
- A NetBox instance (can be empty)
- Python 3.10+ on your local system
- (Optional) Flask for web-based config creation
git clone https://github.com/forwardnetworks/fwd-netbox
cd fwd-netboxTwo ways to do this:
cp configuration.yaml.example configuration.yamlpython3 netbox_form.pyThen open http://127.0.0.1:5000 in your browser.
forward:
host: https://fwd.app
authentication: Basic <auth>
network_id: 12345
timeout: 60
nqe_limit: 1000
nqe:
locations_query_id: <id>
vendors_query_id: <id>
device_types_query_id: <id>
device_models_query_id: <id>
devices_query_id: <id>
interfaces_query_id: <id>
virtual_device_contexts_query_id: <id>
virtual_chassis_query_id: <id>
netbox:
host: https://netbox.example.com
authentication: Token <token>
timeout: 90
post_limit: 100
allow_deletes: false
debug: false
add_sites: true
add_manufacturers: true
add_device_roles: true
add_device_types: true
add_devices: true
add_interfaces: true
add_virtual_device_contexts: true
add_virtual_chassis: truepython3 export_to_netbox.pyYou should see new Sites, Devices, Interfaces, VDCs, and Virtual Chassis populated.
You can customize by modifying:
- NQE queries (and use custom ones with new IDs)
- Python transformation logic (
netbox_interface.py)
Update your configuration.yaml with your new query IDs.
Forward provides prebuilt NQE queries in:
/Forward Library/External/NetBox/Forward Devices
These include:
- Locations
- Vendors
- Device Types
- Device Models
- Devices
- Interfaces
- Virtual Device Contexts
- Virtual Chassis
If allow_deletes: true is set, the script will:
- Compare Forward data to NetBox data
- Delete items in NetBox that are missing from Forward
- Log everything it's about to delete before doing so
Main contributors:
- Manuel Corona, Forward Networks (GitHub, LinkedIn, Twitter)
- Fabrizio Maccioni, Forward Networks (GitHub, LinkedIn, Twitter)
- Craig Johnson, Forward Networks (GitHub, LinkedIn, Twitter)
Join the conversation or get help at the Forward Networks Community.
