検証
ネットワーク管理者のためのGnutella入門

1.Gnutellaとは何か?

井口圭一/デジタルアドバンテージ
2000/09/15

 インターネットを利用した電子商取引として、企業間取引のB2B(ビー トゥ ビー、Business to Business)や、オンライン ショッピングのB2C(ビー トゥ シー、Business to Consumer)が注目されてきた。これに加え2000年に入ってからは、P2P(ピー トゥ ピー、Person to PersonまたはPeer to Peer)と呼ばれる新たなカテゴリが注目を集めている。この火付け役となったのは、Napsterと呼ばれるファイル交換ソフトウェアである。このNapsterは、インターネットに接続された各Napsterユーザー同士で、音楽ファイル(MP3やWindows Media Audio形式の音楽ファイル)を交換し合うためのソフトウェアである。手持ちのPCにNapsterソフトウェアをインストールすると、自分が持っている音楽ファイルをネット上の第三者に公開可能になり、同時に、ネット上の第三者が公開している音楽ファイルから目的の曲を検索し、それを手に入れることができるようになる。Napsterは、「まったく新しいインターネットの可能性を切り開いた」と賞賛される一方で、市販の音楽CDなどから違法にコピーされた音楽データが広く流通しており、音楽著作者に莫大な被害を与えるソフトウェアだとして糾弾されている(Napsterの詳細については別稿の「検証:ネットワーク管理者のためのNapster入門」を参照)。

Napsterよりもさらに厄介なGnutella

 音楽を業務とするような一部の例外的な企業でもなければ、社内ネットワークを経由して、Napsterのようなファイル交換ソフトウェアを実行し、音楽データを交換するというのは、社内規定上も問題だろう。ましてや、音楽著作物の権利侵害という違法性が問われているとなればなおさらである。読者がネットワーク管理者なら、このようなファイル交換ソフトウェアのしくみをある程度理解し、場合によっては強制力をもって、こうしたソフトウェアの使用を禁止しなければならないだろう。

 前出の別稿で述べたとおり、Napsterでは、データ交換自体は各参加者間で直接的に行われるものの、ファイルの検索には中央のサーバを使用するようになっていた。したがってNapsterの利用を禁止したければ、Napsterサーバへの接続ポート(TCPポート8875番)を使用不可にすれば、比較的簡単に目的を達成することができる(ただしこれ以外のポートを使ってサーバを作ることは不可能ではないので、100%完全な方法ではないが)。

 しかし胸をなで下ろすのはまだ早い。Napsterと同じファイル交換ソフトウェアではあるが、Napsterよりもさらに厄介なGnutella(グヌーテラ)の利用者が増えているからだ。

Gnutella誕生の背景

 Gnutellaは、MP3プレイヤーとして著名なWinamp(ウィンアンプ)の開発元であるNullsoft社のプログラマが、業務外で独自に開発したファイル交換ソフトウェアで、2000年3月14日にWebページ上で無償公開された。聞くところでは、このプログラマはWinampの開発者自身だとされる。Nullsoft社は、1999年7月に、米国の大手インターネット サービス企業であるAOL(America OnLine)社に買収され、AOL社の一部門となっていた(AOL社によるNullsoft社買収のニュース リリース)。Gnutellaが公開された2000年3月当時AOL社は、映画や音楽などのコンテンツを持ち、CNN社などを傘下に収める巨大総合メディア企業、Time-Warner社の買収を進めていた。つまり、音楽著作物の権利を守る立場である巨大メディア企業の買収を進めながら、その一方では傘下の部門が、著作権侵害の可能性が高い方法で音楽ファイルなどを相互交換可能なソフトウェアを開発・公開していたことになる。この問題に気づいたAOL社およびNullsoft社の経営陣は、公開同日の3月14日にこのWebページを削除し、アクセス不能とした。

 その後Gnutellaは、Nullsoft社から独立したGnullsoft社から公開されるようになり、現在に至る。この原稿執筆時点(2000年9月上旬)では、GnutellaのホームページからGnutellaをダウンロードしたり、Gnutellaの使い方やファイル交換のしくみなどを解説したドキュメントを読んだりできる。

Gnutellaのホームページ
現在Gnutellaは、Nullsoft社から独立したGnullsoft社によってWeb上で無償公開されている。Gnutellaプログラムのダウンロードや、Gnutellaの使い方、ファイル交換のしくみなどを解説したページがある。Gnutellaのホームページ

Gnutellaは核戦争でも生き残れるソフトウェア!?

 ユーザーの視点から見たGnutellaは、同じくインターネット上のファイル交換ソフトウェアとして著名なNapsterのそれとよく似通っている。ネット上の参加者は、自分が所有している音楽ファイル(MP3やWindows Media Audio)を他の参加者がそれをダウンロードできるように公開する代わりに、他人が公開している音楽ファイルを検索し、ダウンロードすることができる。このときNapsterでは、参加者がネットワークに接続するときに、その参加者が公開している音楽ファイルの情報(ディスク中のパス情報およびファイル名。音楽データそのものではない)を中央のサーバに吸い上げる。そして検索処理では、こうして吸い上げたファイル情報を使用するわけだ。その後、実際のファイル交換は、各参加者のPC同士で直接行われることになる。このように、Napster自身は音楽データそのものをサーバに保持するわけではない。Napsterのしくみを図にすると次のようになる。このようにNapsterでは、検索用に中央のサーバが必要であり、このサーバへのアクセスを遮断することで、実質的にNapsterの利用を禁止可能だった。

