Palo Alto VM-Seriesの設定上限値を確認する方法

Paloalto Paloalto
この記事は約25分で読めます。

VM-Seriesにおける各モデルの設定上限値(登録できるIPアドレス数の上限など)を調べてみました。

Palo AltoのVM-Seriesを利用していると以下のような情報が知りたい時があります。

  • Address Objectは何個まで登録できる?
  • セキュリティポリシーは何ルールまで作成できる?
  • 同時セッション数の上限はいくつ?
  • VM-Seriesのモデルによって設定上限はどのくらい違う?

実際私もそうでした。

VM-Seriesでは、CLIから各種設定値の上限を確認することができます。

今回は、Azure上に構築したVM-Seriesを使って、VM-Seriesの設定上限値をCLIから確認する方法をまとめてみました。

なお、VM-SeriesのモデルはAzure VMのサイズに対応しており、VMサイズによって一部の上限値が変わります。

各モデルはAzureの仮想マシンのサイズ(主にCPU)に対応しています。

paloaltoの公式ドキュメントに対応表があります。

VM-Series Models on Azure Virtual Machines (VMs)
This page lists the VM-Series performance and capacity requirements on Microsoft Azure Virtual Machines (VMs).

今回はAzure上で構築したVM-SERIES-4(VM-300)、VM-SERIES-8(VM-500)、VM-SERIES-16(VM-700)の仮想マシンを利用してそれぞれ上限値を調べてみました。

広告

1.VM-Seriesにおける各モデルの設定上限値を確認する

以下のコマンドをオペレーショナルモードで実行することで各設定値の上限値を確認することができます。

 # ページング機能を無効化
set cli pager off

 # 設定上限値を確認
show system state filter cfg.general.max*

これで、cfg.general.max- から始まる各種設定上限値が一覧で表示されます。

1-1. [推奨] ページング機能の無効化

上記のコマンドを実行する前にオペレーショナルモードで「set cli pager off」を実行することで「ページング機能を無効化する」ことができ、出力結果を一気に出力することができるので便利です。

ページング機能とは、あるコマンドを実行した時の出力結果が利用しているコンソールよりも多くなってしまった場合に、すべてを一気に表示させず、出力結果を分割して表示させる機能のことで、以下の赤矢印のようにコンソール下部に「まだ続きがあるよ」といったような表示が出てきます。

ページング機能が有効な場合の画面表示

ページング機能で表示されるのが便利な時もあるのですが、私は出力結果を一気に表示させたい派なので set cli pager off をよく利用しています。

ちなみにページング機能が働いた場合には「Shift + Q」で抜けることが可能です。

2.VM-Seriesの上限値確認コマンド実行結果

上限値の出力結果は16進数で出力されるものが多数あります。

2-1. VM-SERIES-4(VM-300)の出力結果

実際にコマンドを実行すると1行目の「cfg.general.max-address」などは16進数で表示されますす。

