TTechclick All lessons
Palo Alto · NGFW Routing · PBF + Multi-VRInteractive · L2 / L3

Policy-Based Forwarding & Multi-VR — Override the FIB on Purpose

PBF overrides the routing table for matching packets. Symmetric Return rescues asymmetric dual-ISP designs. Multi-VR with next-vr powers SD-WAN-style topologies. Watch each one animate, then nail the troubleshooting moves L1 engineers always miss.

📅 2026-05-25 · ⏱ 12 min · 2 live demos · 🏷 10-Q assessment + AI Tutor inline

Pick your path — jump straight in

1

Why PBF Exists

When the FIB picks the "wrong" next-hop and you need a per-flow override.

2

PBF Decision Walker

Watch a packet go through PBF lookup, monitor-target check, then action.

3

Symmetric Return

The fix for dual-ISP inbound flows. Plus the return-mac table trap.

4

Multi-VR + next-vr

Two virtual routers, one chassis. The SD-WAN-style dual-ISP design.

① Why PBF exists — when the FIB is "right" but wrong

Palo Alto's default behaviour: every packet hits a destination-based FIB lookup, takes the best route, exits the chosen interface. Clean. Predictable. But sometimes you need policy to override routing — say, you want all guest-WiFi → internet traffic forced over the cheap ISP2 link while corp-LAN → internet stays on the premium ISP1 link, even though both have a default route to 0.0.0.0/0.

That's PBF. A PBF rule matches on the same kind of attributes as a security rule — source zone, source/dest IP, application, user, service — and instead of "allow / deny" the action is forward via egress interface + next-hop. PBF is evaluated before the FIB lookup. If a PBF rule matches, the FIB is bypassed for that packet. If no PBF rule matches, the FIB takes over as usual.

🛣
PBF beats FIB
tap to flip

PBF rule lookup happens before the destination-FIB lookup. A matching PBF rule overrides the FIB. No-match → fall through to FIB. Order matters.

🎯
Per-flow override
tap to flip

Match per src-zone, src/dst IP, application, user, service. Action = forward (egress IF + next-hop) or discard or no-PBF. Stateful — first-packet binds the session to the chosen path.

📡
Monitor Target
tap to flip

Optional health-check on the PBF rule — pings an IP via the egress interface. If unreachable, action can fail back to FIB (recommended) or drop. The whole point of monitor-target is automatic failover.

Symmetric Return
tap to flip

Forces return traffic out the same interface it arrived on — pinned by source MAC, not by FIB. Critical for inbound dual-ISP flows where the FIB would pick the wrong ISP for the reply.

Quick check · Q1 of 10

Sneha at Infosys configures one PBF rule (guest WiFi → ISP2) and leaves a default route in the FIB pointing to ISP1. A guest laptop sends a packet. Which lookup happens FIRST?

Correct: a. PBF is evaluated before the destination-FIB lookup. A matching PBF rule overrides whatever the FIB would have picked. Only when no PBF rule matches does the FIB make the routing decision. That's the whole point of "policy-based" routing.

② Watch a packet hit a PBF rule — and what happens next

Eight stages from ingress to egress, with the PBF rule applied. Press Play to see how the firewall sequences the lookups.

▶ PBF decision walker — Guest WiFi out to ISP2

A guest laptop sends a packet to 8.8.8.8:443. PBF says "guest-zone → use ISP2", FIB default-route still says "send everything via ISP1".

