bind mysql django_Django+bind dlz DNS管理平台
经过两周开发,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管理平台相关推荐
- with dlz mysql 条件_Flask Bind-DLZ + Mysql DNS管理平台
系统环境:CentOS 6.5 X64 软件版本: 绑定-9.9.5.tar.gz mysql-5.6.16.tar.gz 描述: 数据库安装就不在这里具体说了,了解运维的同学都应该知道,不知道的大家 ...
- Flask Bind-DLZ + Mysql DNS管理平台
系统环境:CentOS 6.5 X64 软件版本: 绑定-9.9.5.tar.gz mysql-5.6.16.tar.gz 描述: 数据库安装就不在这里具体说了,了解运维的同学都应该知道,不知道的大家 ...
- python dns管理平台_python dns服务器
使用PyDNS查询 PyDNS并不是作为标准的Python发行版本的一部分而随Python一起发行的.因此,必须单独安装,可以从http://pydns.sourceforge.net/下载,然后按照 ...
- 【BlackHat】亚马逊和谷歌修复DNS即平台中的严重漏洞
聚焦源代码安全,网罗国内外最新资讯! 编译:奇安信代码卫士 在2021年美国黑帽大会上,云安全公司 Wiz 的两名安全研究员Shir Tamari 和 AmiLuttwak 披露了影响DNS托管服务 ...
- 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 ...
- 基于ssm的万卷图书馆借阅管理平台#计算机毕业设计
在当今知识经济时代的影响下,书籍已成为人们日常生活中必不可少的一部分.在高校中,学生在业余时间,经常会选择去图书馆借阅图书进行阅读.学生通过在图书馆查看借阅图书,博览群书,提高个人的阅读水平,并且能够 ...
- java基于ssm的万卷图书馆借阅管理平台
在当今知识经济时代的影响下,书籍已成为人们日常生活中必不可少的一部分.在高校中,学生在业余时间,经常会选择去图书馆借阅图书进行阅读.学生通过在图书馆查看借阅图书,博览群书,提高个人的阅读水平,并且能够 ...
- (附源码)springboot高校二手教材管理平台 毕业设计 231057
目 录 摘要 1 绪论 1.1 研究意义 1.2开发现状 1.3论文结构与章节安排 2高校二手教材管理平台 系统分析 2.1 可行性分析 2.2 系统流程分析 2.2.1数据增加流程 2.3.2数据 ...
- 湘潭市瓶装液化气配送管理平台计算机毕业设计源码74109
springboot湘潭市瓶装液化气配送管理平台 摘 要 随着社会的发展,社会的方方面面都在利用信息化时代的优势.互联网的优势和普及使得各种系统的开发成为必需. 本文以实际运用为开发背景,运用软件工程 ...
最新文章
- hdu1160FatMouse's Speed(DP)
- linux 简单dns搭建,搭建一个简易的DNS服务
- Jenkins 最新版qq邮箱配置实例演示,5步设置保证邮件接收成功!
- openglshader实现虚拟场景_opengl+shader
- WebDriver API元素的定位
- 小写大写转换_小写到大写转换器JavaScript工具| 网络应用项目
- python 获取当前月份月初日期和月末日期
- Windows系统好用的文本编辑器
- GitHub的安装及使用
- 微信发红包功能的测试用例
- capslock键英语怎么读_capslock是什么意思
- swagger配置及注解详解
- android加速传感器应用,如何在android智能手机中使用加速计传感器查找位移距离?...
- openflow交换机 ryu_ryu—交换机
- 希尔伯特曲线 java_希尔伯特曲线(示例代码)
- 如何在PowerPoint中创建自定义模板
- 计算机研究生就业方向之考编
- 简易的记账软件设计与实现
- js里双重否定的作用
- 从工程预算到项目管理,『蓝凌低代码』让房企管理更简单
热门文章
- linux和windows接口中文乱码_Loadrunnerweb接口基础
- 通常所说的pc机是指微型计算机,2017年自考计算机应用基础精选习题及答案(1)
- python列表注解
- centos/Linux 解决使用sudo命令时xxx is not in the sudoers file.This incident will be reported
- 贝叶斯优化优化参数,以Kmeans为例
- Python批量替换掉某些值为新的值
- numpy 二维、高维矩阵重新排列轴与数据(轴转换)
- pandas apply()函数传参,与解决TypeError: xxxx() takes 2 positional arguments but 3 were given报错
- java代码运行Python程序
- 计算机组成部分有cpu吗,计算机组成原理笔记——处理器(1)[未完]