5 Useful NetBox Plugins and How to Use Them

NetBox is a powerful open-source web application designed to help manage and document computer networks. It provides an elegant way to visualize your network infrastructure, IP addresses, and other vital components. 

However, one of the most potent aspects of NetBox is its plugin system, which allows you to extend its functionality even further. In this post, we’ll explore five useful plugins for NetBox that you should consider using to enhance your network management experience.   

1. NextBox UI Plugin

GitHub

The NextBox UI Plugin is a network topology visualization plugin. It produces flexible displays of interconnected devices, and uses layers to display the information you need to see at a glance. Say goodbye to those outdated network diagrams!

To get started with the NextBox UI Plugin, make sure your NetBox instance is running on version 2.9 or later. First, you’ll need to clone the NextBox UI Plugin repository into your NetBox plugins directory. Then, you can proceed to activate the virtual environment (Assuming you use a Virtual Environment for NetBox). And finally, you can integrate it into the project with pip:

```

git clone https://github.com/iDebugAll/nextbox-ui-plugin

cd nextbox-ui-plugin

source /opt/netbox/venv/bin/activate

(venv) $ pip3 install .

```

After installing the packages, you must add ‘nextbox_ui_plugin’ to the PLUGINS list in your NetBox configuration.py file. To do this, simply open the configuration.py file and add the following lines:

```python

PLUGINS = [

    'nextbox_ui_plugin',

]

```

To serve the static files for topology visualization directly through the HTTP frontend, include them in the plugin package and then use the command below to transfer them to the NetBox static root directory:

```

(venv) $ cd /opt/netbox/netbox/

(venv) $ python3 manage.py collectstatic

```

Next, for plugin version 0.8.0 and above, you must apply the database migrations with Django manage.py:

```

(venv) $ python3 manage.py migrate

```

Finally, restart your NetBox WSGI service to experience the enhanced user interface.

```

sudo systemctl restart netbox

```

With the NextBox UI Plugin in place, you’ll be able to easily visualize your network topologies, making your network management tasks more enjoyable and efficient.

2. NetBox Access Control Lists (ACLs) 

GitHub

This plugin allows you to manage access control lists within NetBox, helping enforce security rules across your network. Before proceeding, verify that your NetBox instance is operating on version 3.2 or higher.

Begin by installing the necessary packages. You can do this by running the pip install command:

```

pip install netbox-acls

equirements.txt

```

Once the packages are installed, update your NetBox configuration.py file. Open the file and add ‘netbox_acls’ to the PLUGINS list, as shown below:

```

PLUGINS = [ 'netbox_acls', ]

PLUGINS_CONFIG = {

    "netbox_acls": {

        "top_level_menu": True

    },

}

```

Notice that if top_level_meny is set to True a top level menu item for the plugin will be added. If set to False, however, the plugin will add the menu item under the Plugins menu item instead.

Now restart your NetBox instance so changes can be applied. 

With the NetBox ACLs plugin now integrated, you can manage ACLs directly within NetBox. This plugin is particularly useful for network administrators and security officers, offering an effective way to handle network permissions and enhance overall network security.

3. NetBox DNS

GitHub

The NetBox DNS plugin is an essential tool if you want to manage your domain name system (DNS) records directly within NetBox. This plugin allows you to create and manage DNS zones, records, and nameservers, providing seamless integration with your network infrastructure data.

In order to take advantage of the NetBox DNS plugin, we will need to follow the same steps as before. 

Start by verifying that your NetBox instance is operating on version 3.4 or above. 

Next, just as we did before, we activate the environment with the source command and move inside it. Then, all you need to do is install the plugin with pip.

```

pip install netbox-dns

```

Next, modify your NetBox configuration.py file by incorporating ‘netbox_dns’ within the PLUGINS list, as demonstrated below:

```python

PLUGINS = [

    'netbox_dns',

]

```

As usual, you must restart your NetBox instance to complete the process. Then you will have the ability to manage DNS records directly from the NetBox interface, streamlining the integration with your existing network infrastructure data.

4. NetBox BGP

GitHub

NetBox BGP is a fantastic plugin for managing your Border Gateway Protocol (BGP) configurations within NetBox. This plugin allows you to create and manage BGP sessions, autonomous systems, and prefixes, providing a centralized location for your BGP data.

To utilize the NetBox BGP plugin, ensure that your NetBox instance runs on version 2.10 or later. 

