DNS服务器分离解析详解

一 . DNS简介
一般来讲域名比 IP 地址更加的有含义、也更容易记住,所以通常用户更习惯输入域名来访问网络中的资源,但是计算机主机在互联网中只能通过 IP 识别对方主机,那么就需要 DNS 域名解析服务了。DNS 域名解析服务(Domain Name System)是用于解析域名与 IP 地址对应关系的服务,功能上可以实现正向解析与反向解析:
正向解析:根据主机名(域名)查找对应的 IP 地址。
反向解析:根据 IP 地址查找对应的主机名(域名)

DNS 服务协议采用类似目录树的层次结构记录域名与 IP 地址的映射对应关系,形成一个分布式的数据库系统:[DNS 结构模型]
而单靠几台 DNS 服务器肯定不能满足全球如此多用户的需求,所以从工作形式上又分主服务器、从服务器和缓存服务器。
主服务器:在特定区域内具有唯一性、负责维护该区域内的域名与 IP 地址对应关系。
从服务器:从主服务器中获得域名与 IP 地址对应关系并维护,以防主服务器宕机等情况。
缓存服务器:通过向其他域名解析服务器查询获得域名与 IP 地址对应关系,提高重复查询时的效率。

这里还需要简单了解下,DNS 查询时还会分为递归查询与迭代查询。
递归查询:用于客户机向 DNS 服务器查询。
迭代查询:用于 DNS 服务器向其它 DNS 服务器查询。
互联网 DNS 访问模型——采用分布式数据结构保存海量区域数据信息,用户从互联网中查询过

二 . 安装Bind 服务程序

伯克利互联网域名服务 BIND(Berkeley Internet Name Daemon)是一款全球互联网使用最广泛的能够提供安全可靠、快捷高效的域名解析服务程序。并且 Bind 服务程序还支持 chroot(change root)监牢安全机制,chroot 机制会限制 bind 服务程序仅能对自身配置文件进行操作,从而保证了整个服务器的安全
1.域名解析服务 Bind 的程序名称叫做 named,服务程序的配置文件如下:

主程序 /usr/sbin/named
主配置文件 /etc/named.conf
区域配置文件 /etc/named.rfc1912.zones
2.安装bind . bind-chroot软件包

[root@localhost ~]# yum -y install bind-chroot   #安装bind-chroot时会同时自动安装bind

3.查看安装软件生成的配置文件
[root@localhost ~]# rpm -qc bind
/etc/logrotate.d/named
/etc/named.conf #主配置文件
/etc/named.iscdlv.key
/etc/named.rfc1912.zones #事先定义好的区域文件
/etc/named.root.key #实现事务签名的密钥文件
/etc/rndc.conf
/etc/rndc.key
/etc/sysconfig/named
/var/named/named.ca
/var/named/named.empty
/var/named/named.localhost
/var/named/named.loopback

三 案例:
在这里插入图片描述
环境如下:
虚拟机A : IP 192.168.4.7
虚拟机B:IP 192.168.4.207
虚拟机C:IP 192.168.4.8
虚拟机D:IP 192.168.4.208
##########################################################
(一) 在虚拟机C 上搭建web服务:
1.下载软件包httpd : yum -y install httpd
2. 修改web调用配置文件:

[root@8 ~]# vim /etc/httpd/conf.d/qq.conf
<VirtualHost *:80>
   ServerName www.qq.com
   DocumentRoot /var/www/qq
</VirtualHost>

<VirtualHost *:80>
   ServerName www.163.com
   DocumentRoot /var/www/yy
</VirtualHost>                                                                                              

3.书写web 页面:

[root@8 ~]# mkdir /var/www/qq
[root@8 ~]# echo qqqqqq域8号web服务器  > /var/www/qq/index.html

[root@8 ~]# mkdir /var/www/yy
[root@8 ~]# echo 163163163域8号web服务器  > /var/www/yy/index.html

4.重启服务

[root@8 ~]# systemctl restart httpd

(二 )虚拟机D搭建web服务
1.下载软件包httpd : yum -y install httpd
2.修改web调用配置文件:

