DNS之bind服务器配置

CentOS7编译环境安装

yum group install "Development Tools"

yum install openssl*

yum install -y lrzsz

配置环境

系统版本:centos Mysql: 8.0 BIND: 9.16.4

一、下载安装mysql

1.mysql文件下载

官网下载:https://dev.mysql.com/downloads/file/?id=497019

2.文件下载后上传至服务器

3.将下载好的mysql解压后放置在linux的/usr/local文件夹下解压,命令如下:

tar  -xvf  mysql-8.0.21-linux-glibc2.12-x86_64.tar

4.移动解压后的文件夹到安装目录

mv mysql-8.0.21-linux-glibc2.12-x86_64 /usr/local/mysql

5.创建data目录存放数据

cd /usr/local/mysql

mkdir data

6.使用root用户创建mysql组和用户

groupadd mysql

useradd -g mysql mysql

7.改变目录权限

chown -R mysql.mysql /usr/local/mysql/

8.初始化数据库

./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

初始化成功复制末尾出现的root密码.

9.配置mysql

在mysql/support-files创建文件my-default.cnf,命令如下:

cd /usr/local/mysql/support-files/

touch my-default.cnf

复制配置文件到/etc/my.cnf,命令如下:

cp -a ./my-default.cnf /etc/my.cnf

10.编辑my.cnf,命令如下:

vi /etc/my.cnf

文件中输入以下内容

[mysqld]

basedir = /usr/local/mysql

datadir = /usr/local/mysql/data

port = 3306

socket = /tmp/mysql.sock

其他参数配置可参考MySQL 8.0如何配置my.cnf

保存并退出;

11、配置mysql服务,命令如下:

cd .. 进入/usr/local/mysql目录

cp -a ./support-files/mysql.server /etc/init.d/mysqld

chmod +x /etc/rc.d/init.d/mysqld

chkconfig --add mysqld

# 检查是否生效

chkconfig --list mysqld

12. 配置全局环境变量

编辑 / etc/profile 文件

# vi /etc/profile

在 profile 文件底部添加如下两行配置,保存后退出

export PATH=$PATH:/usr/local/mysql/bin:/usr/local/mysql/lib

export PATH

source /etc/profile

13.启动MySQL服务,命令如下:

service mysql start

14.登录MySQL,命令如下:

mysql -uroot -p密码

15.修改密码:命令如下:

SET PASSWORD FOR 'root'@localhost=PASSWORD('123456'); (旧版)

alter user 'root'@'localhost' identified by 'jhzx1995@.'; (新版)

二、mysql配置

1.创建数据库dragon,

create database dragon;

use dragon;

2.新建表t_dns_records

