Palo Alto Networks VM series を HA 構成で構築するときの設計メモ&デプロイテンプレート

Palo Alto Networks VM series を HA 構成で構築するときの設計メモ&デプロイテンプレート

Palo Alto Networks の VM series を HA 構成で構築するときの設計メモをまとめました。NAT のみ利用する構成なので、OS 内のルーティングといったネットワーク的な設計要素が別途必要になることは承知ください。あくまでも IaaS の VM を設計する範囲が対象のイメージです。

HA 構成をすぐに構築できるよう改良した ARM テンプレートも作成しました。

Deploy to Azure

元ネタは GitHub にまとめています。

GitHub – sny0421/paloalto-ha-arm-template

概要

Palo Alto Networks 社 VM series (以下、PA VM とする)を Azure 上に構築する際の設計考慮事項をまとめる。 今回は主に HA 構成を想定した観点を含むため、リソース構成は次のようなイメージである。 NAT 機能を使い、Active-Passive な構成としたいケースを想定する。

Palo Alto VM の NIC 構成

IaaS 設計

VM サイズ設計

Network Virtual Appliance (NVA) 展開時の VM サイズの選択指標となるのは次の要素である。

  • ライセンスモデル指標
  • 最大 NIC 数

ライセンスモデル指標

VM サイズは採用するライセンスのグレードによってスペックを選定する。 参考となる指標はメーカーページを参考にする。

参考リンク:VM-Series Models on Azure Virtual Machines (VMs)

最大 NIC 数

NVA 利用時は最大 NIC 数に注意する。 製品によって複数、特に3つ以上の NIC が必要となるため、下位サイズでは要件を満たせないことがある。

Palo Alto VM series では最低3つ、Active-Passive 高可用性構成(HA 構成) の場合は4つの NIC が必要となる。 汎用 VM サイズシリーズの場合、3つ以上の NIC を搭載できる最低サイズは次の通りである。 本番環境で採用できる中でも一番安価なのは Standard_D3_v2 である。

  • Standard_D3_v2
  • Standard_D8_v3
  • Standard_D8_v4
  • Standard_D8d_v4
  • Standard_D8a_v4
  • Standard_E8_v3
  • Standard_A4_v2

※S 付きのシリーズもサポート

参考:汎用仮想マシンのサイズ

可用性設計

Azure で提供される可用性機能は次の2つである。

  • 可用性セット
  • 可用性ゾーン

どちらを選ぶかは SLA 指標と製品のサポートによる。 メーカーにサポート可否や実績を確認してから選択する。

Active-Active 構成の場合は上流に Azure Load Balancer を配置することで負荷分散冗長構成が可能となる。 Active-Passive 構成の場合は上流に Azure Load Balancer を配置しない。 ゾーン間通信が冗長機能に影響及ぼす可能性もあるので確認する。 (ただし、後述の HA 切り替わり動作の仕様によりそこまで考慮する必要はないかもしれない)

ライセンス設計

ライセンスは契約形態により次の3種類から選択できる。

  • BYOL
  • PAYG (Bundle 1)
  • PAYG (Bundle 2)

BYOL の場合は別途代理店よりライセンス購入手続きが必要となる。 Bundle 1/2 の場合は従量課金でライセンス料金が発生する。 別途調整の手間を省けるが、利用する機能に合わせて料金の調整ができない。

PAYG 方式ライセンスに含まれる機能は次の通りである。

プラン機能
Bundle1脅威保護(IDS/IPS、アンチウイルス、マルウェア保護)、プレミアサポート
Bundle2URL フィルタリング、WildFire、GlobalProtect、DNS セキュリティ、プレミアサポート

参考:Azure Marketplace | VM-Series Next-Generation Firewall from Palo Alto Networks

ライセンスプランの切替は可能だが、仮想マシン再作成が必要になるためデプロイ時は慎重にすること。

参考リンク:Switch Between the BYOL and the PAYG Licenses

ネットワーク設計

NVA ではエンドツーエンドの通信を中継して何らかの処理をするため、NIC で次の設定を行う必要がある。 Palo Alto VM の場合は既定で有効となっている。

  • IP 転送設定:有効

また、Active-Passive 構成の場合、クライアントが通信時に利用する仮想 IP アドレスを設定する必要がある。 Azure の機能では仮想 IP をサポートしていないため、アクティブなノードの NIC にセカンダリ IP としてアドレスを設定する。

また、各 NIC はそれぞれ次のように役割を定義する。

  • eth0 : Management
  • eth1 : Untrust
  • eth2 : Trust
  • eth3 : HA2 Link(Active-Passive 構成のみ)
Palo Alto VM の NIC 構成

Management

