linux之DNS服务基础 、 特殊解析 、 DNS子域授权 、 DNS主从架构

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


搭建单区域DNS服务器

问题

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

svr7.tedu.cn —> 192.168.4.7 pc207.tedu.cn —> 192.168.4.207
www.tedu.cn —> 192.168.4.100 配置完成后在客户机上验证查询结果。

方案

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

安装 bind、bind-chroot 包 建立主配置文件 /etc/named.conf 建立地址库文件 /var/named/… …
启动 named 服务 配置及使用DNS客户端的基本过程:

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

步骤

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

一:配置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

特殊DNS解析

问题

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

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

方案

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

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

步骤

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

一:配置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

配置DNS子域授权

问题

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

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

方案

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

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

步骤

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

一:构建父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

构建主/从DNS服务器

问题

准备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能够自动同步此更改

方案

使用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地址; }; };

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

一:主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

重要的事情说三遍

作为一个为linux奉献一生的码员,很是荣幸和骄傲,这里我总结了一些linux的精华,也就是速成文章,后面还会继续更新,望大家关注,绝对有用!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值