CREATE TABLE `t_dns_records` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `zone` varchar(255) DEFAULT NULL,
  `host` varchar(255) DEFAULT NULL,
  `type` enum('MX','CNAME','NS','SOA','A','PTR','NAPTR') DEFAULT NULL,
  `data` varchar(255) DEFAULT NULL,
  `nsa_data` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT 'ns对应的a记录',
  `ttl` int(11) DEFAULT NULL,
  `mx_priority` int(11) DEFAULT NULL,
  `refresh` int(11) DEFAULT NULL,
  `retry` int(11) DEFAULT NULL,
  `expire` int(11) DEFAULT NULL,
  `minimum` int(11) DEFAULT NULL,
  `serial` bigint(20) DEFAULT NULL,
  `resp_person` varchar(64) DEFAULT NULL,
  `primary_ns` varchar(64) DEFAULT NULL,
  `naptr_order` bigint(2) DEFAULT NULL,
  `naptr_preference` bigint(9) DEFAULT NULL,
  `naptr_flags` varchar(20) DEFAULT NULL,
  `naptr_service` varchar(20) DEFAULT NULL,
  `naptr_regexp` varchar(100) DEFAULT NULL,
  `org_id` bigint(20) DEFAULT NULL COMMENT '行业机构ID',
  `is_delete` int(2) DEFAULT '0' COMMENT '是否删除1:是0:否',
  `created_at` datetime DEFAULT CURRENT_TIMESTAMP,
  `updated_at` datetime DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`),
  UNIQUE KEY `zone_2` (`zone`,`host`,`naptr_service`),
  KEY `host` (`host`),
  KEY `zone` (`zone`),
  KEY `orgId` (`org_id`)
) ENGINE=InnoDB AUTO_INCREMENT=160 DEFAULT CHARSET=utf8

新建t_axfr_table表:

CREATE TABLE IF NOT EXISTS t_axfr_table (

id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,

zone VARCHAR(255) NOT NULL,

CLIENT VARCHAR(255) NOT NULL,

PRIMARY KEY(id),

KEY CLIENT (CLIENT),

KEY zone (zone)

) ENGINE=INNODB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;

3.插入zone信息

INSERT INTO `dns_records` (`zone`, `host`, `type`, `data`, `ttl`,`mx_priority`,

`refresh`, `retry`, `expire`, `minimum`, `serial`, `resp_person`, `primary_ns`

) VALUES ('yangbo.net', '@', 'SOA', 'ns.yangbo.net.', 600, NULL, 600, 3600, 86400,

10, 2011061200, 'sys.yangbo.net.', 'ns.yangbo.net.');

INSERT INTO `dns_records` (`zone`, `host`, `type`, `data`, `ttl`) VALUES

('yangbo.net.', '@', 'NS', 'ns.yangbo.net.', 600),

INSERT INTO `dns_records` (`zone`, `host`, `type`, `data`) VALUES

('yangbo.net', 'ns', 'A', '192.168.1.1'),

INSERT INTO `dns_records` (`zone`, `host`, `type`, `data`, `ttl`) VALUES

('yangbo.net', 'www', 'A', '192.168.1.55', 600);

三、下载安装bind

1.官网下载bind-9.16.4.tar.xz;

2.解压并进入目录

tar -xvf bind-9.16.4.tar.xz;

cd bind-9.16.4

3.执行编译命令

./configure --prefix=/usr/local/bind --enable-epoll --enable-largefile --enable-threads=no --with-dlz-mysql=/usr/local/mysql --disable-openssl-version-check

4.编译中报错解决

①报错:configure: error: Python >= 2.7 or >= 3.2 and the PLY package are required for dnssec-keymgr and other Python-based tools.

执行pip install ply

②报错:checking for libuv... checking for libuv >= 1.0.0... no configure: error: libuv not found

执行以下命令安装libuv

yum install -y epel-release

yum install libuv

yum install libuv-devel

③如果在编译过程中出现sys/capability.h usability... no

执行以下命令安装libcap*

yum -y install libcap*/yum install libcap-devel

5.安装bind

make

make install

6.配置bind

配置bind 环境变量

# echo "export PATH=${PATH}:/usr/local/bind/sbin/:/usr/local/bind/bin/" >> /etc/profile

# source /etc/profile

7. 配置rndc

# cd /usr/local/bind/etc/

# rndc-confgen >rndc.conf

cat rndc.conf >rndc.key生成key.conf

tail -10 rndc.conf | head -9 | sed s/#\ //g > named.conf 生成named.conf

8.配置named.conf

# named.conf添加其他配置

#  options {

directory "/var/named/";

recursion yes;

listen-on port 53    { any; };

dump-file "/var/named/data/cache_dump.db";

statistics-file "/var/named/data/named_stats.txt";

allow-query { any; };

blackhole { none; };

};

9.创建named文件夹

# mkdir /var/named/

# wget -O /var/named/named.ca  http://www.internic.net/domain/named.root

10. 启动named,查看根递归解析域名是否成功

/usr/local/bind/sbin/named -c /usr/local/bind/etc/named.conf -g (debug启动)

/usr/local/bind/sbin/named -c /usr/local/bind/etc/named.conf (正常启动)

11.如果启动的时候报错

named: error while loading shared libraries: libmysqlclient.so.21: cannot open shared object file: No such file or directory

问题解决:

vi /etc/ld.so.conf 添加下一行内容

/usr/local/mysql/lib 此为mysql安装的绝对路径下的lib文件夹下

ldconfig 执行以生效

再启动

#dig www.baidu.com @127.0.0.1

如果这一步成功的话,一个基本的dns就搭建成功了。

四、配置dlz数据库查询

配置Mysql zone, 在named.conf中加入

dlz "Mysql zone" {

database        "mysql

{host=rm-2zej0pm00st46xa7cvo.mysql.rds.aliyuncs.com  dbname=dragon-test ssl=false port=3306 user=dragon_test pass=OID!@$qwer0730}

{select zone from t_dns_records_1 where zone='$zone$'}

{select ttl, type, mx_priority, case when lower(type)='txt' then concat('\"', data, '\"') when lower(type) = 'naptr' then concat(' ', naptr_order, ' ', naptr_preference, ' \"', naptr_flags, '\"', ' \"', naptr_service, '\"', ' \"', naptr_regexp,'\" ', data, '.') else data end from t_dns_records_1 where zone = '$zone$' and host = '$record$' and is_delete = '0' and not (type = 'SOA')}

{select ttl, type, mx_priority, data, resp_person, serial, refresh, retry, expire, minimum from t_dns_records_1 where zone = '$zone$' and is_delete = '0' and (type = 'SOA')}

{select ttl, type, host, mx_priority, case when lower(type)='txt' then concat('\"', data, '\"') else data end, resp_person, serial, refresh, retry, expire,minimum from t_dns_records_1 where zone = '$zone$'}

{select zone from t_axfr_table where zone = '$zone$' and client = '$client$'}

{update data_count set count = count + 1 where zone ='$zone$'}";

search yes;

};

使用bind+dlz+mysql实现动态配置DNS相关推荐

  1. bind9 dlz mysql_利用BIND+DLZ+MYSQL构建企业智能DNS

    目录: 一.简介 二.服务规划 三.安装BIND及基本环境 四.配置Bind-View-DLZ-MYSQL 五.添加相关记录并进行测试 六.配置从DNS 七.本文以FreeBSD 10.2 stabl ...

  2. bind dlz mysql rpm_智能DNS --BIND DLZ+MYSQL

    智能DNS --BIND DLZ+MYSQL 一.概念介绍: 1.智能DNS: 智能DNS就是根据用户的来路,自动智能化判断来路IP返回给用户,而不需要用户进行选择. 智能DNS与普通DNS区别: 普 ...

  3. bind dlz mysql ptr_Bind+DLZ+MySQL智能DNS的正向解析和反向解析实现方法

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

  4. mysql dlz驱动,bind dlz mysql的配备

    bind dlz mysql的配置 部分配置 配置文件name.conf logging { channel query_log { file "/byread/logs/bind/quer ...

  5. bind dlz mysql rpm_BIND+DLZ+MYSQL | 学步园

    BIND+DLZ+MYSQL BIND-DLZ实验环境:RHEL4 所用到的软件包:BIND-9.5.0-P2.tar.gz(9.4.2以上版本都已经包含了DLZ补丁).Mysql-5.0.56.ta ...

  6. bind dlz mysql rpm_MySQL+BIND-dlz 实现智能DNS

    配置环境 系统:centos 6.8 Mysql: 5.7 BIND: 9.11.0 CentOS6编译环境安装 yum groupinstall "Development Tools&qu ...

  7. bind dlz mysql ptr_bind-dlz结合mysql实现智能DNS

    下面介绍bind结合mysql实现智能dns,以centos-6 32为例安装 安装mysql yum install gcc gcc-c++ openssl-devel wget ncurses-d ...

  8. centos 6.2 bind dlz mysql 驱动,bind9 dlz mysql 配置 – daemon

    1.数据库安装 yum -y install mysql-community-server mysql-community-devel 2.编译安装bind 一些基础的包,请参考前一章 ./confi ...

  9. with dlz mysql 条件_BIND+DLZ+MYSQL实现区域记录动态更新

    BIND+DLZ+MYSQL实现区域记录动态更新 [zonshy] BIND-DLZ实验环境:RHEL4 所用到的软件包:BIND-9.5.0-P2.tar.gz(9.4.0以上版本都已经包含了DLZ ...

最新文章

  1. 前端HTML渲染带箭头的线
  2. linux下tomcat无法访问问题(换一种说法:无法访问8080端口)
  3. 基于c#的相关性分析_基于数字高程模型的城市地貌与地名相关性分析——以兰州市为例...
  4. CRT exCRT模板
  5. 闲来无事,做了个简单的在线编辑的mock服务
  6. 安卓进阶系列-06数据库框架(LitePal)的使用
  7. 三维设计和动画:Cinema 4D R25 for mac(c4d r25)
  8. [HDU1754]I Hate It线段树裸题
  9. ubuntu中颜色拾取器的安装以及16进制ARGB值在线转颜色
  10. SONiC testbed
  11. 苹果mac隐藏文件夹怎么显示?
  12. C语言解题:破损的键盘
  13. 执行fadein追加css,基于CSS3完成淡入(fadeIn)淡出(fadeOut)结果
  14. man fgetc fgets getc getchar ungetc
  15. 大数据--论文读后感
  16. html图片文字下方,css图片下边怎么加字
  17. [BZOJ3837][Pa2013][随机][乱搞]Filary
  18. 北京大学医疗科技风论文答辩PPT模板
  19. mybatis一级缓存、二级缓存以及集成EnCache、Redis,避免脏读
  20. QQ技术全攻略(原来简单的QQ,还隐藏着这么多秘密!)

热门文章

  1. 面试题:在9个点上画十条直线,每条直线上至少三个点
  2. 对于目标检测中mAP@0.5的理解
  3. x264命令参数与代码中变量的对应关系
  4. 无线充电安全性如何?最安全的无线充电宝盘点
  5. 头条号:增加粉丝量 只需用四招!
  6. [摘记]数值方法02——内插法和外推法
  7. 第一、二、三代半导体的区别在哪里?
  8. WPS文档怎样转换为图片
  9. 3D标签云效果的实现
  10. TrafficStats 网络实时测速