Napsterでのファイル交換
Napsterでは、中央にサーバがあり、各クライアントがネットワークに参加するときに、そのクライアントが公開している音楽データのファイル情報(パス名とファイル名)をサーバ側に吸い上げる。クライアントが検索を要求すると、Napsterサーバは自身で保持しているファイル情報に対して検索処理を実行し、ネットワーク内の誰がファイルを持っているかを返す。その後、ファイルのダウンロード処理は、クライアント同士で直接行われる。

 これに対し今回ご紹介するGnutellaの大きな特徴は、中央のサーバが存在せず、純粋にクライアント同士だけでファイルの検索と交換を可能にしている点である。Gnutellaクライアントはまず、Gnutellaネットワークに接続している他のクライアントの1人を見つけて、そのIPアドレスを指定して接続する(Gnutellaのホームページによれば、Gnutellaクライアントで構成されるネットワークを「GnutellaNet」と呼んでいる。以後本稿でもこの表記を用いることにする)。そして検索処理を実行すると、ICMP(Internet Control Message Protocol)プロトコルのpingのようにネットワーク内の他のクライアントに検索要求を伝播させ、一致したファイルを持つクライアントがこれに応答する。以後ファイルのダウンロードは、ファイルを公開しているクライアントとの間で直接行われる。

Gnutellaでのファイル交換
Gnutellaの大きな特徴は、Napsterのように中央のサーバを持たないことだ。GnutellaNetネットワークはすべてクライアントだけで構成されており、同時にこれら各クライアントがサーバ(ホスト)としても機能する。中央に特別なサーバを必要としないため、Gnutellaクライアントをインストールしたコンピュータが何台か集まれば、簡単にネットワークを構成することができる。

 図から分かるとおり、GnutellaNetにはサーバ(ホスト)が存在しない(逆に言えば、すべてのクライアントが同時にサーバでもある)。このためGnutellaをインストールしたクライアントPCが何台かあれば、GnutellaNetを即席に作ることができる。Gnutellaのホームページの解説によれば、Gnutellaのネットワーク モデルは、「核戦争でも生き残れるように設計されたもの(Gnutella is designed to survive nuclear war)」だという。「万一、ニューヨークに核爆弾が投下されたとしても、(それ自体はたいへんなことだが)ニューヨーク以外の『Gnutella友達』によってGnutellaNetは維持されるだろう」とは、少々物騒だが、Gnutellaの特徴をよく表している(Napsterサーバがニューヨークにしかなかったとすれば、Napsterネットワークは機能不全に陥るだろう)。

 Gnutellaのもう1つの特徴は、交換可能なファイル形式をMP3やWMA(Windows Media Audio)の音楽ファイルに限定することなく、静止画や動画、ワードプロセッサの文書、スプレッドシート(表計算)のデータなど、ありとあらゆるファイルを交換可能だということだ。デフォルトでは、公開可能なファイルの拡張子が何種類か指定されているが、この指定は簡単に変更したり、追加したりできる。

ネットワーク管理者から見たGnutella

 ユーザーから見れば、どこでも簡単にGnutellaNetを構築できる点は魅力だが、ネットワーク管理者にすればそれが悩みのタネである。GnutellaNetの性格上、その気になれば容易に違法なアングラ ネットワークなどが作れてしまう。中央のサーバもないので、トラフィックをモニタするということも容易でない。Napster社は、音楽著作者の求めに応じて、不法利用の可能性が高いと思われるユーザーのIDを除名にしたが、Gnutellaではこれも不可能である。

 問題を複雑にしているのは、Gnutellaの通信に使うサービス用のTCPポート(他のクライアントが接続するためのポート)をユーザーがマニュアルで簡単に指定できることである。Napsterでは、Napsterサーバにアクセスするためのポートを使用不可にすることで、社内ネットワークからのNapsterの利用を制限することができたが、Gnutellaではこのような方法はとれない。HTTPポートやSMTPPOPポートなど、インターネット アプリケーションが使うポートなどを使われたら、少なくとも「ポートをふさぐ」という伝統的な手法でGnutellaの利用を禁止することはできないわけだ。

関連記事(Windows Server Insider)
  検証:ネットワーク管理者のためのNapster入門
 
  関連リンク
  Gnutellaのホームページ(Gnutella)
  Nullsoft社買収のニュース リリースAOL
     

 INDEX

  [検証]ネットワーク管理者のためのGnutella入門
  1.Gnutellaとは何か?
    2.Gnutellaのインストールと実行 (1)
    3.Gnutellaのインストールと実行 (2)
    4.Gnutellaの通信メカニズム (1)
    5.Gnutellaの通信メカニズム (2)
 
 検証


Windows Server Insider フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Windows Server Insider 記事ランキング

本日 月間