泛解析, 也就是通配符DNS解析, 它的核心原理是这样的, 你可以在DNS里为.yourdomain.com这一项添加一条记录, 结果就是, 在你这个域名下面, 那些还没有单独去配置过解析的子域名, 都会自动指向同一个目标地址, 这样的话, 你就不用一个一个地去给每个子域名添加记录了,只要有一条这样的通配符规则, 它就可以覆盖住任意数量的子域名, 这能够大幅地降低你在管理DNS方面所付出的成本。
设置前准备
你需要确认自己确实拥有了该域名的DNS管理权限, 并且这种情况通常可以你在域名注册商控制台或者是专业DNS服务商面板里面进行操作。
在进行具体操作之前要明确两件事情是事情, 第一是你的目标子域名需要被解析到哪一个IP地址, 或者说CNAME目标到底是什么;第二是一定要清楚是否需要保留某些子域名的独立解析功能, 而这些内容是需要你去单独配置好的。
添加通配符记录(核心步骤)
第一步, 你先把DNS管理后台登录进去, 然后进到解析设置页面, 或者进到DNS记录管理那个页面。
第二步: 创建一个新的解析记录条目, 关于如何填写这个条目的具体参数, 请您参考以下内容进行填报。
主机记录,也就是那个用姓名来代表的东西,这里面的内容是星号。
关于记录的类型, 它具体是指那个被称为A的记录, 这个记录的作用是去指向一个属于IPv4地址范畴的IP地址数值, 或者是另一个被称作CNAME的记录, 这个记录存在的关键意义在于它会指向另外一个完全独立的域名名称。
把记录的值这一部分, 也就是大家习惯说的这个Value属性, 直接填上你所确定的目标IP地址又或者是你所选择的目标域名。
TTL: 建议设为300秒, 这样方便在测试阶段快速调整。
然后, 你需要把这次修改的操作记录下来进行保存, 接着就耐心等待那个叫做DNS的东西去生效。
你需要打开gname.xin这个网站的DNS解析界面, 然后去新增一行记录, 这行的主机留空, 类型选成A, 值填上203.0.113.10, 弄好之后记得保存一下。
在此之后, 凡是出现在.gname.xin这个域下面的所有子域名, 比如说像我们常见到的shop.gname.xin, 还有blog.gname.xin, 以及api.gname.xin等等这些情况, 它们全部都将会被自动地解析指向到地址203.0.113.10上去, 这一点是确定无疑的, 因此你就不需要再去一条一条地去添加相关内容了。
验证是否生效
在本地命令行环境中, 按照顺序依次执行以下操作。
dig app.gname.xin +short
dig 和 web点gname点xin之间, 用加号连着, 然后是 short。
这两条命令应该都会返回你自己设置的那个目标IP地址。最好还是从不同的地方去使用那些在线的DNS诊断工具来做一下交叉验证, 这样可以把因为本地缓存产生的干扰给排除掉。
关键注意事项
1. 我们这里需要单独记录那些优先级更高的内容, 意思是什么呢?
就是说, 如果你已经针对某个特定的子域名, 比如说是api.yourdomain.com这个子域名, 单独添加了A记录, 或者是说单独添加了CNAME记录的话, 那么这种情况下, 你这个单独的记录肯定是要优先于通用的通配符记录来生效的。所以这两者之间是完全互不冲突的, 这一点大家要明白清楚。
2. 在邮件配置的独立性方面, MX记录不会受到通配符A记录或者CNAME记录的干扰和影响的, 不过在同一个主机名的范围内, CNAME记录和MX记录是不能够同时存在的。
如果涉及到了有关电子邮件接收和发送功能的子域名时, 应当对其进行单独的配置操作, 也就是要针对这些特定的子域名分别设置MX records以及SPF记录。
3. 关于SSL证书的覆盖范围问题, 实际情况是这样的, 通配符证书, 也就是那种格式为*.yourdomain.com的情况, 它仅仅能够覆盖一级子域名, 对于二级及更多的下级子域名而言, 它是无法起到保护作用的, 因此如果需要保障这些级别的域名安全, 就需要单独提交申请, 以获取对应的专用证书。
4. 关于全球生效时间的说明是这样的, 由于会受到各级DNS缓存以及TTL这些因素的影响, 所以要达到完全生效的状态, 通常是需要花费5分钟到48个小时这么一段时长的。因此在完成配置操作之后, 请务必预留出必要的等待时间, 然后再去进行判断, 以确认是否存在异常情况。
常见疑难与解决方案
子域名的解析虽然没问题, 就是访问不通, 这时候需要排查一下目标服务器那边的防火墙或者云安全组有没有把80端口和443端口给放行掉;另外, 还要确认Web服务器那边是不是已经正确配置了那个子域名的站点或者虚拟主机。
部分子域名的解析结果出现不一致的情况, 你需要检查一下是否是因为上游的DNS缓存被污染, 或者是DNSSEC的校验失败了, 你可以尝试把系统的DNS设置改成公共DNS比如8.8.8.8, 然后再重新进行一次的测试。
你要排除那些特定的子域名。因为通配符记录本身它是不支持排除的语法。所以你直接给那个子域名单独添加一条指向不同目标的记录就行了。这条单独的它就会自动覆盖掉通配符规则。
泛解析要和CDN放在一起使用, 要是目标地址是CDN的地址, 或者是负载均衡器的地址, 通配符记录类型就应该选成CNAME, 把目标值填写成CDN分配给你的域名, 而不是填写IP地址。

