Load Balancer Models¶
Added in version 3.0.0
This section provides an overview of the data models included in Nautobot to describe load balancers. These models enable users to represent, manage, and track load balancing configurations in a vendor-neutral and infrastructure-aware manner.
Models include Virtual Servers, Load Balancer Pools, Load Balancer Pool Members, Health Check Monitors, and SSL Certificate Profiles. Several of these models integrate with other parts of Nautobot core, including IPAM (for VIPs and pool member IPs), DCIM (for device and chassis assignment), Cloud (for service mapping), and Tenancy (for tenant ownership).
The models were built with traditional enterprise vendor implementations in mind, such as F5, Citrix NetScaler, A10 Networks, VMware Avi Load Balancer, and Fortinet.
You are encouraged to leverage the load balancer feature guide for a practical approach at building the data model and configurations.
Order of Operations¶
When configuring objects with the Load Balancer data models, follow this recommended order (as outlined in the Quick Walkthrough):
- Virtual Servers (link to VIPs and Pools)
- Load Balancer Pool Members (assign them to Pools)
- Load Balancer Pools
- Certificate Profiles (if needed)
- Health Check Monitors
- IP Addresses
Tip
Your actual build out may require you to fill out some of the necessary relationships and prerequisites, however logically working top to bottom helps ensure you are only building what you require.
Models Overview¶
| Model Name | Description |
|---|---|
| Virtual Server | Represents a front-end VIP and port combination that distributes traffic to a backend pool. |
| Load Balancer Pool | A group of backend servers (Pool Members) serving traffic for a Virtual Server. |
| Load Balancer Pool Member | An individual backend node within a Load Balancer Pool. |
| Certificate Profile | Stores metadata for SSL/TLS certificates used by Virtual Servers or Pool Members. |
| Health Check Monitor | Monitors the health of Pool Members and Pools to determine availability. |
Entity Relationship Diagram¶
---
title: Load Balancer Entity Relationship Diagram
---
erDiagram
"load_balancers.VirtualServer"[VirtualServer] {
string name UK
IPAddress vip FK
int port
choices protocol
Prefix source_nat_pool FK
choices source_nat_type
choices load_balancer_type
boolean enabled
boolean ssl_offload
Device device FK
DeviceRedundancyGroup device_redundancy_group FK
CloudService cloud_service FK
VirtualChassis virtual_chassis FK
Tenant tenant FK
HealthCheckMonitor health_check_monitor FK
CertificateProfile certificate_profiles FK
LoadBalancerPool load_balancer_pool FK
}
"load_balancers.LoadBalancerPool"[LoadBalancerPool] {
string name
choices load_balancing_algorithm
HealthCheckMonitor health_check_monitor FK
Tenant tenant FK
}
"load_balancers.LoadBalancerPoolMember"[LoadBalancerPoolMember] {
IPAddress ip_address FK, UK
string label
LoadBalancerPool load_balancer_pool FK
Status status FK
CertificateProfile certificate_profiles FK
int port UK
boolean ssl_offload
HealthCheckMonitor health_check_monitor FK
Tenant tenant FK
}
"load_balancers.HealthCheckMonitor"[HealthCheckMonitor] {
string name
int interval
int retry
int timeout
int port
choices health_check_type
Tenant tenant FK
}
"load_balancers.CertificateProfile"[CertificateProfile] {
string name UK
choices certificate_type
string certificate_file_path
string chain_file_path
string key_file_path
datetime expiration_date
string cipher
Tenant tenant FK
}
"ipam.IPAddress"[IPAddress] {
}
"ipam.Prefix"[Prefix] {
}
"dcim.Device"[Device] {
}
"dcim.DeviceRedundancyGroup"[DeviceRedundancyGroup] {
}
"cloud.CloudService"[CloudService] {
}
"dcim.VirtualChassis"[VirtualChassis] {
}
"tenancy.Tenant"[Tenant] {
}
"load_balancers.VirtualServer" }o--|| "ipam.IPAddress" : "must have"
"load_balancers.VirtualServer" }o--o| "ipam.Prefix" : has
"load_balancers.VirtualServer" }o--o| "dcim.Device" : has
"load_balancers.VirtualServer" }o--o| "dcim.DeviceRedundancyGroup" : has
"load_balancers.VirtualServer" }o--o| "cloud.CloudService" : has
"load_balancers.VirtualServer" }o--o| "dcim.VirtualChassis" : has
"load_balancers.VirtualServer" }o--o| "tenancy.Tenant" : has
"load_balancers.VirtualServer" }o--o| "load_balancers.HealthCheckMonitor" : "may have"
"load_balancers.VirtualServer" }o--o{ "load_balancers.CertificateProfile" : "may have"
"load_balancers.VirtualServer" }o--o| "load_balancers.LoadBalancerPool" : "may have"
"load_balancers.LoadBalancerPool" }o--o| "load_balancers.HealthCheckMonitor" : "may have"
"load_balancers.LoadBalancerPool" }o--o| "tenancy.Tenant" : has
"load_balancers.LoadBalancerPoolMember" }o--|| "ipam.IPAddress" : "must have"
"load_balancers.LoadBalancerPoolMember" }o--|| "load_balancers.LoadBalancerPool" : "must have"
"load_balancers.LoadBalancerPoolMember" }o--o{ "load_balancers.CertificateProfile" : "may have"
"load_balancers.LoadBalancerPoolMember" }o--o| "load_balancers.HealthCheckMonitor" : "may have"
"load_balancers.LoadBalancerPoolMember" }o--o| "tenancy.Tenant" : has
"load_balancers.HealthCheckMonitor" }o--o| "tenancy.Tenant" : has
"load_balancers.CertificateProfile" }o--o| "tenancy.Tenant" : has
Practical Diagram¶
This diagram provides a basic but practical example of how the model is used.

