|
Flash Media Server をインストールするときには、Flash Media Server および Flash Media Administration Server がリッスンするデフォルトポートを受け入れることができます。新しいポートを入力することもできます。Flash Media Server のデフォルトポートは、1935 および 80 です。Flash Media Administration Server のデフォルトポートは 1111 です。
FlashComGuru の Stefan Richter 氏が所有している Flash Media Server 上の、クライアントが接続できるポートをテストする方法については、「FlashComGuru Port Tester」を参照してください。
ご使用の Flash Media Server 上の、クライアントが接続できるポートをテストするには、Jake Hilton 氏が開発し所有している port tester を使用します。
ポートの要件次の表では、クライアントがサーバーへの接続を確立する必要があるポートを示しています。
ポート番号
|
プロトコル
|
トランスポート
|
説明
|
1935
|
RTMP/E
|
TCP
|
デフォルトでは、Flash Player および AIR クライアントは TCP 経由のポート 1935 を使用して Flash Media Server に RTMP 接続を行います。
RTMP プロトコルで Flash Media Server と通信する際、クライアントはポートに対し 1935、80(RTMP)、80(RTMPT)の順序で接続を試みます。
|
1935
|
RTMFP
|
UDP
|
デフォルトでは、Flash Player および AIR クライアントは UDP 経由のポート 1935 を使用して Flash Media Server に RTMFP 接続を行います。
|
80
|
RTMP/E、RTMTP、HTTP
|
TCP
|
デフォルトでは、ポート 1935 を使用して Flash Media Server に接続できない Flash Player および AIR のクライアントは、ポート 80 (RTMPT)を使用したトンネリングを試行します。
Apache がインストールされ、有効な場合、ポート 80 を使用して行われた HTTP 要求は、ポート 8134 を使用して Apache にプロキシされます。
ポート 8134 にプロキシしている場合、ポート 80 への HTTP Streaming 要求はハングする場合があります。要求でポート 8134 を使用するか、ポート 80 で直接リッスンするように Apache を設定し、またポート 80 でリッスンしないように Flash Media Serverを設定します。
|
19350-65535
|
RTMFP
|
UDP
|
デフォルトでは、クライアントは、ポート 1935 およびポート 19350 ~ 65535 を使用して RTMFP プロトコル経由で Flash Media Server と通信します。RTMFP プロトコルは UDP を使用して通信します。クライアントがサーバーにポート 1935 を使用して接続し、サーバーがクライアントをポート 19350 ~ 65535 の間にリダイレクトします。
1935 での UDP 着信トラフィックとポート 19350 ~ 65535 での発信トラフィックを許可します。
ポート 19350 ~ 65535 上の不明なホストからの UDP 着信トラフィックを許可することもできます。Flash Media Server は、パケットを新しいクライアントに送信し、19350 ~ 65535 の 1 つのポートにそのパケットをリダイレクトします。このパケットは、適切なポートでクライアントのトラフィックを戻せるように穴を開けようとします。サーバーサイドの RTMFP NetConnection を使用するには、すべてのポートでの UDP 発信トラフィックを許可します。
|
8134
|
HTTP
|
TCP
|
Flash Media Server は、ポート 8134 を使用して HTTP 要求を Apache にプロキシします。
ポート 8134 にプロキシしている場合、ポート 80 への HTTP Streaming 要求はハングする場合があります。要求でポート 8134 を使用するか、ポート 80 で直接リッスンするように Apache を設定し、またポート 80 でリッスンしないように Flash Media Serverを設定します。
|
1111
|
HTTP、RTMP
|
TCP
|
デフォルトでは、Flash Player、AIRおよび HTML クライアントは、ポート 1111 を使用して Flash Media Administration Server に接続します。クライアントは、接続 URL 内にポート 1111 を指定する必要があります。
クライアントは、RTMPS 経由で Flash Media Administration Server にアクセスできません。そのため、ポート 1111 に対するすべての外部アクセスをブロックすることで、Administration Server へのアクセスをファイアウォール内のクライアントのみに制限することをお勧めします。
|
443
|
RTMPS
|
TCP
|
RTMPS のデフォルトのポートです。RTMPS は、セキュアなネットワーク接続を実現する SSL 標準に準拠しています。RTMPS を使用することで、セキュアなポート上の TCP ソケットを介した接続が可能になります。
|
IP アドレスおよびポートの設定fms.ini ファイルを使用して IP アドレスおよび Flash Media Server が要求をリッスンするポートを設定します。
rootInstall/conf/fms.ini をテキストエディターで開きます。
ADAPTOR.HOSTPORT パラメーターを編集します。デフォルトポートは次のとおりです。
ADAPTOR.HOSTPORT = :1935,80
ファイルを保存し、サーバーを再起動します。
Adaptor.xml 設定ファイルは、Adaptor/HostPortList/HostPort エレメント内の ADAPTOR.HOSTPORT パラメーターを使用します。
<HostPort name="edge1" ctl_channel="localhost:19350" rtmfp="${ADAPTOR.HOSTPORT}">${ADAPTOR.HOSTPORT}</HostPort>
RTMFP の IP アドレスおよびポートの設定RTMFP 接続フローRTMFP クライアントは、UDP ポート 1935 を使用して Flash Media Server の fmsedge プロセスに接続します。
このポートは、fms.ini ファイルの ADAPTOR.HOSTPORT パラメーターで指定します。この値を変更するには、RTMFP の IP アドレスおよびポートの設定を参照してください。
重要: RTMFP クライアントと RTMP/E クライアントは同じポートを使用して Flash Media Server に接続します。ただし、RTMFP クライアントは UDP を使用し、RTMP/E クライアントは TCP を使用します。
fmsedge プロセスでは、19350 ~ 65535 の 1 つの UDP ポートでリッスンしている fmscore プロセスに接続をリダイレクトします。
各 fmscore プロセスにはそれぞれ独自の RTMFP リスナーがあります。各 RTMFP リスナーは、範囲内の 1 つの UDP ポートにバインドされます。fmscore プロセスが開始されると、リスナーは Adaptor.xml 設定ファイルの Adaptor/RTMFP/Core/HostPortList/HostPort エレメントで指定された範囲内で次に使用可能な UDP ポートにバインドされます。例えば、3 つの fmscore プロセスがある場合、それらのプロセスはポート 19350、19351 および 19352 でリッスンします。これらのポートを RTMFP リダイレクトポートまたは RTMFP 移行ポートと呼びます。
使用中のポートの数は、使用中の fmscore プロセスの数に依存します。使用中の fmscore プロセスの数は、アプリケーションインスタンスがどのように分散されているかに依存します。アプリケーションをサーバープロセスに割り当てる方法の設定を参照してください。
サーバーでは、クライアントをリダイレクトするときに、クライアントに IP アドレスとポート番号を送信します。サーバーが NAT の背後にある場合は、HostPort エレメントの public 属性でサーバーのパブリック IP アドレスを指定します。サーバーはこのアドレスをクライアントに渡し、クライアントはそのアドレスを使用して fmscore プロセスに接続します。
RTMFP リダイレクト ポートの設定rootinstall/conf/_defaultRoot_/Adaptor.xml をテキストエディターで開きます。
HostPort エレメントの値を編集します。デフォルトポートは次のとおりです。
<Adaptor>
...
<RTMFP>
...
<Core>
<HostPortList>
<HostPort>:19350-65535</HostPort>
</HostPortList>
</Core>
</RTMFP>
</Adaptor>
RTMFP アダプターが NAT の背後にある場合は、HostPort エレメントのpublic 属性で、クライアントの接続先となる NAT 変換前の IP アドレスを指定します。次の例では、NAT 変換前の IP アドレスに 12.34.56.78 を使用しています。
<HostPort public="12.34.56.78:19350-65535">:19350-65535</HostPort>
fmsedge プロセスではクライアントに IP アドレスとポート番号を送信してクライアントを fmscore プロセスにリダイレクトします。サーバーは NAT 変換後の IP アドレスを認識していますが、クライアントはその IP アドレスに接続できません。クライアントは、NAT 変換前の IP アドレスを認識する必要があります。サーバーに NAT 変換前の IP アドレスを知らせるには、public 属性でその IP アドレスを指定します。
ファイルを保存し、サーバーを再起動します。「サーバーの起動と停止」を参照してください。
HostPort エレメントについてHostPort エレメントの値は次の形式になります。
<value-of-HostPort> := [<host-port-range> [; <host-port-range> [; ... ] ] ]
<host-port-range> := [<host>][:<port-range>[, <port-range> ] ]
<port-range> := <start-port>[ - <end-port> ]
この HostPortList の例では、各コアが次の 2 つのポートをリッスンします。host1:2000-2010 または host2:3000-3010 のいずれかのポートと、host2:5000 または host2:3010-4000 のいずれかのポート。
<HostPortList>
<HostPort public="12.34.56.78:2000-2010">host1:2000-2010; host2:3000-3010</HostPort>
<HostPort>host2:5000; host2:3010-4000</HostPort>
</HostPortList>
サーバーが NAT の背後にある場合のパブリック IP アドレスの設定RTMFP アダプターが NAT の背後にある場合は、HostPort エレメントの public 属性で、クライアントの接続先となる NAT 変換前の IP アドレスを指定します。
<HostPort public="<in-front-of-NAT-server-IP>:19350-65535">:19350-65535</HostPort>
public 属性を指定しない場合、サーバーは NAT 変換前のアドレスを認識しません。fmsedge プロセスではクライアントを正しいポート(19351 など)にリダイレクトできますが、NAT 変換後のアドレスをクライアントに通知します。このアドレスにクライアントは接続できません。
各 HostPort エレメントは、指定されたポートに対応するパブリックアドレスを指定できます。これは、指定された HostPort に関してクライアントに通知されるアドレスです。アドレスを通知するには、HostPort エレメントの public 属性に値を指定します。public 属性は、HostPort エレメントと同じ形式になります。public 属性によって指定されるポートの数は、HostPort エレメントによって指定されるポートの数と等しくなければなりません。コアが HostPort 値の n 番目のポートでリッスンする場合、public 属性の n 番目のポートがその値として通知されます。
public 属性を持つこの HostPortList の例では、コアが host1:1005 でリッスンする場合、パブリックに通知されるアドレスは host2:4005 になります。
<HostPortList>
<HostPort public="host2:4000-5000">host1:1000-2000</HostPort>
</HostPortList>
NAT とファイアウォールのトラバースピアツーピア接続は、Network Address Translation(NAT)とファイアウォールフィルタリングによってブロックされることがあります。ネットワーク全体を制御可能なイントラネットアプリケーションでは、次のいずれかの作業を行って、必ずクライアントがピアツーピア接続を作成できるようにします。
インターネットアプリケーションでは、アプリケーション開発者は、ファイアウォールまたは NAT によって直接のピアツーピア接続がブロックされるケースを扱う方法を選択する必要があります。ピアツーピアでない接続で動作するアプリケーションを作成するには、クライアントサーバー RTMP や RTMPT へのプロトコルフォールバックを作成します。サーバーを通じてメディアを中継しないアプリケーションを作成するには(一部のクライアントがメディアを参照できない場合でも)、プロトコルフォールバックを作成しません。
NAT の種類についてさまざまな種類の NAT の動作について理解しておくことは重要です。
- Cone
- すべてのピアと会話するときに、同じアドレスとポートを再利用します。
- 複数 IP アドレス、symmetric
- 新しいピアと会話するときに、新しいアドレスとポートを選択します。
- 単一 IP アドレス、symmetric
- 新しいピアと会話するときに、同じアドレスを使用しますが、新しいポートを使用します。
また、NAT とファイアウォールのフィルタリング動作について理解することも重要です。
- なし
- フィルタリングを行わない cone NAT は「full cone」と呼ばれます。
- アドレス制限型
- ピアは、既に会話しているアドレスとの会話だけに制限されます。
- アドレスおよびポート制限型
- ピアは、既に会話しているアドレスおよびポートとの会話だけに制限されます。
また、いくつかの NAT とファイアウォールの動作は、簡単に定義されません。例えば、NAT が、ポート番号を維持する symmetric NAT として動作しているとします。この NAT が、リソースを使い果たすと、cone NAT として動作することが考えられます。
もう 1 つの例として、NAT が、サーバーに接続する最初のクライアントに対してはある種類の NAT として動作するとします。この NAT が、同じサーバーに接続しようとする第 2 のクライアントに対しては、別の種類の NAT として動作することが考えられます。この場合、単純な分析では、クライアントがピアツーピア接続を行うことができるかどうかを予測できない場合があります。
注意: ファイアウォールはフィルターを行うことができますが、NAT ではありません。NAT は、ファイアウォールとして動作し、フィルタリングを行う場合があります。ファイアウォールは、UDP を完全にブロックする場合があります。
RTMFP Connectivity CheckerRTMFP 考案者の Matthew Kaufman 氏は、「RTMFP Connectivity Checker」という名前の Web サイトを、http://cc.rtmfp.net/ でホストしています。このサイトを使用して、特定のネットワーク上のクライアントがピアツーピア接続を作成できるかどうか確認してください。
cc.rtmfp.net への接続のプロパティが、ピアとの間の接続のプロパティと同じ場合は、その結果を使用して、ピアツーピア接続を構成できるかどうかを判断します。接続のプロパティが同じにならないことがあるため、結果は決定的でない場合があります。例えば、同じファイアウォールの内側にある、同じ組織内の 2 台のピアで、ピア間のプロパティと、それぞれの http://cc.rtmfp.net へのプロパティが異なる場合があります。
接続をテストするには、クライアント接続のプロパティが、テストしようとしているクライアントのプロパティと同じであり、NAT またはファイアウォールの動作が予測可能であることが必要です。次に、RTMFP Connectivity Checker のテストを示します。
テスト
|
説明
|
自身のパブリック IP アドレスを知っている
|
Flash Player のローカルアドレスは、cc.rtmfp.net が接続を受け付けたときに受け取ったアドレスに一致しています。この場合、アドレス変換は行われていません。
|
パブリック UDP ポート番号はローカル UDP ポート番号と同じ
|
Flash Player が使用していると認識している UDP ポート番号は、http://cc.rtmfp.net が接続を受け付けたときに受け取ったポート番号に一致しています。この場合、ポート変換は行われていません。この答えと上のテストの答えが「はい」の場合、NAT がないものと考えられます(ただし、ファイアウォールは存在している可能性があります)。
|
同じ IP アドレス、同じ UDP ポート番号から受信できる
|
この値は常に「はい」になります。クライアントがこのテストを完了できないとすると、最初の接続を確立できないためです。
|
同じ IP アドレス、異なる UDP ポート番号から受信できる
|
ファイアーウォールが「ポート制限型」かどうかを示します。ポート制限型のファイアウォールでは、あるアドレスとポート番号からの着信トラフィックを許可する前に、そのアドレスとポート番号への発信接続が存在している必要があります。この要件は、以前のトラフィックが同じアドレスの異なるポート番号に送信された場合でも当てはまります。
|
異なる IP アドレス、異なる UDP ポート番号から受信できる
|
ファイアーウォールが「アドレス制限型」かどうかを示します。アドレス制限型のファイアウォールでは、ある IP アドレスからの着信トラフィックを許可する前に、その IP アドレスへの発信接続が行われている必要があります。
|
サーバーの紹介後、異なる IP アドレスに送信できる
|
最初の接続を行うことができた場合、この値は常に「はい」になります。このテストは、新しい RTMFP 接続を開くのに似ています。このテストが失敗した場合、Flash Player が紹介要求を受信または処理する方法に問題があるか、ファイアウォールが予測不能です。
|
元の接続のソース IP アドレスが維持される
|
このテストは、cone NAT があるか、IP アドレスが 1 つだけある symmetric NAT があるか、IP アドレスが複数ある symmetric NAT があるものの、今回は偶然同じアドレスが使用されたことを意味します。テストを繰り返して値が変わる場合は、複数の IP アドレスを使用する symmetric NAT があり、ときどき偶然に同じアドレスが使用されています。
|
元の接続のソース UDP ポート番号が維持される
|
このテストは、cone NAT があることを意味します。値が「いいえ」の場合、symmetric NAT があります。
|
RTMFP 接続テストについて場合によっては、symmetric NAT によりピアツーピア接続が行えないことがあります。
Flash Player は、ほとんどの cone NAT 設定およびファイアウォール設定で動作します(複数の層の NAT で「hairpinning」がサポートされていない場合、いくつかの問題があります)。しかし、symmetric NAT があり、反対側で特定のファイアウォールまたは NAT がある組み合わせでは、ピアツーピア接続を確立する機能がブロックされます。一方が単一の IP アドレスを持つ symmetric NAT の場合、Flash Player は他の symmetric NAT またはポート制限型の cone NAT(またはポート制限型のファイアウォール)の内側にあるピアに接続できません。
接続の一方が複数の IP アドレスを持つ symmetric NAT の場合、他の symmetric NAT またはアドレス制限型(かつおそらくポート制限型)の cone NAT(またはアドレス制限型かポート制限型のファイアウォール)の内側にあるピアへの接続は不可能です。他のピアを追加させるために、いくら Flash Player が制限型 cone NAT または制限型ファイアウォールに「穴を開けようと」しても、相手が別の新しいアドレスまたはポート番号に移行します。そのため、作成した穴が適切でなくなります。
HTTP Streaming 用のポートの設定デフォルトでは、Flash Media Server はポート 80 でリッスンするように設定されます。Flash Media Server は、ポート 8134 を使用して HTTP トラフィックを Apache HTTP Server にプロキシします。ただし、HTTP Dynamic Streaming および HTTP Live Streaming 接続は、サーバーを通じてプロキシする際にハングアップする可能性があります。
HDS および HLS のトラフィックを Flash Media Server 経由で Apache HTTP Server にプロキシしないでください。要求 URL のポート番号を指定するか、ポート 80 を使用するように Apache を設定し、またポート 80 を使用しないように Flash Media Server は設定します。両方の方法を使用する必要はありません。
要求 URL のポート番号の指定
クライアントを、独自のポート(デフォルトのポートは 8134 です)経由で直接 Apache HTTP Server に接続します。例えば、次の要求 URL を使用します。
http://fms.example.com:8134/hds-vod/somefile.f4v.f4m
ポート 80 を使用するための Apache の設定とポート 80 を使用しないための Flash Media Server の設定
ポート 80 を使用するように Apache を設定します。
rootinstall/Apache2.2/conf をテキストエディターで開きます。
Listen 8134 という行を Listen 80 に変更します。
Apache を再起動します。「サーバーの起動と停止」を参照してください。
ポート 80 を使用しないように Flash Media Server を設定します。
rootInstall/conf/fms.ini をテキストエディターで開きます。
ADAPTOR.HOSTPORT パラメーターから 80 を削除し、パラメーターが次のようになるようにします。
ADAPTOR.HOSTPORT = :1935
Flash Media Server を再起動します。「サーバーの起動と停止」を参照してください。
|
|
|