Citrix ADC

设置位置限定符

用于实现静态接近的数据库具有GSLB站点的位置。每个位置都有一个IP地址范围和该范围最多六个限定符。限定符是文字字符串,在运行时按规定的顺序进行比较。每个位置必须至少有一个限定符。限定符标签定义限定符(上下文)的含义,这些限定符是用户定义的。Citrix ADC有两个内置上下文:

地理环境,具有以下限定标签:

  • 限定词1 -“洲区”
  • 限定项2 -“国家”
  • 限定词3 -“国家”
  • 资格赛4 -“城市”
  • 限定词5 -“ISP”
  • 限定项6 -“机构”

自定义条目,具有以下限定符标签:

  • 限定条件1 - "限定条件1 "
  • 限定词2 - "限定词2 "
  • 限定词3 - "限定词3 "
  • 评核计划4 - "评核计划4 "
  • 评核计划5 - "评核计划5 "
  • 限定词6 - "限定词6 "

如果地理环境没有设置Continent限定符,则Continent派生自Country。甚至内置的限定符标签也是基于上下文的,并且可以更改标签。这些限定符标签指定与IP地址映射的位置,这些IP地址用于做出静态接近性决策。

为了执行静态的基于邻近度的决策,Citrix ADC设备将从本地DNS服务器解析器的IP地址派生的位置属性(限定符)与参与站点的位置属性进行比较。如果只有一个站点匹配,则设备返回该站点的IP地址。如果有多个匹配,则选中的站点是对匹配的GSLB站点进行轮询的结果。如果没有匹配,则选中的站点是对所有配置的站点进行轮询的结果。没有任何限定符的站点被视为匹配。

基于位置的策略表达式的GEO规则允许您检查通配符匹配。此功能检查通配符限定符是否匹配任何其他限定符,包括非通配符。通配符匹配是通过使用matchWildcardtoany属性添加到设置locationParameter命令。

matchWildcardtoany属性可设置为以下值:

  • 是的:通配符限定符匹配任何其他限定符。
  • 没有:通配符限定符不匹配非通配符限定符,但匹配其他通配符限定符。默认选项为没有
  • 表达式:表达式中的通配符限定符匹配LDNS位置中的任何限定符,但LDNS位置中的通配符限定符不匹配表达式中的非通配符限定符。

例子:

添加dns policy1 "CLIENT.IP.SRC.MATCHES_LOCATION(\) "国家*。*。*。*\“)”  

通过命令行方式设置位置参数

在命令提示符下,输入:

set locationparameter -context  -q1label  [-q2label ] [-q3label ] [-q4label ] [-q5label ] [-q6label ] -matchWildcardtoany[是|否| Expression] 

例子:

set locationparameter -context custom -q1label asia -matchWildcardtoany是

通过GUI设置位置参数

  1. 导航到流量管理> GSLB >数据库和表项
  2. 设置,点击更改位置参数
  3. 配置位置参数页面,设置位置参数。

配置举例(CLI)

考虑以下网络设置:

  • GSLB虚拟服务器名称:gv1
  • GSLB虚拟服务器IP地址:1.1.1.2
  • GSLB服务:gsvc1绑定gv1
  • 位置DB文件名:sample.csv
  • 地理位置限定符:配置限定符1和2。Rest设置为匹配通配符。
    • 限定符1-Asia
    • 限定符2-IR
    • 预选赛3 - *
    • 限定符4 - *
    • 限定符5 - *
    • 限定符6 - *
  • DNS策略:将策略pol1设置为如果匹配,将报文丢弃。

2 .设置位置参数,并按如下方法配置DNS策略。

设置locationParameter -q2label Country_Code -q3label Subdivision_1_Name -q4label Subdivision_2_Name -q5label城市添加locationFile " / var / netscaler / inbuilt_db / sample.csv”添加gslb vserver gv1此HTTP -backupLBMethod循环)0添加域名策略pol1 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(\” .*.*.*.*\")|| CLIENT.IP.SRC。MATCHES_LOCATION(\"North北美洲. cu .*.*.*.* .*\")||CLIENT.IP.SRC.MATCHES_LOCATION(\" europe . ua .克里米亚.*.*.*.* ")" 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 

在location DB文件中添加以下客户端条目。在本例中,location DB文件名为sample.csv:

10.106.24.170 10.106.24.190……8.0000、47.0000 10.102.82.170 10.102.82.190,亚洲……-73.9924,40.7553 10.106.24.140 10.106.24.150,红外…51.4231、35.6961 < !——NeedCopy >

