Helix Core P4コマンドリファレンス (2019.1)

P4PORT

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

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

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

ネットワークサービスの動作とパフォーマンスは、次によって決まります。

  • サービスをホストするマシンのネットワーク性能
  • エンドユーザが使用するオペレーティングシステム
  • ユーザ固有のLANまたはWANのインフラストラクチャ(加えて、エンドユーザとHelix Coreサーバの間にあるすべてのルータのIPv6サポート状況)。

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

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

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

使用上の留意点

クライアントが使用するか? サーバが使用するか? 同様に機能するコマンドライン P4CONFIGファイルで設定できるか?

はい

はい

p4 -p protocol:host:portcmd

はい

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

プログラム

Helixサーバ

1666

Helixプロキシ

1666

Helixサーバアプリケーション

perforce:1666

Helixサーバアプリケーション サービス

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

備考

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

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

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