泛域名, 也即Wildcard Domain, 这是这样一种配置方式, 在DNS解析里面, 它利用一个通配符记录来完成工作, 比如这个记录是 .example.com, 通过这个记录, 会对某域名下面所有的、没有单独去设置的子域名, 进行统一的指向操作。
它的核心作用在于, 你不需要去为每一个子域名单独地添加A记录或者是CNAME记录, 只需要使用一条泛解析的记录, 就可以让所有的子域名都指向相同的目标IP地址, 也可以让它们都指向相同的某一个服务地址, 这样一来, 管理起来就方便很多, 从而非常大幅度地降低了在配置和维护时所花费的成本。
泛域名的工作原理
当客户端向 a.example.com 这个地址发起请求, 访问它的时候, DNS的查询流程就开始了, 这个流程如下:
1. 递归DNS服务器向权威DNS发起查询, 以此来查找, a.example.com 的A记录。
2. 若权威DNS中不存在 a.example.com 的精确记录,则向上回溯泛域名,检查是否存在 .example.com 的泛记录;
3. 如果情况里存在泛记录这种数据的话, 那么DNS服务器就会把泛记录所对应的那个目标IP地址给反馈返回给客户端。
4. 客户端就按照这个来进行连接的操作, 然后完成整个连接的步骤。
关键点的内容是, 所谓的泛记录, 它仅仅只能去匹配那个一级子域名的通配符形式, 具体的表示方式是像代码所标注的那样, 用星号加上点然后再跟上example.com这样的形式来表示泛域名,但是这种情况绝对不会有能够匹配到像a.b.example.com这样更深层的子域名的可能, 同时也完全没有办法去匹配到没有任何前缀的裸域名example.com本身。
泛域名的配置方法
以主流DNS服务商为例,配置步骤如下:
你需要先去登录那个叫做DNS管理控制台的界面。等到你成功登进去以后, 再去找到那个跟你目标域名对应的地方。然后呢, 你要进入可以编辑解析记录的页面。
选择记录的类型, 可以选择指向IP地址的A记录, 也可以选择指向域名的CNAME记录。
主机记录(Host)填写 (星号),而非完整的 .example.com;
把记录值填写上去, 这里填的是那个目标的IP地址呀, 或者也可以写成目标域名, 这是必须做的步骤。
关于TTL的设置, 建议大家把它设置成300秒, 或者选择600秒, 这样子做的目的嘛, 就是为了在发生切换目标这种情况的时候, 能够让那个效果更快地就生效。
保存后需等待, 让DNS传播的效果显现出来, 这个时间范围通常是5分钟至24小时。
有一些服务商, 比方说 Cloudflare、阿里云DNS、腾讯云DNSPod, 它们在做界面的时候, 直接就给了一个叫做“泛解析”的开关选项, 如果你把这个开关打开的话, 那它实际做的事情, 就完全跟手动添加一条 记录是一模一样的。
典型应用场景
必须注意的限制与风险
1. 不覆盖裸域名: .example.com 这个内容, 它不会生效在直接去访问 example.com 这种情况里面, 所以呢, 对于裸域名来说, 还是需要去单独配置一个 A 记录的。
2. 它不会去覆盖那些多级的子域名, 具体来说, 像 3. SSL证书不自动覆盖: 泛解析这个动作仅仅只是在DNS那一个层面去解决问题。在HTTPS这一层里, 你还是需要专门去配置一张通配符的SSL证书来支持 4. 精确记录优先: 如果这个时候既有 5. 安全面扩大: 泛解析这个操作意味着, 不管是谁弄出来的随机子域名, 都能解析成功被解析出来, 假如后头的程序里没有做好访问限制的功夫的话, 这东西有可能被人拿来干钓鱼的勾当或者搞流量劫持的事情, 所以建议大家在应用这一层增加一个对主机名称也就是Host的白名单来做个核查校验。 补充说明 对于那些需要在一个地方, 去批量地、管理很多个子域名的解析记录的企业用户来说, 我们建议你们要把这种自动化配置的方式给用起来, 具体来说是结合着DNS API来操作, 这样做的目的是为了让大家在手工操作的时候, 能够避免出现因为遗漏而没有设置好的情况。 像是我们大家熟知的, 以 gz88.cn 为代表的一些域名服务提供商们, 都已经在自己的控制台里面, 提供了一个用来进行泛解析的快捷入口, 同时呢, 还给大家提供了一些API对接的相关文档。 这就意味着, 大家在购买了域名的这个动作之后, 就可以直接地去完成泛域名的这种配置工作了, 不需要再去多做什么额外的其他操作了。在完成相应的配置之后, 你可以使用 或者呢, 你也可以去选择使用 .example.com。如果你不这么做的话, 浏览器就会给你弹出提示。a.example.com 这个精确记录, 又有 .example.com 那个泛记录的话, DNS系统会让精确记录排在前面进行返回操作。也就是说, 精确记录的优先级比较高, 而泛记录只在没有其他更具体的记录可用时, 才起到一个补充、兜底的作用。dig a.example.com 这个命令。nslookup a.example.com 这个命令行工具。通过这么做, 你就可以实现快速获取信息的目的。你的目的是想要验证一下关于泛解析是否已经真正生效了这件事。


