はじめに

Check Point Software Technologiesのファイアウォールで使われている技術ClusterXLについて勉強します。

ClusterXLとは何か

ClusterXLは複数のCheck Pointファイアウォールで冗長構成を組むために使われている技術です。他のネットワーク機器の冗長化技術と同じく、筐体間のHelloやコネクション同期等の機能を持っています。
以下、私が普段運用している「2台の筐体でActive-Standby構成を組む構成」の場合で記述していきます。

ClusterXLが動作するための条件

以下の条件を満たしている必要があります
・2台の筐体が同じバージョンで動作していること
異バージョンで動作させる場合にはActive-Standby構成を組むことができず、またコネクション同期も行うことができません。
・アプライアンスの場合、2台の筐体が同じ型番であること
・2台の筐体が時刻同期されていること
時刻同期は製品によってはたまに問題になることがありますね。BIG-IPでは数分のずれでHA構成が組めなくなっていたと記憶しています。Check Pointの場合ある程度のずれは許容されるようですが、同期させておくべきなのは間違いありません。

ClusterXLの動作

ClusterXLはHelloと同期の機能をどちらもCluster Control Packet (CCP)というパケットを使って行っています。CCPはudp/8116に対してマルチキャストで送信されます。どのインターフェースがCCPを送信するかはTopologyの設定によって変更することができます。

各インターフェースの役割について

各インターフェースは以下の4つのうちどれか1つの役割を持たせることができます。設定は管理サーバのTopologyで実施し、確認は実機上でcphaprob -a ifコマンドでできます。4つの役割の違いは「CCPでHelloを送る/送らない」「CCPで同期情報を送る/送らない」「インターフェースが落ちた時にフェイルオーバーが起きる/起きない」です。表にまとめると次のようになります。

役割 Hello送信 同期情報送信 監視 用途
Cluster × 通常のインターフェース
Sync コネクション同期用インターフェース
Monitored Private × × 特殊
Non-Monitored Private × × × 管理ポート

Clusterインターフェースは通常の通信で使われるインターフェースです。
それに対してSyncはコネクション同期情報をやり取りするためのインターフェースです。転送量が多くCluster機能の根幹を担うインターフェースのため、クロスケーブルで直結することが推奨されています。
Monitored Privateはクラスターではない(仮想IPを持たない)がインターフェースダウン時には障害とみなしてフェイルオーバーするインターフェースです。タグVlanを使っているときの物理ポートに設定します。
Non-Monitored Privateはクラスターではなく、ダウンしても障害とみなさないポートです。リモートログイン用の管理ポートはこれですね。

実機でcphaprob -a ifコマンドで確認すると、Clusterインターフェースは「non secured」、Syncインターフェースは「secured」と表示されます。正直この名前規則の違いはミスリーディングなのでやめて頂きたいです。。。

IPとMacについて

Clusterインターフェースで利用されるIPはインターフェースにアサインするIPアドレスとは異なるVIPとなります(CiscoのHSRPを想像しましょう)。MacアドレスはActiveとして動作しているインターフェースのMacがそのまま使われます(CiscoのHSRPとは違いますね)。フェイルオーバーの際にはGARPが送信され、隣接機器のARPテーブルが変更されます。

HAステータスについて

HAステータスは筐体上でcphaprob stateコマンドで確認できます。Active、Standby、Down、Active Attention、Ready、ClusterXL inactive or member is downの6種類を覚えておけば大丈夫です。

Active:正常にActiveとして動作している
Standby:正常にStandbyとして動作している
この2つは正常な状態を示しています。

Down:異常であり、パケットの送受信は行えない。他の筐体にActiveを任せている。
Critical Device(後述)に問題が起きており、ActiveにもStandbyにもなれない状態です。通信用インターフェースで障害が起きた場合にはこの状態になります。

Active Attention:異常であるが、他の筐体にActiveを任せられないため自分が送受信を行っている。
両方の筐体で障害が発生した場合、どちらもActiveになれずこの状態になります。

Ready:正常であるが、ActiveにもStandbyにもなれない
あまり見ることがない状態です。両方筐体のバージョンが異なる場合には、より「新しい」バージョンがReadyとなります。この時古いバージョンはActiveとなります。Standbyではないためコネクション同期はできません。

ClusterXL inactive or member is down:正常であり、他の筐体が見つからない
クラスターのうち1台が筐体故障等でいなくなると、もう1台はこの状態になります。

フェイルオーバーとCritical Deviceについて

ClusterXLは自分の筐体のうち、インターフェース及び幾つかのプロセスを監視しており、このいずれかで問題が発生した場合にフェイルオーバーが発生します。この監視対象をCritical Deviceとよび、cphaprob -l listコマンドで確認できます。

参考文献

ClusterXL Administration Guide R77 Versions
Understanding Check Point ClusterXl Part 1

Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account log in.