在公司的运营中,DNS还是很重要的,不仅名称解析需要DNS,一些重要的服务,比如负载均衡、HTTP 虚拟主机也会用到它。Bind 手工管理方式有一定的危险性,一旦写错格式就会造成 DNS 服务瘫痪。

之前我曾经用 Perl 开发过一套 Bind DNS 管理系统,但是它必须与 BIND DNS 运行在同一台服务器上,而且不支持集群操作。为了适应 Docker 和分布式部署的需要,我用 Python Django 重新开发了一套 Bind DNS Web 管理系统。

1. 系统特点:

  • 支持 View 视图(为不同地址的用户提供不同地址的解析)
  • 支持 DNS 集群(可创建主、从服务器,”从服务器“自动从“主服务器”同步)
  • Web 管理服务器与 DNS 服务器分离
  • 采用 Bind 默认方式,不使用 dlz 数据库模式(为了确保服务高性能和稳定性)
  • DDNS 方式动态修改记录

关于第4点,根据 dlz 的测试,dlz 方式的吞吐量要比 Bind 默认方式差 20到30倍,因此我决定采用 Bind 默认方式。

2. 功能实现方式:

不采用 dlz 数据库模式给系统的设计和开发带来一定的复杂性。我采用下述方式实现相关功能:

  • 视图管理:文件操作 + rndc
  • 域管理:文件操作 + rndc
  • 记录管理:dnspython

3. 效果图

小屏幕(手机)适配:

[系统开发] Python 实现的 Bind 智能 DNS Web 管理系统的更多相关文章

  1. bind智能DNS + bindUI管理系统

    bind UI 管理系统 https://github.com/cucker0/BindUI # bind安装 cd /usr/local/src wget http://ftp.isc.org/is ...

  2. bind智能DNS + bindUI管理系统(postgresql + bind dlz)

    # 软件环境: * Centos 7.6 * bind-9.14.1.tar.gz * postgresql 11 * python 3.7 * django 2.2.1 QPS:单节点1590 qp ...

  3. BindWeb - Bind智能DNS管理系统介绍

    2019-05-08 演示网站: https://bindw.cdneks.com demo/demo 2018-11-27 修改部署架构,取消网络共享存储设备,在每台BIND服务器启用NFS4并仅向 ...

  4. [系统开发] 一个基于Django和PureCSS的内容管理系统

    这是我刚开发的一套基于Django和PureCSS的内容管理系统,目标是优雅.简洁.实用,目前功能还在完善中. 系统参考了网上的教程,除了文章管理.搜索.RSS,还增加了类别管理.用户管理,以及评论管 ...

  5. [系统开发] Bind DNS 管理系统

    一.问题的产生 很多公司的 DNS 是用 BIND 建立的:DNS 服务非常重要,BIND 功能虽然强大,但是是基于配置文件进行管理的,管理员对 DNS 进行的任何操作都要通过修改配置文件来实现,稍不 ...

  6. Bind+DLZ构建企业智能DNS/DNS

    Bind+DLZ构建企业智能DNS   目录:一.简介二.服务规划三.安装BIND及基本环境四.配置Bind-View-DLZ-MYSQL五.添加相关记录并进行测试六.配置从DNS七.补充 一.简介: ...

  7. lvs+keepalived+bind实现负载均衡高可用智能dns【转】

    转:https://www.cnblogs.com/mikeluwen/p/7068356.html 整体架构: 1.IP地址规划: Dns1:172.28.0.54 Dns2:172.28.0.55 ...

  8. lvs+keepalived+bind实现负载均衡高可用智能dns

    整体架构: 1.IP地址规划: Dns1:172.28.0.54 Dns2:172.28.0.55 Dr服务器主:172.28.0.57 Dr服务器从:172.28.0.67 Vip:172.28.0 ...

  9. Bind+DLZ+MySQL智能DNS的正向解析和反向解析实现方法

    使用文本配置文件的配置方式结合bind的最新的acl和view特性来实现智能DNS想必很多人已经很熟悉了,使用MySQL数据库来存放zone文件的方式可能也不少.对于两者都熟悉的,实现 Bind+DL ...

随机推荐

  1. 认识Java

    java出生地:SUN Microsystems Inc<开源>     -SUN : Standford University Network java之父:James Gosling ...

  2. 极路由访问Apple Store可以浏览但是不能下载的解决方案

    最近在家里上网突然发现Apple Store不能更新了.重启路由器发现最开始一会是能下载更新的,但是过了一会就完全不能下载更新了.很是奇怪,今天特意分析了一下这个问题. 首先,抓包确定Apple St ...

  3. Python Django 数据库操作

    1. 建立app 在自己的工程项目目录下输入: python manage.py startapp myapp(你想建立的app名称) 建立一个叫myapp的app 这样,在你的工程项目目录下会出现一 ...

  4. css总结(更新中...)

    下面总结的都是我实际使用后有效的. 1.select的默认样式不好看,怎么去掉默认样式呢,如下: .select{text-indent: inherit !important; background ...

  5. [.NET] CErrStack 方便地管理错误或异常

    Option Explicit On Option Strict On Imports System.Reflection Imports System.Diagnostics Public Stru ...

  6. 推荐一些不错的计算机书籍(php c mysql linux等等)

    推荐一些不错的计算机书籍. # PHP<PHP程序设计>(第2版)  --PHP语法和入门最好的书<PHP5权威编程>  --PHP入门后升级书<深入PHP:面向对象.模 ...

  7. Angular--$http服务

    关于Angular中$http 服务是对XMLHttpRequest 对象的封装,向服务器发送请求: 下面自己在angular中$http学习的一个记录, GET请求(先贴码) angualr代码: ...

  8. 2017 年值得一瞥的 JavaScript 相关技术趋势

    跨年前两天,Dan Abramov在Twitter上提了一个问题: JS社区毫不犹豫的抛出了它们对于新技术的预期与期待,本文内容也是总结自Twitter的回复,按照流行度降序排列.有一个尚未确定的小点 ...

  9. php +ajax

    index.php <html> <head> <meta charset="UTF-8"> <title>Ajax+PHP< ...

  10. MediaCodec Name & Type

    OMX.google.mp3.decoder support type:audio/mpegOMX.google.amrnb.decoder support type:audio/3gppOMX.go ...