Vendor Data Mappings¶
This table will help you map to specific vendor terminology.
| Nautobot Model | F5 | Citrix NetScaler | A10 Networks | VMware Avi Load Balancer | Fortinet (FortiADC) |
|---|---|---|---|---|---|
| VirtualServer | Virtual Server | Virtual Server | Virtual Server | Virtual Service | Virtual Server |
| LoadBalancerPool | Pool | Service Group | Service Group / Pool | Pool | Server Pool |
| LoadBalancerPoolMember | Pool Member / Node | Service / Server | Server | Pool Member | Pool Member / Real Server |
| HealthCheckMonitor | Monitor | Monitor | Health Monitor | Health Monitor | Health Check |
| CertificateProfile | SSL Profile / Certificate | SSL Profile / Certificate | SSL Template / Cert | SSL Profile / Certificate | SSL Profile / Certificate |
Additional details:
- F5: "Pool Member" is a node+port; "Node" is just an IP. SSL Profiles are used for certificates.
- Citrix NetScaler: "Service Group" is a group of "Services" (servers). SSL Profiles are also used.
- A10 Networks: "Service Group" is a pool; "Server" is a backend. SSL Templates manage certificates.
- VMware Avi Load Balancer: "Virtual Service" is the frontend; "Pool" is the backend group; "Pool Member" is a server. SSL Profiles are used.
- Fortinet: "Virtual Server" is the frontend; "Server Pool" is the backend group; "Real Server" is a pool member. SSL Profiles are used.
Vendor-Specific Configuration with Custom Fields¶
If you need to store vendor-specific configuration elements — such as F5 iRules, persistence profiles, or application-layer settings — the recommended approach is to use Custom Fields:
- Use a multi-select custom field to track named elements like iRules or HTTP profiles.
- Use a JSON custom field to store unstructured vendor configuration snippets.
- Custom Fields can be scoped to specific object types (e.g., only
VirtualServerorLoadBalancerPoolMember) to reflect how your load balancer applies these settings.
This design gives you flexibility to tailor the data model to your environment without forcing unsupported abstractions across different load balancer vendors.
Questions to ask of the data model¶
Given the data model, what questions would a user ask?
- Given a virtual server, I would like to know which certificates it is using
- Given a virtual server, I would like to know which device it is on
- Given a pool, I would like to know all the pool members
- Given a pool, I would like to know all the virtual servers it is connected to
- I would like to be able to understand what certificates are going to expire soon