銮居工匠 發表於 2023-8-6 00:00:00

dnspod-sr内网轻量级DNS首选方案

<p><strong>dnspod-sr介绍</strong><br>
dnspod-sr 是一个运行在 Linux 平台上的高性能的递归 DNS 服务器软件,强烈公司内网或者服务器内网使用dnspod-sr,具备高性能、高负载、易扩展的优势,非 BIND、powerdns 等软件可以比拟。<br><strong>dnspod-sr特性</strong></p>
<ul>
<li>    高性能,比所有流行的开源 DNS 软件性能高出2倍以上</li>
<li>    安全,能抵御一般攻击</li>
<li>    稳定,有效降低解析失败率</li>
<li>    主动刷新缓存,响应速度更快</li>
<li>    易于扩展,非常容易部署</li>
<li>    防污染,能够正确解析被污染域名</li>
</ul>
<p><strong>dnspod-sr安装</strong></p>
<p><span>方法一:下载源码(推荐)</span><br>
# git clone https://github.com/DNSPod/dnspod-sr.git<br>
# cd dnspod-sr</p>
<p><span>方法二:下载压缩包</span></p>
<p># wget https://github.com/DNSPod/dnspod-sr/zipball/master</p>
<p><span>编译源码</span><br>
# cd src<br>
# make<br>
不需要make install</p>
<p><span>运行</span><br>
# ./dnspod-sr</p>
<p>备注:切记一定要在相对路径下执行</p>
<p><strong>dnspod-sr配置</strong><br>
如果你仅仅需要一个dns转发器,那么什么都不需要配置,直接可以使用。但是如果你想解析自己的域名。修改dnspod-sr上层目录的root.z</p>
<p><span>增加NS记录</span></p><pre class="brush:bash;toolbar:false">ttlsa.com.           172800  IN      NS       ns1.ttlsa.com.
ttlsa.com.           172800  IN      NS       ns2.ttlsa.com.</pre><p><span>增加A记录</span></p><pre class="brush:bash;toolbar:false">ns1.ttlsa.com.           172800  IN      A       173.255.219.122
ns2.ttlsa.com.           172800  IN      A       173.255.219.122</pre><p>备注:经过测试发现它不支持CNAME、官方文档几乎是空白.无奈.root.z的最后一行一定要一个空行,否则最后一条记录解析不到。</p>
<p><strong>验证dns配置</strong><br><span>验证A记录配置</span></p><pre class="brush:bash;toolbar:false"># dig  @127.0.0.1 ns1.ttlsa.com

; &lt;&lt;&gt;&gt; DiG 9.7.3-P3-RedHat-9.7.3-8.P3.el6_2.2 &lt;&lt;&gt;&gt; @127.0.0.1 ns1.ttlsa.com
; (1 server found)
;; global options: +cmd
;; Got answer:
;; -&gt;&gt;HEADER&lt;&lt;- opcode: QUERY, status: NOERROR, id: 7843
;; flags: qr ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;ns1.ttlsa.com.                 IN      A

;; ANSWER SECTION:
ns1.ttlsa.com.          604800  IN      A       173.255.219.122

;; Query time: 1 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Sun Dec 22 04:29:35 2013
;; MSG SIZE  rcvd: 47</pre><p><span>验证NS记录配置</span></p><pre class="brush:bash;toolbar:false"># dig  ns @127.0.0.1 ttlsa.com    

; &lt;&lt;&gt;&gt; DiG 9.7.3-P3-RedHat-9.7.3-8.P3.el6_2.2 &lt;&lt;&gt;&gt; ns @127.0.0.1 ttlsa.com
; (1 server found)
;; global options: +cmd
;; Got answer:
;; -&gt;&gt;HEADER&lt;&lt;- opcode: QUERY, status: NOERROR, id: 39842
;; flags: qr ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;ttlsa.com.                     IN      NS

;; ANSWER SECTION:
ttlsa.com.              604800  IN      NS      ns1.ttlsa.com.
ttlsa.com.              604800  IN      NS      ns2.ttlsa.com.

;; Query time: 0 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Sun Dec 22 04:30:17 2013
;; MSG SIZE  rcvd: 75</pre><p><strong>指定NS服务器</strong><br>
需要修改配置文件:sr.conf默认配置文件为当前目录下的 sr.conf,也可以在命令行参数中指定</p><pre class="brush:bash;toolbar:false"># ./dnspod-sr /path/of/sr.conf</pre><p>如果需要为特定域名指定DNS服务器,以 xfer 开头,如下:</p><pre class="brush:bash;toolbar:false">    xfer:
    googleusercontent.com.:8.8.8.8
    google.com.:8.8.8.8
    youtube.com.:8.8.8.8
    s-static.ak.facebook.com.edgekey.net.:8.8.8.8
    :</pre><p>最后一行以<code>:</code>结束。以上的几个域名解析请求都会中转到8.8.8.8上.</p>
<p>配置日志文件目录(可选)</p><pre class="brush:bash;toolbar:false">    log_path:
    ./log/</pre><p><strong>dnspod-sr性能</strong></p>
<p>dnspod-sr 依托于 DNSPod 多年运营和优化 DNS 服务的经验,针对国内复杂的网络情况,对递归 DNS 进行了一系列的优化,比较其他开源软件,性能得到大幅提升。<br><span>测试环境</span><br>
千兆网卡,4核 CPU,4G 内存,Linux 64位系统。<br><span>性能测试</span></p>
<ul>
<li>    dnspod-sr: 15万 qps</li>
<li>    BIND 9.9: 7万 qps</li>
<li>    unbound 4.7: 8万 qps</li>
</ul>
<p>测试如图:</p>
<div id="attachment_4072" class="wp-caption alignnone"><img src="https://zhuji.jb51.net/uploads/img/20230517/ea3cd055a5207679c325e65841f53c44.jpg" width="522" height="225"><p class="wp-caption-text">dnspod-sr_benchmark</p>
</div>
<p><strong>集群式部署</strong><br>
DNSPOD-SR说明文档里面提到支持集群,也没看出怎么支持集群,如果你想实现集群,同步root.z文件,前端可以用lvs、haproxy、keepalived等等来实现集群,方法很多,不在多说了。</p>
<p><strong>最后</strong><br>
在内网使用dnspod-sr值得推荐,配置简单,集群搭建也简单。相比bind等等要简单很多,但是功能也简单。但是内网下足够用了。dnspod-sr的wiki基本上空白,官方文档没本文详细。官方文档只包含了安装,并未提到如何配置。<br><strong>参考文章</strong><br>
DNSPOD-SR Wiki: https://github.com/DNSPod/dnspod-sr/wiki<br>
TTLSA:http://www.ttlsa.com/html/4071.html</p>
<p>网站:运维生存时间   网址:http://www.ttlsa.com/linux/dnspod-sr-little-dns/</p>
頁: [1]
查看完整版本: dnspod-sr内网轻量级DNS首选方案