Common Address Redundancy Protocol

Common Address Redundancy Protocol (一般アドレス冗長化プロトコル・以下CARPと略す) は、ローカルネットワーク内で複数のサーバIPアドレスの設定を共有することを可能とするプロトコルである[1]

概要 編集

主な目的は、(ファイアウォールルーターの使用時においては特に)フェイルオーバー冗長性を確保する為である。CARPの構成では、VRRPHSRPの両方に似たサーバロードバランスの機能がある。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の使用を始めた[2]

シスコはOpenBSDの開発者達にHSRPの特許を施行することを知らせた。これはアルカテルとの訴訟[3]が関連している可能性がある。したがって、VRRPのフリーな実装を作れなかった。OpenBSDの開発者は、「合理的かつ非差別的」ライセンスの条項は必ずオープンソースでの実装を除外するものとして、特許を取得したVRRPの代わりとしてCARPを作り始めた。HSRPの特許に抵触しないように、彼らは、CARPのアイデアを根本的に異なるようにしてアイデアを守った。OpenBSDのセキュリティに焦点をあてた開発の為に、CARPはセキュリティを考慮して暗号化の技術を取り入れられて設計された。2003年10月に、完全に特許フリーな形で利用可能になった。2005年5月には、FreeBSD5.4FreeBSDに統合されて最初にリリースされた[4]。以降、NetBSDに統合された。

公式なインターネットプロトコル番号の不存在 編集

OpenBSD.orgより引用:[5]

もちろん、最後の注意として、IANAに請願した時に、IETFの主要部を規定している「official (公式な) 」CARPとpfsyncのインターネットプロトコル番号が与えられるという私たちの要求が拒否された。どうやら我々は公的な標準化団体の承認を得ることに失敗したようだ。したがって、私たちは、何か他の数値とかぶらないプロトコル番号を選択することを余儀なくされ、CARPをIPプロトコル番号112で配置することを決定した。我々はまた、空いていた未使用の番号にpfsyncを配置した。我々はこれらの決定をIANAに知らせたが、彼らは返答することを断った。

この要求が行われた時点では、IPプロトコル番号RFC 2780の規則すなわち「IESGの承認」や「標準的な行動」のプロセス(と、この要求には適用されなかった第3の意見である「専門家の批評」)に従ってIANAによって割り当てられていた。これらのプロセスの両方は、CARPには無かった、要求されていたプロトコル番号の為に原文の仕様書が記述されたプロトコルを必要としていた。技術的な仕様は、CARPのために提出されず、IANAは固有なプロトコル番号の割り当ての要求を断った。

IANA標準規格との非互換性 編集

IPプロトコル112は、1998年 [6] にIANAによってVRRP用プロトコルとして以前に割り当てられていたもので[7]、それから継続してこのプロトコルが使用されている。

CARPは、以前にVRRPプロトコル用にIANAによって割り当てられていたイーサネットMACアドレスの配列を使用している[8]。同一のVRRPグループIDをCARPの仮想ホストIDとして同一ネットワーク上でVRRPとCARPを実行することは、MACアドレスの競合する為できない[9]

関連項目 編集

脚注・出典 編集

  1. ^ CARPとは”. d.hatena.ne.jp. 2014年3月12日閲覧。
  2. ^ IETF source
  3. ^ AlcatelがCiscoを相手どり訴訟--特許侵害など”. 日経BP (2000年6月8日). 2014年3月12日閲覧。
  4. ^ FreeBSD 5.4 i386 release notes, retrieved 2010-01-06
  5. ^ CARP License”. OpenBSD Release Songs (2004年5月1日). 2014年3月12日閲覧。
  6. ^ RFC 2338
  7. ^ http://www.iana.org/assignments/protocol-numbers
  8. ^ http://www.iana.org/assignments/ethernet-numbers
  9. ^ http://www.brentrjones.com/2009/11/11/openbsd-carp-and-vrrp-conflicts/

外部リンク 編集