
Traffic Shaping and Bandwidth Management on a Palo Alto Firewall
Before you run this
This guide sets up QoS (Quality of Service) on a Palo Alto firewall so you can guarantee bandwidth to important traffic (say VoIP), cap bandwidth for greedy traffic (backups, streaming), and prioritise real-time flows during congestion. QoS on PAN-OS is enforced on the egress direction of an interface, which is the single most important thing to understand before you build anything — I cover it below.
This is configuration work on a production security device, so treat it accordingly:
- Access required. You need a firewall admin account with rights to edit Network profiles, Policies, and to commit. On a Panorama-managed firewall you would push this from Panorama instead; this guide assumes a standalone firewall managed through its own web GUI.
- Keep an out-of-band path open. Have a console cable (or a second management session on a known-good path) connected before you start. A QoS policy that matches management traffic, or an interface change, can throttle or disrupt the very session you are working in.
- Back up first. Go to Device > Setup > Operations and click Save named configuration snapshot, and also Export named configuration snapshot to pull a copy off-box. This is your rollback.
- Nothing here deletes data, but a wrong bandwidth cap or a policy matching too broadly will degrade or drop production traffic, which users feel immediately. QoS caps are enforced silently — there is no error, packets just get delayed or dropped.
- Test the scope first. Build the QoS policy against a narrow, identifiable test source (one test client IP, or one non-critical application) before you widen the match. Watch it in the live QoS statistics graph before you trust it.
- Do it in a maintenance window, and know your undo path: before you commit you can discard everything with Config > Revert Changes; after you commit you can restore the previous running config with Device > Setup > Operations > Load configuration version (or the snapshot you exported). PAN-OS commits are not auto-rollback-timed, so verify quickly after commit.
Assumptions
- PAN-OS 11.1, standalone firewall, configured through the web GUI. Menu paths shift slightly between major versions, so confirm anything that looks different against your exact release.
- Layer 3 interfaces:
ethernet1/1is the internet-facing (untrust) interface,ethernet1/2faces the LAN (trust). Substitute your real interface names. - A single internet link. Placeholder link speed below is 100 Mbps down / 20 Mbps up — replace with your actual, measured usable throughput, not the ISP's headline figure.
The one concept that trips everyone up: egress
QoS shapes traffic leaving an interface. So:
- To shape download traffic (internet → users), you apply QoS on the LAN interface (
ethernet1/2), because that is where download traffic egresses toward the users. - To shape upload traffic (users → internet), you apply QoS on the WAN interface (
ethernet1/1).
Most people want both, which means you configure QoS on both interfaces. Get this backwards and your "download cap" will do nothing.
Step 1 — Build a QoS profile
The profile defines up to eight traffic classes and what each one gets. Priorities available are real-time, high, medium, low, and each class can have a guaranteed egress and a maximum egress.
- Go to Network > Network Profiles > QoS Profile and click Add.
- Name it something like
QoS-WAN-Upload. - Set the profile-level Egress Max to the interface's usable ceiling — for the WAN upload profile,
20(Mbps). - Under Classes, click Add for each class you need. A sensible starting set:
| Class | Purpose | Priority | Guaranteed | Max |
|---|---|---|---|---|
| class1 | VoIP / real-time | real-time | 4 | 6 |
| class2 | Business apps | high | 6 | (blank = up to Egress Max) |
| class4 | Default / everything else | medium | (blank) | (blank) |
| class7 | Bulk / backups | low | (blank) | 5 |
Two things to know about the defaults here, both worth confirming in the PAN-OS QoS documentation for your build: traffic that matches no QoS policy falls into class 4, and a class with no guaranteed/max value is effectively unbounded within the profile ceiling. Leave a class blank rather than guessing a number you don't need.
- Click OK.
Make a second profile for the LAN interface (e.g. QoS-LAN-Download) with an Egress Max of 100 and the same class layout scaled to your download speed.
Step 2 — Enable QoS on the interface
- Go to Network > QoS and click Add.
- On the Physical Interface tab, choose the interface (
ethernet1/1for upload), tick the option to turn on QoS on this interface, set the Egress Max for the physical interface (20), and set the Default Profile for Clear Text traffic toQoS-WAN-Upload. - On the Clear Text Traffic tab, set the clear-text Egress Guaranteed and Egress Max to match your link, and confirm the default profile is applied.
- Click OK.
- Repeat for
ethernet1/2usingQoS-LAN-Downloadand the100ceiling.
The exact field labels on these tabs (Clear Text vs Tunneled Traffic) are documented in Palo Alto's "Configure QoS" admin guide topic — if a field name on your version doesn't match, follow the guide rather than guessing.
Step 3 — Write QoS policy rules
The policy is what actually sorts traffic into your classes. It looks and behaves like a security policy: match on zone, source, destination, application, and service, then assign a class.
- Go to Policies > QoS and click Add.
- General: name it, e.g.
VoIP-realtime. - Source: source zone
trust, and for your first test, a single test source address rather than the whole subnet. - Destination: destination zone
untrust. - Application / Service: pick the application (e.g.
sip,rtp) or a service. Start specific. - On the Other Settings (class) tab, set the QoS Class to
class1. - Click OK.
Add rules for your other classes (business apps → class2, backups → class7). Order matters — like security rules, the first match wins, so keep specific rules above broad ones. Leave general traffic to fall through to class 4.
Step 4 — Commit
Click Commit (top right). If anything looks wrong before you commit, use Config > Revert Changes to throw the candidate config away entirely.
Verify it worked
PAN-OS gives you a live per-class bandwidth graph, which is the fastest honest check:
- Go to Network > QoS.
- On the row for your interface, click the Statistics link.
- Generate the traffic (place a test VoIP call, run the backup), and watch the class bars move. Your test flow should land in the class you assigned, and a capped class should flatten at its ceiling under load.
Cross-check policy hits under Policies > QoS — the rule hit counter should climb for the rule you expect. From the CLI you can also inspect interface QoS with the operational show commands documented in the PAN-OS CLI reference under QoS; use those read-only commands rather than configuring QoS from the CLI, since the GUI is the supported path here.
Undo / rollback
- Remove one rule: delete it under Policies > QoS and commit.
- Turn QoS off on an interface: Network > QoS, edit the interface, untick the enable option (or delete the entry), and commit.
- Full rollback: Device > Setup > Operations > Load configuration version, pick the version from before your change, and commit — or load the snapshot you exported in the safety note.
Roll back the same way you built it: in a window, with a console session open.
Runs enterprise networks and security for a living, and writes Shore Up to turn two decades of hands-on Linux, Windows and mail-server work into guides you can actually use.
More about the author →Was this article helpful?
Tap a star — no sign-in needed.
Be the first to rate this article.
Related guides
The VPN Is the Front Door: What the Qilin/PAN-OS Break-In Means Behind the Perimeter
Arctic Wolf Labs, via The Hacker News , has tied a run of June 2026 intrusions to CVE-2026-0257 , an authentication bypass (CVSS 7.8) in the portal and gateway components of PAN-OS. The affiliates behind Qilin (also called Agenda) used it as their way in, then deployed ransomware. BleepingComputer reported the same activity.
Commit, Revert, and Audit Configuration Changes on Palo Alto
This guide covers the everyday change-control workflow on a Palo Alto firewall: staging a change in the candidate configuration , previewing exactly what will change, committing it to the running configuration, reverting an uncommitted change, rolling back to a previous committed version, and using Config Audit to diff two versions. None of this is a script you paste in blind — it is the vendor's own commit model, driven from the web UI and the CLI.
Configure App-ID and URL Filtering on a Palo Alto Firewall
This guide walks through building a URL Filtering security profile and adding App-ID application matching to a security policy rule on a standalone Palo Alto firewall, then attaching the profile to that rule so web traffic is classified by category and applications are matched by App-ID rather than by port. The purpose is to move from port-based rules toward application- and category-aware enforcement.
Back Up, Export, and Restore a Palo Alto Configuration
This guide covers three related tasks on a Palo Alto firewall: exporting a copy of the configuration off the box (a backup — completely safe, read-only), saving named snapshots on the box , and loading and committing a configuration (a restore — this changes the running config and can lock you out or drop production traffic ).




