14: DNS服务基础 、 特殊解析 、 DNS子域授权 、 DNS主从架构 、 总结和答疑

  • Post author:
  • Post category:其他





Top

NSD SERVICES DAY03


  1. 案例1:搭建单区域DNS服务器

  2. 案例2:特殊DNS解析

  3. 案例3:配置DNS子域授权

  4. 案例4:构建主/从DNS服务器

1 案例1:搭建单区域DNS服务器

1.1 问题

本例要求要求为DNS区域tedu.cn搭建一台DNS服务器,以便用户能通过域名的方式访问网站。测试阶段主要提供以下正向记录:

  1. svr7.tedu.cn —> 192.168.4.7
  2. pc207.tedu.cn —> 192.168.4.207
  3. www.tedu.cn —> 192.168.4.100

配置完成后在客户机上验证查询结果。

1.2 方案

快速构建DNS服务器的基本过程:

  1. 安装 bind、bind-chroot 包
  2. 建立主配置文件 /etc/named.conf
  3. 建立地址库文件 /var/named/.. ..
  4. 启动 named 服务

配置及使用DNS客户端的基本过程:

  1. 修改配置文件/etc/resolv.conf,添加nameserver=DNS服务器地址
  2. 使用host命令查询,提供目标域名作为参数

1.3 步骤

实现此案例需要按照如下步骤进行。

步骤一:配置DNS服务器svr7

1)安装 bind、bind-chroot 包

[root@localhost ~]# setenforce 0
[root@localhost ~]# firewall-cmd --set-default-zone=trusted
[root@svr7 ~]# yum  -y  install  bind  bind-chroot
.. ..

2)建立主配置文件 /etc/named.conf

[root@svr7 ~]# mv  /etc/named.conf  /etc/named.conf.origin  		//备份默认配置
[root@svr7 ~]# vim  /etc/named.conf 							//建立新配置
options {
    directory  "/var/named";  						//地址库默认存放位置
};
zone  "tedu.cn" {  								//定义正向DNS区域
    type  master; 									//主区域
    file  "tedu.cn.zone"; 							//自定义地址库文件名
};

3)建立地址库文件 /var/named/tedu.cn.zone

[root@svr7 ~]# cd  /var/named/  							//进地址库目录
[root@svr7 named]# cp  -p  named.localhost  tedu.cn.zone  	//参考范本建地址库文件
[root@svr7 named]# vim  tedu.cn.zone  						//修订地址库记录
$TTL 1D  										//文件开头部分可保持不改
@   IN SOA  @ rname.invalid. (
                    0   ; serial
                    1D  ; refresh
                    1H  ; retry
                    1W  ; expire
                    3H )    ; minimum
@       NS  svr7.tedu.cn.  						//本区域DNS服务器的FQDN
svr7    A   192.168.4.7 						//为NS主机提供A记录
pc207   A   192.168.4.207 						//其他正向地址记录.. ..
www  A   192.168.4.100

4)启动 named 服务,并设置开机自启

[root@svr7 named]# systemctl  restart  named  
[root@svr7 named]# systemctl  enable  named
Created symlink from /etc/systemd/system/multi-user.target.wants/named.service to /usr/lib/systemd/system/named.service.

步骤二:配置DNS客户机pc207并测试

1)修改配置文件/etc/resolv.conf,指定默认使用哪一台DNS服务器

[root@localhost ~]# setenforce 0
[root@localhost ~]# firewall-cmd --set-default-zone=trusted
[root@pc207 ~]# vim  /etc/resolv.conf 
nameserver  192.168.4.7
.. ..

2)使用host命令查询,提供目标域名作为参数

[root@pc207 ~]# host  svr7.tedu.cn
svr7.tedu.cn has address 192.168.4.7
[root@pc207 ~]# host  pc207.tedu.cn
pc207.tedu.cn has address 192.168.4.207
[root@pc207 ~]# host  www.tedu.cn
www.tedu.cn has address 192.168.4.100

