2004/12/21(Tue)
メッセンジャに関する質問が大変増えてきたので暫定版を公開します。 絵もないですしその他見苦しい点はお許しを m(-.-)m さて、以下でMSN/Windowsメッセンジャーの問題点と留意点を見ていきたいとおもいます。(必ずしも解決法が書いているわけではないので言い訳しておきます。^^;) ここではMSのメッセンジャーだけについて書いていますが、ほかのメッセンジャーソフトでも問題の根本は一緒です。それぞれのヘルプや情報ページでポートに関する資料をみつけて対応してください。 P2Pアプリ+ルータで全般的に発生する問題 インスタントメッセンジャーや、WinMX、Netmeetingなどのテレビ電話ソフトなど、1対1で通信を行うソフトを一般的にピアトゥピア・アプリケーション(以下P2Pアプリ)と呼んでいます。こういったソフトウェアは、ルータやセキュリティソフト、プロキシを経由すると接続できなかったり、期待した動作が行われなかったりさまざまな問題があります。原因としては、こういったソフトが特殊なポートをアクセスするため、それがルータでブロックされていると動かないことが一つです。もう一つは、グローバルIPアドレスを当てにしてそういったソフトが相手側と通信を行うため、ルータにブロックされて相手が認識できないというものがあります。さらに、接続している一方はルータを使わず、もう一方がルータ経由だったりすると、片方向だけはうまくいったりもします。 ファイル転送 メッセンジャーをルータ経由でつかっていてまずひっかかるのがファイル転送の機能です。通常の文字チャットに関しては単純なプロトコルで通信しているので、メッセンジャー内部で自動的にNATトラバーサルというプライベートアドレス・グローバルアドレスの相互変換が行われます。その結果プロキシ経由だろうがなんだろうが動きます。ところがファイル転送の機能は別の方法で行っていますので、ポート転送の設定を行わないと転送できません。会社のプロキシなどを経由している場合は転送は基本的にアウトですが、万一会社で"Microsoft Internet Security and Acceleration Server "ってのを使っている場合は動いたりするようです。(後述) ルータまたはセキュリティソフトを使っている場合、ポート転送機能でポート6891-6900をあけてやる必要があります。かくポート1個につき、一個のファイルが転送できるようです。つまり、6891だけなら1個、6900まであければ合計10個のファイルが転送できることになります。ただし、どーもこの設定をしてもうまく転送できないケースが多々あるようです。(この天気予報みたいな説明をするのは個人的にすごく嫌いなんですが、MSのドキュメントを全部読んでもさっぱりラチがあかないのでどーにもなりません。どーにかしてよ>MS) なお、これらのポート転送の設定は接続するマシンどちらにも行う必要があります。簡単確実に利用したい場合は、後述のUPnP対応ルータを使うのが得策です。 ビデオ電話と音声チャット これ以降の機能はWindows Messenger(XP ProとXP Homeだけに対応)のみ対応の機能です。ビデオ電話と音声チャットは「ブロードバンド対応」のWindows XPのウリの機能ですが、セキュリティソフトやルータを経由するとどーにも動きません。使用しているポートは5004-65535という莫大な量で、こんなにポートを無防備にあけるのは個人的にはどーも受け入れられません。MSの資料によると、このポート群をあけたマシン同士で接続すれば機能が使える事になっていますが、実際のところあらかた動かないようです。おそらく、ルータやセキュリティソフトごとに転送やNATの仕様が異なっていて、Messengerがきちんとアドレス変換をしてくれないことが原因ではないかと思います。ビデオ電話と音声チャットも、本当に使いたい場合は後述のUPnP対応ルータを使う必要があります。 ホワイトボードとアプリケーション共有 この2つの機能は、ポート1503を使用しているようです。ポート転送では私はテストしていませんが、UPnP同士では動作しました。 リモートアシスタンス 基本的にWindows XP Proや2000サーバに搭載されているリモートデスクトップ/ターミナルWebサーバと同等の機能・プロトコルを使用しています。従って対応策も同様で、ポート3389をあけてやれば動作します。すくなくともうちではきちんとうごきました。 UPnP対応のルータ さて、ファイアウォール越えで山ほど問題のあるWindowsメッセンジャーですが、すばらしい問題解決法があります。UPnP(Universal Plug & Play)対応のルータや共有ソフトを使うことです。UPnPはネットワーク機器間でプラグ&プレイを実現する業界標準規格ですが、それの補足企画として、IGD(Internet Gateway Device)というインターネットゲートウェイ(ルータやインターネット接続共有ソフトなどのこと)仕様を公開しています。UPnP IGDに対応したルータでは、ポートの開閉などをUPnPに対応したソフトで制御することができるようになっています。Windows XP、Windows Me、Windows 2000ではOS自体がUPnPに対応しており、UPnP IGDに対応したルータなどがネットワークに接続されると、自動的に認識します。さらに、Windows MessengerとMSNメッセンジャー4.6以降では、UPnPに対応が行われており、 UPnP対応のルータが使われていれば、このページでさんざんこき下ろしているめんどくさいポート設定もいりませんし、接続相手側もUPnP対応のルータを使えば、確実に全ての機能が動作するはずです。 さて、問題はUPnP対応のルータがまだあまり市場に出てきていない点です。私が使っているLinksys社のBEFSR41ではUPnP対応ファームウェアがリリースされ、快適に動いています。国内品では、メルコがUPnP+H.323に対応したルータを出すと発表していますが、いつでるかは忘れました。(笑) ひとつ大穴のUPnPルータがあります。XPに搭載されているICS(インターネット接続共有)自体が実はUPnPに対応しています。ルータを使わずに、XPのICSを使って接続を共有すれば、その他のマシンも含めて、自動的にUPnPでポート開閉が行われ、UPnP対応ルータとして機能します。 最後に個人的なコメントですが、UPnP IGDって、いったいどうやってセキュリティの管理をしているんでしょうねー。UPnP対応トロイの木馬なんか食っちゃったら、どーなってしまうんだろーかと思うと夜も眠れません。 XPはリリース直後にUPnPのセキュリティバグが報告されてますから、かならずパッチを当てておきましょう。(発表されたとき、やっぱりかと思った) メモ インターネット接続を共有している場合は、MSN Messenger でファイルを送信することはできません。ファイルを受信することはできますが、送信はできません。 Windows XP の UPnP の限界 Windows XP ではローカル インターフェイスで ICF を実行し、ユーザーが管理権限を所有していない場合、Windows Messenger から送信される呼び出しを実行しません。この機能は管理権限を所有するユーザーが実行すると正常に動作します。 http://www.dslmaniacs.com/tsukaikomu-messenger.htm からのコピー |