Management インターフェースは管理コンソールへのアクセスを提供する。 Active-Passive 構成時は、対向インスタンスと HA ピア間の制御通信(HA1 Link)も行う。

Trust / Untrust

アクティブインスタンスの Trust インターフェースおよび Untrust インターフェースにはサービストラフィックが流れる。 また、それぞれのインターフェースにはプライマリのプライベート IP アドレスの他にセカンダリ IP アドレスを付与する。 このセカンダリ IP アドレスは、アクティブインスタンスが利用不可能となったとき、自動的に新しくアクティブになったインスタンスへ付け替えられる。

HA2 Link

Active-Passive 構成を利用する場合にのみ使用する。 HA2 Link インターフェースは HA ピア間でセッションテーブル、ARP テーブル、IPsec セキュリティアソシエーションの同期を行うために利用する。

障害時の動作

Active-Passive 構成のとき、PAN-OS の高可用性機能により、インスタンス間で死活監視と通信情報の同期を実現する。 アクティブインスタンスに障害が発生した場合は、PAN-OS 上でのステータスの切り替えとAzure API を利用して仮想マシンのフローティングIPの付替えによるフェールオーバーを自動で行う。

動作の流れ

フェールオーバーの動作は次の通りである。

  1. アクティブインスタンスに障害が発生する。(この時点で通信断が発生)
  2. スタンバイインスタンスが障害を検知し、アクティブインスタンスに昇格する。
  3. Azure API 経由で、障害発生インスタンスの NIC に付与されているフローティング IP アドレスをデタッチする。
  4. Azure API 経由で、デタッチしたフローティング IP アドレスを新しいアクティブインスタンスの NIC にアタッチする。
  5. Azure 基盤側で新しいアクティブインスタンスに付与されたフローティング IP アドレスの情報が伝搬されると、通信が復旧する。
Palo Alto VM のフェールオーバー動作

Azure サービスプリンシパル

PA VM が Azure リソースの構成を変更できるよう、適切な権限を持ったサービスプリンシパルを準備する。 HA 構成で必要な権限は次の通りである。

  • Microsoft.Authorization/*/read
  • Microsoft.Network/networkInterfaces/*
  • Microsoft.Network/networkSecurityGroups/*
  • Microsoft.Network/virtualNetworks/*
  • Microsoft.Compute/virtualMachines/read

参考:VM-Series on Azure Service Principal Permissions

運用設計

PA VM では Log Analytics エージェントがサポートされていない。 そのため、別の方法でメトリック監視やシステムログの監視を行う必要がある。

メトリック監視

メトリック監視に使える Azure サービスもしくは機能として次のものがある。

  • Azure Monitor
  • Palo Alto API
  • SNMP

Azure Monitor

Azure 標準のメトリック監視サービスである Azure Monitor を利用する。 主に監視する対象は次の通りである。

  • CPU 使用率
  • Network In
  • Network Out
  • 受信フロー数
  • 送信フロー数

適宜アラートを設定し、通知を受けられるように設定する。 参考:リモート作業でのネットワーク仮想アプライアンス (NVA) に関する考慮事項 – リソースの監視

Palo Alto API

API 経由で PA VM から各種メトリックを取得できる。 リファレンスは次の通りである。

API Log Retrieval Parameters

Run Operational Mode Commands (API)

Use the API Browser

システムログ監視

システムログ監視に使える Azure サービスもしくは機能として次のものがある。

  • Azure Sentinel
  • Webhook
  • Mail/Syslog

Azure Sentinel

Azure Sentinel を使用して次の流れで監視データを送信する。

[PA VM] --- [Log Forwawrder] --- [Log Analytics] --- [Azure Sentinel]

PA VM から直接 Log Analytics ワークスペースへログを送信できないため、プロキシとなる仮想マシンを用意する必要がある。 収集したデータは Log Analytics や Sentinel のブックで分析、監視する。

参考:共通イベント形式を使用して外部ソリューションを接続する

参考:ログ フォワーダーをデプロイする

参考:Azure Sentinel に Palo Alto Networks を接続する

Webhook

PAN-OS Web Interface Reference – Device > Server Profiles > HTTP

トラブルシュート

データプレーンCPU負荷が高い時のトラブルシューティング

show system resources 実行中のプロセスごとにシステムリソースの使用状況が確認できます。(topコマンドと同じです。)

show interface <インタフェース番号> インタフェースの各種カウンタが確認できます。

show high-availability all 対象ホストの状況(Active or Passice)や、ピアの状況が確認できます。

構築

HA 構成の PA VM をデプロイする ARM テンプレートを作成した。

Azure へデプロイ

Deploy to Azure

その他参考リンク

Set up Active/Passive HA on Azure

PaloAlto on Azure を Active/Passive 構成で導入する