Common Address Redundancy Protocol (CARP)
Common Address Redundancy Protocol(一般アドレス
冗長化プロトコル)、略してCARPは、ローカルネットワーク内において複数の
サーバが同じ
IPアドレスを共有するためのプロトコルです。この技術の主な目的は、特に
ファイアウォールルーターを使用する際に、冗長性を確保し、
フェイルオーバーを実現することにあります。
CARPはBSD系の
オペレーティングシステムに実装されており、
Linuxにも移植されています。このプロトコルは、
シスコシステムズが開発したHSRP(Hot Standby Router Protocol)の特許に影響を受けずに利用できるとされています。CARPによって、ネットワークの可用性と信頼性が向上します。
CARPの基本的な仕組み
CARPでは、複数の
サーバを管理するグループが形成され、そのグループは「冗長グループ」と呼ばれます。この冗長グループ内では、1台のホストが「マスター」として指名され、他のホストは「スレーブ」となります。マスターホストはグループ内で共有される
IPアドレスを保持し、そのアドレスに対するトラフィックやARP要求に対応します。スレーブホストは、事故や障害が発生した際にマスターの役割を引き継ぎ、ネットワークの断絶を防ぎます。
例えば、もし冗長グループ内のマスターパケットフィルタが障害を起こした際、スレーブに設定された別のパケットフィルタがその役割を担うことで、サービスの中断を防ぎます。このように、CARPは業務上の重要なデータ通信やサービスの中断を最小限に抑える役割を果たします。
冗長性確保のための機能
CARPは、特に冗長な
ファイアウォールの構成での利用が一般的です。冗長グループで設定された仮想
IPアドレスは、クライアントが接続するデフォルト
ゲートウェイとして利用されます。例えば、マスター
ファイアウォールが故障した場合でも、スレーブ
ファイアウォールが仮想
IPアドレスを引き継ぐことで、クライアントへのサービスを中断することなく続けることができます。このような自動的な
フェイルオーバー機能は、安定したネットワーク運用にとって不可欠です。
CARPの歴史と背景
CARPの開発は1990年代後半にまで遡ります。その当時、IETF(
Internet Engineering Task Force)は、共有
IPアドレスに関する問題解決に取り組んでいました。
シスコシステムズはその後、IETFに対し、HSRPに国際特許を持っていると特定しましたが、VRRP(Virtual Router Redundancy Protocol)の開発は続けられました。
その結果、
OpenBSDの開発者たちは、HSRPの特許に触れない独自のプロトコルを考案し、CARPを生み出すことになりました。このプロトコルは、その設計段階からセキュリティに配慮し、特許を持たない形で2003年10月に利用可能となります。
IANAにおけるCARPの扱い
CARPは、IANAによるプロトコル番号の割り当てが行われておらず、他のプロトコルと互換性がないため、特定の条件下で利用されることがあります。特に、CARPはVRRPが使用する
イーサネットの
MACアドレスを共有しており、同じネットワークで両プロトコルを実行しようとすると、
MACアドレスの競合が発生し、通信が正常に行えない場合があります。
まとめ
CARPは、冗長性を確保し、高い可用性を持つネットワークを構築するための重要なプロトコルです。特に、
ファイアウォールなどの重要なネットワークノードの運用において、その効果が発揮されます。今後もCARPを利用したネットワーク設計は、多くの面で依然として重要な選択肢として残るでしょう。