cfg.general.max-address: 0x9c40
cfg.general.max-address-group: 0xfa0
cfg.general.max-address-per-group: 0x9c4
cfg.general.max-appid-pkts: 196608
cfg.general.max-appinfo2ip-entry: 0x22400
cfg.general.max-arp: 0x1f400
cfg.general.max-auth-policy-rule: 2000
cfg.general.max-bfd-session: 0x400
cfg.general.max-blacklist: 0x186a0
cfg.general.max-c3-flow: 0x989682
cfg.general.max-cert-cache-entries: 0x800
cfg.general.max-ctd-session: 0x2ab980
cfg.general.max-debug-pool: 0xb2e604
cfg.general.max-di-nat-policy-rule: 15000
cfg.general.max-di-nat-pool: 5000
cfg.general.max-dip-nat-addrs: 2000
cfg.general.max-dip-nat-policy-rule: 2000
cfg.general.max-dns-cache: 0x186a0
cfg.general.max-dos-policy-rule: 1000
cfg.general.max-edl-domain: 2000000
cfg.general.max-edl-domain-filesize: 512000000
cfg.general.max-edl-ip: 50000
cfg.general.max-edl-ip-filesize: 6500000
cfg.general.max-edl-objs: 30
cfg.general.max-edl-url: 100000
cfg.general.max-edl-url-filesize: 25500000
cfg.general.max-fibinstance: 0xff
cfg.general.max-fibtrie-buf: 0x2000000
cfg.general.max-fptcp-segs: 0x51c98
cfg.general.max-ha-aa-vaddresses: 4096
cfg.general.max-ha-cluster-members: 16
cfg.general.max-hip: 63
cfg.general.max-ifnet: 0x1000
cfg.general.max-ifnet-sdwan: 1000
cfg.general.max-ike-peers: 2000
cfg.general.max-iot-probe-networks: 128
cfg.general.max-ip6addrtbl: 4096
cfg.general.max-ipfrags: 0x4000
cfg.general.max-mac: 0x1f400
cfg.general.max-mroute: 0xfa0
cfg.general.max-nat-policy-rule: 15000
cfg.general.max-neigh: 128000
cfg.general.max-net-inspection-rule: 0x3e8
cfg.general.max-net-inspection-zone: 0x4
cfg.general.max-npb-policy-rule: 300
cfg.general.max-oride-policy-rule: 2000
cfg.general.max-parent-info: 152064
cfg.general.max-pbf-policy-rule: 2000
cfg.general.max-policy-rule: 20000
cfg.general.max-profile: 0x2ee
cfg.general.max-proxy-mem: 0xd6da0
cfg.general.max-proxy-mem-unit: 0x400
cfg.general.max-proxy-reverse_keys: 0x3e8
cfg.general.max-proxy-session: 0x6d5f
cfg.general.max-proxy-timer-chunks: 0x20000
cfg.general.max-qos-policy-rule: 4000
cfg.general.max-qosbw: 10000
cfg.general.max-qosif: 12
cfg.general.max-qosnet: 64
cfg.general.max-regions: 1024
cfg.general.max-registered-ip-address: 0x493e0
cfg.general.max-return-mac: 0xfa00
cfg.general.max-rexmt-segs: 16000
cfg.general.max-route: 100000
cfg.general.max-route4: 0x186a0
cfg.general.max-route6: 0x186a0
cfg.general.max-routing-peer: 1024
cfg.general.max-saas-tenant: 0x4e20
cfg.general.max-saas-user: 0x61a80
cfg.general.max-schedule: 0x100
cfg.general.max-sctp: 0x2625a
cfg.general.max-sdwan-fec: 360
cfg.general.max-sdwan-policy-rule: 300
cfg.general.max-sdwan-saas: 300
cfg.general.max-sdwan-vif-member: 9
cfg.general.max-service: 0x1388
cfg.general.max-service-group: 0x1f4
cfg.general.max-service-per-group: 0x1f4
cfg.general.max-sesscache-entry: 0x9896800
cfg.general.max-session: 2800000
cfg.general.max-shared-gateway: 5
cfg.general.max-si-nat-policy-rule: 8000
cfg.general.max-signature: 0x1770
cfg.general.max-ssh-proxy-session: 0x1000
cfg.general.max-ssl-policy-rule: 2000
cfg.general.max-ssl-portal: 26
cfg.general.max-ssl-sess-cache-size: 0x22400
cfg.general.max-ssl-sess-cache-size-mp: 0x22400
cfg.general.max-ssl-tunnel: 12000
cfg.general.max-sslvpn-ck-cache-size: 1250
cfg.general.max-sslvpn-ck-cache-size-mp: 2500
cfg.general.max-tci-policy-rule: 2000
cfg.general.max-tcp-segs: 131072
cfg.general.max-threat-signature: 1000
cfg.general.max-tsagents: 2500
cfg.general.max-tunnel: 0x1f40
cfg.general.max-uid-tsagents: 2500
cfg.general.max-url-pattern: 100000
cfg.general.max-user-group: 10000
cfg.general.max-vlan: 0x1000
cfg.general.max-vrouter: 0x7d
cfg.general.max-vsys: 0x1a
cfg.general.max-vsys-curl: 2000
cfg.general.max-vwire: 0x800
cfg.general.max-whitelist: 0x186a0
cfg.general.max-zone: 0xc8

2-2. VM-SERIES-8(VM-500)の出力結果

一番上のIPアドレスの上限値を見てみるとVM-SERIES-4(VM-300)と、VM-SERIES-8(VM-500)では値が変わりませんが、cfg.general.max-session: 3500000 となっており、VM-Seriesのスペックが上がるごとに上限値も増えていることがわかります。

