mydns+mysql+mydnsconfig实现DNS服务器的可视化管理

Step0.mydns的相关介绍

mydns应该说是一个比较年轻dns服务,基于unix-like的操作系统,与比较老牌的bind的相比,就是它的存储模式是利用开源的数据库进行存储,目前只支持两种开源的数据库(mysql和 postgresql)。


Step1.系统环境及相关的软件需求

kunjiang使用的系统是:RedHat Enterprise Linux 5.4

mydns-1.1.0.tar.gz

MyDNSConfig-1.1.0.tar.gz

mysql-5.6.10.tar.gz

cmake-2.8.10.2.tar.gz

apache服务及相关组件(采用本地yum进行安装)


Step2.由于mydns是基于mysql数据库的,其数据全部存放在数据库内,这里因为系统自带mysql版本过低故采用最新的数据库以源代码方式安装。

将mysql和cmake都拆解到/usr/local/src/目录下

# tar -zxvf mysql-5.6.10.tar.gz -C /usr/local/src/

# tar -zxvf cmake-2.8.10.2.tar.gz -C /usr/local/src/

切换到cmake的拆解目录,分别执行以下操作

# ./configure --prefix=/usr/local/cmake

# make && make install

修改/etc/profile的环境文件

# vim /etc/profile profile的文件加入以下这句:

45 PATH=$PATH:/usr/local/cmake/bin

# . /etc/profile

修改/etc/man.config的man手册配置文件

# vim /etc/man.config man.config的文件加入以下这句:

48 MANPATH /usr/local/cmake/man

切换到mysql的拆解目录,进行mysql的安装,分别执行以下操作:

# cmake .

# make && make install

创建mysql的用户,每种服务都需要相应的用户来运行它:

# groupadd mysql

# useradd -r -g mysql mysql

