配置基于规则的自定义解析

本文介绍如何配置基于规则的自定义解析。

前提条件

  • 已添加需配置自定义解析的域名,参见概述

操作步骤

  1. 登录EMAS控制台

  2. 在左侧导航栏选择解析管理> 自定义解析

  3. 点击添加自定义解析,策略类型选择规则策略image

  4. 您可以做以下配置:

    • 基本信息

      参数

      说明

      域名

      您希望自定义解析的域名,例如:www.aliyun.com。

      说明
      • 域名选择下拉的数据源来自于接入域名中已经添加的域名,如果想要自定义解析的域名不在下拉列表中,可以到域名列表中添加后,再为该域名添加自定义解析记录。

      • 如果要为某个泛域名的子域名添加自定义解析记录,例如:*.aliyun.com,但你想要自定义域名是 a.aliyun.com,则需要将 a.aliyun.com 添加到域名列表中,再为该域名添加自定义解析记录。

      • 域名选择下拉字段选不到对应的域名有以下几种情况:

        • 想要添加的域名不在域名列表中,您可以到接入域名中添加对应的域名即可。

        • 想要添加的域名是某个泛域名的子域名,将该子域名添加到域名列表即可。

        • 想要添加的域名已经存在自定义解析记录,需要去自定义解析记录列表管理对应的域名。

      线路

      可针对运营商和地域进行线路配置。

      • 运营商:可以自定义运营商,例如 中国电信

        • 如果运营商设置为默认,表示当前线路覆盖所有运营商。

      • 地理位置:可以自定义省份,例如:北京、河北,目前仅支持中国内地。

        • 如果省份设置为默认,表示当前线路覆盖所有省份。

      说明

      在同一个域名下,对于相同地域的用户,线路生效的优先级是:运营商>地理位置>默认。例如,电信-北京>电信-默认>默认-北京>默认-默认。

      例如:如果在同一个域名下同时存在两条规则策略,线路分别是电信-北京和电信-默认,那么对于北京的电信用户会使用电信-北京线路的规则策略。

    • 自定义解析规则

      一条规则策略最多支持配置 10 条自定义解析规则。

      参数

      说明

      规则名称

      说明当前规则的名称,可以用来表达规则的用途,例如:通过SDK版本调度。

      规则排序

      多个规则之间可以调整顺序,匹配的逻辑是从上往下串行匹配,顺序决定了哪个规则会被优先命中,调整顺序后会按照新的顺序匹配。

      SDNS参数配置

      用来匹配客户端请求解析接口携带的SDNS参数,决定该条规则是否被命中,如果匹配成功,则返回该条规则中的解析记录值。详细的匹配逻辑请查看规则策略匹配逻辑说明

      • 参数名称:SDNS参数的名称,长度限制为 2 ~ 64 个字符。

      • 参数值:SDNS参数的值,长度限制为 1 ~ 64 个字符。

      说明

      解析记录值

      自定义解析的返回值集合,每个记录值代表记录集中的一条解析记录,必填

      • 记录类型:返回解析记录值的类型,支持AAAAA记录。

      • 记录值:返回的记录值

      您可以添加多个记录值,在未开启权重的情况下,添加的多个记录值将会合并在一起返回。

      还可以按照权重调度,只需要打开按照权重调度开关即可。开启权重后,可以为每个记录值设置权重,权重值设置范围为:1-100,根据记录值的权重,通过负载均衡算法返回一个合适的记录值。

      说明

      一条规则最多添加 10 个记录值。

      TTL

      必填,自定义解析记录的有效期。有效期越短,HTTPDNS SDK 中的解析记录缓存过期就越快。同时,HTTPDNS SDK 请求新的解析记录的频率就越高。

  5. 策略验证

    • 添加规则策略的页面中,提供了验证规则的能力,如下图所示:image

    • 在弹窗的策略验证窗口中,输入对应的参数可以验证当前的策略是否符合预期。image

规则策略匹配逻辑说明

使用规则策略的解析流程如下所示,通过请求接口中携带的参数来匹配具体的规则,规则从上往下串行匹配,一旦有规则命中,则终止匹配并返回已经匹配规则的结果。如果现有的规则都没有被命中,则去权威服务器获取结果并返回。

image

单条规则参数匹配的逻辑如下:

  • 接口携带的参数完整匹配规则中配置的参数, 则匹配成功。完整匹配是指,解析参数是规则配置参数的子集或全集。

  • 如果规则中未配置参数,则该条规则匹配成功。

  • 规则中多个参数之间是「且」的关系。

下面举例说明具体的匹配逻辑:

假如需要自定义解析的域名是:www.example.com

示例1

规则 A 参数配置如下:

参数名

参数值

osType

Android

规则 B 参数配置如下:

参数名

参数值

osType

iOS

规则 C 参数配置如下:

参数名

参数值

osType

Android

bizType

car

携带的参数:

参数名

参数值

osType

iOS

匹配结果:

示例1中,携带的参数完全匹配到规则B,HTTPDNS 服务端会返回规则 B 中的记录值

示例2

规则 A 参数配置如下:

参数名

参数值

osType

iOS

bizType

app

规则 B 参数配置如下:

参数名

参数值

osType

iOS

规则 C 参数配置如下:

参数名

参数值

osType

Android

bizType

car

携带的参数:

参数名

参数值

osType

iOS

匹配结果:

示例2中,因为规则的参数是「且」的关系,根据完全匹配的原则,携带的参数完全匹配到 规则B,HTTPDNS 服务端会返回规则 B 中的记录值

示例3

规则 A 参数配置如下:

参数名

参数值

osType

iOS

bizType

car

规则 B 参数配置如下:

参数名

参数值

osType

iOS

bizType

car

region

hangzhou

规则 C 参数配置如下:

参数名

参数值

osType

Android

bizType

car

region

shanghai

携带的参数:

参数名

参数值

osType

iOS

bizType

car

region

hangzhou

匹配结果:

示例3中,根据完全匹配和优先返回的原则,携带的参数完整匹配到规则A,HTTPDNS 服务端会优先返回规则 A 中的记录值

示例4

规则 A 参数配置如下:

参数名

参数值

osType

Android

bizType

car

规则 B 参数配置如下:

参数名

参数值

osType

iOS

bizType

car

region

hangzhou

规则 C 参数配置如下:

参数名

参数值

osType

Android

bizType

car

region

shanghai

携带的参数:

参数名

参数值

osType

iOS

匹配结果:

示例4中,根据完全匹配和优先返回的原则,携带的参数没有命中任何规则,HTTPDNS 服务端会返回权威服务器的查询结果

示例5

规则 A 参数配置如下:

参数名

参数值

osType

Android

bizType

car

规则 B 没有配置参数。

规则 C 参数配置如下:

参数名

参数值

osType

Android

bizType

car

region

shanghai

携带的参数:

参数名

参数值

osType

iOS

匹配结果:

示例 5 中,根据完全匹配和优先返回的原则,携带的参数完整匹配到规则 B,HTTPDNS 服务端会优先返回规则 B 中的记录值

后续步骤

参考以上内容,您已经配置了基于规则的自定义解析,请参考概述继续完成后续步骤。