ジオロケーションデータベースを使用してユーザーの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)] [-bypassSafetyCheck (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>] [-pattern <expression> | -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