Citrix ADC

ロケーション修飾子の設定

静的近接の実装に使用されるデータベースには、GSLB サイトの場所があります。各ロケーションには IP アドレス範囲と、その範囲に対して最大 6 つの修飾子があります。修飾子はリテラル文字列で、実行時に所定の順序で比較されます。すべての場所には、少なくとも 1 つの修飾子が必要です。クオリファイアラベルは、ユーザ定義であるクオリファイア(コンテキスト)の意味を定義します。Citrix ADCには2つの組み込みコンテキストがあります。

地理的コンテキスト。次の修飾子ラベルがあります。

  • 予選1 —「大陸」
  • 予選2 —「国」
  • 修飾子 3 —「状態」
  • 予選4 —「都市」
  • 予選5 —「ISP」
  • 予選6 —「組織」

カスタムエントリ。次のクオリファイア・ラベルがあります。

  • 予選1 —「予選1」
  • クオリファイア 2 —「クオリファイア 2」
  • 予選3 —「予選3」
  • クオリファイア 4 —「クオリファイア 4」
  • クオリファイア 5 —「クオリファイア 5」
  • クオリファイア 6 —「クオリファイア 6」

地理コンテキストが [大陸] 修飾子なしで設定されている場合、[大陸] は [国] から派生します。組み込みの修飾子ラベルもコンテキストに基づいており、ラベルは変更できます。これらの修飾子ラベルは、静的近接性の決定に使用される IP アドレスでマッピングされる場所を指定します。

静的近接ベースの決定を実行するために、Citrix ADCアプライアンスは、ローカルDNSサーバーリゾルバーのIPアドレスから派生した場所属性(修飾子)を、参加サイトの場所属性と比較します。一致するサイトが 1 つだけの場合、アプライアンスはそのサイトの IP アドレスを返します。複数の一致がある場合、選択されたサイトは、一致する GSLB サイトでのラウンドロビンの結果です。一致するものがない場合、選択されたサイトは、すべての構成済みサイトでのラウンドロビンの結果です。修飾子がないサイトは一致と見なされます。

ロケーションベースのポリシー式の GEO 規則を使用すると、ワイルドカードの一致を確認できます。この機能は、ワイルドカード修飾子がワイルドカード以外の修飾子を含む他の修飾子と一致するかどうかをチェックします。ワイルドカード照合は、set locationParameterコマンドに追加されたmatchWildcardtoany属性を使用して実行されます。

matchWildcardtoany属性は、次の値に設定できます。

  • はい: ワイルドカード修飾子は他の修飾子と一致します。
  • いいえ: ワイルドカード修飾子は非ワイルドカード修飾子とは一致しませんが、他のワイルドカード修飾子と一致します。デフォルトのオプションは [ いいえ] です。
  • 式:式内のワイルドカード修飾子は 、LDNS ロケーションの任意の修飾子と一致しますが、LDNS ロケーションのワイルドカード修飾子は式の非ワイルドカード修飾子と一致しません。

例:

add dns policy policy1 "CLIENT.IP.SRC.MATCHES_LOCATION("Continent.country \*.\*.\*.\* \“)” <action>
<!--NeedCopy-->

CLI を使用してロケーションパラメータを設定するには

コマンドプロンプトで入力します。

set locationparameter -context <context> -q1label <string> [-q2label <string>] [-q3label <string>] [-q4label <string>] [-q5label <string>] [-q6label <string>] -matchWildcardtoany [Yes | No | Expression]
<!--NeedCopy-->

例:

set locationparameter -context custom -q1label asia -matchWildcardtoany Yes
<!--NeedCopy-->

GUI を使用してロケーションパラメータを設定するには

  1. [ トラフィック管理] > [GSLB] > [データベースとエントリ] に移動します。
  2. [ 設定] で、[ 位置パラメータの変更] をクリックします。
  3. [ロケーションパラメータの設定] ページで、ロケーションパラメータを設定します。

設定例 (CLI を使用)

次のネットワーク設定について考えてみます。

  • GSLB 仮想サーバー名:gv1
  • GSLB 仮想サーバー IP アドレス:1.1.1.2
  • GSLB サービス:gsvc1 が gv1 にバインドされました
  • ロケーションデータベースファイル名:sample.csv
  • 位置情報修飾子: 修飾子 1 と 2 が設定されます。残りはワイルドカードと一致するように設定されます。
    • 予選1 — アジア
    • 修飾子 2 — IR
    • 予選 3-*
    • 予選 4-*
    • 予選 5-*
    • 予選 6-*
  • DNS Policy:ポリシーの pol1 は、一致するパケットがあればパケットをドロップするように設定されています。