cfg.general.max-address: 0x9c40
cfg.general.max-address-group: 0xfa0
cfg.general.max-address-per-group: 0x9c4
cfg.general.max-appid-pkts: 196608
cfg.general.max-appinfo2ip-entry: 0x2ac00
cfg.general.max-arp: 0x1f400
cfg.general.max-auth-policy-rule: 2000
cfg.general.max-bfd-session: 0x400
cfg.general.max-blacklist: 0x186a0
cfg.general.max-c3-flow: 0x989682
cfg.general.max-cert-cache-entries: 0x800
cfg.general.max-ctd-session: 0x3567e0
cfg.general.max-debug-pool: 0xb2e604
cfg.general.max-di-nat-policy-rule: 15000
cfg.general.max-di-nat-pool: 5000
cfg.general.max-dip-nat-addrs: 2000
cfg.general.max-dip-nat-policy-rule: 2000
cfg.general.max-dns-cache: 0x186a0
cfg.general.max-dos-policy-rule: 1000
cfg.general.max-edl-domain: 2000000
cfg.general.max-edl-domain-filesize: 512000000
cfg.general.max-edl-ip: 50000
cfg.general.max-edl-ip-filesize: 6500000
cfg.general.max-edl-objs: 30
cfg.general.max-edl-url: 100000
cfg.general.max-edl-url-filesize: 25500000
cfg.general.max-fibinstance: 0xff
cfg.general.max-fibtrie-buf: 0x2000000
cfg.general.max-fptcp-segs: 0x668a0
cfg.general.max-ha-aa-vaddresses: 4096
cfg.general.max-ha-cluster-members: 16
cfg.general.max-hip: 63
cfg.general.max-ifnet: 0x1000
cfg.general.max-ifnet-sdwan: 1000
cfg.general.max-ike-peers: 2000
cfg.general.max-iot-probe-networks: 128
cfg.general.max-ip6addrtbl: 4096
cfg.general.max-ipfrags: 0x4000
cfg.general.max-mac: 0x1f400
cfg.general.max-mroute: 0xfa0
cfg.general.max-nat-policy-rule: 15000
cfg.general.max-neigh: 128000
cfg.general.max-net-inspection-rule: 0x3e8
cfg.general.max-net-inspection-zone: 0x4
cfg.general.max-npb-policy-rule: 300
cfg.general.max-oride-policy-rule: 2000
cfg.general.max-parent-info: 152064
cfg.general.max-pbf-policy-rule: 2000
cfg.general.max-policy-rule: 20000
cfg.general.max-profile: 0x2ee
cfg.general.max-proxy-mem: 0x10c7c0
cfg.general.max-proxy-mem-unit: 0x400
cfg.general.max-proxy-reverse_keys: 0x3e8
cfg.general.max-proxy-session: 0x88b7
cfg.general.max-proxy-timer-chunks: 0x20000
cfg.general.max-qos-policy-rule: 4000
cfg.general.max-qosbw: 10000
cfg.general.max-qosif: 12
cfg.general.max-qosnet: 64
cfg.general.max-regions: 1024
cfg.general.max-registered-ip-address: 0x493e0
cfg.general.max-return-mac: 0xfa00
cfg.general.max-rexmt-segs: 16000
cfg.general.max-route: 100000
cfg.general.max-route4: 0x186a0
cfg.general.max-route6: 0x186a0
cfg.general.max-routing-peer: 1024
cfg.general.max-saas-tenant: 0x4e20
cfg.general.max-saas-user: 0x61a80
cfg.general.max-schedule: 0x100
cfg.general.max-sctp: 0x2625a
cfg.general.max-sdwan-fec: 360
cfg.general.max-sdwan-policy-rule: 300
cfg.general.max-sdwan-saas: 300
cfg.general.max-sdwan-vif-member: 9
cfg.general.max-service: 0x1388
cfg.general.max-service-group: 0x1f4
cfg.general.max-service-per-group: 0x1f4
cfg.general.max-sesscache-entry: 0x9896800
cfg.general.max-session: 3500000
cfg.general.max-shared-gateway: 5
cfg.general.max-si-nat-policy-rule: 8000
cfg.general.max-signature: 0x1770
cfg.general.max-ssh-proxy-session: 0x1000
cfg.general.max-ssl-policy-rule: 2000
cfg.general.max-ssl-portal: 26
cfg.general.max-ssl-sess-cache-size: 0x2ac00
cfg.general.max-ssl-sess-cache-size-mp: 0x2ac00
cfg.general.max-ssl-tunnel: 12000
cfg.general.max-sslvpn-ck-cache-size: 1250
cfg.general.max-sslvpn-ck-cache-size-mp: 2500
cfg.general.max-tci-policy-rule: 2000
cfg.general.max-tcp-segs: 131072
cfg.general.max-threat-signature: 1000
cfg.general.max-tsagents: 2500
cfg.general.max-tunnel: 0x1f40
cfg.general.max-uid-tsagents: 2500
cfg.general.max-url-pattern: 100000
cfg.general.max-user-group: 10000
cfg.general.max-vlan: 0x1000
cfg.general.max-vrouter: 0x7d
cfg.general.max-vsys: 0x1a
cfg.general.max-vsys-curl: 2000
cfg.general.max-vwire: 0x800
cfg.general.max-whitelist: 0x186a0
cfg.general.max-zone: 0xc8

