Discover and manage VMware NSX distributed-firewall, gateway-firewall, and NAT policy in Versus over the NSX-T Policy API, deploy rules into an NSX DFW as a firewall-migration target, and inventory NSX-T Manager and its transport nodes alongside the rest of your estate.
Versus treats VMware NSX the same way it treats any other firewall: NSX security policy — distributed-firewall (DFW) rules, gateway-firewall rules, NAT rules, and NSX Groups — is imported into the platform's normalized firewall model, where it is searchable, reportable, and auditable next to your Palo Alto, Cisco, Check Point, and Fortinet estates. Versus can also write rules into an NSX distributed firewall, both to enable/disable individual rules and as the target of a firewall-rule migration.
Two NSX device roles are supported, because NSX exposes two things worth managing:
| Vendor key | What it is | Where it appears |
|---|---|---|
nsx_firewall | The NSX Manager as a firewall controller — the source and target for DFW/gateway/NAT policy | Firewall inventory |
nsx_manager | The NSX-T Manager as a network controller — node info, cluster peers, Tier-1 gateways | The Controllers page at /integrations/controllers |
Related NSX data-plane objects (nsx_edge, nsx_transport) are inventoried as managed devices under their controller. The AVI / NSX ALB Controller is a separate load-balancing integration — see F5 BIG-IP Integration for the ADC side of the estate.
Versus talks to NSX over the NSX-T Policy API (https://<manager>/policy/api/v1), falling back to the Management Plane API (https://<manager>/api/v1) for node and cluster details that only live there. Authentication is HTTP Basic on every request, using a username/password credential stored in the Versus Vault — the credential is never held in the browser and, on self-hosted installs, can be resolved locally on a collector so it never leaves your network. All reads are paginated with the API's cursor scheme, so large rulebases come back completely rather than truncated at the first page.
Because NSX is reached like any other device, it inherits the platform's outbound-only edge model: a collector inside your environment does the reaching, and Versus never needs an inbound path to the NSX Manager. See Platform Architecture for the overall shape.
Add the NSX Manager as an nsx_firewall device with its API credential, then run an import. Import runs as a background job you can watch to completion; it walks the following, in order:
nsx cloud and its role (edge or firewall).DFW/<domain>/<policy>, with its rules normalized.GW/<policy> rule sets.NAT/<gateway> rule sets of type nat.Each import is a full reconciliation: rules, NAT entries, objects, and rule sets that no longer exist in NSX are removed from Versus, so the imported view stays a faithful mirror of the source.
NSX rules are mapped into the same shape every other vendor's importer produces, so cross-vendor search and reporting work uniformly. Notable mappings:
ALLOW → allow, DROP → drop, REJECT → deny. A JUMP_TO_APPLICATION rule is treated as allow.source_groups / destination_groups become the rule's source/destination addresses.NAT rules are normalized separately: DNAT/SNAT/NO_NAT/REFLEXIVE map to dnat/snat/no_nat/static, with translated networks and ports carried through.
Versus can push changes back to an NSX distributed firewall. The Policy API is declarative, so a rule write is a PATCH to the rule's own path — idempotent create-or-overwrite — and the change is realized immediately; there is no separate commit step to run afterward. Rule paths follow:
PATCH /policy/api/v1/infra/domains/{domain}/security-policies/{policy}/rules/{rule_id}
Two write paths use this:
PATCH that flips only the disabled flag, without rewriting the whole rule.source_groups, destination_groups, services, action, logged, sequence_number, and so on — built from Versus's normalized rule.Gateway-firewall rules are written the same way, under /infra/gateway-policies/{policy}/rules/{rule_id}.
The larger use case is migrating firewall rules onto NSX. Under Workflows → Migrations → Firewall Rule Migration, a Firewall Migration Plan consolidates rules from one or more source firewalls (any supported vendor) and re-provisions them, rule-by-rule, onto a target. NSX DFW is one of the target platforms:
| Target platform | Key |
|---|---|
| Palo Alto (PAN-OS, direct) | panos |
| Palo Alto Panorama | panorama |
| VMware NSX DFW | nsx |
The plan runs as a state machine with distinct, resumable stages, each recorded on the plan:
discover → select_rules → translate → check_objects → deploy → validate → rollback
domain and security_policy.Because NSX's model differs from a zone-based firewall, translation is more than a field rename:
allow/deny map to NSX ALLOW/DROP; any source, destination, or service collapses to NSX's ANY.Each translated rule carries a per-rule checklist (create groups, create services, map zones, create the DFW rule) and migration notes highlighting anything that needs a human decision before deploy.
At deploy time Versus resolves the NSX write driver against the target device's credential and provisions each rule with a PATCH. The driver implements the same contract as the PAN-OS and Panorama drivers, so the plan pipeline is identical regardless of target:
PATCHes each DFW rule into the target security policy and returns its rule id.If the target NSX Manager is unreachable at deploy time, the plan does not fail: it falls back to a simulated dry run, logging what would be created on each rule so you can still review the full plan before a live attempt. You can also request a dry run explicitly.
Separately from firewall policy, you can register the NSX-T Manager as an nsx_manager controller on the Controllers page at /integrations/controllers. This surfaces:
/infra/tier-1s) with a fallback to the Management Plane logical-routers endpoint on older NSX-T builds. Each gateway is returned by its full NSX-T path.Tier-1 gateway discovery is what lets other migrations — for example moving load balancers onto NSX ALB / AVI — bind virtual services to the correct Tier-1. A Tier-1 lookup that returns nothing surfaces the reason inline (unreachable Policy API, bad credentials, or genuinely no gateways) rather than failing silently.
NSX policy is ordinary firewall inventory once imported, so everything the platform does with firewall data applies:
Everything writes through the credential in the vault and, on self-hosted deployments, through an outbound-only collector — so managing NSX never means opening an inbound path to your NSX Manager.