根据上述配置,10.106.24.170到10.106.24.190之间的客户端没有定义任何通配符。10.106.24.140到10.106.24.150之间的客户端,限定符2作为IR。

将匹配通配符限定符设置为NO:

设置locationparameter -matchWildcardtoany no 

当match通配符限定符设置为NO时,通配符限定符只匹配定义的通配符限定符。它不匹配任何其他非通配符限定符。

  • 来自10.106.24.147的DNS查询匹配定义的通配符限定符(限定符2 = IR)。因此,DNS策略生效并删除查询。

    当你运行挖掘@10.102.82.13 www.gslbnew.com在10.106.24.147客户端上执行命令,结果显示服务器不可达。

    root@ns# dig @10.102.82.13 www.gslbnew.com;< < > >挖9.11.23 < < > > www.gslbnew.com @10.102.82.13;(发现1台服务器);;全局选项:+cmd;;连接超时;无法访问任何服务器
  • 来自10.106.24.180的DNS查询与定义的限定符不匹配。DNS策略不生效,查询将被处理。

    运行挖掘@10.102.82.13 www.gslbnew.com在10.106.24.180客户端执行命令。输出信息为GSLB虚拟服务器的IP地址。

    root@ns# dig @10.102.82.13 www.gslbnew.com;< < > >挖9.11.23 < < > > www.gslbnew.com @10.102.82.13;(发现1台服务器);;全局选项:+cmd;;得到答案:;;->>HEADER<<- opcode: QUERY, status: NOERROR, id: 64265;;标志:qr aa和ad;查询:1,应答:1,权限:0,附加:1;;警告:请求递归但不可用;;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 

将匹配通配符限定符设置为Yes:

设置位置参数-matchWildcardtoany是

当match通配符限定符设置为yes时,通配符限定符匹配任何通配符限定符(定义的和非通配符限定符)。

  • 来自10.106.24.147的DNS查询匹配定义的限定符(限定符2 = IR)。因此,DNS策略生效并删除查询。

    运行挖掘@10.102.82.13 www.gslbnew.com在10.106.24.147客户端执行命令。输出显示服务器不可达。

    root@ns# dig @10.102.82.13 www.gslbnew.com;< < > >挖9.11.23 < < > > www.gslbnew.com @10.102.82.13;(发现1台服务器);;全局选项:+cmd;;连接超时;无法访问任何服务器
  • 来自10.106.24.180的查询匹配非通配符限定符。因此,DNS策略生效并删除查询。

    运行挖掘@10.102.82.13 www.gslbnew.com在10.106.24.180客户端执行命令。输出显示服务器不可达。

    root@ns# dig @10.102.82.13 www.gslbnew.com;< < > >挖9.11.23 < < > > www.gslbnew.com @10.102.82.13;(发现1台服务器);;全局选项:+cmd;;连接超时;无法访问任何服务器

将匹配通配符限定符设置为Expression:

设置locationparameter -matchWildcardtoany表达式

当将匹配通配符限定符设置为expression时,通配符限定符将匹配DNS策略中可用的限定符或位置DB文件中可用的限定符。

  • 来自10.106.24.147的DNS查询匹配DNS策略中定义的通配符限定符。因此,DNS策略生效并删除查询。

    运行挖掘@10.102.82.13 www.gslbnew.com在10.106.24.147客户端执行命令。输出显示服务器不可达。

    root@ns# dig @10.102.82.13 www.gslbnew.com;< < > >挖9.11.23 < < > > www.gslbnew.com @10.102.82.13;(发现1台服务器);;全局选项:+cmd;;连接超时;无法访问任何服务器
  • 来自10.106.24.180的查询与DNS策略中的限定符不匹配。因此,DNS策略不生效,查询将被处理。

    运行挖掘@10.102.82.13 www.gslbnew.com在10.106.24.180客户端执行命令。输出信息为GSLB虚拟服务器的IP地址。

    root@ns# dig @10.102.82.13 www.gslbnew.com;< < > >挖9.11.23 < < > > www.gslbnew.com @10.102.82.13;(发现1台服务器);;全局选项:+cmd;;得到答案:;;->>HEADER<<- opcode: QUERY, status: NOERROR, id: 64265;;标志:qr aa和ad;查询:1,应答:1,权限:0,附加:1;;警告:请求递归但不可用;;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 
设置位置限定符