智能DNS解析


一、原理

DNS策略解析最基本的功能是可以智能的判斷訪問您網站的用戶,然後根據不同的訪問者把您的域名分別解析成不同的IP地址。如訪問者是網通用戶,DNS策略解析服務器會把你的域名對應的網通IP地址解析給這個訪問者。DNS策略解析服務器會把您域名對應的電信IP地址解析給這個訪問者。

二、設計案例:

1、案例環境

    dns服務器搭建在vmware10虛擬機下CentOS6.4-32(最小化安裝)操作系統下,一臺防火牆(H3C secpath F100C)。注意:在我們當前最小化安裝的操作系統下,會在安裝配置過程中出現一些錯誤,請注意!

拓撲結構

wKioL1LX4Nfxo5dRAALBNsNrXDM853.jpg

配置命令

數據庫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/

[[email protected]]#./configure--prefix=/usr/local/bind9--with-dlz-mysql=/usr/local/mysql--enable-threads=no --disable-openssl-version-check//到這裏出現錯誤:OpenSSLwas not found ,所以我們還需要安裝這個openssl

[[email protected]]#mak&&make install

[[email protected]]# 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

實驗結果

本地用戶驗證:

wKiom1LX4ReT4o84AAI1iCANNhA045.jpg

  外網用戶驗證:

wKioL1LX4QyzjQEXAAF0BOln7vI336.jpg


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章