インターネットとSaaSへのセキュアなアクセス(ZIA)
PACファイルの記述
この資料では、新しいPACファイルを書き込む方法について説明します。
- 要件に基づいて、ZIA管理ポータルから
recommended.PAC
、proxy.pac
、mobile_proxy.pac
、kerberos.pac
といった4つのデフォルトのPACファイルのいずれか1つをコピーして貼り付けます。これらのデフォルトのPACファイルは、必要に応じてカスタマイズできます。
- PACファイルを1要素ずつ構築する。
- ファイルを保存し、追加するたびにテストします。
前提条件
開始する前に、[PACファイルの作成に関するベストプラクティス]を確認してください。
Zscalerサービスにアップロードできる各PACファイルの最大サイズは256KBです。
PACファイル コンポーネント
PACファイルを書き込む際には、以下のコンポーネントに注意してください。
- FindProxyForURL関数
PACファイルは、最初の行のオープニング関数
閉じるFindProxyForURL(url, host)
で始める必要があります。この関数は、プロキシにリダイレクトされるURL、ホスト名、またはIPアドレスを識別します。URL変数には、宛先の完全なURL(例:http://www.zscaler.com)が含まれている必要があり、またホスト変数はドメイン名またはそのIPアドレス(例:zscaler.jpや72.249.144.174)を含む必要があります。一般に、ホスト変数はURL変数よりも優先されます。URLまたはホストが指定されていない場合、すべてのWebリクエストはreturn引数を使用します。 - リターンステートメント
returnステートメントは、各引数の後に中括弧で囲んで入力します。returnステートメントは、要求をプロキシまたは指定された宛先に送信します。例:
function FindProxyForURL(url, host) { return"PROXY ${GATEWAY}:9400"; return"DIRECT"; }.
return文は、2つの値のうちどちらかを受け取ります。
DIRECT
は、プロキシをバイパスして直接宛先のサーバーに行くようにブラウザーに指示します。PROXY
は、リクエストをプロキシに送信するようブラウザーに指示します。
DIRECT
またはPROXY
の値は、大文字で、引用符で囲む必要があります。閉じる引用符の直後にセミコロンを追加してください。例:"DIRECT";を返します "PROXY ${GATEWAY}:9400";を返します
各PROXY文では、プロキシーとポートの完全修飾ホスト名またはIPアドレスを指定する必要があります。IPアドレスはいつでも変更される可能性があるため、一般的にはお勧めしません。Zscalerでは、代わりに変数
${GATEWAY}
と${SECONDARY_GATEWAY}
を使用することを推奨しています。組織でサブクラウドを使用している場合は、${GATEWAY.
<サブクラウド>
.
<Zscalerクラウド>
.net}
変数と${SECONDARY.GATEWAY.
<サブクラウド>
.
<Zscalerクラウド>
.net}
変数を使用します。Zscalerサービスは、ジオロケーションテクノロジーを使用して、お客様に対して ZIA Public Service Edge および 最も速いレスポンス時間で自動的に見つけます。 プライマリー および セカンダリー ゲートウェイに名前を付けると、 one / ZIA パブリック サービス エッジ が利用不可 対象 ANY 理由の場合にフェールオーバーが提供されます。
ZIA パブリック サービス エッジ 承諾 Web リクエスト オン ポート 80, 443, 9400, 9480, および 9443.
- 80番ポートは、ほとんどすべてのWebサーバーで使用されている標準的なポートです。
- ポート 443 は、対象 暗号化 (HTTPS) トラフィックに使用される Standard ポート です。 ポート 9400 は、別のホスト 次の値の間 the エンド ユーザー および ZIA Public Service Edge がユーザーのトラフィックが ZIA Public Service Edgeに到達する前にリダイレクトを試みる場合、代わりに使用できます。
プロキシ エントリーをPACファイルに追加する前に、ユーザー側からZIA Public Service Edge宛てのアウトバウンド トラフィックにポート9400を許可してください。ポート9400がアウトバウンド トラフィックに対してユーザー側でブロックされている場合は、ポートのプロキシ エントリーをPACファイルに追加しないでください。これにより、ブラウザーが到達可能なポートにフェイル オーバーするまで、ブロックされたポートへの接続を複数回試行することによるレイテンシーがなくなります。
- ポート9443は、HTTPSトランザクションをプロキシし検査するサービスを必要とするリモートユーザーに使用することができます。
- ポート9480を使用して、既知のロケーションからZIA パブリック サービス エッジ宛てのトラフィックの認証を除外できます。リモート ユーザーは、このポートを使用してトラフィックをZscalerに転送できます。ただし、Zscalerが未登録のIPアドレスや不明なロケーションからの未認証のトラフィックを受け入れため、認証が強制されます。
オープニング関数
FindProxyForURL(url,host)
{ }に続いて、次の行にreturnステートメントを記述してください。例:function FindProxyForURL(url, host) { return"PROXY ${GATEWAY}:9400"; return"DIRECT"; }.
テキスト ファイルを保存してテストします。PACファイルが、他の引数、IFステートメント、またはその他の要素を使用せずにブラウザーをZscalerサービスに送信することを確認します。ip.zscaler.comに移動し、Webサーバーに直接到達したか、ZIA Public Service Edge経由で到達したかを確認します。
閉じる - 引数
プロキシを使用する必要がある内部ホストまたは外部ホストを識別するさまざまな引数を追加できます。ネストされた引数を一度に1つずつ追加し、追加するたびにPACファイルが正しく動作するかどうかをテストして確認します。
以下は、引数を含むPACファイルのサンプルで、各引数の前にコメントが付けられています。
function FindProxyForURL(url, host) { // //Exclude FTP from proxy // if (url.substring(0, 4) == "ftp:") { return "DIRECT"; } // //Bypass proxy for internal hosts // if (isInNet(host, "0.0.0.0", "255.0.0.0")|| isInNet(host, "10.0.0.0", "255.0.0.0") || isInNet(host, "127.0.0.0", "255.0.0.0") || isInNet(host, "169.254.0.0", "255.255.0.0") || isInNet(host, "172.16.0.0", "255.240.0.0") || isInNet(host, "192.0.2.0", "255.255.255.0")|| isInNet(host, "64.206.157.136", "255.255.255.255")) { return "DIRECT"; } // //Bypass proxy for this server // if (dnsDomainIs(host, "mail.domain.com")) { return "DIRECT"; } return "PROXY ${GATEWAY}:9400; PROXY ${SECONDARY_GATEWAY}:9400; DIRECT"; }
前述のサンプルPACファイルの引数には、以下を指定します。
- FTPトラフィックの除外
次の行は、FTPトラフィックがプロキシにリダイレクトされる可能性を除外しています(サービスがネイティブFTPに対応していないため)。
// //Exclude FTP from proxy // if (url.substring(0, 4) == "ftp:") { return "DIRECT"; }
引数は、
url.substring
という組み込み関数を使った簡単なIFステートメントから始まります。If引数は常に開く括弧と閉じる括弧を伴わなければなりません。引数が評価されなければならない条件と、その結果が要求される条件を記述します。この例では、引数は、URLの最初の4文字(0から4まで)にftp:
という文字列が含まれている場合、DIRECTを返して、下の行で名付けられたプロキシをバイパスするように指定しています。引数の結果は、開閉する中括弧で囲む必要がある。
この変更をPACファイルに保存し、ZIA管理ポータルにアップロードします。ブラウザーでPACファイルを再読み込みし、ftp://ftp.hp.com/などのFTPダウンロード サイトにアクセスします。このページを読み込んだ後、特定のインサイト ログ(Webインサイトなど)にログインして、このトランザクションがログに記録されたかどうかを確認します。トランザクションはログに表示されません。
閉じる - 内部ホストに対する要求の除外
PACファイル例の次の行は、内部ホストに対する要求がプロキシにリダイレクトされる可能性を除外しています。
// //以下のネットワークへのトラフィックをZscalerに送信しない // if (isInNet(host),"192.168.0.0","255.255.0.0") { return"DIRECT"; }。
この引数は、JavaScriptの関数
IsInNet()
を使用し、この関数は通常、以下のいずれかを識別するために使用されます。- クライアントIPアドレス(要求がこのIPアドレスから送信された場合は、このプロキシを使用します。)この引数は、オペレーティング システムに基づいて、デバイス上の最初のIPアドレスを返すことに注意してください。
ipconfig
コマンドの使用時に表示される最初のIPアドレスは、デバイスのIPv6アドレスまたは仮想アダプターのIPアドレスである可能性があり、これにより競合が発生する可能性があります。 - ホスト サーバーIPアドレス(リクエストがこのアドレスに送信される場合は、このプロキシを使用します。)この引数はDNSルックアップになることに注意してください。DNSサーバーが利用できない場合、パフォーマンスに影響を与える可能性があります。代わりに、以下を使用して、アクセスされるホスト ドメインに基づいて
IsInNet()
関数を制約することができます。
If dnsDomainIs(host,"internal.net") { If (isInNet(host,"10.0.0.0","255.0.0")) Return"DIRECT"; } 。
PACファイルを保存して再度テストします。内部ホストを参照し、そのホストにリーチできることを確認します。(ZIA Public Service Edgeを通じてプロキシーされた場合、リクエストは拒否されます。リクエストは最初にネットワークの外部に出てZscalerプロキシーに送られますが、ネットワークの外部から戻ってくるときに内部ホストにアクセスしようとするためブロックされます。)
閉じる - クライアントIPアドレス(要求がこのIPアドレスから送信された場合は、このプロキシを使用します。)この引数は、オペレーティング システムに基づいて、デバイス上の最初のIPアドレスを返すことに注意してください。
- 内部ネットワークの除外
PACファイル例の次の行は、複数の内部ホストに対する要求がプロキシにリダイレクトされる可能性を除外しています。
// //Bypass proxy for internal hosts // if(isInNet(host, "0.0.0.0", "255.0.0.0")|| isInNet(host, "10.0.0.0", "255.0.0.0") || isInNet(host, "127.0.0.0", "255.0.0.0") || isInNet(host, "169.254.0.0", "255.255.0.0") || isInNet(host, "172.16.0.0", "255.240.0.0") || isInNet(host, "192.0.2.0", "255.255.255.0")|| isInNet(host, "64.206.157.136","255.255.255.255")) { return "DIRECT"; }
この例に示すように、IF引数を最後の括弧で閉じる前に、ブール値の「or」演算子(||)を使用して内部ネットワークを連結します。最後の
isInNet
ステートメントでは、or(||)演算子は必要ありません。代わりに、追加の括弧を使用して開始括弧を閉じます。最後のステートメントは、ネットワークではなく、特定のIPアドレスです。特定のホストをバイパスするには、サブネット マスクの255.255.255.255で正確なIPアドレスを入力します。
isInNet()
の使用は、到達しようとしているホストが実際のIPアドレスである場合に非常に効果的です。https://zscaler.comなどのドメイン名でホストにアクセスしようとする場合、お使いのブラウザーは、それに対してDNSルックアップを行う必要があります。ホスト名が解決できない場合、クライアントはDNSがタイムアウトするのを待ってから先に進む必要があります。これを回避し、ネームサーバに過度の負荷をかけないようにするには、isInNet()
引数の直前に正規表現を使用する変数を挿入して、結果をIPアドレスのみに制限します。したがって、次を入力するのではなく:
if (isInNet(host, "0.0.0.0", "255.0.0.0")|| isInNet(host, "10.0.0.0", "255.0.0.0") || isInNet(host, "127.0.0.0", "255.0.0.0") || ...) { return "DIRECT"; }
これを入力します:
reip = /^\d+\.\d+\.\d+\.\d+$/g; if (reip.test(host)) { if (isInNet(host, "0.0.0.0", "255.0.0.0")|| isInNet(host, "10.0.0.0", "255.0.0.0") || isInNet(host, "127.0.0.0", "255.0.0.0") || ...) { return "DIRECT"; } }
ここでは、
reip = /^\d+\.\d+\.\d+\.\d+$/g;
という変数がif(reip.test(host))
引数で使用され、ホストがネストしたIF引数で指定されたネットワークの1つのIPアドレスである場合にのみ結果が使用されます。これは、http://192.0.2.3/example など、IPアドレスを含むURLにのみ使用できます。
一部のバージョンのInternet Explorerでは、先の変数を使用しても機能しない場合があります。これに代わる方法は、JavaScriptシェル式のMATCH関数を使用することです。
if (shExpMatch(host, "/^\d+\.\d+\.\d+\.\d+$/g")) { if (isInNet(host, "10.0.0.0", "255.0.0.0") || isInNet(host, "192.168.0.0", "255.255.0.0")) { return "DIRECT"; } }
この変更を保存し、 PACファイルを お客様 ブラウザーに再読み込みし、内部ネットワーク内の内部 Web サーバーを参照してみます。 If your reach the サーバー, 利用している バイパス済み ZIA Public Service Edge.
閉じる - サーバの除外
PACファイル例の次の行は、mail.domain.comなどの特定のサーバーがプロキシにリダイレクトされないようにします。この例では、別の
[if isInNet()]
引数が内部ホスト名をリストします。//Bypass proxy for this server // if (dnsDomainIs(host, "mail.domain.com")) { return "DIRECT"; } //To bypass all hosts in a domain, use dnsDomainIs(host, "host.com") また、以下を使用して、特定の内部ホストをバイパスすることもできます。 var bypassHosts = /(remote\.mydomain\.com|mail\.mydomain\.com)/; if (bypassHosts.test(host)) { return "DIRECT"; }
前述の引数には、remote.mydomain.comとmail.mydomain.comの2つのホストを含む変数が含まれています。
閉じるJavaScript test(host)
関数を使用すると、ここに入力したホストはすべてDIRECT
を返し、DNSルックアップを必要としません。var
は変数を設定するJavaScript関数です。bypassHosts
はJavaScript関数です。この特定の名前または関数を使用する必要があります。スラッシュは、変数の境界の開始点と終了点を示します。変数のオープン括弧とクローズ括弧は、引数(test(host))の括弧と一致します。ホスト名のピリオドは、円記号で「エスケープ」する必要があります。変数自体には、変数引数を閉じるためにセミコロンが必要です。
- FTPトラフィックの除外
- Zscaler 固有の変数
以下は、PACファイル引数で使用できるさまざまなZscaler固有の変数です。
- ゲートウェイ変数
お客様は、
${ゲートウェイ}
および${セカンダリー}
variables を使用して、クライアントに対して閉じる ZIA Public Service Edgeを決定できます。 例:return "PROXY ${GATEWAY}:80; PROXY ${SECONDARY_GATEWAY}:80; DIRECT";
このZscalerサービスは、ジオロケーション技術を使用して、最も応答時間が短い最も近いZIA Public Service Edgeを見つけます。これらの変数は、最適なユーザー エクスペリエンスを提供します。
組織でサブクラウドを使用している場合は、変数
${GATEWAY.
<Subcloud>
.
<Zscaler cloud>
.net}
と${SECONDARY.GATEWAY.
<Subcloud>
.
<Zscaler cloud>
.net}
を使用します。例えば:"PROXY ${GATEWAY.<サブクラウド>.<Zscaler cloud>.net}:80; PROXY ${SECONDARY.GATEWAY.<サブクラウド>.<Zscaler cloud>.net}:80; DIRECT";を返します。
1つのエグレスIPアドレスの背後に多数のユーザーがいる組織では、PACファイルを設定して、複数のゲートウェイIPアドレスから選択して負荷を分散させることができます。これを行うには、次の変数を使用します。
- 負荷分散PAC変数は、トンネル以外のトラフィック用に設計されています。トンネル(GRE/IPSec)トラフィックの負荷分散にこれらの変数は必要ありません。
- リージョン別追加料金データ センターは、ゲートウェイ変数に含まれません。
- ゲートウェイインデックストークン
Zscalerでは、負荷分散の目的で、ユーザーをデータ センター内の複数のゲートウェイIPアドレスに分散させる場合に、この方法をお勧めします。
PACサーバー用のPACファイルの
${GATEWAY}
変数にサフィックス_F0
から_F7
までを追加して、8つの変数を通じて正常なゲートウェイIPアドレスを返します。たとえば、${GATEWAY_F0}
変数は利用可能な最初の正常なIPアドレスに対応し、${GATEWAY_F1}
変数は2番目の正常なIPアドレスに対応します。PACファイルに
${GATEWAY_F0}
変数を含めるには、次の構文を使用します。"PROXY ${GATEWAY_F0}:80; PROXY ${SECONDARY_GATEWAY_F0}:80; DIRECT";を返す
データ センターの正常なゲートウェイIPアドレスが8つ未満の場合、PACサーバーは使用可能な正常なVIPをラウンドロビン方式で8つの変数すべてに割り当てます。
組織でサブクラウドを使用している場合は、サブクラウド変数と共にゲートウェイ インデックス トークン(
閉じる_F0
サフィックスを通じて_F7
)を使用できます。たとえば、${GATEWAY.
<Subcloud>
.
<Zscaler cloud>
.net_F1}
や${SECONDARY.GATEWAY.
<Subcloud>
.
<Zscaler cloud>
.net_F1}
です。 - ダイナミックゲートウェイトークン
PACファイル内の
${GATEWAY}
変数にサフィックス、_FX
を使用して、クライアント フィンガープリントに基づいてゲートウェイIPアドレスを動的に発行します(つまり、単一の出力IPアドレスから来るすべてのユーザーには、正常なゲートウェイIPアドレスのプールからIPアドレスが与えられます)。フィンガープリントは、単一のデバイスが同じゲートウェイIPアドレスに対してセッションを継続することを保証するために使用されます。PACファイルに
${GATEWAY_FX}
変数を含めるには、次の構文を使用します。"PROXY ${GATEWAY_FX}:80; PROXY ${SECONDARY_GATEWAY_FX}:80; DIRECT";を返す
また、サブクラウド変数と共に
_FX
サフィックスを使用することもできます。たとえば、${GATEWAY.
<Subcloud>
.
<Zscaler cloud>
.net_FX}
や${SECONDARY.GATEWAY.
<Subcloud>
.
<Zscaler cloud>
.net_FX}
です。
閉じる_FX
サフィックスは、HTTPヘッダー (useragent, x-forwarded-対象, および z-クライアント) に応じて、複数の VIP 間での負荷分散を提供します。この変数は、z-クライアント のID がユーザーごとに異なる対象であるため、クライアント Zscaler Client Connectorのみ対象として有効です。 負荷分散 対象 を NON_ZCCZscaler Client Connector クライアントを実装するために、お客様は ゲートウェイ インデックス トークンを使用できます。 詳細は、, Forwarded トラフィック PAC 負荷分散対象 を参照してください。
- ゲートウェイホスト変数
お客様は、
${ゲートウェイ}
変数を使用して、代わりにホスト名/ IPアドレスに解決できます。 対象 Kerberos 認証 および IPv6 トラフィックの場合、これは必須の構成です。Zscalerでは、この変数を使用し、ホスト名を解決してIPv6トラフィックをZIAに転送することを義務付けています。また、ZIA管理ポータルで組織とロケーションに対してIPv6サポートが有効になっていることを確認する必要があります。
PACファイルに
${GATEWAY_HOST}
変数を含めるには、次の構文を使用します。"PROXY ${GATEWAY_HOST}:80; PROXY ${SECONDARY_GATEWAY_HOST}:80; DIRECT";を返す
組織でサブクラウドを使用している場合は、変数
${GATEWAY.
<Subcloud>
.
<Zscaler cloud>
.net_HOST}
や${SECONDARY.GATEWAY.
<Subcloud>
.
<Zscaler cloud>
.net_HOST}
を使用します。例えば:return "PROXY ${GATEWAY.<Subcloud>.<Zscaler cloud>.net_HOST}:80; PROXY ${SECONDARY.GATEWAY.<Subcloud>.<Zscaler cloud>.net_HOST}:80; DIRECT";
組織に1つのエグレスIPアドレスの背後に多数のユーザーがいる場合は、複数のゲートウェイ ホストから選択して負荷を分散するようにPACファイルを構成できます。これを行うには、次の変数を使用します。これを行うには、次の変数を使用します。
負荷分散PAC変数は、トンネル以外のトラフィック用に設計されています。トンネル(GRE/IPSec)トラフィックの負荷分散にこれらの変数は必要ありません。
- ゲートウェイホストインデックストークン
Zscalerでは、分散の目的でユーザーをデータ センター内の複数のゲートウェイ ホストに分散させる場合にこの方法をお勧めします。
PACサーバーのPACファイルの
${GATEWAY_HOST}
変数にサフィックス_F0
から_F7
までを追加して、8つの変数を通じて正常なゲートウェイ ホストを返します。たとえば、${GATEWAY_HOST_F0}
は利用可能な最初の正常なIPアドレスに対応し、${GATEWAY_HOST_F1}
は2番目の正常なIPアドレスに対応する、などです。PACファイルに
${GATEWAY_HOST_F0}
変数を含めるには、次の構文を使用します。"PROXY ${GATEWAY_HOST_F0}:80; PROXY ${SECONDARY_GATEWAY_HOST_F0}:80; DIRECT";を返します
データ センターの正常なゲートウェイが8つ未満の場合、PACサーバーは利用可能な正常なゲートウェイ ホストをラウンドロビン方式で8つの変数すべてに割り当てます。
組織でサブクラウドを使用している場合は、サブクラウド変数と共にゲートウェイ ホスト インデックス トークン(
閉じる_F0
サフィックスを通じて_F7
)を使用できます。例えば、${GATEWAY.
<Subcloud>
.
<Zscaler cloud>
.net_HOST_F1}
や${SECONDARY.GATEWAY.
<Subcloud>
.
<Zscaler cloud>
.net_HOST_F1}
です。 - ダイナミックゲートウェイホストトークン
PACサーバー用PACファイル内の
${GATEWAY_HOST
}変数にサフィックス_FX
を使用して、クライアント フィンガープリントに基づいてゲートウェイ ホストを動的に発行します(つまり、単一の出力IPアドレスから来るすべてのユーザーには、正常なゲートウェイIPアドレスのプールからIPアドレスが与えられます)。フィンガープリントは、1つのデバイスが同じゲートウェイ ホストへのセッションを続行するようにするために使用されます。PACファイルに
${GATEWAY_HOST_FX}
変数を含めるには、次の構文を使用します。"PROXY ${GATEWAY_HOST_FX}:80; PROXY ${SECONDARY_GATEWAY_HOST_FX}:80; DIRECT";を返します
また、サブクラウド変数と共に
_FX
サフィックスを使用することもできます。たとえば、${GATEWAY.
<Subcloud>
.
<Zscaler cloud>
.net_HOST_FX}
や${SECONDARY.GATEWAY.
<Subcloud>
.
<Zscaler cloud>
.net_HOST_FX}
です。
閉じる_FX
サフィックスは、HTTPヘッダー (useragent, x-forwarded-対象, および z-クライアント) に応じて、負荷分散 対象 複数 ゲートウェイ ホスト済みを提供します。この変数は、z-クライアント のID がユーザーごとに異なる対象であるため、クライアント Zscaler Client Connectorのみ対象として有効です。 負荷分散 対象 NON_ZCCZscaler Client Connector クライアントを実装するために、お客様は ゲートウェイ ホスト インデックス トークンを使用できます。 詳細は、, Forwarded トラフィック PAC 負荷分散対象 を参照してください。
- ゲートウェイホストインデックストークン
- ソースIP変数
${SRCIP}
変数を使用して、クライアントのパブリックIPアドレスを決定できます。例えば:var egressip ="${SRCIP}"; if (shExpMatch(egressip,"203.0.113.10")) { /* ユーザーはオフィスにいます */ "PROXY 10.84.0.188:80;DIRECT"; }を返します
閉じる - 国名変数
次の例に示すように、この
${COUNTRY}
変数を使用してクライアントの国を決定できます。var country = "${COUNTRY}"; if (shExpMatch(country,"Canada")) { /* User is in Canada */ return "PROXY ${COUNTRY_GATEWAY}:80;DIRECT"; }
${COUNTRY}
変数は、GeoNamesにリストされている国に対応しています。ユーザーのIPアドレスは、これらのカテゴリーに該当しない場合があります。次のサンプルに示すように、
${COUNTRY}
変数を使用して特定の国からアクセスした場合、特定のURLに例外を設定することもできます。var country ="${COUNTRY}"; if (shExpMatch(country,"Canada")&& ((dnsDomainIs(host,"*.oracleindustry.com")) )||| (dnsDomainIs(host,"cegbuger-p6.oracleindustry.com")))){ return"PROXY ${COUNTRY_GATEWAY}:80;DIRECT"; }.
閉じる - カントリーゲートウェイ変数
お客様は、
${国*}
変数と${国*}
変数を使用して、クライアントの国で閉じる ZIA Public Service Edgeを決定できます。 例:"PROXY ${COUNTRY_GATEWAY}:80; PROXY ${COUNTRY_SECONDARY_GATEWAY}:80";を返します。
お客様の国に「いいえ ZIA Public Service Edge 構成済み」がある場合、${国*} 変数は ${ゲートウェイ} 変数と同様に動作します。
組織でサブクラウドを使用している場合は、変数
${COUNTRY_GATEWAY.
<Subcloud>
.
<Zscaler cloud>
.net}
や${COUNTRY_SECONDARY.GATEWAY.
<Subcloud>
.
<Zscaler cloud>
.net}
を使用します。例えば:return "PROXY ${COUNTRY_GATEWAY.<Subcloud>.<Zscaler cloud>.net}:80; PROXY ${COUNTRY_SECONDARY.GATEWAY.<Subcloud>.<Zscaler cloud>.net}:80; DIRECT";
これにより、複数 ZIA パブリック サービス エッジ または country* の近くにあるクライアントが、別の開始 one 閉じると、トラフィックが間違った ZIA パブリック サービス エッジに転送されるのを防ぐことができます。
組織に1つの出力IPアドレスの背後に多数のユーザーがいる場合は、負荷を分散するために、国内の複数のゲートウェイIPアドレスから選択するようにPACファイルを構成できます。これを行うには、次の変数を使用します。
負荷分散PAC変数は、トンネル以外のトラフィック用に設計されています。トンネル(GRE/IPSec)トラフィックの負荷分散にこれらの変数は必要ありません。
- カントリーゲートウェイインデックストークン
Zscalerでは、負荷分散の目的で、ユーザーをデータ センター内の複数のゲートウェイIPアドレスに分散させる場合に、この方法をお勧めします。
PACサーバー用のPACファイル内の
${COUNTRY_GATEWAY_HOST}
変数にサフィックス_F0
から_F7
までを追加して、8つの変数を通じて国内の正常なゲートウェイIPアドレスを返します。例えば、${COUNTRY_GATEWAY_F0}
変数は利用可能な最初の正常なIPアドレスに対応し、${COUNTRY_GATEWAY_F1}
変数は2番目の正常なIPアドレスに対応します。PACファイルに
${COUNTRY_GATEWAY_F0}
変数を含めるには、次の構文を使用します。"PROXY ${COUNTRY_GATEWAY_F0}:80; PROXY ${COUNTRY_SECONDARY_GATEWAY_F0}:80; DIRECT";を返します
データ センターの正常なゲートウェイが8つ未満の場合、PACサーバーはラウンドロビン方式で使用可能な正常なゲートウェイIPアドレスを8つの変数すべてに割り当てます。
組織でサブクラウドを使用している場合は、サブクラウド変数と共に国ゲートウェイ ホストインデックス トークン(
閉じる_F0
サフィックスを使用して_F7
)を使用できます。たとえば、${COUNTRY_GATEWAY.
<Subcloud>
.
<Zscaler cloud>
.net_F1}
や${COUNTRY_SECONDARY.GATEWAY.
<Subcloud>
.
<Zscaler cloud>
.net_F1}
です。 - ダイナミックカントリーゲートウェイトークン
PACサーバー用PACファイル内の
${COUNTRY_GATEWAY}
変数にサフィックス_FX
を使用して、クライアント フィンガープリントに基づいて国内のゲートウェイIPアドレスを動的に発行します(つまり、単一の出力IPアドレスから来るすべてのユーザーには、正常なゲートウェイIPアドレスのプールからIPアドレスが与えられます)。フィンガープリントは、単一のデバイスが同じゲートウェイIPアドレスに対してセッションを継続することを保証するために使用されます。PACファイルに
${COUNTRY_GATEWAY_FX}
変数を含めるには、次の構文を使用します。"PROXY ${COUNTRY_GATEWAY_FX}:80; PROXY ${COUNTRY_SECONDARY_GATEWAY_FX}:80; DIRECT";を返します
また、サブクラウド変数と共に
_FX
サフィックスを使用することもできます。たとえば、${COUNTRY_GATEWAY.
<Subcloud>
.
<Zscaler cloud>
.net_FX}
や${COUNTRY_SECONDARY.GATEWAY.
<Subcloud>
.
<Zscaler cloud>
.net_FX}
です。_FX サフィックスは、 ヘッダー (useragent, x-forwarded-対象, および z-クライアント)
閉じるに応じて、負荷分散 対象 複数 ゲートウェイIP アドレスを提供します。HTTPこの変数は、z-クライアント のID がユーザーごとに異なる対象であるため、クライアント Zscaler Client Connectorのみ対象として有効です。 NON_ZCCZscaler Client Connector クライアントの実装には、 国 ゲートウェイ インデックス トークンを使用できます。 詳細は、, Forwarded トラフィック PAC 負荷分散対象 を参照してください。
- カントリーゲートウェイインデックストークン
- 国別ゲートウェイホスト変数
${COUNTRY_GATEWAY_HOST}
変数を使用して、IPアドレスの代わりにホスト名を使用して、クライアントの国で最も近いZIA Public Service Edgeを決定できます。Zscalerでは、この設定をKerberos認証にのみお勧めします。
PACファイルに
${COUNTRY_GATEWAY_HOST}
変数を含めるには、次の構文を使用します。return "PROXY ${COUNTRY_GATEWAY_HOST}:80; PROXY ${COUNTRY_SECONDARY_GATEWAY_HOST}:80; DIRECT";
お客様の国に「いいえ ZIA Public Service Edge 構成済み」がある場合、${国*} 変数は ${ゲートウェイ} 変数と同様に動作します。
組織でサブクラウドを使用している場合は、変数
${COUNTRY_GATEWAY.
<Subcloud>
.
<Zscaler cloud>
.net_HOST}
や${COUNTRY_SECONDARY.GATEWAY.
<Subcloud>
.
<Zscaler cloud>
.net_HOST}
を使用します。例えば:"PROXY ${COUNTRY_GATEWAY.<サブクラウド> .<Zscaler cloud> .net_HOST}:80; PROXY ${COUNTRY_SECONDARY.GATEWAY.<サブクラウド> .<Zscalerクラウド> .net_HOST}:80; DIRECT";を返します
組織に1つの出力IPアドレスの背後に多数のユーザーがいる場合は、負荷を分散するために、国内の複数のゲートウェイ ホストから選択するようにPACファイルを構成できます。これを行うには、次の変数を使用します。
負荷分散PAC変数は、トンネル以外のトラフィック用に設計されています。トンネル(GRE/IPSec)トラフィックの負荷分散にこれらの変数は必要ありません。
- カントリーゲートウェイホストインデックストークン
Zscalerでは、分散の目的でユーザーをデータ センター内の複数のゲートウェイ ホストに分散させる場合にこの方法をお勧めします。
PACサーバー用PACファイル内の
${COUNTRY_GATEWAY_HOST}
変数にサフィックス_F0
から_F7
までを追加して、8つの変数を通じて国内の正常なゲートウェイ ホストを返します。例えば、${COUNTRY_GATEWAY_HOST_F0}
変数は利用可能な最初の正常なホストに対応し、${COUNTRY_GATEWAY_HOST_F1}
変数は2番目の正常なホストに対応します。PACファイルに変数を含めるには、
${COUNTRY_GATEWAY_HOST_F0}
次の構文を使用します。"PROXY ${COUNTRY_GATEWAY_HOST_F0}:80; PROXY ${COUNTRY_SECONDARY_GATEWAY_HOST_F0}:80; DIRECT";を返します
データ センターの正常なゲートウェイが8つ未満の場合、PACサーバーは利用可能な正常なゲートウェイ ホストをラウンドロビン方式で8つの変数すべてに割り当てます。
組織でサブクラウドを使用している場合は、サブクラウド変数と共に国ゲートウェイ ホストインデックス トークン(
閉じる_F0
サフィックスを使用して_F7
)を使用できます。たとえば、${COUNTRY_GATEWAY.
<Subcloud>
.
<Zscaler cloud>
.net_HOST_F1}
や${COUNTRY_SECONDARY.GATEWAY.
<Subcloud>
.
<Zscaler cloud>
.net_HOST_F1}
です。 - ダイナミックカントリーゲートウェイホストトークン
PACファイル内の
${COUNTRY_GATEWAY_HOST}
変数にサフィックス、_FX
を使用して、クライアント フィンガープリントに基づいて国内のゲートウェイ ホストを動的に発行します。つまり、単一のエグレスIPアドレスから来るすべてのユーザーには、正常なゲートウェイ ホストのプールからゲートウェイ ホストが与えられます。フィンガープリントは、1つだけのデバイスが同じゲートウェイ ホストへのセッションを継続することを保証するために使用されます。PACファイルに
${COUNTRY_GATEWAY_HOST_FX}
変数を含めるには、次の構文を使用します。"PROXY ${COUNTRY_GATEWAY_HOST_FX}:80; PROXY ${COUNTRY_SECONDARY_GATEWAY_HOST_FX}:80; DIRECT";を返します
また、サブクラウド変数と共に
_FX
サフィックスを使用することもできます。たとえば、${COUNTRY_GATEWAY.
<Subcloud>
.
<Zscaler cloud>
.net_HOST_FX}
や${COUNTRY_SECONDARY.GATEWAY.
<Subcloud>
.
<Zscaler cloud>
.net_HOST_FX}
です。
閉じる_FX
サフィックスは、HTTPヘッダー (useragent, x-forwarded-対象, および z-クライアント) に応じて、負荷分散 対象 複数 ゲートウェイ ホスト済みを提供します。この変数は、z-クライアント のID がユーザーごとに異なる対象であるため、クライアント Zscaler Client Connectorのみ対象として有効です。 負荷分散 対象 NON_ZCCZscaler Client Connector クライアントを実装するために、お客様は 国 ゲートウェイ ホスト インデックス トークンを使用できます。 詳細は、, Forwarded トラフィック PAC 負荷分散対象 を参照してください。
- カントリーゲートウェイホストインデックストークン
- カスタム ポート変数
この変数を使用するには、Zscaler Client Connector Windowsプロファイルのポリシー ルールで[Z-Tunnel 1.0用のPACから優先ポートを使用する]または[Z-Tunnel 2.0用のPACから優先ポートを使用する]のオプションを有効にします。
この
${ZS_CUSTOM_PORT}
変数を使用して、国とZ-Tunnelのバージョンに基づいて適切なカスタム ポートを返すことができます。たとえば、中国にいる場合、変数はZ-Tunnel 2.0要求の場合はポート9401に置き換えられ、Z-Tunnel 1.0要求の場合はポート9400に置き換えられます。ポートは変更される可能性があります。ただし、中国以外の国にいる場合、変数はZ-Tunnel 2.0およびZ-Tunnel 1.0要求のポート443に置き換えられます。
次の構文を使用して、
${ZS_CUSTOM_PORT}
変数をPACファイルにインクルードします。"PROXY ${GATEWAY_FX}:${ZS_CUSTOM_PORT};PROXY ${SECONDARY_GATEWAY_FX}:${ZS_CUSTOM_PORT};DIRECT";
この変数は、Zscaler Client Connectorバージョン4.2.0以降を使用している場合にのみ適用されます。
閉じる - Zscaler Client Connectorの信頼できるネットワーク変数
${TRUSTED_NETWORK}
変数を使用して、Zscaler Client Connectorの現在のネットワーク タイプを判別できます。対応しているネットワーク タイプに対応する値は、ON_TRUSTED
、OFF_TRUSTED
、VPN_TRUSTED
およびSPLIT_VPN_TRUSTED
です。これらの値は、変数がAPPプロファイルPACファイルで使用されている場合にのみ取得されます。利用可能なネットワーク タイプがない場合、または変数が転送プロファイルまたはプロキシPACファイルで使用されている場合、変数の値は
NOT_AVAILABLE
になります。例:
var network = "${TRUSTED_NETWORK}"; if (network == "ON_TRUSTED") return "PROXY ${GATEWAY_FX}:12345; PROXY ${SECONDARY_GATEWAY_FX}:12345; DIRECT"; else if (network == "OFF_TRUSTED") return "PROXY ${GATEWAY_FX}:${ZS_CUSTOM_PORT}; PROXY ${SECONDARY_GATEWAY_FX}:${ZS_CUSTOM_PORT}; DIRECT";
この変数は、Zscaler Client Connectorバージョン4.2.0以降を使用している場合にのみ適用されます。
閉じる - Zscaler Client Connector Z-Tunnel 2.0変数
${ZT2_REQUEST}
変数を使用して、PACファイルが要求されているZ-Tunnelバージョンを決定できます。この変数は、リクエストがZ-Tunnel 2.0に対する場合は値true
を取り、リクエストがZ-Tunnel 1.0に対する場合は値false
を取ります。この例では、ポート9981がZ-Tunnel 2.0要求に使用され、ポート9980がZ-Tunnel 1.0要求に使用されます。
var tunnel2 = "${ZT2_REQUEST}"; if (tunnel2 == "true") return "PROXY ${GATEWAY_FX}:9981; PROXY ${SECONDARY_GATEWAY_FX}:9981; DIRECT"; else return "PROXY ${GATEWAY_FX}:9980; PROXY ${SECONDARY_GATEWAY_FX}:9980; DIRECT";
閉じる
Zscaler固有の変数は、PACファイルをZscalerクラウド上でホストしている場合にのみ適用できます。
閉じる - ゲートウェイ変数
セカンダリデータセンターへの手動フェイルオーバー
プライマリー データ センターがダウンすると、セカンダリー データ センターへのフェイルオーバーが自動的に行われます。ただし、ISPの問題、レイテンシの問題など、他の理由でプライマリデータセンターが使用できない場合は、PACファイルの構文を次のように変更して、セカンダリデータセンターに手動でフェールオーバーします。
return "PROXY ${SECONDARY_GATEWAY_FX}:80; PROXY ${GATEWAY_FX}:80; DIRECT";
組織でサブクラウドを使用している場合は、変数${GATEWAY.
<Subcloud>
.
<Zscaler Cloud>
.net}
や ${SECONDARY.GATEWAY.
<Subcloud>
.
<Zscaler Cloud>
.net}
を使用します。例えば:
return "PROXY ${SECONDARY.GATEWAY.<Subcloud>.<Zscaler Cloud>.net_FX}:80; PROXY ${GATEWAY.<Subcloud>.<Zscaler Cloud>.net_FX}:80; DIRECT";
- サンプルPACファイルを参照してください。
function FindProxyForURL(url, host) { // //Exclude FTP from proxy // if (url.substring(0, 4) == "ftp:") { return "DIRECT"; } // //Bypass proxy for internal hosts // if (isInNet(host, "0.0.0.0", "255.0.0.0")|| isInNet(host, "10.0.0.0", "255.0.0.0") || isInNet(host, "127.0.0.0", "255.0.0.0") || isInNet(host, "169.254.0.0", "255.255.0.0") || isInNet(host, "172.16.0.0", "255.240.0.0") || isInNet(host, "192.0.2.0", "255.255.255.0")|| isInNet(host, "64.206.157.136", "255.255.255.255")){ return "DIRECT"; } // //Bypass proxy for this server // if (dnsDomainIs(host, "mail.domain.com")) { return "DIRECT"; } return "PROXY ${SECONDARY_GATEWAY_FX}:9400; PROXY ${GATEWAY_FX}:9400; DIRECT"; }
閉じる