设为首页 收藏本站
查看: 1103|回复: 0

[经验分享] 智能DNS --BIND DLZ+MYSQL

[复制链接]

尚未签到

发表于 2018-9-29 12:37:22 | 显示全部楼层 |阅读模式
  智能DNS --BIND DLZ+MYSQL
  一.概念介绍:
  
  1.智能DNS
  智能DNS就是根据用户的来路,自动智能化判断来路IP返回给用户,而不需要用户进行选择。
  智能DNS与普通DNS区别:
  普通的DNS服务器只负责为用户解析出IP记录,而不去判断用户从哪里来,这样会造成所有用户都只能解析到固定的IP地址上。智能DNS颠覆了这个概念。智能DNS会判断用户的来路,而做出一些智能化的处理,然后把智能化判断后的IP返回给用户。
  2.Bind dlz:
  Bind-DLZ主页:http://bind-dlz.sourceforge.net/
  DLZ(Dynamically Loadable Zones)与传统的BIND9不同,BIND的不足之处课归纳为下面几点:
  1 BIND从文本文件中获取数据,这样容易因为编辑错误出现问题。
  2 BIND需要将数据加载到内存中,如果域或者记录较多,会消耗大量的内存。
  3 BIND启动时解析Zone文件,对于一个记录较多的DNS来说,会耽误更多的时间。
  4 如果近修改一条记录,那么要重新加载或者重启BIND才能生效,那么需要时间,可能会影响客          户端查询。
  而Bind-dlz 即将帮你解决这些问题, 对Zone文件操作也更方便了,直接对数据库操作,可以很方
  便扩充及开发管理程序。
  二.具体案例:
  1).拓扑:
  
  实验要求:
DSC0000.png

  试验要求:
  1.LAN 内的主机能通过dns服务器能解析到web服务器的地址为web服务器地址192.168.2.100;
  2.WAN 内的主机能通过LAN 内的dns服务器解析到web的地址为广域网接口的地址61.130.130.1;
  (试验环境,dns服务器为CentOS 6.0 32位系统搭建;防火墙为H3C )
  2).具体配置过程:
  1.准备配置:
  1.1配置dns服务器IP地址:如图;
DSC0001.png

  [root@centos ~]# service network restart    重启网络服务
  1.2 安装源代码前,我们要先安装开发环境;
  [root@centos ~]# mount /dev/cdrom /media/cdrom  挂载光盘
  [root@centos ~]# yum --disablerepo=* --enablerepo=c6-media groupinstall "Development Tools"  安装开发工具
  1.3拖包:把bind和mysql的源代码拖进服务器主机;
