安装bind
tar xfzv bind-9.3.1.tar.gz
tar xfzv mysql-bind-0-1.tgz
cp mysql-bind-0.1/mysqldb.c bind-9.3.1/bin/named
cp mysql-bind-0.1/mysqldb.h bind-9.3.1/bin/named/include
cd bind-9.3.1
vi bin/named/Makefile.in
将
DBDRIVER_OBJS =
DBDRIVER_SRCS =
DBDRIVER_INCLUDES =
DBDRIVER_LIBS =
如下配置
DBDRIVER_OBJS = mysqldb.@O@
DBDRIVER_SRCS = mysqldb.c
DBDRIVER_INCLUDES = -I‘/usr/local/mysql/include/mysql‘
DBDRIVER_LIBS = -L‘/usr/local/mysql/lib/mysql‘ -lmysqlclient -lz -lcrypt -lnsl -lm -lc -lnss_files -lnss_dns -lresolv -lc -lnss_files -lnss_dns -lresolv
修改main.c文件
vi bin/named/main.c
找到/*
* Add calls to register sdb drivers here.
*/
/* xxdb_init(); */
添加 mysqldb_init();
找到
/*
* Add calls to unregister sdb drivers here.
*/
/* xxdb_clear(); */
添加 mysqldb_clear();
./configure --prefix=/usr/local/named --enable-threads #--enable-threads开启多线程处理能力
make
make install
cd /usr/local/named
mkdir etc 建立etc目录
sbin/rndc-confgen >; etc/rndc.conf 生成rndc控制命令的key文件
cd etc
tail -10 rndc.conf | head -9 | sed s/#\ //g >; named.conf 从rndc.conf文件中提取named.conf用的key
自动在/usr/local/named/etc 生成named,conf文件
建立localhost.zone文件
vi localhost.zone
$TTL 86400
$ORIGIN localhost.
@ 1D IN SOA @ root (
42 ; serial (d. adams)
3H ; refresh
15M ; retry
1W ; expiry
1D ) ; minimum
1D IN NS @
1D IN A 127.0.0.1
建立named.local文件
vi named.local
$TTL 86400
@ IN SOA localhost. root.localhost. (
1997022700 ; Serial
28800 ; Refresh
14400 ; Retry
3600000 ; Expire
86400 ) ; Minimum
IN NS localhost.
1 IN PTR localhost.
dig命令直接生成named.root文件
dig >; named.root
配置 named.conf
增加如下内容:
controls {
inet 127.0.0.1 port 953
* directive below. Previous versions of BIND always asked
* questions using port 53, but BIND 9.31 uses an unprivileged
* port by default.
*/
// query-source address * port 53;
24,9
};
//
// a caching only nameserver config
//
zone "." IN {
type hint;
file "named.root";
};
zone "localhost" IN {
type master;
file "localhost.zone";
allow-update { none; };
};
zone "0.0.127.in-addr.arpa" IN {
type master;
file "named.local";
allow-update { none; };
};
zone "mydomain.com" {
type master;
database "mysqldb dnsdb mydomain localhost root passwd"; 配置你的数据库名,表名,MYSQL主机,MYSQL用户,MYSQL密码
};
zone "19.202.220.in-addr.arpa" {
type master;
database "mysqldb dnsdb ptr localhost root passwd"; 配置你的数据库名,表名,MYSQL主机,MYSQL用户,MYSQL密码
};
--------------------------------------------------------------------------------BIND安装完成
5. 我是用MYSQLADMIN来建立数据库的和倒数据的,APACHE下安装MYSQLADMIN我这里就不详细讲了。
参照mysql-bind-0-1目录下的README建立数据库dnsdb
正向解析数据库mydomain表结构
CREATE TABLE mydomain (
name varchar(255) default NULL,
ttl int(11) default NULL,
rdtype varchar(255) default NULL,
rdata varchar(255) default NULL
) TYPE=MyISAM;
以下是正向解析示范可以直接倒入
INSERT INTO mydomain VALUES (‘mydomain.com‘, 259200, ‘SOA‘, ‘mydomain.com. www.mydomain.com. 200309181 28800 7200 86400 28800‘);
INSERT INTO mydomain VALUES (‘mydomain.com‘, 259200, ‘NS‘, ‘ns0.mydomain.com.‘);
INSERT INTO mydomain VALUES (‘mydomain.com‘, 259200, ‘NS‘, ‘ns1.mydomain.com.‘);
INSERT INTO mydomain VALUES (‘mydomain.com‘, 259200, ‘MX‘, ‘10 mail.mydomain.com.‘);
INSERT INTO mydomain VALUES (‘w0.mydomain.com‘, 259200, ‘A‘, ‘192.168.1.1‘);
INSERT INTO mydomain VALUES (‘w1.mydomain.com‘, 259200, ‘A‘, ‘192.168.1.2‘);
INSERT INTO mydomain VALUES (‘mydomain.com‘, 259200, ‘Cname‘, ‘w0.mydomain.com.‘);
INSERT INTO mydomain VALUES (‘mail.mydomain.com‘, 259200, ‘Cname‘, ‘w0.mydomain.com.‘);
INSERT INTO mydomain VALUES (‘ns0.mydomain.com‘, 259200, ‘Cname‘, ‘w0.mydomain.com.‘);
INSERT INTO mydomain VALUES (‘ns1.mydomain.com‘, 259200, ‘Cname‘, ‘w1.mydomain.com.‘);
INSERT INTO mydomain VALUES (‘www.mydomain.com‘, 259200, ‘Cname‘, ‘w0.mydomain.com.‘);
INSERT INTO mydomain VALUES (‘ftp.mydomain.com‘, 259200, ‘Cname‘, ‘w0.mydomain.com.‘);
反向解析数据库ptr表结构
CREATE TABLE ptr (
name varchar(255) default NULL,
ttl int(11) default NULL,
rdtype varchar(255) default NULL,
rdata varchar(255) default NULL
) TYPE=MyISAM;
以下是反向解析示范可以直接倒入
INSERT INTO `ptr` VALUES (‘19.202.220.in-addr.arpa‘, 17600, ‘SOA‘, ‘mydomain.com. www.mydomain.com. 200309181 28800 7200 86400 28800‘);
INSERT INTO `ptr` VALUES (‘19.202.220.in-addr.arpa‘, 17600, ‘NS‘, ‘ns0.mydomain.com.‘);
INSERT INTO `ptr` VALUES (‘19.202.220.in-addr.arpa‘, 17600, ‘NS‘, ‘ns1.mydomain.com.‘);
INSERT INTO `ptr` VALUES (‘82.19.202.220.in-addr.arpa‘, 17600, ‘PTR‘, ‘mail.mydomain.‘);
--------------------------------------------------------------------------------数据库建立完成
6. 启动你的BIND 测试BIND是否能正常工作
/usr/local/named/sbin/named -c /usr/local/named/etc/named.conf &
然后在你WINDOWS机器上将这个配置了BIND的IP设置为DNS然后运行nslookup测试
如果出现证明反向解析正常
Default Server: mail.mydomain
Address: 220.202.19.2
>;
如果PING w0.mydomain.com
解析地址为192.168.1.1 证明正向工作正常
7.结束语
BIND + MYSQL 在增加A记录 MX记录 PTR记录都不需要从新启动BIND,每增加一个正向的解析域名都必须在named.conf正增加如下内容
zone "youname.com" {
type master;
database "mysqldb dnsdb mydomain localhost root passwd"; 配置你的数据库名,表名,MYSQL主机,MYSQL用户,MYSQL密码
};
.
TAG: BIND MYSQL管理