location パラメータを設定し、DNS ポリシーを次のように設定します。

set locationParameter -q2label Country_Code -q3label Subdivision_1_Name -q4label Subdivision_2_Name -q5label City

add locationFile "/var/netscaler/inbuilt_db/sample.csv"

add gslb vserver gv1 HTTP -backupLBMethod ROUNDROBIN -tolerance 0

add dns policy pol1 "CLIENT.IP.SRC.MATCHES_LOCATION("Asia.IR.\*.\*.\*.\*")||CLIENT.IP.SRC.MATCHES_LOCATION("Asia.SY.\*.\*.\*.\*")||CLIENT.IP.SRC.MATCHES_LOCATION("Asia.SD.\*.\*.\*.\*")||CLIENT.IP.SRC.MATCHES_LOCATION("Asia.KP.\*.\*.\*.\*")||CLIENT.IP.SRC.MATCHES_LOCATION("North America.CU.\*.\*.\*.\*")||CLIENT.IP.SRC.MATCHES_LOCATION("Europe.UA.Crimea.\*.\*.\*.\*")" dns_default_act_Drop

bind dns global pol1 1 -gotoPriorityExpression 65535 -type REQ_DEFAULT

add gslb service gsvc1 1.1.1.2 HTTP 80 -publicIP 1.1.1.2 -publicPort 80 -maxClient 0 -healthMonitor NO -siteName s1 -cltTimeout 180 -svrTimeout 360 -downStateFlush ENABLED

bind gslb vserver gv1 -serviceName gsvc1

bind gslb vserver gv1 -domainName www.gslbnew.com -TTL 5
<!--NeedCopy-->

ロケーション DB ファイルに次のクライアントエントリを追加します。この例では、ロケーション DB ファイル名は sample.csv です。

10.106.24.170,10.106.24.190,,,,,,,8.0000,47.0000

10.102.82.170,10.102.82.190,Asia,,,,,,-73.9924,40.7553

10.106.24.140,10.106.24.150,,IR,,,,,51.4231,35.6961
<!--NeedCopy-->

前述の設定によると、10.106.24.170 ~ 10.106.24.190 の間のクライアントには、ワイルドカード修飾子が定義されていません。10.106.24.140 と 10.106.24.150 の間のクライアントには、IR として修飾子 2 があります。

match ワイルドカード修飾子を NO に設定します。

set locationparameter -matchWildcardtoany no
<!--NeedCopy-->

match ワイルドカード修飾子が NO に設定されている場合、ワイルドカード修飾子は定義されたワイルドカード修飾子にのみ一致します。他のワイルドカード以外の修飾子には一致しません。

  • 10.106.24.147 の DNS クエリは、定義されているワイルドカード修飾子(修飾子 2 = IR)に一致します。そのため、DNS ポリシーが有効になり、クエリが破棄されます。

    10.106.24.147 クライアントでこのdig @10.102.82.13 www.gslbnew.comコマンドを実行すると、サーバに到達できなかったことが出力に表示されます。

     root@ns#  dig @10.102.82.13 www.gslbnew.com
    
     ; <<>> DiG 9.11.23 <<>> @10.102.82.13 www.gslbnew.com
     ; (1 server found)
     ;; global options: +cmd
     ;; connection timed out; no servers could be reached
     <!--NeedCopy-->
    
  • 10.106.24.180 から送信された DNS クエリが、定義された修飾子と一致しません。DNS ポリシーは有効にならず、クエリが処理されます。

    10.106.24.180クライアントでdig @10.102.82.13 www.gslbnew.comコマンドを実行します。出力には、GSLB 仮想サーバーの IP アドレスが表示されます。

     root@ns# dig @10.102.82.13 www.gslbnew.com
    
     ; <<>> DiG 9.11.23 <<>> @10.102.82.13 www.gslbnew.com
     ; (1 server found)
     ;; global options: +cmd
     ;; Got answer:
     ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 64265
     ;; flags: qr aa rd ad; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
     ;; WARNING: recursion requested but not available
    
     ;; OPT PSEUDOSECTION:
     ; EDNS: version: 0, flags:; udp: 1280
     ;; QUESTION SECTION:
     ;www.gslbnew.com. IN    A
    
     ;; ANSWER SECTION:
     www.gslbnew.com.    5   IN  A   1.1.1.2
    
     ;; Query time: 12 msec
     ;; SERVER: 10.102.82.13#53(10.102.82.13)
     ;; WHEN: Tue Mar 29 22:46:40 UTC 2022
     ;; MSG SIZE  rcvd: 60
     <!--NeedCopy-->
    

