IPAM

The IPAM tab contains three sub-tabs: IPAM Overview, VLAN, and Logging.  

The IPAM tab (also accessible from the dropdown menu as IPAM Overview) provides a listing of top-level aggregate blocks, tools to add, merge, sparse allocate, and manage aggregates, as well as multiple data visualizations. The blocks under each aggregate may be individually assigned, edited, swip'ed, and managed from the IPAM Manage page for the aggregate. For detailed information on specific aggregate and block tasks, see Working with IP AggregatesWorking with IP Blocks, and Working with IP Rules. For administrative level tasks, see IPAM Administration.

The VLAN tab shows an overview of domains and VLANs on the left sidebar, and IPAM Utilization data organized by each domain / VLAN pair. From here, Admins may add, remove, and edit domains and VLANs. Standard users may add/remove VLAN associations with blocks (as long as they have permissions on those blocks), and browse VLAN Manage (similar to IPAM Manage). See Working with VLANs for details. 

Logging provides a quick link to the logging system, where you can filter to view IPAM-only logs.

Two additional options are available in the IPAM Dropdown Menu: IPAM Treeview and Reporting:

IPAM Treeview opens a new window containing a minimalist, searchable list of all IPv4 and IPv6 blocks in ProVision.  

Reporting provides a shortcut to the Reporting Tab → IPAM reports area. 


IPAM Tab Overview

IPAM Treeview

Clicking on IPAM Treeview from the IPAM menu opens a new sidebar window containing a searchable list of all IPv4 and IPv6 blocks in ProVision and IPAM Tab shortcuts.

IPAM Treeview contains the following links that open in your main browser window:

  • Home: Opens the Dashboard Tab
  • IPv4: Opens the IPAM Tab, with aggregates filtered to IPv4 view
    • IPv4 Folder: Click the folder icon next to IPv4 to list all IPv4 blocks in ProVision (up to 200 blocks load per page). You may click on any block to open that block in IPAM Manage.
  • IPv6: Opens the IPAM Tab, with aggregates filtered to IPv6 view
    • IPv6 Folder: Click the folder icon next to IPv6to list all IPv6 blocks in ProVision (up to 200 blocks load per page). You may click on any block to open that block in IPAM Manage.

You may also filter the list by entering a full or partial CIDR in the search box at the top of treeview to limit your results. 

Advanced Button


Opens the IPAM Manage screen for all blocks under all aggregates. See Working with IP Blocks for more information on working in IPAM Manage. 

Add Aggregate

The "Add Aggregate" button opens a new page to add an aggregate block with options for RIR, VLAN, Tags, Region, Resource, and enabling sub assignments. A resource must be selected to enable sub assignments.

 

When done, click "Add Aggregate". A link to the newly created aggregate will be available or you may hit "Clear" and create another aggregate. New aggregates will be listed under the Host Utilization and Aggregate Blocks list of the IPAM Tab for further management.

Map View

Map View Overview

Map View shows aggregate locations / recent assignments in geographical format, based on the region assigned to those aggregates. Clicking on a location icon will bring up a current utilization graph and a link to that aggregate's IPAM Manage page if in Aggregates view, or recent assignment details if in Recent Assignments view.  

Google Geocode API Key Requirement for Map View

Due to changes in Google's licensing and Geocoding API, the geolocation method used for Map View in ProVision versions pre-v7.1.0 is no longer supported.

A Google Geocoding API Key is now required for geolocation data to be accessible by ProVision, and for IPAM Maps to properly determine a Region's location. As a result, IPAM Map View in versions older than 7.1.0 may not accurately display or update location information.

Enabling Map View

The IPAM aggregate map view may be enabled / disabled from the IPAM Configuration page. Once enabled, a map module will be able to be expanded in the IPAM Tab.

The following criteria must be met for Map view to correctly show data:

  • Map View enabled on the IPAM Configuration page

  • A Geocoding API Key provided in the Edit Regions page. 

    Step 1: Obtain a Google Geocoding API Key

    To get a Google Geocoding API Key, follow the instructions listed here:

    How to get a Google Geocoding API Key

    Note: In order to obtain a Google Geocoding API Key, a company must have a subscription enabled to Google Cloud Platform Console. 

    Step 2: Assign the API Key to IPAM Regions

    Once assigned a Google Geocoding API Key, from the Edit Regions page, click "Geocode API Key". Then select the Google radio button, paste the API key into the Geocode API dialog, and click "Save" . You can test the API Key by clicking the Test button at lower left. 

    Step 1: Obtain a Radar Geocoding API Key

    To get a Radar Geocoding API Key, follow the instructions listed here:

    How to get a Radar Geocoding API Key 

    Step 2: Assign the API Key to IPAM Regions

    Once assigned a Radar Geocoding API Key, from the Edit Regions page, click "Geocode API Key". Then select the Radar radio button, paste the API key into the Geocode API dialog, and click "Save". You can test the API Key by clicking the Test button at lower left.

  • Regions created with a valid "Address" (location) field. The "Address" field may be a street address, city, airport code, or geo-coordinates. See Edit Regions for additional detail.

    Miscellaneous Terms as Addresses

    Being that the validity of the "Address" field is determined by the Geocoding API, unexpected location mapping may occur if a company name or other non-location specific term is used in the Address field.

    Google treats the item as a search term and returns the most likely location result back - but it might not be what you were expecting! When in doubt, check the address term by pasting it into Google Search, and verify that the top result returns your desired location.

  • Regions enabled in IPAM Columns and assigned to aggregates / blocks for the IPAM Map view to populate data. See Edit IP Block Attributes for additional detail.

