Common Address Redundancy Protocol

Common Address Redundancy Protocol (一般アドレス冗長化プロトコル・以下CARPと略す) は、ローカルネットワーク内で複数のサーバがIPアドレスの設定を共有することを可能とするプロトコルである。 主な目的は、(ファイアウォールルーターの使用時においては特に)フェイルオーバーの冗長性を確保する為である。CARPの構成では、VRRPとHSRPの両方に似たサーバロードバランスの機能がある。CARPは、BSD系のOSに実装され、Linuxにも移植されている。その作者は、(シスコシステムズ社がHSRPで取得した)アメリカ合衆国特許第 5,473,599号の特許に抵触していないと主張している。 もしパケットフィルタを実行している1台のコンピュータがダウンしてしまった場合、パケットフィルタの片側のネットワークはもはや通信できないか、パケットフィルタ無しで通信する。しかし、2台のコンピュータがCARPでIPアドレスを共有している状態でパケットフィルタを実行していて、障害が発生した場合、バックアップ用パケットフィルタに引き継がれ、障害に合わずに残った方のパケットフィルタのコンピュータは、障害を認識することなく、操作は通常通り続行される。新しいパケットフィルタが古いものと同様の動作の実行を確実にする為に、pfsyncdプロトコルがパケットフィルタの状態を同期させるために使用される。 CARPを利用しているホストのグループは、「冗長グループ」と呼ばれている。冗長グループは、グループのメンバー間で共有または分割されたIPアドレスを自身に割り当てる。 グループ内部は、1つのホストが「master(マスター)」に指名され、 残りは「slave(スレーブ)」と呼ばれる。 マスターホストは、目下、共有IPアドレスを「take(所持)」しているホストで; そのIPに対するあらゆるトラフィックやARP要求に応答する。各ホストは複数の冗長グループに所属することも出来る。各ホストは2つ目の固有IPアドレスを持っている必要がある。 CARPの一般的な使用方法は、冗長ファイアウォールのグループを作ることである。冗長グループに割り当てられた仮想IPアドレスはデフォルトのゲートウェイとしてクライアント機に設定される。もし、マスターファイアウォールが故障したりネットワークと繋がらなくなった場合、仮想IPアドレスはスレーブファイアウォールの1つが引き継ぎ、サービスは 中断なく利用できる。 1990年代後半に、IETFは、共有IPの問題の解決策に取り組み始めた。1997年には、シスコシステムズ(以下、シスコと呼ぶ)は、共有IPについて、シスコの特許でカバーされたことをIETFに伝えた。1998年に、シスコはHSRPの特許でカバーしたことを伝えた。それにもかかわらず、IETFはVRRPの作業を続けた。数度の議論を経た後、IETFのVRRPワーキンググループは、RANDライセンス(合理的なかつ非差別)ライセンス条件の下でサードパーティーが利用できるように公開される標準規格の特許の資料に相応しいと決定した。VRRPはHSRPプロトコルに関する問題を修正していた為、シスコはまだHSRPの特許を主張しながらも、代わりとしてVRRPの使用を始めた。 シスコはOpenBSDの開発者達にHSRPの特許を施行することを知らせた。これはアルカテルとの訴訟が関連している可能性がある。したがって、VRRPのフリーな実装を作れなかった。OpenBSDの開発者は、「合理的かつ非差別的」ライセンスの条項は必ずオープンソースでの実装を除外するものとして、特許を取得したVRRPの代わりとしてCARPを作り始めた。HSRPの特許に抵触しないように、彼らは、CARPのアイデアを根本的に異なるようにしてアイデアを守った。OpenBSDのセキュリティに焦点をあてた開発の為に、CARPはセキュリティを考慮して暗号化の技術を取り入れられて設計された。2003年10月に、完全に特許フリーな形で利用可能になった。2005年5月には、FreeBSD5.4でFreeBSDに統合されて最初にリリースされた。以降、NetBSDに統合された。 OpenBSD.orgより引用： もちろん、最後の注意として、IANAに請願した時に、IETFの主要部を規定している「official (公式な) 」CARPとpfsyncのインターネットプロトコル番号が与えられるという私たちの要求が拒否された。どうやら我々は公的な標準化団体の承認を得ることに失敗したようだ。したがって、私たちは、何か他の数値とかぶらないプロトコル番号を選択することを余儀なくされ、CARPをIPプロトコル番号112で配置することを決定した。我々はまた、空いていた未使用の番号にpfsyncを配置した。我々はこれらの決定をIANAに知らせたが、彼らは返答することを断った。 この要求が行われた時点では、IPプロトコル番号はRFC 2780の規則すなわち「IESGの承認」や「標準的な行動」のプロセス(と、この要求には適用されなかった第3の意見である「専門家の批評」)に従ってIANAによって割り当てられていた。これらのプロセスの両方は、CARPには無かった、要求されていたプロトコル番号の為に原文の仕様書が記述されたプロトコルを必要としていた。技術的な仕様は、CARPのために提出されず、IANAは固有なプロトコル番号の割り当ての要求を断った。 IPプロトコル112は、1998年 にIANAによってVRRP用プロトコルとして以前に割り当てられていたもので、それから継続してこのプロトコルが使用されている。 CARPは、以前にVRRPプロトコル用にIANAによって割り当てられていたイーサネットのMACアドレスの配列を使用している。同一のVRRPグループIDをCARPの仮想ホストIDとして同一ネットワーク上でVRRPとCARPを実行することは、MACアドレスの競合する為できない。 Virtual Router Redundancy Protocol（VRRP） RFC3768定義の標準化されたデフォルトゲートウェイの冗長性プロトコル Hot Standby Router Protocol（HSRP）シスコシステムズ社製のルータ冗長ソリューション Gateway Load Balancing Protocol（GLBP）シスコシステムズ社製のルータ冗長兼ロードバランシングソリューション Routed Split Multilink Trunking（RSMT）ノテル･ネットワークス社製のルータ冗長ソリューション PF (ファイアウォール) ネットワークアドレス変換 通信プロトコル [脚注の使い方] ^ “CARPとは”. d.hatena.ne.jp. 2014年3月12日閲覧。 ^ IETF source ^ “AlcatelがCiscoを相手どり訴訟--特許侵害など”. 日経BP (2000年6月8日). 2014年3月12日閲覧。 ^ FreeBSD 5.4 i386 release notes, retrieved 2010-01-06 ^ “CARP License”. OpenBSD Release Songs (2004年5月1日). 2014年3月12日閲覧。 ^ RFC 2338 ^ http://www.iana.org/assignments/protocol-numbers ^ http://www.iana.org/assignments/ethernet-numbers ^ http://www.brentrjones.com/2009/11/11/openbsd-carp-and-vrrp-conflicts/ OpenBSD's carp(4) man page FreeBSD's carp(4) man page Firewall Failover with pfsync and CARP UCARP: userland CARP implementation NetBSD port of CARP The OpenBSD song 3.5: "CARP License" and "Redundancy must be free" メディアの報道 表示 編集