Interface Relationship Manager
Interface Relationship Manager is a plugin for NetBox that allows you to split a single physical or virtual interface into two separate logical interfaces for RX and TX traffic, while retaining the original interface as the "main" interface. This plugin is useful for scenarios where you need granular control or monitoring of inbound and outbound traffic on an interface.
Features
- Easy interface splitting: Split any interface into separate RX and TX interfaces with a single click.
- Retains the original interface: Automatically establishes a relationship between the main interface and the newly created RX/TX interfaces.
- CRUD Operations: Create, read, update, and delete interface relationships easily.
- Integration with NetBox UI: Accessible through the NetBox main menu, enabling quick splitting and review of existing relationships.
Requirements
These are the versions of NetBox and Python tested with the plugin. It is recommended to use these versions (or as close as possible) to avoid incompatibilities.
- NetBox NetBox Community
v4.1.6(2024-10-31) - Python version
3.10.12or higher
Installation
The plugin is available on PyPI, so you can install it easily with pip.
Step 1: Install using pip
pip install interface_relationship_manager
Step 2: Add the plugin into PLUGINS array in configuration.py
PLUGINS = [
'interface_relationship_manager',
# Other plugins...
]
Step 3: Apply migrations(don't forget activating virtual enviroment)
python manage.py migrate interface_relationship_manager
Step 4: Run netbox(for example)
python manage.py runserver
Usage
Splitting an Interface
-
Open the Interface Splitting Manager page from the plugin menu or go to the device you want to manage.
-
Choose the device that contains the interface you want to split.
-
Select the interface.
-
Click Split Interface.
-
The plugin will create two new interfaces, interface_name_rx and interface_name_tx, and establish a relationship with the main interface. or
After splitting:
- The plugin automatically links main_interface to its rx_interface and tx_interface.
- Any future UI or API calls can show these relationships for easy management.
Project Structure
interface_splitting_manager/
├── models.py # InterfaceRelationship model definition
├── views.py # Views for selecting device and splitting interfaces
├── forms.py # Forms to handle user input
├── templates/ # HTML templates
├── urls.py # Plugin URLs
├── navigation.py # Plugin menu entries
└── migrations/ # DB migrations
Changelog
v1.3.1
- added headers into each file
v1.3
- actually added template - wrong name in toml file
v1.2
- added template that i forgot to upload
v1.1
- fixed README
v1.0
- Initial release with basic interface splitting and relationship tracking.
- Created a dedicated InterfaceRelationship model to keep track of main, RX, and TX interfaces.
- Added a management UI for selecting interfaces and performing splits.
- Improved error handling and user feedback in the UI.
Notes
-
No core override: The plugin doesn't override NetBox's core behavior. It only adds new features related to interface splitting.
-
Relationships: When an interface is split, the original interface remains available as the main interface, and the two new interfaces (RX and TX) are each associated with the main interface through the InterfaceRelationship model.
-
Custom Buttons: To add custom buttons or links in various NetBox UI areas, you can:
- Edit NetBox core templates (not recommended, as changes can be lost during upgrades),
- Use NetBox's built-in Custom Links feature,
- Or override specific templates if needed (though results may vary).
Author
Viktor Kubec
BUT FIT Brno student
MIT License
GitHub: vubeckubec/interface_relationship_manager
Metadata
Release files for interface-relationship-manager 1.3.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| interface_relationship_manager-1.3.1.tar.gz | 9.2 kB | Without provenance | Details for interface_relationship_manager-1.3.1.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| interface_relationship_manager-1.3.1-py3-none-any.whl | Python 3 | none | any | Details for interface_relationship_manager-1.3.1-py3-none-any.whl |
Total release size: 19.4 kB
Release files / interface_relationship_manager-1.3.1.tar.gz
| Download URL | interface_relationship_manager-1.3.1.tar.gz |
|---|---|
| Size | 9.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
15f8f34131f5664acdbc5563432345f3d6bf87ff1089fddc7ab994a3f094cc1b
|
|
BLAKE2b-256 checksum How to use checksums |
dcb59779b4141cf9dbf21cc325f0a2eaee61c7e036e215b573d76a6513fa5877
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.0.1 CPython/3.10.12
|
Release files / interface_relationship_manager-1.3.1-py3-none-any.whl
| Download URL | interface_relationship_manager-1.3.1-py3-none-any.whl |
|---|---|
| Size | 10.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
09797daed02482b7ddeebdb15baa4c538c7b4119f44a84f705e8bc2d5964c162
|
|
BLAKE2b-256 checksum How to use checksums |
343a43f1e6e4d64735699ed50a1f9361935c892bcef4a68ef03ed5e6ea0b294a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.0.1 CPython/3.10.12
|
Security for interface-relationship-manager 1.3.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.