dns 自動化管理平臺

   又一次開發DNS管理平臺,去年開發過兩個版本。來到新公司,又來了這樣的需求。好吧~  那就再開發一個版本。
前端

         去年第一個版本底層是bind,給予文件管理,這樣管理起來比較複雜,並且每次發佈持續時間特別長。第二個版本使用bind dlz,給予數據庫管理,穩定性太差。因此此次底層改成powerDns,也是給予數據庫管理,通過測試穩定性挺好,就是首次查詢效率和bind相比略慢。pdns也支持Cache,當第二次查詢的時候,速度基本和bind不差上下。python

        這裏就很少介紹Pdns了,若是想了解,能夠查看pdns 官方手冊。dns管理平臺大概拓撲以下:jquery

    

         wKiom1VtfYrgyqzcAAFq1hKg-c0663.jpg             > 經過DNS 管理平臺管理domain、record等記錄,將數據寫入到DB Serversql

       > 當Client 查詢record時,Pdns  Server 從DB Server 獲取數據,若是沒有記錄,使用pdns-recursor 模塊,forward到根服務器,進行遞歸查詢。
數據庫

     

        DNS管理平臺主要由如下組件開發完成:django

        後端語言:python  Django
bootstrap

        數據庫: Mysql
後端

        前端語言:jquery、Ajax、bootstrap
服務器

        Web服務器:Nginx、 Uwsgi
數據結構

   第三方組件:

wKioL1VtgQOAfibwAALF5ONHIns483.jpg

平臺大概功能介紹:

  1. 用戶管理:給予django-auth-ldap模塊和Ldap集成,實現用戶登入驗證。用戶權限管理,是經過平臺自身完成。

    wKioL1VtgcSwX2_cAAmxcMTjPtg805.jpg

  2. domain 和record 管理:實現對domain和record記錄的增刪改查。DB數據結構就是更改PDNS 官方提供的Domain和record表。我還增長了一張record_type表。

     wKioL1VtgrrwTqn2AAGIUZTrEgM103.jpg

                    Domain 展現

wKioL1VtgwLDMxoxAAMkCwremtw352.jpg                        record 展現

3. 日誌管理:主要記錄Domain和record操做的過程記錄下來。


wKioL1VthMvA4uQ2AAMYXdNthvs064.jpg

4.用戶管理:對用戶權限管理,權限這一起作的比較簡單。後期再進行更改吧~


wKiom1VtgtCwKMJyAAHSgELrWwk458.jpg

有了DNS 平臺,就不用每次更新記錄時苦逼咧咧登入到每臺機器上去修改了(也有不少開源的自動化工具也能夠實現~)。

使用dig能夠看一下pdns和bind的性能:

pdns:

第一次查詢大概用了3msec時間,第二次是從Cache中直接獲取的0msec。


wKiom1VthNqQ-_kZAAMW7z_JpmE016.jpg

wKioL1VthoPRDfK7AAMPq6VijHs936.jpg

bind查詢:第一次用時1msec,第二次用時0msec。


wKiom1VthYug7EbhAALXaR2s1os071.jpg

wKioL1VthzLipOtYAAK2gASGysQ102.jpg

pdns在dig 查詢時沒有AUTHORITY SECTION記錄,不知你們是否有注意。

相關文章
相關標籤/搜索