冗長構成(HA)Active/Passiveの設定 その2 →
今回はPAシリーズの冗長構成(Active/Passive構成)について説明します。
- 【前提条件】
- MGTインタフェースなどの基本的な設定は終わっていること
- 同じPAN-OSバージョンを利用している
- App & Threatsなどのシグネチャのバージョンが一致している
以下の構成で説明します。
HA (High Availability)
PAシリーズはHA構成を組むことで冗長化を行うことができます。冗長化を行うと2台のファイアウォールで1つの仮想IPを利用するようになります(Active機器が使用)。セッション同期に対応していますので、フェイルオーバーを発生させてもTCPセッションなどを引き継いで転送することができます。
HAインタフェース
HA(High Availability)を実現するために、ファイアウォールはHAインタフェースを利用してお互いの死活監視や情報のやりとりを行います。Active/Passive構成ではHA1およびHA2の2種類のインタフェースを利用します。
HA1
HA1インタフェースはマネジメントプレーン上で動作し、対向のファイアウォールの状態の監視やコンフィグなどの同期を行います。HA1インタフェースがDownするとスプリットブレイン(両ACT)になりますので、HA1インタフェースは冗長する必要があります。PA-220とPA-400シリーズ以外のファイアウォールは専用のHA1インタフェースを持っています。さらにPA-800シリーズ以外(1400、3200、3400、5200、5400、7000)は、専用のHA1インタフェースが2ポート搭載されていますので必ず冗長化してください。PA-220、PA-400シリーズ、PA-800シリーズについてはMGTポートやサービスポートを利用してHA1の冗長化を行います。
ファイアウォールはHA1を利用してコンフィグの同期を行うことができますが、コンフィグ同期を有効にした場合でも一部のコンフィグは同期されません。以下リンクを参照してください。(基本的には、MGTインタフェース設定やHA設定など同期されると困るものが対象になっています。)
HA2
HA2インタフェースはデータプレーン上で動作し、主にセッション同期を行います。現行の機種ではPA-800シリーズのみ専用のHA2インタフェースが搭載されていますが、(PA-220とPA-400シリーズを除く)それ以外の機種にはHA2ポートの代わりにHSCIインタフェース(High Speed Chassis Interconnect)が搭載されています。このポートはHA2だけでなくHA3としても利用(共用)できるようになっています。
HA2ポートがDownしてもセッション同期等ができなくなるだけで、フェイルオーバーなどは発生しません。つまりHA2がDownしている状態でその他の部分に障害が発生してフェイルオーバー(二重障害)が発生しない限りは影響がありません。そのため、HA2インタフェースの冗長は必須ではありませんが、サービス系のインタフェースに余裕があれば冗長化しておくことをお勧めします。(シャーシ型モデルを除きHSCIポートは冗長化されていませんのでサービス系のインタフェースを冗長用のHA2ポートとして設定して利用します。)。
HA1 | コントロールリンク (MGT Plane) ・HA-1Aポート ・HA-1Bポート | ・対向のFWの死活監視・コミュニケーション ・コンフィグ同期 ・シグネチャ・PAN-OSの転送 ・マネージメントプレーン ランタイム情報の同期 FIB、User-Group-Mapping、DHCPリース、DNSキャッシュ情報等 |
HA2 | データリンク (Data Plane) ・HSCIポート | ・セッション同期(Pingは同期しません) ・データプレーン ランタイム情報の同期 ARPテーブル、Neighborテーブル、User-IP Mapping情報等 |
HAの状態
HAの状態には、以下の5種類があります。正常なHA状態であれば、2台のファイアウォールはそれぞれ、ActiveとPassiveになります(それ以外は異常状態)。
Initial | 初期状態 | HA構成の機器の初期状態 |
Active | アクティブ | Active機としてトラフィックを処理する状態 |
Passive | パッシブ | バックアップ機として待機している状態。 ・Active機に障害が発生した場合は、Activeに昇格する。 ・セッション同期を行う。 |
Non-functional | 障害検出時 | Active機/Passive機でLinkモニタ、Pathモニタ、data-plane障害などが検出されるとこの状態に移行。 Non-functional(= 機能的でない状態)であるため基本的にActiveにもPassiveにもならない。 |
Suspended | 装置停止 | 管理者が手動でdisableにした状態。 下記で説明するFlap MaxカウントなどによってもSuspendになります。 |
Election Settings
2台のファイアウォールのうち、どちらのファイアウォールがActiveになるのか?についてはVRRPなどと同様にプライオリティの設定により制御可能です。
HAプライオリティ
デフォルト値は100で小さい値が優先されActiveになります。
Heartbeat Backup
HA1のバックアップポートとしてMGTポートを利用する機能です。現在ほとんどの機器で冗長化された専用のHA1ポートが搭載されていることなどの理由であまり使用することはありません。
Preemption
Preemptionを有効にすることで、正常時にプライオリティが高い(値の小さい)機器が自動的にActiveになります。(ファイアウォールでPreemptを有効にするケースはあまり多くない印象です。)
HA Timer Settings
HAの切替に関連するタイマー値関連の設定です。1つ1つ設定する必要はなく特段の要件がなければ「Recommended」で問題ありません。
Recommended | デバイス毎の性能値に併せた推奨値。(デフォルト) 各デバイス毎に値が異なります(デバイスによって若干切替時間が異なる場合がある) |
Aggressive | 切替時間を短縮する目的でタイマー値を全体的に短くした設定。 負荷の高い環境などでは問題が発生する可能性もあるので、事前に検証を行ってから導入することを推奨します。 |
Advanced | 各項目を個別に設定することが可能です。 |
Advancedで指定できるタイマー値は以下となります。基本的にRecommended設定で問題ありませんが、このような値があることを知っておくことで理解が深まるのではないかと思います。特に、Flap Max値とPreemption Hold Time値はHAの検証時などでも遭遇する値なので知っておいた方がいいと思います。
Promotion Hold Time (ms) | Passive機がActive機に昇格するまで待機する時間。 |
Hello Interval (ms) | Active機/Passive機間で交換するHA1 helloの送信間隔。3回連続して失敗するとHAペアがダウンしたと認識。(プロセスレベルでの死活監視) |
Heartbeat Interval (ms) | Active機/Passive機間で交換するHA pingの送信間隔。3回連続して失敗するとHAペアがダウンしたと認識。(pingレベルでの単純な死活監視) |
Flap Max | 15分以内にこのFlap Maxに設定した回数、フェイルオーバー(自身のステータスがActiveからNon-functionalに遷移)が発生するとそのデバイスはSuspend状態になります。デフォルト値は3回です。 |
Preemption Hold Time (min) | 1度フェイルオーバー(自身のステータスがActiveからNon-functionalに遷移)した後、このタイマーの時間はActiveにならずに待機します。デフォルト値は1分です。 |
Monitor Fail Hold Up Time (ms) | Active機器はLinkモニタリング、Pathモニタリング使用して障害を検出した時、このタイマーの期間Activeの状態で待機します。タイムアウト後にPassive機器に問題がなければ、自身の状態をActiveから「Non-functional」に変更します。 |
Additional Master Hold Up Time (ms) | Monitor Fail Hold Up Time の後に、追加でこのタイマーで指定した期間、さらにActive状態で待機します。(Active機器、Passive機器が同時に障害を検出した場合に利用されます。) |
設定方法
具体的な設定方法を記載します。構成は冒頭に紹介した構成です。機材はPA-3200シリーズを利用しています。
HAインタフェースの設定(PA-3200シリーズ)
まずはHAインタフェースの設定を行います。今回利用するPA-3200シリーズを含むほとんどのファイアウォールは専用のHA1ポートが2つと、HA2に利用可能なHSCIポートが1つあります。PA-3200にはHA2の冗長用のポートがありませんので、サービスポート(eth1/20)をHAポートとして利用することにします。
HAインタフェースの割り当て(NGFW#1、NGFW#2共通設定)
サービスポートへのHAインタフェースの割り当てを行います。2台とも同じように設定してください。
【NETWORKタブ】→【インターフェイス】→【ethernet1/20】をクリックします。
Ethernet インターフェイス設定画面で、インターフェイスタイプを「HA」に設定してOKをクリックします。リンク速度などの設定が必要な場合は適宜実施してください。
設定としては以上で、HAの設定に移ります。
HAの設定
HAの具体的な設定を行っていきます。
(ここからは特に指定がなければ【DEVICEタブ】→【高可用性】配下で設定を行います)
HAの有効化(NGFW#1、NGFW#2共通設定)
【DEVICEタブ】→【高可用性】→【全般タブ】→【セットアップ】の右側の歯車をクリックし、セットアップウィンドウで以下の設定を行います。2台ともに同じ設定を行います。
- HAの有効化 チェックボックスにチェックを入れる
- グループID:1(デフォルト)
- モード:アクティブ/パッシブ(デフォルト)
一旦この設定でOKをクリックします。グループIDはHAを組む2台で同じIDを利用する必要があります。
ちなみに、HA構成を有効にするとファイアウォールは仮想MACアドレスを利用するようになります。(HA構成が無効の場合は物理MACを利用)そして、VRRPなどと同様にこのグループIDによって、ファイアウォールが利用する仮想MACアドレスが変わります。グループIDは基本的にデフォルト値の1で構いませんが、同一セグメントで同じグループIDを利用した複数のHA構成を組むことはできませんので注意してください。
HAインタフェースの設定
【HA通信タブ】をクリックし、①HA1、②HA1バックアップ、③HA2、④HA2バックアップの4ポートをそれぞれ設定していきます。NGFW#1、NGFW#2でそれぞれ設定が異なりますので注意してください。
構成を再掲しておきます。
HA1 インタフェース
①【HA通信タブ】→【コントロールリンク】→【HA1】の右側の歯車をクリックし、以下の設定を行います。なお、HA1-AとHA1-Bを利用する場合は、HA1メインポートとして必ずHA1-Aを利用してください。
HA1 | NGFW#1 | NGFW#2 | memo |
---|---|---|---|
ポート | ha1-a | ha1-a | 「ha1-a」を利用する |
IPv4/IPv6アドレス | 10.0.0.1 | 10.0.0.2 | HA1のIPアドレス |
ネットマスク | 255.255.255.252 | 255.255.255.252 | |
ゲートウェイ | ルータなどを挟む場合に利用(非推奨) | ||
暗号化を有効 | OFF | OFF | デフォルト設定 |
HA1 バックアップ インタフェース
②【HA通信タブ】→【コントロールリンク】→【HA1バックアップ】の右側の歯車をクリックし、以下の設定を行います。
HA1バックアップ | NGFW#1 | NGFW#2 | memo |
---|---|---|---|
ポート | ha1-b | ha1-b | |
IPv4/IPv6アドレス | 10.1.0.1 | 10.1.0.2 | HA1バックアップのIPアドレス |
ネットマスク | 255.255.255.252 | 255.255.255.252 | |
ゲートウェイ | ルータなどを挟む場合に利用(非推奨) |
HA2 インタフェース
③【HA通信タブ】→【コントロールリンク】→【HA2】の右側の歯車をクリックし、以下の設定を行います。NGFW#1、NGFW#2ともに同じ設定ですね。
HA2 | NGFW#1 | NGFW#2 | memo |
---|---|---|---|
セッション同期を有効にする | ON | ON | HA2のメイン機能 |
ポート | hsci | hsci | HSCIポートを利用 |
転送 | ethernet | ethernet | インタフェースにIPを設定せずL2通信を行う |
HA2 バックアップ インタフェース
④【HA通信タブ】→【コントロールリンク】→【HA2バックアップ】の右側の歯車をクリックし、以下の設定を行います。こちらもNGFW#1、NGFW#2ともに同じ設定です。
HA2 バックアップ | NGFW#1 | NGFW#2 | memo |
---|---|---|---|
ポート | ethernet1/20 | ethernet1/20 | HAとして割り当てたポートを設定 |
HAペアの設定
再び、【全般タブ】に戻り、【HA Pair Settis】にあるHAペア関連の設定を行なっていきます。①セットアップ、②アクティブ/パッシブ設定、③選択設定をそれぞれ設定します。
構成再掲します。
セットアップ
①【全般タブ】→【HA Pair Settings】→【セットアップ】の右側にある歯車をクリックし、先ほど設定した内容に加えて以下の設定を行います。
NGFW#1 | NGFW#2 | memo | |
---|---|---|---|
設定の同期を有効化 | ON | ON | Config同期 |
ピアHA IPアドレス | 10.0.0.2 | 10.0.0.1 | 対向装置のIPを指定 |
バックアップ側ピアHA IPアドレス | 10.1.0.2 | 10.1.0.1 | 対向装置のIPを指定 |
アクティブ/パッシブ設定
②【全般タブ】→【HA Pair Settings】→【アクティブ/パッシブ設定】の右側にある歯車をクリックし、以下の設定を行います。全てデフォルト値なので内容だけ確認してそのままOKを押してください。
NGFW#1 | NGFW#2 | memo | |
---|---|---|---|
パッシブリンク状態 | 自動(Auto) | 自動(Auto) | Passiveになった機器のリンクをDownさせるかどうかを選択。デフォルト設定の自動(Auto)の場合リンクがUPしたままになり、フェイルオーバー時の切替り時間を短くすることができます。 |
モニター障害時ホールドダウンタイム(分) | 1 | 1 | デフォルト値のままにします。この値は、リンクモニタリング/パスモニタリングが障害により動作しない状態で、対向装置とのハートビートおよびHelloメッセージのやり取りができない際に利用します。 |
選択設定
③【全般タブ】→【HA Pair Settings】→【選択設定】の右側にある歯車をクリックし、以下の設定を行います。
デバイス優先度の設定はNGFW#1がActiveになるように設定していますが、プリエンプティブ設定を無効にしているので評価するタイミングは同時に起動した際などに限られます。
NGFW#1 | NGFW#2 | memo | |
---|---|---|---|
デバイス優先度 | 90 | 100 | 小さい方が優先されます。(デフォルト値100) |
プリエンプティブ | OFF | OFF | 優先度に応じて自動的に系の切替を行いたい場合は 有効にします。(デフォルト) |
ハートビート バックアップ | OFF | OFF | MGTポートをHA1バックアップとして利用する場合は ONにします。PA-3200ではHA1-bポートがあるので 利用しません。 |
HAタイマー設定 | 推奨 | 推奨 | HA Timer Settingsにて詳細を確認してください。 |
リンクモニタリング
続いて、リンクモニタリングの設定を行います。ファイアウォールは障害時にフェイルオーバーを行い通信を継続しようとします。では、ファイアウォールはどのような状態を障害と判断するのでしょうか?これには大きく分けて装置障害とリンク障害の2つが考えられます。
- NGFW#1(Active)が電源障害によりシャットダウンした場合
- NGFW#2は、HA1インタフェースがLink DownすることでNGFW#1の障害を検知して、自身をPassiveからActiveに変更します。
- NGFW#1(Active)がソフトウェア的な問題により動作しなくなった場合
- NGFW#2は、HA1経由でのハートビートに失敗することでNGFW#1の障害を検知して、自身をPassiveからActiveに変更します。
- ケーブル切断により、NGFW#1(Active)のeth1/1がダウンした場合
- NGFW#1は自身のeth1/1がダウンしたことを検知して、自身をActiveからNon-functionalに変更すると同時に、HA1経由でその情報をNGFW#2に通知し、この情報を受け取ったNGFW#2は自身をPassiveからActiveに変更します。
装置障害とリンク障害のうち、装置障害の検知についてはデフォルトで動作しますので設定する必要はありませんが、リンク障害については「リンクモニタリング」で設定する必要があります。ここではリンクモニタリングの設定について説明します。
リンクモニタリング設定
リンクモニタリングでは、どのインタフェースがリンクダウンしたときにファイアウォールをフェイルオーバーさせるかの条件指定ができます。今回の構成ではeth1/1とeth1/2どちらがリンクダウンしても通信断となりますので、どのインタフェースがリンクダウンしても障害とみなすようにリンクモニタリングを設定します。リンクモニタリングで指定されたインタフェースがダウンするとファイアウォールは障害とみなし、自身のステータスを「Non-functional」に変更します。
今回NGFW#1、NGFW#2どちらでリンクダウンが発生しても障害と検出できるようにするため、2つのファイアウォールで同じ設定を行います。
構成によっては、NGFW#1の特定のインタフェースがダウンしたときだけ障害を検出したいといった場合もあるかと思います。そのような場合には、NGFW#1とNGFW#2で異なるリンクモニタリング設定を行ってください。
【リンクおよびパスモニタリング タブ】→【リンクグループ】で追加をクリックします。
【リンク グループ】にて、名前と監視するインタフェースを設定してOKをクリックします。
名前 | link-group1 | リンクグループ名を設定します |
有効 | ON | リンクグループの有効/無効の指定(デフォルトON) |
失敗条件 | いずれか (any) | ・いずれか:監視するインタフェースのうち、「いずれか」 1つでもリンクダウンしたら障害とみなす。 ・すべて :監視するインタフェースが「すべて」 リンクダウンした場合のみ障害とみなす。 |
インターフェイス | ethernet1/1 ethernet1/2 | eth1/1とeth1/2を監視対象とする。 「失敗条件」を満たした場合に障害とみなす。 |
【参考まで】
リンクモニタリングの「有効」にデフォルトでチェックがついているのでリンクモニタリングは有効なのでは?と思った方もいるかと思いますがこの状態では動作しません。リンクモニタリングはその下のに設定するリンクグループを監視しています。そして、リンクグループは実際のインタフェースを監視しています。このような構成とすることで障害条件を柔軟に設定することが可能になっています。
例えば、以下の2つの設定は結果的に同じ動作をします。
パスモニタリング(オプション)
パスモニタリングは、リンクダウンを伴わない障害を検出する場合に利用する機能です。パスモニタリングを設定すると、指定した宛先に対してPing監視を行い監視に失敗すると障害とみなします。今回は不要なので設定しませんが、設定方法はリンクモニタリングと変わりません(リンクの代わりに宛先IPを指定するイメージです)
HAの設定項目
長々と設定について書いてしまいましたが、インタフェースへのHAタイプの設定をのぞくと、今回設定した内容は以下のものだけです。この設定でCommitを行うことで装置間で冗長化を行うことができます。一旦この状態でNGFW#1、NGFW#2ともにCommitしてみましょう。
【全般設定】
【HA通信設定】
【リンクおよびパスのモニタリング設定】
HAの状態確認
NGFW#1、NGFW#2ともにCommitが完了したらHA構成が正常に構成されているかどうか確認します。どこを確認するかというと画面右下です。小さく「アクティブ」と表示されています。。
これでは状態がわかりにくいのでHA構成の状態をダッシュボード上に表示させましょう。
【DASHBOARD タブ】→【ウィジェット】→【システム】→【高可用性】をクリックします。
すると以下のようなウィジェットが表示されます。これが正常時の状態となります。もし、NGFW#1とNGFW#2のコンフィグやシグネチャバージョンが一致していない場合はその旨が表示されますので、適宜修正を行なってください。
CLIで確認する場合は、「show high-availability state」コマンドを利用します。
Active機器側での確認結果
PA-3220(active)> show high-availability state
Group 1:
Mode: Active-Passive
Local Information:
Version: 1
Mode: Active-Passive
State: active (last 19 days)
Last suspended state reason: User requested
Device Information:
Management IPv4 Address: X.X.X.X/24
Management IPv6 Address:
Jumbo-Frames disabled; MTU 1500
HA1 Control Links Joint Configuration:
Encryption Enabled: no
Election Option Information:
Priority: 90
Preemptive: No
Version Compatibility:
Software Version: Match
Application Content Compatibility: Match
IOT Content Compatibility: Match
Anti-Virus Compatibility: Match
Threat Content Compatibility: Match
VPN Client Software Compatibility: Match
Global Protect Client Software Compatibility: Match
Plugin Information:
DLP: Match
State Synchronization: Complete; type: ethernet
Peer Information:
Connection status: up
Version: 1
Mode: Active-Passive
State: passive (last 19 days)
Last suspended state reason: User requested
Device Information:
Management IPv4 Address: X.X.X.X/24
Management IPv6 Address:
Jumbo-Frames disabled; MTU 1500
Connection up; Primary HA1 link
Election Option Information:
Priority: 100
Preemptive: no
Configuration Synchronization:
Enabled: yes
Running Configuration: synchronized
すこし長くなってきたので一旦ここまでとします。「冗長構成(HA)Active/Passiveの設定 その2」で、動作などを確認していきます。
コメント欄 質問や感想、追加してほしい記事のリクエストをお待ちしてます!