Now, simply install the plugin with the pip command inside the environment:

```

pip install netbox-bgp

```

After installing the required packages, it’s time to update your NetBox configuration.py file. Now open the file and include ‘netbox_bgp’ in the PLUGINS list, as shown here:

```python

PLUGINS = [

    'netbox_bgp',

]

```

Finally, restart your NetBox instance to apply the changes. With the NetBox BGP plugin in place, you can now efficiently manage your Border Gateway Protocol configurations directly from the NetBox interface. 

Additionally, the following options are available:

  • device_ext_page: String (default right) Device related BGP sessions table position. The following values are available:
    • left, right, full_width. Set empty value for disable.
  • top_level_menu: Bool (default False) Enable top level section navigation menu for the plugin.

You can find more information on the official repository here.

This streamlined approach allows you to create and manage BGP sessions, autonomous systems, and prefixes, providing a centralized location for all your BGP data.

5. NetBox Proxbox

GitHub

NetBox Proxbox is an excellent plugin for managing your virtualization infrastructure within NetBox. This plugin integrates with the popular open-source virtualization platform, Proxmox, allowing you to keep track of your clusters, nodes, virtual machines (VMs) and containers directly within NetBox.

To take advantage of the NetBox Proxbox plugin, confirm that your NetBox instance runs on version 3.0.0 or later. 

Similarly to the previous plugins, we need to set up the environment, activate it, and change directories to it. Once that is done, simply use the pip command to install the plugin.

```

pip install netbox-proxbox

```

Once the required packages are installed, you can change the Netbox ‘configuration.py’ to enable the plugin and set the plugin parameters.

```

PLUGINS=[‘netbox_proxbox’]

PLUGINS_CONFIG = {

    'netbox_proxbox': {

        'proxmox': {

            'domain': 'proxbox.example.com',    # May also be IP address

            'http_port': 8006,

            'user': 'root@pam',   # always required

            'password': 'Strong@P4ssword', # only required, if you don't want to use token based authentication

            'token': {

                'name': 'tokenID', # Only type the token name and not the 'user@pam:tokenID' format

                'value': '039az154-23b2-4be0-8d20-b66abc8c4686'

            },

            'ssl': False

        },

        'netbox': {

            'domain': 'localhost',     # Ensure localhost is added to ALLOWED_HOSTS

            'http_port': 8001,     # Gunicorn port.

            'token': '0dd7cddfaee3b38bbffbd2937d44c4a03f9c9d38',

            'ssl': False, # There is no support to SSL on Netbox yet, so let it always False.

            'settings': {

                'virtualmachine_role_id' : 0,

                'node_role_id' : 0,

                'site_id': 0

            }

        }

    }

}

```

Only parameters with values different from the default ones need to be configured. This implies that configurations with values identical to those below can be disregarded. 

Additionally, you can change the Netbox ‘settings.py’ to include Proxbox Template directory.

Next, run the database migrations:

```

cd /opt/netbox/netbox/

python3 manage.py migrate

```

Finally, restart the WSGI Service to load the plugin:

```

sudo systemctl restart netbox

```

With these configurations in place, you can seamlessly manage your virtualization infrastructure within NetBox, giving you better control over your virtual machines and containers. 

The integration of NetBox Proxbox with the popular open-source virtualization platform Proxmox offers a centralized solution for managing your network and virtualization resources.

You can find more information on the official repository here.

NetBox Plugins Conclusion

These five plugins greatly enhance the functionality of your NetBox instance, making it even more powerful and versatile for managing your network infrastructure.  These plugins give you a centralized location for your DNS records, BGP configurations, virtualization infrastructure, and Firewall rules. Plus, with the NextBox UI Plugin, you’ll have beautiful visualizations of your networks. So why wait? Try these plugins and elevate your NetBox experience to the next level!

Have an idea for a future plugin? Visit the NetBox Plugin Ideas Board to submit your idea or upvote another. Select plugins are eligible for a bounty collection upon completion.

This post was written by Juan Reyes. As an entrepreneur, skilled engineer, and mental health champion, Juan pursues sustainable self-growth, embodying leadership, wit, and passion. With over 15 years of experience in the tech industry, Juan has had the opportunity to work with some of the most prominent players in mobile development, web development, and e-commerce in Japan and the US.

Share the Post:

Related Posts