使用 PDNS 為你的項目提供穩定可靠的域名系統(DNS)服務器。
• 來源:linux.cn • 作者:Jonathan Garrido • 譯者:geekpi •
(本文字數:1711,閱讀時長大約:2 分鐘)
幾個月前,我們接到了一個要求,為一個新項目提供一個穩定可靠的域名系統( DNS )服務器。該項目使用容器進行自動部署,每個新環境都會生成唯一的隨機 URL。在對可能的方案進行了大量研究之后,我們決定嘗試一下 PowerDNS (PDNS)。
一開始,我們發現 PowerDNS 在所有主流 Linux 發行版中都得到了支持,它采用 GPL 許可,且倉庫保持更新。我們還在官方網站上發現了整潔、組織良好的 文檔 ,以及大量來自真正喜歡和使用該產品的人在網絡上的使用方法。看了一些并學習了一些基本命令之后,安裝了 PDNS,啟動并運行,我們的旅程開始了。
數據庫驅動
PowerDNS 將記錄保存在 SQL 數據庫中。這對我們來說是新變化,不必使用文本文件來保存記錄是一個不錯的更改。我們選擇 MariaDB 作為首選的強大工具,由于有大量的正確地設置來安裝名稱服務器的信息,我們可以完美地設置和加固我們的數據庫。
簡單配置
其次使我們感興趣的是 PDNS 的所有功能都在配置文件中。pdns.conf 有許多選項,你可以通過添加或刪除 # 號來啟用或禁用這些選項。這真是太神奇了,因為它使我們有機會將這項新的服務集成到我們現有的基礎架構中,并且只有我們想要的功能,不多也不少。一個簡單的例子:
誰可以訪問你的網絡服務器?
webserver-allow-from=172.10.0.1,172.10.1.2
我可以轉發基于域的請求嗎?當然!
forward-zones=mylocal.io=127.0.0.1:5300
forward-zones+=example.com=172.10.0.5:53
forward-zones+=lucky.tech=172.10.1.5:53
包含 API
我們可以使用配置文件進行激活 API 服務,解決了我們開發團隊的第一個需求,讓我們見識到了 PDNS 的強大。這個功能讓我們通過發送請求,簡單、干凈地創建、修改或刪除 DNS 服務器中的記錄。
這個 API 有一些基本的安全性參數,因此,只需幾步,你就可以基于 IP 地址和預共享密鑰驗證的組合來控制誰有權與名稱服務器進行交互。這是配置文件的樣子:
api=yes
api-key=lkjdsfpoiernf
webserver-allow-from=172.10.7.13,172.10.7.5
日志
在日志方面,PDNS 做得非常出色。你可以使用日志文件和一個簡單的內置 Web 服務器來監控服務器并查看計算機的運行狀況。你可以使用瀏覽器查看服務器不同類型的統計信息,例如 CPU 使用率和收到的 DNS 查詢。這非常有價值。例如,我們能夠檢測到一些“不太健康”的 PC,它們正在向我們的服務器發送與惡意流量相關的站點的 DNS 請求。深入查看日志后,我們可以看到流量來自何處,并對這些 PC 進行清理操作。
其他功能
這只是你使用 PowerDNS 可以做的所有事情的一點點。它還有更多的功能。它是一個擁有很多功能和特性的完整名稱服務器,因此值得一試。
目前,我們尚未部署 DNSSEC ,但似乎只需點擊一下即可將其快速投入生產環境。另外,在將遞歸服務與名稱服務器分離時,PowerDNS 有個不錯的方法。我了解到它還支持 DNS RPZ (響應策略區域),并且還提供了非常不錯且設計良好的前端,可讓你使用 Web 瀏覽器來管理服務器,如下圖。
PowerDNS frontend
信不信由你,你只需花費幾個小時了解 PDNS,就可以大大提高你對 DNS 和 IT 操作的了解。
via: opensource.com
作者: Jonathan Garrido 選題: lujun9972 譯者: geekpi 校對: wxy
本文由 LCTT 原創編譯, Linux中國 榮譽推出