一、原理
DNS策略解析最基本的功能是可以智能的判断访问您网站的用户,然后根据不同的访问者把您的域名分别解析成不同的IP地址。如访问者是网通用户,DNS策略解析服务器会把你的域名对应的网通IP地址解析给这个访问者。DNS策略解析服务器会把您域名对应的电信IP地址解析给这个访问者。
二、设计案例:
1、案例环境
dns服务器搭建在vmware10虚拟机下CentOS6.4-32(最小化安装)操作系统下,一台防火墙(H3C secpath F100C)。注意:在我们当前最小化安装的操作系统下,会在安装配置过程中出现一些错误,请注意!
拓扑结构
配置命令
数据库mysql的安装配置:
[root@ahao ~]#tar zxvf mysql-5.5.15-linux2.6-i686.tar.gz –C /usr/local
[root@ahaolocal]# ln -s mysql-5.5.15-linux2.6-i686 mysql
[root@ahaolocal]# cd mysql
[root@ahaomysql]# groupadd mysql
[root@ahaomysql]# useradd -r -g mysql mysql
[root@ahaomysql]# chown -R mysql .
[root@ahaomysql]# chgrp -R mysql.
[root@ahao mysql]# scripts/mysql_install_db --user=mysql //执行之后会发现有错误缺少libaio文件,解决方法:我们在在光盘上找到这个库文件,安装就可以了
[root@ahao mysql]# chown -R root .
[root@ahao mysql]# chown -R mysql data
[root@ahao mysql]# cp support-files/my-medium.cnf /etc/my.cnf
[root@ahao mysql]# cpsupport-files/mysql.server /etc/init.d/mysqld
[root@ahao mysql]# chmod a+x /etc/init.d/mysqld
[root@ahao mysql]# service mysqld start
Starting MySQL.. SUCCESS!
[root@ahao mysql]# chkconfig --add mysqld //将mysql添加到chkconfig的管理中
[root@ahao mysql]# chkconfig mysqld on // 系统开机mysql自动启动
[root@ahao mysql]# vim /etc/profile
//在文件中添加PATH=$PATH:/usr/local/mysql/bin/ 重写环境变量将mysql的库文件添加上去
[root@ahaomysql]# . /etc/profile //重新加载文件,才能让mysql库文件生效,或者重启系统
[root@ahao ~]#mysqladmin -u root -p password '123' //配置mysql的管理员密码
Bind安装配置:
[root@ahao~]tar zxvf bind-9.8.6-P1.tar.gz –C /usr/local
[root@ahao~]# cd /usr/local/bind-9.8.6-P1/
[root@ahaobind-9.8.6-P1]#./configure--prefix=/usr/local/bind9--with-dlz-mysql=/usr/local/mysql--enable-threads=no --disable-openssl-version-check//到这里出现错误:OpenSSLwas not found ,所以我们还需要安装这个openssl
[root@ahaobind-9.8.6-P1]#mak&&make install
[root@ahaobind-9.8.6-P1]# cd /usr/local/bind9/sbin/
[root@ahaosbin]# ./rndc-confgen –a //会产生密钥文件和dns配置文件
[root@ahao sbin]# cd ../etc
[root@ahao etc]#ll
total 8
-rw-r--r--. 1root root 2389 Jan 16 23:21 bind.keys
-rw-------. 1root root 77 Jan 16 23:25 rndc.key
[root@ahao sbin]#./rndc-confgen > named.conf
//在named.conf文件中添加相应语句
options {
directory"/usr/local/bind9/etc/";
pid-file "/usr/local/bind9/var/run/named.pid";
allow-query {any; };
recursion no;
version"gaint-d1";
allow-query-cache{ any; };
};
应用以下语句:
controls {
inet 127.0.0.1 port 953
allow { 127.0.0.1; } keys {"rndc-key"; };
};
view "lan-view"{ //添加域
match-clients {lan;};
dlz "Mysql zone" {
database "mysql
{host=127.0.0.1 dbname=mydata ssl=false user=root pass=123}
{select zone from lan_dns_records where zone='$zone$'}
{select ttl,type, mx_priority, case when lower(type)='txt' then concat('\"', data,'\"')
when lower(type)= 'soa' then concat_ws(' ', data, resp_person, serial, refresh, retry, expire,minimum)
elsedata end from lan_dns_records where zone='$zone$' and host='$record$'}";
};
};
//登录mysql数据库创建相关信息
ysql> createdatabase mydata;//创建数据库
mysql> usemydata;
mysql> createtable 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)
-> );
mysql> createtable 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> insertinto lan_dns_records (zone,host,type,data,ttl,retry) values('abc.com','www','A','192.168.1.159','86400','15'); //插入记录
Query OK, 1 rowaffected (0.01 sec)
mysql> insertinto wan_dns_records (zone,host,type,data,ttl,retry) values('abc.com','www','A','61.130.130.1','86400','15');
[root@ahao ~]/usr/local/bind9/sbin/named-g -d 1 -c /usr/local/bind9/etc/named.conf
//启动
防火墙配置:
[H3C]int eth0/0
[H3C-Ethernet0/0]ipadd 192.168.1.0 24
[H3C]int eth0/4
[H3C-Ethernet0/4]ipadd 61.130.130.1 24
[H3C-Ethernet0/4]nat server protocol udp global 61.130.130.1 53inside 192.168.1.159 53
[H3C]firewallzone untrust
[H3C]addinterface eth0/4
实验结果
本地用户验证:
外网用户验证: