我们设置了通配符来处理“example.com”的所有子域
记录:* .example.com指向10.10.10.10
我们有一个更具体的A记录来处理一个特殊的子域(这很好):
记录:staging.example.com指向10.10.10.9
我们遇到的问题是我们正在将登台迁移到新的托管环境,并且我们已被指示使用CNAME:
CNAME:new-staging.example.com指向proxy.heroku.com
我们认为这会奏效.但是,new-staging.example.com会解析为顶级通配符10.10.10.10,并且不会指向proxy.heroku.com.
我错过了什么?这不可能吗?或者这是不好的做法?谢谢,
解决方法
答案通常是“不” – 更具体的记录应该获胜,所以这应该按照您描述/预期的方式工作.我的猜测是你在某处缓存了通配符A记录,并且需要等待该缓存过期.
使用BIND 9.6.2-P2 / FreeBSD 8.1进行快速测试:
包含记录的区域:
example.net. IN A 127.0.0.2 *.test.example.net. IN A 127.0.0.1 specific.test.example.net. IN CNAME example.net.
解决如下:
% dig specific.test.example.net ; <<>> DiG 9.6.2-P2 <<>> specific.test.example.net ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY,status: NOERROR,id: 17222 ;; flags: qr aa rd ra; QUERY: 1,ANSWER: 2,AUTHORITY: 2,ADDITIONAL: 2 ;; QUESTION SECTION: ;specific.test.example.net. IN A ;; ANSWER SECTION: specific.test.example.net. 3600 IN CNAME example.net. example.net. 3600 IN A 127.0.0.2 ;; AUTHORITY SECTION: example.net. 3600 IN NS ns1.example.net. ;; ADDITIONAL SECTION: ns1.example.net. 3600 IN A 127.0.0.1
(返回CNAME)
和
% dig nonspecific.test.example.net ; <<>> DiG 9.6.2-P2 <<>> nonspecific.test.example.net ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY,id: 26980 ;; flags: qr aa rd ra; QUERY: 1,ANSWER: 1,ADDITIONAL: 2 ;; QUESTION SECTION: ;nonspecific.test.example.net. IN A ;; ANSWER SECTION: nonspecific.test.example.net. 3600 IN A 127.0.0.1 ;; AUTHORITY SECTION: example.net. 3600 IN NS ns1.example.net. ;; ADDITIONAL SECTION: ns1.example.net. 3600 IN A 127.0.0.1
(返回通配符A记录)