我需要为已经有 A 记录的子域设置通配符 DNS 记录。我不确定我是否必须为此使用新的 A 记录,或者只能使用指向 A 记录的 CNAME。
我的脚本具有以下域结构
http(s)://{random_code}.{location_subdomain}.{domain.com}/{path}
- {random_code} - 我们使用随机代码作为针对浏览器实现的 HTTP 套接字限制的解决方案。(仅用于将动态元素加载到页面上 - 因此只能通过查看网页源来查看,而用户浏览器中的 URL 仅显示位置子域)
- {location_subdomain} - 我们从离用户最近的服务器加载内容,因此每个位置都有一个指向不同服务器的 A 记录(我们所有位置服务器的内容是 1:1)。
- {domain.com} - 指向托管我们的索引页面的前端服务器
- {path} - 自我探索
当前 DNS 区域文件
domain.org. 86400 IN NS dns1.domain.org.
domain.org. 86400 IN NS dns2.domain.org.
domain.org. 86400 IN NS dns3.domain.org.
domain.org. 86400 IN NS dns4.domain.org.
domain.org. 14400 IN A 1.1.1.1
localhost 14400 IN A 127.0.0.1
www 14400 IN CNAME domain.org.
ftp 14400 IN A 1.1.1.1
france 3600 IN A 2.2.2.2
phoenix 3600 IN A 3.3.3.3
nl 3600 IN A 4.4.4.4
* 14400 IN A 1.1.1.1
但我需要为每个位置 A 记录添加一个通配符,该记录指向相同的地址。因此,例如 {randome_code}.phoenix.{domain.com} 将指向 3.3.3.3,同时仍确保 phoenix.{domain.com} 仍然指向相同的 IP。
我是否只需要为每个位置创建新的 A 记录,同时保留非通配符记录?
*.france 3600 IN A 2.2.2.2
*.phoenix 3600 IN A 3.3.3.3
*.nl 3600 IN A 4.4.4.4
我假设这将是一个额外的查找,所以我认为我可以使用 CNAME,但我不确定添加通配符 CNAME 记录的正确格式,该记录指向已创建的 A 记录,同时仍保留原始通配符工作,以便任何不使用位置子域的查找仍将使用我们的前端 Web 服务器地址得到答复。
还是我完全错了,我可以在根域和 A 记录上都没有通配符吗?
你有什么:
将完全按照您的预期工作;查询
abc.france.example.com
将从通配符A
记录中获得答案,同时france.example.com
仍将从france 3600 IN A 2.2.2.2
.不需要额外的查找,因为您没有进行额外的委派。
如果您更容易管理,您还可以使用
CNAME
:A
CNAME
通常会导致额外的查找,但在这种情况下不会;被引用的记录在同一区域中,因此您的 DNS 服务器将响应 的“答案”CNAME
,并包括 的相关A
记录france.example.com
。