Working in Map View

The map view may be set by either selecting a predefined map area from the "Maps Settings" → "Positioning" dropdown (US, US & Europe, Europe, South America, World), or chose a custom area set by zooming / navigating to the desired map area. 

To save the currently viewable area as the Default view, click "Save current position" at top.

Map View Settings:

Visualization Dropdown: Select "Aggregates" to view all available aggregates with region data, or "Recent Assignments" to view block assignments made within the past 30 days.

Positioning Dropdown: Select a predefined area for the map view range: US, US & Europe, Europe, South America, or World. 

Save current Position: Click to save the current map view range as the default view.

Toggle Full Screen: Click to view full screen map.

Aggregate Detail Box: 

Provides utilization data and a shortcut link to the IPAM Manage screen for that aggregate if in "Aggregates" view, or assignment details if in "Recent Assignments" view. 

Aggregate Blocks List

Provides a searchable / filterable listing of all aggregate blocks in the left sidebar, links IPAM Manage for the aggregates, and Merge Aggregate functionality. 

If a note has been entered for a top-level aggregate (the topmost parent block), the note will display under the aggregate listing.

Search / Filter Aggregates

Search for and filter IPAM Aggregates from the Aggregate Blocks List:

  • Select "All", "IPv4", IPv6", or "DHCP" to sort the list by type (You may also access the type filters by right clicking anywhere in the Aggregate Blocks box)
  • User the filter / search box to search by CIDR
  • Filter by Region, RIR, or LIR by clicking the "more filters" link, then selecting an item from the dropdown menus.
  • Single click on the CIDR to zoom to the aggregate details in the Utilization list
  • A shortcut to IPAM Manage for an aggregate is provided by clicking the "open" link that appears when hovering over an aggregate block in the list.

To reset the list, right click anywhere in the Aggregates Blocks list and select "Reset View". 


Top-Level Aggregate / Host Utilization Box Overview

The Top-Level Aggregate Host Utilization box provides detailed information on that aggregate, including:

  • CIDR: Single-click to IPAM Manage for the aggregate
  • RIR information: displays the aggregate's RIR, as set at creation (1918, ARIN, RIPE, LACNIC, AfriNIC, APNIC)
  • Aggregate Chart Views: Four Aggregate chart views are available, - PieBarTree, and Grid view. Switch between each chart by clicking on the respective icons in the Aggregate header (marked above). 
  • Aggregate Actions (Gear Icon):
    • Manage Aggregate: Opens IPAM Manage for the aggregate. See Working with IP Blocks for information on working in IPAM Manage. Clicking on the Block CIDR in the header also opens the IPAM Manage page.
    • Delete: Deletes the Aggregate (provides a warning).
    • Enable / Disable Sparse Allocation (IPv6 only): Enable or disable Sparse Allocation for an IPv6 aggregate. Enabling will automatically generate a Numbering Authority Sparse Allocate Domain for use with the aggregate. 
    • Sparse Allocate (IPv6 only): Appears only when Sparse Allocation is enabled for an IPv6 aggregate. Opens a menu to select or create a resource to assign a block to, using the sparse allocate algorithm to disperse the assignment(s) throughout the aggregate. See: Working with IP Aggregates
  • Region(s): Displays the primary region(s) associated with the aggregate, either at aggregate creation or from regions associated with blocks under that aggregate. Clicking on the region link for an aggregate will open IPAM Manage for the aggregate, filtered to view blocks associated with that region.
  • Utilization: Utilization displayed as both a pie chart and detailed percentages. Utilization statuses include:
    • Available: A status of "Available" indicates the block is free and able to immediately be assigned or allocated to a resource.
    • Allocated: Allocated blocks have been assigned to an overarching resource, but have subassignments enabled and may have smaller blocks assigned out of them to other Resources, such as customers or DHCP Pools. 
    • Assigned: A status of "Assigned" indicates that the block has been assigned to a Resource, with no subassignment capability, and is unavailable.
    • Holding: Blocks in "Holding" have recently been unassigned, and are held for a set duration in the IPAM Holding Tank, unless otherwise overridden, reassigned, or reclaimed from Holding.
  • Resources: The top five Resources assigned under that aggregate with the most assigned block space.
  • Recent Assignments: The five most recent block assignments under that aggregate, with the CIDR, assigned resource link, and assignment date.


