在公司的运营中,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. 2016-08-01一起领略ReactJs的风采

    现在最热门的前端框架有AngularJS.React.Bootstrap等.自从接触了ReactJS,ReactJs的虚拟DOM(Virtual DOM)和组件化的开发深深的吸引了我,下面来跟我一起领 ...

  2. BZOJ 3339 && BZOJ 3585 莫队+权值分块

    显然若一个数大于n就不可能是答案. #include <iostream> #include <cstring> #include <cstdio> #includ ...

  3. 整数中1出现的次数(从1到n整数中1出现的次数)

    题目:求出1~13的整数中1出现的次数,并算出100~1300的整数中1出现的次数?为此他特别数了一下1~13中包含1的数字有1.10.11.12.13因此共出现6次,但是对于后面问题他就没辙了.AC ...

  4. Hibernate 开发流程

    Hibernate内部分装的技术:JDBC(Java Data Base Connectivity), JTA(Java Transaction API) , JNDI(Java Naming and ...

  5. Android SDK ADT下载地址

    http://dl.google.com/android/android-sdk_rXX-windows.zip http://dl.google.com/android/ADT-X.X.X.zip ...

  6. 原创: How to build a query based on Definition Updates installed

    In SCCM 2012 R2, you can use following class. Use SMS_CombinedDeviceResources.EPAntivirusSignatureLa ...

  7. C#基础——系统登录功能的实现

    一般的登陆界面,都是利用用户名和密码在数据库的匹配关系,来实现登陆的跳转功能. 首先介绍用户数据表的设计. 其中ID列需要设置好增量标识,随着用户的增加,ID的值递增,避免重复. 然后是C#中对数据库 ...

  8. SQL --Chapter 04 数据更新

    数据的插入(INSERT语句的使用方法) INSERT INTO ShohinIns (shohin_id, shohin_mei, shohin_bunrui, hanbai_tanka, 原则上, ...

  9. mac下 jenkins 环境搭建

    这几天搞了一些持续集成的工作,在所难免的接触到了jenkins ,下边写一下jenkins 在 mac os 环境下的搭建和配置. 1.tomcat 下载 前往apache 官网下载所需版本的tomc ...

  10. UE4 Windows平台部署游戏到IOS 第二部分

    点击加号后会出来如下截图 勾选上红色单选框处(因为这个我已经申请过了所以是灰色),然后continue到后面会出现下图 选择一个之前我提到申请证书会用的的那个.csr后缀文件夹,完成以后就可以下载证书 ...