经过两周开发,DNS管理平台终于开发完成。今天正好有时间,给大家分享一下。

1.整体架构

      > DNS 服务器分成两组,每组在不同的机房。保障一组机器出现问题,减少对用户的影响。

> 每组DNS服务器使用lvs,实现负载均衡。

> 针对不同运营商的用户,可以将dns 服务器分成两个view(我分成了电信和其它,你可以根据自己的业务进行定义)。

>使用dns的dlz功能,将zone和记录都保存至数据库,每次更改记录时,无需重新启动服务。

> DNS管理平台对zone和记录进行管理。

2. DNS服务器搭建

> 首先在每台DNS服务器安装bind软件,配置DLZ#安装bind之前,首先安装mysql服务端和mysql-devel

yum install mysql-devel mysql-server mysql

#安装bind-9.9.5版本

#bind-9.9.5+版本才支持dlz功能

wget http://www.isc.org/downloads/file/bind-9-9-5-w1/?version=tar.gz

tar -zxvf bind-9-9-5.tar.gz

LDFLAGS=-L/usr/lib64/mysql ./configure --prefix=/usr/local/mydns/ --enable-rrl --enable-threads --enable-newstats --with-dlz-mysql  && make && make install

#配置BIND

#/usr/local/mydns/etc/named.conf   bind配置文件

key "rndc-key" {

algorithm hmac-md5;

secret "keZqPKmKedNuLBV2R3bwAg==";

};

controls {

inet 127.0.0.1 port 953

allow { 127.0.0.1; } keys { "rndc-key"; };

};