2-3. VM-SERIES-16(VM-700)の出力結果

IPアドレスの上限値などVM-SERIES-8(VM-500)と変わらない値も多くありますが、cfg.general.max-session はさらに上限値が上がっています。

cfg.general.max-address: 0x9c40
cfg.general.max-address-group: 0xfa0
cfg.general.max-address-per-group: 0x9c4
cfg.general.max-appid-pkts: 196608
cfg.general.max-appinfo2ip-entry: 0x64c00
cfg.general.max-arp: 0x1f400
cfg.general.max-auth-policy-rule: 2000
cfg.general.max-bfd-session: 0x400
cfg.general.max-blacklist: 0x186a0
cfg.general.max-c3-flow: 0x989682
cfg.general.max-cert-cache-entries: 0x1400
cfg.general.max-ctd-session: 0x7de290
cfg.general.max-debug-pool: 0xb2e604
cfg.general.max-di-nat-policy-rule: 15000
cfg.general.max-di-nat-pool: 5000
cfg.general.max-dip-nat-addrs: 2000
cfg.general.max-dip-nat-policy-rule: 2000
cfg.general.max-dns-cache: 0x30d40
cfg.general.max-dos-policy-rule: 1000
cfg.general.max-edl-domain: 2000000
cfg.general.max-edl-domain-filesize: 512000000
cfg.general.max-edl-ip: 50000
cfg.general.max-edl-ip-filesize: 6500000
cfg.general.max-edl-objs: 30
cfg.general.max-edl-url: 100000
cfg.general.max-edl-url-filesize: 25500000
cfg.general.max-fibinstance: 0xff
cfg.general.max-fibtrie-buf: 0x2000000
cfg.general.max-fptcp-segs: 0xee098
cfg.general.max-ha-aa-vaddresses: 4096
cfg.general.max-ha-cluster-members: 16
cfg.general.max-hip: 63
cfg.general.max-ifnet: 0x1000
cfg.general.max-ifnet-sdwan: 1000
cfg.general.max-ike-peers: 2000
cfg.general.max-iot-probe-networks: 128
cfg.general.max-ip6addrtbl: 4096
cfg.general.max-ipfrags: 0x4000
cfg.general.max-mac: 0x1f400
cfg.general.max-mroute: 0xfa0
cfg.general.max-nat-policy-rule: 15000
cfg.general.max-neigh: 128000
cfg.general.max-net-inspection-rule: 0x3e8
cfg.general.max-net-inspection-zone: 0x4
cfg.general.max-npb-policy-rule: 300
cfg.general.max-oride-policy-rule: 2000
cfg.general.max-parent-info: 152064
cfg.general.max-pbf-policy-rule: 2000
cfg.general.max-policy-rule: 20000
cfg.general.max-profile: 0x2ee
cfg.general.max-proxy-mem: 0x278920
cfg.general.max-proxy-mem-unit: 0x400
cfg.general.max-proxy-reverse_keys: 0x3e8
cfg.general.max-proxy-session: 0x14243
cfg.general.max-proxy-timer-chunks: 0x20000
cfg.general.max-qos-policy-rule: 4000
cfg.general.max-qosbw: 10000
cfg.general.max-qosif: 12
cfg.general.max-qosnet: 64
cfg.general.max-regions: 1024
cfg.general.max-registered-ip-address: 0x493e0
cfg.general.max-return-mac: 0xfa00
cfg.general.max-rexmt-segs: 16000
cfg.general.max-route: 100000
cfg.general.max-route4: 0x186a0
cfg.general.max-route6: 0x186a0
cfg.general.max-routing-peer: 1024
cfg.general.max-saas-tenant: 0x4e20
cfg.general.max-saas-user: 0x61a80
cfg.general.max-schedule: 0x100
cfg.general.max-sctp: 0x2625a
cfg.general.max-sdwan-fec: 360
cfg.general.max-sdwan-policy-rule: 300
cfg.general.max-sdwan-saas: 300
cfg.general.max-sdwan-vif-member: 9
cfg.general.max-service: 0x1388
cfg.general.max-service-group: 0x1f4
cfg.general.max-service-per-group: 0x1f4
cfg.general.max-sesscache-entry: 0x9896800
cfg.general.max-session: 8250000
cfg.general.max-shared-gateway: 5
cfg.general.max-si-nat-policy-rule: 8000
cfg.general.max-signature: 0x1770
cfg.general.max-ssh-proxy-session: 0x1000
cfg.general.max-ssl-policy-rule: 2000
cfg.general.max-ssl-portal: 26
cfg.general.max-ssl-sess-cache-size: 0x64c00
cfg.general.max-ssl-sess-cache-size-mp: 0x64c00
cfg.general.max-ssl-tunnel: 12000
cfg.general.max-sslvpn-ck-cache-size: 1250
cfg.general.max-sslvpn-ck-cache-size-mp: 2500
cfg.general.max-tci-policy-rule: 2000
cfg.general.max-tcp-segs: 131072
cfg.general.max-threat-signature: 1000
cfg.general.max-tsagents: 2500
cfg.general.max-tunnel: 0x1f40
cfg.general.max-uid-tsagents: 2500
cfg.general.max-url-pattern: 100000
cfg.general.max-user-group: 10000
cfg.general.max-vlan: 0x1000
cfg.general.max-vrouter: 0x7d
cfg.general.max-vsys: 0x1a
cfg.general.max-vsys-curl: 2000
cfg.general.max-vwire: 0x800
cfg.general.max-whitelist: 0x186a0
cfg.general.max-zone: 0xc8

