开篇说明

关于智能DNS和CDN的东西可以看我之前的一篇博文

上次的博文简单使用了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.gz

tar xfmysql-bind.tar.gz

编译安装bind

将mysql-sdb的补丁文件拷贝到bind安装源文件目录下cp mysql-bind/mysqldb.c bind-9.8.5-P1/bin/named/

cp mysql-bind/mysqldb.h bind-9.8.5-P1/bin/named/

修改bind源码目录下的bin/named/Makefile.in修改以下几行,其中DBDRIVER_LIBS后的参数可以使用/usr/bin/mysql_config --libs获取DBDRIVER_OBJS= mysqldb.@O@

DBDRIVER_SRCS= mysqldb.c

DBDRIVER_INCLUDES= -I'/usr/include/mysql'

DBDRIVER_LIBS=-rdynamic -L/usr/lib64/mysql -lmysqlclient -lz -lcrypt -lnsl -lm -lssl-lcrypto

修改bind源码目录下的bin/named/main.c,添加以下几行/*#include "xxdb.h" */

后面添加

#include "mysqldb.h"

/*xxdb_init();*/在后面添加

mysqldb_init();

再找到

/*xxdb_clear();*/在后面添加

mysqldb_clear();

修改bin/named/mysqldb.c将

#include

修改为

#include

编译安装./configure--prefix=/usr --sysconfdir=/etc

make&& make install

下载电信和联通的地址列表ACL,存放在/etc/named目录下http://www.centos.bz/wp-content/uploads/2012/02/CHINANET.acl

http://www.centos.bz/wp-content/uploads/2012/02/CNC.acl

在/etc/named.conf添加2条,从而将电信和联通的ACL地址列表包含进来include"/etc/named/CHINANET.acl"

include"/etc/named/CNC.acl"

然后在主配置文件中定义2个视图:

CNC是联通的视图 ,CHINANET是电信的视图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记录(实验环境,地址皆为内网IP)

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', '192.168.2.4');

完毕....

mysql与dns_借助mysql和DNS view实现智能DNS(centos6.3 x64环境)相关推荐

  1. 互联网dns架构实现智能dns实现

    互联网dns架构实现&&智能dns实现 实验环境:准备8台虚拟机,具体ip配置如下图 实验目的:互联网DNS工作原理的简单实现(域名解析.只缓存DNS服务器.DNS子域委派和转发.主从 ...

  2. DNS服务之智能DNS

    前言和实验背景 智能DNS是一个很关键的应用,也是直观体现工资的一项技能.智能DNS现在的技术已经非常的成熟,而且可以进化成CDN(内容分发网络).基本掌握了智能DNS和CDN的技术,就代表你已经成为 ...

  3. linux创建出口dns,Linux创建智能DNS

    根据客户端源IP地址的不同,DNS服务提供不同的解析地址 1.安装dns服务,修改全局配置文件/etc/named.conf # yum -y install bind # vim /etc/name ...

  4. DNS加速之“智能DNS”跟“双线加速”、“CDN加速”的区别

    "智能DNS"跟"双线加速"."CDN加速"的区别 相信,很大部分IDC用户可能还没弄清楚状况,有人觉得智能DNS跟双线加速.CDN加速是类 ...

  5. DNS云学堂 | 智能DNS让CDN乘风破浪

    智能DNS是DNS领域经常被提及的一个概念.在和运营商客户进行技术交流时,也总是被问及,到底什么是智能DNS?智能DNS在CDN中扮演什么角色?它是怎么样的工作机制?今天DNS云学堂就来具体讲解下.e ...

  6. linux 搭建智能dns,Linux配置智能DNS服务

    一.在虚拟机svr11上构建dawai.com的权威DNS服务器 1)安装bind.bind-chroot软件包 [root@svr11 ~]# yum -y ×××tall bind bind-ch ...

  7. bind9 dlz mysql_利用BIND+DLZ+MYSQL构建企业智能DNS

    目录: 一.简介 二.服务规划 三.安装BIND及基本环境 四.配置Bind-View-DLZ-MYSQL 五.添加相关记录并进行测试 六.配置从DNS 七.本文以FreeBSD 10.2 stabl ...

  8. RHEL6.3 DNS高级技术二 通过DNS主从区域复制实现DNS View负载均衡和冗余备份

    RHEL6.3 DNS高级技术二 ----通过DNS主从区域复制实现DNS View负载均衡和冗余备份 版权声明: 本文遵循"署名非商业性使用相同方式共享 2.5 中国大陆"协议 ...

  9. Linux DNS服务详解——DNS服务搭建细节

    前几天,我陆续给大家介绍了DNS服务的相关内容,今天,我给大家补充介绍一下DNS服务中一些小问题. 前文链接: Linux DNS服务详解--DNS基础知识 Linux DNS服务详解--DNS实战配 ...

最新文章

  1. fastdfs java client_fastdfs-client-java操作fastdfs5.0.4
  2. Docker环境配置指南!
  3. 重庆交通大学2019年计算机系收分,重庆交通大学2019年考研复试分数线已公布
  4. 一款基于jquery和css3的头像恶搞特效
  5. 各种资源思科、gns3……
  6. SpringBoot中使用POI实现Excel导入到数据库(图文教程已实践)
  7. 最全的“大数据”学习资源
  8. 服务器系统安装及部署pdf,服务器操作系统安装说明.pdf
  9. wpf之lable右下角放关闭图标
  10. 微信小程序——组件(二)
  11. 解决Adobe Flash Player不是最新版本方法
  12. Python爬虫入门之初遇lxml库
  13. 根据微信公众号关注/取消关注事件,获取用户信息
  14. 扫拖一体洗地机实用吗、扫拖一体洗地机哪个品牌好,看完就知道
  15. NGUI:HUD Text
  16. 教你玩转 sqlplus,工作效率提升 200%
  17. c语言51单片机湿度浇花器,基于51单片机的室内自动浇花系统的制作方法
  18. 路由器 DNSMasq 替代 hosts,支持Android、iPhone、PC
  19. STM32 + 无线通信模块 NRF24L01 数据收发
  20. 【转】14年从业老兵分享万字长文MMO成功秘诀

热门文章

  1. datagridview 设置选中行_Excel实用两大技巧,删除重复行,神奇选择性粘贴
  2. 跨域 Cookie 实现单点登录
  3. mysql加删查语句_MySQL基本语句——增、删、查、改
  4. tomcat java 参数乱码_javaweb乱码(tomcat服务器)
  5. emacs php,如何在Emacs中关闭php-indent警告
  6. mysql数据库2013_MySQL数据库备份(2)2013-6-13
  7. mysql复杂操作,.Net Core+mySqlSugar的一些稍复杂操作
  8. opencv 叠加两张图_「干货」教你如何用OpenCV快速寻找图像差异处
  9. 【若依(ruoyi)】数据选择对话框
  10. LISP标注路线桩号_CAD插件标桩号的AutoLISP程序语言求解释并译成中文,谢谢