Skip to content

Nautobot VPN APP

A Nautobot plugin designed to model, visualize, and manage VPN infrastructure, including IPSec tunnels, IKE gateways, crypto profiles, and dynamic topology diagrams sourced from Neo4j.


Key Features

  • IKE Gateway and IPSec Tunnel modeling
  • Inline or default crypto profile selection
  • Dynamic tunnel provisioning form with interface auto-selection
  • Topology visualization via Neo4j + Cytoscape

Requirements

  • Nautobot >= 2.2.0
  • Python >= 3.8
  • Neo4j >= 5.0 (for topology view)

Installation

1. Install via pip

pip install nautobot-app-vpn

2. Enable the plugin

In your nautobot_config.py, add to PLUGINS and configure Neo4j settings:

PLUGINS = [
    "nautobot_app_vpn",
    # ...
]

PLUGINS_CONFIG = {
    "nautobot_app_vpn": {
        "neo4j": {
            "uri": "bolt://neo4j:7687",
            "user": "neo4j",
            "password": "testneo4j",  # Change this
        }
    }
}

Docker/Compose Setup (Optional)

If you are using docker-compose, include this plugin in your plugin_requirements.txt:

nautobot-app-vpn

Then rebuild Nautobot:

docker-compose build nautobot

Usage

Topology View

The plugin provides a Neo4j-powered dashboard under Plugins > VPN Dashboard, enabling visualization of active IPSec tunnels and their metadata.

Forms for Provisioning

  • Auto-select interfaces based on ISP zone tags
  • Auto-populate IPs from synced device data
  • Support dynamic IP tunnels
  • Create or select IKE/IPsec crypto profiles

Screenshots

VPN Menu

VPN Dashboard

IKE Crypto

IPsec Crypto

IKE Gateway

IPSec Tunnel

Tunnel Monitor


Development

Clone and install in editable mode:

git clone https://github.com/npolisetty26/nautobot-app-vpn.git
cd nautobot-app-vpn
poetry install

Run linters locally

ruff check .
yamllint .

Contributing

Pull requests are welcome! Please ensure code follows Nautobot plugin guidelines and passes all checks.


License

Apache License 2.0. See LICENSE for details.


Author

Maintained by @npolisetty26