3. VM-Seriesのモデルによる違い

Azure上のVM-SeriesとVMのサイズは以下のように対応しています。

VM-SeriesAzure VMサイズの代表例
VM-300D3_v2 / D4_v3 / D4_v5
VM-500D4_v2 / D8_v3 / D8_v5
VM-700D5_v2 / D16_v3 / D16_v5
VM-FlexD4s_v6 ~ D64s_v6

また、実際に上限値を確認すると、VM-Seriesのモデルによってあまり差はありませんが、最大セッション数の上限値はモデルごとに異なることが分かります。

項目VM-300VM-500VM-700
Address40,00040,00040,000
Address Group4,0004,0004,000
最大セッション数2,800,0003,500,0008,500,000
Policy Rule20,00020,00020,000
NAT Policy Rule15,00015,00015,000
Route100,000100,000100,000
Zone200200200

VM-Seriesのサイジングを行う際には、単純にCPUやメモリだけを見るのではなく、必要な設定数や特にセッション数を確認しておくと安心です。

4.VM-Seriesのモデルを変更する場合

Azure上のVM-Seriesでは、利用するAzure VMのサイズによってVM-Seriesのモデルが決まります。

そのため、現在のVMサイズでは設定上限が足りない場合、Azure VMのサイズを変更することで、より上位のVM-Seriesを利用できる場合があります。

例えばAzure CLIでは、以下のようにVMサイズを変更できます。

今回は Standard_DS4_v2 に変更するコマンドになっているので、変更したいサイズに応じて $size_vcpu8 となっている2か所を変更してください。

 # パラメータの定義
$rg_name = "rg-test-paloalto"
$vm_name = "paloaltopayg01"
$size_vcpu4 = "Standard_DS3_v2"
$size_vcpu8 = "Standard_DS4_v2"
$size_vcpu16 = "Standard_DS5_v2"

 # 選択した仮想マシンのサイズが利用可能かを確認する(True or Falseで結果を出力)
$availableSizes = az vm list-vm-resize-options -g $rg_name -n $vm_name --query "[].name" | ConvertFrom-Json
if ( $availableSizes -contains $size_vcpu8 ) {Write-Output "VM size is available"} else {Write-Output "VM size is NOT available"}

 ## "VM size is available" と出力されたら以下のコマンドを実行

 # 仮想マシンを停止
az vm deallocate --resource-group $rg_name --name $vm_name

 # 仮想マシンのサイズ変更(Standard_DS4_v2に変更)
az vm resize --resource-group $rg_name --name $vm_name --size $size_vcpu8

 # 仮想マシンを起動
az vm start --resource-group $rg_name --name $vm_name

参考ドキュメント(Microsoftの公式ドキュメント)

仮想マシンのサイズ変更 – Azure Virtual Machines
Azure仮想マシンに使用する VM サイズを変更します。

4.まとめ

VM-Seriesの各種設定上限値は、CLIから以下のコマンドで確認できます。

set cli pager off

show system state filter cfg.general.max*

cfg.general.max-* の一覧から、Address Object、Policy Rule、Session、Routeなど、さまざまな設定の上限値を確認できます。

また、VM-Seriesのモデルによって上限値は異なります。

しかし、もし上限に到達しそうである場合には仮想マシンのサイズを変更し、VM-Seriesのスペックを1段階上位のものにする必要があるので、VM-Seriesのサイジングを行う際は、「どの程度の通信性能が必要か」だけではなく、「どの程度の設定数・セッション数が必要か」も確認しておくことが重要かと思いました。