<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[Snooda]]></title> 
<link>http://www.snooda.com/index</link> 
<description><![CDATA[Snooda's Blog]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[Snooda]]></copyright>
<item>
<link>http://www.snooda.com/read/</link>
<title><![CDATA[dns研究进阶-多ns记录（dns服务器）运行原理及设置]]></title> 
<author>snooda &lt;admin@snooda.com&gt;</author>
<category><![CDATA[网络]]></category>
<pubDate>Thu, 03 May 2012 07:05:27 +0000</pubDate> 
<guid>http://www.snooda.com/read/</guid> 
<description>
<![CDATA[ 
	&nbsp;&nbsp;&nbsp;&nbsp;五一节在家看rfc看的比较晕，rfc的英文貌似都比较晦涩，组织不够有条理，表述也比较模糊，很难了解到详细的东西，昨天公司同事推荐了DNS & BIND（DNS and BIND）这本书，大致浏览了一下，豁然开朗，写出一些总结。<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;之前有一个二级域是自己解析的，而顶级域是用一些dns商提供的域名解析服务，最近各个dns提供商的服务都不太靠谱了，国外的老是访问不了，国内的dnspod又很不稳定（高峰期动辄就几s的解析时间），于是开始考虑自建dns了。<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;自建dns首先要考虑的问题就是稳定性，毕竟vps稳定性比服务器还是要差一点，并且出了故障的恢复可能也没有那么及时，这样就需要研究在在线率只有99.5%这个级别的vps上如何搭建一个稳定性较高的dns服务。<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;经过研究dns的实现原理，发现dns从设计上就是一个高可用性的架构。<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;首先dns要求域名最少要有两条ns记录（我之前自己的二级域就设了一个貌似也没啥，但顶级域要求最少设置两个），以保证服务的稳定性。如果只有两台dns服务器，则设置成一主一从即可，从dns周期性从主dns获取最新结果，同步参数由SOA记录指定。如果dns比较多，可以设置多主dns，不过需要维护各个zone文件的统一性（可用rdist），每个域名受限于udp包的大小，最多设置10个左右的ns记录（从该书看到的，未详细考证）。<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;对于多个ns记录，windows的客户端和ubuntu的客户端会首先查询第一个记录，如果失败或超时，则查询下一个。对于某些客户端则会随机挑选一个。<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;这样的话需要把速度比较优秀的dns服务器放在第一个位置上，把备份服务器放在后面，这样即使第一个dns挂掉，后面的服务器一样能提供服务，只是速度会慢一点而已。但对于随机选ns的客户端就比较蛋疼了，会选到比较慢的服务器，不过这个还是待考证的，可以先搭建一下试试，看看比例如何。<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;另外搞清了上篇文章所说的域名自身ns记录的问题。很多顶级域的dns都会有@域的ns记录指向自己，之前理解有误，其实这些ns记录是对二级域生效的。这样设置是表示二级域和顶级域由相同的ns服务器负责解析。即使不设置这个记录，顶级域dns服务器也是可以解析子域的，但顶级域的ns记录缓存时间是不可控的（设置时没有ttl），有可能很快过期，这样的话解析二级域时就需要多次去com域dns上查询，而有了ns记录，可以自己控制ttl，在ttl没有过期的时间内，查询时可以直接命中ns记录去查询二级域，有效提高速度。<br/><br/>理论上顶级域dns只负责解析顶级域自身的a、mx、cname、ns记录等，其他二级域记录需要顶级域的ns记录指定的dns来解析，而一般大家使用dns托管的话，二级域名和顶级域往往是一起管理的，所以ns是指向自身的。<br/><br/>Tags - <a href="http://www.snooda.com/tags/dns/" rel="tag">dns</a> , <a href="http://www.snooda.com/tags/ns%25E8%25AE%25B0%25E5%25BD%2595/" rel="tag">ns记录</a>
]]>
</description>
</item><item>
<link>http://www.snooda.com/read/#blogcomment</link>
<title><![CDATA[[评论] dns研究进阶-多ns记录（dns服务器）运行原理及设置]]></title> 
<author> &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate> 
<guid>http://www.snooda.com/read/#blogcomment</guid> 
<description>
<![CDATA[ 
	
]]>
</description>
</item>
</channel>
</rss>