options {

tcp-clients 50000;

directory "/usr/local/mydns/etc/";

pid-file "/usr/local/mydns/log/mydns.pid";

dump-file "/usr/local/mydns/log/mydns_dump.db";

statistics-file "/usr/local/mydns/log/mydns.stats";

rate-limit {

nxdomains-per-second 3;

window 1;

};

recursion no;

version "david-bind9-version.1.00";

allow-notify       { none; };

allow-recursion    { none; };

key "rndc-key" {

algorithm hmac-md5;

secret "keZqPKmKedNuLBV2R3bwAg==";

};

controls {

inet 127.0.0.1 port 953

allow { 127.0.0.1; } keys { "rndc-key"; };

};

options {

tcp-clients 50000;

directory "/usr/local/mydns/etc/";

pid-file "/usr/local/mydns/log/mydns.pid";

dump-file "/usr/local/mydns/log/mydns_dump.db";

statistics-file "/usr/local/mydns/log/mydns.stats";

rate-limit {

nxdomains-per-second 3;

window 1;

};

recursion no;

version "david-bind9-version.1.00";

allow-notify       { none; };

allow-recursion    { none; };

allow-transfer     { none; };

allow-query        { any; };

};

logging {

channel info

{

file "/usr/local/mydns/log/dns_warnings" versions 3 size 100m;

severity warning;

print-category yes;

print-severity yes;

print-time yes;

};

channel general_dns

{

file "/usr/local/mydns/log/dns_logs" versions 3 size 100m;

severity info;

print-category yes;

print-severity yes;

print-time yes;

};

category default { info; };

category queries { general_dns; };

category client { info; };

category resolver { info; };

category lame-servers { null; };

};

include  "/usr/local/mydns/etc/master.conf";

#/usr/local/mydns/etc/master.conf

#/usr/local/mydns/etc/ct_acl_list.conf 是电信ACL列表

include "/usr/local/mydns/etc/ct_acl_list.conf";

view CT {

match-clients {CT;};

dlz "Mysql zone" {

database "mysql

{host=x.x.x.x dbname=mydns  port=3308 user=root pass=xxxxx}   #连接的数据库

{select zone from bind_ct  where zone = '$zone$' limit 1}

{select ttl, type, data, resp_person, serial, refresh,retry, expire, minimum from bind_ct  where zone ='$zone$' and host = '$record$'}";

};

};

view  ANY  {

match-clients {any;};

dlz "Mysql zone" {

database "mysql

{host=x.x.x.x dbname=mydns  port=3308 user=root pass=xxxxxx}

{select zone from bind_any where zone = '$zone$' limit 1}

{select ttl, type, data, resp_person, serial, refresh,retry, expire, minimum from bind_any where zone ='$zone$' and host = '$record$'}";

};

};

#启动bind

/usr/local/mydns/sbin/named -4

#表结构

mysql> desc bind_ct;

+-------------+------------------+------+-----+---------+----------------+

| Field       | Type             | Null | Key | Default | Extra          |

+-------------+------------------+------+-----+---------+----------------+

| id          | int(10) unsigned | NO   | PRI | NULL    | auto_increment |

| zone        | varchar(255)     | NO   | MUL | NULL    |                |

| host        | varchar(255)     | NO   | MUL | @       |                |

| type        | varchar(6)       | NO   | MUL | NULL    |                |

| data        | varchar(255)     | NO   |     | NULL    |                |

| ttl         | int(11)          | NO   |     | 86400   |                |

| mx_priority | varchar(6)       | YES  |     | NULL    |                |

| refresh     | int(11)          | YES  |     | NULL    |                |

| retry       | int(11)          | YES  |     | NULL    |                |

| expire      | int(11)          | YES  |     | NULL    |                |

| minimum     | int(11)          | YES  |     | NULL    |                |

| serial      | bigint(20)       | YES  |     | NULL    |                |

| resp_person | varchar(255)     | YES  |     | NULL    |                |

+-------------+------------------+------+-----+---------+----------------+

13 rows in set (0.00 sec)

#插入数据

mysql> insert into bind_ct(zone, host, type, data, ttl) values('david.com', 'www', 'A', '202.106.11.3', '600');

Query OK, 1 row affected, 2 warnings (0.00 sec)

>测试

3.DNS 管理平台

DNS管理平台主要功能批量增加记录、删除记录、修改记录、备份记录等功能。

页面展示:

批量添加:

本系统已经上线,代码不方便share。将思路share给大家,还请大家多提意见。

bind mysql django_Django+bind dlz DNS管理平台相关推荐

  1. with dlz mysql 条件_Flask Bind-DLZ + Mysql DNS管理平台

    系统环境:CentOS 6.5 X64 软件版本: 绑定-9.9.5.tar.gz mysql-5.6.16.tar.gz 描述: 数据库安装就不在这里具体说了,了解运维的同学都应该知道,不知道的大家 ...

  2. Flask Bind-DLZ + Mysql DNS管理平台

    系统环境:CentOS 6.5 X64 软件版本: 绑定-9.9.5.tar.gz mysql-5.6.16.tar.gz 描述: 数据库安装就不在这里具体说了,了解运维的同学都应该知道,不知道的大家 ...

  3. python dns管理平台_python dns服务器

    使用PyDNS查询 PyDNS并不是作为标准的Python发行版本的一部分而随Python一起发行的.因此,必须单独安装,可以从http://pydns.sourceforge.net/下载,然后按照 ...

  4. 【BlackHat】亚马逊和谷歌修复DNS即平台中的严重漏洞

     聚焦源代码安全,网罗国内外最新资讯! 编译:奇安信代码卫士 在2021年美国黑帽大会上,云安全公司 Wiz 的两名安全研究员Shir Tamari 和 AmiLuttwak 披露了影响DNS托管服务 ...

  5. spring boot高校二手教材管理平台 毕业设计-附源码231057

    目  录 摘要 1 1 绪论 1 1.1 研究意义 1 1.2开发现状 1 1.3论文结构与章节安排 1 2高校二手教材管理平台 系统分析 3 2.1 可行性分析 3 2.2 系统流程分析 3 2.2 ...

  6. 基于ssm的万卷图书馆借阅管理平台#计算机毕业设计

    在当今知识经济时代的影响下,书籍已成为人们日常生活中必不可少的一部分.在高校中,学生在业余时间,经常会选择去图书馆借阅图书进行阅读.学生通过在图书馆查看借阅图书,博览群书,提高个人的阅读水平,并且能够 ...

  7. java基于ssm的万卷图书馆借阅管理平台

    在当今知识经济时代的影响下,书籍已成为人们日常生活中必不可少的一部分.在高校中,学生在业余时间,经常会选择去图书馆借阅图书进行阅读.学生通过在图书馆查看借阅图书,博览群书,提高个人的阅读水平,并且能够 ...

  8. (附源码)springboot高校二手教材管理平台 毕业设计 231057

    目  录 摘要 1 绪论 1.1 研究意义 1.2开发现状 1.3论文结构与章节安排 2高校二手教材管理平台 系统分析 2.1 可行性分析 2.2 系统流程分析 2.2.1数据增加流程 2.3.2数据 ...

  9. 湘潭市瓶装液化气配送管理平台计算机毕业设计源码74109

    springboot湘潭市瓶装液化气配送管理平台 摘 要 随着社会的发展,社会的方方面面都在利用信息化时代的优势.互联网的优势和普及使得各种系统的开发成为必需. 本文以实际运用为开发背景,运用软件工程 ...

最新文章

  1. hdu1160FatMouse's Speed(DP)
  2. linux 简单dns搭建,搭建一个简易的DNS服务
  3. Jenkins 最新版qq邮箱配置实例演示,5步设置保证邮件接收成功!
  4. openglshader实现虚拟场景_opengl+shader
  5. WebDriver API元素的定位
  6. 小写大写转换_小写到大写转换器JavaScript工具| 网络应用项目
  7. python 获取当前月份月初日期和月末日期
  8. Windows系统好用的文本编辑器
  9. GitHub的安装及使用
  10. 微信发红包功能的测试用例
  11. capslock键英语怎么读_capslock是什么意思
  12. swagger配置及注解详解
  13. android加速传感器应用,如何在android智能手机中使用加速计传感器查找位移距离?...
  14. openflow交换机 ryu_ryu—交换机
  15. 希尔伯特曲线 java_希尔伯特曲线(示例代码)
  16. 如何在PowerPoint中创建自定义模板
  17. 计算机研究生就业方向之考编
  18. 简易的记账软件设计与实现
  19. js里双重否定的作用
  20. 从工程预算到项目管理,『蓝凌低代码』让房企管理更简单

热门文章

  1. linux和windows接口中文乱码_Loadrunnerweb接口基础
  2. 通常所说的pc机是指微型计算机,2017年自考计算机应用基础精选习题及答案(1)
  3. python列表注解
  4. centos/Linux 解决使用sudo命令时xxx is not in the sudoers file.This incident will be reported
  5. 贝叶斯优化优化参数,以Kmeans为例
  6. Python批量替换掉某些值为新的值
  7. numpy 二维、高维矩阵重新排列轴与数据(轴转换)
  8. pandas apply()函数传参,与解决TypeError: xxxx() takes 2 positional arguments but 3 were given报错
  9. java代码运行Python程序
  10. 计算机组成部分有cpu吗,计算机组成原理笔记——处理器(1)[未完]