借助mysql和DNS view实现智能DNS(centos6.3 x64环境)
2013-06-24 13:13
603 查看
开篇说明
关于智能DNS和CDN的东西可以看我之前的一篇博文BIND实现智能DNShttp://www.01chengde.cn
上次的博文简单使用了BIND的视图功能实现了简单的智能dns,此篇博文结合了mysql实现真正意义上的智能DNS系统
需要准备东西
首先yum安装mysql。。。
编译安装bind将mysql-sdb的补丁文件拷贝到bind安装源文件目录下
修改bind源码目录下的bin/named/Makefile.in修改以下几行,其中DBDRIVER_LIBS后的参数可以使用/usr/bin/mysql_config --libs获取
修改bind源码目录下的bin/named/main.c,添加以下几行
修改bin/named/mysqldb.c
编译安装
下载电信和联通的地址列表ACL,存放在/etc/named目录下
在/etc/named.conf添加2条,从而将电信和联通的ACL地址列表包含进来
然后在主配置文件中定义2个视图:CNC是联通的视图 ,CHINANET是电信的视图
然后创建数据库:
创建联通表
创建电信表
关于智能DNS和CDN的东西可以看我之前的一篇博文BIND实现智能DNShttp://www.01chengde.cn
上次的博文简单使用了BIND的视图功能实现了简单的智能dns,此篇博文结合了mysql实现真正意义上的智能DNS系统
需要准备东西
首先yum安装mysql。。。
yum install mysql mysql-server mysql-devel下载bind主程序源码:ftp://ftp.isc.org/isc/bind9/9.8.5-P1/bind-9.8.5-P1.tar.gz下载bind-sdb驱动:http://nchc.dl.sourceforge.net/project/mysql-bind/mysql-bind/mysql-bind-0.2%20src/mysql-bind.tar.gz解压:tar xfbind-9.8.5-P1.tar.gztar xfmysql-bind.tar.gz |
cp mysql-bind/mysqldb.c bind-9.8.5-P1/bin/named/cp mysql-bind/mysqldb.h bind-9.8.5-P1/bin/named/ |
DBDRIVER_OBJS= mysqldb.@O@DBDRIVER_SRCS= mysqldb.cDBDRIVER_INCLUDES= -I'/usr/include/mysql'DBDRIVER_LIBS= -rdynamic -L/usr/lib64/mysql -lmysqlclient -lz -lcrypt -lnsl -lm -lssl-lcrypto |
/*#include "xxdb.h" */后面添加#include "mysqldb.h"/*xxdb_init();*/ 在后面添加 mysqldb_init(); 再找到 /*xxdb_clear();*/ 在后面添加 mysqldb_clear(); |
将#include <named/mysqldb.h>修改为#include <bin/named/mysqldb.h> |
./configure--prefix=/usr --sysconfdir=/etcmake&& make install |
http://www.centos.bz/wp-content/uploads/2012/02/CHINANET.aclhttp://www.centos.bz/wp-content/uploads/2012/02/CNC.acl |
include"/etc/named/CHINANET.acl"include"/etc/named/CNC.acl" |
view CNC{ match-clients { CNC; }; recursion no; zone "." IN { type hint; file "named.ca"; }; zone "localhost" IN { type master; file "named.localhost"; }; zone "0.0.127.in-addr.arpa" IN { type master; file "named.loopback"; }; zone "lustlost.com" IN { type master; notify no; database "mysqldb smartdns CNClocalhost root 123456"; #这里定义的数据库相关的配置,字段分别为:SQLtype DataBase Table Host User Password }; };view CHINANET { match-clients { CHINANET; }; recursion no; zone "." IN { type hint; file "named.ca"; }; zone "localhost" IN { type master; file "named.localhost"; }; zone "0.0.127.in-addr.arpa" IN { type master; file "named.loopback"; }; zone "lustlost.com" IN { type master; notify no; database "mysqldb smartdnsCHINANET localhost root 123456"; };}; |
create database smartdns;use smartdns; |
CREATE TABLE CNC(name varchar(255) default NULL,ttl int(11) default NULL,rdtypevarchar(255) default NULL,rdata varchar(255) default NULL) TYPE=MyISAM;插入SOA其实授权信息INSERTINTO CNC VALUES('lustlost.com',259200,'SOA','lustlost.com.www.lustlost.com.20130617 28800 720086400 28800');插入NS记录(实验环境,地址皆为内网IPhttp://www.jingjingdianying.com)INSERT INTO CNC VALUES ('lustlost.com', 259200, 'NS','ns1.lustlost.com.'),('lustlost.com', 259200, 'NS', 'ns2.lustlost.com.'),('lustlost.com', 259200, 'MX', '10 mail.lustlost.com.'),('ns1.lustlost.com',259200, 'A', '192.168.1.1'),('ns2.lustlost.com', 259200, 'A','192.168.1.2'),('mail.lustlost.com', 259200, 'A','192.168.1.3'),('www.lustlost.com', 259200, 'A', '192.168.1.4'); |
CREATE TABLE CHINANET (name varchar(255) default NULL,ttl int(11) default NULL,rdtypevarchar(255) default NULL,rdata varchar(255) default NULL) TYPE=MyISAM;插入SOA其实授权信息INSERT INTO CHINANET VALUES ('lustlost.com',259200,'SOA','lustlost.com.www.lustlost.com.2013061728800 7200 86400 28800');插入NS记录(实验环境,地址皆为内网IP)INSERT INTO CHINANET VALUES ('lustlost.com', 259200, 'NS','ns1.lustlost.com.'),('lustlost.com', 259200, 'NS', 'ns2.lustlost.com.'),('lustlost.com', 259200, 'MX', '10 mail.lustlost.com.'),('ns1.lustlost.com',259200, 'A', '192.168.2.1'),('ns2.lustlost.com', 259200, 'A', '192.168.2.2'),('mail.lustlost.com',259200, 'A', '192.168.2.3'),('www.lustlost.com', 259200, 'A', 'http://dy.01chengde.cn'); |
相关文章推荐
- 借助mysql和DNS view实现智能DNS(centos6.3 x64环境)
- Centos环境下实现DNS的智能解析
- centos6.3-64位搭建LAMP环境之安装mysql5.6.15
- 借助webview实现apk文件转换之环境部署与项目搭建
- 腾讯云CentOS 6.3 环境(apache+php+mysql)搭建
- linux源码包安装DNS服务器,并配置view视图,实现智能DNS。
- centos 6.3 服务器环境配置(apach+php+mysql+phpmyadmin)
- CentOS 6.3+apache+nginx+mysql+php环境配置
- CentOS6.3上安装与配置nginx+php+mysql环境
- Linux(CentOS6.3 x64) 安装配置Apache2.4.3 + SVN1.7 + MySQL完整版
- CentOS6.3+vsftpd+mysql+pam_mysql实现虚拟用户管理的ftp服务器
- Linux DNS利用view实现智能转发
- 基于Centos 6.5 配置分离式LAMP平台环境的一次扩展实现多PHP Apache和自建DNS来提升LAMP的负载
- RHEL6.3 DNS高级技术一 通过DNS View实现不同区域访问域名解析的速度 推荐
- RHEL6.3 DNS高级技术二 通过DNS主从区域复制实现DNS View负载均衡和冗余备份
- CentOS 6.3 源码安装LAMP(Linux+Apache+Mysql+Php)环境
- Linux技术 DNS利用view实现智能转发
- 【MYSQL】一台centos6.5主机建两个mysql实例实现主从复制环境