プロキシプロトコル
-
元のクライアント IP アドレスの学習
-
Web サイトの言語を選択する
-
選択した IP アドレスの一覧表示をブロックする
-
統計のロギングと収集。
-
フォワード。NetScalerはクライアントの詳細をバックエンドサーバーに転送します。NetScaler 14.1-12.xリリース以降、仮想サーバーとサービスでプロキシプロトコル機能が有効になっている場合、NetScalerはプロキシプロトコルV2で送信されたTLV(Type Length Value)情報をクライアントの詳細とともにバックエンドサーバーに転送します。
-
剥ぎ取られた。NetScalerは、ログ用にクライアントの詳細を保存します。また、プロキシプロトコルがバックエンドサーバーでサポートされていない場合は、書き換えポリシー設定を使用してクライアントの詳細をサーバーに送信します
| プロキシプロトコルモード | LB 仮想サーバー | サービス |
|---|---|---|
| Ins | 無効 | 有効 |
| 進 | 有効 | 有効 |
| Stripped | 有効 | 無効 |
制限事項
NetScalerアプライアンスでのプロキシプロトコルのしくみ
挿入操作
-
NetScalerインスタンスでは、ネットプロファイルでプロキシプロトコルを有効にし、サービスにバインドする必要があります。
-
挿入操作では、NetScalerはクライアント接続の詳細を含むプロキシヘッダーを追加し、バックエンドサーバーに転送します。
-
送信側では、アプライアンスは CLI 設定に基づいてプロキシプロトコルのバージョンを決定します。
フォワード操作
-
クライアントは、プロキシヘッダーとともにリクエストをNetScalerに送信します。アプライアンスはバージョンを動的に識別します。
-
NetScalerでは、これはフォワードオペレーションです。プロキシプロトコルは、負荷分散仮想サーバーまたはコンテンツスイッチング仮想サーバーで有効になり、サービスでは有効になります。アプライアンスは、プロキシプロトコルV2のTLVとともにプロキシヘッダーを受信し、ヘッダーとTLVをバックエンドサーバーに転送します。
-
プロキシヘッダーの詳細が無効な形式の場合、アプライアンスは接続をリセットします。
-
送信側では、アプライアンスは CLI 設定に基づいてプロキシプロトコルのバージョンを決定します。
操作を剥ぎ取った
-
クライアントは、プロキシヘッダーとともに要求をNetScalerアプライアンスに送信します。
-
NetScalerアプライアンスでは、ストリップ操作の場合、アプライアンスはプロキシプロトコルから取得したクライアント情報を転送し、書き換えポリシー式を使用してHTTPヘッダーに挿入します。
-
送信元 IP アドレス、宛先 IP アドレス、送信元ポート、宛先ポートなどのクライアントの詳細は、書き換えポリシー式を使用して HTTP ヘッダーに追加されます。書き換えポリシーによって式が評価され、「true」の場合、対応する書き換えポリシーアクションがトリガーされます。クライアントの詳細は HTTP ヘッダーでバックエンドサーバーに転送されます。
-
プロキシヘッダーの詳細が無効な形式の場合、アプライアンスは接続をリセットします。
プロキシプロトコルのバージョン形式
-
プロキシプロトコルバージョン1形式
PROXY TCP4/TCP6/UNKNOWN <SRC IP> <DST IP> <SRC PORT> <DST PORT>-
PROXY-> プロキシヘッダーバージョン -1 の一意の文字列形式。
-
プロトコル TCP over IPv4 および TCP over IPv6 をサポートします。残りのプロトコルでは、これは UNKNOWN です。
-
SRC IP:パケットの送信元 IP(元のクライアント IP)アドレス。
-
DST IP:パケットの宛先 IP アドレス。
-
SRC ポート:パケットの送信元ポート。
-
DST ポート:パケットの宛先ポート。
-
-
プロキシプロトコルバージョン2形式
0D 0A 0D 0A 00 0D 0A 51 55 49 54 0A <13th byte> <14th byte> <15-16th byte> <17th byte onwards>-
D 0A 0D 0A 00 0D 0A 51 55 49 54 0A-> プロキシヘッダバージョン-2の一意のバイナリ文字列。
-
プロトコル TCP over IPv4 および TCP over IPv6 をサポートします。残りのプロトコルでは、これは UNKNOWN です。
-
13 バイト:プロトコルのバージョンとコマンド。
-
14 バイト:アドレスとプロトコルファミリ。
-
15-16 バイト — ネットワークオーダーのアドレス長。
-
17 バイト目以降:ネットワーク順に存在するアドレス情報(src IP、DST IP、src ポート、dst ポート)。
-
レスポンダーポリシーインフラストラクチャ表現サポート
-
CLIENT.PROXY.SRCIP_STR
-
CLIENT.PROXY.DSTIP_STR
-
CLIENT.PROXY.SRCPORT
-
CLIENT.PROXY.DSTPORT
-
CLIENT.PROXY.ETHERTYPE
NetScalerアプライアンスでプロキシプロトコルを構成する
-
プロキシプロトコルをグローバルとして有効にします。
-
挿入操作のプロキシプロトコルを設定します。
-
転送操作用のプロキシプロトコルを設定します。
-
ストリップ操作のプロキシプロトコルを設定します。
プロキシプロトコルをグローバルとして有効にする
set ns param –proxyProtocol ENABLED
挿入操作用のプロキシプロトコルの設定
負荷分散仮想サーバーのプロキシプロトコルを無効にしたネットプロファイルを追加する
add netprofile <name> -proxyProtocol ENABLED/DISABLED> -proxyprotocoltxversion <V1/V2>
Add netprofile proxyprofile-1 –proxyProtocol DISABLED –proxyprotocoltxversion V1
サービスに対してプロキシプロトコルが有効になっているネットプロファイルを追加する
add netprofile <name> -proxyProtocol ENABLED/DISABLED> -proxyprotocoltxversion <V1/V2>
add netprofile proxyprofile-2 –proxyProtocol ENABLED –proxyprotocoltxversion V1
プロキシレイヤーにNetScalerアプライアンスの負荷分散仮想サーバーを追加します
add lb vserver <name>@ <serviceType> [(<IPAddress>@ <port>)]
add lb vserver lbvserver-1 http 1.1.1.1 80
プロキシレイヤーにNetScalerアプライアンスのHTTPサービスを追加します
add service <name>@ (<IP>@ | <serverName>@) <serviceType> <port>
Add service http-service-1 2.2.2.1 http 80
NetScalerアプライアンスで負荷分散仮想サーバーを使用してネットプロファイルを設定する
set lb vserver <vserver name> -netprofile <name>
set lb vserver lbvserver-1 –netprofile proxyProfile-1
NetScalerアプライアンスでHTTPサービスを使用してネットプロファイルを設定する
set service <service name> –netprofile <name>
set service http-service-1 –netprofile proxyProfile-2
負荷分散仮想サーバーをサービスにバインドする
bind lb vserver <vserver name> <service name>
bind lb vserver lbvserver-1 http-service-1
転送操作用のプロキシプロトコルの設定
負荷分散仮想サーバーでプロキシプロトコルが有効になっているネットプロファイルを追加する
add netprofile <name> -proxyProtocol ENABLED/DISABLED> -proxyprotocoltxversion <V1/V2>
add netprofile proxyprofile-3 –proxyProtocol ENABLED –proxyprotocoltxversion V1
サービスに対してプロキシプロトコルが有効になっているネットプロファイルを追加する
add netprofile <name> -proxyProtocol ENABLED/DISABLED> -proxyprotocoltxversion <V1/V2>
add netprofile proxyprofile-4 –proxyProtocol ENABLED –proxyprotocoltxversion V1
プロキシレイヤーにNetScalerアプライアンスの負荷分散仮想サーバーを追加します
add lb vserver <name>@ <serviceType> [(<IPAddress>@ <port>)]
add lb vserver lbvserver-2 http 2.2.2.2 80
プロキシレイヤーにNetScalerアプライアンスのHTTPサービスを追加します
add service <name>@ (<IP>@ | <serverName>@) <serviceType> <port>
Add service http-service-2 3.3.3.1 http 80
NetScalerアプライアンスで負荷分散仮想サーバーを使用してネットプロファイルを設定する
set lb vserver <vserver name> -netprofile <name>
set lb vserver lbvserver-2 –netprofile proxyProfile-3
NetScalerアプライアンスでHTTPサービスを使用してネットプロファイルを設定する
set service <service name> –netprofile <name>
set service http-service-2 –netprofile proxyProfile-4
負荷分散仮想サーバーをサービスにバインドする
bind lb vserver <vserver name> <service name>
bind lb vserver lbvserver-2 http-service-2
ストリップ操作用のプロキシプロトコルの設定
仮想サーバーでプロキシプロトコルが有効になっているネットプロファイルを追加する
add netprofile <name> -proxyProtocol ENABLED> -proxyprotocoltxversion <V1/V2>
add netprofile proxyprofile-5 –proxyProtocol ENABLED –proxyprotocoltxversion V1
NetScalerアプライアンスの負荷分散またはコンテンツスイッチング仮想サーバーをプロキシレイヤーに追加する
add lb vserver <name>@ <serviceType> [(<IPAddress>@ <port>)]
add lb vserver lbvserver-3 http 2.2.2.2 80
プロキシレイヤーにNetScalerアプライアンスのHTTPサービスを追加します
add service <name>@ (<IP>@ | <serverName>@) <serviceType> <port>
Add service http-service-3 3.3.3.1 http 80
NetScalerアプライアンスの負荷分散またはコンテンツスイッチング仮想サーバーを使用したネットプロファイルの設定
set lb vserver <vserver name> -netprofile <name>
set lb vserver lbvserver-3 –netprofile proxyProfile-5
負荷分散仮想サーバーをサービスにバインドする
bind lb vserver <vserver name> <service name>
bind lb vserver lbvserver-3 http-service-3
CLI を使用してプロキシプロトコルのレスポンダーポリシーインフラストラクチャ表現を設定します
add responder policy <name> <expression> <action>
> add responder policy resppol_proxy_srcip "CLIENT.PROXY.SRCIP_STR.EQ("10.106.26.83")" RESET
Done
bind lb vserver <name> -policyname <string> -priority <positive_integer> -gotoPriorityExpression <expression> -type <type>
> bind lb vserver lb_tcp1 -policyName resppol_proxy_srcip -priority 10 -gotoPriorityExpression END -type REQUEST
Done
エンドツーエンド構成の例
> add ns tcpProfile tcp-proxy-profile -tcpmode ENDPOINT
> add netprofile net_proxyv1 -MBF DISABLED -proxyProtocol
ENABLED
> enable ns mode l2
> enable ns mode l3 usnip
> add ns ip 10.106.26.146 255.255.255.0 -type SNIP
Done
> add ns ip 10.106.26.144 255.255.255.0 -type SNIP
Done
> add lb vserver lb_tcp1 TCP 10.106.26.141 80
> add service s1 10.106.26.82 TCP 8080
> bind lb vserver lb_tcp1 s1
> set lb vserver lb_tcp1 -tcpProfileName tcp_proxy -netProfile net_proxyv1
> set ns param -proxyProtocol ENABLED
> add responder policy resppol_proxy_srcip "CLIENT.PROXY.SRCIP_STR.EQ("10.106.26.83")" RESET
> bind lb vserver lb_tcp1 -policyName resppol_proxy_srcip -priority 10 -gotoPriorityExpression END -type REQUEST
Done
NetScaler GUIを使用してプロキシプロトコルを構成する
-
「 **OK」をクリックして「**閉じる」をクリックします。
-
-
名前 :ネットプロファイルの名前。
-
プロキシプロトコル:負荷分散仮想サーバーのプロキシプロトコルを有効または無効にします。
-
プロキシプロトコル TX バージョン:受信データ形式に基づいて、プロキシプロトコルバージョンを V1 または V2 に設定します。
-
-
[OK] をクリックします。
-
ネットプロファイルを選択し、 **「OK」**をクリックします。
-
[完了] をクリックします。
-
ネットプロファイルを選択し、 **「OK」**をクリックします。
-
[完了] をクリックします。