[root@208 ~]# vim /etc/httpd/conf.d/nsd.conf
<VirtualHost *:80>
   ServerName www.qq.com
   DocumentRoot /var/www/mm
</VirtualHost>

<VirtualHost *:80>
   ServerName www.163.com
   DocumentRoot /var/www/nn
</VirtualHost>

3.书写web 页面:

[root@208 ~]# mkdir /var/www/qq
[root@208 ~]# echo 66666666666域208号web服务器  > /var/www/mm/index.html

[root@208 ~]# mkdir /var/www/yy
                 
[root@208 ~]# echo 99999999999域208号web服务器  > /var/www/nn/index.html

4.重启服务:

[root@8 ~]# systemctl restart httpd服务

(三):在虚拟机A上搭建DNS分离解析服务:
1.安装软件包bind-chroot bind

[root@208 ~]# yum -y install bind-chroot

2.修改主配置文件:

[root@svr7 ~]# vim /etc/named.conf 
****************************
options {
        directory       "/var/named";
};

view "nsd" {
            match-clients { 192.168.4.7; };
            zone "qq.com" IN {
                  type master;
                  file "qq.com.zone";
            };
            zone "163.com" IN {
                  type master;
                  file "163.com.zone";
            };
            };
view "other" {
            match-clients { 192.168.4.207; };
            zone "qq.com" IN {
                  type master;
                  file "qq1.com.zone";     
            };                
            };
            zone "163.com" IN {
                  type master;
                  file "1631.com.zone";
            };
            };

3.书写地址库文件

[root@svr7 ~]# cd /var/named
[root@svr7 named]# vim qq.com.zone
***************************************************************
$TTL 1D
@       IN SOA  @ rname.invalid. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry在这里插入代码片
                                        1W      ; expire
                                        3H )    ; minimum
qq.com. NS      svr7
svr7    A       192.168.4.7
www     A       192.168.4.8

[root@svr7 named]# vim 163.com.zone
***************************************************************
$TTL 1D
@       IN SOA  @ rname.invalid. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
163.com.        NS      svr7
svr7    A       192.168.4.7
www     A       192.168.4.8

[root@svr7 named]# vim qq1.com.zone
*******************************************************************
$TTL 1D
@       IN SOA  @ rname.invalid. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
qq.com. NS      svr7
svr7    A       192.168.4.7
www     A       192.168.4.208

[root@svr7 named]# vim 1631.com.zone
****************************************************************
$TTL 1D
@       IN SOA  @ rname.invalid. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
163.com.        NS      svr7
svr7    A       192.168.4.7
www     A       192.168.4.208                           

4.重启服务:

[root@svr7 named]# systemctl restart named

5.设置虚拟机A和B的DNS地址

[root@svr7 named]# echo nameserver 192.168.4.7 > /etc/resolv.conf
[root@pc207 ~]# echo nameserver 192.168.4.7 > /etc/resolv.conf

6.验证:

[root@svr7 named]# nslookup www.qq.com
Server:		192.168.4.7
Address:	192.168.4.7#53

Name:	www.qq.com
Address: 192.168.4.8

[root@svr7 named]# nslookup www.163.com
Server:		192.168.4.7
Address:	192.168.4.7#53

Name:	www.163.com
Address: 192.168.4.8
****************************************************
[root@pc207 ~]# nslookup www.qq.com
Server:		192.168.4.7
Address:	192.168.4.7#53

Name:	www.qq.com
Address: 192.168.4.208

[root@pc207 ~]# nslookup www.163.com
Server:		192.168.4.7
Address:	192.168.4.7#53

Name:	www.163.com
Address: 192.168.4.208

(四)浏览火狐web测试:

[root@svr7 named]# firefox www.qq.com
[root@svr7 named]# firefox www.163.com
[root@pc207 ~]# firefox www.qq.com
[root@pc207 ~]# firefox www.163.com

猜你喜欢

转载自blog.csdn.net/weixin_42104231/article/details/82821528