dns 自動化管理平臺

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

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

        這裏就不多介紹Pdns了,如果想了解,可以查看pdns 官方手冊。dns管理平臺大概拓撲如下:

    

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

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

     

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

        後端語言:python  Django

        數據庫: 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記錄,不知大家是否有注意。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章