国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 操作系統 > 正文

BIND+MySQL

2024-06-28 14:32:33
字體:
來源:轉載
供稿:網友

使用bind-MySQL模塊增加對mysql數據庫的支持

簡介:對于bind,如果想修改或增加dns記錄,是直接修改文本的,這樣的話一方面不方便管理,另一方面容易出錯,如果我們增加對mysql數據庫的支持,再配合php、perl、python等程序直接操作mysql,這對于dns的管理將會非常地方便和不易出錯。現在介紹使用mysql bind驅動模塊實現這一功能。

一、安裝mysql

安裝mysql服務器可以使用yum或源碼編譯安裝,我們這里使用yum安裝。

  • yum -y install mysql mysql-server mysql-devel

二、安裝bind和mysql-bind

1、分別下載bind和mysql-bind

  • cd /tmp
  • wget http://nchc.dl.sourceforge.net/PRoject/mysql-bind/mysql-bind/mysql-bind-0.2%20src/mysql-bind.tar.gz
  • wget http://ftp.isc.org/isc/bind9/cur/9.9/bind-9.9.1-P2.tar.gz
  • tar xzf bind-9.9.1-P2.tar.gz
  • tar xzf mysql-bind.tar.gz

2、分別復制mysql-bind的mysqldb.c和mysqldb.h到bind-9.9.1-P2/bin/named和bind-9.9.1-P2/bin/named/include

  • cd /tmp/mysql-bind
  • cp mysqldb.c mysqldb.h /tmp/bind-9.9.1-P2/bin/named
  • cp mysqldb.c mysqldb.h /tmp/bind-9.9.1-P2/bin/named/include

3、修改bind源碼中的bin/named/Makefile.in文件:

  • DBDRIVER_OBJS = mysqldb.@O@ #注意兩個@中間那個是大寫O
  • DBDRIVER_SRCS = mysqldb.c
  • DBDRIVER_INCLUDES = -I/usr/include/mysql? -g -pipe -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32 -fasynchronous-unwind-tables -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -fno-strict-aliasing -fwrapv
  • DBDRIVER_LIBS = -rdynamic -L/usr/lib/mysql -lmysqlclient -lz -lcrypt -lnsl -lm -L/usr/lib -lssl -lcrypto

注:
DBDRIVER_INCLUDES的值由命令/usr/bin/mysql_config --cflags獲得。
DBDRIVER_LIBS的值由命令/usr/bin/mysql_config --libs獲得。
4、編輯bind源文件bin/named/main.c
4.1、在函數setup(void)里面ns_server_create()的前面添加mysqldb_init(),如

  • /*
  • ?? ? ? ? * Add calls to register sdb drivers here.
  • ?? ? ? ? */
  • ?? ? ? ?/* xxdb_init(); */
  • ?? ? ? ?mysqldb_init();
  • ?? ? ? ?ns_server_create(ns_g_mctx, &ns_g_server);

4.2、在函數cleanup(void)里面ns_server_destroy()的后面添加mysqldb_clear(),如

  • ns_server_destroy(&ns_g_server);
  • ?? ? ? ?mysqldb_clear();
  • ?? ? ? ?/*
  • ?? ? ? ? * Add calls to unregister sdb drivers here.
  • ?? ? ? ? */
  • ?? ? ? ?/* xxdb_clear(); */

4.3、編輯bind源文件中的bin/named/mysqldb.c文件:

  • 更改#include <named/mysqldb.h>為#include "include/mysqldb.h"

4.4 安裝bind

  • yum -y install gcc openssl-devel
  • cd /tmp/bind-9.9.1-P2
  • ./configure --prefix=/usr/local/bind? --disable-openssl-version-check
  • make && make install

三、mysql配置

  • 啟動:service mysqld start
  • 設置root密碼:mysqladmin -uroot passWord root
  • 創建數據庫:mysql> create database dns;
  • 創建表:? ?mysql> 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. mail.mydomain.com. 200309181 28800 7200 86400 28800');
  • INSERT INTO mydomain VALUES ('mydomain.com', 259200, 'NS', 'dns.mydomain.com.');
  • INSERT????INTO mydomain VALUES ('mydomain.com', 259200, 'MX', '10 mail.mydomain.com.');
  • INSERT INTO mydomain VALUES ('dns.mydomain.com', 259200, 'A', '192.168.131.129');
  • INSERT INTO mydomain VALUES ('mail.mydomain.com', 259200, 'A', '192.168.131.131');
  • INSERT INTO mydomain VALUES ('www.mydomain.com', 259200, 'A', '192.168.132');
  • INSERT INTO mydomain VALUES ('ftp.mydomain.com', 259200, 'A', '192.168.131.133');

反向解析所需要的數據:

INSERT INTO mydomain VALUES ('131.168.192.in-addr.arpa', 17600, 'SOA', 'mydomain.com. mail.mydomain.com. 200309181 28800 7200 86400 28800');

INSERT INTO mydomain VALUES ('131.168.192.in-addr.arpa', 17600, 'NS', 'dns.mydomain.com.');

INSERT INTO mydomain VALUES ('129.131.168.192.in-addr.arpa', 17600, 'PTR', 'dns.mydomain.com.');

INSERT INTO mydomain VALUES ('131.131.168.192.in-addr.arpa', 17600, 'PTR', 'mail.mydomain.com.');

INSERT INTO mydomain VALUES ('132.131.168.192.in-addr.arpa', 17600, 'PTR', 'www.mydomain.com.');

INSERT INTO mydomain VALUES ('133.131.168.192.in-addr.arpa', 17600, 'PTR', 'ftp.mydomain.com.');

總結:如果正反向解析數據很多,可以分別將正向解析數據放在一個表中,而反向解析數據放另外一個表中

四、bind配置

vim /usr/local/bind/etc/named.conf

  • zone "mydomain.com" { #正向解析區域
  • ? type master;
  • ? notify no;
  • ? database "mysqldb dbname tablename hostname user password";
  • };
  • zone "131.168.192.in-addr.arpa" { #反向解析區域
  • type master;
  • notify no;
  • database "mysqldb dns mydomain localhost root 123456";
  • };

其中dbname是數據庫名,tablename是表名,hostname是mysql主機,然后就是用戶名和密碼
啟動bind:

  • /usr/local/bind/sbin/named

特別注意:圖中所示

五、正反向解析測試

#nslookup

?


上一篇:DNS服務詳解

下一篇:Apachelogresolve命令

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 蓝田县| 辽中县| 琼中| 秦安县| 施秉县| 泾阳县| 万山特区| 大余县| 黔西县| 顺昌县| 安溪县| 泰宁县| 万源市| 太仓市| 沈丘县| 确山县| 东阳市| 五寨县| 民丰县| 高雄市| 保山市| 平舆县| 自贡市| 阜宁县| 鄯善县| 凤台县| 六盘水市| 手游| 安庆市| 六安市| 渝中区| 清水县| 阿巴嘎旗| 沭阳县| 衢州市| 石嘴山市| 江源县| 会宁县| 嘉荫县| 新建县| 北宁市|