domain-name-system – DNS,Do A Record通配符优先于更具体的CNAME吗?

前端之家收集整理的这篇文章主要介绍了domain-name-system – DNS,Do A Record通配符优先于更具体的CNAME吗?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我们设置了通配符来处理“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记录)

猜你在找的HTML相关文章