はじめに
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