ADC

API メソッド

API メソッドを使用して、最もパフォーマンスの高い GSLB サービスを決定できます。GSLB の API メソッドは REST API を使用して、最もパフォーマンスの高い GSLB サービスを決定します。

APIメソッドでは、GSLBがクライアントからDNSリクエストを受け取ると、指定されたルールに照らしてリクエストを評価します。GSLB は HTTP コールアウト表現 SYS.HTTP_CALLOUT (<name>) を検出すると、HTTP コールアウトエージェントへの REST API リクエストを呼び出します。GSLBは、HTTPコールアウトエージェントからの応答を使用して、最もパフォーマンスの高いサービスを決定します。DNS応答では、GSLBは最もパフォーマンスの高いサービスのIPアドレスをクライアントに返します。

CLI を使用して GSLB API メソッドを設定するには

以下を実行して GSLB API メソッドを設定します。

  1. HTTP コールアウトを設定します。

    詳細については、「 HTTP コールアウトの設定」を参照してください。

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

    add policy httpCallout <name> [-IPAddress <ip_addr|ipv6_addr>] [-port <port>] [-vServer <string>] [-returnType <returnType>] [-httpMethod (GET | POST)] [-hostExpr <string>] [-urlStemExpr <string>] [-headers <name(value)> ...] [-parameters <name(value)> ...] [-bodyExpr <string>] [-fullReqExpr <string>] [-scheme (http | https)] [-resultExpr <string>] [-cacheForSecs <secs>] [-comment <string>]
    <!--NeedCopy-->
    

    例:

    add policy httpCallout GSLB_Method_API -IPAddress 208.111.39.237 -port 443 -returnType TEXT -hostExpr “\”hopx.gslb.com\“” -urlStemExpr “\”/zones/1/customers/92395/apps/6/decision\“” -headers Authorization(“Basic 19fbe6db-4332-4e3f-a8bc-ee47bdc726f8") -parameters ip(DNS.REQ.OPT.ECS.IP.TYPECAST_TEXT_T ALT CLIENT.IP.SRC.TYPECAST_TEXT_T) -scheme https -resultExpr “HTTP.RES.BODY(HTTP.RES.CONTENT_LENGTH).XPATH_JSON(xp%/providers/Val[1]/provider%)” -cacheForSecs 30
    <!--NeedCopy-->
    
  2. 負荷分散の API メソッドを指定します。GSLBは、指定されたルールに照らしてDNSリクエストを評価します。

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

    add gslb vserver <name> <serviceType>  [-lbMethod <lbMethod>] [-backupLBMethod <backupLBMethod>] -rule <expression>
    <!--NeedCopy-->
    

    例:

    add gslb vserver vs1 HTTP -lbMethod API -backupLBMethod ROUNDROBIN -rule “sys.http_callout(GSLB_Method_API)”
    <!--NeedCopy-->
    

LB メソッドとして API を使用して GSLB と ITM を統合するためのサンプル設定

この構成により、GSLBはCitrix のインテリジェントトラフィック管理(ITM)のインターネット可視性の側面を利用して、最もパフォーマンスの高いGSLBサービスを決定できます。

/* Enable ns features */

enable ns feature lb gslb cs

/* This is a named expression that is used in the HTTP callout, used for result expression. */

add policy expression exp1 "HTTP.RES.BODY(HTTP.RES.CONTENT_LENGTH).XPATH_JSON(xp%/providers/Val[1]/provider%)"

/* This is a named expression that is used in HTTP callout, used for host expression. */

add policy expression exp2 ""hopx.cedexis.com""

/* This is the HTTP callout configured to request the ITM for the GSLB decision. */

add policy httpCallout ITM_OpenMix_API -IPAddress 208.111.39.237 -port 80 -returnType TEXT -hostExpr exp2 -urlStemExpr ""/zones/1/customers/61770/apps/3/decision"" -headers Authorization("Basic a310697a-1d69-48bf-8f36-55742a8e894e") -parameters ip(DNS.REQ.OPT.ECS.IP.TYPECAST_TEXT_T ALT CLIENT.IP.SRC.TYPECAST_TEXT_T) -scheme http -resultExpr exp1 -cacheForSecs 30

/* Add service 1 */
add service sg1 98.136.103.24 HTTP 80 -gslb NONE -maxClient 0 -maxReq 0 -cip DISABLED -usip NO -useproxyport YES -sp OFF -cltTimeout 180 -svrTimeout 360 -CKA NO -TCPB NO -CMP NO

/* Add service 2 */
add service sg2 172.217.194.113 HTTP 80 -gslb NONE -maxClient 0 -maxReq 0 -cip DISABLED -usip NO -useproxyport YES -sp OFF -cltTimeout 180 -svrTimeout 360 -CKA NO -TCPB NO -CMP NO

/* Add ADNS service */

add service adns1 10.102.217.106 ADNS 53 -gslb NONE -maxClient 0 -maxReq 0 -cip DISABLED -usip NO -useproxyport NO -sp OFF -cltTimeout 120 -svrTimeout 120 -CKA NO -TCPB NO -CMP NO

/* Add lb vserver 1 for service 1 */
add lb vserver lbvs1 HTTP 10.102.217.116 80 -persistenceType NONE -cltTimeout 180

/* Add lb vserver 2 for service 2 */
add lb vserver lbvs2 HTTP 10.102.217.117 80 -persistenceType NONE -cltTimeout 180

/* Bind service 1 to lb vserver 1 */

bind lb vserver lbvs1 sg1

/* Bind service 2 to lb vserver 2 */

bind lb vserver lbvs2 sg2

/* Configure API GSLB method on GSLB virtual server to call the HTTP callout. This HTTP callout requests the ITM for the GSLB decision and returns GSLB service name, which should serve the request. */

add gslb vserver vs1 HTTP -lbMethod API -backupLBMethod ROUNDROBIN -rule "sys.http_callout(ITM_OpenMix_API)" -tolerance 0 -ECS ENABLED

/* Add GSLB site */

add gslb site site1 10.102.217.106 -publicIP 10.102.217.106

/* Add GSLB service 1 */

add gslb service aws_ec2_ap_south_1_asia_pacific_mumbai_1 10.102.217.116 HTTP 80 -publicIP 10.102.217.116 -publicPort 80 -maxClient 0 -siteName site1 -sitePersistence HTTPRedirect -sitePrefix gs2. -cltTimeout 180 -svrTimeout 360 -downStateFlush ENABLED

/* Add GSLB service 2 */

add gslb service aws_ec2_ap_south_1_asia_pacific_mumbai 10.102.217.117 HTTP 80 -publicIP 10.102.217.117 -publicPort 80 -maxClient 0 -siteName site1 -sitePersistence HTTPRedirect -sitePrefix gs1. -cltTimeout 180 -svrTimeout 360 -downStateFlush ENABLED

/* Bind the GSLB service 1 to GSLB server 1 */
bind gslb vserver vs1 -serviceName aws_ec2_ap_south_1_asia_pacific_mumbai_1

/* Bind the GSLB service 2 to GSLB server 2 */
bind gslb vserver vs1 -serviceName aws_ec2_ap_south_1_asia_pacific_mumbai

/* Bind a domain name to the GSLB virtual server */
bind gslb vserver vs1 -domainName testruchit104.com -TTL 5

<!--NeedCopy-->
API メソッド