位置情報データベースを使用して、ユーザーIPアドレスから場所の詳細を取得する
-
クライアント要求をバックエンドサーバーに送信するときに、ユーザーの場所の詳細 (国、都市情報など) を含む HTTP ヘッダーを挿入します。
-
無効なユーザーの HTML ページ応答に国名を追加します。
位置情報関数を使用したユーザーの位置情報の取得
-
ユーザーは、特定の地理的場所からクライアント要求を送信します。
-
Citrix ADCアプライアンスは、クライアント要求からユーザーIPアドレスを検索し、地理的な場所の詳細を取得します。詳細には、大陸、国、地域、都市、ISP、組織、または地理位置情報データベースのカスタム詳細が含まれます。
-
場所の詳細が取得されると、アプライアンスはレスポンダポリシーまたは書き換えポリシーのいずれかを使用して要求を評価します。
-
書き換えポリシーでは、アプライアンスは地理的位置の詳細を含むヘッダーを追加し、バックエンドサーバーに送信します。たとえば、国情報を含むカスタム HTTP ヘッダーを挿入します。
-
レスポンダポリシーでは、アプライアンスは HTTP 要求を評価し、ポリシー評価に基づいて、ユーザへのアクセスを許可するか、またはユーザをエラーページにリダイレクトします。これは、アプリケーションにアクセスしているリージョンがアクセスできないことを示します。
位置情報データベースのセットアップ
ジオロケーション関数
| ジオロケーション機能 | 例 |
|---|---|
| CLIENT.IP.SRC.LOCATION | Asia.In.Karnataka.Bangalore |
| CLIENT.IP.SRC.LOCATION_GET (1) .LOCATION_LONG | India |
| CLIENT.IP.SRC.LOCATION (3) | Asia.In.Karnataka |
| CLIENT.IP.SRC.LAT_LONG | 12,77 |
| CLIENT.IPV6.SRC.LOCATION | North America.US.California.Santa Clara.Verizon.Citrix |
| CLIENT.IPV6.SRC.LOCATION(3) | North America.US.California |
| CLIENT.IPV6.SRC.LOCATION_GET (1) .LOCATION_LONG | 米国 |
| CLIENT.IPV6.SRC.LOCATION.GET (3) | California |
| CLIENT.IPV6.SRC.LAT_LONG | 36, -119 |
位置情報機能の設定
負荷分散、レスポンダー、書き換え機能を有効にする
enable ns feature loadbalancing rewrite responder
ユースケース 1: 無効なユーザーを地理的位置の外部にリダイレクトするための位置情報機能の設定
-
応答側アクションの追加
-
レスポンダーポリシーの追加
-
レスポンダーポリシーを負荷分散サーバーにバインドする
応答側アクションの追加
add responder action <name> <type> (<target> | <htmlpage>) [-comment <string>] [-responseStatusCode <positive_integer>][-reasonPhrase <string>]
add responder action responder_act respondwith "HTTP.REQ.VERSION + " 304 Requested Page not allowed in your country - " + CLIENT.IP.SRC.LOCATION.GET (1).LOCATION_LONG + "\r\n""
監査ログメッセージアクションの追加
newnslog形式の両方で、さまざまなログレベルでメッセージをログに記録するように監査メッセージアクションを設定できます。監査メッセージアクションでは、式を使用して監査メッセージの形式を指定します。 コマンドラインインターフェイスを使用して監査メッセージアクションを作成するには
add audit messageaction <name> <logLevel> <stringBuilderExpr> [-logtoNewnslog (YES|NO)]
add audit messageaction msg1 DEBUG ""Request Location: "+CLIENT.IP.SRC.LOCATION"
レスポンダーポリシーの追加
add responder policy <name> <rule> <action> [<undefAction>] [-comment <string>] [-logAction <string>] [-appflowAction <string>]
add responder policy responder_pol CLIENT.IP.SRC.MATCHES_LOCATION("Asia.India.\*.\*.\*.\*") responder_act -logaction msg1
レスポンダーポリシーを負荷分散サーバーにバインドする
bind lb vserver <vserver name> -policyName < policy_name > -priority <> -type <L7InlineREQUEST | L4Inline-REQUEST>
bind lb vserver http_vserver -policyName responder_pol -priority 100 -type REQUEST
ユースケース 2: バックエンドが応答するための場所の詳細を含む新しい HTTP ヘッダーを挿入するジオロケーション関数の設定
-
書き換えアクションを追加
-
書き換えポリシーを追加する
-
リライト・ポリシーをロード・バランシングにバインドする
書き換えアクションを追加
add rewrite action <name> <type> <target> [<stringBuilderExpr>] [-search <expression>] [-refineSearch <string>][-comment <string>]
add rewrite action rewrite_act insert_http_header "User_location" CLIENT.IP.SRC.LOCATION
書き換えポリシーを追加する
add rewrite policy <name> <rule> <action> [<undefAction>] [-comment <string>] [-logAction <string>]
add rewrite policy rewrite_pol true rewrite_act -logaction log_act
リライト・ポリシーをロード・バランシングにバインドする
bind lb vserver <vserver name> -policyName < policy_name > -priority <> -type <L7InlineREQUEST | L4Inline-REQUEST>
bind lb vserver http_vserver -policyName rewrite_pol -priority 100 -type REQUEST
位置情報詳細のロギングに対する syslog サポート(オプション)
ユーザーの地理位置情報の詳細の出力
newnslogアクションを使用してアプライアンスに記録されます。
Asia.India.Karnataka.Banglore
07/23/2018:19:03:54 GMT Debug 0-PPE-0 : default REWRITE Message 22 0 : "Request Location: asia.in.karnataka.bangalore.\*.\*"
07/23/2018:19:23:55 GMT Debug 0-PPE-0 : default RESPONDER Message 32 0
Done