前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Debian下Bind9.9.2+MySQL 搞定DNS解析

Debian下Bind9.9.2+MySQL 搞定DNS解析

作者头像
星哥玩云
发布2022-06-30 19:49:28
8640
发布2022-06-30 19:49:28
举报
文章被收录于专栏:开源部署

bind9.9.2+MySQL 其实就是bind调用mysql数据库表内的东西(表内的数据就是zone区域数据)。 其实原理都是一样的 只是这里bind 的所有bind zone区域文件都存在mysql内。

bind调用mysql无非是一个是调用mysql驱动,另外一个mysql-bind这个包来实现。

这里mysql就无需多讲,更新修改 /etc/apt/sources.list 源之后 apt-get update 跟新包

然后apt-get install mysql mysql-server 即可。

  我使用的是bind。9.9.2.   wget ftp://ftp.isc.org/isc/bind9/9.9.2/bind-9.9.2.tar.gz   tar -zxvf bind-9.9.2.tar.gz   下载mysql-bind   wget http://nchc.dl.sourceforge.net/project/mysql-bind/mysql-bind/mysql-bind-0.2%20src/mysql-bind.tar.gz   tar -zxvf mysql-bind.tar.gz   先将mysql-bind下两个文件 copy到bind-9.9.2/下 具体如下:

  cd mysql-bind/

  cp mysqldb.c ../bind-9.9.2/bin/named/   cp mysqldb.h ../bind-9.9.2/bin/named/include/named/

  修改bind-9.9.2/bin/named/Makefile.in文件 具体如下:

  cd ../bind-9.9.2/

  vim bin/named/Makefile.in                DBDRIVER_OBJS =                            DBDRIVER_SRCS =                            DBDRIVER_INCLUDES =                        DBDRIVER_LIBS =                            修改成一下内容:   DBDRIVER_OBJS = mysqldb.@O@                DBDRIVER_SRCS = mysqldb.c                  DBDRIVER_INCLUDES = -I'/usr/include/mysql' #(由mysql_config--cflags命令产生)   DBDRIVER_LIBS = -L'/usr/lib/mysql' -lmysqlclient -lz -lcrypt -lnsl -lm -lc -lnss_files -lnss_dns -lresolv -lc -lnss_files -lnss_dns -lresolv apt-get install libssl-dev  #(由mysql_config--libs命令产生)

  我们还需要修改另一个文件     vim bin/named/main.c 添加如下 行   #include <include/mysqldb.h>

  mysqldb_init();          (在ns_server_create()之前)   mysqldb_clear();        (在ns_server_destroy()之后)   修改好了之后我们就可以编译bind.9.9.2了。

  ./configure --prefix=/usr --exec-prefix=/usr --bindir=/usr/bin --sbindir=/usr/sbin --sysconfdir=/etc --datadir=/usr/share --includedir=/usr/include --libdir=/usr/lib64 --libexecdir=/usr/libexec --sharedstatedir=/usr/com --mandir=/usr/share/man --infodir=/usr/share/info --with-libtool --localstatedir=/var --enable-threads --with-openssl=no --enable-epoll --with-openssl

  apt-get install openssl libss-dev  #(如果报错openssl问题 先安装这两个)   make -j 8   make install

  bind9.9.2+mysql-bind 就此已经安装完成! 我们来配置下bind

  rndc-confgen >/etc/rndc.conf   cat /etc/rndc.conf|tail |head -9 |sed "s/^#//g" > /etc/named.conf   dig -t NS .>/var/named/named.root

修改配置文件,连接数据库的相关配置  vim /etc/named.conf 添加: zone "test.net"  {       type master;       database "mysqldb test net 127.0.0.1 root root";

};

zone "168.192.in-addr.arpa" {       type master;       database "mysqldb test 168_192 localhost root root";

}; 

备注:    database "mysqldb test net 127.0.0.1 root root"; database "mysqldb 数据库名 表名 数据库serverIP 数据库用户 数据库密码";

前提是已经创建了数据库  以下是创建数据库的实例:

正反向解析实例:       

正向解析DNS CREATE TABLE net (       name varchar(255) default NULL,       ttl int(11) default NULL,       rdtype varchar(255) default NULL,       rdata varchar(255) default NULL       ) TYPE=MyISAM;

INSERT INTO net VALUES ('test.net', 259200, 'SOA', 'test.net.  www.test.net  200505101 28800 7200 86400 28800'); INSERT INTO net VALUES ('test.net', 259200, 'NS', 'ns1.test.net.'); INSERT INTO net VALUES ('ns1.test.net', 259200, 'A', '192.168.2.2'); INSERT INTO net VALUES ('www.test.net', 259200, 'A', '192.168.2.1'); INSERT INTO net VALUES ('learyx.test.net', 259200, 'A', '192.168.2.222');

反域DNS CREATE TABLE 168_192 ( name varchar(255) default NULL, ttl int(11) default NULL, rdtype varchar(255) default NULL, rdata varchar(255) default NULL ) TYPE=MyISAM;

INSERT INTO `168_192` VALUES ('168.192.in-addr.arpa', 17600, 'SOA', 'test.net. www.test.net. 200309181 28800 7200 86400 28800'); INSERT INTO `168_192` VALUES ('168.192.in-addr.arpa', 17600, 'NS', 'ns0.test.net.'); INSERT INTO `168_192` VALUES ('222.2.168.192.in-addr.arpa', 17600, 'PTR', 'learyx.test.net.');

我启动named吧 可以先调试下 /usr/local/bind9/sbin/named -c /usr/local/bind9/etc/named.conf  -g 没有问题的话 直接起来吧 /usr/local/bind9/sbin/named -c /usr/local/bind9/etc/named.conf OK 起来了 我们来测试下吧! dig @127.0.0.1 www.test.net

Debian下Bind9.9.2+MySQL 搞定DNS解析
Debian下Bind9.9.2+MySQL 搞定DNS解析

至此全部完成!

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档