On this page
Load balancer migration guide
Migrating from F5 BIG-IP Local Traffic Manager (LTM) to VMware Avi Load Balancer means mapping each BIG-IP virtual server, pool, monitor, profile and iRule onto an Avi virtual service, pool, health monitor, application or network profile, and HTTP policy or DataScript, then moving traffic one application at a time. Broadcom's Avi Load Balancer Conversion Tool automates most of the object translation from bigip.conf, but iRules, ASM/WAF, APM-style authentication, SNAT pools and certificates still need a person to review and rework them.
We plan and run load balancer migrations as part of VMware Cloud Foundation (VCF) programmes, so this guide is written for the engineer who has to do the work: what the Avi architecture changes, how each F5 object maps across, what the conversion tooling actually produces, and how to cut traffic over without a long outage. Product behaviour comes from Broadcom TechDocs, Broadcom's conversion tool documentation and F5's own manuals. Where we give an opinion, we say so.
Key points
- Avi splits the load balancer into a Controller cluster (management and control) and Service Engines (data plane) grouped into SE groups. There is no appliance pair to copy across.
- Most LTM objects have a direct Avi equivalent: virtual server to virtual service, pool to pool, monitor to health monitor, profiles to application, TCP/UDP, persistence and SSL/TLS profiles.
- Broadcom's conversion tooling takes bigip.conf (offline) or connects to the BIG-IP (online) and outputs Avi configuration plus a ConversionStatus report that marks every object as successful, partial, skipped or not supported.
- iRules, WAF/ASM policies, external monitors, authentication, SNAT pools and system settings were listed as unsupported by the open-source F5 converter. Budget engineering time for them.
- Cutover is decided per application by whether the VIP keeps its address: same-subnet VIP swap, BGP route health injection, or a DNS change to a new VIP.
What changes when you move from F5 BIG-IP to Avi?
An F5 BIG-IP LTM pair is two appliances (physical or virtual) that each hold the full configuration, the management plane and the data plane. One unit is active, the other waits, and config sync keeps them aligned. BIG-IQ Centralized Management can sit above many pairs; F5 describes it as a tool that helps you manage BIG-IP devices and their services from one place. It does not carry application traffic.
VMware Avi Load Balancer separates those roles. The Avi Controller holds configuration, analytics and placement decisions. Broadcom documents Controller clusters as either one node (standalone) or three nodes, and a three-node cluster needs a quorum of two to stay operational. Service Engines (SEs) carry the traffic. If the whole Controller cluster goes down, the SEs keep forwarding traffic for configured virtual services, which Broadcom calls headless mode.
SEs live in SE groups, and the high availability mode is a property of the SE group. Broadcom documents three modes:
- Legacy HA (active/standby): exactly two SEs, built to mimic a hardware pair and make migration from appliances easier. The surviving SE takes over VIPs and SNAT IPs on failure.
- Elastic HA N+M (the default): each virtual service runs on one SE, and the Controller keeps M spare SEs of buffer capacity.
- Elastic HA active/active: each virtual service is placed on more than one SE, with a default minimum of two.
Two practical consequences follow. First, the migration becomes a set of placement decisions: which applications land in which SE group, with which HA mode, in which tenant. Second, Legacy HA exists so an F5 estate can land on familiar active/standby behaviour first. Some designs need it: Broadcom documents that Preserve Client IP requires an active/standby SE group, because without source NAT the network cannot tell which SE should receive reply traffic.
3
Controller nodes in a clustered Avi deployment
2 of 3
Controller nodes needed for cluster quorum
2
SEs in a Legacy HA (active/standby) SE group
1 core
served by each Avi Service Unit on a virtual SE
How do F5 objects map to Avi objects?
F5 describes a virtual server as a traffic-management object represented by a virtual IP address and a service, with a default pool, profiles, and resources such as iRules, persistence and SNAT attached to it. Avi spreads the same ideas over more, smaller objects. The biggest structural change is that persistence and health monitors attach to the Avi pool, while the virtual service carries the application profile, TCP/UDP profile, SSL settings and policies.
| F5 BIG-IP object | Avi object | Where it attaches in Avi | Watch for |
|---|---|---|---|
| Virtual server | Virtual service | VIP held in a VsVip object | Several F5 VSs sharing one virtual address |
| Pool, nodes | Pool, servers | Virtual service | Shared pools may be duplicated |
| Monitor | Health monitor | Pool | External monitor scripts |
| HTTP / TCP / UDP / FastL4 profile | Application profile + TCP/UDP profile | Virtual service | HTTP needs a TCP Proxy profile |
| OneConnect | Connection multiplex | HTTP application profile | "-cmd" profile copies |
| Persistence profile | Persistence profile | Pool | Type mismatch (see below) |
| Client SSL profile, cert, key | SSL/TLS profile, SSL key and certificate | Virtual service | Cipher list resets to Avi default |
| SNAT automap / SNAT pool | SE source NAT, optional SNAT IP | Virtual service / SE group | SNAT pools not converted |
| Data groups | String groups, IP address groups | Referenced by policies | Only useful if the iRule is rebuilt |
| iRule | HTTP policy set, DataScript | Virtual service | Manual conversion and testing |
Table 1. F5 BIG-IP LTM to Avi object mapping. Attachment points from Broadcom TechDocs; "watch for" items from the VMware migration white paper and our project experience.
Virtual servers, pools and health monitors
These are the cleanest part of the move. In the VMware migration white paper's sample conversion of a real bigip.conf, virtual servers, pools, health monitors and profiles appear under both "Successful" and "Partial" status. Partial means some settings inside the object had no equivalent and the converter lists what it skipped. Read that list for every partial object; it is where behavioural differences hide.
Avi health monitors attach to the pool, and Broadcom documents that all active monitors on a pool must succeed for a server to be marked up. That matches F5's default "all" availability rule, but if you used F5's "at least N of" monitor rules, check the result by hand. Avi also supports external monitors that run a shell, Python or Perl script, where any output on stdout counts as success. F5 external monitor scripts do not come across on their own; the converter reports them as "Missing File" or "External Monitor".
Profiles and connection reuse
Avi application profiles come in DNS, HTTP, L4, L4 SSL/TLS, SIP and Syslog types, and the TCP/UDP profile sits beside them. An HTTP application profile only works with a TCP Proxy network profile. F5 OneConnect has no separate object in Avi: it becomes the connection multiplex setting inside the HTTP application profile. Because of that, the white paper explains, two F5 virtual servers that share an HTTP profile but differ on OneConnect produce two Avi application profiles, one of them with a "-cmd" (connection multiplex disabled) suffix.
Persistence
Avi persistence profile types are HTTP Cookie, App Cookie, Custom HTTP Header, Client IP Address, TLS and GSLB Site, and they attach to pools. F5 cookie insert and source address affinity have obvious targets. Universal persistence driven by an iRule does not, so treat it as part of the iRule work.
SSL profiles and certificates
Certificates and keys are not in bigip.conf. If the conversion tool cannot reach them, it creates placeholder objects named with "auto_created" and binds them to the virtual services, and you replace them after import. The white paper also notes that the converter applies Avi's default cipher suite rather than the ciphers configured on F5. For most applications that is fine. For anything with old clients, payment terminals or a compliance cipher list, compare the accepted ciphers before cutover.
SNAT and client IP visibility
On F5, SNAT is something you add to a virtual server. On Avi it is the default: Broadcom documents that SEs source NAT connections to pool members so replies return to the SE that owns the flow, which is what lets a virtual service scale out. Servers therefore see SE addresses. If an application logs client IPs, use X-Forwarded-For on HTTP, PROXY protocol on TCP where the application supports it, or Preserve Client IP, which needs an active/standby SE group and the SEs acting as the servers' default gateway.
Sizing an F5 exit?
Estimate the effort for your F5 to Avi migration in a few minutes
Our estimator turns virtual server, iRule and partition counts into a phased effort range, so you can budget the conversion, rework and cutover windows before you talk to Broadcom.
Open the F5 to Avi estimatorWhat does the F5 to Avi conversion tool do?
There are two generations of tooling, and the naming is confusing enough that it is worth setting out.
Current
Avi Load Balancer Conversion Tool (ACT)
Broadcom's July 2025 datasheet describes an OVA for vSphere (4 vCPUs, 8 GB RAM, 160 GB disk) that converts from F5 BIG-IP, VMware NSX Load Balancer and Citrix NetScaler (CLI only), and pushes configuration to Avi staging and destination Controllers. Broadcom KB 407620 refers to version 2.8.1.
Original
Open-source f5_converter
A Python script in the Avi migration tools package, run from the avitools Docker container or from the Controller. The vmware/alb-sdk README says the migration tools are now released separately as ACT from 30.2.x, and the avinetworks/avitools repository was archived in September 2026.
Both work the same way at heart. Input is either an offline bigip.conf file or an online connection to the BIG-IP that downloads the configuration, certificates and keys. Broadcom KB 407620 notes that online mode in ACT 2.8.1 and earlier fails with a remote authentication account, and the workaround is a local F5 account or offline mode with an exported config file. Broadcom does not publish a public download page for ACT that we could find, so ask your Broadcom account team how you get access.
What the converter produces
The white paper lists the open-source converter's output directory:
- avi_config_create_object.yml and avi_config_delete_object.yml: Ansible playbooks that create and delete the converted objects
- ConversionStatus.xlsx: one row per F5 object with its migration status and the Avi configuration it became, plus a pivot summary
- Output.json: the converted configuration in Avi JSON format
- converter.log: the run log, with WARNING and ERROR lines to investigate
The basic offline conversion from the white paper looks like this. The Controller version and cloud name are examples from that document.
python3 /usr/local/bin/f5_converter.py -f bigip_v11.conf --ansible --controller_version 21.1.3 --cloud_name Default-cloud --no_object_merge --not_in_use
The flags that matter most in practice are --not_in_use (skip unreferenced and stale objects), --vs_filter (convert only named virtual servers), --partition_config (add partition config files on top of Common), --tenant, --segroup, --cloud_name and --vrf (place objects), --prefix (prefix object names), --convertsnat, and -l (a local folder of certificates and keys). The resulting playbook is pushed with ansible-playbook against the Controller.
Reading the ConversionStatus report
The report is the single most useful artefact in the project. The white paper defines its statuses: Successful, Partial, Skipped, Missing File, Not Applicable, Not Supported, Indirect and External Monitor. In its sample run against one bigip.conf, the counts were 79 successful, 76 partial, 24 skipped and 59 not applicable, with 38 warnings. That was a single lab config, but the ratio of partial to successful objects is close to what we see on real estates. Plan for someone to read every partial row.
Which F5 features convert cleanly and which need rework?
The white paper's planning table lists what the open-source converter did not support: WAF/ASM, GTM, iRules, external health monitors, authentication (SAML, LDAP, SSO), virtual servers with multiple certificates, SNAT pool and NAT policy, and system-level settings such as routing, DNS, NTP, SNMP and backup. Broadcom's later ACT datasheet claims automated conversion of custom rules and objects, and a March 2025 Avi blog says ACT converts F5 objects including iRules. Use that output as a first draft of the rewrite and test every converted rule.
| F5 feature | Conversion outcome | Typical approach on Avi |
|---|---|---|
| LTM virtual servers, pools, monitors | Successful or partial | Review partial settings, then import |
| HTTP, TCP, SSL, persistence profiles | Successful or partial | Check ciphers and multiplexing |
| Simple iRules (redirects, header inserts, URI switching) | Not supported in the open-source tool | Rebuild as HTTP request or response policies |
| Complex iRules (tables, sideband, custom logic) | Not supported in the open-source tool | Rewrite as Lua DataScripts |
| ASM / Advanced WAF policies | Not supported | Design Avi WAF policy from scratch |
| APM, SAML, LDAP authentication | Not supported | Separate design; may stay on another platform |
| GTM / DNS | Not supported | Separate GSLB design |
| Routing, NTP, SNMP, syslog, backup | Not applicable | Configure on the Avi Controller and SE groups |
Table 2. Conversion outcomes by F5 feature, from the VMware migration white paper's unsupported list and status examples. Approaches are our recommendation.
iRules to HTTP policies and DataScripts
The white paper's guidance is that most iRules can become Avi policies, and advanced iRules move to DataScripts, Avi's scripting engine. Broadcom's DataScript guide describes it as Lua-based scripting, with events such as HTTP_REQ, HTTP_RESP, HTTP_LB_DONE, SSL_HANDSHAKE_DONE, L4_REQUEST and DNS_REQUEST that roughly line up with iRule events like HTTP_REQUEST and HTTP_RESPONSE. The documented workflow for the open-source tool is to build the HTTP policy once in the Controller, export it as YAML into a file that starts with irule_custom_config:, and re-run the converter with --custom_config so the policy is attached to every virtual server that used that iRule.
In our experience, the iRule inventory decides the length of the project. Before anything else, export the list of iRules that are attached to a virtual server, group duplicates, and sort them into three buckets: replaceable by a native setting (HTTP to HTTPS redirect, X-Forwarded-For), replaceable by an HTTP policy, or needing a DataScript. The third bucket is the one to estimate carefully.
iApps and AS3-deployed applications
Broadcom's documentation does not describe special handling for iApps. In our experience, iApp-generated objects appear in bigip.conf as ordinary virtual servers, pools and profiles, so they convert like anything else, but the template that owned them does not come across. If BIG-IQ or AS3 declarations deploy your applications, keep those declarations: they are a clean inventory of intent and make it easier to rebuild the application as Avi automation (Ansible or Terraform) once it has moved.
How does a BIG-IQ managed estate change the plan?
BIG-IQ manages BIG-IP devices; it does not process traffic. The converter's input is still the configuration of each BIG-IP, including every partition. For a large BIG-IQ estate we work device group by device group, exporting Common plus each partition, and mapping each F5 partition to an Avi tenant with its own SE group where isolation matters. The white paper shows the pattern with --partition_config, --tenant and --segroup, and it warns that consolidating several ADCs onto one Avi deployment causes problems where IP addresses or object names overlap. Run --prefix per source device if you consolidate.
BIG-IQ also tends to own certificate lifecycle and licensing in those estates, so plan who renews certificates once they live on the Avi Controller. If you are scoping that kind of estate, our BIG-IQ to Avi migration estimator counts managed devices and partitions as separate effort drivers.
How to cut traffic over from F5 to Avi
The white paper reduces cutover to three questions: how the legacy VIP is reached, how the Avi VIP will be reached, and whether the VIP address changes. That gives five documented scenarios, which collapse into the decision flow below.
VIP swap or BGP (same IP)
- No DNS change, so no client caching delay
- Rollback is a single disable and enable, or a route withdrawal
- Firewall rules for the VIP stay valid
- Needs SEs on the VIP subnet or BGP peering with the upstream router
DNS cutover (new IP)
- Old and new VIPs run side by side, so parallel testing is easy
- Rollback is repointing the record, but cached answers linger
- Firewall rules, allow lists and partner configs need the new IP
- Hard-coded IP clients will not follow the change
Testing before and after cutover
The white paper's trick for pre-cutover testing is worth copying. Import virtual services with enabled set to false and traffic_enabled set to true (its config_patch.py example patches every virtual service this way). The SEs then run health monitors against the real pool members, so you can see backend reachability and monitor results on Avi before any client traffic arrives. For a DNS cutover you can go further and test the application end to end on the new VIP with a hosts file entry.
Freeze and export
Agree a change freeze on the F5 pair, export bigip.conf for Common and every partition, and collect certificates and keys (or use online mode with a local account).
Convert one wave
Run the conversion with
--not_in_useand a--vs_filterfor the applications in this wave. Read converter.log and every partial row in ConversionStatus.Rebuild what did not convert
Replace auto_created certificates, rebuild iRules as policies or DataScripts, and recreate external monitors and SNAT behaviour.
Import disabled
Push the playbook with virtual services disabled but traffic enabled, and confirm every pool shows healthy servers.
Functional test
Application owners test against the Avi VIP (new IP) or a hosts file entry, including persistence, redirects, headers and client certificates.
Cut over and watch
Swap the VIP, move the route or change DNS. Keep the F5 virtual server configured but disabled until the application owner signs off.
Rollback
Rollback should be the reverse of the cutover action and nothing more: re-enable the F5 virtual server and ARP, withdraw the Avi route, or repoint DNS. Do not delete F5 objects or decommission the pair until every application in the wave has run a full business cycle on Avi. For monthly batch jobs and quarter-end traffic, that can mean weeks. The converter's delete playbook (avi_config_delete_object.yml) is useful for clearing a bad import on the Avi side before you try again.
Common F5 to Avi migration mistakes
Most of the problems we are asked to fix come from treating the converter output as finished configuration.
- Converting stale objects. Without
--not_in_use, years of disabled virtual servers and orphan pools come across and clutter the new platform. - Ignoring partial rows. "Partial" can mean a lost timeout, a missing header insert or a different monitor receive string.
- Accepting the default cipher suite for applications with strict or legacy client requirements.
- Leaving auto_created placeholder certificates bound to virtual services after import.
- Choosing Elastic HA for applications that need the client IP without X-Forwarded-For, then finding Preserve Client IP needs active/standby.
- Consolidating several F5 pairs into one tenant without name prefixes, then hitting object name and IP overlaps.
- Underestimating iRules, WAF policies and authentication because the virtual server count looked small.
How is Avi Load Balancer licensed alongside VCF?
Broadcom's Specific Program Documentation for VMware Avi Load Balancer (August 2026) licenses it as subscription software measured in Service Units. When the Service Engine runs in a virtual environment, each Service Unit covers one core; bare metal SEs have different rules. The same document says Avi may count as an add-on when deployed with a VCF subscription bought after 13 December 2023. It also requires customers on version 32.1.1 or later to send Broadcom a compliance report within 180 days of registering the licence and every 180 days after, or features are degraded or blocked and support is suspended. Factor that reporting into the operational handover. For the wider VCF picture, see our guide to VCF 9.1 licensing by core.
F5 to Avi migration readiness checklist
- bigip.conf exported for Common and every partition, with device and partition owners recorded
- Certificates and keys collected, or online conversion tested with a local F5 account
- iRules attached to virtual servers inventoried and sorted into native, policy and DataScript buckets
- ASM/WAF, APM and GTM usage identified and scoped as separate workstreams
- SE group design agreed: HA mode, tenants, VRFs and which applications need client IP preservation
- Cutover method chosen per application: VIP swap, BGP route health injection or DNS
- DNS TTLs lowered in advance for any application changing VIP
- Rollback step written for each application and tested in the first wave
- Cipher requirements checked for regulated or legacy-client applications
- Compliance reporting for Avi 32.1.1 or later assigned to an owner
Load balancer migrations often run alongside other platform work. If you are also moving firewall policy into NSX, see our Cisco ASA to NSX Distributed Firewall migration guide, and if the target platform is new, our VCF 5.x versus VCF 9.x comparison and NSX-v to NSX in VCF 9 guide cover the surrounding design.
F5 and BIG-IQ to Avi migration
Need your F5 estate assessed, converted and cut over?
Consult Circle runs F5 BIG-IP and BIG-IQ to VMware Avi Load Balancer migrations for UK and international clients, from iRule inventory and SE group design through to wave planning and cutover support.
Talk to our migration teamFrequently Asked Questions about F5 to Avi migration
Is there an official tool to convert F5 BIG-IP configuration to Avi?
Yes. Broadcom offers the Avi Load Balancer Conversion Tool, delivered as an OVA for vSphere, which converts F5 BIG-IP, VMware NSX Load Balancer and Citrix NetScaler (CLI only) configuration. It grew out of the open-source f5_converter script in the Avi migration tools package.
Does the conversion tool convert iRules automatically?
Not reliably. The open-source converter marked iRules as not supported and its FAQ said they must be converted manually, then mapped to virtual services with a custom config file. Broadcom's newer Conversion Tool claims automated conversion of custom rules, but every converted rule still needs functional testing.
What is the Avi equivalent of an F5 virtual server?
An Avi virtual service. It holds the application profile, TCP/UDP profile, SSL settings and policies, with its VIP in a VsVip object, while pools carry the health monitors and persistence profile.
What is the Avi equivalent of an iRule?
An HTTP policy set for simple logic such as redirects, header changes and content switching, or a DataScript for complex logic. DataScripts are Lua-based scripts that run on events such as HTTP_REQ and HTTP_RESP.
Can I keep the same VIP addresses when moving from F5 to Avi?
Yes. If the Service Engines share the VIP subnet, you disable the F5 virtual server and ARP and enable the Avi virtual service. If the network uses BGP, Avi can advertise a /32 route for the VIP with route health injection.
Does Avi source NAT traffic to the servers?
Yes, by default. Service Engines source NAT connections to pool members so replies return to the owning SE. You can pass the client IP with X-Forwarded-For or PROXY protocol, or use Preserve Client IP, which needs an active/standby SE group with the SEs as the servers' default gateway.
Does the converter migrate F5 ASM or WAF policies?
No. WAF/ASM, GTM, authentication such as SAML and LDAP, and system settings were all on the open-source converter's unsupported list. Plan them as separate design work on Avi.
How long does an F5 to Avi migration take?
It depends mostly on iRules, WAF policies and the number of applications, not on the virtual server count. In our experience a few dozen plain LTM virtual servers can move in a few weeks, while estates with heavy iRule logic run for months; our F5 to Avi estimator gives a range for your numbers.
Sources
- VMware: How to migrate from legacy load balancers to NSX Advanced Load Balancer (Avi), white paper, June 2022
- Broadcom: VMware Avi Load Balancer Conversion Tool datasheet, July 2025
- Broadcom KB 407620: Avi Conversion Tool migration from F5 fails with a remote authentication account
- GitHub: vmware/alb-sdk (Avi SDK and migration tools README)
- GitHub: avinetworks/avitools (archived)
- GitHub: nsx-advanced-load-balancer-tools (archived)
- Broadcom TechDocs: FAQs on Controller Cluster (Avi 30.2)
- Broadcom TechDocs: Legacy HA for Avi Load Balancer Service Engines
- Broadcom TechDocs: Elastic High Availability for Avi Load Balancer Service Engines
- Broadcom TechDocs: Application Profile
- Broadcom TechDocs: Persistence (Avi 31.1)
- Broadcom TechDocs: Health Monitoring (Avi 31.1)
- Broadcom TechDocs: Preserve Client IP (Avi 32.1)
- Broadcom TechDocs: DataScript Events
- Broadcom: VMware Avi Load Balancer Specific Program Documentation, 13 August 2026
- VMware blog: Stop iRules from weighing you down (March 2025)
- F5 TechDocs: About Virtual Servers (BIG-IP 21.0.0)
- F5 TechDocs: BIG-IQ Centralized Management Overview
Written by the Consult Circle VMware HCX migration team. Last reviewed 3 November 2026.
