KAME プロジェクト便り

山本和彦
IIJ 技術研究所
BSD Magazine No. 19 (2004/3)


第19回 KAMEプロジェクトのポリシー

今回は、 よく質問を受ける KAME プロジェクトのポリシーについて説明し、 また過去三ヶ月の間に起ったニュースについて述べます。


特許に対するポリシー

IETF では、オープンなプロトコルを制定します。 これらのプロトコルは、特許などの問題がなく、 誰でも自由に実装、利用できるのが理想です。 しかしながら、現実的には特許問題を抱えたまま標準化されるプロトコルもあります。

IETF のポリシーとしては、 プロトコルのある部分が特許に触れていても、 特許権保持者がその技術を誰にでも公平にライセンスするのであれば、 そのプロトコルはProposed Standard になれます。 利用料や契約を要求していても構いません。

KAME プロジェクトでは、 特許問題のないプロトコルはもちろんのこと、 特許が取得されていても契約なしに無料で利用できるのであれば実装します。 しかしながら、契約が必要であったり、 使用料を払わなければならない場合は、実装しない方針です。

理由は以下の通りです。 まず、KAME プロジェクトの成果物は無償ですから、使用料がかかるのは困ります。 次に契約についてですが、 対象が実装者と利用者の 2 つの場合があります。 実装者である KAME プロジェクトに契約が求められる場合、 KAME プロジェクトには契約を結ぶ枠組みがありません。

また、利用者に契約が求められる場合、 KAME プロジェクトでは面倒をみれませんし、 KAME プロジェクトの成果物に契約を結ぶといった制約が加わることは、 我々の望むところではありません。 そもそも、誰に対して契約を求めているのか明確でない特許もあります。

KAME では以下のプロトコルの実装を進めていましたが、 特許の問題があると判明したために、実装を中止しました。

Source Specific Multicast (SSM)
Apple社が利用者に対して有償のライセンス契約 を要求しています。 現在、Apple社への問い合わせ中であり、返答に応じて対応を決める予定です。
Intra-Site Automatic Tunnel Addressing Protocol (ISATAP)
SRI 社が実装者に対しライセンス契約を要求しています。 無償ですが、KAME プロジェクトのライセンスとの整合性が SRI 社に問い合わせても確 認できませんでした。
Virtual Router Redundancy Protocol(VRRP) v3
Cisco 社が実装者に対してライセンス契約を要求しています。 これは、KAME プロジェクトのライセンスと整合性がありません。

なお、IETF のプロトコルに関する特許問題は、 このサイトにまとまっています。


FreeBSD 5 に関する開発ポリシー

現在、KAME プロジェクトでは、以下の OS に対し snap を毎週リリースしています。

このように、 NetBSD と OpenBSD に対しては最新の安定バージョンを元にしていますが、 FreeBSD は最新である5.2 に対応できていません。 そのため、よく「FreeBSD5 の snap はまだですか」という質問を受けます。 端的に言えば、「まだ決まっていません」がその答えです。

FreeBSD 5では、 共有資源を細かに排他制御できる「fine-grained locking」が導入され、 コードが大幅に改造されています。 KAME プロジェクトでは、 できる限り3 つの BSD でコードを共有するというポリシーを採用していますので、 このような大幅な変更があった場合は慎重に対応を考える必要があります。


IPv6 Ready Logo

KAME プロジェクトは、 2003年11月21日に IPv6 Ready Logo を獲得しました。 これは、IPv6 の普及を推進している IPv6 Forum が、 試験に合格した IPv6 ソフトウェアに発行しています。 消費者は、この Logo が張ってあれば、 安心してその製品を購入したり、利用したりできます。

この Logo を取得するためには、 「自己テストツールによる仕様適合試験」と「他社の機器との相互接続試験」をパスする必要があります。 KAME プロジェクトは、 FreeBSD 4.8 用の 2003年9月22日の snap に対してLogoを頂きました。


X Window System

KAME プロジェクトでは、小野さんが X Window System の IPv6 対応に取り組みました。ややこしいのですが、 経緯は以下の通りです。

2002年5月に、 XFree86 プロジェクトにトランスポートのIPv6 対応をやりたいと申し出たところ、 Sun Microsystems 社による実装が本家 X.org にマージされると言われました。 しかしながら、マージされる気配がないので、 独自に実装して、10月に XFree86 プロジェクトに伝えました。 これは、単なるお知らせに留まりました。

2003年4月に X.org に Sun Microsystems 社による実装が開発版にマージされ、 レビュー・コードが公開されました。 このコードでは、 X サーバが IPv4 と IPv6 の両方でコネクションを待ち受けるようになっていませんでした。 そこでパッチを作成し、6月に X.org に送りました。

7月、XFree86 プロジェクトに X.org の IPv6 機能がマージされました。 これには、小野さんのパッチも取り込まれています。 しかしながら、細部においては問題も残っています。 たとえば、現在のコードではアドレスのスコープをうまく処理できません。


itojun本

萩野(itojun)さんの著書「IPv6 ネットワーク・プログラミング」の英語版が、 4月30日に Butterworth-Heinemann 社から出版されます。 この本は、もともと萩野さんが英語で書き、小川さんが日本語に翻訳していました。 英語版は、英語圏の方の添削を受けての出版です。


Unix Network Programming

KAME プロジェクトとは直接関係ないことですが、重要ですので説明させて下さい。

ネットワーク・プログラミングのバイブルである「UNIX Network Programming」(以下 UNP)の Vol. 1 の第三版が発売されました。

第二版は、 Stevens 氏の作です。Stevens 氏が亡くなられてから、 今後どうなるのかと心配していましたが、 Fenner 氏と Rudoff 氏により改訂されました。

前回説明したように、IPv6 ソケット API には、 Basic と Advanced があります。以下の簡易年表から読み取れるように、 UNP Vol. 1 第二版は、Basic API を RFC2133 に準拠していました。 また、Advanced API については、おそらくDEC の古い実装に基づいていました。

そのため、Advanced API の一部である raw ソケットの内容が特に古く、 一般ユーザが利用できる実装とも大幅に異なっており、 残念ながら参考書としての役割を果たせていませんでした。

UNP Vol. 1 第三版は、最新の RFC3493 と RFC3542 に準拠しています。 ようやく、この本を自信を持って他の人に勧められるようになりました。 ちなみに、第三版にはKAME という単語が出てきます。:-)

1997/04 RFC2133 (Basic API 初版)発行
1998/01 UNP Vol. 1 第二版 発売
1998/02 RFC2292 (Advanced API 初版)発行
1999/03 RFC2553 (Basic API 第二版)発行
1999/09 Stevens 氏死去
2003/02 RFC3493 (Basic API 第三版)発行
2003/05 RFC3542 (Advanced API 第二版)発行
2003/10 UNP Vol. 1 第三版 発売

なお、UNP Vol. 2 は「Interprocess Communications」の解説で、 これは Vol. 1とは別の内容なのでご注意下さい。 Vol. 2 は(古いですが)第二版が発売中です。