解析类型DNAME介绍
本帖最后由 moxnet 于 2011-10-19 20:26 编辑DNAME
在bind9中实现了2种新的记录类型: DNAME,IP6 本文介绍DNAME实现的功能.
rfc2672描述了DNAME,rfc的标题是”Non-Terminal DNS Name Redirection”, 与CNAME的意思类似, 但他并不是别名了单独的一个名字, 而是别名了整个域名.当发现DNAME时, 并没结束, 而是计算出一个新的名字并且解析它.而CNAME的情况就不同, 当发现CNAME时, 工作就结束了.
DNAME使用相当简单:
<owner> <ttl> <class> DNAME <target>
作用是, 整个owner标识的整个子树被映射到目标域名上. 这是为了创建一种机制, 以帮助当网络重新规划后, 域名方便的重新命名, 包括原来的和新添加的域名.
我们来想象一种情况: 有一个公司的网站, 如a.com, 其决定购买公司b.com, 其决定为b做一个a.com的子域, 并且让b.com做为a.com的子域, 即b.a.com. 换名话说, 为了保持原来的依然工作和兼容,b.a.com布置期间, b.com需要依旧工作. 这时, 管理员简单的在a.com的域中添加一条记录:
b DNAME b.com.
当查询时, 如查询 www.b.a.com 时, 解析器会收到一个b.a.com的DNAME结果b.com;解析器需要转换要查询的域名到www.b.com并解析. 在应答中, 包含一个请求的域名的CNAME记录, 值为使用DNAME替换后的域名. 这样, 对于不兼容DNAME的解析器也可以照常工作.
我们经常会碰到一个问题: 有个域名, 将将这个域名的顶级做CNAME, 如域名a.com,想做CNAME到b.com,这通常是不允许的(这是很容易犯的一个错误, cname只允许对子域名做CNAME).而使用DNAME就可以达到此目的.
如: a.com zone file:$TTL 3600 ; 1 hour
@ IN SOAns1.b.com. hostmaster.a.com. (
19 ; serial
43200 ; refresh (12 hours)
900 ; retry (15 minutes)
604800 ; expire (1 week)
3600 ; minimum (1 hour)
)
NSns1.b.com.
NSns2.b.com.
@ IN DNAME b.com.b.com zone file:$TTL 3600 ; 1 hour
@ IN SOAns1.b.com. hostmaster.b.com. (
15 ; serial
43200 ; refresh (12 hours)
900 ; retry (15 minutes)
604800 ; expire (1 week)
3600 ; minimum (1 hour)
)
NSns1
NSns2
@ IN A 10.1.1.2
www IN A 10.1.1.3
ftp IN A 2.2.2.2
ns1 IN A 10.8.1.1
ns2 IN A 10.8.1.2结果:# dig www.a.com @127.0.0.1
;; QUESTION SECTION:
;www.a.com. INA
;; ANSWER SECTION:
a.com. 3600 IN DNAME b.com.
www.a.com. 3600 IN CNAME www.b.com.
www.b.com. 3600 IN A 10.1.1.3
;; AUTHORITY SECTION:
b.com. 3600 INNSns2.b.com.
b.com. 3600 INNSns1.b.com.
;; ADDITIONAL SECTION:
ns1.b.com. 3600 INA 10.8.1.1
ns2.b.com. 3600 INA 10.8.1.2对于支持DNAME类型的dns provider,暂时还没有发展哪家支持(如果大家发现了可私信我).
参考资料:
http://www.informit.com/articles/article.aspx?p=19798
http://www.ietf.org/rfc/rfc2672.txt 不错,学习了
好久没去关注dns了。 回复 2# wenzk
dns盾支持dname
页:
[1]