P4PORT

解説

Perforceサービス(サーバ、ブローカ、プロキシ)が、通信の接続待ちに使用するポート番号およびバインドするネットワークトランスポートの値です。

Perforceアプリケーションにおいては、通信相手であるPerforceサービスのプロトコル、ホストおよびポート番号の値です。最も一般的に使用されている通信プロトコルはtcp(TCP/IP経由のプレーンテキスト)またはssl(TCP/IP経由のSSL)です。

PerforceはIPv4ネットワークとともにIPv6ネットワーク経由の接続もサポートしています。ホスト名の解決の際にIPv4とIPv6のどちらのアドレスを使用する必要があるか(あるいは単に使用したいか)を指定できます。tcp4およびssl4のプロトコル設定にはIPv4アドレスのサポートが必要です。同様に、tcp6ssl6にはIPv6のサポートが必要です。tcp64およびssl64を使用すると、最初にホストの解決をIPv6アドレスで試み、IPv6が使用できない場合にIPv4アドレスを受け入れます。tcp46およびssl46を使用すると、その反対の動作を指定できます。すなわち、可能であればデフォルトでIPv4の使用を試み、IPv4が使用できない場合にIPv6を使用します。構成可能変数net.rfc3484をユーザのワークステーションまたはP4CONFIGファイルに設定すると、オペレーティングシステムによって自動的にどちらのトランスポートを使用するかが決定されます。

ネットワークサービスの動作およびパフォーマンスは、単にサービスをホスティングしているマシンのネットワーク能力や、エンドユーザが使用するオペレーティングシステムだけでなく、ユーザ固有のLANおよびWANのインフラストラクチャ(および、エンドユーザとPerforceバージョン化サービスの間にあるすべてのルータでのIPv6サポート状況)によって異なります。

シナリオの1つとして、自宅から作業するユーザを例にとります。ユーザがIPv6ベースのホームネットワークを配備しているとしても、ISPまたはVPNのプロバイダがIPv6を完全にサポートしているとは限りません。そのため弊社ではP4PORTにいくつかの異なる設定を用意し、IPv4からIPv6への移行中の管理者とユーザが可能な限り柔軟に作業できるようにし、旧バージョンとの互換性を持たせています。

P4PORTプロトコルの値

IPv4/IPv6または混合ネットワークでの動作

<not set>

tcp4::の動作を使用しますが、アドレスが数値であり2つ以上のコロンが含まれている場合は tcp6:を想定します。構成可能変数net.rfc3484が設定されている場合、OSによってどちらのトランスポートを使用するか決定されます。

tcp:

tcp4:の動作を使用しますが、アドレスが数値であり2つ以上のコロンが含まれている場合はtcp6:を想定します。構成可能変数net.rfc3484が設定されている場合、OSによってどちらのトランスポートを使用するか決定されます。

tcp4:

IPv4のアドレス/ポートにのみ接続待機および接続します。

tcp6:

IPv6のアドレス/ポートにのみ接続待機および接続します。

tcp46:

IPv4アドレスへの接続待機および接続を試みます。失敗した場合、IPv6で再試行します。

tcp64:

IPv6アドレスへの接続待機および接続を試みます。失敗した場合、IPv4で再試行します。

ssl:

ssl4:の動作を使用しますが、アドレスが数値であり2つ以上のコロンが含まれている場合はssl6:を想定します。構成可能変数net.rfc3484が設定されている場合、OSによってどちらのトランスポートを使用するか決定されます。

ssl4:

IPv4のアドレス/ポートにのみ、SSL暗号化を使用して接続待機および接続します。

ssl6:

IPv6のアドレス/ポートにのみ、SSL暗号化を使用して接続待機および接続します。

ssl46:

IPv4のアドレス/ポートに接続待機および接続します。失敗した場合、IPv6で再試行します。接続後はSSLによる暗号化を必要とします。

ssl64:

IPv6アドレス/ポートに接続待機または接続します。失敗した場合、IPv4で再試行します。接続後はSSLによる暗号化を必要とします。

混合環境ではnet.rfc3484構成可能変数に1を指定することが推奨されます。

p4 configure set net.rfc3484=1

こうすることによって、プロトコルの値を明示的に指定していないユーザにも、net.rfc3484に準拠した動作が保証されます。つまり、クライアント側の構成可能変数net.rfc34841に設定され、P4PORTがexample.com:1666、またはtcp:example.com:1666、または ssl:example.com:1666に設定されている場合、ユーザのオペレーティングシステムはそれぞれの接続にIPv4とIPv6のどちらを使用するかを自動的に決定します。

SSLを使用してPerforceに接続する場合は、Perforceサーバの指紋がP4TRUSTファイルに保存されているものと一致しなければなりません。(新しいPerforceインストールに最初に接続したとき、サーバのフィンガープリントが表示されます。それが管理者によって割り当てられたものと一致すれば、p4 trustコマンドを使用してサーバをP4TRUSTファイルに追加することにより、サーバに安全に接続できます。

使用上の留意点

クライアントが使用するか?

サーバが使用するか?

同様に機能するコマンドライン

P4CONFIGファイルで設定できるか?

使用可

使用可

p4 -p protocol:host:port cmd

使用可

明示的に設定されない場合の値

プログラム

Perforceサーバ

1666

Perforceプロキシ

1666

Perforceアプリケーション

perforce:1666

Perforceアプリケーション

Perforceバージョン化サービス

1818

1818

ssl:squid:1234

ssl:1234

example.com:1234

1234

ssl:192.168.0.123:1818

ssl:1818

tcp6:[2001:db8::123]:1818

tcp6:[::]:1818

tcp6:example.com:1818

tcp6:[::]:1818

ssl64:[2001:db8::123]:1818

ssl6:[::]:1818ssl64:[::]:1818

Perforceアプリケーション上でのP4PORTの形式はprotocol:host:portです。または、Perforceアプリケーションとバージョン化サービスの両方が同じホスト上で動作している場合は、単にportです。ポート番号は1024から32767までの範囲内でなければなりません。

P4PORTIPアドレスとポート番号の両方を指定すると、Perforceバージョン化サービスはP4PORTに指定されているIPアドレス以外のIPアドレスからの要求を無視します。

プロトコルを指定しない場合、アプリケーションとPerforceバージョン化サービスの間での伝送はプレーンテキストで行われ、IPv4アドレスが想定されます。