New DNS Service

一直有感於沒有足夠好用的 DNS 服務,於是自己寫了一個。

DNSPod 免費版限制太多收費版還是不夠好玩兒,Amazon Route53 的 Latency-Based 記錄也如同雞肋,完全起不到 GeoIP 的作用,至於 Dyn … 呃好吧這家比較贊但是我還是喜歡自己折騰一下XD

介紹一下架構:

DNS 基於 PowerDNS + NodeJS + MySQL,一共用了 18 + 2 + 2 台 VPS,DNS 節點內存均爲 1G。

其中 14 台是 AnyCast DNS,對外只用一個 IP,不過從監控來看好像只有幾個節點比較忙其他幾個都好冷清,感覺好浪費 :-( 使用率太低以及服務商響應速度不理想,已經下線

另外 4 台是 UniCast DNS。

  • DigitalOcean San Francisco Datacenter (ns1)
  • 美團開放服務 北京數字北京機房(ns2)
  • Nlayer Los Angeles Datacenter (ns3)
  • ChinaCache 北京順義海航機房 (ns4)

另外還有兩臺跑 Portal 和 API,和數據庫在同一個機房不過爲了保證被攻擊時被誤傷所以沒有放在同一臺機器上嗯。

至於 GeoDNS,我使用的是 MaxMind 的 GeoLite 庫和由魔熊維護的 SinaIP 庫來解析地址。

系統已經上線快一週了,運行正常,求壓力測試。

貼一張狀態照。

QQ20130812-1.png

吖,對了另外提供個小工具,可以通過 dig 來查詢自己的 IP 地址什麼的:
需要注意一下裏面的 TXT 記錄是用 Punycode 編碼過的。

1
2
3
4
5
6
7
8
# 查詢 IP 地址
dig ip.noquery A @ns1.noquery.net
# 查詢 IP 所屬組織
dig organization.geoip.engine.noquery TXT @ns1.noquery.net
# 查詢 IP 所在城市信息
dig city.geoip.engine.noquery TXT @ns1.noquery.net
# 查詢 IP 所在國家信息
dig country.geoip.engine.noquery TXT @ns1.noquery.net