mysql安装完成,会自动在/usr/local/下形成名为mysql的安装目录,切换到该目录下执行以下操作: (这里一定按顺序执行

# chown -R mysql:mysql .

# scripts/mysql_install_db --user=mysql

# chown -R root .

# chown -R mysql data/

现在对mysql的配置文件和服务脚本进行相应的操作:

# cd support-files/

# cp my-default.cnf /etc/my.cnf

# cp mysql.server /etc/init.d/mysqld

启动mysql,并且加入chkconfig进行管理:

# service mysqld start

# chkconfig --add mysqld

# chkconfig mysqld on

为了系统能够调用mysql头文件和库文件,使用mysql的相关工具及man手册,需进行以下操作:

# ln -s /usr/local/mysql/include/usr/include/mysql

# vim /etc/ld.so.conf.d/mysql.conf mysql.conf的内容如下:

/usr/local/mysql/lib

然后执行ldconfig刷新缓存,可以使用ldconfig �Clist |grep mysql 查看已经加载的mysql的库文件。

# vim /etc/profile

45 PATH=$PATH:/usr/local/cmake/bin:/usr/local/mysql/bin

# . /etc/profile

# vim /etc/man.config

49 MANPATH /usr/local/mysql/man

给数据库设置口令

# mysqladmin -u root -p password '123'

174637197.png

访问mysql数据库,结果成功访问哦……

Step3.安装mydns

拆解mydns到/usr/local/src/目录下:

# tar -zxvf mydns-1.1.0.tar.gz -C /usr/local/src/

切换到mydns的拆解目录 ,执行以下操作

# ./configure --prefix=/usr/local/mydns

# make && make install

# make conf 执行这句产生mydns的配置文件非常重要

进入到mydns的安装目录,对该目录下的bin目录sbin目录及man目录做出同mysql同样修改:

# vim /etc/profile

45PATH=$PATH:/usr/local/cmake/bin:/usr/local/mysql/bin:/usr/local/mydns/bin:/usr/local/mydns/sbin

# . /etc/profile

# vim /etc/man.config

50 MANPATH /usr/local/mydns/man

现在添加mydns的用户

# useradd mydns

# passwd mydns 这里密码设置为123456

修改mydns的配置文件mydns.conf

174703896.png

这里虽然指出了数据库mydns,但是却还没有建立,现在建立名为mydns数据库:

# mysql -u root �Cp

mysql> grant all privileges on mydns.* to mydns@localhost identifiedby '123456';

mysql> flush privileges;

mysql> create database mydns;

mysql> \quit;

这里虽然建立了数据库,但是数据库内没有mydns的相关表结构,至于创建相关的表,那我们等到安装MyDNSConfiig的时候再利用MyDNSConfiig自带的的脚本进行创建吧。

现在为了使用service进行管理,我们需要产生mydns的控制脚本:

# cd /usr/local/src/mydns-1.1.0/contrib/

# chmod a+x mydns.redhat

# cp mydns.redhat /etc/init.d/mydns

# vim /etc/init.d/mydns

174851542.png

然后启mydns服务并加入chkconfig进行管理。

#service mydns start

#chkconfig �Cadd mydns

#chkconfig mydns on


Step4.安装配置MyDNSConfig

MyDNSConfig是基于PHP语言开发的,所以你的系统还要支持php才行,现在就基于系统自带的apache与php进行安装,这里yum的配置就省略了。

# yum install httpd php php-mysql php-gd php-mbstringmysql-connector-odbc

# vim /etc/httpd/conf/httpd.conf

391 DirectoryIndex index.php index.html index.html.var

启动httpd服务,并加入chkconfig管理

# service httpd start

# chkconfig httpd on

打开浏览器进行httpd的测试,出现测试页面说明能够正常工作:

在/var/www/html/下编辑一个index.php的网页,内容如下:

<?php

phpinfo();

?>

174904930.png


安装MyDNSConfig

# tar -zxvf MyDNSConfig-1.1.0.tar.gz -C /usr/local/src/

# cd /usr/local/src/MyDNSConfig-1.1.0/

# mkdir /usr/share/mydnsconfig

# cp -rf interface/* /usr/share/mydnsconfig/

# ln -s /usr/share/mydnsconfig/web /var/www/html/mydnsconfig

现在进入到/usr/local/src/MyDNSConfig-1.1.0/install/目录下,使用MyDNSConfig自带的脚本创建相应域表和记录表等:

#cd /usr/local/src/MyDNSConfig-1.1.0/install

在进入mysql时会出现下图所示的错误:

174916398.png

为了解决这个问题,我们需要做以下操作:

# mkdir /var/lib/mysql

# ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock

# service mysqld restart

再次访问mysql数据库:

[root@server install]# mysql -u root -p

Enter password:

Welcome to the MySQL monitor. Commands end with ; or \g.

Your MySQL connection id is 12

Server version: 5.6.10 Source distribution

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> use mydns;

Database changed

mysql> source ./mydnsconfig.sql;

Query OK, 0 rows affected (0.05 sec)

Query OK, 0 rows affected (0.01 sec)

Query OK, 0 rows affected (0.01 sec)

Query OK, 0 rows affected (0.01 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.01 sec)

Query OK, 2 rows affected (0.00 sec)

Records: 2 Duplicates: 0 Warnings: 0

Query OK, 0 rows affected (0.01 sec)

Query OK, 1 row affected (0.00 sec)

mysql> show tables;

+-----------------------+

| Tables_in_mydns |

+-----------------------+

| rr |

| soa |

| sys_datalog |

| sys_dbsync |

| sys_filesync |

| sys_group |

| sys_user |

+----------------------+

7 rows in set (0.00 sec)

mysql>\quit;

这样一来表就建好了,下面编辑MyDNSConfig的配置文件:

# vim /usr/share/mydnsconfig/lib/config.inc.php(修改用户命名即可)

48 $conf["db_type"] = 'mysql';

49 $conf["db_host"] = 'localhost';

50 $conf["db_database"] = 'mydns';

51 $conf["db_user"] = 'mydns';

52 $conf["db_password"] = '123456';


Step5.集中进行测试

首先确保所有的服务都已经启动:

175002416.png

接下来,打开浏览器直接访问http://192.168.2.100/mydnsconfig/ ,会出来mydns的后台管理界面:

175018356.png

后台管理员的用户名和密码都是admin,你可以点击login进行登录,登录之后进入如下界面:

175034627.png

现在kunjiang就点击Add New Zone,添加一个名为test.com的域:

175049612.png

点击save进行保存。

175115385.png

点击上面标出的位置

175129833.png

继续点击Records

175155427.png

点击Add New Record:

175214919.png

这里可以选择多种记录进行添加(A记录、NS记录、MX记录等)。kunjiang在这里添加了三条A记录和一条NS记录:

175230484.png


下面我们测试一下,mydns能否解析我们的域名:

当然在解析之前我要将自己的DNS指向改为192.168.2.100,你们要改成什么地址就看你们个人的配置了,kunjiang这里就那自己的DNS服务器进行测试了:

# vim /etc/resolv.conf

1 domain server.a.com

2 nameserver 192.168.2.100

使用nslookup(dig)进行DNS解析测试:

175245647.png

很明显,都能够解析啊!想用dig测试也是可以的,那解析的东西更加详细,至于怎么用你可以找男人(man)帮助啊,这里就不多说了。




你可能感兴趣的:(DNS服务器,mydns,mydnsconfig)