dnspod-sr介紹
dnspod-sr 是一個運行在 Linux 平臺上的高性能的遞歸 DNS 服務器軟件,強烈公司內網或者服務器內網使用dnspod-sr,具有高性能、高負載、易擴展的優點,非 BIND、powerdns 等軟件能夠比擬。
dnspod-sr特性html
高性能,比全部流行的開源 DNS 軟件性能高出2倍以上前端
安全,能抵禦通常攻擊linux
穩定,有效下降解析失敗率git
主動刷新緩存,響應速度更快github
易於擴展,很是容易部署緩存
防污染,可以正確解析被污染域名安全
dnspod-sr安裝bash
方法一:下載源碼(推薦)
# git clone https://github.com/DNSPod/dnspod-sr.git
# cd dnspod-sr服務器
方法二:下載壓縮包網絡
# wget https://github.com/DNSPod/dnspod-sr/zipball/master
編譯源碼
# cd src
# make
不須要make install
運行
# ./dnspod-sr
備註:切記必定要在相對路徑下執行
dnspod-sr配置
若是你僅僅須要一個dns轉發器,那麼什麼都不須要配置,直接可使用。可是若是你想解析本身的域名。修改dnspod-sr上層目錄的root.z
增長NS記錄
ttlsa.com. 172800 IN NS ns1.ttlsa.com. ttlsa.com. 172800 IN NS ns2.ttlsa.com.
增長A記錄
ns1.ttlsa.com. 172800 IN A 173.255.219.122 ns2.ttlsa.com. 172800 IN A 173.255.219.122
備註:通過測試發現它不支持CNAME、官方文檔幾乎是空白.無奈.root.z的最後一行必定要一個空行,不然最後一條記錄解析不到。
驗證dns配置
驗證A記錄配置
# dig @127.0.0.1 ns1.ttlsa.com ; <<>> DiG 9.7.3-P3-RedHat-9.7.3-8.P3.el6_2.2 <<>> @127.0.0.1 ns1.ttlsa.com ; (1 server found) ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- 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
驗證NS記錄配置
# dig ns @127.0.0.1 ttlsa.com ; <<>> DiG 9.7.3-P3-RedHat-9.7.3-8.P3.el6_2.2 <<>> ns @127.0.0.1 ttlsa.com ; (1 server found) ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- 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
指定NS服務器
須要修改配置文件:sr.conf默認配置文件爲當前目錄下的 sr.conf,也能夠在命令行參數中指定
# ./dnspod-sr /path/of/sr.conf
若是須要爲特定域名指定DNS服務器,以 xfer 開頭,以下:
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 :
最後一行以`:`結束。以上的幾個域名解析請求都會中轉到8.8.8.8上.
配置日誌文件目錄(可選)
log_path: ./log/
dnspod-sr性能
dnspod-sr 依託於 DNSPod 多年運營和優化 DNS 服務的經驗,針對國內複雜的網絡狀況,對遞歸 DNS 進行了一系列的優化,比較其餘開源軟件,性能獲得大幅提高。
測試環境
千兆網卡,4核 CPU,4G 內存,Linux 64位系統。
性能測試
dnspod-sr: 15萬 qps
BIND 9.9: 7萬 qps
unbound 4.7: 8萬 qps
測試如圖:
集羣式部署
DNSPOD-SR說明文檔裏面提到支持集羣,也沒看出怎麼支持集羣,若是你想實現集羣,同步root.z文件,前端能夠用lvs、haproxy、keepalived等等來實現集羣,方法不少,不在多說了。
最後
在內網使用dnspod-sr值得推薦,配置簡單,集羣搭建也簡單。相比bind等等要簡單不少,可是功能也簡單。可是內網下足夠用了。dnspod-sr的wiki基本上空白,官方文檔沒本文詳細。官方文檔只包含了安裝,並未提到如何配置。
參考文章
DNSPOD-SR Wiki: https://github.com/DNSPod/dnspod-sr/wiki
網站:運維生存時間 網址:http://www.ttlsa.com/linux/dnspod-sr-little-dns/