使用host测试DNS查询结果时,如果不方便修改/etc/resolv.conf文件,也可以采用“host 目标域名 DNS服务器地址”形式临时指定使用哪一台DNS服务器。

[root@pc207 ~]# host  pc207.tedu.cn  192.168.4.7
Using domain server:
Name: 192.168.4.7
Address: 192.168.4.7#53
Aliases: 

pc207.tedu.cn has address 192.168.4.207

2 案例2:特殊DNS解析

2.1 问题

沿用案例1,本例要求掌握DNS轮询、泛域名解析的配置,实现的目标如下:

  1. 为站点 www.tedu.cn 提供DNS轮询解析,三台Web服务器节点的IP地址分别为:192.168.4.100、192.168.4.110、192.168.4.120
  • 配置泛域名解析实现以下解析记录:任意名称.tedu.cn —> 119.75.217.56
  • 2.2 方案

    DNS轮询:FQDN —> IP地址1、IP地址2、.. ..

    泛域名解析(站点名不确定):多个FQDN —> 一个IP地址

    2.3 步骤

    实现此案例需要按照如下步骤进行。

    步骤一:配置DNS轮询

    1)修改DNS服务器上tedu.cn区域的地址库文件,在末尾添加轮询地址记录

    [root@svr7 ~]# vim  /var/named/tedu.cn.zone 
    .. ..
    www		A	192.168.4.100
    www		A	192.168.4.110
    www		A	192.168.4.120
    

    2)重启系统服务named

    [root@svr7 named]# systemctl  restart  named
    

    3)在客户机pc207上测试轮询记录

    针对目标www.tedu.cn执行多次查询,观察第1条结果的变化:

    [root@pc207 ~]# host  www.tedu.cn
    www.tedu.cn has address 192.168.4.100  		//第1个结果为192.168.4.100
    www.tedu.cn has address 192.168.4.110
    www.tedu.cn has address 192.168.4.120
    

    [root@pc207 ~]# host www.tedu.cn

    www.tedu.cn has address 192.168.4.120 //第1个结果为192.168.4.120

    www.tedu.cn has address 192.168.4.110

    www.tedu.cn has address 192.168.4.100

    [root@pc207 ~]# host www.tedu.cn

    www.tedu.cn has address 192.168.4.110 //第1个结果为192.168.4.110

    www.tedu.cn has address 192.168.4.120

    www.tedu.cn has address 192.168.4.100

    步骤二:配置多对一的泛域名解析

    1)修改DNS服务器上指定区域的地址库文件,在末尾添加*通配地址记录

    [root@svr7 ~]# vim  /var/named/tedu.cn.zone
    … …
    •   A   119.75.217.56
      

    2)重启系统服务named

    [root@svr7 named]# systemctl  restart  named
    

    3)在客户机pc207上测试多对一的泛域名解析记录

    当查询未知站点(地址库中没有明确记录)时,以 * 对应的IP地址反馈:

    [root@pc207 ~]# host  station123.tedu.cn
    station123.tedu.cn has address 119.75.217.56
    [root@pc207 ~]# host  movie.tedu.cn
    movie.tedu.cn has address 119.75.217.56
    [root@pc207 ~]# host  tts8.tedu.cn
    tts8.tedu.cn has address 119.75.217.56
    

    3 案例3:配置DNS子域授权

    3.1 问题

    沿用案例1,本例要求为上下级两个DNS区域建立父子关联,实现客户机向父DNS也可以查询到子域内的FQDN,基本要求如下:

    1. 构建父DNS(tedu.cn)服务器
    2. 构建子DNS(bj.tedu.cn)服务器
    3. 在父DNS上配置子域授权
    4. 测试子域授权查询

    3.2 方案

    为一个DNS区域添加授权子域时,需要修改此区域的地址库,添加以下记录:

    子域域名.    		IN    NS  	子DNS的FQDN.
    子DNS的FQDN.   	IN    A		子DNS的IP地址
    

    3.3 步骤

    实现此案例需要按照如下步骤进行。

    步骤一:构建父DNS(tedu.cn)服务器

    1)将svr7配置为父DNS服务器,确认配置

    主配置文件/etc/named.conf:

    [root@svr7 ~]# viim  /etc/named.conf
    options {
    	   directory  "/var/named";
    };
    zone  "tedu.cn" {
    	   type  master;
    	   file  "tedu.cn.zone";
    };
    .. ..
    

    正向地址库文件:

    [root@svr7 ~]# vim  /var/named/tedu.cn.zone 
    $TTL 1D
    @	IN SOA	@ rname.invalid. (
    					0	; serial
    					1D	; refresh
    					1H	; retry
    					1W	; expire
    					3H )	; minimum
    @		NS	svr7.tedu.cn.
    svr7		A	192.168.4.7
    pc207	A	192.168.4.207
    www		A	192.168.4.100
    .. ..
    

    确保服务已启用:

    [root@svr7 ~]# systemctl  restart  named
    

    2)测试 —— 向父DNS可成功查询到父区域中的站点

    [root@pc207 ~]# host  www.tedu.cn  192.168.4.7
    Using domain server:
    Name: 192.168.4.7
    Address: 192.168.4.7#53
    Aliases: 
    

    www.tedu.cn has address 192.168.4.100

    … …

    步骤二:构建子DNS(bj.tedu.cn)服务器

    1)将pc207配置为子DNS服务器,确认配置

    安装软件包bind、bind-chroot:

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

    建立主配置文件/etc/named.conf:

    [root@pc207 ~]# mv  /etc/named.conf  /etc/named.conf.origin  	//备份默认配置
    [root@pc207 ~]# vim /etc/named.conf //建立新配置
    options {
    directory “/var/named”;
    };
    zone “bj.tedu.cn” { //定义子DNS的正向区域
    type master;
    file “bj.tedu.cn.zone”;
    };

    建立地址库配置文件:

    [root@pc207 ~]# cd  /var/named/  							//进地址库目录
    [root@pc207 named]# cp -p named.localhost tedu.cn.zone //参考范本建地址库文件
    [root@pc207 named]# vim bj.tedu.cn.zone //修订地址库记录
    $TTL 1D //文件开头部分可保持不改
    @ IN SOA @ rname.invalid. (
    0 ; serial
    1D ; refresh
    1H ; retry
    1W ; expire
    3H ) ; minimum
    @ NS pc207.bj.tedu.cn. //本区域DNS服务器的FQDN
    pc207 A 192.168.4.207 //为NS主机提供A记录
    www A 1.2.3.4 //添加测试记录 www.bj.tedu.cn

    2)启动系统服务named,并设置开机自启

    [root@pc207 named]# systemctl  restart  named
    [root@pc207 named]# systemctl enable named
    Created symlink from /etc/systemd/system/multi-user.target.wants/named.service to /usr/lib/systemd/system/named.service.

    3)测试 —— 向子DNS可成功查询到子区域中的站点

    [root@pc207 ~]# host  www.bj.tedu.cn  192.168.4.207
    Using domain server:
    Name: 192.168.4.207
    Address: 192.168.4.207#53
    Aliases:

    www.bj.tedu.cn has address 1.2.3.4

    步骤三:在父DNS上配置子域授权

    1)测试 —— 未配置子域授权时,向父DNS无法正确查询到子区域中的站点

    若父DNS配置有 * 泛域名,则反馈的结果为对应的IP地址119.75.217.56,而不是子DNS中记录的1.2.3.4:

    [root@pc207 ~]# host  www.bj.tedu.cn  192.168.4.7
    Using domain server:
    Name: 192.168.4.7
    Address: 192.168.4.7#53
    Aliases:

    www.bj.tedu.cn has address 119.75.217.56

    若父DNS未配置有 * 泛域名,则找不到解析结果(not found):

    [root@pc207 ~]# host  www.bj.tedu.cn  192.168.4.7
    Using domain server:
    Name: 192.168.4.7
    Address: 192.168.4.7#53
    Aliases:

    Host www.bj.tedu.cn not found: 3(NXDOMAIN)

    2)修改父DNS区域tedu.cn的地址库,添加授权子域信息

    [root@svr7 ~]# vim  /var/named/tedu.cn.zone
    … …
    bj.tedu.cn. NS pc207.bj.tedu.cn. //子区域及子DNS主机名
    pc207.bj.tedu.cn. A 192.168.4.207 //子DNS的IP地址

    [root@svr7 named]# systemctl restart named //重启服务

    步骤四:测试子域授权查询

    测试 —— 成功配置子域授权以后,向父DNS可以正确查询到子区域中的站点:

    [root@pc207 ~]# host  www.bj.tedu.cn  192.168.4.7
    Using domain server:
    Name: 192.168.4.7
    Address: 192.168.4.7#53
    Aliases:

    www.bj.tedu.cn has address 1.2.3.4

    [root@pc207 ~]# systemctl enable named

    4)可向缓存DNS服务器pc207查询到公共域名(百度、网易等站点)

    [root@pc207 ~]# host  www.baidu.com  192.168.4.207   		//查百度的站点IP
    Using domain server:
    Name: 192.168.4.207
    Address: 192.168.4.207#53
    Aliases:

    www.baidu.com is an alias for www.a.shifen.com.

    www.a.shifen.com has address 111.13.100.92

    www.a.shifen.com has address 111.13.100.91

    [root@pc207 ~]# host www.163.com 192.168.4.207 //查网易的站点IP

    Using domain server:

    Name: 192.168.4.207

    Address: 192.168.4.207#53

    Aliases:

    www.163.com is an alias for www.163.com.lxdns.com.

    www.163.com.lxdns.com is an alias for 163.xdwscache.ourglb0.com.

    163.xdwscache.ourglb0.com has address 111.11.31.104

    163.xdwscache.ourglb0.com has address 111.11.31.114

    4 案例4:构建主/从DNS服务器

    4.1 问题

    准备2台虚拟机,配置实现DNS主/从结构,相关要求如下:

    • 主DNS的域名为svr7.tedu.cn,IP地址为192.168.4.7/24
  • 从DNS的域名为pc207.tedu.cn,IP地址为192.168.4.207
  • 主、从均能够解析tts7.tedu.cn –> 118.45.29.31
  • 当主DNS的tts7.tedu.cn记录的IP地址变更为4.4.4.4以后,从DNS能够自动同步此更改
  • 4.2 方案

    使用2台虚拟机,其中一台作为主DNS服务器(192.168.4.7)、另外一台作为从DNS服务器(192.168.4.207);同时,这两台虚拟机中的任何一台都可以作为测试用的Linux客户机。

    主DNS的配置关键——修改named.conf配置文件,为从DNS设置授权:

    options {
            .. ..
            allow-transfer {
                    从DNS服务器的IP地址;
            }; 
    };
    

    从DNS的配置关键——无需手动建立解析记录,只需修改named.conf配置文件:

    zone "tedu.cn" IN {
            type slave;  								//类型为slave
            file "slaves/tedu.cn.zone";				//下载存放位置
            masters { 主DNS服务器的IP地址; }; 
    }; 
    

    4.3 步骤

    实现此案例需要按照如下步骤进行。

    步骤一:主DNS授权从DNS服务器,允许其下载地址记录

    1)修改named.conf配置文件,授权从DNS服务器,允许其下载地址记录

    [root@svr7 ~]# vim /etc/named.conf
    options  {
            directory  "/var/named";
            allow-transfer { 192.168.4.207;  };           //授权从DNS服务器
    };
    zone "tedu.cn" IN {
            type master;
            file "tedu.cn.zone";
    };
    .. ..
    

    2)修改区域记录文件,为从DNS添加NS记录,并设置测试A记录

    [root@svr7 ~]# vim /var/named/tedu.cn.zone 
    $TTL   86400
    @   IN   SOA   @    root.tedu.cn.  (
        2015052201  										;更新序列号
        4H          										;刷新时间
        15M         										;重试间隔
        4H          										;超时时间
        1D          										;无效记录的生存时间
    )
    @       IN      NS      svr7.tedu.cn.   		   	//指定主DNS记录
    @       IN      NS      pc207.tedu.cn.            	//指定从DNS记录
    svr7    IN      A       192.168.4.7  				//主DNS的A记录
    pc207   IN      A       192.168.4.207                	//从DNS的 A记录
    tts7    IN      A       118.45.29.31                 	//tts7.tedu.cn解析记录
    .. ..											//其他A记录
    

    3)重新加载named服务

    [root@svr7 ~]# service named restart  
    停止 named:.                                              [确定]
    启动 named:                                               [确定]
    

    步骤二:建立从DNS服务器

    1)使用yum安装DNS服务相关软件包

    [root@pc207 ~]# yum -y install bind bind-chroot
    .. ..
    [root@pc207 ~]# rpm -q bind bind-chroot
    .. ..
    

    2)建立/etc/named.conf配置文件

    [root@svr7 ~]# mv  /etc/named.conf  /etc/named.conf.bak  	//备份默认配置
    [root@svr7 ~]# vim  /etc/named.conf  			//建立新配置
    options {
            directory "/var/named";
    };
    zone "tedu.cn" IN {                    		//同步区域
            type slave;                          		//类型为从区域
            file "slaves/tedu.cn.zone";      		//区域文件存储位置
            masters { 192.168.4.7; };       			//指定主DNS的IP地址
    };
    

    3)重新加载named服务

    [root@svr7 ~]# service named restart  
    停止 named:.                                              [确定]
    启动 named:                                               [确定]
    

    确认区域配置文件已经自动下载,即同步成功:

    [root@pc207 ~]# ls /var/named/slaves/
    tedu.cn.zone
    

    步骤三:客户机查询测试

    1)向主DNS查询域名tts7.tedu.cn,反馈结果应为118.45.29.31

    [root@pc207 ~]# nslookup  tts7.tedu.cn  192.168.4.7
    Server:		192.168.4.7
    Address:	192.168.4.7#53
    

    Name: tts7.tedu.cn

    Address: 118.45.29.31

    2)向从DNS查询域名tts7.tedu.cn,也能获得结果为118.45.29.31

    [root@pc207 ~]# nslookup  tts7.tedu.cn  192.168.4.207
    Server: 192.168.4.207
    Address: 192.168.4.207#53

    Name: tts7.tedu.cn

    Address: 118.45.29.31

    3)测试解析记录的同步

    在主DNS上修改A记录tts7.tedu.cn,将IP地址改为4.4.4.4,同时将序列号+1更新,保存并启用新配置:

    [root@svr7 ~]# vim /var/named/tedu.cn.zone
    $TTL 86400
    @ IN SOA @ root.tedu.cn. (
    2015052202 //修改记录后,此序号应变更
    … …
    )
    … …
    tts7 IN A 4.4.4.4 //修改tts7解析记录

    [root@svr7 ~]# service named restart //重启named服务

    停止 named: [确定]

    启动 named: [确定]

    然后在客户端重复测试第1)和2)步骤,反馈的解析结果都应该是4.4.4.4:

    [root@pc207 ~]# nslookup  tts7.tedu.cn  192.168.4.7
    Server: 192.168.4.7
    Address: 192.168.4.7#53

    Name: tts7.tedu.cn

    Address: 4.4.4.4 //向主DNS查询的结果

    [root@pc207 ~]# nslookup tts7.tedu.cn 192.168.4.207

    Server: 192.168.4.207

    Address: 192.168.4.207#53

    Name: tts7.tedu.cn //向从DNS查询的结果

    Address: 4.4.4.4



版权声明:本文为weixin_46575696原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。