Additional IPAM Features

ProVision IPAM-As-WHOIS

ProVision supports utilization as a WHOIS server via REST API requests. You can query Resources, Contacts, and IP Blocks, just like a traditional WHOIS server, only ours serves data from the ProVision database.

This feature provides an alternate route to provide ProVision data to legacy workflows on your network.  If a team is used to query WHOIS, they can query Provision.  If a system needs to talk to WHOIS, it can talk to ProVision-as-WHOIS.

Setup

The ProVision WHOIS Server is a thin client for our REST API that listens on port 43 and accepts WHOIS requests that gets forwarded to our API. It is written in Python 3 using the socketserver module, and uses the ProVision endpoint /api/ipam/whois to receive all requests from the WHOIS server.

The main business logic is located in services/WhoisService.php

Running the Server manually

The Python requests library must first be installed:

Ubuntu:

sudo apt install -y python3-pip
pip3 install requests

CentOS / Alma Linux:

sudo yum install python3-pip OR sudo dnf install python3-pip
pip3 install requests

The server is located at whois_server/main.py in the ProVision repository.

Open main.py and update these variables:

self.url = "https://localhost/qa-7.4.0/api/v2/ipam/whois"
self.username = "apiUserName"
self.password = "apiPassword"


to match the current API location and credentials, so the WHOIS requests can be properly forwarded to our API.

Running the server can be done with: sudo python3 main.py (We need root because we are binding to port 43)

Quering the WHOIS server
  1. install whois if not present (sudo apt-get install whois)
  2. whois -h 127.0.0.1 ﹤query﹥
Installing the WHOIS server as a service

Different Linux distributions might have different ways to setup a service that runs on startup.

systemd

There is a Unit file for systemd in the repository: whois_server/provision_whois.service that is used when a service is created in systemd env.

1) Edit the file to setup the proper path to the python server/file

ExecStart=/usr/bin/python3 /root/whois_server/main.py
WorkingDirectory=/root/whois_server/

2) Copy the file to /etc/systemd/system (on CentOS this directory should be: /lib/systemd/system/) -

sudo cp whois_server/provision_whois.service /etc/systemd/system/provision_whois.service

3) Start the service with service provision_whois start

4) Verify that is working with service provision_whois status and making a test query whois -h 127.0.0.1 ﹤query﹥

The systemd services are run as root, so there shouldn't be issues with binding to port 43.

init.d

There is also init.d file located at whois_server/provision_whois

1) Edit the file to setup the proper path to the python server/file

DAEMON_OPTS="/var/www/projects/whois/app.py"

2) Copy the file to /etc/init.d/

3) chmod +x /etc/init.d/provision_whois -v

4) Verify that is working with service provision_whois status and making a test query whois -h 127.0.0.1 ﹤query﹥


GEO IP Exporter

ProVision supports the entering and export of IETF format-compliant GeoIP data for resources which have assigned IP blocks. 

The Geo IP Exporter may be enabled as a scheduled task (See: Scheduler Tab) that, at run time, searches the ProVision instance for resources which have IP addresses and an address provided in the Contact Info Gadget, then saves the resulting .csv to the ProVision root directory. 

If a resource has an assigned a non-1918 IP address, and either Geo IP location data or a Mailing Address entered in the Contact Info Gadget, then the data will be included in the .csv output. If an IP address is not associated with the resource, or if neither Geo IP / Mailing Address has been provided, the resource will be skipped. 

This feature includes updates to the following areas:

  • Updates to the Contact Info Gadget to provide Geo IP fields
  • A Geo IP Export Scheduler Task
  • Writes files to the ProVision root directory

For additional information, expand the walkthrough below:

1) Enter GEO IP data to Resources

Add GEO IP location data to a Resource by selecting "Edit" for the Contact Info Gadget.

Enter a separate address to denote as the GEO IP location, or you may select "Same as Mailing Address":

2) Set up the Geo IP Export Scheduler Task

Create a Scheduler task to export GEO IP data:

3) Run the Scheduler Task / File Access

Run the GEO IP scheduler task, either via "Run Now" or as a scheduled run - the task will search for resources with an assigned IP address, and either Geo IP location data or a Mailing Address entered in the Contact Info Gadget, and add the data to the .csv output.

Once the task has completed, the GEO IP data will be written to the ProVision root directory as "geoip_feed.csv":

Working with IPAM Aggregates

For additional information on performing IPAM tasks and working with aggregates and blocks, continue on to Working with IP Aggregates and Working with IP Blocks.

Additional Information