NetBox Plugin for viewing device interfaces in a stylish grid layout that mimics the physical port arrangement.
- Grid Visualization: Display device interfaces in a configurable grid layout (rows × columns)
- Visual Connection Status: Color-coded indicators show interface connection and enabled status
- VLAN Color-Coding: Interfaces are color-coded based on their VLAN assignments
- Border color represents the untagged VLAN
- Colored dots represent tagged VLANs
- Interface Filtering: Filter out specific interface types (e.g., Virtual, LAG, Loopback)
- Configurable Layout: Grid dimensions can be configured per device using custom fields
- Install the plugin:
pip install netbox-interface-view- Add the plugin to your NetBox configuration (
configuration.py):
PLUGINS = [
'netbox_interface_view',
]- Run database migrations:
cd /opt/netbox/netbox/
python3 manage.py migrate- Restart NetBox services:
sudo systemctl restart netbox netbox-rqThe plugin requires the following custom fields to be created in NetBox:
-
grid_rows (Integer)
- Content Type:
dcim > device - Type: Integer
- Default: 2
- Description: Number of rows in the interface grid
- Content Type:
-
grid_columns (Integer)
- Content Type:
dcim > device - Type: Integer
- Default: 24
- Description: Number of columns in the interface grid
- Content Type:
- color (Text)
- Content Type:
ipam > vlan - Type: Text
- Default: #cccccc
- Validation: Hex color code (e.g., #FF5733)
- Description: Color to use for VLAN visualization (hex color code)
- Content Type:
- Navigate to Customization > Custom Fields
- Click Add to create a new custom field
- Fill in the details as specified above
- Save the custom field
You can also create custom fields programmatically using the NetBox API or Django shell.
- Navigate to a device detail page in NetBox
- Click the "View Interface Grid" button (appears in the device header)
- The grid visualization page will display:
- A configurable grid of interface cells
- Connection status indicators (green = connected, gray = disconnected, red = disabled)
- VLAN color coding (border = untagged VLAN, dots = tagged VLANs)
- Filter options to exclude specific interface types
For a 48-port switch with ports arranged in 2 rows:
- Set
grid_rows= 2 - Set
grid_columns= 24
For a 24-port switch with ports arranged in 3 rows:
- Set
grid_rows= 3 - Set
grid_columns= 8
- Green dot (●): Interface is connected and enabled
- Gray dot (●): Interface is disconnected
- Red dot (●): Interface is disabled
- Border color: Represents the untagged VLAN color
- Small colored dots: Represent tagged VLANs
- NetBox >= 3.5.0
- Python >= 3.8
This project is licensed under the Apache 2.0 License.