Technical Information
Panorama to NetBox Object Mapping
This page describes how Panorama and firewall data is mapped to NetBox objects by the integration.
Data flows in one direction only, from Panorama to NetBox. The integration never writes to Panorama or to a firewall.
The integration connects only to Panorama, over its XML API at https://<PANORAMA_HOST>/api/. Some calls read Panorama itself. The rest are relayed: Panorama sends the command to one managed firewall, identified by its serial number, and returns that firewall's answer. Every call is a read-only operational show command:
| Call | Sent to | Used for |
|---|---|---|
show system info | Panorama | Panorama's hostname, when PANORAMA_NAME is not set |
show devices all | Panorama | The inventory of managed firewalls: hostname, serial, model, PAN-OS version, management address, connection and high-availability state, and virtual systems |
show devicegroups | Panorama | Each firewall's device group |
show dg-hierarchy | Panorama | The device-group tree, read only when scope.device_groups is set |
show template-stack | Panorama | Each firewall's template stack and its templates |
show system info | Each connected firewall | The management netmask, IPv6 address, MAC address and DHCP flags, and the routing engine |
show interface all | Each firewall that answered show system info | Every dataplane interface, with its addresses, tag, routing instance, zone, virtual system, speed, duplex, and link state |
show config running | Each firewall whose interface listing reports an interface | The interface section of the firewall's running configuration only: enabled state, comment, MTU, aggregate group, and DHCP client |
show high-availability state | Each firewall that reports high availability and answered show interface all | The high-availability mode of the pair |
When the policy gives a username and a password instead of an API key, the integration first generates an API key with a key-generation request.
Relayed calls run one firewall after another, in serial-number order. A firewall that Panorama reports as disconnected gets no relayed call. See Firewalls that do not answer.
Object Type Mapping Table
| Panorama source | NetBox Object | Key Fields Mapped |
|---|---|---|
| (static) | Manufacturer | Palo Alto Networks |
| (static) | DeviceRole | Firewall |
Inventory model | DeviceType | model, manufacturer Palo Alto Networks |
Inventory sw-version | Platform | PAN-OS <version>, manufacturer Palo Alto Networks |
| Site rule (see Choosing a site and a Panorama name) | Site | name, status "active" |
| Inventory entry | Device | hostname → name, serial, device type, platform, role Firewall, site, status, primary IPv4 and IPv6, custom fields (see Devices) |
Firewall show system info | Interface | management, management only, in the management VRF |
Firewall show interface all | Interface | One per listed interface (see Dataplane Interfaces) |
Interface routing instance (fwd) | VRF | <hostname>:<instance>, route distinguisher derived from the serial (see Routing Instances) |
| Management port | VRF | <hostname>:management |
| Interface addresses | IPAddress | Address with its prefix length, in the interface's VRF, assigned to the interface |
| Subinterface 802.1Q tag | VLAN | vid, name VLAN <vid>, in the firewall's VLAN group |
| (per firewall) | VLANGroup | firewall-serial: <serial>, hostname → description |
| Interface MAC address | MACAddress | Assigned to the interface and set as its primary MAC address, when unique |
| Virtual system of a multi-vsys firewall | VirtualDeviceContext | Display name → name, vsys number → identifier, status "active" |
Choosing a site and a Panorama name
Panorama does not record where a firewall stands, and the integration does not read the sites you already hold in NetBox. Decide where the firewalls land before the first run.
Site
Every firewall is placed in a site, chosen by these rules:
- When
SITE_FROM_HOSTNAME_REGEXis set and matches a firewall's hostname, the regex's named groupsitegives that firewall's site. For example,^(?P<site>[a-z]+)-fwplaceslon-fw01in the sitelon. - Otherwise, when
SITE_NAMEis set, the firewall goes in that site. - Otherwise, the firewall goes in a site named after the Panorama instance:
PANORAMA_NAME, or the hostname that Panorama reports whenPANORAMA_NAMEis not set.
A site is created only when a firewall lands in it.
NetBox identifies a device by its name and site before it checks the serial number, so the site is part of each firewall's identity:
- Changing the site rule after the first run moves every firewall it affects to the new site. The old site stays in NetBox, empty.
- Rename a site through the policy, never in NetBox. The integration sends the site by name on every run, so a site renamed in NetBox is created again under its old name, and the firewalls move back into it.
- If NetBox already holds your firewalls in their own sites, set
SITE_NAMEorSITE_FROM_HOSTNAME_REGEXbefore the first run. Otherwise the firewalls move into a new site named after Panorama.
Panorama name
The Panorama instance name is used in three places: the default site, the panorama-<name> tag, and the panorama_instance custom field. Set PANORAMA_NAME before the first run. Without it, the name is the hostname that Panorama reports, so renaming Panorama, or pointing the policy at the other Panorama of a high-availability pair, changes the name and moves every firewall in the default site to a new site.
Devices
Each firewall in Panorama's inventory, within the policy's scope, becomes one NetBox device.
Device fields
| NetBox field | Value |
|---|---|
| Name | The hostname the firewall reports, trimmed and otherwise unchanged. A firewall with no hostname is named after its serial number |
| Serial number | The firewall's serial number |
| Device type | The firewall's model, for example PA-VM, manufacturer Palo Alto Networks |
| Platform | PAN-OS <version>, for example PAN-OS 11.2.5 |
| Role | Firewall |
| Site | See Site |
| Status | decommissioning when Panorama reports the firewall as deactivated, otherwise active |
| Primary IPv4 and IPv6 | The firewall's management addresses (see Management Interface) |
| Custom fields | See Device custom fields |
The status does not change when a firewall disconnects from Panorama. The connection is recorded in the panorama_connected custom field instead.
Device custom fields
| Custom field | Value |
|---|---|
nbl_matching_id | The firewall's serial number |
panorama_instance | The Panorama instance name (see Panorama name) |
panorama_connected | true when Panorama reports the firewall as connected |
panorama_device_group | The device group that lists the firewall directly |
panorama_template_stack | The template stack that lists the firewall |
panorama_templates | The templates of that stack, as a JSON list in stack order |
panorama_routing_engine | classic for virtual routers, or advanced for Advanced Routing logical routers. Set only when the firewall answers its relayed calls |
panorama_ha_state | The firewall's high-availability state, for example active or passive |
panorama_ha_peer_serial | The serial number of the firewall's high-availability peer |
panorama_ha_mode | The pair's mode, for example Active-Passive |
A field is sent only when it has a value. For example, a firewall that is not in a high-availability pair gets none of the three panorama_ha_* fields, and a firewall that two device groups list gets no panorama_device_group (the integration logs a warning naming both groups). The same applies to a firewall that two template stacks list: it gets no panorama_template_stack or panorama_templates.
Because an empty value is never sent, a field whose value goes away keeps its last value in NetBox. For example, when a firewall leaves its device group, panorama_device_group keeps the old group until the firewall joins another one.
Device identity
Each firewall records its serial number in nbl_matching_id. NetBox matches a device by its management address, then by its name and site, and then by this matching ID:
- A firewall that two Panoramas report becomes one device, for example during a migration. Both policies must place it in the same site, by setting the same
SITE_NAMEorSITE_FROM_HOSTNAME_REGEX, or it moves between two sites on every run. While both Panoramas report it,panorama_instance,panorama_connected,panorama_device_group,panorama_template_stack, andpanorama_templateschange on every run, each producing a deviation. - A firewall you rename in NetBox is found again on the next run by its serial number. It is not created a second time under its old name.
- Two firewalls that report the same hostname into one site become one device. NetBox matches them by name and site before it checks the serial number, so the merged record alternates between the two on every run. This is common for firewalls left at a factory hostname such as
PA-VM. The integration does not change the names. It logs a warning naming the hostname, the site, and every serial number. Rename all but one of the firewalls in Panorama, and the next run separates them.
A firewall that reports no usable serial number (none, or unknown) is still recorded, from the inventory, but gets no nbl_matching_id, no panorama_device_group, panorama_template_stack, or panorama_templates, no VLAN group, no routing instance, no relayed call, and no addresses. The integration logs a warning for it. A managed device that reports neither a hostname nor a usable serial number is skipped, with a warning.
Firewalls that do not answer
A firewall that Panorama reports as disconnected is recorded from the inventory alone: its name, serial number, device type, platform, role, site, status, and the custom fields the inventory supplies. It gets no management interface, no management addresses or primary IP, no dataplane interfaces, and no panorama_routing_engine. A multi-vsys firewall keeps its virtual device contexts, because they come from the inventory.
When a relayed call fails on one firewall, the integration logs a warning naming the call, the firewall, its serial number, and what the run does without the answer, and continues with the other firewalls:
| Failed call | Effect for that firewall |
|---|---|
show system info or show interface all | Recorded from the inventory alone, as if disconnected, and sent no further relayed call |
show config running | Its interfaces get no enabled state, description, LAG, MTU, or DHCP status |
show high-availability state | No panorama_ha_mode |
When a relayed call fails with an HTTP error, a timeout, or a connection error, the integration then asks Panorama for its own show system info. If Panorama does not answer either, the run fails.
A failed call to Panorama itself, such as show devices all, show devicegroups, or show template-stack, fails the run. An error answer is logged as Panorama answered with PAN-OS code <code>: <message>, and an HTTP status other than 200 or 403 as Panorama answered HTTP <status> <reason>.
Management Interface
PAN-OS does not list the management port with the dataplane interfaces, so the integration builds it from each firewall's relayed show system info:
- Interface - named
management, marked management only and enabled. Its type isvirtualon a VM-Series firewall andotheron any other model. - VRF -
<hostname>:management, a routing instance of its own, because PAN-OS routes the management port apart from every virtual router. Two firewalls behind NAT that report the same management address therefore stay separate. - IPv4 address - the management address from Panorama's inventory, with the netmask the firewall reports. If the firewall reports no netmask, the address is skipped with a warning, and the device gets no primary IPv4 address.
- IPv6 address - the management IPv6 address the firewall reports, when it has one.
- Status -
dhcpwhen the firewall reports that the address came from DHCP, otherwiseactive. - Primary IP - the management IPv4 and IPv6 addresses become the device's primary IPv4 and IPv6 addresses.
- MAC address - the management MAC address, when it is unique (see MAC Addresses).
Only a firewall that answers both show system info and show interface all gets a management interface.
Dataplane Interfaces
Each interface that a firewall's show interface all reports becomes one NetBox interface on that firewall. An interface that only the configuration names, and the firewall does not report, is not created.
Interface type and parent
| Interface name | NetBox type | Parent |
|---|---|---|
A dotted name, such as ethernet1/1.100 or ae1.20 | virtual | The interface named before the last dot, when the firewall reports it |
aeN, such as ae1 | lag | - |
vlan, loopback, tunnel, sdwan | virtual | - |
Any other name, such as ethernet1/1 | virtual on a VM-Series firewall, other on any other model | - |
A physical port's type is generic because neither Panorama nor the firewall reports what a port physically is. Its negotiated speed is recorded separately.
Interface fields
| NetBox field | Source | Value |
|---|---|---|
| Speed | Interface listing | The negotiated speed, converted to kilobits per second |
| Duplex | Interface listing | full or half |
| VRF | Interface listing | The interface's routing instance (see Routing Instances) |
| 802.1Q mode and tagged VLANs | Interface listing | tagged, with the one VLAN of the interface's tag (see VLANs) |
| Virtual device contexts | Interface listing | The interface's virtual system, on a multi-vsys firewall (see Virtual Systems) |
panorama_link_state | Interface listing | The link state the firewall reports now, such as up or down (see Link state) |
panorama_zone | Interface listing | The interface's security zone, such as Trust |
| Enabled | Running configuration | false only when the configured link state is down, otherwise true |
| Description | Running configuration | The interface's comment, cut to 200 characters |
| MTU | Running configuration | The configured MTU, when one is set |
| LAG | Running configuration | The aggregate group the interface belongs to, when the firewall's listing reports that aggregate |
| Primary MAC address | Interface listing | When unique (see MAC Addresses) |
What the firewall reports decides every field it can answer. The running configuration supplies a value only where the listing is silent. An interface the running configuration does not name is enabled and has none of the configuration fields. A firewall whose running configuration could not be read gets none of them on any interface.
Enabled records whether an operator turned the interface on, not whether its link is up. A port held down by high availability is still shown as enabled. Its live link state is in panorama_link_state.
Link state
panorama_link_state records whether each interface's link is up now. It changes whenever a cable is pulled or a high-availability pair fails over, and each change is a deviation to review.
To stop sending it, set PANORAMA_SYNC_LINK_STATE: false. The field then holds the value not synced on every interface that reports a link state. The first run after the change updates every such interface once, so expect one deviation per interface. After that the field does not change. Set the key back to true, and the next run restores the real values, again with one deviation per interface.
Routing Instances
Each firewall's routing instances become NetBox VRFs of their own. The VRFs are per firewall, not shared, because the two members of a high-availability pair hold identical interface addresses, and the VRF keeps them apart.
| VRF | Name | Holds |
|---|---|---|
| Routing instance | <hostname>:<instance>, for example pafw1:default | The interfaces of that virtual router or logical router, and their addresses |
| Management | <hostname>:management | The management interface and its addresses |
| Unassigned | <hostname>:unassigned | Interfaces that have an address but belong to no routing instance, and their addresses |
The hostname is the firewall's NetBox device name. An interface with no routing instance and no address gets no VRF.
Route distinguishers
Each VRF's route distinguisher is pan: followed by 16 hexadecimal characters, derived from a hash of the firewall's serial number and the instance name, for example pan:be6889a440ca4720 for the instance default on the firewall 007954000918414. The management and unassigned VRFs are derived from the serial number alone. It identifies the NetBox VRF, so a VRF keeps its identity when the firewall is renamed, and two firewalls with the same hostname keep separate VRFs. It is not a route distinguisher used in your network, and must not be copied into a routing configuration.
Routing engine
A firewall runs either the classic routing engine, with virtual routers, or Advanced Routing, with logical routers. The integration reads which one from the firewall's show system info, records it in panorama_routing_engine, and reads each interface's routing instance accordingly: vr:<name> on the classic engine and logical-router:<name> on Advanced Routing.
When an interface's routing instance does not match the firewall's engine, the interface is recorded without a VRF and without addresses for that run, and the integration logs a warning naming the firewall, the interface, and the value. A firewall that does not report its routing engine accepts neither form, so each of its interfaces that names a routing instance is recorded without a VRF and without addresses, and the warning names the engine as unknown.
Advanced Routing has not been tested against a live firewall. See Known Limitations.
IP Addresses
Each address that an interface reports becomes a NetBox IP address:
- Address - the address with its prefix length, as the firewall reports it.
- VRF - the interface's VRF.
- Assigned to - the interface.
- Status -
dhcpwhen the running configuration runs the DHCP client on the interface for the address's family, otherwiseactive. When the firewall's running configuration could not be read, no status is sent.
Link-local addresses are skipped. A value without a prefix length, or one that is not an address, is skipped with a warning.
When two interfaces of one firewall report the same address in the same VRF, the address is recorded once, on the interface whose name sorts first, and the integration logs a warning naming the other interfaces. NetBox finds an IP address by its value within its VRF, regardless of prefix length, so recording it on both would move one record between the two interfaces on every run.
An interface that gets its address from DHCP contributes that address with the status dhcp. When the lease moves, the new address is created as a new record, and the old record stays in NetBox. Filter IP addresses by the DHCP status to find them.
VLANs
Each subinterface that carries an 802.1Q tag from 1 to 4094 is set to tagged mode, with that one VLAN in its tagged VLANs. A tag of 0 means no VLAN. The units of the vlan interface (vlan.N) do not carry a VLAN ID, so they get none.
- VLAN - named
VLAN <vid>, statusactive, with no site. - VLAN group - one per firewall, named
firewall-serial: <serial>, with the firewall's hostname as its description and its serial number innbl_matching_id. The group is not scoped to a site.
A firewall with no tagged interface gets no VLAN group. VLANs on different firewalls are separate NetBox VLANs, even when they share a VLAN ID.
MAC Addresses
Each MAC address that exactly one interface reports, across all the firewalls in the run, becomes a NetBox MAC address assigned to that interface, and the interface's primary MAC address. MAC addresses are recorded in upper case with colons.
A MAC address that more than one interface reports is dropped from all of them, and the integration logs a warning naming each firewall and interface. A shared MAC address would let one firewall's interface match another's. VM-Series firewalls commonly report the same MAC addresses as each other, so they contribute few MAC addresses.
Virtual Systems
Each virtual system of a multi-vsys firewall becomes a NetBox virtual device context on that firewall:
- Name - the virtual system's display name, or its entry name, such as
vsys2, when it has none. - Identifier - the virtual system's number, for example
2forvsys2. - Status -
active. panorama_vrfs- the VRFs that the virtual system's own interfaces use.
Each interface on a multi-vsys firewall references the virtual device context of its virtual system. A firewall with a single virtual system gets no virtual device context.
Custom Fields
The integration creates the following custom fields. All are created during bootstrap, and all are read-only in the NetBox UI.
| Custom Field | Label | Object Type | Type | Purpose |
|---|---|---|---|---|
nbl_matching_id | NBL Matching ID | Device, VLAN group (set by this integration) | Text (unique) | Shared matching key across NetBox Labs integrations. The firewall's serial number |
panorama_instance | Panorama Instance | Device | Text | Panorama that manages the device now |
panorama_connected | Panorama Connected | Device | Boolean | Whether the management channel to Panorama is open. It does not say whether the firewall works |
panorama_device_group | Panorama Device Group | Device | Text | Direct device group |
panorama_template_stack | Panorama Template Stack | Device | Text | Template stack |
panorama_templates | Panorama Templates | Device | JSON | Templates of the template stack, in stack order. The first template wins |
panorama_routing_engine | Panorama Routing Engine | Device | Text | Routing engine: classic or advanced |
panorama_ha_state | Panorama HA State | Device | Text | High-availability state |
panorama_ha_peer_serial | Panorama HA Peer Serial | Device | Text | Serial number of the high-availability peer |
panorama_ha_mode | Panorama HA Mode | Device | Text | Mode of the high-availability pair |
panorama_link_state | Panorama Link State | Interface | Text | Link state that the firewall reports, or not synced while PANORAMA_SYNC_LINK_STATE is off |
panorama_zone | Panorama Zone | Interface | Text | Security zone of the interface |
panorama_vrfs | Panorama VRFs | Virtual device context | Multiple objects (VRF) | VRFs that the interfaces of the virtual system forward in |
The nbl_matching_id definition is shared with other NetBox Labs integrations and covers further object types, such as sites and virtual machines. This integration sets it only on devices and VLAN groups.
Tags
Every object the integration creates, except custom fields, is tagged:
paloalto,panorama, anddiscoveredpanorama-<name>, where<name>is the Panorama instance name (see Panorama name), for examplepanorama-panorama-prod
The tags are also applied to shared objects such as the Palo Alto Networks manufacturer, the Firewall role, platforms, device types, and the sites the firewalls land in. If SITE_NAME names an existing site, that site receives the tags.
Device groups, templates, zones, and other values an operator can change are recorded in custom fields, not tags.
Configuration Parameters
Configure these under the config key in the policy definition.
| Parameter | Required | Default | Description |
|---|---|---|---|
PANORAMA_HOST | Yes* | - | Panorama's address: a bare host, host:port, or an https:// URL, for example panorama.example.com. https:// is used when no scheme is given. An http:// URL is refused, and a trailing /api is removed |
PANORAMA_API_KEY | Yes** | - | A Panorama API key |
PANORAMA_USERNAME | Yes** | - | A Panorama username, used with PANORAMA_PASSWORD to generate an API key |
PANORAMA_PASSWORD | Yes** | - | The password for PANORAMA_USERNAME |
PANORAMA_NAME | No | Panorama's hostname | Names the Panorama instance in the default site, the panorama-<name> tag, and panorama_instance. See Panorama name |
SITE_NAME | No | The Panorama instance name | Site for every firewall that SITE_FROM_HOSTNAME_REGEX does not place. See Site |
SITE_FROM_HOSTNAME_REGEX | No | - | A regular expression with a named group site. When it matches a firewall's hostname, the group gives the firewall's site |
PANORAMA_SYNC_LINK_STATE | No | true | When false, panorama_link_state holds not synced instead of the live link state. See Link state |
PANORAMA_SSL_VERIFY | No | true | When false, Panorama's TLS certificate is not verified |
PANORAMA_PROXY | No | - | URL of a proxy for the HTTPS requests to Panorama, for example https://proxy.example.com:3128 |
PANORAMA_TIMEOUT_SECONDS | No | 60 | Timeout for each request to Panorama, in seconds |
BOOTSTRAP | No | false | When true, creates static objects only and makes no Panorama API calls (see Bootstrap Mode) |
* Not required in bootstrap mode.
** Set exactly one credential path: PANORAMA_API_KEY, or PANORAMA_USERNAME with PANORAMA_PASSWORD. Not required in bootstrap mode.
A missing PANORAMA_HOST, or a credential path that is missing or set twice, logs an error, and the run sends nothing. A value that is set but malformed, such as an http:// host or a SITE_FROM_HOSTNAME_REGEX without a site group, fails the run with an error naming the key.
scope Parameters
The scope key in the policy definition is optional and limits which firewalls are synced. Omit it to sync every firewall that Panorama manages.
| Parameter | Description |
|---|---|
device_groups | A list of device group names. A firewall is synced when a device group that lists it directly is one of these, or a child group of one of these at any depth |
serials | A list of firewall serial numbers |
scope:
device_groups: ["branch"]
serials: ["007954000918414"]- When both keys are set, a firewall must match both.
- Each key must be a list. A value that is not a list fails the run, so a mistyped filter never syncs the whole estate. An empty list, or a list containing
*, does not filter. - A device group that Panorama does not report logs a warning naming it.
- A scope that matches no firewall logs a warning, and the run records no firewall.
- Each run with a scope logs how many firewalls it matched, as
Scope: <n> of <total> managed devices. - Narrowing the scope does not remove anything. Firewalls synced under a wider scope stay in NetBox.
Authentication and Connection
The integration authenticates to Panorama with one of two credential paths:
- API key - set
PANORAMA_API_KEY. The key is sent in theX-PAN-KEYheader on every request, never in the URL. - Username and password - set
PANORAMA_USERNAMEandPANORAMA_PASSWORD. At the start of each run, the integration exchanges them for an API key with a key-generation request, sent as a form POST so that the password is not in the URL, and logsGenerated a Panorama API key from the username and the password.
The account needs read-only access, including access to Panorama's XML API, to run operational commands on Panorama and to have them relayed to the managed firewalls. Firewalls need no credentials of their own.
If Panorama refuses the credentials with HTTP 403, on any call, the run fails.
TLS verification
TLS verification is enabled by default. Set PANORAMA_SSL_VERIFY: false to skip it, for example for a lab Panorama with a self-signed certificate.
Requests
- Timeout - each request times out after
PANORAMA_TIMEOUT_SECONDS, 60 seconds by default. - Retries -
GETrequests that fail with a connection error, a timeout, or HTTP status 429, 502, 503, or 504 are retried up to three times with backoff, so one request can take up to four timesPANORAMA_TIMEOUT_SECONDS, plus the backoff. The key-generation request is not retried. - Redirects - redirects are not followed, so the API key and the password are never sent to another host. A redirect fails the request.
- Proxy - set
PANORAMA_PROXYto send requests to Panorama through a proxy.
Bootstrap Mode
When BOOTSTRAP is set to True, the integration creates the following without connecting to Panorama:
- Tags:
paloalto,panorama,discovered, andpanorama-<name>whenPANORAMA_NAMEis set - Custom fields:
nbl_matching_id,panorama_instance,panorama_connected,panorama_device_group,panorama_template_stack,panorama_templates,panorama_routing_engine,panorama_ha_state,panorama_ha_peer_serial,panorama_ha_mode,panorama_link_state,panorama_zone,panorama_vrfs - The
Palo Alto Networksmanufacturer - The
Firewalldevice role
PANORAMA_HOST and the credentials are not required. If PANORAMA_HOST is set, it must still be a valid value. Use bootstrap mode on the initial setup only, then set it to False for all subsequent runs.
Sync Behavior
- Direction: One-way, Panorama to NetBox. The integration does not write to Panorama or to the firewalls.
- Object deletion: The integration does not delete NetBox objects. Firewalls removed from Panorama, interfaces and addresses removed from a firewall, and sites left empty by a change of site rule all remain in NetBox. Handle these removals manually.
- Idempotency: Subsequent runs update existing NetBox objects rather than creating duplicates. The Diode SDK handles conflict resolution.
- Unchanged values: Values that change between two runs against an unchanged estate, such as uptime, content versions, and configuration checksums, are not read, so they produce no deviations.
- Multiple Panoramas: Each policy reads one Panorama. Run a separate policy for each Panorama, each with its own
PANORAMA_NAME.
Known Limitations
- Security policy is not synced. Security rules, NAT rules, address objects, and other policy configuration are not read. Each interface's security zone is recorded in
panorama_zone. - Advanced Routing has not been tested. The integration was tested only on firewalls that use the classic routing engine. On a firewall that uses Advanced Routing, it expects each interface's routing instance as
logical-router:<name>. If the firewall reports its routing instances in another form, its interfaces are recorded without VRFs and without addresses, and the integration logs a warning naming the firewall, the interface, and the value. See Routing engine. - Only firewalls that Panorama manages are synced. A firewall that Panorama does not manage is not read.
- Two firewalls with one hostname in one site become one device. NetBox matches them by name and site before the serial number, so the record alternates between them on every run. Rename all but one in Panorama. See Device identity.
- High-availability pairs are recorded in custom fields, not modeled. Each member records its state, its peer's serial number, and the pair's mode. No NetBox redundancy group is created.
- Floating addresses of an active/active pair are not marked. Such an address appears in the VRF of the firewall that reported it. After a failover it can appear under both firewalls, and the older record stays. Use
panorama_ha_modeto tell this from a duplicate. - A MAC address that more than one interface reports is not recorded. VM-Series firewalls therefore contribute few MAC addresses.
- Physical ports have a generic type. Ports are
other, orvirtualon a VM-Series firewall, because the port's medium is not reported. - A port held down by high availability is shown as enabled. Enabled is the configured state. The live link state is in
panorama_link_state. - Link state changes produce deviations. Each link change or failover changes
panorama_link_state. SetPANORAMA_SYNC_LINK_STATE: falseto stop sending it. - Old DHCP addresses stay in NetBox. When an interface's DHCP lease moves, the old address record remains, with the status
dhcp. - Custom field values are not cleared. A custom field whose value goes away, such as a device group the firewall has left, keeps its last value in NetBox.
- Route distinguishers are generated. Each VRF's
pan:route distinguisher identifies the NetBox object and is not a value from your network. - The site named in
SITE_NAMEreceives the integration's tags. Bear this in mind ifSITE_NAMEnames an existing site. - Relayed calls run one firewall at a time. Each connected firewall costs several relayed calls, so a run against a large estate takes correspondingly longer.
Getting Started
The Palo Alto Panorama integration is currently in public preview. Contact support@netboxlabs.com if you have not already been onboarded.
FAQ & Troubleshooting
Frequently asked questions and common issues for the Palo Alto Panorama integration, including configuration, credential, relay, and scope errors.