Resource Pool Models¶
The app provides four resource pool types for network resources that are not natively modelled in Nautobot's IPAM. Each pool defines a numeric range, and allocations are drawn atomically using select_for_update() to prevent duplicates under concurrent access.
Note
Route Distinguishers and Route Targets are now managed through Nautobot's native ipam.VRF and ipam.RouteTarget models. See IPAM Integration below.
VxlanVniPool¶
A pool of VXLAN Network Identifiers (VNIs) available for allocation.
| Field | Type | Description |
|---|---|---|
name |
string | Unique pool name (e.g. "dc1-vni-pool") |
range_start |
integer | First VNI in the pool (e.g. 10000) |
range_end |
integer | Last VNI in the pool (e.g. 19999) |
description |
string | Optional description |
VniAllocation¶
An individual VNI allocation from a VxlanVniPool.
| Field | Type | Description |
|---|---|---|
pool |
FK → VxlanVniPool | Parent pool |
vni |
integer | Allocated VNI value |
intent |
FK → Intent | Intent that requested the allocation |
tenant |
FK → Tenant | Owning tenant |
allocated_at |
datetime | When the allocation was made |
TunnelIdPool¶
A pool of tunnel interface IDs (e.g. for GRE, IPsec, DMVPN tunnels).
| Field | Type | Description |
|---|---|---|
name |
string | Unique pool name (e.g. "wan-tunnel-ids") |
range_start |
integer | First tunnel ID (e.g. 100) |
range_end |
integer | Last tunnel ID (e.g. 999) |
description |
string | Optional description |
TunnelIdAllocation¶
An individual tunnel ID allocation from a TunnelIdPool.
| Field | Type | Description |
|---|---|---|
pool |
FK → TunnelIdPool | Parent pool |
tunnel_id |
integer | Allocated tunnel ID |
intent |
FK → Intent | Intent that requested the allocation |
device |
FK → Device | Target device |
allocated_at |
datetime | When the allocation was made |
ManagedLoopbackPool¶
A pool of /32 loopback IP addresses.
| Field | Type | Description |
|---|---|---|
name |
string | Unique pool name (e.g. "loopback-pool") |
network |
string | CIDR network (e.g. "10.255.0.0/24") |
description |
string | Optional description |
ManagedLoopback¶
An individual loopback IP allocation from a ManagedLoopbackPool.
| Field | Type | Description |
|---|---|---|
pool |
FK → ManagedLoopbackPool | Parent pool |
ip_address |
string | Allocated /32 IP address |
intent |
FK → Intent | Intent that requested the allocation |
device |
FK → Device | Target device |
allocated_at |
datetime | When the allocation was made |
WirelessVlanPool¶
A pool of VLAN IDs reserved for wireless SSID provisioning.
| Field | Type | Description |
|---|---|---|
name |
string | Unique pool name (e.g. "wireless-vlans") |
range_start |
integer | First VLAN ID (e.g. 3000) |
range_end |
integer | Last VLAN ID (e.g. 3999) |
description |
string | Optional description |
WirelessVlanAllocation¶
An individual VLAN ID allocation from a WirelessVlanPool.
| Field | Type | Description |
|---|---|---|
pool |
FK → WirelessVlanPool | Parent pool |
vlan_id |
integer | Allocated VLAN ID |
intent |
FK → Intent | Intent that requested the allocation |
site |
string | Site / location name |
allocated_at |
datetime | When the allocation was made |
IPAM Integration¶
Route Distinguisher and Route Target allocation uses Nautobot's native IPAM models:
| Nautobot Model | How the App Uses It |
|---|---|
ipam.Namespace |
Scoping boundary for VRF uniqueness (configured via vrf_namespace setting) |
ipam.VRF |
Each intent-created VRF stores its RD in the native rd field. The description field tracks the owning intent ID. |
ipam.RouteTarget |
Import/export RT values are created as native RouteTarget objects and associated with VRFs via the standard import_targets / export_targets M2M relationships. |
RD and RT values are auto-generated in <ASN>:<counter> format using the default_bgp_asn setting.