match ワイルドカード修飾子を Yes に設定します。

set locationparameter -matchWildcardtoany yes
<!--NeedCopy-->

match ワイルドカード修飾子が yes に設定されている場合、ワイルドカード修飾子は任意のワイルドカード修飾子 (定義済みおよび非ワイルドカード修飾子) に一致します。

  • 10.106.24.147 の DNS クエリは、定義された修飾子(修飾子 2 = IR)に一致します。そのため、DNS ポリシーが有効になり、クエリが破棄されます。

    10.106.24.147クライアントでdig @10.102.82.13 www.gslbnew.comコマンドを実行します。出力には、サーバが到達不能だったことが示されています。

     root@ns#  dig @10.102.82.13 www.gslbnew.com
    
     ; <<>> DiG 9.11.23 <<>> @10.102.82.13 www.gslbnew.com
     ; (1 server found)
     ;; global options: +cmd
     ;; connection timed out; no servers could be reached
     <!--NeedCopy-->
    
  • 10.106.24.180 からのクエリは、ワイルドカード以外の修飾子と一致します。そのため、DNS ポリシーが有効になり、クエリが破棄されます。

    10.106.24.180クライアントでdig @10.102.82.13 www.gslbnew.comコマンドを実行します。出力には、サーバが到達不能だったことが示されています。

     root@ns# dig @10.102.82.13 www.gslbnew.com
    
     ; <<>> DiG 9.11.23 <<>> @10.102.82.13 www.gslbnew.com
     ; (1 server found)
     ;; global options: +cmd
     ;; connection timed out; no servers could be reached
     <!--NeedCopy-->
    

match ワイルドカード修飾子を [式:] に設定します。

set locationparameter -matchWildcardtoany expression
<!--NeedCopy-->

match ワイルドカード修飾子が expression に設定されている場合、ワイルドカード修飾子は DNS ポリシーで使用可能な修飾子、またはロケーション DB ファイルで使用可能な修飾子のいずれかに一致します。

  • 10.106.24.147 の DNS クエリは、DNS ポリシーで定義されているワイルドカード修飾子と一致します。そのため、DNS ポリシーが有効になり、クエリが破棄されます。

    10.106.24.147クライアントでdig @10.102.82.13 www.gslbnew.comコマンドを実行します。出力には、サーバが到達不能だったことが示されています。

     root@ns#  dig @10.102.82.13 www.gslbnew.com
    
     ; <<>> DiG 9.11.23 <<>> @10.102.82.13 www.gslbnew.com
     ; (1 server found)
     ;; global options: +cmd
     ;; connection timed out; no servers could be reached
     <!--NeedCopy-->
    
  • 10.106.24.180 から送信されたクエリが、DNS ポリシーの修飾子と一致しません。そのため、DNS ポリシーは有効にならず、クエリが処理されます。

    10.106.24.180クライアントでdig @10.102.82.13 www.gslbnew.comコマンドを実行します。出力には、GSLB 仮想サーバーの IP アドレスが表示されます。

     root@ns# dig @10.102.82.13 www.gslbnew.com
    
     ; <<>> DiG 9.11.23 <<>> @10.102.82.13 www.gslbnew.com
     ; (1 server found)
     ;; global options: +cmd
     ;; Got answer:
     ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 64265
     ;; flags: qr aa rd ad; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
     ;; WARNING: recursion requested but not available
    
     ;; OPT PSEUDOSECTION:
     ; EDNS: version: 0, flags:; udp: 1280
     ;; QUESTION SECTION:
     ;www.gslbnew.com.  IN   A
    
     ;; ANSWER SECTION:
     www.gslbnew.com.    5   IN  A   1.1.1.2
    
     ;; Query time: 12 msec
     ;; SERVER: 10.102.82.13#53(10.102.82.13)
     ;; WHEN: Tue Mar 29 22:46:40 UTC 2022
     ;; MSG SIZE  rcvd: 60
     <!--NeedCopy-->
    
ロケーション修飾子の設定