DSC0002.png

  2.Mysql的安装:
  [root@centos local]# tar -zxvf mysql-5.5.15-linux2.6-i686.tar.gz -C /usr/local/    拆包到/usr/local/目录;
  [root@centos local]# ln -s mysql-5.5.15-linux2.6-i686 mysql                        为了管理方便(便于输入)做一个连接;
  [root@centos ~]# groupadd mysql                                                    增加一个mysql组;
  [root@centos ~]#  useradd -r -g mysql mysql                                        增加一个mysql用户;
  [root@centos mysql]# chown -R mysql .                                              更给主属;
  [root@centos mysql]# chgrp -R mysql .                                              更给组属;
  [root@centos mysql]#  scripts/mysql_install_db --user=mysql                        以mysql身份执行 scripts/mysql_install_db;
  [root@centos mysql]# chown -R root .                                               把当下的所有文件更改所有者为root;
  [root@centos mysql]# chown -R mysql data                                           更改mysql data主属;
  [root@centos mysql]# cp support-files/my-medium.cnf /etc/my.cnf                    拷贝文件;
  [root@centos mysql]# cp support-files/mysql.server /etc/init.d/mysqld              拷贝文件;
  [root@centos mysql]# chmod a+x /etc/init.d/mysqld                                  给上一步拷贝的/etc/init.d/mysqld文件可执行权限;
  [root@centos mysql]# service mysqld start                                          开启mysqld服务;
  Starting MySQL... SUCCESS!
  (出现上面这行显示说明成功启动mysqld服务,如果有错误,则重复下面几个操作:
  [root@centos mysql]# chown -R mysql .
  [root@centos mysql]# chgrp -R mysql .
  [root@centos mysql]#  scripts/mysql_install_db --user=mysql
  [root@centos mysql]#  chown -R root .
  [root@centos mysql]# chown -R mysql data
  [root@centos mysql]# service mysqld start   )
  [root@centos mysql]# chkconfig --add mysqld         把mysql服务加入到开机启动;
  [root@centos mysql]# chkconfig mysqld on            设置mysql为开机启动;
  2.1安装完成后要做一些必要的设置,方便以后的管理和使用:
  
  1.为了使用各种工具的方便要把/usr/local/mysql/bin加入到系统中;
  编辑文件[root@centos bin]# vim /etc/profile
  在里面加入一行bin的路径:PATH=$PATH:/usr/local/mysqld/bin
  [root@centos bin]# . /etc/profile    由于修改了该文件,要重新加载一下文件;
  2.为了增加数据库的安全性,建立账号和密码:
  [root@centos ~]# mysqladmin -u root -p password '123'     建立mysql管理员为root 密码为123;
  Enter password:    (直接回车即可)
  进入数据库的操作如下:
  [root@centos ~]# mysql -u  root -p  (回车,表示以管理员身份登录需要输入密码);
  Enter password:  (输入密码123)
  3.Bind的安装:
  1.拆包:
  [root@centos ~]# tar -zxvf bind-9.8.6-P1.tar.gz -C /usr/local/src/
  2.执行预编译环境的检测工具 configure :
  ./configure --prefix=/usr/local/bind9 --with-dlz-mysql=/usr/local/mysql --enable-threads=no --disable-openssl-version-check
  然后执行生成文件的make命令:make && make install
  3.为了要方便dns的管理需要做下面配置;
  [root@centos bind-9.8.6-P1]# cd /usr/local/bind9/sbin/   切换到rndc-confgen的主目录;
  执行:
  [root@centos sbin]# ./rndc-confgen -a                   产生钥匙和写入到钥匙文件/usr/local/bind9/etc/rndc.key
  [root@centos sbin]# ./rndc-confgen >../etc/named.conf   把生成的文件写入到named.conf配置中
  编辑named.conf配置文件:
  [root@centos etc]# vim named.conf
  做如下修改和添加:
DSC0003.jpg

  加入视图:
DSC0004.jpg

  
  .测试,运行dns:
  [root@centos sbin]# /usr/local/bind9/sbin/named -g -d 1 -c /usr/local/bind9/etc/named.conf
  查看dns运行:
  [root@centos mysql]# netstat -tupln |grep 53查看53端口运行;
  我们常用的检测dns工具dig命令在/usr/local/bind9/bin下,所以要把该工具加入到/etc/profile;
DSC0005.png

  [root@centos bin]# . /etc/profile   重新加载文件
  
  4.进入mysql数据库添加数据库:
  进入数据库;
  mysql> show databases;    查看数据库信息
  mysql> create database mydata;    创建名为mydata的数据库
  mysql> use mydata;    选中mydata数据库
  mysql> create table lan_dns_records (
  -> zone varchar (255),
  -> host varchar (255),
  -> type varchar (255),
  -> data varchar (255),
  -> ttl int(11),
  -> mx_priority varchar (255),
  -> refresh int(11),
  -> retry int(11),
  -> expire int(11),
  -> minimum int(11),
  -> serial bigint(20),
  -> resp_person varchar (255),
  -> primary_ns varchar (255)
  -> );
  上面这几行是在mydata数据库中创建lan_dns_records的表,里面的行为表的各字段。
  查看创建的表和表内字段;
DSC0006.png

  插入相应记录:
  mysql>insert into lan_dns_records (zone,host,type,data,ttl,retry) values ('abc.com','www','A','192.168.2.100','86400','15');
  mysql>insert into wan_dns_records (zone,host,type,data,ttl,retry) values ('abc.com','www','A','61.130.130.1','86400','15');
  查找表内容:
DSC0007.png

  添加关于wan的dns记录到数据库:
  mysql> create table wan_dns_records (
  -> zone varchar (255),
  -> host varchar (255),
  -> type varchar (255),
  -> data varchar (255),
  -> ttl int(11),
  -> mx_priority varchar (255),
  -> refresh int(11),
  -> retry int(11),
  -> expire int(11),
  -> minimum int(11),
  -> serial bigint(20),
  -> resp_person varchar (255),
  -> primary_ns varchar (255)
  -> );
  .此时我们mysql的库文件还不能被系统调用,要把库加入到系统中:
  [root@centos mysql]# vim /etc/ld.so.conf.d/mysql.conf    在特定目录创建mysql.conf并编辑文件,添加下面的mysql的库路径:

  保存退出;
  [root@centos mysql]# ldconfig   更新缓存;
  ;
  .lan内查看dns解析:发现解析的地址为2.100;
DSC0008.png

  5.配置防火墙:
  1.ip地址配置:
  [H3C]int eth0/0
  [H3C-Ethernet0/0]ip add 192.168.2.254 24
  [H3C]int eth0/1
  [H3C-Ethernet0/1]ip add 61.130.130.1 24
  2,把端口加入到区域;
  3,配置DNAT;
  [H3C]dns server 192.168.2.200
  [H3C]dns resolve
  [H3C]int eth0/1
  [H3C-Ethernet0/1]nat server protocol udp global 61.130.130.1 53 inside 192.168.2.200 53
  6.wan内pc配置ip为61.130.130.10,查看dns:
DSC0009.jpg

  实验结束。


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-603814-1-1.html 上篇帖子: MySQL单机多实例配置 下篇帖子: MySQL的事务和隔离级别
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表