Skip to main content

Syncing permissions on IP Addresses with those from their corresponding Prefix in NetBox

This project has been archived.

The maintainers of this project have marked this project as archived. No new releases are expected.

Project description

netbox-ip-permissions-synchronization

Overview

This plugin allows you to compare and synchronize IP address permissions (tenant assignments and custom permission fields) with their parent prefix in NetBox. It's useful for ensuring consistent permission and tenant assignments across all IP addresses within a prefix.

Features

  • Compare IP address permissions against their parent prefix
  • View tenant and permission field assignments at a glance
  • Synchronize all IP addresses with prefix permissions
  • Automatic detection of mismatched permissions
  • User-friendly interface with color-coded status indicators

Compatibility

Tested with NetBox versions 4.3.7.

Installation

If your NetBox installation uses virtualenv, activate it like this:

source /opt/netbox/venv/bin/activate

Install the plugin from PyPI:

pip install netbox-ip-permissions-synchronization

Or clone this repository, then go to the folder with it and install the plugin:

pip install .

To enable the plugin, add the plugin's name to the PLUGINS list in configuration.py (it's usually located in /opt/netbox/netbox/netbox/) like so:

PLUGINS = [
    'netbox_ip_permissions_synchronization'
]

Don't forget to restart NetBox:

sudo systemctl restart netbox netbox-rq

Usage

Navigate to any Prefix in NetBox and look for the "Sync IP Permissions" button at the top of the page:

The synchronization page will show:

  • Prefix information including tenant and permission assignments
  • IP addresses that need synchronization (highlighted in yellow)
  • IP addresses that are already synchronized (highlighted in green)

Select the IP addresses you want to synchronize using the checkboxes, then click:

  • "Sync All IPs" - Synchronize all IP addresses in the prefix

Custom Fields Required

This plugin requires the following custom fields to be created in NetBox:

  1. tenant_permissions - Multiple objects (Tenant) field to store read-write permission assignments
  2. tenant_permissions_ro - Multiple objects (Tenant) field to store read-only permission assignments

These fields should be applied to both:

  • IPAM > Prefix
  • IPAM > IP Address

How It Works

  1. When you access the sync page for a prefix, the plugin fetches all IP addresses within that prefix
  2. It compares each IP address's tenant and permission fields with the parent prefix
  3. IP addresses with mismatched values are marked for synchronization
  4. You can selectively sync individual IPs or all IPs at once
  5. The sync operation updates:
    • Tenant assignment (if the prefix has a tenant set)
    • tenant_permissions custom field
    • tenant_permissions_ro custom field

Plugin Settings

If you want to override the default values, configure the PLUGINS_CONFIG in your configuration.py:

PLUGINS_CONFIG = {
    'netbox_ip_permissions_synchronization': {
        # Add any future configuration options here
    }
}

Currently, there are no required configuration options. All settings are managed through the NetBox UI.

Permissions Required

To use this plugin, users need the following permissions:

  • ipam.view_ipaddress - View IP addresses
  • ipam.change_ipaddress - Modify IP addresses
  • ipam.view_prefix - View prefixes

Troubleshooting

Custom fields not syncing

  • Ensure that the tenant_permissions and tenant_permissions_ro custom fields exist in NetBox
  • Verify that these custom fields are assigned to both Prefix and IP Address models
  • Check that the field names match exactly (case-sensitive)

No IP addresses found

  • Make sure the prefix status is not "container" (container prefixes are skipped)
  • Verify that IP addresses exist within the prefix range
  • Check that you have permission to view the IP addresses

Permission denied errors

  • Ensure your user account has the required permissions listed above
  • Contact your NetBox administrator if you lack necessary permissions

Support

For issues, feature requests, or contributions, please visit the project repository.

License

GNU General Public License v3.0 - See LICENSE file for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

netbox_ip_permissions_synchronization-0.0.3.tar.gz (22.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

File details

Details for the file netbox_ip_permissions_synchronization-0.0.3.tar.gz.

File metadata

File hashes

Hashes for netbox_ip_permissions_synchronization-0.0.3.tar.gz
Algorithm Hash digest
SHA256 52712734bd39c712788eb78b2af3cd6e57552816946705c8428042acdf2abffd
MD5 245ddcfbdcca875c59a8d0fdf255758b
BLAKE2b-256 85eec35eb31c837480669dc62514814917badcd60a38bba7cc13863827edbd33

See more details on using hashes here.

Provenance

The following attestation bundles were made for netbox_ip_permissions_synchronization-0.0.3.tar.gz:

Publisher: publish.yml on LoH-lu/netbox_ip_permissions_synchronization

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file netbox_ip_permissions_synchronization-0.0.3-py3-none-any.whl.

File metadata

File hashes

Hashes for netbox_ip_permissions_synchronization-0.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 a059fa61675a5431c7109ee88226d17910ca9f5a9ca32b761df7e281ef9dd8db
MD5 5195d9abe461f7a3b01d243fb3f0e9df
BLAKE2b-256 9452ef40b1a5f8efb8cc92533e4bb492454ed10f760476d1fe020cd98288c1bf

See more details on using hashes here.

Provenance

The following attestation bundles were made for netbox_ip_permissions_synchronization-0.0.3-py3-none-any.whl:

Publisher: publish.yml on LoH-lu/netbox_ip_permissions_synchronization

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page