① INGRESS 192.168.99.45:512448.8.8.8:443
From the guest WiFi VLAN, zone guest-wifi.
② PBF LOOKUP Rule "Guest-to-ISP2" matches src-zone=guest-wifi, app=any, dst=any
Top-down evaluation, first match wins — exactly like security policy.
③ MONITOR CHECK Monitor target 4.2.2.2 via ethernet1/3 is up → PBF action proceeds
If monitor target were down, action would be "fall back to FIB" (default) or "drop" depending on rule config.
④ ACTION Forward to ethernet1/3 (ISP2 link) · next-hop 198.51.100.1
FIB would have sent this to ISP1 — PBF wins.
⑤ SEC POLICY Pre-NAT src/dst + egress zone untrust-isp2 → "Allow-Guest-Internet" matches
Security policy still runs — PBF only overrides routing, not allow/deny.
⑥ NAT Source NAT to 198.51.100.10 (ISP2's public IP)
⑦ EGRESS Packet leaves ethernet1/3 with source IP = ISP2's public IP. Session is now pinned to this path.
⑧ RETURN Reply comes back on the same ISP2 link (because source IP was ISP2's). Stateful match → forwarded back to the guest laptop.
Press Play to see the full PBF override sequence. Next steps one stage at a time.
Monitor-target = your free auto-failover

Every production PBF rule should have a Monitor Target configured — an IP that's reachable only via the chosen egress interface (your ISP gateway IP, or an upstream loopback). When the target fails, set the action to fall back to FIB so packets re-route over the surviving link instead of getting dropped. Monitor interval = 3 sec / threshold = 5 misses is a sane default. Tighter for VoIP, looser for noisy links.

What can a PBF rule actually do?

Forward
tap

Send via specific egress interface + next-hop IP. The main use case. Combine with monitor-target for failover.

🗑
Discard
tap

Drop matching packets at the PBF stage. Useful as a pre-security blackhole for known-bad src/dst — drop earlier in the pipeline = less CPU.

🚫
No PBF
tap

Explicit "skip PBF" action — let the FIB handle this match. Useful as a top-of-rulebase carve-out (e.g. exempt VPN traffic from a broader PBF rule below).

Symmetric Return
tap

A flag on a Forward action — return traffic for the session is pinned to the same ingress interface using the source MAC. Required for dual-ISP inbound flows.

Quick check · Q2 of 10

Rahul at TCS sets up a PBF rule to send branch-VPN traffic via ISP2. He sees in the logs that traffic still uses ISP1 sometimes. After investigation, the monitor target was down for those moments. What is the most likely root cause of traffic still flowing?

Correct: d. "Fail back to FIB" is the safe default — if PBF can't reach its monitor, fall back to normal routing. That's by design, not a bug. If you want hard-pin (drop if ISP2 is unhealthy, never use ISP1), switch the disable-action to "Drop". This is a design decision, not a config error. Always pick action deliberately based on business needs.

③ Symmetric Return — when the FIB picks the wrong way home

Imagine an inbound web request lands on ISP2's public IP. The firewall accepts the session, hands it to the internal web server. The server replies — and PAN-OS does an FIB lookup for the reply's destination IP (the internet client). The FIB picks the default route, which usually points at ISP1. Reply goes out ISP1. Client sees a packet with a different source IP than the one it sent to. TCP drops it. Application breaks. Welcome to asymmetric routing.

Symmetric Return fixes this. Tick the flag on a PBF rule, and PAN-OS remembers — per session — the source MAC of the device that sent the first packet. When the reply leaves, PAN-OS ignores the FIB and ARP-resolves back to that same MAC. Reply takes the same path the original packet came in on. Symmetric. Stateful. Survives.

▶ Symmetric Return rescues a dual-ISP inbound flow

A user from the internet hits the company's webapp on ISP2's public IP. Without Symmetric Return, the reply would take ISP1 and break.

① INBOUND 203.0.113.42:55012198.51.100.10:443
User from the internet · arrives on ethernet1/3 (ISP2) · zone untrust-isp2.
② PBF MATCH Rule "Inbound-ISP2-WebPub" matches src-zone=untrust-isp2, app=ssl
Action = Forward via dmz · Symmetric Return = enabled
③ MAC LEARN Firewall stores the source MAC of the ISP2 next-hop router in its return-mac table, keyed by this session
This is the magic — return-mac, not return-IP. Symmetric return is L2-pinned, not L3.
④ DNAT + INSPECT Destination NAT to internal web server 10.50.5.10 → security rule allows → packet enters DMZ
⑤ SERVER REPLIES Web server sends 200 OK to the client. Reply hits the firewall on the DMZ interface.
⑥ FIB OVERRIDE Normally FIB would pick the default route (ISP1). Symmetric Return overrides the FIB — uses the stored return-mac from stage 3.
⑦ EGRESS ISP2 Reply forwarded back via ethernet1/3 (ISP2) — to the same MAC the original packet arrived from
Client sees reply from the IP it sent to. TCP happy. Application works.
⑧ TIMEOUT Return-mac entry stays in the table for ~30 minutes of inactivity, then auto-flushes
Limit: return-mac table size = half of ARP table size. Hit it = silent drops. See callout below.
Press Play to see how Symmetric Return prevents the asymmetric-reply outage.
The silent return-mac table-full trap

The return-mac table holds one entry per unique next-hop MAC the firewall has seen for symmetric-return sessions. Its size = half of the ARP table size, hard-coded per platform — not user-configurable. When full, new symmetric-return sessions silently get no return-MAC resolution and their reply packets are dropped. No log, no syslog, no SNMP alert. On a PA-3220 the limit is in the low thousands; on busy edge firewalls with many inbound flows it gets hit. Check with show pbf return-mac all | match Used · clear with clear pbf return-mac all · fix permanently by reducing Symmetric Return scope (only apply to the inbound-needed rules), upgrading platform, or splitting via multi-VR (next section).

Quick check · Q3 of 10

Priya at HCL configures Symmetric Return on a PBF rule for inbound traffic on ISP2. After two weeks, ~3% of inbound sessions to ISP2-hosted servers suddenly hang. show pbf return-mac all shows the used count is at the model limit. What's the most accurate explanation and fix?

Correct: c. The return-mac table has a fixed per-platform size (half the ARP table). When it fills, symmetric-return resolution fails silently and reply packets are dropped with no alert. The diagnostic command is show pbf return-mac all. Immediate relief: clear the table. Long-term: trim the PBF rule to only the flows that truly need symmetric return, or — much better for scale — restructure with multiple virtual routers so the return path is governed by routing, not by Symmetric Return.

④ Multi-VR — when PBF starts to hurt and routing should take over

PBF is great for tactical overrides. But once your rule count grows, or you need full BGP per ISP, or your Symmetric Return tables fill up, the right answer is to stop fighting the FIB and split it: create a virtual router per ISP. Each VR has its own RIB, its own default route, its own BGP / OSPF process. You stitch them together with next-vr static routes.

🗺
VR-Internal
tap

Holds internal LAN subnets, internal routing (OSPF/BGP). Default route → next-vr VR-ISP1 for outbound; static returns from VR-ISP1/VR-ISP2 land here.

🛰
VR-ISP1
tap

Only the ISP1 uplink interface lives here. Default route → ISP1 next-hop. Static return for internal subnets → next-vr VR-Internal. Optional BGP peer with ISP1.

🛰
VR-ISP2
tap

Only the ISP2 uplink interface lives here. Default route → ISP2 next-hop. Static return for internal subnets → next-vr VR-Internal. Path-isolation by design.

🔗
next-vr stitch
tap

The next-vr static-route construct hands a packet from one VR's FIB to another's FIB lookup — no extra interface needed. The "wire" between virtual routers in the same chassis.

Why multi-VR is the right answer for inbound dual-ISP

An inbound flow landing on ISP2 is routed by VR-ISP2's FIB (default-route via ISP2). When the server replies, the reply enters VR-Internal — but VR-Internal's only route back to the internet client is via next-vr VR-ISP2 (because the source IP of the original request was learned via VR-ISP2's interface, not VR-ISP1's). Routing does the symmetric-return work for free. No PBF rule. No return-mac table. No silent drops at scale.

Conceptual multi-VR config (CLI flavour)
# VR-Internal
set network virtual-router VR-Internal interface [ ethernet1/1 ethernet1/2 ]
set network virtual-router VR-Internal routing-table ip static-route Default \
    destination 0.0.0.0/0 nexthop next-vr VR-ISP1

# VR-ISP1
set network virtual-router VR-ISP1 interface [ ethernet1/4 ]
set network virtual-router VR-ISP1 routing-table ip static-route Default-ISP1 \
    destination 0.0.0.0/0 nexthop ip-address 203.0.113.1
set network virtual-router VR-ISP1 routing-table ip static-route Internal \
    destination 10.0.0.0/8 nexthop next-vr VR-Internal

# VR-ISP2 (symmetric to VR-ISP1)
set network virtual-router VR-ISP2 interface [ ethernet1/5 ]
set network virtual-router VR-ISP2 routing-table ip static-route Default-ISP2 \
    destination 0.0.0.0/0 nexthop ip-address 198.51.100.1
set network virtual-router VR-ISP2 routing-table ip static-route Internal \
    destination 10.0.0.0/8 nexthop next-vr VR-Internal
When to use multi-VR vs PBF — the design heuristic

PBF when: you need to override routing for a handful of well-scoped flows (guest WiFi, specific app to specific egress, on-the-fly diversion). Low rule count, low complexity, monitor-target works.

Multi-VR when: full dual-ISP with both directions, BGP per ISP, server publishing on multiple ISPs, large Symmetric Return scope (return-mac risk), need clean per-ISP RIB visibility, planning to add a third ISP or MPLS link later.

Many production designs end up with both: multi-VR for the structural per-ISP routing, plus a small PBF policy for guest-WiFi or a specific app override.

Quick check · Q4 of 10

Karthik at Flipkart inherits a single-VR firewall with 30+ PBF rules and constant return-mac alarms. He proposes redesigning to one VR per ISP (3 ISPs) plus VR-Internal. Which statement is most accurate about this redesign?

Correct: a. Multi-VR is the canonical answer for multi-ISP designs with bi-directional flows. Each VR has its own RIB/FIB; next-vr stitches them. Returns route naturally back through the correct ISP because internal-to-external routes are pre-installed per VR. PBF reduces to a small set of tactical overrides. Trade-off: more upfront routing design + discipline to keep per-VR static routes in sync.

⑤ Two commands you'll actually run during a PBF incident

① Test which PBF rule will fire for a hypothetical packet
test pbf-policy-match from trust-lan to untrust-isp2 source 192.168.99.45 destination 8.8.8.8 application ssl protocol 6 destination-port 443
Expected output snippet
Guest-to-ISP2 {
    from         guest-wifi;
    source       any;
    destination  any;
    application  any;
    action       forward;
    nexthop      198.51.100.1;
    egress       ethernet1/3;
    monitor      4.2.2.2 (status: up);
}
② Check return-mac table health
show pbf return-mac all
show pbf rule all
Drill: clear return-mac during maintenance

Schedule a planned maintenance and run clear pbf return-mac all during low traffic. Watch show pbf return-mac all | match Used to confirm the table re-populates cleanly. This proves your monitor-target + symmetric-return config will recover automatically. The first time you do this in production should NOT be at 2 AM with users yelling.

🤖 Ask the AI Tutor

Tap any question — instant context-aware answer. No login, no waiting.

Pre-curated answers from PAN-OS 11.x docs + LIVECommunity TAC threads.

📝 Wrap-up — six more

You've already answered 4 inline. Six left. 70% (7 of 10) total marks the lesson complete on your profile. Tap Submit all answers at the end.

Q5 · Apply

A PBF rule has Action = Forward, Egress IF = ethernet1/4, Next-Hop = 203.0.113.1, Monitor Target = 4.2.2.2, Disable on Monitor Failure = enabled. The monitor target becomes unreachable for 60 seconds. What happens to a new session matching this rule during that window?

Correct: b. "Disable on Monitor Failure" tells PAN-OS to skip the PBF override when the monitor target is down. The packet then follows the FIB. If you want a hard-drop behaviour instead, change the disable action to "Drop" — but that risks user-visible outage if the monitor is wrong about the path being broken. The fallback-to-FIB default is usually the safer pick.
Q6 · Analyze

A PBF rule with Symmetric Return is configured. An admin notices that when the upstream router's MAC changes (planned ISP maintenance), some sessions hang for several minutes. What's the most accurate explanation?

Correct: d. The return-mac table caches the next-hop MAC per session. A mid-session MAC change on the upstream router (HSRP/VRRP swap, hardware swap) leaves the stale MAC in the cache; replies go to nowhere until the session times out (~30 min idle) or you manually clear. clear pbf return-mac all is the lever. Multi-VR / FIB-based return-routing doesn't have this problem because ARP refreshes naturally.
Q7 · Analyze

A site uses multi-VR: VR-Internal, VR-ISP1, VR-ISP2. A new requirement comes in to deny direct VR-ISP1 ↔ VR-ISP2 traffic (no transit routing between ISPs through the firewall). What is the cleanest way to enforce this?

Correct: c. Multi-VR's structural property: VRs only exchange traffic where you wire them with next-vr static routes. No next-vr between VR-ISP1 and VR-ISP2 means no routing path between them — clean isolation by routing-table design. Add a deny security rule for defence-in-depth, but the routing-table isolation is the strong control.
Q8 · Analyze

A single-VR firewall has both a PBF rule pinning corp traffic to ISP1 AND a static default route in the FIB pointing to ISP2. The PBF monitor target is healthy. For a corp packet, what is the actual forwarding decision and why?

Correct: a. PBF is the override layer; FIB is the fallback. As long as the PBF rule matches and the monitor target is healthy (or no monitor is configured), the PBF action wins. Only when no PBF rule matches OR the monitor fails AND "Disable on Monitor Failure = enabled" does the packet fall through to the FIB.
Q9 · Evaluate

Aditya at Wipro deploys a new PBF rule with Symmetric Return for inbound dual-ISP. After 6 weeks, show pbf return-mac all | match Used shows the table is at 95% capacity and climbing. What's the SAFEST production action?

Correct: b. Return-mac table size is hard-coded per platform and cannot be raised via CLI (c). Disabling Symmetric Return (d) breaks inbound asymmetric flows immediately. Reboot (a) is a temporary clear, not a fix. The right answer: trim scope to only the flows that need symmetric-return, and plan the structural fix (multi-VR with next-vr) so routing handles asymmetric-return correctly without exhausting a finite table.
Q10 · Evaluate

A team proposes "let's add ECMP across ISP1 and ISP2 to double bandwidth, AND keep our existing PBF rules for guest-WiFi-to-ISP2". Will this work as intended, or are there caveats?

Correct: c. ECMP + PBF can coexist but the design is fragile. PBF rules win on match; the rest goes ECMP. The asymmetric-return risk grows because the firewall now uses two egress paths for a flow that originally was single-IP-sourced. Pair ECMP with Symmetric Return inbound, or — much cleaner — split into multi-VR per ISP and skip the ECMP-vs-stateful-firewall fight entirely.
Lesson complete — saved to your profile.
Almost! You need 70% (7 of 10) — re-read the section that tripped you up and tap "Try again".

📚 Sources

  1. Palo Alto Docs — Policy-Based Forwarding. docs.paloaltonetworks.com (network-security/security-policy/administration/policy-based-forwarding)
  2. Palo Alto Docs — Egress Path and Symmetric Return (PAN-OS 11.1). docs.paloaltonetworks.com
  3. Palo Alto Docs — Use Case: PBF for Outbound Access with Dual ISPs. docs.paloaltonetworks.com
  4. Palo Alto KB — Forwarding fails for specific traffic that matches a PBF rule. knowledgebase.paloaltonetworks.com
  5. LIVECommunity — Policy-Based Forwarding Symmetric Return Overview. live.paloaltonetworks.com/t5/general-articles/ta-p/545067
  6. LIVECommunity — What happens when the return-mac limit is reached when using symmetric routing? td-p/70987
  7. LIVECommunity — Dual ISP and PBF with single or multiple Virtual Routers. td-p/496236
  8. Weberblog — Policy Based Forwarding on a Palo Alto with different Virtual Routers. weberblog.net

What's next?

Next up: IPSec Site-to-Site VPN — IKEv1 vs IKEv2, the two-phase SA negotiation, proxy-ID mismatch (the AWS/Azure heartbreaker), DPD, and route-based vs policy-based VPN. Includes a guided link to the Techclick IPSec simulator.