Inter-VSYS (Virtual System) routing is a fundamental capability within Palo Alto Networks' PAN-OS that enables controlled communication between different logical firewall instances (VSYS) residing on a single physical PA-Series or VM-Series firewall. This feature is critical for scenarios requiring network segmentation with distinct administrative domains, security policies, and routing contexts, all while leveraging the same hardware. Common use cases include multi-tenancy, departmental isolation, service provider environments, and phased network consolidations.
The core principle of inter-VSYS routing is to allow traffic to pass from one VSYS to another internally through the firewall's dataplane , without requiring the traffic to physically egress and re-ingress the firewall. This optimizes performance and simplifies network design for specific segmentation needs.
Effectively implementing inter-VSYS routing requires a solid understanding of several key PAN-OS components and concepts:
VSYS are logical, independent firewall instances within a single physical Palo Alto Networks firewall. Each VSYS operates with its own:
VSYS are enabled by a specific license on the firewall. When a firewall is in multi-VSYS mode, one VSYS is designated as `vsys1` (often used for management or shared services), and subsequent VSYS are created (e.g., `vsys2`, `vsys3`).
Each VSYS contains one or more Virtual Routers. A VR maintains its own routing table (FIB - Forwarding Information Base) and makes forwarding decisions for traffic within or passing through its associated VSYS. For inter-VSYS routing, static routes are configured within each VSYS's VR to direct traffic destined for another VSYS. While dynamic routing protocols (BGP, OSPF, RIP) can operate within a VR, inter-VSYS routing relies on a special type of static route.
This is a pivotal concept for inter-VSYS communication. An "External Zone" in this context is a special type of Security Zone in PAN-OS that does not have any physical or virtual interfaces assigned to it. Instead, it serves as a logical conduit or placeholder representing the connection to another VSYS.
To direct traffic from one VSYS to another, you configure static routes in the source VSYS's Virtual Router. The key differentiation for inter-VSYS static routes is the "Next Hop" type. Instead of specifying an IP address or interface, you select "Next VSYS" and then choose the target VSYS from a dropdown list (which is populated based on VSYS visibility settings).
All traffic passing between VSYS, even though it remains within the same physical firewall, must be explicitly permitted by Security Policies in both the source and destination VSYS.
Before one VSYS can route traffic to another or be selected as a "Next VSYS" in a static route, it must be made "visible" to the other VSYS. This is a simple checkbox configuration within the VSYS settings. GUI Path: `Device > Virtual Systems > (select a VSYS) > Inter-VSYS Settings > Visible VSYS`. You need to add the other VSYS to this list. This must be done on both VSYS that need to communicate.
Configuring inter-VSYS routing involves a precise sequence of steps performed across the participating virtual systems. Let's consider an example where we want to enable communication from `VSYS1` (with internal network 10.1.1.0/24 in zone `VSYS1-TRUST`) to `VSYS2` (with internal network 10.2.2.0/24 in zone `VSYS2-TRUST`).
This is a system-level setting. GUI: `Device > Setup > Management > General Settings > Enable Multi Virtual System Capability`. A reboot is typically required after enabling this.
Verify that the necessary VSYS licenses are active and that `vsys1`, `vsys2` (and any others) are created. GUI: `Device > Virtual Systems`.
Ensure you are in the correct VSYS context (top-left VSYS dropdown in PAN-OS GUI).
Assume `VR1` in `vsys1` and `VR2` in `vsys2`.
After all configurations are complete, perform a `Commit` operation on the firewall to apply the changes. A Panorama commit might be needed if managed by Panorama, ensuring policies are pushed to the correct VSYS on the firewall device group.
Understanding the packet flow is crucial for troubleshooting and grasping how PAN-OS handles inter-VSYS traffic.
Detailed packet flow for inter-VSYS communication between a client in VSYS1 and a server in VSYS2. Note the two stages of policy lookup and routing, one in each VSYS.
Key stages in the flow:
This diagram illustrates the key logical components involved in connecting two Virtual Systems (VSYS1 and VSYS2) for inter-VSYS communication.
Logical representation of Inter-VSYS routing setup between VSYS1 and VSYS2. This shows the external zones, virtual routers with static routes, and security policies facilitating the communication. The "PAN-OS Internal Fabric" represents the internal mechanism handling traffic transfer between VSYS.
Palo Alto Networks firewalls employ inter-VSYS routing for several strategic advantages:
When inter-VSYS communication fails, a systematic approach is needed. Focus on verifying each component in the traffic path within both participating VSYS.
Symptom | Palo Alto Networks Checks & Commands (PAN-OS CLI) | Potential Issue |
---|---|---|
Cannot ping/connect from host in VSYS1 to host in VSYS2 |
Within VSYS1 context (`set system setting target-vsys vsys1`):
show counter global filter delta yes packet-filter yes show session all filter source <src_ip_vsys1> destination <dst_ip_vsys2> show routing route destination <dst_ip_vsys2> test routing fib-lookup virtual-router <vr_name_vsys1> ip <dst_ip_vsys2> show log traffic direction equal forward source <src_ip_vsys1> destination <dst_ip_vsys2> debug dataplane packet-diag set filter match source <src_ip_vsys1> destination <dst_ip_vsys2> debug dataplane packet-diag set capture stage firewall file inter_vsys_capture.pcap debug dataplane packet-diag set capture on (Reproduce issue, then `debug dataplane packet-diag set capture off`)Repeat similar checks in VSYS2 context for return traffic. |
- Missing/incorrect static route in VSYS1 VR.
- Security policy in VSYS1 blocking (source internal to dest external zone). - Missing/incorrect static route in VSYS2 VR for return path. - Security policy in VSYS2 blocking (source external to dest internal zone). - VSYS visibility not set correctly. - Incorrect External Zone configuration. - NAT issues if NAT is involved. |
"Next VSYS" option not available in static route configuration | GUI: `Device > Virtual Systems > (select source VSYS) > Inter-VSYS Settings > Visible VSYS`. | Target VSYS is not added to the "Visible VSYS" list of the source VSYS. |
Traffic logged as allowed in VSYS1, but no session in VSYS2 or no response |
Check logs and session table in VSYS2 (`set system setting target-vsys vsys2`):
show session all filter source <src_ip_vsys1> destination <dst_ip_vsys2> show log traffic direction equal forward source <src_ip_vsys1> destination <dst_ip_vsys2> |
- Routing issue in VSYS2 (cannot reach final destination).
- Security policy in VSYS2 blocking (from external zone to internal). - Asymmetric routing for return traffic. |
Intermittent connectivity |
Check resource utilization:
show running resource-monitorCheck for commit failures or partial commits if using Panorama. |
- Resource exhaustion on the firewall.
- Unstable routes (though less likely with static inter-VSYS routes). - Conflicting configurations. |
Key Troubleshooting Steps:
Network Address Translation (NAT) can be applied to inter-VSYS traffic just like any other traffic passing through a Palo Alto Networks firewall. NAT policies are configured per-VSYS.
Consider a scenario where VSYS1 (internal 10.1.1.0/24) needs to communicate with VSYS2 (internal 10.2.2.0/24), but VSYS2 expects all traffic from VSYS1 to appear as if it's coming from 192.168.100.1.
Similarly, Destination NAT can be applied if services hosted in one VSYS need to be presented with different IP addresses to another VSYS.
High-level overview of the administrative steps required to configure inter-VSYS routing between VSYS1 and VSYS2 on a Palo Alto Networks firewall.