`
cutesunshineriver
  • 浏览: 198780 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Bind9使用MySQL来管理Zone

阅读更多
部署环境:VirtualBox4.3.18 + 64位Redhat5.6 + Bind9.10 + MySQL5.6 + mysql-bind。

VirtualBox中对Redhat的网络连接方式不要用默认的网络地址转换(NAT),选用桥接网卡,这样主机和虚拟机可以双向通信。

MySQL5.6以RPM包形式安装,其默认路径分别如下。
BIN:/usr/bin/mysql
头文件H:/usr/include/mysql
库文件LIB:/usr/lib64  ##可以通过mysql_config --libs命令知道

1、解压Bind和mysql-bind,将mysql-bind下的mysqldb.h拷贝到bind的bin/named/include/named目录下,将mysqldb.c拷贝到bind的bin/named目录下。

2、修改Bind的bin/named目录下的MakeFile.in文件。
DBDRIVER_OBJS = mysqldb.@O@
DBDRIVER_SRCS = mysqldb.c
DBDRIVER_INCLUDES = -I'/usr/include/mysql/'
DBDRIVER_LIBS = -L'/usr/lib64/mysql' -lmysqlclient -lz -lcrypt -lnsl -lm -lc -lnss_files -lnss_dns -lresolv -lc -lnss_files -lnss_dns -lresolv


3、编辑bind源文件bin/named/main.c
--包含mysqldb.h,#include <named/mysqldb.h>
--在函数setup(void)里面ns_server_create()的前面添加mysqldb_init();
--在函数cleanup(void)里面ns_server_destroy()的后面添加mysqldb_clear();

4、编译安装bind
./configure
make
make install

5、创建数据库bind9,创建表kaopu。
CREATE TABLE kaopu (
  `name` varchar(255) default NULL,
  ttl int(11) default NULL,
  rdtype varchar(255) default NULL,
  rdata varchar(255) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

初始化数据:
insert into `kaopu` (`name`, `ttl`, `rdtype`, `rdata`) values('www.kaopu.com','3600','A','10.3.19.14');
insert into `kaopu` (`name`, `ttl`, `rdtype`, `rdata`) values('ns1.kaopu.com','3600','A','127.0.0.1');
insert into `kaopu` (`name`, `ttl`, `rdtype`, `rdata`) values('kaopu.com','3600','NS','ns1.kaopu.com');
insert into `kaopu` (`name`, `ttl`, `rdtype`, `rdata`) values('kaopu.com','3600','SOA','kaopu.com. www.kaopu.com. 2003080800 172800 900 1209600 3600');


6、配置Bind
--生成控制文件
rndc-confgen > /etc/named/rndc.conf
# Start of rndc.conf
key "rndc-key" {
        algorithm hmac-md5;
        secret "rHLs03YrlkgYVhFl7dZZ7A==";
};

options {
        default-key "rndc-key";
        default-server 127.0.0.1;
        default-port 953;
};
# End of rndc.conf

# Use with the following in named.conf, adjusting the allow list as needed:
# key "rndc-key" {
#       algorithm hmac-md5;
#       secret "rHLs03YrlkgYVhFl7dZZ7A==";
# };
#
# controls {
#       inet 127.0.0.1 port 953
#               allow { 127.0.0.1; } keys { "rndc-key"; };
# };
# End of named.conf


--生成named.conf
tail -10 rndc.conf | head -9 | sed s/#\ //g > named.conf
--编辑named.conf
key "rndc-key" {
        algorithm hmac-md5;
        secret "rHLs03YrlkgYVhFl7dZZ7A==";
};

controls {
        inet 127.0.0.1 port 953
              allow { 127.0.0.1; } keys { "rndc-key"; };
};

include "/etc/named/named.conf.options";

zone "." {
        type hint;
        file "/etc/named/named.root";
};

zone "localhost" {
        type master;
        file "/etc/named/named.localhost";
};

zone "kaopu.com" IN {
        type master;
        notify no;
        database "mysqldb bind9 kaopu localhost bind9 welcome1";
};

/etc/named/named.conf.options如下
options {
        directory "/etc/named";
        allow-query { any; };
        allow-recursion { any; };
        allow-query-cache {any;};
        datasize 2098;
};

/etc/named/named.localhost如下
$TTL    600
@               IN SOA localhost. root.localhost. (2011080101 3H 15M 1W 1D)
@               IN NS localhost.
localhost.      IN A 10.3.19.79

/etc/named/named.root如下
; <<>> DiG 9.10.1 <<>>
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 53287
;; flags: qr rd ra; QUERY: 1, ANSWER: 13, AUTHORITY: 0, ADDITIONAL: 14

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4000
;; QUESTION SECTION:
;.                              IN      NS

;; ANSWER SECTION:
.                       1731    IN      NS      d.root-servers.net.
.                       1731    IN      NS      a.root-servers.net.
.                       1731    IN      NS      b.root-servers.net.
.                       1731    IN      NS      m.root-servers.net.
.                       1731    IN      NS      f.root-servers.net.
.                       1731    IN      NS      l.root-servers.net.
.                       1731    IN      NS      h.root-servers.net.
.                       1731    IN      NS      k.root-servers.net.
.                       1731    IN      NS      c.root-servers.net.
.                       1731    IN      NS      j.root-servers.net.
.                       1731    IN      NS      g.root-servers.net.
.                       1731    IN      NS      i.root-servers.net.
.                       1731    IN      NS      e.root-servers.net.

;; ADDITIONAL SECTION:
d.root-servers.net.     2077    IN      A       199.7.91.13
a.root-servers.net.     71592   IN      A       198.41.0.4
b.root-servers.net.     2087    IN      A       192.228.79.201
m.root-servers.net.     2091    IN      A       202.12.27.33
f.root-servers.net.     1731    IN      A       192.5.5.241
l.root-servers.net.     84257   IN      A       199.7.83.42
h.root-servers.net.     2110    IN      A       128.63.2.53
k.root-servers.net.     2111    IN      A       193.0.14.129
c.root-servers.net.     614     IN      A       192.33.4.12
j.root-servers.net.     2049    IN      A       192.58.128.30
g.root-servers.net.     2050    IN      A       192.112.36.4
i.root-servers.net.     912     IN      A       192.36.148.17
e.root-servers.net.     2076    IN      A       192.203.230.10

;; Query time: 53 msec
;; SERVER: 10.3.1.2#53(10.3.1.2)
;; WHEN: Thu Nov 06 10:46:18 CST 2014
;; MSG SIZE  rcvd: 460

named.root文件可由命令生成:dig -t NS . > /etc/named/named.root

database "mysqldb bind9 kaopu localhost bind9 welcome1";解释如下:
bind9-数据库名
kaopu-数据库表名
localhost-数据库主机名
bind9-用户名
welcome1-密码

7、验证MySQL-bind SDB方式。
输入命令:dig @127.0.0.1 www.kaopu.com
响应如下:
; <<>> DiG 9.10.1 <<>> @127.0.0.1 www.kaopu.com
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 3426
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;www.kaopu.com.                 IN      A

;; ANSWER SECTION:
www.kaopu.com.          3600    IN      A       10.3.19.14

;; AUTHORITY SECTION:
kaopu.com.              3600    IN      NS      ns1.kaopu.com.

;; ADDITIONAL SECTION:
ns1.kaopu.com.          3600    IN      A       127.0.0.1

;; Query time: 1 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Thu Nov 06 17:43:56 CST 2014
;; MSG SIZE  rcvd: 92


比较有参考意义的几篇博客。
使用Mysql-bind实现mysql管理bind配置:http://www.aooshi.org/blog/article/81.html
Binding Bind to MySQL... On RHEL5:http://pbraun.nethence.com/unix/net/named-mysql.html
bind9安装:http://blog.csdn.net/chenfei_5201213/article/details/7866231
分享到:
评论

相关推荐

    Bind DLZ MYSQL 配置文件

    Bind DLZ MYSQL 配置文件是智能DNS解析系统Bind与MySQL数据库结合使用的配置示例,旨在提高DNS查询的效率和灵活性。在这个配置中,Bind(Berkeley Internet Name Domain)作为DNS服务器,DLZ(Dynamic Lookaside ...

    bind-mysql搭建

    - **服务管理脚本配置:**运行`chkconfig --add mysqld`将MySQL服务添加到系统服务管理中,并通过`chkconfig mysqld on`设置为开机自启。 #### 二、BIND DNS服务器安装与MySQL集成 **2.1 安装BIND依赖** - **安装...

    利用 Bind DLZ MySQL 构建智能 DNS .pdf

    它允许BIND直接从外部数据库(例如MySQL)加载DNS区域数据,而不是从本地文件系统上的文本文件读取。这种方法带来了几个关键优势: - **数据准确性**:直接从数据库读取数据可以减少因手动编辑文件引入的错误。 - *...

    bind+mysql搭建智能DNS[文].pdf

    Bind 需要使用 MySQL 作为后端存储,用于存储Zone 文件和配置信息。 Bind 的配置文件需要指定 MySQL 的连接信息和数据库名称。 智能 DNS 服务器配置 智能 DNS 服务器需要将 Bind、MySQL 和 Apache 结合使用。 ...

    bind+mysql搭建智能DNS.pdf

    【bind+mysql搭建智能DNS】是一项技术实施过程,主要涉及DNS服务器的构建和管理,以及MySQL数据库的集成,用于实现动态DNS解析。DNS(Domain Name System)是互联网上的一个关键服务,它将人类可读的域名转换为IP...

    利用Bind DLZ MySQL 构建智能DNS V2

    ### 利用Bind DLZ MySQL 构建...通过以上步骤,您可以成功搭建一套基于Bind DLZ MySQL的智能DNS系统,不仅能够根据不同ISP提供最优的访问路径,还能够动态管理和维护DNS记录,极大地提高了DNS服务的灵活性和可靠性。

    统信UOS安装MySQL

    ### 统信UOS安装MySQL知识点详述 #### 一、环境准备与软件获取 - **选择合适的MySQL版本**:根据官方...通过上述步骤,可以在统信UOS系统上完成MySQL的安装与基本配置,使得MySQL能够稳定运行并方便日常管理和使用。

    Bind源代码包安装

    BIND(Berkeley Internet Name Domain)是一种广泛使用的域名系统(DNS)软件,它主要用于在互联网上提供域名解析服务。本篇文章将详细阐述如何从源代码安装BIND,并进行基本的配置。 #### 二、准备工作 在开始安装...

    CentOS 8 安装 MySql并设置允许远程连接的方法

    而MySQL作为一款流行的开源关系型数据库管理系统,对于许多应用来说是必不可少的。本教程将详细讲解如何在CentOS 8上安装MySQL并配置允许远程访问。 首先,安装MySQL前需要确保系统中没有已存在的MySQL或MariaDB...

    bind+dlz实现智能DNS

    Bind是Internet域名系统(DNS)的最常用服务器软件,而DLZ(Dynamically Loadable Zones)则是Bind的一个扩展,允许DNS数据存储在外部数据库中,如MySQL,而不是传统的Zone文件。这带来了几个优点: 1. 数据准确性...

    james外网配置及使用MYSQL数据库存储邮件内容

    在本教程中,我们将探讨如何配置James以便通过外网访问,并利用MySQL数据库来存储邮件内容,这将提升邮件系统的稳定性和可扩展性。 首先,我们需要下载并安装James。可以从官方网站或者GitHub仓库获取最新版本的源...

    dlz-dns-web

    DLZ不是一个dns服务器,只是bind9的一个补丁,为简化了管理,减少了内存的使用和启动时间。使用DLZ可以将ZONE文件数据库数据存储在数据库,当数据库变化时,可以及时通知bind,并更新数据,不需要重启或重新加载配置...

    dlz-dns-etc

    DLZ不是一个dns服务器,只是bind9的一个补丁,为简化了管理,减少了内存的使用和启动时间。使用DLZ可以将ZONE文件数据库数据存储在数据库,当数据库变化时,可以及时通知bind,并更新数据,不需要重启或重新加载配置...

    安装centos-mysql.docx

    CentOS 中可以使用 bind 软件包来配置 DNS。 配置 DNS 需要创建一个 Zone 文件,定义域名和 IP 地址的映射关系。然后,需要配置 named 服务,以便 DNS 服务器可以正常工作。 总结 本文围绕 CentOS 安装和配置 ...

    spring boot maven 连接mysql实现增删改查

    这篇文章将深入探讨如何在MyEclipse环境中使用这些技术实现一个简单的数据管理应用,即增删改查(CRUD)功能。 首先,`Spring Boot`是Spring框架的简化版本,它提供了快速构建独立的、生产级别的基于Spring的应用...

    CentOS7下源码编译配置Apache2.4+MySQL5.6+PHP71

    这个过程对于那些希望自定义软件配置或在没有预装包的环境中部署这些服务的系统管理员来说非常有用。 首先,我们需要确保系统已经安装了必要的编译工具和依赖库。在开始之前,请运行以下命令以安装必要的软件包: ...

    linux+apache+mysql+php.doc

    通过安装bind和caching-nameserver包,然后配置`/etc/named.caching-nameserver.conf`文件,允许对外部查询的响应并创建区域文件`/var/named/tianjie.com.zone`,以实现自定义域名的解析。 3. **MySQL数据库**:...

    JPA连接MySql搭建HelloWorld示例代码

    它提供了一种面向对象的方式来操作数据库,使得开发人员可以使用Java对象而不是SQL语句来处理数据。在本示例中,我们将学习如何使用JPA连接到MySQL数据库并创建一个简单的"Hello, World!"应用程序。 首先,我们需要...

    搭建springboot对mysql表增删改查源码

    在本项目中,我们主要探讨如何使用Spring Boot框架与MySQL数据库进行交互,实现对数据库表的基本操作:增、删、改、查。Spring Boot以其简洁的配置和强大的自动化配置功能,已经成为Java领域开发Web应用的首选框架之...

    sprintboot框架访问mysql数据库

    以下将详细介绍如何在SpringBoot项目中配置并使用MyBatis来访问MySQL数据库。 1. **依赖管理** 首先,我们需要在`pom.xml`文件中添加SpringBoot的起步依赖(Starter)和MyBatis的相关依赖。SpringBoot提供了`...

Global site tag (gtag.js) - Google Analytics