一般情况下,DNS记录类型里用的最多的是A记录、CNAME别名记录、MX邮件记录、PTR反向记录等类型。而且一般来说,DNS里存在的记录就能解析,不存在的记录就不能解析。但有些情况下,希望凡是无法匹配已存在的记录的请求,也能有一个有效的记录返回,即设定一个默认值。比如有一个DNS域usa.com,用户可能试图访问了blabla.usa.com,但这blabla不是系统里已经存在的记录,则一般情况下会DNS查询失败。

    但是如果设定了一个默认值,比如将所有已明确定义的记录意外的查询都转向一个IP或CNAME,那么不再有查询失败的错误。处理时可以直接将这类请求转向主站点。这样可以提高用户体验满意度。

   方法就是使用DNS通配符。不过由于通配符记录不是明确定义的行业标准,可能在不同的DNS系统上实施起来会有细微的区别。下面仅以BIND 9.5为例。

   1. A记录类型:

*    IN    A    10.10.10.10

   所有对不存在的记录的查询会统一得到一个A记录IP地址的返回值。

   2. CNAME记录类型:

*   IN    CNAME  default.usa.com.

   所有对不存在的记录的查询会统一得到一个CNAME记录的返回,即重定向到default.usa.com,从而获得后者的IP地址(当然也可能有多次CNAME的情况,这里略过)。

   通配符类型可以出现在记录项的头部,中部,或尾部。比如可以仅仅是一个*,也可以是*.abc,也可以是a.*.c或a.b.*。例如:

*.sanfrancisco.california   IN   CNAME   default.usa.com.