技術文章 · IT 指令工具箱

Palo Alto Policy、NAT、IPsec VPN 與 Packet Capture 排錯

整理 PAN-OS security policy match、NAT policy match、session、IKE/IPsec SA、GlobalProtect、candidate diff 與四階段 packet capture 指令。

作者 Steve Chen · 發布  · 約 8 分鐘閱讀

IT 指令工具箱 — 廷皓技術專欄插圖

一條連線至少要回答:從哪個 zone 進、路由去哪、命中哪條 security policy、是否 NAT、application 最後辨識成什麼、回程是否對稱。VPN 再加 IKE 與 IPsec SA。

23 組範例PAN-OS 10.2/11.1/11.2/12.1NGFW查核日期:2026-08-11
動手前:Packet capture、debug 與 session clear 都可能增加 dataplane 負載或中斷使用者。本頁只示範窄條件 capture;完成一定 stop 並 clear。所有 candidate 變更先看 diff、validate、備份與回復。

Policy、NAT 與 Session Match

測 Security Policy 命中PAN-OS operational CLI

test security-policy-match from trust to untrust source 192.168.50.10 destination 198.51.100.20 protocol 6 destination-port 443

zone、protocol 與 port 要和實際封包一致。

測 NAT Policy 命中PAN-OS operational CLI

test nat-policy-match from trust to untrust source 192.168.50.10 destination 198.51.100.20 protocol 6 destination-port 443

結果要再和實際 session 的 translated address 比對。

查看 runtime Security PolicyPAN-OS operational CLI

show running security-policy

搜尋 rule name、hit count 與 application/service。

查看 runtime NAT PolicyPAN-OS operational CLI

show running nat-policy

確認順序、original 與 translated 條件。

查看 NAT pool 使用PAN-OS operational CLI

show running ippool

PAT pool 用盡會造成新 session 建立失敗。

依 rule 查 SessionPAN-OS operational CLI

show session all filter rule ALLOW-WEB

rule name 含空白時先用 tab completion 確認語法。

依 NAT rule 查 SessionPAN-OS operational CLI

show session all filter nat-rule SNAT-INTERNET

確認實際流量有命中預期 NAT。

查看單一 Session 細節PAN-OS operational CLI

show session id 123456

看 application、policy、NAT、offload、timeout 與 packet counters。

IPsec 與 GlobalProtect

查看 IKE Phase 1PAN-OS operational CLI

show vpn ike-sa

按 gateway 名稱、state、proposal 與 peer IP 判讀。

查看 IPsec Phase 2PAN-OS operational CLI

show vpn ipsec-sa

IKE up 不代表 IPsec SA 或 proxy ID 正確。

查看 VPN flowPAN-OS operational CLI

show vpn flow

核對 tunnel、encap/decap、error 與 peer。

查看 tunnel 設定摘要PAN-OS operational CLI

show vpn tunnel

確認 tunnel interface 與 auto-key 設定。

查看 GlobalProtect 目前使用者PAN-OS operational CLI

show global-protect-gateway current-user

指令層級依 PAN-OS 版本與 gateway 類型可能不同,先用 ?。

查看 GlobalProtect 統計PAN-OS operational CLI

show global-protect-gateway statistics

對照 portal、gateway、authentication 與 tunnel log。

從 Tunnel IP 測對端PAN-OS operational CLI

ping source 10.255.0.1 host 10.255.0.2

source、route 與 proxy ID 必須在 VPN 設計內。

窄範圍 Packet Capture 與變更檢查

設定 Capture filterPAN-OS operational CLI

debug dataplane packet-diag set filter match source 192.168.50.10 destination 198.51.100.20 destination-port 443 protocol 6

只抓單一五元組,避免大量封包。

啟用 Capture filterPAN-OS operational CLI

debug dataplane packet-diag set filter on

先設定 filter 才能開 capture。

設定四個 Capture stagePAN-OS operational CLI

debug dataplane packet-diag set capture stage receive file rx.pcap firewall file fw.pcap transmit file tx.pcap drop file drop.pcap

四個 stage 有助判斷封包在哪一步消失。

開始 Packet CapturePAN-OS operational CLI

debug dataplane packet-diag set capture on

只重現一次,立即停止。

停止 Packet CapturePAN-OS operational CLI

debug dataplane packet-diag set capture off

不管有沒有重現都要明確 stop。

清除 Packet DiagnosticPAN-OS operational CLI

debug dataplane packet-diag clear all

確認檔案已下載或不需要後再清。

查看 Candidate DiffPAN-OS configuration CLI

show config diff

commit 前確認只有變更單內項目。

驗證 Candidate ConfigPAN-OS configuration CLI

validate full

驗證通過不代表流量行為一定正確,仍要 policy match 與維護窗。

怎麼確認有做對

  • Policy match、NAT match、session detail、traffic log 與 capture 都指向同一條規則。
  • VPN 的 encrypt/decrypt counter 隨測試流量增加,回程路由與 proxy ID 對稱。
  • Capture 已 stop 並 clear,candidate diff 只含核准變更。

常見錯誤

  • 用 service any 掩蓋 application-default 問題。
  • IKE up 就認定 VPN 正常。
  • 沒有 filter 長時間開四階段 capture。
  • 在 HA/Panorama 管理環境直接本機改完就 commit。

常見問題

Policy test 命中 allow,為什麼流量還是不通?

Policy test 使用你輸入的條件,不會證明實際封包從同 zone、IP、port 進來,也不會驗證回程、NAT pool、App-ID、decryption、DoS、routing 或對端服務。

可以直接 clear 所有 session 測試嗎?

不應。會中斷大量連線。若根因確實是舊 session,先用五元組鎖定單一 session,在維護窗清除並驗證。

延伸閱讀

版本與官方文件

參數會隨工具版本與作業系統實作改變。正式環境先用 --help、-h 或系統內建說明確認,再以當版官方文件為準。

常見問題

Policy test 命中 allow,為什麼流量還是不通?

Policy test 使用你輸入的條件,不會證明實際封包從同 zone、IP、port 進來,也不會驗證回程、NAT pool、App-ID、decryption、DoS、routing 或對端服務。

可以直接 clear 所有 session 測試嗎?

不應。會中斷大量連線。若根因確實是舊 session,先用五元組鎖定單一 session,在維護窗清除並驗證。

聯絡廷皓討論 看更多文章